@echo off
cd /d "%~dp0"
setlocal EnableDelayedExpansion

::
set PLAYER_NAME=Strife Player

:: 0 - spectator, 1 - glory (bottom left), 2 - valor (top right)
set PLAYER_TEAM=1

:: false|true
set DO_FILL_BOTS=false

:: easy|medium|hard|unfair
set BOT_DIFFICULTY=unfair

:: Check in "name" attribute in game/heroes/[hero_folder]/hero.entity
set PLAYER_HERO=Hero_Ray

:: Check modifiers with "altavatar" attribute in in game/heroes/[hero_folder]/hero.entity or use 'default'
set PLAYER_HERO_SKIN=default

:: Check game/familiars/[pet_folder]/hero.entity
set PLAYER_PET=Familiar_Tortus

:: baby|default|adult
set PET_SKIN=default

:: CRAFTS: should have 'ITEM_NAME', 'ECHANT_NAME', 'COMPONENT_{0-2}'. Type '\' if component is not used
set CRAFTS[0].ITEM_NAME=Item_Gauntlet
set CRAFTS[0].ECHANT_NAME=Item_Gauntlet_Empower_3
set CRAFTS[0].COMPONENT_0=Item_Mender
set CRAFTS[0].COMPONENT_1=Item_Manaregen1

set CRAFTS[1].ITEM_NAME=Item_Dark_Bargain
set CRAFTS[1].ECHANT_NAME=Item_Dark_Bargain_Empower_1
set CRAFTS[1].COMPONENT_0=Item_Warpcleft
set CRAFTS[1].COMPONENT_1=Item_GlovesOfHaste
set CRAFTS[1].COMPONENT_2=Item_Staff

set CRAFTS[2].ITEM_NAME=Item_GiantsVisage
set CRAFTS[2].ECHANT_NAME=Item_GiantsVisage_Empower_3
set CRAFTS[2].COMPONENT_0=Item_Booster
set CRAFTS[2].COMPONENT_1=Item_Booster


:: DO NOT CHANGE ANYTHING BELOW!
set ARG_LINE_START=-parted -loadinterface /ui/loading/loading2.interface loading2 -practice practice "map:strife matchtype:lobby rewards:true mode:normal region:USE teamsize:5 spectators:1 referees:0 devheroes:false allowduplicate:true finalheroesonly:true testingheroesonly:false botfill:%DO_FILL_BOTS% botdifficulty:%BOT_DIFFICULTY% allchat:true" "[{\"name\":\"%PLAYER_NAME%\",\"uniqueID\":\"9999\",\"team\":%PLAYER_TEAM%,\"slot\":0,\"hero\":\"%PLAYER_HERO%\",\"gearSet\":\"%PLAYER_HERO_SKIN%\",\"skin\":\"default\",\"petID\":\"114.011\",\"petEntityName\":\"%PLAYER_PET%\",\"petLevel\":6,\"petCustomName\":\"\",\"petPassive\":0,\"petSkin\":\"%PET_SKIN%\",\"friends\":[],

set "ARG_LINE_CRAFTS_START=\"crafts\":["
set "ARG_LINE_CRAFTS_END=]"

set "CRAFT_NUM=0"
set "ARG_LINE_CRAFTS_CONTENT=%ARG_LINE_CRAFTS_START%"

:Loop
call set "CURRENT_ITEM=%%CRAFTS[!CRAFT_NUM!].ITEM_NAME%%"
if defined CURRENT_ITEM ( 
    if !CRAFT_NUM! GTR 0 (
        set ARG_LINE_CRAFTS_CONTENT=!ARG_LINE_CRAFTS_CONTENT!,
    )
    
    ::call set CURRENT_ITEM=%%CRAFTS[!CRAFT_NUM!].ITEM_NAME%%
    call set CURRENT_ENCHANT=%%CRAFTS[!CRAFT_NUM!].ECHANT_NAME%%
    call set CURRENT_COMPONENT_0=%%CRAFTS[!CRAFT_NUM!].COMPONENT_0%%
    call set CURRENT_COMPONENT_1=%%CRAFTS[!CRAFT_NUM!].COMPONENT_1%%
    call set CURRENT_COMPONENT_2=%%CRAFTS[!CRAFT_NUM!].COMPONENT_2%%
    
    if defined CURRENT_COMPONENT_2 (
        set CURRENT_COMPONENTS=[\"!CURRENT_COMPONENT_0!\",\"!CURRENT_COMPONENT_1!\",\"!CURRENT_COMPONENT_2!\"]
    ) else (
        if defined CRAFTS[!CRAFT_NUM!].COMPONENT_1 (
            set CURRENT_COMPONENTS=[\"!CURRENT_COMPONENT_0!\",\"!CURRENT_COMPONENT_1!\"]
        ) else (
            set CURRENT_COMPONENTS=[\"!CURRENT_COMPONENT_0!\"]
        )
    )
    
    set CURRENT_CRAFT_LINE={\"craftID\":\"11!CRAFT_NUM!.01!CRAFT_NUM!\",\"entityName\":\"!CURRENT_ITEM!\",\"components\":!CURRENT_COMPONENTS!,\"commonQualityTier\":0,\"rareQualityTier\":0,\"rareEffect\":\"\",\"empoweredEffect\":\"!CURRENT_ENCHANT!\",\"legendaryQualityTier\":0,\"tempered\":0,\"craftDate\":0}

    set ARG_LINE_CRAFTS_CONTENT=!ARG_LINE_CRAFTS_CONTENT!!CURRENT_CRAFT_LINE!
    set /a CRAFT_NUM+=1
    GOTO :Loop
)

set ARG_LINE_CRAFTS_CONTENT=!ARG_LINE_CRAFTS_CONTENT!!ARG_LINE_CRAFTS_END!

set ARG_LINE_END=}]"

set ARG_LINE=%ARG_LINE_START%!ARG_LINE_CRAFTS_CONTENT!%ARG_LINE_END%

start strife %ARG_LINE%