Name | Type | is_array | initial_value |
Colors | real | Yes | |
ColorsWidth | integer | No | 3 |
GameMode | integer | No | |
HostLeft | boolean | No | |
HostPlayer | player | No | |
IncomePeriod | real | No | 60.00 |
IncomeTimer | timer | No | |
InitIndex | integer | No | |
MapOOB | boolean | Yes | |
MapRegions | rect | Yes | |
MapRegionWidth | integer | No | 32 |
MapSideOwners | integer | Yes | |
MapSideOwnersWidth | integer | No | 4 |
MapSidesHit | boolean | Yes | |
MapWalkable | boolean | Yes | |
ModeNumberOfRounds | integer | No | |
ModeSelectFloatingText | texttag | Yes | |
ModeSelectMode | integer | No | |
ModeSelectNormalModesSelected | boolean | No | |
ModeSelectResourceMode | integer | No | |
ModeSelectTimer | timer | No | |
ModeSelectTimerWindow | timerdialog | No | |
ModeTeamsOn | boolean | No | |
MultiboardPlayers | integer | Yes | -1 |
NuclearBombRadius | real | No | 500.00 |
NuclearFalloutCounter | integer | No | |
NuclearFalloutSpecialEffects | effect | Yes | |
OffsetsDiagonalX | integer | Yes | |
OffsetsDiagonalY | integer | Yes | |
OffsetsVertHorX | integer | Yes | |
OffsetsVertHorY | integer | Yes | |
PlayerColorGone | string | No | |cFF404040 |
PlayerColors | playercolor | Yes | |
PlayerColorsCaboose | string | No | |r |
PlayerColorsString | string | Yes | |
PlayerGoldIncome | real | Yes | |
PlayerGoldIncomeBase | real | No | 80.00 |
PlayerGoldIncomeSpillover | real | Yes | |
PlayerLumberIncome | real | Yes | |
PlayerLumberIncomeBase | real | No | 20.00 |
PlayerLumberIncomeSpillover | real | Yes | |
PlayerOwnedResourceSquares | integer | Yes | |
PlayerRegionClaims | integer | Yes | |
PlayerResearchIncome | real | Yes | |
PlayerResearchIncomeBase | real | No | 3.00 |
PlayerResearchIncomeSpillover | real | Yes | |
PlayerStartingGold | integer | No | 400 |
PlayerStartingLumber | integer | No | 10 |
PlayerStartingResearch | integer | No | 20 |
PlayerStateMultiboard | multiboard | No | |
PlayerWins | integer | Yes | |
PlayerWorkers | unit | Yes | |
PlayerWorkersGroup | group | No | |
PlayingPlayers | force | No | |
ResourceFrequencyArray | real | Yes | |
ResourceFrequencyGold | real | No | 0.10 |
ResourceFrequencyLumber | real | No | 0.08 |
ResourceFrequencyResearch | real | No | 0.04 |
ResourceFrequencyTierOne | real | No | 0.50 |
ResourceFrequencyTierThree | real | No | 0.20 |
ResourceFrequencyTierTwo | real | No | 0.30 |
ResourceFrequencyWidth | integer | No | 4 |
ResourceMinimapUnits | unit | Yes | |
ResourceMinimapUnitTypes | unitcode | Yes | |
ResourceOwnerIndicators | unit | Yes | |
ResourcePlaced | boolean | Yes | |
ResourcePlacementChecked | boolean | Yes | |
ResourceUnits | unit | Yes | |
ResourceUnitTypes | unitcode | Yes | |
ResourceValues | real | Yes | |
ResourceValuesWidth | integer | No | 3 |
ReturnedBool | boolean | No | |
ReturnedInt | integer | No | |
ReturnedPlayer | player | No | |
ReturnedRegion | rect | No | |
ScannedSquares | integer | Yes | -1 |
ScannedSquaresIndex | integer | No | |
SquareBaseGold | real | No | 2.00 |
SquareBaseLumber | real | No | 1.00 |
SquareBaseResearch | real | No | 0.10 |
SquareGold | real | Yes | |
SquareLumber | real | Yes | |
SquareOwners | integer | Yes | |
SquareOwnerTempList | integer | Yes | |
SquareResearch | real | Yes | |
SquaresChecked | boolean | Yes | |
StopFallout | boolean | No | |
TeamGroups | force | Yes | |
TeamLookup | integer | Yes | |
TeamSelectors | group | No | |
TeamSelectorsBlue | group | No | |
TeamSelectorsRed | group | No | |
TeamWins | integer | Yes | |
TeamWorkersGroup | group | Yes | |
TempAbility | abilcode | No | |
TempBool | boolean | No | |
TempBoolArray | boolean | Yes | |
TempDestructable | destructable | No | |
TempEffect | effect | No | |
TempFloatingText | texttag | No | |
TempInt | integer | No | |
TempInt2 | integer | No | |
TempInt3 | integer | No | |
TempInt4 | integer | No | |
TempInt5 | integer | No | |
TempInt6 | integer | No | |
TempInt7 | integer | No | |
TempInt8 | integer | No | |
TempIntArray | integer | Yes | |
TempPlayer | player | No | |
TempPoint | location | No | |
TempPoint2 | location | No | |
TempPoint3 | location | No | |
TempReal | real | No | |
TempReal2 | real | No | |
TempReal3 | real | No | |
TempReal4 | real | No | |
TempRealArray | real | Yes | |
TempRegion | rect | No | |
TempRegion2 | rect | No | |
TempUnit | unit | No | |
TempUnitGroup | group | No | |
TempUnitGroup2 | group | No | |
TempUnitType | unitcode | No | |
TowerDummyPointers | unitcode | Yes | |
TowerPathingBlockerHash | hashtable | No | |
TowerUpgradeDummyIcons | abilcode | Yes | |
WorkerPosArray | real | Yes | |
WorkerPosArrayWidth | integer | No | 2 |
WorkerSpawnRegions | rect | Yes | |
WorkerSpawnsPredefinedNums | integer | Yes | |
WorkerSpawnsPredefinedNumsWidt | integer | No | 12 |
function Trig_Search_From_Index_Sub_Actions takes nothing returns nothing
local integer LoopInt
local integer LoopInt2
local integer OwningPlayer
local boolean PlayerValid
if (udg_SquaresChecked[udg_TempInt] or udg_MapOOB[udg_TempInt]) then
return
endif
call TriggerExecute( gg_trg_Reset_Lists_Sub )
call TriggerExecute( gg_trg_Recursive_Square_Control_Sub )
set OwningPlayer = -1
set PlayerValid = true
if (udg_SquareOwnerTempList[0] != -1 and udg_SquareOwnerTempList[1] == -1) then
if (udg_MapSidesHit[0] or udg_MapSidesHit[1] or udg_MapSidesHit[2] or udg_MapSidesHit[3]) then
set LoopInt = 0
loop
exitwhen (LoopInt > 3 or not PlayerValid)
if (udg_MapSidesHit[LoopInt]) then
set PlayerValid = false
set LoopInt2 = 0
loop
exitwhen udg_MapSideOwners[(LoopInt2 * udg_MapSideOwnersWidth) + LoopInt] == -1
if (udg_MapSideOwners[(LoopInt2 * udg_MapSideOwnersWidth) + LoopInt] == udg_SquareOwnerTempList[0]) then
set PlayerValid = true
exitwhen true
endif
set LoopInt2 = LoopInt2 + 1
endloop
endif
set LoopInt = LoopInt + 1
endloop
endif
if (PlayerValid) then
set OwningPlayer = udg_SquareOwnerTempList[0]
endif
endif
set LoopInt = 0
loop
exitwhen LoopInt == udg_ScannedSquaresIndex
set udg_SquareOwners[udg_ScannedSquares[LoopInt]] = OwningPlayer
set LoopInt = LoopInt + 1
endloop
endfunction
//===========================================================================
function InitTrig_Search_From_Index_Sub takes nothing returns nothing
set gg_trg_Search_From_Index_Sub = CreateTrigger( )
call TriggerAddAction( gg_trg_Search_From_Index_Sub, function Trig_Search_From_Index_Sub_Actions )
endfunction
function Trig_Recursive_Square_Control_Sub_Actions takes nothing returns nothing
local integer LocalInt
local integer LoopInt
local integer LoopInt2
local integer SideTouched
local integer StartingX
local integer StartingY
local integer NextX
local integer NextY
local integer AdjacentIndex
local boolean array SquaresOccupied
if (udg_SquaresChecked[udg_TempInt] or udg_MapOOB[udg_TempInt]) then
return
endif
set LocalInt = udg_TempInt
set udg_ScannedSquares[udg_ScannedSquaresIndex] = udg_TempInt
set udg_ScannedSquaresIndex = udg_ScannedSquaresIndex + 1
set SquaresOccupied[0] = false
set SquaresOccupied[1] = false
set SquaresOccupied[2] = false
set SquaresOccupied[3] = false
set udg_SquaresChecked[udg_TempInt] = true
set StartingX = ModuloInteger(udg_TempInt, udg_MapRegionWidth)
set StartingY = ( udg_TempInt / udg_MapRegionWidth )
set LoopInt = 0
loop
exitwhen LoopInt > 3
set NextX = ( StartingX + udg_OffsetsVertHorX[LoopInt] )
set NextY = ( StartingY + udg_OffsetsVertHorY[LoopInt] )
if ( NextX >=0 and NextX < udg_MapRegionWidth and NextY >= 0 and NextY < udg_MapRegionWidth ) then
set AdjacentIndex = (NextY * udg_MapRegionWidth) + NextX
if (udg_MapOOB[AdjacentIndex]) then
set SquaresOccupied[LoopInt] = true
endif
if (udg_PlayerRegionClaims[AdjacentIndex] != -1) then
set SquaresOccupied[LoopInt] = true
set LoopInt2 = 0
loop
exitwhen (udg_SquareOwnerTempList[LoopInt2] == udg_PlayerRegionClaims[AdjacentIndex])
if udg_SquareOwnerTempList[LoopInt2] == -1 then
set udg_SquareOwnerTempList[LoopInt2] = udg_PlayerRegionClaims[AdjacentIndex]
set udg_SquareOwnerTempList[LoopInt2 + 1] = -1
exitwhen true
endif
set LoopInt2 = LoopInt2 + 1
endloop
endif
else
if (NextX < 0) then
set SideTouched = 2
else
if (NextX >= udg_MapRegionWidth) then
set SideTouched = 0
else
if (NextY < 0) then
set SideTouched = 3
else
set SideTouched = 1
endif
endif
endif
set udg_MapSidesHit[SideTouched] = true
endif
set LoopInt = LoopInt + 1
endloop
set LoopInt = 0
loop
exitwhen LoopInt > 3
if (not (SquaresOccupied[LoopInt] and SquaresOccupied[ModuloInteger(LoopInt + 1, 4)])) then
set NextX = StartingX + udg_OffsetsDiagonalX[LoopInt]
set NextY = StartingY + udg_OffsetsDiagonalY[LoopInt]
if ( NextX >=0 and NextX < udg_MapRegionWidth and NextY >= 0 and NextY < udg_MapRegionWidth ) then
set udg_TempInt = (NextY * udg_MapRegionWidth) + NextX
if (not udg_SquaresChecked[udg_TempInt] and not udg_MapOOB[udg_TempInt]) then
call TriggerExecute(gg_trg_Recursive_Square_Control_Sub)
endif
endif
endif
set LoopInt = LoopInt + 1
endloop
set udg_TempInt = LocalInt
endfunction
//===========================================================================
function InitTrig_Recursive_Square_Control_Sub takes nothing returns nothing
set gg_trg_Recursive_Square_Control_Sub = CreateTrigger( )
call TriggerAddAction( gg_trg_Recursive_Square_Control_Sub, function Trig_Recursive_Square_Control_Sub_Actions )
endfunction
function Trig_Get_Map_Side_Owners_Add_Player takes integer RegionIndex, integer SideOffset returns nothing
local integer LoopInt
local integer OwningPlayerIndex
set OwningPlayerIndex = udg_PlayerRegionClaims[RegionIndex]
if ( OwningPlayerIndex != -1) then
set LoopInt = 0
loop
exitwhen (udg_MapSideOwners[(LoopInt * udg_MapSideOwnersWidth) + SideOffset] == OwningPlayerIndex)
if (udg_MapSideOwners[(LoopInt * udg_MapSideOwnersWidth) + SideOffset] == -1) then
set udg_MapSideOwners[(LoopInt * udg_MapSideOwnersWidth) + SideOffset] = OwningPlayerIndex
set udg_MapSideOwners[((LoopInt + 1) * udg_MapSideOwnersWidth) + SideOffset] = -1
exitwhen true
endif
set LoopInt = LoopInt + 1
endloop
endif
endfunction
function Trig_Get_Map_Side_Owners_Actions takes nothing returns nothing
local integer LoopInt
local integer LoopInt2
local rect LocalRegion
local integer LocalIntR
set LocalRegion = udg_TempRegion
set LocalIntR = udg_ReturnedInt
set udg_MapSideOwners[0] = -1
set udg_MapSideOwners[1] = -1
set udg_MapSideOwners[2] = -1
set udg_MapSideOwners[3] = -1
set LoopInt = 0
loop
exitwhen LoopInt > ( udg_MapRegionWidth - 1 )
// top
call Trig_Get_Map_Side_Owners_Add_Player(LoopInt, 3)
// left
call Trig_Get_Map_Side_Owners_Add_Player((LoopInt) * udg_MapRegionWidth, 2)
// bottom
call Trig_Get_Map_Side_Owners_Add_Player(LoopInt + 1 + (udg_MapRegionWidth * (udg_MapRegionWidth - 1)), 1)
// right
call Trig_Get_Map_Side_Owners_Add_Player(((LoopInt + 1) * udg_MapRegionWidth) + udg_MapRegionWidth - 1, 0)
set LoopInt = LoopInt + 2
endloop
set udg_TempRegion = LocalRegion
set udg_ReturnedInt = LocalIntR
endfunction
//===========================================================================
function InitTrig_Get_Map_Side_Owners takes nothing returns nothing
set gg_trg_Get_Map_Side_Owners = CreateTrigger( )
call TriggerAddAction( gg_trg_Get_Map_Side_Owners, function Trig_Get_Map_Side_Owners_Actions )
endfunction