//TESH.scrollpos=261
//TESH.alwaysfold=0
// ===========================
function H2I takes handle h returns integer
return h
return 0
endfunction
//==================================
constant function MaxStateModifierId takes unitstate u returns integer
if u == UNIT_STATE_MAX_LIFE then
return 'A018' // Rawcode of the Max Life Modifier ability.
elseif u == UNIT_STATE_MAX_MANA then
return 'A017' // Rawcode of the Max Mana Modifier ability.
endif
return 0
endfunction
function SetUnitMaxState takes unit whichUnit, unitstate whichUnitState, integer newVal returns boolean
local integer c = newVal-R2I(GetUnitState(whichUnit, whichUnitState))
local integer i = MaxStateModifierId(whichUnitState)
if i == 0 then
return false
endif
if c > 0 then
loop
exitwhen c == 0
call UnitAddAbility(whichUnit, i)
if c >= 100 then
set c = c - 100
call SetUnitAbilityLevel(whichUnit, i, 4)
elseif c >= 10 then
set c = c - 10
call SetUnitAbilityLevel(whichUnit, i, 3)
else
set c = c - 1
call SetUnitAbilityLevel(whichUnit, i, 2)
endif
call UnitRemoveAbility(whichUnit, i)
endloop
elseif c < 0 then
set c = -c
loop
exitwhen c == 0
call UnitAddAbility(whichUnit, i)
if c >= 100 then
set c = c - 100
call SetUnitAbilityLevel(whichUnit, i, 7)
elseif c >= 10 then
set c = c - 10
call SetUnitAbilityLevel(whichUnit, i, 6)
else
set c = c - 1
call SetUnitAbilityLevel(whichUnit, i, 5)
endif
call UnitRemoveAbility(whichUnit, i)
endloop
endif
return true
endfunction
// ===========================
function LocalVars takes nothing returns gamecache
return udg_XXX
endfunction
function SetHandleHandle takes handle subject, string name, handle value returns nothing
if value==null then
call FlushStoredInteger(LocalVars(),I2S(H2I(subject)),name)
else
call StoreInteger(LocalVars(), I2S(H2I(subject)), name, H2I(value))
endif
endfunction
function SetHandleInt takes handle subject, string name, integer value returns nothing
if value==0 then
call FlushStoredInteger(LocalVars(),I2S(H2I(subject)),name)
else
call StoreInteger(LocalVars(), I2S(H2I(subject)), name, value)
endif
endfunction
function SetHandleBoolean takes handle subject, string name, boolean value returns nothing
if value==false then
call FlushStoredBoolean(LocalVars(),I2S(H2I(subject)),name)
else
call StoreBoolean(LocalVars(), I2S(H2I(subject)), name, value)
endif
endfunction
function SetHandleReal takes handle subject, string name, real value returns nothing
if value==0 then
call FlushStoredReal(LocalVars(), I2S(H2I(subject)), name)
else
call StoreReal(LocalVars(), I2S(H2I(subject)), name, value)
endif
endfunction
function SetHandleString takes handle subject, string name, string value returns nothing
if value==null then
call FlushStoredString(LocalVars(), I2S(H2I(subject)), name)
else
call StoreString(LocalVars(), I2S(H2I(subject)), name, value)
endif
endfunction
function GetHandleHandle takes handle subject, string name returns handle
return GetStoredInteger(LocalVars(), I2S(H2I(subject)), name)
return null
endfunction
function GetHandleInt takes handle subject, string name returns integer
return GetStoredInteger(LocalVars(), I2S(H2I(subject)), name)
endfunction
function GetHandleBoolean takes handle subject, string name returns boolean
return GetStoredBoolean(LocalVars(), I2S(H2I(subject)), name)
endfunction
function GetHandleReal takes handle subject, string name returns real
return GetStoredReal(LocalVars(), I2S(H2I(subject)), name)
endfunction
function GetHandleString takes handle subject, string name returns string
return GetStoredString(LocalVars(), I2S(H2I(subject)), name)
endfunction
function GetHandleUnit takes handle subject, string name returns unit
return GetStoredInteger(LocalVars(), I2S(H2I(subject)), name)
return null
endfunction
function GetHandleTimer takes handle subject, string name returns timer
return GetStoredInteger(LocalVars(), I2S(H2I(subject)), name)
return null
endfunction
function GetHandleTrigger takes handle subject, string name returns trigger
return GetStoredInteger(LocalVars(), I2S(H2I(subject)), name)
return null
endfunction
function GetHandleEffect takes handle subject, string name returns effect
return GetStoredInteger(LocalVars(), I2S(H2I(subject)), name)
return null
endfunction
function GetHandleGroup takes handle subject, string name returns group
return GetStoredInteger(LocalVars(), I2S(H2I(subject)), name)
return null
endfunction
function GetHandleLightning takes handle subject, string name returns lightning
return GetStoredInteger(LocalVars(), I2S(H2I(subject)), name)
return null
endfunction
function GetHandleWidget takes handle subject, string name returns widget
return GetStoredInteger(LocalVars(), I2S(H2I(subject)), name)
return null
endfunction
function FlushHandleLocals takes handle subject returns nothing
call FlushStoredMission(LocalVars(), I2S(H2I(subject)) )
endfunction
//============================================================================
function Chr takes integer Ascii returns string
local string charmap = " !#$%%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{|}~"
if Ascii >= 32 and Ascii <= 126 then
return SubStringBJ(charmap,Ascii-31,Ascii-31)
endif
return " "
endfunction
function DebugIdInteger2IdString takes integer value returns string
local string result = ""
local integer remainingValue = value
local integer charValue
loop
set charValue = ModuloInteger(remainingValue,256)
set remainingValue = remainingValue / 256
set result = Chr(charValue) + result
exitwhen remainingValue <= 0
endloop
return result
endfunction
//============================================================================
function IsLocPathable takes location l returns boolean
local real x = GetLocationX(l)
local real y = GetLocationY(l)
local real ad = ((GetCameraBoundMaxX()+GetCameraMargin(CAMERA_MARGIN_RIGHT)) - (GetCameraBoundMinX()-GetCameraMargin(CAMERA_MARGIN_LEFT))) / 720
local unit u = CreateUnit(Player(PLAYER_NEUTRAL_PASSIVE),'odoc',x,y,0)
call ShowUnit(u,false)
call UnitAddAbility(u,'Aeye')
if (GetUnitX(u) > x + ad) or (GetUnitX(u) < x - ad) or (GetUnitY(u) > y + ad) or (GetUnitY(u) < y - ad) then
call RemoveUnit(u)
return false
elseif IssuePointOrder(u,"evileye",x,y) then
call RemoveUnit(u)
return true
endif
call RemoveUnit(u)
return false
endfunction
//============================================================================
function GetRandomPathableLoc takes rect R, integer MaxAttempts returns location
local location L
local integer Index = 0
if MaxAttempts < 1 then
set MaxAttempts = 50
endif
loop
exitwhen Index >= MaxAttempts
set L = GetRandomLocInRect(R)
if IsLocPathable(L) then
return L
endif
set Index = Index + 1
endloop
return Location(0,0)
endfunction
function IsTempShop takes nothing returns boolean
return GetUnitTypeId(GetSellingUnit()) == 'nshf'
endfunction
function RemoveTempShop takes nothing returns nothing
call RemoveUnit(GetSellingUnit())
call RemoveUnit(GetSoldUnit())
call DestroyTrigger(GetTriggeringTrigger())
endfunction
function GetUnitGoldCostById takes integer Uid returns integer
local string Temp = DebugIdInteger2IdString(Uid)
local trigger Dispose = CreateTrigger()
local integer Val = GetPlayerState(Player(15),PLAYER_STATE_RESOURCE_GOLD)
local integer ValB = GetPlayerState(Player(15),PLAYER_STATE_RESOURCE_LUMBER)
local integer Cap = GetPlayerState(Player(15),PLAYER_STATE_RESOURCE_FOOD_CAP)
local integer Diff
local unit U
set Temp = SubStringBJ(Temp,1,1)
if Temp == "E" or Temp == "U" or Temp == "O" or Temp == "H" then
return 425
endif
set U = CreateUnitAtLoc(Player(15),'nshf',GetRandomPathableLoc(GetPlayableMapRect(),1000),bj_UNIT_FACING)
call AdjustPlayerStateBJ(50000,Player(15),PLAYER_STATE_RESOURCE_GOLD)
call AdjustPlayerStateBJ(50000,Player(15),PLAYER_STATE_RESOURCE_LUMBER)
call SetPlayerState(Player(15),PLAYER_STATE_RESOURCE_FOOD_CAP,200)
set Diff = GetPlayerState(Player(15),PLAYER_STATE_RESOURCE_GOLD)
call TriggerRegisterAnyUnitEventBJ(Dispose,EVENT_PLAYER_UNIT_SELL)
call TriggerAddCondition(Dispose,Condition(function IsTempShop))
call TriggerAddAction(Dispose,function RemoveTempShop)
call UnitAddAbilityBJ('Asud',U)
call AddUnitToStockBJ(Uid,U,1,1)
call IssueTrainOrderByIdBJ(U,Uid)
set Diff = Diff - GetPlayerState(Player(15),PLAYER_STATE_RESOURCE_GOLD)
call SetPlayerState(Player(15),PLAYER_STATE_RESOURCE_GOLD,Val)
call SetPlayerState(Player(15),PLAYER_STATE_RESOURCE_LUMBER,ValB)
call SetPlayerState(Player(15),PLAYER_STATE_RESOURCE_FOOD_CAP,Cap)
set U = null
return Diff
endfunction
function GetUnitWoodCostById takes integer Uid returns integer
local string Temp = DebugIdInteger2IdString(Uid)
local trigger Dispose = CreateTrigger()
local integer Val = GetPlayerState(Player(15),PLAYER_STATE_RESOURCE_GOLD)
local integer ValB = GetPlayerState(Player(15),PLAYER_STATE_RESOURCE_LUMBER)
local integer Cap = GetPlayerState(Player(15),PLAYER_STATE_RESOURCE_FOOD_CAP)
local integer Diff
local unit U
set Temp = SubStringBJ(Temp,1,1)
if Temp == "E" or Temp == "U" or Temp == "O" or Temp == "H" then
return 100
endif
set U = CreateUnitAtLoc(Player(15),'nshf',GetRandomPathableLoc(GetPlayableMapRect(),1000),bj_UNIT_FACING)
call AdjustPlayerStateBJ(50000,Player(15),PLAYER_STATE_RESOURCE_GOLD)
call AdjustPlayerStateBJ(50000,Player(15),PLAYER_STATE_RESOURCE_LUMBER)
call SetPlayerState(Player(15),PLAYER_STATE_RESOURCE_FOOD_CAP,200)
set Diff = GetPlayerState(Player(15),PLAYER_STATE_RESOURCE_LUMBER)
call TriggerRegisterAnyUnitEventBJ(Dispose,EVENT_PLAYER_UNIT_SELL)
call TriggerAddCondition(Dispose,Condition(function IsTempShop))
call TriggerAddAction(Dispose,function RemoveTempShop)
call UnitAddAbilityBJ('Asud',U)
call AddUnitToStockBJ(Uid,U,1,1)
call IssueTrainOrderByIdBJ(U,Uid)
set Diff = Diff - GetPlayerState(Player(15),PLAYER_STATE_RESOURCE_LUMBER)
call SetPlayerState(Player(15),PLAYER_STATE_RESOURCE_GOLD,Val)
call SetPlayerState(Player(15),PLAYER_STATE_RESOURCE_LUMBER,ValB)
call SetPlayerState(Player(15),PLAYER_STATE_RESOURCE_FOOD_CAP,Cap)
set U = null
return Diff
endfunction
function GetWidgetMaxLife takes widget whichWidget returns real
local real a
local real b=GetWidgetLife(whichWidget)
call SetWidgetLife(whichWidget, 1000000.00)
set a=GetWidgetLife(whichWidget)
call SetWidgetLife(whichWidget, b)
return a
endfunction
Name | Type | is_array | initial_value |
ab | integer | No | |
Area | rect | Yes | |
Att | integer | Yes | |
Card | integer | Yes | |
CP | integer | Yes | |
FO | force | Yes | |
Grave | rect | Yes | |
Hall | unit | Yes | |
Integral | real | No | 64.00 |
MaxMinuteTimer | timer | Yes | |
Pick | rect | Yes | RectNull |
StartLife | real | No | 1000.00 |
WhosTurn | integer | Yes | |
XXX | gamecache | No | |
zombiecheck | integer | No |
//TESH.scrollpos=57
//TESH.alwaysfold=0
function Trig_Nahkampf_Initialisierung_Actions takes nothing returns nothing
set udg_Att[0] = 'A014'
set udg_Att[1] = 'A004'
set udg_Att[2] = 'A00A'
set udg_Att[3] = 'A00Y'
set udg_Att[4] = 'A009'
set udg_Att[5] = 'A01E'
set udg_Att[6] = 'A01G'
set udg_Att[7] = 'A00W'
set udg_Att[8] = 'A010'
set udg_Att[9] = 'A00G'
set udg_Att[10] = 'A01F'
set udg_Att[11] = 'A00X'
set udg_Att[12] = 'A019'
set udg_Att[13] = 'A013'
set udg_Att[14] = 'A01A'
set udg_Att[15] = 'A01D'
//======================================
set udg_Card[0] = 'brag'
//======================================
set udg_Card[1] = 'I000'
set udg_Card[2] = 'I001'
set udg_Card[3] = 'I002'
set udg_Card[4] = 'I003'
set udg_Card[5] = 'I004'
set udg_Card[6] = 'I005'
set udg_Card[7] = 'I006'
set udg_Card[8] = 'I007'
set udg_Card[9] = 'I008'
set udg_Card[10] = 'I009'
set udg_Card[11] = 'I00Q'
set udg_Card[12] = 'I00R'
//===================================
set udg_Card[13] = 'I00I'
set udg_Card[14] = 'I00G'
set udg_Card[15] = 'I00F'
set udg_Card[16] = 'I00C'
set udg_Card[17] = 'I00H'
set udg_Card[18] = 'I00J'
set udg_Card[19] = 'I00E'
set udg_Card[20] = 'I00B'
set udg_Card[21] = 'I00A'
set udg_Card[22] = 'I00A'
set udg_Card[23] = 'I00D'
set udg_Card[24] = 'I00O'
//===================================
set udg_Pick[0] = gg_rct_pick_p1
set udg_Pick[1] = gg_rct_pick_p2
set udg_Pick[2] = gg_rct_pick_p3
set udg_Pick[3] = gg_rct_pick_p4
set udg_Pick[4] = gg_rct_pick_p5
set udg_Pick[5] = gg_rct_pick_p6
set udg_Pick[6] = gg_rct_pick_p7
set udg_Pick[7] = gg_rct_pick_p8
set udg_Grave[0] = gg_rct_grave_p1
set udg_Grave[1] = gg_rct_grave_p2
set udg_Grave[2] = gg_rct_grave_p3
set udg_Grave[3] = gg_rct_grave_p4
set udg_Grave[4] = gg_rct_grave_p5
set udg_Grave[5] = gg_rct_grave_p6
set udg_Grave[6] = gg_rct_grave_p7
set udg_Grave[7] = gg_rct_grave_p8
set udg_Area[0] = gg_rct_Area1
set udg_Area[1] = gg_rct_Area2
set udg_Area[2] = gg_rct_Area3
set udg_Area[3] = gg_rct_Area4
call ForceAddPlayer(udg_FO[0],Player(0))
call ForceAddPlayer(udg_FO[0],Player(1))
call ForceAddPlayer(udg_FO[1],Player(2))
call ForceAddPlayer(udg_FO[1],Player(3))
call ForceAddPlayer(udg_FO[2],Player(4))
call ForceAddPlayer(udg_FO[2],Player(5))
call ForceAddPlayer(udg_FO[3],Player(6))
call ForceAddPlayer(udg_FO[3],Player(7))
endfunction
//===========================================================================
function InitTrig_Nahkampf_Initialisierung takes nothing returns nothing
set gg_trg_Nahkampf_Initialisierung = CreateTrigger( )
call TriggerRegisterTimerEventPeriodic( gg_trg_Nahkampf_Initialisierung, 0.01 )
call TriggerAddAction( gg_trg_Nahkampf_Initialisierung, function Trig_Nahkampf_Initialisierung_Actions )
endfunction
//TESH.scrollpos=0
//TESH.alwaysfold=0
function Trig_Draw_Card_Conditions takes nothing returns boolean
return GetSpellAbilityId() == 'A00U'
endfunction
function Trig_Draw_Card_Actions takes nothing returns nothing
local unit u = GetTriggerUnit()
local integer typ = GetUnitTypeId(u)
local player P = GetOwningPlayer(u)
local integer x = GetPlayerId(P)
local item ri = RandomItemInRectBJ(udg_Pick[x],null)
local integer D
if (udg_CP[x] > 0) and (UnitInventoryCount(u) != UnitInventorySize(u)) then
set udg_CP[x] = ( udg_CP[x] - 1 )
call DestroyEffect(AddSpecialEffect("Abilities\\Spells\\Other\\Levelup\\LevelupCaster.mdl",GetUnitX(u),GetUnitY(u)))
call UnitAddItem (u,ri)
endif
set u = null
set P = null
set ri = null
endfunction
//===========================================================================
function InitTrig_Draw_Card takes nothing returns nothing
set gg_trg_Draw_Card = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Draw_Card, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_Draw_Card, Condition( function Trig_Draw_Card_Conditions ) )
call TriggerAddAction( gg_trg_Draw_Card, function Trig_Draw_Card_Actions )
endfunction
//TESH.scrollpos=0
//TESH.alwaysfold=0
function Trig_Grave_Actions takes nothing returns nothing
local item it = GetManipulatedItem()
local integer ID = GetItemTypeId(GetManipulatedItem())
local unit u = GetTriggerUnit()
local player P = GetOwningPlayer(u)
local integer pid = GetPlayerId(P)
call PolledWait(0.01)
call SetItemPositionLoc( it, GetRandomLocInRect(udg_Grave[pid]) )
set u = null
set P = null
set it = null
endfunction
//===========================================================================
function InitTrig_Grave takes nothing returns nothing
set gg_trg_Grave = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Grave, EVENT_PLAYER_UNIT_DROP_ITEM )
call TriggerAddAction( gg_trg_Grave, function Trig_Grave_Actions )
endfunction
//TESH.scrollpos=0
//TESH.alwaysfold=0
function Trig_Grave_2_Actions takes nothing returns nothing
local item it = GetManipulatedItem()
local integer ID = GetItemTypeId(it)
local unit u = GetTriggerUnit()
local player P = GetOwningPlayer(u)
local integer pid = GetPlayerId(P)
call PolledWait(0.01)
call CreateItemLoc( ID, GetRandomLocInRect(udg_Grave[pid]) )
set u = null
set P = null
set it = null
endfunction
//===========================================================================
function InitTrig_Grave_2 takes nothing returns nothing
set gg_trg_Grave_2 = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Grave_2, EVENT_PLAYER_UNIT_USE_ITEM )
call TriggerAddAction( gg_trg_Grave_2, function Trig_Grave_2_Actions )
endfunction
//TESH.scrollpos=0
//TESH.alwaysfold=0
function Trig_WrongCast_Actions takes nothing returns nothing
local unit u = GetSpellAbilityUnit()
local unit t = GetSpellTargetUnit()
local player pu = GetOwningPlayer(u)
local player pt = GetOwningPlayer(t)
local integer pid = GetPlayerId(pu)
local integer tid = GetPlayerId(pt)
local rect r = udg_Area[pid/2]
local rect r2 = udg_Area[tid/2]
if r != r2 and (GetSpellAbilityId() != 'A01B') then
call IssueImmediateOrder( u, "stop" )
endif
set u = null
set t = null
set pu = null
set pt = null
set r = null
set r2 = null
endfunction
//===========================================================================
function InitTrig_WrongCast takes nothing returns nothing
set gg_trg_WrongCast = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_WrongCast, EVENT_PLAYER_UNIT_USE_ITEM )
call TriggerRegisterAnyUnitEventBJ( gg_trg_WrongCast, EVENT_PLAYER_UNIT_SPELL_CAST )
call TriggerRegisterAnyUnitEventBJ( gg_trg_WrongCast, EVENT_PLAYER_UNIT_SPELL_CHANNEL )
call TriggerAddAction( gg_trg_WrongCast, function Trig_WrongCast_Actions )
endfunction
//TESH.scrollpos=0
//TESH.alwaysfold=0
function Trig_Prevent_PicknGrave_Actions takes nothing returns nothing
call RemoveUnit( GetEnteringUnit() )
endfunction
//===========================================================================
function InitTrig_Prevent_PicknGrave takes nothing returns nothing
set gg_trg_Prevent_PicknGrave = CreateTrigger( )
call TriggerRegisterEnterRectSimple( gg_trg_Prevent_PicknGrave, gg_rct_grave_p1 )
call TriggerRegisterEnterRectSimple( gg_trg_Prevent_PicknGrave, gg_rct_grave_p2 )
call TriggerRegisterEnterRectSimple( gg_trg_Prevent_PicknGrave, gg_rct_grave_p3 )
call TriggerRegisterEnterRectSimple( gg_trg_Prevent_PicknGrave, gg_rct_grave_p4 )
call TriggerRegisterEnterRectSimple( gg_trg_Prevent_PicknGrave, gg_rct_grave_p5 )
call TriggerRegisterEnterRectSimple( gg_trg_Prevent_PicknGrave, gg_rct_grave_p6 )
call TriggerRegisterEnterRectSimple( gg_trg_Prevent_PicknGrave, gg_rct_grave_p7 )
call TriggerRegisterEnterRectSimple( gg_trg_Prevent_PicknGrave, gg_rct_grave_p8 )
call TriggerRegisterEnterRectSimple( gg_trg_Prevent_PicknGrave, gg_rct_pick_p1 )
call TriggerRegisterEnterRectSimple( gg_trg_Prevent_PicknGrave, gg_rct_pick_p2 )
call TriggerRegisterEnterRectSimple( gg_trg_Prevent_PicknGrave, gg_rct_pick_p3 )
call TriggerRegisterEnterRectSimple( gg_trg_Prevent_PicknGrave, gg_rct_pick_p4 )
call TriggerRegisterEnterRectSimple( gg_trg_Prevent_PicknGrave, gg_rct_pick_p5 )
call TriggerRegisterEnterRectSimple( gg_trg_Prevent_PicknGrave, gg_rct_pick_p6 )
call TriggerRegisterEnterRectSimple( gg_trg_Prevent_PicknGrave, gg_rct_pick_p7 )
call TriggerRegisterEnterRectSimple( gg_trg_Prevent_PicknGrave, gg_rct_pick_p8 )
call TriggerAddAction( gg_trg_Prevent_PicknGrave, function Trig_Prevent_PicknGrave_Actions )
endfunction
//TESH.scrollpos=0
//TESH.alwaysfold=0
function Trig_Move_Conditions takes nothing returns boolean
return GetSpellAbilityId() == 'A012' or GetSpellAbilityId() == 'A008'
endfunction
function Trig_Move_Actions takes nothing returns nothing
local unit u = GetTriggerUnit()
local real x = GetLocationX(GetSpellTargetLoc())
local real y = GetLocationY(GetSpellTargetLoc())
call PolledWait(0.01)
call SetUnitPosition(u,x,y)
set u = null
endfunction
//===========================================================================
function InitTrig_Move takes nothing returns nothing
set gg_trg_Move = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Move, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_Move, Condition( function Trig_Move_Conditions ) )
call TriggerAddAction( gg_trg_Move, function Trig_Move_Actions )
endfunction
//TESH.scrollpos=21
//TESH.alwaysfold=0
function Trig_Prevent_Conditions takes nothing returns boolean
return IsUnitType(GetEnteringUnit(), UNIT_TYPE_TOWNHALL) == false
endfunction
function Trig_Preventtt takes nothing returns nothing
if ( IsUnitType(GetEnumUnit(), UNIT_TYPE_TOWNHALL) == false ) then
call RemoveUnit( GetEnumUnit() )
endif
endfunction
function Trig_Prevent_Actions takes nothing returns nothing
local unit u =GetEnteringUnit()
local integer PI = GetPlayerId(GetOwningPlayer(u))
if (PI == 0) then
call ForGroupBJ( GetUnitsInRectAll(gg_rct_Starter_p1), function Trig_Preventtt )
call SetUnitPositionLoc( udg_Hall[PI], GetRectCenter(gg_rct_Starter_p1) )
elseif (PI == 1) then
call ForGroupBJ( GetUnitsInRectAll(gg_rct_Starter_p2), function Trig_Preventtt )
call SetUnitPositionLoc( udg_Hall[PI], GetRectCenter(gg_rct_Starter_p2) )
elseif (PI == 2) then
call ForGroupBJ( GetUnitsInRectAll(gg_rct_Starter_p3), function Trig_Preventtt )
call SetUnitPositionLoc( udg_Hall[PI], GetRectCenter(gg_rct_Starter_p3) )
elseif (PI == 3) then
call ForGroupBJ( GetUnitsInRectAll(gg_rct_Starter_p4), function Trig_Preventtt )
call SetUnitPositionLoc( udg_Hall[PI], GetRectCenter(gg_rct_Starter_p4) )
elseif (PI == 4) then
call ForGroupBJ( GetUnitsInRectAll(gg_rct_Starter_p5), function Trig_Preventtt )
call SetUnitPositionLoc( udg_Hall[PI], GetRectCenter(gg_rct_Starter_p5) )
elseif (PI == 5) then
call ForGroupBJ( GetUnitsInRectAll(gg_rct_Starter_p6), function Trig_Preventtt )
call SetUnitPositionLoc( udg_Hall[PI], GetRectCenter(gg_rct_Starter_p6) )
elseif (PI == 6) then
call ForGroupBJ( GetUnitsInRectAll(gg_rct_Starter_p7), function Trig_Preventtt )
call SetUnitPositionLoc( udg_Hall[PI], GetRectCenter(gg_rct_Starter_p7) )
elseif (PI == 7) then
call ForGroupBJ( GetUnitsInRectAll(gg_rct_Starter_p8), function Trig_Preventtt )
call SetUnitPositionLoc( udg_Hall[PI], GetRectCenter(gg_rct_Starter_p8) )
endif
call SetUnitManaBJ( udg_Hall[PI], ( GetUnitStateSwap(UNIT_STATE_MANA, udg_Hall[PI]) + GetUnitGoldCostById(GetUnitTypeId(u)) ) )
set u = null
endfunction
//===========================================================================
function InitTrig_Prevent takes nothing returns nothing
set gg_trg_Prevent = CreateTrigger( )
call TriggerRegisterEnterRectSimple( gg_trg_Prevent, gg_rct_Starter_p1 )
call TriggerRegisterEnterRectSimple( gg_trg_Prevent, gg_rct_Starter_p2 )
call TriggerRegisterEnterRectSimple( gg_trg_Prevent, gg_rct_Starter_p3 )
call TriggerRegisterEnterRectSimple( gg_trg_Prevent, gg_rct_Starter_p4 )
call TriggerRegisterEnterRectSimple( gg_trg_Prevent, gg_rct_Starter_p5 )
call TriggerRegisterEnterRectSimple( gg_trg_Prevent, gg_rct_Starter_p6 )
call TriggerRegisterEnterRectSimple( gg_trg_Prevent, gg_rct_Starter_p7 )
call TriggerRegisterEnterRectSimple( gg_trg_Prevent, gg_rct_Starter_p8 )
call TriggerAddCondition( gg_trg_Prevent, Condition( function Trig_Prevent_Conditions ) )
call TriggerAddAction( gg_trg_Prevent, function Trig_Prevent_Actions )
endfunction
//TESH.scrollpos=0
//TESH.alwaysfold=0
function URT1 takes nothing returns nothing
local unit u = GetEnumUnit()
call PauseUnitBJ( false, u )
if ( IsUnitType(u, UNIT_TYPE_TOWNHALL) != true ) then
call SetUnitManaBJ( u, ( GetUnitStateSwap(UNIT_STATE_MANA, u) + GetUnitWoodCostById(GetUnitTypeId(u)) ) )
endif
set u = null
endfunction
function Trig_Round_p1_Actions takes nothing returns nothing
local integer x = 0
set udg_WhosTurn[x/2] = 0
set udg_CP[x] = ( udg_CP[x] + 1 )
call SetUnitManaBJ( udg_Hall[x], ( GetUnitStateSwap(UNIT_STATE_MANA, udg_Hall[x]) + 1.00 ) )
call ForGroupBJ( GetUnitsInRectOfPlayer(GetPlayableMapRect(), Player(x)), function URT1 )
call DisplayTextToForce( udg_FO[x/2], "Turn of Player "+I2S(x+1)+"." )
endfunction
//===========================================================================
function InitTrig_Round_p1 takes nothing returns nothing
set gg_trg_Round_p1 = CreateTrigger( )
call TriggerAddAction( gg_trg_Round_p1, function Trig_Round_p1_Actions )
endfunction
//TESH.scrollpos=0
//TESH.alwaysfold=0
function URT3 takes nothing returns nothing
local unit u = GetEnumUnit()
call PauseUnitBJ( false, u )
if ( IsUnitType(u, UNIT_TYPE_TOWNHALL) != true ) then
call SetUnitManaBJ( u, ( GetUnitStateSwap(UNIT_STATE_MANA, u) + GetUnitWoodCostById(GetUnitTypeId(u)) ) )
endif
set u = null
endfunction
function Trig_Round_p3_Actions takes nothing returns nothing
local integer x = 2
set udg_WhosTurn[x/2] = 0
set udg_CP[x] = ( udg_CP[x] + 1 )
call SetUnitManaBJ( udg_Hall[x], ( GetUnitStateSwap(UNIT_STATE_MANA, udg_Hall[x]) + 1.00 ) )
call DisplayTextToForce( udg_FO[x/2], "Turn of Player "+I2S(x+1)+"." )
call ForGroupBJ( GetUnitsInRectOfPlayer(GetPlayableMapRect(), Player(x)), function URT3 )
endfunction
//===========================================================================
function InitTrig_Round_p3 takes nothing returns nothing
set gg_trg_Round_p3 = CreateTrigger( )
call TriggerAddAction( gg_trg_Round_p3, function Trig_Round_p3_Actions )
endfunction
//TESH.scrollpos=0
//TESH.alwaysfold=0
function URT5 takes nothing returns nothing
local unit u = GetEnumUnit()
call PauseUnitBJ( false, u )
if ( IsUnitType(u, UNIT_TYPE_TOWNHALL) != true ) then
call SetUnitManaBJ( u, ( GetUnitStateSwap(UNIT_STATE_MANA, u) + GetUnitWoodCostById(GetUnitTypeId(u)) ) )
endif
set u = null
endfunction
function Trig_Round_p5_Actions takes nothing returns nothing
local integer x = 4
set udg_WhosTurn[x/2] = 0
set udg_CP[x] = ( udg_CP[x] + 1 )
call SetUnitManaBJ( udg_Hall[x], ( GetUnitStateSwap(UNIT_STATE_MANA, udg_Hall[x]) + 1.00 ) )
call ForGroupBJ( GetUnitsInRectOfPlayer(GetPlayableMapRect(), Player(x)), function URT5 )
call DisplayTextToForce( udg_FO[x/2], "Turn of Player "+I2S(x+1)+"." )
endfunction
//===========================================================================
function InitTrig_Round_p5 takes nothing returns nothing
set gg_trg_Round_p5 = CreateTrigger( )
call TriggerAddAction( gg_trg_Round_p5, function Trig_Round_p5_Actions )
endfunction
//TESH.scrollpos=0
//TESH.alwaysfold=0
function URT7 takes nothing returns nothing
local unit u = GetEnumUnit()
call PauseUnitBJ( false, u )
if ( IsUnitType(u, UNIT_TYPE_TOWNHALL) != true ) then
call SetUnitManaBJ( u, ( GetUnitStateSwap(UNIT_STATE_MANA, u) + GetUnitWoodCostById(GetUnitTypeId(u)) ) )
endif
set u = null
endfunction
function Trig_Round_p7_Actions takes nothing returns nothing
local integer x = 6
set udg_WhosTurn[x/2] = 0
set udg_CP[x] = ( udg_CP[x] + 1 )
call SetUnitManaBJ( udg_Hall[x], ( GetUnitStateSwap(UNIT_STATE_MANA, udg_Hall[x]) + 1.00 ) )
call ForGroupBJ( GetUnitsInRectOfPlayer(GetPlayableMapRect(), Player(x)), function URT7 )
call DisplayTextToForce( udg_FO[x/2], "Turn of Player "+I2S(x+1)+"." )
endfunction
//===========================================================================
function InitTrig_Round_p7 takes nothing returns nothing
set gg_trg_Round_p7 = CreateTrigger( )
call TriggerAddAction( gg_trg_Round_p7, function Trig_Round_p7_Actions )
endfunction
//TESH.scrollpos=0
//TESH.alwaysfold=0
function URT2 takes nothing returns nothing
local unit u = GetEnumUnit()
call PauseUnitBJ( false, u )
if ( IsUnitType(u, UNIT_TYPE_TOWNHALL) != true ) then
call SetUnitManaBJ( u, ( GetUnitStateSwap(UNIT_STATE_MANA, u) + GetUnitWoodCostById(GetUnitTypeId(u)) ) )
endif
set u = null
endfunction
function Trig_Round_p2_Actions takes nothing returns nothing
local integer x = 1
set udg_WhosTurn[x/2] = 1
set udg_CP[x] = ( udg_CP[x] + 1 )
call SetUnitManaBJ( udg_Hall[x], ( GetUnitStateSwap(UNIT_STATE_MANA, udg_Hall[x]) + 1.00 ) )
call ForGroupBJ( GetUnitsInRectOfPlayer(GetPlayableMapRect(), Player(x)), function URT2 )
call DisplayTextToForce( udg_FO[x/2], "Turn of Player "+I2S(x+1)+".")
endfunction
//===========================================================================
function InitTrig_Round_p2 takes nothing returns nothing
set gg_trg_Round_p2 = CreateTrigger( )
call TriggerAddAction( gg_trg_Round_p2, function Trig_Round_p2_Actions )
endfunction
//TESH.scrollpos=0
//TESH.alwaysfold=0
function URT4 takes nothing returns nothing
local unit u = GetEnumUnit()
call PauseUnitBJ( false, u )
if ( IsUnitType(u, UNIT_TYPE_TOWNHALL) != true ) then
call SetUnitManaBJ( u, ( GetUnitStateSwap(UNIT_STATE_MANA, u) + GetUnitWoodCostById(GetUnitTypeId(u)) ) )
endif
set u = null
endfunction
function Trig_Round_p4_Actions takes nothing returns nothing
local integer x = 3
set udg_WhosTurn[x/2] = 1
set udg_CP[x] = ( udg_CP[x] + 1 )
call SetUnitManaBJ( udg_Hall[x], ( GetUnitStateSwap(UNIT_STATE_MANA, udg_Hall[x]) + 1.00 ) )
call ForGroupBJ( GetUnitsInRectOfPlayer(GetPlayableMapRect(), Player(x)), function URT4 )
call DisplayTextToForce( udg_FO[x/2], "Turn of Player "+I2S(x+1)+"." )
endfunction
//===========================================================================
function InitTrig_Round_p4 takes nothing returns nothing
set gg_trg_Round_p4 = CreateTrigger( )
call TriggerAddAction( gg_trg_Round_p4, function Trig_Round_p4_Actions )
endfunction
//TESH.scrollpos=0
//TESH.alwaysfold=0
function URT6 takes nothing returns nothing
local unit u = GetEnumUnit()
call PauseUnitBJ( false, u )
if ( IsUnitType(u, UNIT_TYPE_TOWNHALL) != true ) then
call SetUnitManaBJ( u, ( GetUnitStateSwap(UNIT_STATE_MANA, u) + GetUnitWoodCostById(GetUnitTypeId(u)) ) )
endif
set u = null
endfunction
function Trig_Round_p6_Actions takes nothing returns nothing
local integer x = 5
set udg_WhosTurn[x/2] = 1
set udg_CP[x] = ( udg_CP[x] + 1 )
call SetUnitManaBJ( udg_Hall[x], ( GetUnitStateSwap(UNIT_STATE_MANA, udg_Hall[x]) + 1.00 ) )
call ForGroupBJ( GetUnitsInRectOfPlayer(GetPlayableMapRect(), Player(x)), function URT6 )
call DisplayTextToForce( udg_FO[x/2], "Turn of Player "+I2S(x+1)+"." )
endfunction
//===========================================================================
function InitTrig_Round_p6 takes nothing returns nothing
set gg_trg_Round_p6 = CreateTrigger( )
call TriggerAddAction( gg_trg_Round_p6, function Trig_Round_p6_Actions )
endfunction
//TESH.scrollpos=0
//TESH.alwaysfold=0
function URT8 takes nothing returns nothing
local unit u = GetEnumUnit()
call PauseUnitBJ( false, u )
if ( IsUnitType(u, UNIT_TYPE_TOWNHALL) != true ) then
call SetUnitManaBJ( u, ( GetUnitStateSwap(UNIT_STATE_MANA, u) + GetUnitWoodCostById(GetUnitTypeId(u)) ) )
endif
set u = null
endfunction
function Trig_Round_p8_Actions takes nothing returns nothing
local integer x =7
set udg_WhosTurn[x/2] = 1
set udg_CP[x] = ( udg_CP[x] + 1 )
call SetUnitManaBJ( udg_Hall[x], ( GetUnitStateSwap(UNIT_STATE_MANA, udg_Hall[x]) + 1.00 ) )
call ForGroupBJ( GetUnitsInRectOfPlayer(GetPlayableMapRect(), Player(x)), function URT8 )
call DisplayTextToForce( udg_FO[x/2], "Turn of Player "+I2S(x+1)+"." )
endfunction
//===========================================================================
function InitTrig_Round_p8 takes nothing returns nothing
set gg_trg_Round_p8 = CreateTrigger( )
call TriggerAddAction( gg_trg_Round_p8, function Trig_Round_p8_Actions )
endfunction
//TESH.scrollpos=0
//TESH.alwaysfold=0
function Trig_ChooseHuman_Conditions takes nothing returns boolean
return GetUnitTypeId(GetTriggerUnit()) == 'h001' and GetSpellAbilityId() == 'A000'
endfunction
function Trig_ChooseHuman_Actions takes nothing returns nothing
local unit u = GetTriggerUnit()
local real x = GetUnitX(u)
local real y = GetUnitY(u)
local player P = GetOwningPlayer(u)
local integer pid = GetPlayerId(P)
local integer a = 1
local integer typ = 0
local integer ra = 'h002'
call RemoveUnit(u)
set udg_Hall[pid] = CreateUnit(P,ra,x,y,270)
loop
exitwhen a >= 13
call CreateItemLoc( udg_Card[a+12*typ], GetRandomLocInRect(udg_Pick[pid]))
call CreateItemLoc( udg_Card[a+12*typ], GetRandomLocInRect(udg_Pick[pid]))
set a = a + 1
endloop
set u = null
set P = null
endfunction
//===========================================================================
function InitTrig_ChooseHuman takes nothing returns nothing
set gg_trg_ChooseHuman = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_ChooseHuman, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_ChooseHuman, Condition( function Trig_ChooseHuman_Conditions ) )
call TriggerAddAction( gg_trg_ChooseHuman, function Trig_ChooseHuman_Actions )
endfunction
//TESH.scrollpos=0
//TESH.alwaysfold=0
function Trig_ChooseOrc_Conditions takes nothing returns boolean
return GetUnitTypeId(GetTriggerUnit()) == 'h001' and GetSpellAbilityId() == 'A001'
endfunction
function Trig_ChooseOrc_Actions takes nothing returns nothing
local unit u = GetTriggerUnit()
local real x = GetUnitX(u)
local real y = GetUnitY(u)
local player P = GetOwningPlayer(u)
local integer pid = GetPlayerId(P)
local integer a = 1
local integer typ = 2
local integer ra = 'h003'
call RemoveUnit(u)
set udg_Hall[pid] = CreateUnit(P,ra,x,y,270)
loop
exitwhen a >= 13
call CreateItemLoc( udg_Card[a+12*typ], GetRandomLocInRect(udg_Pick[pid]))
call CreateItemLoc( udg_Card[a+12*typ], GetRandomLocInRect(udg_Pick[pid]))
set a = a + 1
endloop
set u = null
set P = null
endfunction
//===========================================================================
function InitTrig_ChooseOrc takes nothing returns nothing
set gg_trg_ChooseOrc = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_ChooseOrc, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_ChooseOrc, Condition( function Trig_ChooseOrc_Conditions ) )
call TriggerAddAction( gg_trg_ChooseOrc, function Trig_ChooseOrc_Actions )
endfunction
//TESH.scrollpos=0
//TESH.alwaysfold=0
function Trig_ChooseUndead_Conditions takes nothing returns boolean
return GetUnitTypeId(GetTriggerUnit()) == 'h001' and GetSpellAbilityId() == 'A005'
endfunction
function Trig_ChooseUndead_Actions takes nothing returns nothing
local unit u = GetTriggerUnit()
local real x = GetUnitX(u)
local real y = GetUnitY(u)
local player P = GetOwningPlayer(u)
local integer pid = GetPlayerId(P)
local integer a = 1
local integer typ = 1
local integer ra = 'h008'
call RemoveUnit(u)
set udg_Hall[pid] = CreateUnit(P,ra,x,y,270)
loop
exitwhen a >= 13
call CreateItemLoc( udg_Card[a+12*typ], GetRandomLocInRect(udg_Pick[pid]))
call CreateItemLoc( udg_Card[a+12*typ], GetRandomLocInRect(udg_Pick[pid]))
set a = a + 1
endloop
set u = null
set P = null
endfunction
//===========================================================================
function InitTrig_ChooseUndead takes nothing returns nothing
set gg_trg_ChooseUndead = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_ChooseUndead, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_ChooseUndead, Condition( function Trig_ChooseUndead_Conditions ) )
call TriggerAddAction( gg_trg_ChooseUndead, function Trig_ChooseUndead_Actions )
endfunction
//TESH.scrollpos=14
//TESH.alwaysfold=0
function Trig_Zombie_Back_Conditions takes nothing returns boolean
return GetUnitTypeId(GetTriggerUnit()) == 'h00I'
endfunction
function RIOT takes nothing returns nothing
local item i = GetEnumItem()
if udg_zombiecheck == 0 and GetItemTypeId(i)== 'I00A' then
set udg_zombiecheck = 1
call RemoveItem(i)
endif
endfunction
function Trig_Zombie_Back_Actions takes nothing returns nothing
local unit u = GetTriggerUnit()
local unit g
local player p = GetOwningPlayer(u)
local integer pid = GetPlayerId(p)
local integer r = GetRandomInt(0,3)
local integer is = 0
local rect re = udg_Area[(pid/2)]
local group G = GetUnitsInRectAll(re)
loop
set g = FirstOfGroup(G)
exitwhen g == null
if GetUnitTypeId(g) == 'h00M' then
set is = is + 1
endif
call GroupRemoveUnit(G,g)
endloop
if r <= is then
call DestroyEffect( AddSpecialEffect("Abilities\\Spells\\Undead\\DeathCoil\\DeathCoilSpecialArt.mdl",GetUnitX(u),GetUnitY(u)) )
call EnumItemsInRect(udg_Grave[pid],null,function RIOT)
call UnitAddItemById(udg_Hall[pid],'I00A')
set udg_zombiecheck = 0
endif
set u = null
set g = null
set p = null
set re = null
call DestroyGroup(G)
set G = null
endfunction
//===========================================================================
function InitTrig_Zombie_Back takes nothing returns nothing
set gg_trg_Zombie_Back = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Zombie_Back, EVENT_PLAYER_UNIT_DEATH )
call TriggerAddCondition( gg_trg_Zombie_Back, Condition( function Trig_Zombie_Back_Conditions ) )
call TriggerAddAction( gg_trg_Zombie_Back, function Trig_Zombie_Back_Actions )
endfunction
//TESH.scrollpos=0
//TESH.alwaysfold=0
function Trig_Bring_Back_Conditions takes nothing returns boolean
return GetSpellAbilityId() == 'A01B'
endfunction
function Trig_Bring_Back_Actions takes nothing returns nothing
local unit u = GetSpellAbilityUnit()
local item t = GetSpellTargetItem()
local player pu = GetOwningPlayer(u)
local integer pid = GetPlayerId(pu)
local real v = GetWidgetMaxLife(t)
if v ==2 then
if (pid ==0 or pid ==1) and (RectContainsItem(t, udg_Grave[0]) or RectContainsItem(t,udg_Grave[1])) then
call UnitAddItem(u,t)
elseif (pid ==2 or pid ==3) and (RectContainsItem(t,udg_Grave[2]) or RectContainsItem(t,udg_Grave[3]) )then
call UnitAddItem(u,t)
elseif (pid ==4 or pid ==5) and (RectContainsItem(t,udg_Grave[4]) or RectContainsItem(t,udg_Grave[5])) then
call UnitAddItem(u,t)
elseif (pid ==6 or pid ==7) and (RectContainsItem(t,udg_Grave[6]) or RectContainsItem(t,udg_Grave[7]) )then
call UnitAddItem(u,t)
else
call IssueImmediateOrder( u, "stop" )
endif
else
call IssueImmediateOrder( u, "stop" )
endif
set u = null
set t = null
set pu = null
endfunction
//===========================================================================
function InitTrig_Bring_Back takes nothing returns nothing
set gg_trg_Bring_Back = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Bring_Back, EVENT_PLAYER_UNIT_SPELL_CAST )
call TriggerAddCondition( gg_trg_Bring_Back, Condition( function Trig_Bring_Back_Conditions ) )
call TriggerAddAction( gg_trg_Bring_Back, function Trig_Bring_Back_Actions )
endfunction
//TESH.scrollpos=0
//TESH.alwaysfold=0
function Trig_enters_game_Conditions takes nothing returns boolean
return GetUnitTypeId(GetTriggerUnit()) == 'h00H'
endfunction
function Trig_enters_game_Actions takes nothing returns nothing
local unit u = GetEnteringUnit()
local player p = GetOwningPlayer(u)
local integer x = GetPlayerId(p)
call PolledWait(0.01)
call SetUnitPathing( u, false )
call SetUnitPosition(u,GetUnitX(udg_Hall[x]),GetUnitY(udg_Hall[x]) )
set u = null
set p = null
endfunction
//===========================================================================
function InitTrig_enters_game takes nothing returns nothing
set gg_trg_enters_game = CreateTrigger( )
call TriggerRegisterEnterRectSimple( gg_trg_enters_game, GetPlayableMapRect() )
call TriggerAddCondition( gg_trg_enters_game, Condition( function Trig_enters_game_Conditions ) )
call TriggerAddAction( gg_trg_enters_game, function Trig_enters_game_Actions )
endfunction
//TESH.scrollpos=15
//TESH.alwaysfold=0
function Trig_RA_run_Conditions takes nothing returns boolean
local integer a = 0
local integer att = GetSpellAbilityId()
loop
exitwhen a > 16
if att == udg_Att[a] then
return true
endif
set a=a+1
endloop
return false
endfunction
function Trig_RA_run_Actions takes nothing returns nothing
local unit u = GetSpellAbilityUnit()
local unit g
local player p = GetOwningPlayer(u)
local integer pid = GetPlayerId(p)
local integer count = 0
local rect r = udg_Area[(pid/2)]
local group G = GetUnitsInRectAll(r)
loop
set g = FirstOfGroup(G)
exitwhen g == null
if GetUnitTypeId(g) == 'h00H' then
call RemoveUnit(g)
call DestroyEffect( AddSpecialEffect("Abilities\\Spells\\Human\\ThunderClap\\ThunderClapCaster.mdl",GetUnitX(u),GetUnitY(u)) )
call KillUnit( u )
set u = null
set g = null
set p = null
set r = null
call DestroyGroup(G)
set G = null
return
endif
call GroupRemoveUnit(G,g)
endloop
set u = null
set g = null
set p = null
set r = null
call DestroyGroup(G)
set G = null
endfunction
//===========================================================================
function InitTrig_RA_run takes nothing returns nothing
set gg_trg_RA_run = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_RA_run, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_RA_run, Condition( function Trig_RA_run_Conditions ) )
call TriggerAddAction( gg_trg_RA_run, function Trig_RA_run_Actions )
endfunction
//TESH.scrollpos=16
//TESH.alwaysfold=0
function Trig_Increase_Life_Conditions takes nothing returns boolean
local integer a = 0
local integer att = GetSpellAbilityId()
loop
exitwhen a > 16
if att == udg_Att[a] then
return true
endif
set a=a+1
endloop
return false
endfunction
function Trig_Increase_Life_Actions takes nothing returns nothing
local unit u = GetSpellAbilityUnit()
local unit t = GetSpellTargetUnit()
local player pu = GetOwningPlayer(u)
local player pt = GetOwningPlayer(t)
local integer pid = GetPlayerId(pu)
local integer tid = GetPlayerId(pt)
local unit monument = udg_Hall[pid]
local real life = GetWidgetLife(u)
local real life2 = GetWidgetLife(t)
local real life3 = GetWidgetLife(monument)
if GetUnitAbilityLevel(u,'B000') > 0 and t != null then
call SetUnitState(u, UNIT_STATE_LIFE,life+10 )
call SetUnitState(t, UNIT_STATE_LIFE,life2+10 )
call SetUnitMaxState(monument, UNIT_STATE_MAX_LIFE,R2I(life3+20) )
call SetUnitState(monument, UNIT_STATE_LIFE,life3+20 )
endif
set u = null
set t = null
set pu = null
set pt = null
set monument = null
endfunction
//===========================================================================
function InitTrig_Increase_Life takes nothing returns nothing
set gg_trg_Increase_Life = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Increase_Life, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_Increase_Life, Condition( function Trig_Increase_Life_Conditions ) )
call TriggerAddAction( gg_trg_Increase_Life, function Trig_Increase_Life_Actions )
endfunction