Name | Type | is_array | initial_value |
AA_Ability | abilcode | No | |
AA_Integer | integer | No | |
AA_Integer2 | integer | No | |
AA_Player | player | No | |
AA_PlayerGroup | force | No | |
AA_Point | location | No | |
AA_Point2 | location | No | |
AA_Point3 | location | No | |
AA_Real | real | No | |
AA_Real2 | real | No | |
AA_String | string | No | |
AA_String2 | string | No | |
AA_Unit | unit | No | |
AA_UnitGroup | group | No | |
AA_UnitGroup2 | group | No | |
AA_UnitType | unitcode | No | |
AAEngine_Table | hashtable | No | |
AncientBlood_Perc | real | No | 0.50 |
AncientDefend_HpPerc | real | No | 0.30 |
AncientDefend_TempInt | real | No | |
AncientTree_Area | real | No | 300.00 |
AncientTree_Dmg | real | No | 3000.00 |
AncientTree_Heal | real | No | 100.00 |
AncientTree_HolyHeal | real | No | 0.05 |
AngelicDream_Perc | real | No | 0.33 |
ArcaneAdept_Area | real | No | 220.00 |
ArcaneAdept_Dmg | real | No | 30.00 |
ArcaneAdept_Head | integer | No | |
ArcaneAdept_Max | integer | No | 999 |
ArcaneAdept_Table | hashtable | No | |
ArcaneAdept_Tail | integer | No | |
ArcaneMage_Area | real | No | 250.00 |
ArcaneMage_BaseDmg | real | No | 1.00 |
ArcaneMage_BuffGroup | group | No | |
ArcaneMage_DmgInc | real | No | 3.00 |
ArcaneMage_EventGroup | group | No | |
ArcaneMage_ExpDmg | real | No | 250.00 |
ArcaneMage_LockGroup | group | No | |
ArcaneMage_Table | hashtable | No | |
ArcaneMage_TotalArea | real | No | 0.00 |
ArcaneMage_TotalDmg | real | No | 0.00 |
ArcaneMage_TotalExpDmg | real | No | 0.00 |
ArcaneTreasures_AgiMax | real | No | 220.00 |
ArcaneTreasures_AgiMin | real | No | 200.00 |
ArcaneTreasures_BootsMax | real | No | 1.75 |
ArcaneTreasures_BootsMin | real | No | 0.00 |
ArcaneTreasures_ChromMax | real | No | 320.50 |
ArcaneTreasures_ChromMin | real | No | 320.00 |
ArcaneTreasures_CorMax | real | No | 300.50 |
ArcaneTreasures_CorMin | real | No | 300.00 |
ArcaneTreasures_FireMax | real | No | 10.50 |
ArcaneTreasures_FireMin | real | No | 10.00 |
ArcaneTreasures_FrostMax | real | No | 20.50 |
ArcaneTreasures_FrostMin | real | No | 20.00 |
ArcaneTreasures_GlassMax | real | No | 330.50 |
ArcaneTreasures_GlassMin | real | No | 330.00 |
ArcaneTreasures_HammerMax | real | No | 30.22 |
ArcaneTreasures_HammerMin | real | No | 30.00 |
ArcaneTreasures_IntMax | real | No | 255.00 |
ArcaneTreasures_IntMin | real | No | 240.00 |
ArcaneTreasures_MaxRoll | real | No | 900.00 |
ArcaneTreasures_PendantMax | real | No | 40.15 |
ArcaneTreasures_PendantMin | real | No | 40.00 |
ArcaneTreasures_PGManaMax | real | No | 50.50 |
ArcaneTreasures_PGManaMin | real | No | 50.00 |
ArcaneTreasures_PManaMax | real | No | 107.00 |
ArcaneTreasures_PManaMin | real | No | 100.00 |
ArcaneTreasures_RobeMax | real | No | 70.10 |
ArcaneTreasures_RobeMin | real | No | 70.00 |
ArcaneTreasures_ROLL | real | No | 0.00 |
ArcaneTreasures_ScrollMax | real | No | 125.00 |
ArcaneTreasures_ScrollMin | real | No | 120.00 |
ArcaneTreasures_SobiMax | real | No | 90.25 |
ArcaneTreasures_SobiMin | real | No | 90.00 |
ArcaneTreasures_StrMax | real | No | 240.00 |
ArcaneTreasures_StrMin | real | No | 220.00 |
ArcaneTreasures_TrueStrikeMax | real | No | 340.25 |
ArcaneTreasures_TrueStrikeMin | real | No | 340.00 |
ArcaneTreasures_VirtMax | real | No | 310.50 |
ArcaneTreasures_VirtMin | real | No | 310.00 |
ArkenStone_DmgGroup | group | No | |
ArkenStone_Group | group | Yes | |
ArkenStone_HpPerc | real | No | 0.60 |
AstralStrike_Perc | real | No | 0.25 |
Autocast_Table | hashtable | No | |
BallisticsExpertise_Limit | integer | No | 2 |
BallisticsExpertise_TempUnit | unit | Yes | |
BallisticsExpertise_Timer | timer | Yes | |
Bellow_Counter | integer | No | |
Bellow_Dur | integer | No | 10 |
Bellow_MaxUnits | integer | No | 3 |
Bellow_MinUnits | integer | No | 1 |
Bellow_Table | hashtable | No | |
Bellow_TauntGroup | group | No | |
BestowFort_Dur | real | No | 90.00 |
BestowFort_EffectGroup | group | No | |
BestowFort_Head | integer | No | 0 |
BestowFort_Max | integer | No | 100 |
BestowFort_Search | integer | No | 0 |
BestowFort_Tail | integer | No | 0 |
BestowFort_Units | unit | Yes | |
BestowFortitude_Group1 | group | No | |
BestowFortitude_Group2 | group | No | |
BestowFortitude_Group3 | group | No | |
BestowSight_Dur | real | No | 60.00 |
BestowSight_Head | integer | No | |
BestowSight_Max | integer | No | 40 |
BestowSight_Search | integer | No | |
BestowSight_Tail | integer | No | |
BestowSight_Units | unit | Yes | |
BindingStones_Chance | real | No | 25.00 |
BindingStones_EventGroup | group | No | |
BindingStones_LockGroup | group | No | |
BindingStones_Roll | real | No | |
Blizzard_Dur | real | No | 10.00 |
BloodFountain_HPThresh | real | No | 735.00 |
BookOfCata_Perc | real | No | 2.00 |
BookOfKindling_Perc | real | No | 0.50 |
BountyHunger_TotalGold | integer | Yes | |
BountyHunter_BonusGold | integer | No | 2 |
BountyHunter_Chance | real | No | 10.00 |
BountyHunter_Roll | real | No | 0.00 |
BrainSnap_Chance | real | No | 15.00 |
BrainSnap_EventGroup | group | No | |
BrainSnap_LockGroup | group | No | |
BrainSnap_Roll | real | No | |
BranchOfCrea_Perc | real | No | 1.10 |
BuilderType | unitcode | Yes | |
Comet_Area | real | No | 275.00 |
Comet_Chance | real | No | 6.00 |
Comet_Damage | real | No | 100.00 |
Comet_FlyChange | real | No | 21.00 |
Comet_MinFly | real | No | 30.00 |
Comet_Roll | real | No | 0.00 |
Comet_Table | hashtable | No | |
Comet_TempPoint | location | No | |
Comet_TempTargets | group | No | |
Comet_TempUnit | unit | No | |
Comet_Units | group | No | |
Constructed_BugGroup | group | No | |
CreatorOfDarkness | unit | No | |
Crystalis_AttackThresh | integer | No | 8 |
Crystalis_Table | hashtable | No | |
Crystalis_TempCount | integer | No | |
Crystalis_TempFloat | texttag | No | |
Crystalis_TempID | integer | No | |
Crystalis_TempUnit | unit | No | |
Crystalis_Text | string | Yes | |
Crystalis_UnitID | integer | No | |
Current_Players | force | No | |
DemonSlayer_BonusDMG | real | No | |
DemonSlayer_DMGperHP | real | No | 22.00 |
DemonSlayer_EventGroup | group | No | |
DemonSlayer_TotalDMG | real | No | |
DemonSlayer_UnitGroup | group | No | |
Dialog_Builder | dialog | No | |
Dialog_Buttons | button | Yes | |
Dialog_Max | integer | No | 8 |
Difficulty | integer | No | 2 |
Difficulty_Buttons | button | Yes | |
Difficulty_Dialog | dialog | No | |
Difficulty_Scale | real | Yes | |
Difficulty_String | string | Yes | |
Difficulty_Tally | real | No | |
Difficulty_Timer | timer | No | |
Difficulty_TimerDur | real | No | 10.00 |
Difficulty_TimerWind | timerdialog | No | |
Difficulty_Votes | real | No | |
DistanceCheck_Table | hashtable | No | |
DragonHeart_BonusDmg | real | No | |
DragonHeart_DmgInc | real | No | 0.15 |
DragonHeart_EventGroup | group | No | |
DragonHeart_LockGroup | group | No | |
DragonHeart_TotalDmg | real | No | |
DragonTower_Area | real | No | 350.00 |
DragonTower_BurnGroup | group | No | |
DragonTower_DPS | real | No | 4.00 |
DragonTower_Dur | integer | No | 10 |
DragonTower_InitialDMG | real | No | 40.00 |
DreamCaster_Area | real | No | 300.00 |
DreamCaster_Count | integer | No | 0 |
DreamCaster_HPdmg | real | No | 0.25 |
DreamCaster_MaxAddUnits | integer | No | 2 |
EliteHunter_MaxLvl | integer | No | 51 |
Ethereal_UnitGroup | group | No | |
FireBombAssault_Casts | integer | No | 5 |
FireBombAssault_CD | real | No | 1.00 |
FireBombAssault_Group | group | No | |
FireBombAssault_Table | hashtable | No | |
FireBombAssault_TempCast | integer | No | |
FirestormMaster_Dur | real | No | 10.00 |
FirestormMaster_Head | integer | No | |
FirestormMaster_Max | integer | No | 20 |
FirestormMaster_Tail | integer | No | |
FirestormMaster_Units | unit | Yes | |
FogMachine_Dur | real | No | 15.00 |
FogMachine_Range | real | No | 300.00 |
FogMachine_UnitGroup | group | No | |
FourTowers | group | No | |
FourTowers_Lock | boolean | No | |
FrostBite_Dmg | real | No | |
FrostBite_FreezeDmg | real | No | 50.00 |
FrostBite_SlowDmg | real | No | 25.00 |
FrostBite_UnitGroup | group | No | |
FrostIron_Chance | real | No | 33.00 |
FrostIron_Roll | real | No | 0.00 |
FtnOfRebirth_Head | integer | No | |
FtnOfRebirth_HealGroup | unit | Yes | |
FtnOfRebirth_HealMax | integer | No | 60 |
FtnOfRebirth_Tail | integer | No | |
FtnofRebirth_UnitGroup | group | No | |
GDD__Integers | integer | Yes | |
GDD__LeftMapGroup | group | No | |
GDD__TriggerArray | trigger | Yes | |
GDD__UnitArray | unit | Yes | |
GDD_Damage | real | No | |
GDD_DamagedUnit | unit | No | |
GDD_DamageSource | unit | No | |
GDD_Event | real | No | |
GhostRay_BonusDmg | real | No | |
GhostRay_DmgPerc | real | No | 1.00 |
GiveGold_Amount | integer | No | |
GiveLumber_String | string | No | |
GoblinMachines_Group | group | No | |
GoldenAge_BonusGold | integer | No | 8 |
GoldenAge_Dur | real | No | 60.00 |
GoldenAge_SellPerc | real | No | 0.80 |
GoldenAge_Timer | timer | Yes | |
GoldenAge_TimerWindow | timerdialog | Yes | |
GoldenAge_Triggers | trigger | Yes | |
GravitonCore_PercHp | real | No | 0.99 |
GravitonCore_PercSh | real | No | 0.97 |
HeroSkin_Buttons | button | Yes | |
HeroSkin_Dialog | dialog | No | |
HeroSkin_UnitType | unitcode | Yes | |
HolyStone_PercHP | real | No | 6.00 |
HuntersTrophyHall_Int | integer | No | |
HuntersTrophyHall_KillThresh | integer | No | 4 |
HuntersTrophyHall_Units | group | No | |
HyperCore_InitialCharge | integer | No | 2 |
ImbuedEnsare_Effect | effect | Yes | |
ImbuedEnsare_Head | integer | No | |
ImbuedEnsare_Max | integer | No | 30 |
ImbuedEnsare_Search | integer | No | |
ImbuedEnsare_Tail | integer | No | |
ImbuedEnsare_Units | unit | Yes | |
ImbueElectricity_Point | location | No | |
ImbueElectricty_DmgGrp | group | No | |
ImbueElectricty_Head | integer | No | |
ImbueElectricty_Max | integer | No | 15 |
ImbueElectricty_Search | integer | No | |
ImbueElectricty_Tail | integer | No | |
ImbueElectricty_Units | unit | Yes | |
ImbuePoison_Effect | effect | Yes | |
ImbuePoison_Head | integer | No | |
ImbuePoison_Max | integer | No | 30 |
ImbuePoison_Search | integer | No | |
ImbuePoison_Tail | integer | No | |
ImbuePoison_Units | unit | Yes | |
ImmuneBreaker_Chance | real | No | 100.00 |
ImmuneBreaker_EventGroup | group | No | |
ImmuneBreaker_LockGroup | group | No | |
ImmuneBreaker_Roll | real | No | |
IonField_Area | real | No | 450.00 |
IonField_CD | real | No | 2.50 |
IonField_Dmg | real | No | 200.00 |
IonField_Index | integer | No | |
IonField_IonAttackGroup | group | No | |
IonField_IonCount | integer | No | |
IonField_IonDur | real | No | 7.00 |
IonField_IonGroup | group | Yes | |
IonField_IonIndex | integer | No | |
IonField_IonMax | integer | No | 250 |
IonField_IonTimer | timer | Yes | |
IonField_Table | hashtable | No | |
IonField_TempTimer | timer | No | |
IonField_TempUnit | unit | No | |
IonField_Timer | timer | Yes | |
IonField_TotalDmg | real | No | 0.00 |
Leaderboard | leaderboard | No | |
Leak_Rotation | integer | Yes | 0 |
LeakRegions_Blue | rect | Yes | |
LeakRegions_Purp | rect | Yes | |
LeakRegions_Red | rect | Yes | |
LeakRegions_Teal | rect | Yes | |
Level | integer | No | |
Level_AttackRound | boolean | No | |
Level_ManaBonus | real | No | 100.00 |
Level_Max | integer | No | 41 |
Level_UnitType | unitcode | Yes | |
LevelGold_Base | integer | No | 14 |
LevelGold_LevelFactor | integer | No | 1 |
LevelHP_AirAdjust | real | No | 1.50 |
LevelHP_Base | real | No | 150.00 |
LevelHP_Constant | real | Yes | 50.00 |
LevelHP_Index | integer | No | |
LevelHP_JumpAmount | real | No | 200.00 |
LevelHP_JumpFactor | real | No | 40.00 |
LevelHP_JumpLvl | real | No | 7.00 |
LevelHP_Units | real | Yes | |
LevelHPCalc_Base | real | No | |
LevelHPCalc_Constant | real | No | |
LevelHPCalc_Jump | real | No | |
LevelSpring_Head | integer | No | |
LevelSprint_Max | integer | No | 150 |
LevelSprint_Tail | integer | No | |
LevelSprint_UnitGroup | group | No | |
LevelSprint_Units | unit | Yes | |
LevelTimer | timer | No | |
LevelTimer_ExtTime | real | No | 60.00 |
LevelTimer_FinalTime | real | No | 60.00 |
LevelTimer_InitialTime | real | No | 120.00 |
LevelTimer_Time | real | No | 25.00 |
LevelTimer_Window | timerdialog | No | |
Levi_Percent | real | No | 0.33 |
LeviEye_Area | real | No | 125.00 |
LightBringer_BugGroup | group | No | |
LightBringer_Point1 | location | No | |
LightBringer_Point2 | location | No | |
LightBringer_Table | hashtable | No | |
LightningRod_Chance | real | No | 10.00 |
LightningRod_Roll | real | No | |
LightningRod_Table | hashtable | No | |
LightningStone_BonusChance | real | No | 2.00 |
LuckyDeflect_Effect | effect | Yes | |
LuckyDeflect_Head | integer | No | |
LuckyDeflect_Max | integer | No | 50 |
LuckyDeflect_Search | integer | No | |
LuckyDeflect_Tail | integer | No | |
LuckyDeflect_Units | unit | Yes | |
LuckyHeadshot_Effect | effect | Yes | |
LuckyHeadshot_Head | integer | No | |
LuckyHeadshot_Max | integer | No | 30 |
LuckyHeadshot_Search | integer | No | |
LuckyHeadshot_Tail | integer | No | |
LuckyHeadshot_Units | unit | Yes | |
LuckyKnockout_Effect | effect | Yes | |
LuckyKnockout_Head | integer | No | |
LuckyKnockout_Max | integer | No | 30 |
LuckyKnockout_Search | integer | No | 0 |
LuckyKnockout_Tail | integer | No | |
LuckyKnockout_Units | unit | Yes | |
Luminous_DmgBonus | real | No | |
Luminous_DmgPerc | real | No | 0.50 |
MagnatonCore_ManaPerc | real | No | 0.80 |
MagneticField_Area | real | No | 450.00 |
MagneticField_CD | real | No | 1.80 |
MagneticField_Damage | real | No | 25.00 |
MagneticField_Index | integer | No | |
MagneticField_Table | hashtable | No | |
MagneticField_TempTimer | timer | No | |
MagneticField_TempUnit | unit | No | |
MagneticField_Timer | timer | Yes | |
MagneticField_TotalDamage | real | No | 0.00 |
MagneticField_VisCount | integer | No | |
MagneticField_VisDur | real | No | 10.00 |
MagneticField_VisGroup | group | Yes | |
MagneticField_VisIndex | integer | No | |
MagneticField_VisMax | integer | No | 250 |
MagneticField_VisTimer | timer | Yes | |
MechaGolem_BoostMax | integer | Yes | 3 |
MechaGolem_BoostUpgrade | integer | No | 5 |
MechaGolem_Point1 | location | No | |
MechaGolem_Point2 | location | No | |
Megacharge_AttackThresh | integer | No | 14 |
Megacharge_BonusDmg | real | No | |
Megacharge_PercDmg | real | No | 6.00 |
Megacharge_Table | hashtable | No | |
Megacharge_TempCount | integer | No | |
Megacharge_TempFloat | texttag | No | |
Megacharge_Text | string | Yes | |
MindBlaster_Percent | real | No | 0.05 |
MindBlaster_TotalDmg | real | No | |
MindBlaster_UnitGroup | group | No | |
MonsoonTower_Area | real | No | 300.00 |
MonsoonTower_Degree | integer | No | 36 |
MonsoonTower_Effect | group | Yes | |
MonsoonTower_Integer | integer | No | |
MonsoonTower_Max | integer | No | 99 |
MonsoonTower_MaxArea | real | No | 900.00 |
MonsoonTower_MaxDelay | real | No | 1.80 |
MonsoonTower_MinArea | real | No | 200.00 |
MonsoonTower_MinDelay | real | No | 0.50 |
MonsoonTower_Point1 | location | No | |
MonsoonTower_Point2 | location | No | |
MonsoonTower_Tail | integer | No | 0 |
MonsoonTower_WaterDMG | real | No | 700.00 |
MonsoonTower_WindDMG | real | No | 100.00 |
MonsoonTower_WindTime | real | No | 2.00 |
Multiboard | multiboard | No | |
Multiboard_Kills | integer | Yes | |
Multiboard_LevelRowOffset | integer | No | 3 |
Multiboard_MaxCol | integer | No | 4 |
Multiboard_MaxLevels | integer | No | 3 |
Multiboard_MaxRows | integer | No | 0 |
Multiboard_MinRows | integer | No | 6 |
Multiboard_PlayerNum | integer | No | |
Multiboard_PlayerRow | integer | Yes | |
Multiboard_SpaceOffset | integer | No | 2 |
Multiboard_StringArmor | string | Yes | |
Multiboard_StringType | string | Yes | |
Multiboard_TempPos | integer | No | 1 |
NetherWar_BaseBonus | real | No | 800.00 |
NetherWar_BonusDMG | real | No | 0.00 |
NetherWar_DmgRed | real | No | 0.00 |
NetherWar_EventGroup | group | No | |
NetherWar_HPperc | real | No | 1.00 |
NetherWar_HPpercentDMG | real | No | 66.00 |
NetherWar_LockGroup | group | No | |
NetherWar_TotalDMG | real | No | 0.00 |
OceanTopaz_Max | integer | No | 25 |
OrbInferno_Area | real | No | 180.00 |
OrbInferno_DmgPerc | real | No | 0.15 |
OrbInferno_Lock | boolean | No | |
OrbInferno_TempGroup | group | No | |
OrbInferno_TempPoint | location | No | |
OrbVirtue_Lock | boolean | No | |
OrbVirtue_PercMp | real | No | 0.30 |
Order_Index | integer | No | |
Order_Max | integer | No | 200 |
Order_Points | location | Yes | |
Order_Tail | integer | No | |
Order_Units | unit | Yes | |
Overcharge_Area | real | No | 250.00 |
Overcharge_AttackThresh | integer | No | 10 |
Overcharge_BugGroup | group | No | |
Overcharge_InitialCharge | integer | Yes | 1 |
Overcharge_PercDmg | real | No | 2.50 |
Overcharge_Table | hashtable | No | |
Overcharge_TargetDmg | real | No | |
Overcharge_TempCount | integer | No | |
Overcharge_TempFloat | texttag | No | |
Overcharge_TempPoint | location | No | |
Overcharge_TempUnitGroup | group | No | |
Overcharge_Text | string | Yes | |
Overcharge_TotalDmg | real | No | |
Pathing_LeakKey | integer | No | 5 |
Pathing_Table | hashtable | No | |
PhilStone_CastMax | integer | No | 5 |
PhilStone_Table | hashtable | No | |
PhilStone_TempInt | integer | No | |
PhilStoneOLD_Area | real | No | 65.00 |
PlayerBuilder | unit | Yes | |
PlayerHero | unit | Yes | |
PortalFight_HpReduc | real | No | 0.10 |
PowerNet_BonusDmg | integer | No | 30 |
PowerNet_BugGroup | group | No | |
PowerNet_CurrentLevel | integer | Yes | |
PowerNet_Max | integer | No | 10 |
PredDom_Table | hashtable | No | |
PulsarTower_Dmg | real | No | 10.00 |
PulsarTower_DmgUpg | real | No | 15.00 |
PulsarTower_Dur | integer | No | 2 |
PulsarTower_Integer | integer | No | |
PulsarTower_Interval | real | No | 0.10 |
PulsarTower_KeyHead | integer | No | |
PulsarTower_KeyMax | integer | No | 1000 |
PulsarTower_KeyTail | integer | No | |
PulsarTower_Max | integer | No | |
PulsarTower_Table | hashtable | No | |
PulsarTower_TempCaster | unit | No | |
PulsarTower_TempCount | integer | No | |
PulsarTower_TempMana | real | No | 0.00 |
PulsarTower_TempTarget | unit | No | |
PulsarTower_Timer | timer | No | |
PurgingWinds_UnitGroup | group | No | |
RecurringDream_Thresh | real | No | 25.00 |
Reflector_ActiveGroup | group | No | |
Reflector_Lock | boolean | No | |
Reflector_ReturnPerc | real | No | 10.00 |
Reflector_TotalDmg | real | No | 0.00 |
RingofAtlantis_Perc | real | No | 0.80 |
Sell_Percent | real | No | 0.60 |
Sell_Table | hashtable | No | |
Sell_TempGold | integer | No | |
ShieldPiercer_Boolean | boolean | No | |
ShieldPiercer_Burn | real | No | 20.00 |
SiegeMachine_DmgBonus | real | No | 0.00 |
SiegeMachine_MaxDistance | real | No | 1400.00 |
SiegeMachine_MaxDmgPerc | real | No | 0.40 |
SiegeMachine_TempDmgPoint | location | No | |
SiegeMachine_TempTargPoint | location | No | |
SiegeMachine_UnitGroup | group | No | |
Skip_Flag | integer | Yes | |
Skip_Total | integer | No | |
SkyCommand_Group | group | No | |
SoulEngine_BonusDmg | integer | No | 50 |
SoulEngine_Dur | real | No | 300.00 |
SoulEngine_InitialUpgraded | boolean | Yes | |
SoulEngine_Mana | real | No | 0.75 |
SoulEngine_Souls | integer | No | 350 |
SoulEngine_Timer | timer | Yes | |
SoulEngine_TimerWind | timerdialog | Yes | |
SoulEngineOLD_Count | integer | No | |
SoulEngineOLD_Notify | boolean | Yes | true |
SoulEngineOLD_Threshold | integer | No | 20 |
SoulEngineOLD_UnitGroup | group | Yes | |
Souls_AstrologCD | real | No | 60.00 |
Souls_AstrologCDRed | real | No | 5.00 |
Souls_AstrologCost | integer | No | 250 |
Souls_AstrologMinCD | real | No | 15.00 |
Souls_ChampionCost | integer | No | 1000 |
Souls_ChampionHP | real | No | 0.25 |
Souls_Collected | integer | Yes | |
Souls_GuardianCost | integer | No | 1000 |
Souls_GuardianHP | real | No | 0.50 |
Souls_GuardianTemp | real | No | |
Souls_GuardianTempUnit | unit | No | |
Souls_VoyagerCost | integer | No | 100 |
Souls_VoyagerHp | real | No | 50.00 |
Souls_WarriorCost | integer | No | 100 |
SparkFamiliar_Degree | real | No | |
SparkFamiliar_DegreeInc | real | No | 5.00 |
SparkFamiliar_Integer | integer | No | |
SparkFamiliar_Point | location | No | |
SparkFamiliar_Point2 | location | No | |
SparkFamiliar_Unit | unit | Yes | |
Spawn_AllUnits | group | No | |
SpawnAttacker2 | rect | Yes | |
SpawnGroups | group | Yes | |
SpawnOrder_Radius | real | No | 100.00 |
SpawnOrder_UnitGroup | group | No | |
Spawns | rect | Yes | |
SpectralLight_HPperc | real | No | 0.01 |
SpellImmunity_Group | group | No | |
SpiritCore_Bonus | real | No | 0.25 |
SpiritCore_SoulPercBonus | real | No | 0.33 |
Sprint_MoveInc | real | No | 0.75 |
StarCollect_TempCount | integer | No | |
StormReach_Add | integer | No | 10 |
Tempest_Dmg | real | No | 250.00 |
Tempest_InitialDmg | real | No | 325.00 |
Tempest_Time | real | No | 3.00 |
Tempest_WaveMax | integer | No | 4 |
Tesla_ChargeInc | integer | Yes | 1 |
Tesla_Lock | boolean | No | |
TeslaCoil_HyperDur | real | No | 20.00 |
TeslaCoil_HyperInc | integer | No | 2 |
TeslaCoil_HyperTimer | timer | Yes | |
TeslaCoil_Table | hashtable | No | |
TeslaCoil_TempUnit | unit | No | |
TeslaSci_BonusDmg | integer | No | 150 |
TeslaSci_BugGroup | group | No | |
TeslaSci_ResetGroup | group | No | |
TeslaSci_Table | hashtable | No | |
TeslaSci_UnitGroup | group | No | |
Test_Flag | boolean | No | |
Test_LeakCounter | integer | No | |
Test_SetLevel | integer | No | |
Thunderstorm_Count | integer | Yes | |
Thunderstorm_MaxLvl | integer | No | 14 |
Thunderstorm_Perc | real | No | 2.00 |
TimeKeeper_Table | hashtable | No | |
Tip_Index | integer | No | |
Tip_Players | force | No | |
Tip_Time | real | No | 16.00 |
Tip_Timer | timer | No | |
Tips | string | Yes | |
Tips_Max | integer | No | 15 |
TornadoCaller_Area | real | No | 125.00 |
TornadoCaller_Count | integer | Yes | |
TornadoCaller_Dmg | real | No | 105.00 |
TornadoCaller_DmgGroup | group | Yes | |
TornadoCaller_Head | integer | No | |
TornadoCaller_Increment | real | No | 100.00 |
TornadoCaller_LoopMax | integer | No | 15 |
TornadoCaller_LoopMaxCombine | integer | No | |
TornadoCaller_LoopMin | integer | No | 4 |
TornadoCaller_Max | integer | No | 125 |
TornadoCaller_Offset | real | No | -200.00 |
TornadoCaller_Table | hashtable | No | |
TornadoCaller_Tail | integer | No | |
TornadoCaller_TempGroup | group | No | |
TornadoCaller_Wait | real | No | 0.10 |
UnstableCore_Area | real | No | 300.00 |
UnstableCore_DeathDmgPerc | real | No | 1.00 |
UnstableCore_DmgPerc | real | No | 1.06 |
Victory_HeroSpawns | rect | Yes | |
Victory_TempATT | integer | No | |
Victory_TempGold | integer | No | |
VoidGateway_Area | real | No | 250.00 |
VoidGateway_HPdmg | real | No | 0.33 |
VoidGateway_Integer | integer | No | |
VoidGateway_Time | real | No | 3.00 |
VoidGateway_UnitGroup | group | No | |
WarBonds_GoldBonus | integer | Yes | |
WarBonds_Integer | integer | No | |
WarBonds_Interest | real | No | 0.25 |
WarBonds_Key | integer | No | 5 |
WarBonds_ManaBonus | real | No | 0.33 |
WaterElemental_FreezeChance | real | No | 10.00 |
WaterElemental_FreezeRoll | real | No | |
WaterElemental_SoakDmg | real | No | 23.00 |
WaterElemental_StaticChance | real | No | 4.00 |
WaterElemental_StaticChanceT | real | No | 0.00 |
WaterElemental_StaticPerc | real | No | 0.33 |
WaterElemental_StaticRoll | real | No | |
WaterElemental_UnitGroup | group | No | |
Wave | integer | No | |
Wave_Interval | real | No | 0.70 |
Wave_IntSep | integer | No | |
Wave_Max | integer | No | 18 |
Wave_PlayerInt | integer | No | |
WaveTimer | timer | No | |
ZealBreaker_Dmg | real | No | |
ZealBreaker_EventGroup | group | No | |
ZealBreaker_Percent | real | No | 0.75 |
ZealBreaker_TotalDmg | real | No | |
ZealBreaker_UnitGroup | group | No |
// GUI-Friendly Damage Detection -- v1.2.1 -- by Weep
// http:// www.thehelper.net/forums/showthread.php?t=137957
//
// Requires: only this trigger and its variables.
//
// -- What? --
// This snippet provides a leak-free, GUI-friendly implementation of an "any unit takes
// damage" event. It requires no JASS knowledge to use.
//
// It uses the Game - Value Of Real Variable event as its method of activating other
// triggers, and passes the event responses through a few globals.
//
// -- Why? --
// The traditional GUI method of setting up a trigger than runs when any unit is damaged
// leaks trigger events. This snippet is easy to implement and removes the need to do
// you own GUI damage detection setup.
//
// -- How To Implement --
// 0. Before you copy triggers that use GDD into a new map, you need to copy over GDD
// with its GDD Variable Creator trigger, or there will be a problem: the variables
// won't be automatically created correctly.
//
// 1. Be sure "Automatically create unknown variables while pasting trigger data" is
// enabled in the World Editor general preferences.
// 2. Copy this trigger category ("GDD") and paste it into your map.
// (Alternately: create the variables listed in the globals block below, create a
// trigger named "GUI Friendly Damage Detection", and paste in this entire text.)
// 3. Create your damage triggers using Game - Value Of Real Variable as the event,
// select GDD_Event as the variable, and leave the rest of the settings to the default
// "becomes Equal to 0.00".
// The event responses are the following variables:
// GDD_Damage is the amount of damage, replacing Event Response - Damage Taken.
// GDD_DamagedUnit is the damaged unit, replacing Event Response - Triggering Unit.
// Triggering Unit can still be used, if you need to use waits.
// Read the -- Notes -- section below for more info.
// GDD_DamageSource is the damaging unit, replacing Event Response - Damage Source.
//
// -- Notes --
// GDD's event response variables are not wait-safe; you can't use them after a wait in
// a trigger. If you need to use waits, Triggering Unit (a.k.a. GetTriggerUnit()) can
// be used in place of GDD_DamageSource. There is no usable wait-safe equivalent to
// Event Damage or Damage Source; you'll need to save the values yourself.
//
// Don't write any values to the variables used as the event responses, or it will mess
// up any other triggers using this snippet for their triggering. Only use their values.
//
// This uses arrays, so can detect damage for a maximum of 8190 units at a time, and
// cleans up data at a rate of 33.33 per second, by default. This should be enough for
// most maps, but if you want to change the rate, change the value returned in the
// GDD_RecycleRate function at the top of the code, below.
//
// By default, GDD will not register units that have Locust at the moment of their
// entering the game, and will not recognize when they take damage (which can only
// happen if the Locust ability is later removed from the unit.) To allow a unit to have
// Locust yet still cause GDD damage events if Locust is removed, you can either design
// the unit to not have Locust by default and add it via triggers after creation, or
// edit the GDD_Filter function at the top of the code, below.
//
// -- Credits --
// Captain Griffin on wc3c.net for the research and concept of GroupRefresh.
//
// Credit in your map not needed, but please include this README.
//
// -- Version History --
// 1.2.1: Minor code cleaning. Added configuration functions. Updated documentation.
// 1.2.0: Made this snippet work properly with recursive damage.
// 1.1.1: Added a check in order to not index units with the Locust ability (dummy units).
// If you wish to check for damage taken by a unit that is unselectable, do not
// give the unit-type Locust in the object editor; instead, add the Locust ability
// 'Aloc' via a trigger after its creation, then remove it.
// 1.1.0: Added a check in case a unit gets moved out of the map and back.
// 1.0.0: First release.
//===================================================================
// Configurables.
function GDD_RecycleRate takes nothing returns real //The rate at which the system checks units to see if they've been removed from the game
return 0.03
endfunction
function GDD_Filter takes unit u returns boolean //The condition a unit has to pass to have it registered for damage detection
return GetUnitAbilityLevel(u, 'Aloc') == 0 //By default, the system ignores Locust units, because they normally can't take damage anyway
endfunction
//===================================================================
// This is just for reference.
// If you use JassHelper, you could uncomment this section instead of creating the variables in the trigger editor.
// globals
// real udg_GDD_Event = 0.
// real udg_GDD_Damage = 0.
// unit udg_GDD_DamagedUnit
// unit udg_GDD_DamageSource
// trigger array udg_GDD__TriggerArray
// integer array udg_GDD__Integers
// unit array udg_GDD__UnitArray
// group udg_GDD__LeftMapGroup = CreateGroup()
// endglobals
//===================================================================
// System code follows. Don't touch!
function GDD_Event takes nothing returns boolean
local unit damagedcache = udg_GDD_DamagedUnit
local unit damagingcache = udg_GDD_DamageSource
local real damagecache = udg_GDD_Damage
set udg_GDD_DamagedUnit = GetTriggerUnit()
set udg_GDD_DamageSource = GetEventDamageSource()
set udg_GDD_Damage = GetEventDamage()
set udg_GDD_Event = 1.
set udg_GDD_Event = 0.
set udg_GDD_DamagedUnit = damagedcache
set udg_GDD_DamageSource = damagingcache
set udg_GDD_Damage = damagecache
set damagedcache = null
set damagingcache = null
return false
endfunction
function GDD_AddDetection takes nothing returns boolean
// if(udg_GDD__Integers[0] > 8190) then
// call BJDebugMsg("GDD: Too many damage events! Decrease number of units present in the map or increase recycle rate.")
// ***Recycle rate is specified in the GDD_RecycleRate function at the top of the code. Smaller is faster.***
// return
// endif
if(IsUnitInGroup(GetFilterUnit(), udg_GDD__LeftMapGroup)) then
call GroupRemoveUnit(udg_GDD__LeftMapGroup, GetFilterUnit())
elseif(GDD_Filter(GetFilterUnit())) then
set udg_GDD__Integers[0] = udg_GDD__Integers[0]+1
set udg_GDD__UnitArray[udg_GDD__Integers[0]] = GetFilterUnit()
set udg_GDD__TriggerArray[udg_GDD__Integers[0]] = CreateTrigger()
call TriggerRegisterUnitEvent(udg_GDD__TriggerArray[udg_GDD__Integers[0]], udg_GDD__UnitArray[udg_GDD__Integers[0]], EVENT_UNIT_DAMAGED)
call TriggerAddCondition(udg_GDD__TriggerArray[udg_GDD__Integers[0]], Condition(function GDD_Event))
endif
return false
endfunction
function GDD_PreplacedDetection takes nothing returns nothing
local group g = CreateGroup()
local integer i = 0
loop
call GroupEnumUnitsOfPlayer(g, Player(i), Condition(function GDD_AddDetection))
set i = i+1
exitwhen i == bj_MAX_PLAYER_SLOTS
endloop
call DestroyGroup(g)
set g = null
endfunction
function GDD_GroupRefresh takes nothing returns nothing
// Based on GroupRefresh by Captain Griffen on wc3c.net
if (bj_slotControlUsed[5063] == true) then
call GroupClear(udg_GDD__LeftMapGroup)
set bj_slotControlUsed[5063] = false
endif
call GroupAddUnit(udg_GDD__LeftMapGroup, GetEnumUnit())
endfunction
function GDD_Recycle takes nothing returns nothing
if(udg_GDD__Integers[0] <= 0) then
return
elseif(udg_GDD__Integers[1] <= 0) then
set udg_GDD__Integers[1] = udg_GDD__Integers[0]
endif
if(GetUnitTypeId(udg_GDD__UnitArray[udg_GDD__Integers[1]]) == 0) then
call DestroyTrigger(udg_GDD__TriggerArray[udg_GDD__Integers[1]])
set udg_GDD__TriggerArray[udg_GDD__Integers[1]] = null
set udg_GDD__TriggerArray[udg_GDD__Integers[1]] = udg_GDD__TriggerArray[udg_GDD__Integers[0]]
set udg_GDD__UnitArray[udg_GDD__Integers[1]] = udg_GDD__UnitArray[udg_GDD__Integers[0]]
set udg_GDD__UnitArray[udg_GDD__Integers[0]] = null
set udg_GDD__Integers[0] = udg_GDD__Integers[0]-1
endif
set udg_GDD__Integers[1] = udg_GDD__Integers[1]-1
endfunction
function GDD_LeaveMap takes nothing returns boolean
local boolean cached = bj_slotControlUsed[5063]
if(udg_GDD__Integers[2] < 64) then
set udg_GDD__Integers[2] = udg_GDD__Integers[2]+1
else
set bj_slotControlUsed[5063] = true
call ForGroup(udg_GDD__LeftMapGroup, function GDD_GroupRefresh)
set udg_GDD__Integers[2] = 0
endif
call GroupAddUnit(udg_GDD__LeftMapGroup, GetFilterUnit())
set bj_slotControlUsed[5063] = cached
return false
endfunction
// ===========================================================================
function InitTrig_GUI_Friendly_Damage_Detection takes nothing returns nothing
local region r = CreateRegion()
call RegionAddRect(r, GetWorldBounds())
call TriggerRegisterEnterRegion(CreateTrigger(), r, Condition(function GDD_AddDetection))
call TriggerRegisterLeaveRegion(CreateTrigger(), r, Condition(function GDD_LeaveMap))
call GDD_PreplacedDetection()
call TimerStart(CreateTimer(), GDD_RecycleRate(), true, function GDD_Recycle)
set r = null
endfunction
function Trig_Portal_Fight_Build_Actions takes nothing returns nothing
local unit building
set building = GetConstructingStructure()
call TriggerSleepAction( 0.1 )
call UnitSetConstructionProgress( building, 100 )
endfunction
//===========================================================================
function InitTrig_Portal_Fight_Build takes nothing returns nothing
set gg_trg_Portal_Fight_Build = CreateTrigger( )
call DisableTrigger( gg_trg_Portal_Fight_Build )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Portal_Fight_Build, EVENT_PLAYER_UNIT_CONSTRUCT_START )
call TriggerAddAction( gg_trg_Portal_Fight_Build, function Trig_Portal_Fight_Build_Actions )
endfunction
function Trig_Hero_Bestow_Sight_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'A003' ) ) then
return false
endif
return true
endfunction
function Trig_Hero_Bestow_Sight_Func002Func002C takes nothing returns boolean
if ( not ( GetUnitAbilityLevelSwapped('A003', GetSpellAbilityUnit()) == 3 ) ) then
return false
endif
return true
endfunction
function Trig_Hero_Bestow_Sight_Func002Func001C takes nothing returns boolean
if ( not ( GetUnitAbilityLevelSwapped('A003', GetSpellAbilityUnit()) == 2 ) ) then
return false
endif
return true
endfunction
function Trig_Hero_Bestow_Sight_Func002C takes nothing returns boolean
if ( not ( GetUnitAbilityLevelSwapped('A003', GetSpellAbilityUnit()) == 1 ) ) then
return false
endif
return true
endfunction
// TIMER
function SightTimerHandler takes nothing returns nothing
local timer t=GetExpiredTimer()
call TriggerExecute( gg_trg_Hero_Bestow_Sight_remove )
call PauseTimer(t)
call DestroyTimer(t)
set t=null
endfunction
function SightTimer takes nothing returns nothing
local timer t=CreateTimer()
call TimerStart(t, udg_BestowSight_Dur, false, function SightTimerHandler)
set t=null
endfunction
/////
function Trig_Hero_Bestow_Sight_Actions takes nothing returns nothing
set udg_BestowSight_Units[udg_BestowSight_Tail] = GetSpellTargetUnit()
if ( Trig_Hero_Bestow_Sight_Func002C() ) then
call UnitAddAbilityBJ( 'A001', GetSpellTargetUnit() )
else
if ( Trig_Hero_Bestow_Sight_Func002Func001C() ) then
call UnitAddAbilityBJ( 'A00D', GetSpellTargetUnit() )
else
if ( Trig_Hero_Bestow_Sight_Func002Func002C() ) then
call UnitAddAbilityBJ( 'A00E', GetSpellTargetUnit() )
else
call UnitAddAbilityBJ( 'A06P', GetSpellTargetUnit() )
endif
endif
endif
set udg_BestowSight_Tail = ModuloInteger(( udg_BestowSight_Tail + 1 ), udg_BestowSight_Max)
call SightTimer()
endfunction
//===========================================================================
function InitTrig_Hero_Bestow_Sight takes nothing returns nothing
set gg_trg_Hero_Bestow_Sight = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Hero_Bestow_Sight, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_Hero_Bestow_Sight, Condition( function Trig_Hero_Bestow_Sight_Conditions ) )
call TriggerAddAction( gg_trg_Hero_Bestow_Sight, function Trig_Hero_Bestow_Sight_Actions )
endfunction
function Trig_Hero_Bestow_Fortitude_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'A02R' ) ) then
return false
endif
return true
endfunction
function Trig_Hero_Bestow_Fortitude_Func002Func003C takes nothing returns boolean
if ( not ( GetUnitAbilityLevelSwapped('A02R', GetSpellAbilityUnit()) == 3 ) ) then
return false
endif
return true
endfunction
function Trig_Hero_Bestow_Fortitude_Func002Func001C takes nothing returns boolean
if ( not ( GetUnitAbilityLevelSwapped('A02R', GetSpellAbilityUnit()) == 2 ) ) then
return false
endif
return true
endfunction
function Trig_Hero_Bestow_Fortitude_Func002C takes nothing returns boolean
if ( not ( GetUnitAbilityLevelSwapped('A02R', GetSpellAbilityUnit()) == 1 ) ) then
return false
endif
return true
endfunction
// TIMER
function FortTimerHandler takes nothing returns nothing
local timer t=GetExpiredTimer()
call TriggerExecute( gg_trg_Hero_Bestow_Fortitude_remove )
call PauseTimer(t)
call DestroyTimer(t)
set t=null
endfunction
function FortTimer takes nothing returns nothing
local timer t=CreateTimer()
call TimerStart(t, udg_BestowFort_Dur, false, function FortTimerHandler)
set t=null
endfunction
/////
function Trig_Hero_Bestow_Fortitude_Actions takes nothing returns nothing
set udg_BestowFort_Units[udg_BestowFort_Tail] = GetSpellTargetUnit()
if ( Trig_Hero_Bestow_Fortitude_Func002C() ) then
call UnitAddAbilityBJ( 'A002', GetSpellTargetUnit() )
else
if ( Trig_Hero_Bestow_Fortitude_Func002Func001C() ) then
call UnitAddAbilityBJ( 'A02S', GetSpellTargetUnit() )
else
if ( Trig_Hero_Bestow_Fortitude_Func002Func003C() ) then
call UnitAddAbilityBJ( 'A02T', GetSpellTargetUnit() )
else
call UnitAddAbilityBJ( 'A06O', GetSpellTargetUnit() )
endif
endif
endif
call GroupAddUnitSimple( GetSpellTargetUnit(), udg_BestowFort_EffectGroup )
set udg_BestowFort_Tail = ModuloInteger(( udg_BestowFort_Tail + 1 ), udg_BestowFort_Max)
call FortTimer()
endfunction
//===========================================================================
function InitTrig_Hero_Bestow_Fortitude takes nothing returns nothing
set gg_trg_Hero_Bestow_Fortitude = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Hero_Bestow_Fortitude, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_Hero_Bestow_Fortitude, Condition( function Trig_Hero_Bestow_Fortitude_Conditions ) )
call TriggerAddAction( gg_trg_Hero_Bestow_Fortitude, function Trig_Hero_Bestow_Fortitude_Actions )
endfunction
function Trig_DragonTower_dmg_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'A01A' ) ) then
return false
endif
return true
endfunction
function Trig_DragonTower_dmg_Func004002003001 takes nothing returns boolean
return ( IsUnitType(GetFilterUnit(), UNIT_TYPE_MAGIC_IMMUNE) == false )
endfunction
function Trig_DragonTower_dmg_Func004002003002001 takes nothing returns boolean
return ( IsUnitAliveBJ(GetFilterUnit()) == true )
endfunction
function Trig_DragonTower_dmg_Func004002003002002 takes nothing returns boolean
return ( IsUnitEnemy(GetFilterUnit(), GetOwningPlayer(GetTriggerUnit())) == true )
endfunction
function Trig_DragonTower_dmg_Func004002003002 takes nothing returns boolean
return GetBooleanAnd( Trig_DragonTower_dmg_Func004002003002001(), Trig_DragonTower_dmg_Func004002003002002() )
endfunction
function Trig_DragonTower_dmg_Func004002003 takes nothing returns boolean
return GetBooleanAnd( Trig_DragonTower_dmg_Func004002003001(), Trig_DragonTower_dmg_Func004002003002() )
endfunction
function Trig_DragonTower_dmg_Func005Func005C takes nothing returns boolean
if ( not ( GetPlayerTechCountSimple('R00X', GetOwningPlayer(GetTriggerUnit())) > 0 ) ) then
return false
endif
return true
endfunction
function Trig_DragonTower_dmg_Func005A takes nothing returns nothing
set udg_AA_Point2 = GetUnitLoc(GetEnumUnit())
call CreateNUnitsAtLoc( 1, 'n00B', GetOwningPlayer(GetTriggerUnit()), udg_AA_Point2, bj_UNIT_FACING )
call IssueTargetOrderBJ( GetLastCreatedUnit(), "curse", GetEnumUnit() )
if ( Trig_DragonTower_dmg_Func005Func005C() ) then
call UnitDamageTargetBJ( GetTriggerUnit(), GetEnumUnit(), ( udg_DragonTower_InitialDMG * udg_BranchOfCrea_Perc ), ATTACK_TYPE_MAGIC, DAMAGE_TYPE_NORMAL )
else
call UnitDamageTargetBJ( GetTriggerUnit(), GetEnumUnit(), udg_DragonTower_InitialDMG, ATTACK_TYPE_MAGIC, DAMAGE_TYPE_NORMAL )
endif
call GroupAddUnitSimple( GetEnumUnit(), udg_DragonTower_BurnGroup )
call RemoveLocation (udg_AA_Point2)
endfunction
function Trig_DragonTower_dmg_Func007Func002Func001Func001C takes nothing returns boolean
if ( not ( GetPlayerTechCountSimple('R00X', GetOwningPlayer(GetTriggerUnit())) > 0 ) ) then
return false
endif
return true
endfunction
function Trig_DragonTower_dmg_Func007Func002Func001C takes nothing returns boolean
if ( not ( UnitHasBuffBJ(GetEnumUnit(), 'B00J') == true ) ) then
return false
endif
return true
endfunction
function Trig_DragonTower_dmg_Func007Func002A takes nothing returns nothing
if ( Trig_DragonTower_dmg_Func007Func002Func001C() ) then
if ( Trig_DragonTower_dmg_Func007Func002Func001Func001C() ) then
call UnitDamageTargetBJ( GetTriggerUnit(), GetEnumUnit(), ( udg_DragonTower_DPS * udg_BranchOfCrea_Perc ), ATTACK_TYPE_MAGIC, DAMAGE_TYPE_NORMAL )
else
call UnitDamageTargetBJ( GetTriggerUnit(), GetEnumUnit(), udg_DragonTower_DPS, ATTACK_TYPE_MAGIC, DAMAGE_TYPE_NORMAL )
endif
endif
endfunction
function Trig_DragonTower_dmg_Actions takes nothing returns nothing
local group targets
local location point
local integer i
set point = GetSpellTargetLoc()
set targets = GetUnitsInRangeOfLocMatching(udg_DragonTower_Area, point, Condition(function Trig_DragonTower_dmg_Func004002003))
call ForGroupBJ( targets, function Trig_DragonTower_dmg_Func005A )
call RemoveLocation (point)
//////////////
// DPS
//////////////
set i = 1
loop
exitwhen i > udg_DragonTower_Dur
call PolledWait( 1.00 )
call ForGroupBJ( targets, function Trig_DragonTower_dmg_Func007Func002A )
set udg_AA_Integer = udg_AA_Integer + 1
endloop
call DestroyGroup (targets)
set point = null
set targets = null
endfunction
//===========================================================================
function InitTrig_DragonTower_dmg takes nothing returns nothing
set gg_trg_DragonTower_dmg = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_DragonTower_dmg, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_DragonTower_dmg, Condition( function Trig_DragonTower_dmg_Conditions ) )
call TriggerAddAction( gg_trg_DragonTower_dmg, function Trig_DragonTower_dmg_Actions )
endfunction
function Trig_ArcaneAdept_cast_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'A01S' ) ) then
return false
endif
return true
endfunction
function Trig_ArcaneAdept_cast_Func006002003001 takes nothing returns boolean
return ( IsUnitAliveBJ(GetFilterUnit()) == true )
endfunction
function Trig_ArcaneAdept_cast_Func006002003002 takes nothing returns boolean
return ( IsUnitType(GetFilterUnit(), UNIT_TYPE_MAGIC_IMMUNE) == false )
endfunction
function Trig_ArcaneAdept_cast_Func006002003 takes nothing returns boolean
return GetBooleanAnd( Trig_ArcaneAdept_cast_Func006002003001(), Trig_ArcaneAdept_cast_Func006002003002() )
endfunction
function Trig_ArcaneAdept_cast_Func007Func001C takes nothing returns boolean
if ( not ( IsUnitEnemy(GetEnumUnit(), GetOwningPlayer(GetTriggerUnit())) == true ) ) then
return false
endif
return true
endfunction
function Trig_ArcaneAdept_cast_Func007A takes nothing returns nothing
if ( Trig_ArcaneAdept_cast_Func007Func001C() ) then
call UnitDamageTargetBJ( GetTriggerUnit(), GetEnumUnit(), udg_ArcaneAdept_Dmg, ATTACK_TYPE_MAGIC, DAMAGE_TYPE_NORMAL )
else
endif
endfunction
function ArcaneHandler takes nothing returns nothing
local timer t=GetExpiredTimer()
local real impact
local real damage
local unit caster
local group targets
local group g
local unit picked
local location point
set caster = LoadUnitHandleBJ(0, udg_ArcaneAdept_Head, udg_ArcaneAdept_Table)
set point = LoadLocationHandleBJ(0, GetHandleIdBJ(caster), udg_ArcaneAdept_Table)
call AddSpecialEffectTargetUnitBJ( "origin", GetTriggerUnit(), "Abilities\\Spells\\NightElf\\BattleRoar\\RoarCaster.mdl" )
if ( GetPlayerTechCountSimple('R017', GetOwningPlayer(caster)) > 0 ) then
set impact = udg_ArcaneAdept_Area + (udg_ArcaneAdept_Area * udg_BookOfKindling_Perc)
else
set impact = udg_ArcaneAdept_Area
endif
if ( GetPlayerTechCountSimple('R01B', GetOwningPlayer(caster)) > 0 ) then
set damage = udg_ArcaneAdept_Dmg + (udg_ArcaneAdept_Dmg * udg_BookOfCata_Perc)
else
set damage = udg_ArcaneAdept_Dmg
endif
set targets = GetUnitsInRangeOfLocMatching(impact, point, Condition(function Trig_ArcaneAdept_cast_Func006002003))
set g = CreateGroup()
call GroupAddGroup( targets, g)
loop
set picked = FirstOfGroup(g)
exitwhen picked==null
if (IsUnitEnemy(picked, GetOwningPlayer(caster)) == true) then
call UnitDamageTargetBJ( caster, picked, damage, ATTACK_TYPE_MAGIC, DAMAGE_TYPE_NORMAL )
endif
call GroupRemoveUnit(g,picked)
endloop
set udg_ArcaneAdept_Head = ModuloInteger(( udg_ArcaneAdept_Head + 1 ), udg_ArcaneAdept_Max)
call RemoveLocation (point)
call DestroyGroup (targets)
call DestroyGroup(g)
set g = null
set picked = null
set point = null
set targets = null
set caster = null
call PauseTimer(t)
call DestroyTimer(t)
set t=null
endfunction
function ArcaneTimer takes nothing returns nothing
local timer t=CreateTimer()
call TimerStart(t, 0.70, false, function ArcaneHandler)
set t=null
endfunction
function Trig_ArcaneAdept_cast_Actions takes nothing returns nothing
call SaveUnitHandleBJ( GetTriggerUnit(), 0, udg_ArcaneAdept_Tail, udg_ArcaneAdept_Table )
call SaveLocationHandleBJ( GetSpellTargetLoc(), 0, GetHandleIdBJ(GetTriggerUnit()), udg_ArcaneAdept_Table )
call AddSpecialEffectLocBJ( GetSpellTargetLoc(), "Abilities\\Spells\\NightElf\\Starfall\\StarfallTarget.mdl" )
call TriggerExecute( gg_trg_cleanupSE_2 )
set udg_ArcaneAdept_Tail = ModuloInteger(( udg_ArcaneAdept_Tail + 1 ), udg_ArcaneAdept_Max)
call ArcaneTimer()
endfunction
//===========================================================================
function InitTrig_ArcaneAdept_cast takes nothing returns nothing
set gg_trg_ArcaneAdept_cast = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_ArcaneAdept_cast, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_ArcaneAdept_cast, Condition( function Trig_ArcaneAdept_cast_Conditions ) )
call TriggerAddAction( gg_trg_ArcaneAdept_cast, function Trig_ArcaneAdept_cast_Actions )
endfunction
function Trig_VoidGateway_create_Conditions takes nothing returns boolean
if ( not ( GetUnitTypeId(GetTriggerUnit()) == 'o004' ) ) then
return false
endif
return true
endfunction
function Trig_VoidGateway_create_Func001Func002002003001001 takes nothing returns boolean
return ( IsUnitEnemy(GetFilterUnit(), GetOwningPlayer(GetTriggerUnit())) == true )
endfunction
function Trig_VoidGateway_create_Func001Func002002003001002 takes nothing returns boolean
return ( IsUnitType(GetFilterUnit(), UNIT_TYPE_MAGIC_IMMUNE) == false )
endfunction
function Trig_VoidGateway_create_Func001Func002002003001 takes nothing returns boolean
return GetBooleanAnd( Trig_VoidGateway_create_Func001Func002002003001001(), Trig_VoidGateway_create_Func001Func002002003001002() )
endfunction
function Trig_VoidGateway_create_Func001Func002002003002 takes nothing returns boolean
return ( GetBooleanAnd(IsUnitAliveBJ(GetFilterUnit()) == true, IsUnitType(GetFilterUnit(), UNIT_TYPE_GROUND) == true ) )
endfunction
function Trig_condition1 takes nothing returns boolean
return ( GetBooleanAnd( IsUnitEnemy(GetFilterUnit(), GetOwningPlayer(GetTriggerUnit())) == true, IsUnitAliveBJ(GetFilterUnit()) == true))
endfunction
function Trig_VoidGateway_create_Func001Func002002003 takes nothing returns boolean
return GetBooleanAnd( Trig_VoidGateway_create_Func001Func002002003001(), Trig_VoidGateway_create_Func001Func002002003002() )
endfunction
/////////////////////////////
// SOUL ENGINE FUNCTION
/////////////////////////////
function Trig_SoulEngine_reset_backup_Copy_Func001Func006Func002002001 takes nothing returns boolean
return ( GetFilterPlayer() == GetOwningPlayer(GetTriggerUnit()) )
endfunction
function Trig_SoulEngine_reset_backup_Copy_Func001Func006Func003C takes nothing returns boolean
if ( not ( CountUnitsInGroup(udg_SoulEngineOLD_UnitGroup[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))]) == 1 ) ) then
return false
endif
return true
endfunction
function Trig_SoulEngine_reset_backup_Copy_Func001Func006C takes nothing returns boolean
if ( not ( udg_SoulEngineOLD_Notify[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] == true ) ) then
return false
endif
return true
endfunction
function Trig_SoulEngine_reset_backup_Copy_Func001C takes nothing returns boolean
if ( not ( CountUnitsInGroup(udg_SoulEngineOLD_UnitGroup[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))]) < udg_SoulEngineOLD_Threshold ) ) then
return false
endif
return true
endfunction
function Trig_VoidGateway_create_Actions takes nothing returns nothing
local integer i
local unit entering
local location point
local group targets
local unit eventunit
set i = 1
loop
exitwhen i > 1
set entering = GetTriggerUnit()
set point = GetUnitLoc(GetTriggerUnit())
//ALLOWING AIR AND IMMUNE (DISABLED)
//if (GetPlayerTechCountSimple('R01A', GetOwningPlayer(GetTriggerUnit())) > 0 ) then
//set targets = GetUnitsInRangeOfLocMatching(200.00, point, Condition(function Trig_condition1))
//else
//set targets = GetUnitsInRangeOfLocMatching(200.00, point, Condition(function Trig_VoidGateway_create_Func001Func002002003))
//endif
set targets = GetUnitsInRangeOfLocMatching(udg_VoidGateway_Area, point, Condition(function Trig_VoidGateway_create_Func001Func002002003))
//TEST GROUP COUNT
//call DisplayTextToForce( GetPlayersAll(), I2S(CountUnitsInGroup(targets)) )
set eventunit = GroupPickRandomUnit(targets)
set udg_VoidGateway_Integer = 1
loop
exitwhen udg_VoidGateway_Integer > 4
if ( IsUnitInGroup(eventunit, udg_SpawnGroups[udg_VoidGateway_Integer]) == true ) then
//////////////////////
// SOUL ENGINE
//////////////////////
if ( GetPlayerTechCountSimple('R01A', GetOwningPlayer(entering)) > 0 ) then
set udg_SoulEngineOLD_Count = udg_SoulEngineOLD_Count + 1
set udg_AA_PlayerGroup = GetPlayersMatching(Condition(function Trig_SoulEngine_reset_backup_Copy_Func001Func006Func002002001))
if ( udg_SoulEngineOLD_Count < udg_SoulEngineOLD_Threshold ) then
if ( Trig_SoulEngine_reset_backup_Copy_Func001Func006C() ) then
if ( udg_SoulEngineOLD_Count == 1 ) then
call DisplayTextToForce( udg_AA_PlayerGroup, ( "|c008000FFSoul Engine:|r " + ( I2S(udg_SoulEngineOLD_Count) + " (turn off messages type \"-soul\")" ) ) )
else
call DisplayTextToForce( udg_AA_PlayerGroup, ( "|c008000FFSoul Engine:|r " + ( I2S(udg_SoulEngineOLD_Count) ) ) )
endif
endif
else
set udg_SoulEngineOLD_Count = 0
call DisplayTextToForce( udg_AA_PlayerGroup, ( "|c008000FFSoul Engine:|r " + "Bestow Strength cooldown reset!" ) )
call BlzEndUnitAbilityCooldown( udg_PlayerHero[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))], 'A000' )
call AddSpecialEffectTargetUnitBJ( "origin", udg_PlayerHero[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))], "Abilities\\Spells\\Items\\AIem\\AIemTarget.mdl" )
call TriggerExecute( gg_trg_cleanupSE_2 )
endif
call DestroyForce( udg_AA_PlayerGroup )
endif
//////////////////////
set udg_AA_Point = GetUnitLoc(eventunit)
call AddSpecialEffectLocBJ( udg_AA_Point, "Abilities\\Spells\\Human\\MassTeleport\\MassTeleportCaster.mdl" )
call TriggerExecute( gg_trg_cleanupSE_3 )
call RemoveLocation (udg_AA_Point)
//RESETTING PATHING BACK TO DEFAULT (DISABLED, NEEDS TO BE udg_Pathing_LeakKey)
//call SaveBooleanBJ( false, StringHashBJ("leak"), GetHandleIdBJ(eventunit), udg_Pathing_Table )
set udg_AA_Point = GetRandomLocInRect(udg_Spawns[udg_VoidGateway_Integer])
call SetUnitPositionLoc( eventunit, udg_AA_Point )
call RemoveLocation (udg_AA_Point)
set udg_AA_Point = GetUnitLoc(eventunit)
call AddSpecialEffectLocBJ( udg_AA_Point, "Abilities\\Spells\\Human\\MassTeleport\\MassTeleportTarget.mdl" )
call TriggerExecute( gg_trg_cleanupSE_3 )
call RemoveLocation (udg_AA_Point)
call SetUnitLifeBJ( eventunit, ( GetUnitStateSwap(UNIT_STATE_LIFE, eventunit) - ( GetUnitStateSwap(UNIT_STATE_LIFE, eventunit) * udg_VoidGateway_HPdmg ) ) )
set udg_VoidGateway_Integer = 5
else
////////////////
// PORTAL FIGHT
////////////////
if ( GetBooleanOr( eventunit == udg_CreatorOfDarkness, GetUnitTypeId(eventunit) == 'o006' ) ) then
set udg_AA_Point = GetUnitLoc(eventunit)
call AddSpecialEffectLocBJ( udg_AA_Point, "Abilities\\Spells\\Human\\MassTeleport\\MassTeleportCaster.mdl" )
call TriggerExecute( gg_trg_cleanupSE_3 )
call RemoveLocation (udg_AA_Point)
set udg_AA_Point = GetRectCenter(gg_rct_Center)
call SetUnitPositionLoc( eventunit, udg_AA_Point )
call RemoveLocation (udg_AA_Point)
set udg_AA_Point = GetUnitLoc(eventunit)
call AddSpecialEffectLocBJ( udg_AA_Point, "Abilities\\Spells\\Human\\MassTeleport\\MassTeleportTarget.mdl" )
call TriggerExecute( gg_trg_cleanupSE_3 )
call RemoveLocation (udg_AA_Point)
call SetUnitLifeBJ( eventunit, ( GetUnitStateSwap(UNIT_STATE_LIFE, eventunit) - ( GetUnitStateSwap(UNIT_STATE_LIFE, eventunit) * udg_PortalFight_HpReduc ) ) )
set udg_VoidGateway_Integer = 5
endif
endif
set udg_VoidGateway_Integer = udg_VoidGateway_Integer + 1
endloop
call RemoveLocation (point)
call DestroyGroup (targets)
call TriggerSleepAction( udg_VoidGateway_Time )
if (IsUnitAliveBJ(entering) == true) then
set i = 0
endif
set i = i + 1
endloop
set entering = null
set point = null
set targets = null
set eventunit = null
endfunction
//===========================================================================
function InitTrig_VoidGateway_create takes nothing returns nothing
set gg_trg_VoidGateway_create = CreateTrigger( )
call TriggerRegisterEnterRectSimple( gg_trg_VoidGateway_create, GetPlayableMapRect() )
call TriggerAddCondition( gg_trg_VoidGateway_create, Condition( function Trig_VoidGateway_create_Conditions ) )
call TriggerAddAction( gg_trg_VoidGateway_create, function Trig_VoidGateway_create_Actions )
endfunction
function Trig_LunarAlchemist_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'A01M' ) ) then
return false
endif
return true
endfunction
function Trig_LunarAlchemist_Actions takes nothing returns nothing
local unit target
set target = GetSpellTargetUnit()
set udg_AA_Point = GetUnitLoc(GetTriggerUnit())
set udg_AA_Point2 = GetUnitLoc(GetSpellTargetUnit())
call TriggerSleepAction( ( DistanceBetweenPoints(udg_AA_Point, udg_AA_Point2) / 1000.00 ) )
call RemoveLocation (udg_AA_Point)
call RemoveLocation (udg_AA_Point2)
set udg_AA_Integer = 1
loop
exitwhen udg_AA_Integer > 3
set udg_AA_Point = GetUnitLoc(target)
set udg_AA_Point2 = PolarProjectionBJ(udg_AA_Point, 90.00, ( 120.00 * I2R(udg_AA_Integer) ))
call AddSpecialEffectLocBJ( udg_AA_Point2, "Objects\\Spawnmodels\\NightElf\\NECancelDeath\\NECancelDeath.mdl" )
call TriggerExecute( gg_trg_cleanupSE_1 )
call RemoveLocation (udg_AA_Point)
call RemoveLocation (udg_AA_Point2)
set udg_AA_Integer = udg_AA_Integer + 1
endloop
endfunction
//===========================================================================
function InitTrig_LunarAlchemist takes nothing returns nothing
set gg_trg_LunarAlchemist = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_LunarAlchemist, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_LunarAlchemist, Condition( function Trig_LunarAlchemist_Conditions ) )
call TriggerAddAction( gg_trg_LunarAlchemist, function Trig_LunarAlchemist_Actions )
endfunction
function Trig_FirestormMaster_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'A02V' ) ) then
return false
endif
return true
endfunction
function Handlerfunc takes nothing returns nothing
local timer t=GetExpiredTimer()
call TriggerExecute( gg_trg_FirestormMaster_remove )
call PauseTimer(t)
call DestroyTimer(t)
set t=null
endfunction
function foo_function takes nothing returns nothing
local timer t=CreateTimer()
call TimerStart(t, udg_FirestormMaster_Dur, false, function Handlerfunc)
set t=null
endfunction
function Trig_FirestormMaster_Actions takes nothing returns nothing
set udg_AA_Point = GetUnitLoc(GetSpellAbilityUnit())
set udg_FirestormMaster_Units[udg_FirestormMaster_Tail] = GetSpellAbilityUnit()
call UnitAddAbilityBJ( 'A018', GetSpellAbilityUnit() )
call AddSpecialEffectLocBJ( udg_AA_Point, "Abilities\\Spells\\Other\\Doom\\DoomDeath.mdl" )
call TriggerExecute( gg_trg_cleanupSE_2 )
call AddSpecialEffectTargetUnitBJ( "weapon", GetSpellAbilityUnit(), "Abilities\\Weapons\\PhoenixMissile\\Phoenix_Missile.mdl" )
call TriggerExecute( gg_trg_cleanupSE_6 )
call RemoveLocation (udg_AA_Point)
set udg_FirestormMaster_Tail = ModuloInteger(( udg_FirestormMaster_Tail + 1 ), udg_FirestormMaster_Max)
call foo_function()
endfunction
//===========================================================================
function InitTrig_FirestormMaster takes nothing returns nothing
set gg_trg_FirestormMaster = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_FirestormMaster, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_FirestormMaster, Condition( function Trig_FirestormMaster_Conditions ) )
call TriggerAddAction( gg_trg_FirestormMaster, function Trig_FirestormMaster_Actions )
endfunction
function Trig_MonsoonTower_Conditions takes nothing returns boolean
if ( not ( GetUnitTypeId(GetConstructedStructure()) == 'h00H' ) ) then
return false
endif
return true
endfunction
function Trig_MonsoonTower_Func004Func004002003001 takes nothing returns boolean
return ( IsUnitAliveBJ(GetFilterUnit()) == true )
endfunction
function Trig_MonsoonTower_Func004Func004002003002001 takes nothing returns boolean
return ( IsUnitEnemy(GetFilterUnit(), GetOwningPlayer(GetConstructedStructure())) == true )
endfunction
function Trig_MonsoonTower_Func004Func004002003002002 takes nothing returns boolean
return ( IsUnitType(GetFilterUnit(), UNIT_TYPE_MAGIC_IMMUNE) == false )
endfunction
function Trig_MonsoonTower_Func004Func004002003002 takes nothing returns boolean
return GetBooleanAnd( Trig_MonsoonTower_Func004Func004002003002001(), Trig_MonsoonTower_Func004Func004002003001() )
endfunction
function Trig_MonsoonTower_Func004Func004002003 takes nothing returns boolean
return GetBooleanAnd( Trig_MonsoonTower_Func004Func004002003001(), Trig_MonsoonTower_Func004Func004002003002() )
endfunction
function Trig_MonsoonTower_Func004Func005A takes nothing returns nothing
call UnitDamageTargetBJ(GetTriggerUnit(), GetEnumUnit(), 300.00, ATTACK_TYPE_CHAOS, DAMAGE_TYPE_NORMAL )
endfunction
function Trig_MonsoonTower_Func004Func011C takes nothing returns boolean
if ( not ( IsUnitAliveBJ(GetTriggerUnit()) == true ) ) then
return false
endif
return true
endfunction
function Trig_MonsoonTower_Actions takes nothing returns nothing
local unit tower
local integer counter
local location position
local location dmg
local group dmg_group
local group g
local unit picked
local real tempmin
local real tempmax
set tower = GetConstructedStructure()
set counter = 0
call GroupAddUnitSimple( GetConstructedStructure(), udg_MonsoonTower_Effect[udg_MonsoonTower_Tail] )
set udg_MonsoonTower_Integer = 1
loop
exitwhen udg_MonsoonTower_Integer > udg_MonsoonTower_Degree
set udg_AA_Point = GetUnitLoc(GetConstructedStructure())
set udg_AA_Point2 = PolarProjectionBJ(udg_AA_Point, 1000.00, ( 10.00 * I2R(udg_MonsoonTower_Integer) ))
call CreateNUnitsAtLoc( 1, 'n004', GetOwningPlayer(GetConstructedStructure()), udg_AA_Point2, bj_UNIT_FACING )
call GroupAddUnitSimple( GetLastCreatedUnit(), udg_MonsoonTower_Effect[udg_MonsoonTower_Tail] )
call RemoveLocation (udg_AA_Point)
call RemoveLocation (udg_AA_Point2)
set udg_MonsoonTower_Integer = udg_MonsoonTower_Integer + 1
endloop
set udg_MonsoonTower_Tail = ( udg_MonsoonTower_Tail + 1 )
set counter = 1
loop
exitwhen counter > 1
if (( GetPlayerTechCountSimple('R00M', GetOwningPlayer(tower)) > 0 )) then
set tempmin = ( udg_MonsoonTower_MinDelay / (1.00 + udg_Levi_Percent ))
set tempmax = ( udg_MonsoonTower_MaxDelay / (1.00 + udg_Levi_Percent ))
else
set tempmin = udg_MonsoonTower_MinDelay
set tempmax = udg_MonsoonTower_MaxDelay
endif
call TriggerSleepAction( GetRandomReal(tempmin, tempmax) )
set position = GetUnitLoc(tower)
set dmg = PolarProjectionBJ(position, GetRandomReal(udg_MonsoonTower_MinArea, udg_MonsoonTower_MaxArea), GetRandomDirectionDeg())
set dmg_group = GetUnitsInRangeOfLocMatching(udg_MonsoonTower_Area, dmg, Condition(function Trig_MonsoonTower_Func004Func004002003001))
set g = CreateGroup()
call AddSpecialEffectLocBJ( dmg, "Objects\\Spawnmodels\\Naga\\NagaDeath\\NagaDeath.mdl" )
call TriggerExecute( gg_trg_cleanupSE_2 )
call AddSpecialEffectLocBJ( dmg, "Abilities\\Spells\\Human\\ThunderClap\\ThunderClapCaster.mdl" )
call TriggerExecute( gg_trg_cleanupSE_2 )
call GroupAddGroup(dmg_group, g)
loop
set picked = FirstOfGroup(g)
exitwhen picked == null
if(IsUnitEnemy(picked, GetOwningPlayer(tower)) == true) then
call UnitDamageTargetBJ(tower, picked, udg_MonsoonTower_WaterDMG, ATTACK_TYPE_CHAOS, DAMAGE_TYPE_NORMAL )
endif
call GroupRemoveUnit(g,picked)
endloop
call DestroyGroup(g)
set g=null
set picked=null
call RemoveLocation (dmg)
call RemoveLocation (position)
call DestroyGroup (dmg_group)
if ( Trig_MonsoonTower_Func004Func011C() ) then
set counter = 0
else
endif
set counter = counter + 1
endloop
endfunction
//===========================================================================
function InitTrig_MonsoonTower takes nothing returns nothing
set gg_trg_MonsoonTower = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_MonsoonTower, EVENT_PLAYER_UNIT_CONSTRUCT_FINISH )
call TriggerAddCondition( gg_trg_MonsoonTower, Condition( function Trig_MonsoonTower_Conditions ) )
call TriggerAddAction( gg_trg_MonsoonTower, function Trig_MonsoonTower_Actions )
endfunction
function Trig_MonsoonTower_wind_Conditions takes nothing returns boolean
if ( not ( GetUnitTypeId(GetConstructedStructure()) == 'h00H' ) ) then
return false
endif
return true
endfunction
function Trig_MonsoonTower_wind_Func003Func003002003 takes nothing returns boolean
return ( IsUnitAliveBJ(GetFilterUnit()) == true )
endfunction
function Trig_MonsoonTower_wind_Func003Func004001003 takes nothing returns boolean
return ( IsUnitAliveBJ(GetFilterUnit()) == true )
endfunction
function Trig_MonsoonTower_wind_Func003Func004Func001C takes nothing returns boolean
if ( not ( IsUnitEnemy(GetEnumUnit(), GetOwningPlayer(GetTriggerUnit())) == true ) ) then
return false
endif
return true
endfunction
function Trig_MonsoonTower_wind_Func003Func004Func002C takes nothing returns boolean
if ( not ( IsUnitAliveBJ(GetTriggerUnit()) == true ) ) then
return false
endif
return true
endfunction
function Trig_MonsoonTower_wind_Func003Func004A takes nothing returns nothing
if ( Trig_MonsoonTower_wind_Func003Func004Func001C() ) then
call UnitDamageTargetBJ( GetTriggerUnit(), GetEnumUnit(), 35.00, ATTACK_TYPE_PIERCE, DAMAGE_TYPE_NORMAL )
else
endif
if ( Trig_MonsoonTower_wind_Func003Func004Func002C() ) then
set udg_AA_Integer = 0
else
endif
endfunction
function Trig_MonsoonTower_wind_Actions takes nothing returns nothing
local unit tower
local integer i
local location dmg_point
local group dmg_group
local group g
local unit picked
set tower = GetConstructedStructure()
set i = 1
loop
exitwhen i > 1
call TriggerSleepAction( udg_MonsoonTower_WindTime )
set dmg_point = GetUnitLoc(tower)
set dmg_group = GetUnitsInRangeOfLocMatching(1000.00, dmg_point, Condition(function Trig_MonsoonTower_wind_Func003Func003002003))
set g = CreateGroup()
call GroupAddGroup(dmg_group, g)
loop
set picked = FirstOfGroup(g)
exitwhen picked == null
if (IsUnitEnemy(picked, GetOwningPlayer(tower)) == true) then
call UnitDamageTargetBJ( tower, picked, udg_MonsoonTower_WindDMG, ATTACK_TYPE_PIERCE, DAMAGE_TYPE_NORMAL )
call AddSpecialEffectTargetUnitBJ( "origin", picked, "Abilities\\Weapons\\GryphonRiderMissile\\GryphonRiderMissileTarget.mdl" )
call TriggerExecute( gg_trg_cleanupSE_2 )
endif
call GroupRemoveUnit(g,picked)
endloop
call DestroyGroup(g)
set g=null
set picked=null
call RemoveLocation (dmg_point)
call DestroyGroup (dmg_group)
if (IsUnitAliveBJ(tower) == true) then
set i = 0
endif
set i = i + 1
endloop
set tower = null
endfunction
//===========================================================================
function InitTrig_MonsoonTower_wind takes nothing returns nothing
set gg_trg_MonsoonTower_wind = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_MonsoonTower_wind, EVENT_PLAYER_UNIT_CONSTRUCT_FINISH )
call TriggerAddCondition( gg_trg_MonsoonTower_wind, Condition( function Trig_MonsoonTower_wind_Conditions ) )
call TriggerAddAction( gg_trg_MonsoonTower_wind, function Trig_MonsoonTower_wind_Actions )
endfunction
function Trig_Tempest_cast_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'A05F' ) ) then
return false
endif
return true
endfunction
function Trig_Tempest_cast_Func008Func001Func002Func005C takes integer i returns boolean
if ( not ( i >= udg_Tempest_WaveMax ) ) then
return false
endif
return true
endfunction
function Trig_Tempest_cast_Func008Func001Func002C takes unit u returns boolean
if ( not GetBooleanAnd(( UnitHasBuffBJ(u, 'B019') == true ), ( IsUnitAliveBJ(u) == true ))) then
return false
endif
return true
endfunction
function Trig_Tempest_cast_Func008C takes unit u returns boolean
if ( not ( UnitHasBuffBJ(u, 'B019') == false ) ) then
return false
endif
return true
endfunction
function Trig_hfsdgfs_Func001Func002002003001 takes nothing returns boolean
return ( IsUnitType(GetFilterUnit(), UNIT_TYPE_UNDEAD) == true )
endfunction
function Trig_hfsdgfs_Func001Func002002003002001 takes nothing returns boolean
return ( IsUnitAliveBJ(GetFilterUnit()) == true )
endfunction
function Trig_hfsdgfs_Func001Func002002003002002001 takes nothing returns boolean
return ( IsUnitType(GetFilterUnit(), UNIT_TYPE_MAGIC_IMMUNE) == false )
endfunction
function Trig_hfsdgfs_Func001Func002002003002002002001 takes nothing returns boolean
return ( GetOwningPlayer(GetFilterUnit()) == Player(9) )
endfunction
function Trig_hfsdgfs_Func001Func002002003002002002002 takes nothing returns boolean
return ( GetOwningPlayer(GetFilterUnit()) == Player(10) )
endfunction
function Trig_hfsdgfs_Func001Func002002003002002002 takes nothing returns boolean
return GetBooleanOr( Trig_hfsdgfs_Func001Func002002003002002002001(), Trig_hfsdgfs_Func001Func002002003002002002002() )
endfunction
function Trig_hfsdgfs_Func001Func002002003002002 takes nothing returns boolean
return GetBooleanAnd( Trig_hfsdgfs_Func001Func002002003002002001(), Trig_hfsdgfs_Func001Func002002003002002002() )
endfunction
function Trig_hfsdgfs_Func001Func002002003002 takes nothing returns boolean
return GetBooleanAnd( Trig_hfsdgfs_Func001Func002002003002001(), Trig_hfsdgfs_Func001Func002002003002002() )
endfunction
////////////////////
// LEVIATHAN EYE
////////////////////
function Trig_hfsdgfs_Func001Func002002003 takes nothing returns boolean
return ( Trig_hfsdgfs_Func001Func002002003002() )
endfunction
function Trig_hfsdgfs_Func001Func003A takes nothing returns nothing
call CreateNUnitsAtLoc( 1, 'nhem', GetOwningPlayer(GetTriggerUnit()), udg_AA_Point, bj_UNIT_FACING )
call UnitAddAbilityBJ( 'A03F', GetLastCreatedUnit() )
call IssueTargetOrderBJ( GetLastCreatedUnit(), "creepthunderbolt", GetEnumUnit() )
endfunction
function Trig_hfsdgfs_Func001C takes nothing returns boolean
if ( not ( GetPlayerTechCountSimple('R00N', GetOwningPlayer(GetTriggerUnit())) > 0 ) ) then
return false
endif
return true
endfunction
function Trig_Tempest_cast_Actions takes nothing returns nothing
local unit target
local integer counter
set target = GetSpellTargetUnit()
set counter = 0
call UnitDamageTargetBJ( GetTriggerUnit(), GetSpellTargetUnit(), udg_Tempest_InitialDmg, ATTACK_TYPE_MAGIC, DAMAGE_TYPE_NORMAL )
////////////////////
// LEVIATHAN EYE
////////////////////
if ( Trig_hfsdgfs_Func001C() ) then
set udg_AA_Point = GetUnitLoc(target)
call CreateNUnitsAtLoc( 1, 'nhem', GetOwningPlayer(GetTriggerUnit()), udg_AA_Point, bj_UNIT_FACING )
call UnitAddAbilityBJ( 'A056', GetLastCreatedUnit() )
call IssuePointOrderLocBJ( GetLastCreatedUnit(), "clusterrockets", udg_AA_Point )
call RemoveLocation (udg_AA_Point)
else
endif
call AddSpecialEffectTargetUnitBJ( "origin", GetSpellTargetUnit(), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
call TriggerExecute( gg_trg_cleanupSE_2 )
if ( Trig_Tempest_cast_Func008C(target) ) then
set counter = 1
loop
exitwhen counter > udg_Tempest_WaveMax
call TriggerSleepAction( udg_Tempest_Time )
if ( Trig_Tempest_cast_Func008Func001Func002C(target) ) then
////////////////////
// LEVIATHAN EYE
////////////////////
if ( Trig_hfsdgfs_Func001C() ) then
set udg_AA_Point = GetUnitLoc(target)
call CreateNUnitsAtLoc( 1, 'nhem', GetOwningPlayer(GetTriggerUnit()), udg_AA_Point, bj_UNIT_FACING )
call UnitAddAbilityBJ( 'A056', GetLastCreatedUnit() )
call IssuePointOrderLocBJ( GetLastCreatedUnit(), "clusterrockets", udg_AA_Point )
call RemoveLocation (udg_AA_Point)
endif
call UnitDamageTargetBJ( GetTriggerUnit(), target, udg_Tempest_Dmg, ATTACK_TYPE_MAGIC, DAMAGE_TYPE_NORMAL )
call AddSpecialEffectTargetUnitBJ( "origin", target, "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
call TriggerExecute( gg_trg_cleanupSE_2 )
if ( Trig_Tempest_cast_Func008Func001Func002Func005C(counter) ) then
set counter = 1
else
endif
else
call UnitRemoveBuffBJ( 'B019', target )
return
endif
set counter = counter + 1
endloop
else
endif
endfunction
//===========================================================================
function InitTrig_Tempest_cast takes nothing returns nothing
set gg_trg_Tempest_cast = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Tempest_cast, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_Tempest_cast, Condition( function Trig_Tempest_cast_Conditions ) )
call TriggerAddAction( gg_trg_Tempest_cast, function Trig_Tempest_cast_Actions )
endfunction
function Trig_PulsarTower_dmg_Func003C takes nothing returns boolean
if ( not ( udg_PulsarTower_KeyHead == udg_PulsarTower_KeyTail ) ) then
return false
endif
return true
endfunction
function Trig_PulsarTower_dmg_Func004Func003Func005Func005001 takes nothing returns boolean
return ( GetPlayerTechCountSimple('R002', GetOwningPlayer(udg_PulsarTower_TempCaster)) > 0 )
endfunction
function Trig_PulsarTower_dmg_Func004Func003Func005Func006Func001C takes nothing returns boolean
if ( not ( GetUnitStateSwap(UNIT_STATE_MANA, udg_PulsarTower_TempTarget) < udg_ShieldPiercer_Burn ) ) then
return false
endif
return true
endfunction
function Trig_PulsarTower_dmg_Func004Func003Func005Func006C takes nothing returns boolean
if ( not ( udg_ShieldPiercer_Boolean == true ) ) then
return false
endif
if ( not ( GetUnitStateSwap(UNIT_STATE_MANA, udg_PulsarTower_TempTarget) > 0.00 ) ) then
return false
endif
return true
endfunction
function Trig_PulsarTower_dmg_Func004Func003Func005C takes nothing returns boolean
if ( not ( IsUnitAliveBJ(udg_PulsarTower_TempTarget) == true ) ) then
return false
endif
return true
endfunction
function Trig_PulsarTower_dmg_Func004Func003Func008C takes nothing returns boolean
if ( not ( udg_PulsarTower_TempCount <= 0 ) ) then
return false
endif
return true
endfunction
function Trig_PulsarTower_dmg_Func004C takes nothing returns boolean
if ( not ( udg_PulsarTower_KeyHead < udg_PulsarTower_KeyTail ) ) then
return false
endif
return true
endfunction
function DamageFunction takes integer index returns nothing
set udg_PulsarTower_TempMana = 0.00
set udg_PulsarTower_TempCaster = LoadUnitHandleBJ(0, index, udg_PulsarTower_Table)
set udg_PulsarTower_TempTarget = LoadUnitHandleBJ(1, index, udg_PulsarTower_Table)
set udg_PulsarTower_TempCount = LoadIntegerBJ(2, index, udg_PulsarTower_Table)
if ( Trig_PulsarTower_dmg_Func004Func003Func005C() ) then
//call DisplayTextToForce( GetPlayersAll(), ( "integer = " + I2S(index) ) )
//call DisplayTextToForce( GetPlayersAll(), ( "loading " + GetUnitName(LoadUnitHandleBJ(0, index, udg_PulsarTower_Table)) ) )
//call DisplayTextToForce( GetPlayersAll(), ( "loading " + GetUnitName(LoadUnitHandleBJ(1, index, udg_PulsarTower_Table)) ) )
//call DisplayTextToForce( GetPlayersAll(), ( "loading " + I2S(udg_PulsarTower_TempCount) ) )
if ( Trig_PulsarTower_dmg_Func004Func003Func005Func005001() ) then
set udg_ShieldPiercer_Boolean = true
else
set udg_ShieldPiercer_Boolean = false
endif
if ( Trig_PulsarTower_dmg_Func004Func003Func005Func006C() ) then
if ( Trig_PulsarTower_dmg_Func004Func003Func005Func006Func001C() ) then
set udg_PulsarTower_TempMana = ( udg_ShieldPiercer_Burn - GetUnitStateSwap(UNIT_STATE_MANA, udg_PulsarTower_TempTarget) )
//call DisplayTextToForce( GetPlayersAll(), "TRIGSTR_3609" )
else
set udg_PulsarTower_TempMana = udg_ShieldPiercer_Burn
//call DisplayTextToForce( GetPlayersAll(), "TRIGSTR_3608" )
endif
call SetUnitManaBJ( udg_PulsarTower_TempTarget, ( GetUnitStateSwap(UNIT_STATE_MANA, udg_PulsarTower_TempTarget) - udg_PulsarTower_TempMana ) )
/////////////////////////
// BURN DAMAGE
/////////////////////////
call UnitDamageTargetBJ( udg_PulsarTower_TempCaster, udg_PulsarTower_TempTarget, udg_ShieldPiercer_Burn, ATTACK_TYPE_MAGIC, DAMAGE_TYPE_NORMAL )
call AddSpecialEffectTargetUnitBJ( "origin", udg_PulsarTower_TempTarget, "Abilities\\Spells\\Human\\Feedback\\ArcaneTowerAttack.mdl" )
call TriggerExecute( gg_trg_cleanupSE_05 )
else
endif
/////////////////////////
// BASE DAMAGE
/////////////////////////
if ( GetPlayerTechCountSimple('R002', GetOwningPlayer(udg_PulsarTower_TempCaster)) == 1 ) then
call UnitDamageTargetBJ( udg_PulsarTower_TempCaster, udg_PulsarTower_TempTarget, udg_PulsarTower_DmgUpg, ATTACK_TYPE_MAGIC, DAMAGE_TYPE_NORMAL )
else
call UnitDamageTargetBJ( udg_PulsarTower_TempCaster, udg_PulsarTower_TempTarget, udg_PulsarTower_Dmg, ATTACK_TYPE_MAGIC, DAMAGE_TYPE_NORMAL )
endif
call AddSpecialEffectTargetUnitBJ( "origin", udg_PulsarTower_TempTarget, "Abilities\\Spells\\NightElf\\Blink\\BlinkCaster.mdl" )
call TriggerExecute( gg_trg_cleanupSE_01 )
else
endif
set udg_PulsarTower_TempCount = ( udg_PulsarTower_TempCount - 1 )
call SaveIntegerBJ( udg_PulsarTower_TempCount, 2, index, udg_PulsarTower_Table )
if ( Trig_PulsarTower_dmg_Func004Func003Func008C() ) then
call SaveUnitHandleBJ( null, 0, index, udg_PulsarTower_Table )
call SaveUnitHandleBJ( null, 1, index, udg_PulsarTower_Table )
set udg_PulsarTower_KeyHead = ModuloInteger(( udg_PulsarTower_KeyHead + 1 ), udg_PulsarTower_KeyMax)
else
endif
endfunction
function Trig_PulsarTower_dmg_Actions takes nothing returns nothing
//call DisplayTextToForce( GetPlayersAll(), ( "head = " + I2S(udg_PulsarTower_KeyHead) ) )
//call DisplayTextToForce( GetPlayersAll(), ( "tail = " + I2S(udg_PulsarTower_KeyTail) ) )
if ( Trig_PulsarTower_dmg_Func003C() ) then
call DisableTrigger( GetTriggeringTrigger() )
return
else
endif
if ( Trig_PulsarTower_dmg_Func004C() ) then
set udg_PulsarTower_Integer = udg_PulsarTower_KeyHead
loop
exitwhen udg_PulsarTower_Integer > ( udg_PulsarTower_KeyTail - 1 )
call DamageFunction(udg_PulsarTower_Integer)
set udg_PulsarTower_Integer = udg_PulsarTower_Integer + 1
endloop
else
set udg_PulsarTower_Integer = udg_PulsarTower_KeyHead
loop
exitwhen udg_PulsarTower_Integer > ( udg_PulsarTower_KeyMax - 1 )
call DamageFunction(udg_PulsarTower_Integer)
set udg_PulsarTower_Integer = udg_PulsarTower_Integer + 1
endloop
set udg_PulsarTower_Integer = 0
loop
exitwhen udg_PulsarTower_Integer > udg_PulsarTower_KeyTail
if (udg_PulsarTower_KeyTail > 0) then
call DamageFunction(udg_PulsarTower_Integer)
endif
set udg_PulsarTower_Integer = udg_PulsarTower_Integer + 1
endloop
endif
endfunction
//===========================================================================
function InitTrig_PulsarTower_dmg takes nothing returns nothing
set gg_trg_PulsarTower_dmg = CreateTrigger( )
call DisableTrigger( gg_trg_PulsarTower_dmg )
call TriggerRegisterTimerEventPeriodic( gg_trg_PulsarTower_dmg, 0.10 )
call TriggerAddAction( gg_trg_PulsarTower_dmg, function Trig_PulsarTower_dmg_Actions )
endfunction
function Trig_BloodStone_red_Func008C takes nothing returns boolean
if ( ( GetOwningPlayer(GetTriggerUnit()) == Player(9) ) ) then
return true
endif
if ( ( GetOwningPlayer(GetTriggerUnit()) == Player(10) ) ) then
return true
endif
return false
endfunction
function Trig_BloodStone_red_Conditions takes nothing returns boolean
if ( not ( IsUnitType(GetTriggerUnit(), UNIT_TYPE_MAGIC_IMMUNE) == true ) ) then
return false
endif
if ( not ( GetPlayerTechCountSimple('R01R', Player(0)) > 0 ) ) then
return false
endif
if ( not ( IsUnitInGroup(GetTriggerUnit(), udg_ArkenStone_Group[1]) == false ) ) then
return false
endif
if ( not Trig_BloodStone_red_Func008C() ) then
return false
endif
return true
endfunction
function Trig_fawdw_Func001A takes nothing returns nothing
call SetUnitLifeBJ( GetEnumUnit(), ( GetUnitStateSwap(UNIT_STATE_LIFE, GetEnumUnit()) * udg_ArkenStone_HpPerc ) )
call GroupRemoveUnitSimple( GetEnumUnit(), udg_ArkenStone_DmgGroup )
endfunction
function HandlerfuncBlood takes nothing returns nothing
local timer t=GetExpiredTimer()
call ForGroupBJ( udg_ArkenStone_DmgGroup, function Trig_fawdw_Func001A )
call PauseTimer(t)
call DestroyTimer(t)
set t=null
endfunction
function BloodStone takes nothing returns nothing
local timer t=CreateTimer()
call TimerStart(t, 0.01, false, function HandlerfuncBlood)
set t=null
endfunction
function Trig_BloodStone_red_Actions takes nothing returns nothing
call GroupAddUnitSimple( GetTriggerUnit(), udg_ArkenStone_Group[1] )
call GroupAddUnitSimple( GetTriggerUnit(), udg_ArkenStone_DmgGroup )
call AddSpecialEffectTargetUnitBJ( "chest", GetTriggerUnit(), "Abilities\\Spells\\Other\\Stampede\\StampedeMissileDeath.mdl" )
call TriggerExecute( gg_trg_cleanupSE_1 )
call BloodStone()
endfunction
//===========================================================================
function InitTrig_ArkenStone_red takes nothing returns nothing
set gg_trg_ArkenStone_red = CreateTrigger( )
call TriggerRegisterEnterRectSimple( gg_trg_ArkenStone_red, gg_rct_BloodStoneRed )
call TriggerAddCondition( gg_trg_ArkenStone_red, Condition( function Trig_BloodStone_red_Conditions ) )
call TriggerAddAction( gg_trg_ArkenStone_red, function Trig_BloodStone_red_Actions )
endfunction
function Trig_BloodStone_blue_Func008C takes nothing returns boolean
if ( ( GetOwningPlayer(GetTriggerUnit()) == Player(9) ) ) then
return true
endif
if ( ( GetOwningPlayer(GetTriggerUnit()) == Player(10) ) ) then
return true
endif
return false
endfunction
function Trig_BloodStone_blue_Conditions takes nothing returns boolean
if ( not ( IsUnitType(GetTriggerUnit(), UNIT_TYPE_MAGIC_IMMUNE) == true ) ) then
return false
endif
if ( not ( GetPlayerTechCountSimple('R01R', Player(1)) > 0 ) ) then
return false
endif
if ( not ( IsUnitInGroup(GetTriggerUnit(), udg_ArkenStone_Group[2]) == false ) ) then
return false
endif
if ( not Trig_BloodStone_blue_Func008C() ) then
return false
endif
return true
endfunction
function Trig_fawdw_Func002A takes nothing returns nothing
call SetUnitLifeBJ( GetEnumUnit(), ( GetUnitStateSwap(UNIT_STATE_LIFE, GetEnumUnit()) * udg_ArkenStone_HpPerc ) )
call GroupRemoveUnitSimple( GetEnumUnit(), udg_ArkenStone_DmgGroup )
endfunction
function HandlerfuncBlood2 takes nothing returns nothing
local timer t=GetExpiredTimer()
call ForGroupBJ( udg_ArkenStone_DmgGroup, function Trig_fawdw_Func002A )
call PauseTimer(t)
call DestroyTimer(t)
set t=null
endfunction
function BloodStone2 takes nothing returns nothing
local timer t=CreateTimer()
call TimerStart(t, 0.01, false, function HandlerfuncBlood2)
set t=null
endfunction
function Trig_BloodStone_blue_Actions takes nothing returns nothing
call GroupAddUnitSimple( GetTriggerUnit(), udg_ArkenStone_Group[2] )
call GroupAddUnitSimple( GetTriggerUnit(), udg_ArkenStone_DmgGroup )
call AddSpecialEffectTargetUnitBJ( "chest", GetTriggerUnit(), "Abilities\\Spells\\Other\\Stampede\\StampedeMissileDeath.mdl" )
call TriggerExecute( gg_trg_cleanupSE_1 )
call BloodStone2()
endfunction
//===========================================================================
function InitTrig_ArkenStone_blue takes nothing returns nothing
set gg_trg_ArkenStone_blue = CreateTrigger( )
call TriggerRegisterEnterRectSimple( gg_trg_ArkenStone_blue, gg_rct_BloodStoneBlue )
call TriggerAddCondition( gg_trg_ArkenStone_blue, Condition( function Trig_BloodStone_blue_Conditions ) )
call TriggerAddAction( gg_trg_ArkenStone_blue, function Trig_BloodStone_blue_Actions )
endfunction
function Trig_BloodStone_teal_Func008C takes nothing returns boolean
if ( ( GetOwningPlayer(GetTriggerUnit()) == Player(9) ) ) then
return true
endif
if ( ( GetOwningPlayer(GetTriggerUnit()) == Player(10) ) ) then
return true
endif
return false
endfunction
function Trig_BloodStone_teal_Conditions takes nothing returns boolean
if ( not ( IsUnitType(GetTriggerUnit(), UNIT_TYPE_MAGIC_IMMUNE) == true ) ) then
return false
endif
if ( not ( GetPlayerTechCountSimple('R01R', Player(2)) > 0 ) ) then
return false
endif
if ( not ( IsUnitInGroup(GetTriggerUnit(), udg_ArkenStone_Group[3]) == false ) ) then
return false
endif
if ( not Trig_BloodStone_teal_Func008C() ) then
return false
endif
return true
endfunction
function Trig_fawdw_Func003A takes nothing returns nothing
call SetUnitLifeBJ( GetEnumUnit(), ( GetUnitStateSwap(UNIT_STATE_LIFE, GetEnumUnit()) * udg_ArkenStone_HpPerc ) )
call GroupRemoveUnitSimple( GetEnumUnit(), udg_ArkenStone_DmgGroup )
endfunction
function HandlerfuncBlood3 takes nothing returns nothing
local timer t=GetExpiredTimer()
call ForGroupBJ( udg_ArkenStone_DmgGroup, function Trig_fawdw_Func003A )
call PauseTimer(t)
call DestroyTimer(t)
set t=null
endfunction
function BloodStone3 takes nothing returns nothing
local timer t=CreateTimer()
call TimerStart(t, 0.01, false, function HandlerfuncBlood3)
set t=null
endfunction
function Trig_BloodStone_teal_Actions takes nothing returns nothing
call GroupAddUnitSimple( GetTriggerUnit(), udg_ArkenStone_Group[3] )
call GroupAddUnitSimple( GetTriggerUnit(), udg_ArkenStone_DmgGroup )
call AddSpecialEffectTargetUnitBJ( "chest", GetTriggerUnit(), "Abilities\\Spells\\Other\\Stampede\\StampedeMissileDeath.mdl" )
call TriggerExecute( gg_trg_cleanupSE_1 )
call BloodStone3()
endfunction
//===========================================================================
function InitTrig_ArkenStone_teal takes nothing returns nothing
set gg_trg_ArkenStone_teal = CreateTrigger( )
call TriggerRegisterEnterRectSimple( gg_trg_ArkenStone_teal, gg_rct_BloodStoneTeal )
call TriggerAddCondition( gg_trg_ArkenStone_teal, Condition( function Trig_BloodStone_teal_Conditions ) )
call TriggerAddAction( gg_trg_ArkenStone_teal, function Trig_BloodStone_teal_Actions )
endfunction
function Trig_BloodStone_purp_Func008C takes nothing returns boolean
if ( ( GetOwningPlayer(GetTriggerUnit()) == Player(9) ) ) then
return true
endif
if ( ( GetOwningPlayer(GetTriggerUnit()) == Player(10) ) ) then
return true
endif
return false
endfunction
function Trig_BloodStone_purp_Conditions takes nothing returns boolean
if ( not ( IsUnitType(GetTriggerUnit(), UNIT_TYPE_MAGIC_IMMUNE) == true ) ) then
return false
endif
if ( not ( GetPlayerTechCountSimple('R01R', Player(3)) > 0 ) ) then
return false
endif
if ( not ( IsUnitInGroup(GetTriggerUnit(), udg_ArkenStone_Group[4]) == false ) ) then
return false
endif
if ( not Trig_BloodStone_purp_Func008C() ) then
return false
endif
return true
endfunction
function Trig_fawdw_Func004A takes nothing returns nothing
call SetUnitLifeBJ( GetEnumUnit(), ( GetUnitStateSwap(UNIT_STATE_LIFE, GetEnumUnit()) * udg_ArkenStone_HpPerc ) )
call GroupRemoveUnitSimple( GetEnumUnit(), udg_ArkenStone_DmgGroup )
endfunction
function HandlerfuncBlood4 takes nothing returns nothing
local timer t=GetExpiredTimer()
call ForGroupBJ( udg_ArkenStone_DmgGroup, function Trig_fawdw_Func004A )
call PauseTimer(t)
call DestroyTimer(t)
set t=null
endfunction
function BloodStone4 takes nothing returns nothing
local timer t=CreateTimer()
call TimerStart(t, 0.01, false, function HandlerfuncBlood4)
set t=null
endfunction
function Trig_BloodStone_purp_Actions takes nothing returns nothing
call GroupAddUnitSimple( GetTriggerUnit(), udg_ArkenStone_Group[4] )
call GroupAddUnitSimple( GetTriggerUnit(), udg_ArkenStone_DmgGroup )
call AddSpecialEffectTargetUnitBJ( "chest", GetTriggerUnit(), "Abilities\\Spells\\Other\\Stampede\\StampedeMissileDeath.mdl" )
call TriggerExecute( gg_trg_cleanupSE_1 )
call BloodStone4()
endfunction
//===========================================================================
function InitTrig_ArkenStone_purp takes nothing returns nothing
set gg_trg_ArkenStone_purp = CreateTrigger( )
call TriggerRegisterEnterRectSimple( gg_trg_ArkenStone_purp, gg_rct_BloodStonePurp )
call TriggerAddCondition( gg_trg_ArkenStone_purp, Condition( function Trig_BloodStone_purp_Conditions ) )
call TriggerAddAction( gg_trg_ArkenStone_purp, function Trig_BloodStone_purp_Actions )
endfunction
function Trig_EliteHunter_Func004C takes nothing returns boolean
if ( ( GetUnitTypeId(GetKillingUnitBJ()) == 'h00S' ) ) then
return true
endif
if ( ( GetUnitTypeId(GetKillingUnitBJ()) == 'h00V' ) ) then
return true
endif
if ( ( GetUnitTypeId(GetKillingUnitBJ()) == 'h00Y' ) ) then
return true
endif
if ( ( GetUnitTypeId(GetKillingUnitBJ()) == 'h00U' ) ) then
return true
endif
if ( ( GetUnitTypeId(GetKillingUnitBJ()) == 'h00T' ) ) then
return true
endif
if ( ( GetUnitTypeId(GetKillingUnitBJ()) == 'h00X' ) ) then
return true
endif
if ( ( GetUnitTypeId(GetKillingUnitBJ()) == 'h00Z' ) ) then
return true
endif
return false
endfunction
function Trig_EliteHunter_Conditions takes nothing returns boolean
if ( not ( GetUnitAbilityLevelSwapped('A03L', GetKillingUnitBJ()) < udg_EliteHunter_MaxLvl ) ) then
return false
endif
if ( not Trig_EliteHunter_Func004C() ) then
return false
endif
return true
endfunction
function Trig_EliteHunter_Func002C takes nothing returns boolean
if ( not ( GetUnitAbilityLevelSwapped('A03L', GetKillingUnitBJ()) < udg_EliteHunter_MaxLvl ) ) then
return false
endif
return true
endfunction
function Trig_EliteHunter_Func003Func002001 takes unit u returns boolean
return ( GetPlayerTechCountSimple('R00V', GetOwningPlayer(u)) > 0 )
endfunction
function Trig_EliteHunter_Func003C takes nothing returns boolean
if ( not ( GetUnitAbilityLevelSwapped('A03L', GetKillingUnitBJ()) == udg_EliteHunter_MaxLvl ) ) then
return false
endif
return true
endfunction
function Trig_EliteHunter_Actions takes nothing returns nothing
local unit killer
set killer = GetKillingUnitBJ()
if ( Trig_EliteHunter_Func002C() ) then
call IncUnitAbilityLevelSwapped( 'A03L', GetKillingUnitBJ() )
else
endif
if ( Trig_EliteHunter_Func003C() ) then
loop
exitwhen ( Trig_EliteHunter_Func003Func002001(killer) )
call TriggerSleepAction(RMaxBJ(bj_WAIT_FOR_COND_MIN_INTERVAL, 1))
endloop
call UnitAddAbilityBJ( 'A03K', killer )
set udg_AA_PlayerGroup = GetForceOfPlayer(GetOwningPlayer(killer))
call DisplayTextToForce( udg_AA_PlayerGroup, ( "|c0080FF00Elite Huntsmen:|r " + ( GetUnitName(killer) + " is an elite hunter!" ) ) )
call DestroyForce( udg_AA_PlayerGroup )
else
endif
endfunction
//===========================================================================
function InitTrig_EliteHunter takes nothing returns nothing
set gg_trg_EliteHunter = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_EliteHunter, EVENT_PLAYER_UNIT_DEATH )
call TriggerAddCondition( gg_trg_EliteHunter, Condition( function Trig_EliteHunter_Conditions ) )
call TriggerAddAction( gg_trg_EliteHunter, function Trig_EliteHunter_Actions )
endfunction
function Trig_Blizzard_attack_Conditions takes nothing returns boolean
if ( not ( GetPlayerTechCountSimple('R01D', GetOwningPlayer(GetAttacker())) > 0 ) ) then
return false
endif
if ( not ( GetUnitTypeId(GetAttacker()) == 'h00E' ) ) then
return false
endif
if ( not ( LoadBooleanBJ(0, GetHandleIdBJ(GetAttacker()), udg_Autocast_Table) == true ) ) then
return false
endif
if ( not ( IsUnitType(GetAttackedUnitBJ(), UNIT_TYPE_MAGIC_IMMUNE) == false ) ) then
return false
endif
return true
endfunction
function Trig_Blizzard_attack_Actions takes nothing returns nothing
local unit target
local unit source
set target = GetAttackedUnitBJ()
set source = GetAttacker()
call TriggerSleepAction( 1.00 )
set udg_AA_Point = GetUnitLoc(target)
call IssuePointOrderLocBJ( source, "blizzard", udg_AA_Point )
call RemoveLocation (udg_AA_Point)
set target = null
set source = null
endfunction
//===========================================================================
function InitTrig_Blizzard_attack takes nothing returns nothing
set gg_trg_Blizzard_attack = CreateTrigger( )
call DisableTrigger( gg_trg_Blizzard_attack )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Blizzard_attack, EVENT_PLAYER_UNIT_ATTACKED )
call TriggerAddCondition( gg_trg_Blizzard_attack, Condition( function Trig_Blizzard_attack_Conditions ) )
call TriggerAddAction( gg_trg_Blizzard_attack, function Trig_Blizzard_attack_Actions )
endfunction
function Trig_Portal_Fight_Build_Actions2 takes nothing returns nothing
local unit building
set building = GetConstructingStructure()
call TriggerSleepAction( 0.1 )
call UnitSetConstructionProgress( building, 100 )
endfunction
//===========================================================================
function InitTrig_Test_Quick_Build_MANUAL takes nothing returns nothing
set gg_trg_Test_Quick_Build_MANUAL = CreateTrigger( )
//call DisableTrigger( gg_trg_Test_Quick_Build_MANUAL )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Test_Quick_Build_MANUAL, EVENT_PLAYER_UNIT_CONSTRUCT_START )
call TriggerAddAction( gg_trg_Test_Quick_Build_MANUAL, function Trig_Portal_Fight_Build_Actions2 )
endfunction