• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.

Custom stat system!

Level 11
Joined
Jun 20, 2017
Messages
380
@Uncle I need your help to edit this system of yours a little!
Bonus attribute for each kill

Basically I want to do this
Increases Strength, Agility, and Intelligence by +1 per attack against specific structures. Bonuses are reset upon death/dropping item on the ground/after 4 seconds of not attacking.

I'm trying to combine these 3 triggers into 1, did I do it right?
Soul Ring Bonus Str
Soul Ring Bonus Agi
Soul Ring Bonus Int
  • Soul Ring Bonus All
    • Events
    • Conditions
    • Actions
      • For each (Integer SoulRing_Slot) from 1 to 6, do (Actions)
        • Loop - Actions
          • Set VariableSet SoulRing_ItemType = (Item-type of (Item carried by SoulRing_Hero in slot SoulRing_Slot))
          • -------- --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • SoulRing_ItemType Equal to SoulRing_AllItem
            • Then - Actions
              • Set VariableSet SoulRing_Item = (Item carried by SoulRing_Hero in slot SoulRing_Slot)
              • Custom script: set udg_SoulRing_Handle = udg_SoulRing_Item
              • -------- --------
              • Set VariableSet SoulRing_LoadValue = (Load 1 of (Key SoulRing_Handle.) from SoulRing_Hash.)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • SoulRing_WasHeroKill Equal to False
                • Then - Actions
                  • -------- Track unit kill counts on this item: --------
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • SoulRing_LoadValue Less than SoulRing_UnitKillsRequired
                    • Then - Actions
                      • Hashtable - Save (SoulRing_LoadValue + 1) as 1 of (Key SoulRing_Handle.) in SoulRing_Hash.
                    • Else - Actions
                      • Hashtable - Save 0 as 1 of (Key SoulRing_Handle.) in SoulRing_Hash.
                      • -------- --------
                      • Set VariableSet SoulRing_LoadValue = (Ability: (Unit: SoulRing_Hero's Ability with Ability Code: SoulRing_Ability)'s Integer Level Field Strength Bonus ('Istr'), of Level: 0)
                      • Ability - Set Ability: (Unit: SoulRing_Hero's Ability with Ability Code: SoulRing_Ability)'s Integer Level Field: Strength Bonus ('Istr') of Level: 0 to (SoulRing_LoadValue + SoulRing_BonusAmount)
                      • Unit - Increase level of SoulRing_Ability for SoulRing_Hero
                      • Unit - Decrease level of SoulRing_Ability for SoulRing_Hero
                      • -------- --------
                      • -------- Track the total amount of Strength gained: --------
                      • Set VariableSet SoulRing_LoadValue = (Load 4 of (Key SoulRing_Handle.) from SoulRing_Hash.)
                      • Hashtable - Save (SoulRing_LoadValue + SoulRing_BonusAmount) as 4 of (Key SoulRing_Handle.) in SoulRing_Hash.
                • Else - Actions
                  • -------- Hero kills don't require any kill count tracking: --------
                  • Set VariableSet SoulRing_LoadValue = (Ability: (Unit: SoulRing_Hero's Ability with Ability Code: SoulRing_Ability)'s Integer Level Field Strength Bonus ('Istr'), of Level: 0)
                  • Ability - Set Ability: (Unit: SoulRing_Hero's Ability with Ability Code: SoulRing_Ability)'s Integer Level Field: Strength Bonus ('Istr') of Level: 0 to (SoulRing_LoadValue + SoulRing_BonusAmount)
                  • Unit - Increase level of SoulRing_Ability for SoulRing_Hero
                  • Unit - Decrease level of SoulRing_Ability for SoulRing_Hero
                  • -------- --------
                  • -------- Track the total amount of Strength gained: --------
                  • Set VariableSet SoulRing_LoadValue = (Load 4 of (Key SoulRing_Handle.) from SoulRing_Hash.)
                  • Hashtable - Save (SoulRing_LoadValue + SoulRing_BonusAmount) as 4 of (Key SoulRing_Handle.) in SoulRing_Hash.
              • -------- --------
              • -------- --------
              • Set VariableSet SoulRing_LoadValue = (Load 2 of (Key SoulRing_Handle.) from SoulRing_Hash.)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • SoulRing_WasHeroKill Equal to False
                • Then - Actions
                  • -------- Track kill counts on this item: --------
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • SoulRing_LoadValue Less than SoulRing_UnitKillsRequired
                    • Then - Actions
                      • Hashtable - Save (SoulRing_LoadValue + 1) as 2 of (Key SoulRing_Handle.) in SoulRing_Hash.
                    • Else - Actions
                      • Hashtable - Save 0 as 2 of (Key SoulRing_Handle.) in SoulRing_Hash.
                      • -------- --------
                      • Set VariableSet SoulRing_LoadValue = (Ability: (Unit: SoulRing_Hero's Ability with Ability Code: SoulRing_Ability)'s Integer Level Field Intelligence Bonus ('Iint'), of Level: 0)
                      • Ability - Set Ability: (Unit: SoulRing_Hero's Ability with Ability Code: SoulRing_Ability)'s Integer Level Field: Intelligence Bonus ('Iint') of Level: 0 to (SoulRing_LoadValue + SoulRing_BonusAmount)
                      • Unit - Increase level of SoulRing_Ability for SoulRing_Hero
                      • Unit - Decrease level of SoulRing_Ability for SoulRing_Hero
                      • -------- --------
                      • -------- Track the total amount of Intelligence gained: --------
                      • Set VariableSet SoulRing_LoadValue = (Load 5 of (Key SoulRing_Handle.) from SoulRing_Hash.)
                      • Hashtable - Save (SoulRing_LoadValue + SoulRing_BonusAmount) as 5 of (Key SoulRing_Handle.) in SoulRing_Hash.
                • Else - Actions
                  • -------- Hero kills don't require any kill count tracking: --------
                  • Set VariableSet SoulRing_LoadValue = (Ability: (Unit: SoulRing_Hero's Ability with Ability Code: SoulRing_Ability)'s Integer Level Field Intelligence Bonus ('Iint'), of Level: 0)
                  • Ability - Set Ability: (Unit: SoulRing_Hero's Ability with Ability Code: SoulRing_Ability)'s Integer Level Field: Intelligence Bonus ('Iint') of Level: 0 to (SoulRing_LoadValue + SoulRing_BonusAmount)
                  • Unit - Increase level of SoulRing_Ability for SoulRing_Hero
                  • Unit - Decrease level of SoulRing_Ability for SoulRing_Hero
                  • -------- --------
                  • -------- Track the total amount of Intelligence gained: --------
                  • Set VariableSet SoulRing_LoadValue = (Load 5 of (Key SoulRing_Handle.) from SoulRing_Hash.)
                  • Hashtable - Save (SoulRing_LoadValue + SoulRing_BonusAmount) as 5 of (Key SoulRing_Handle.) in SoulRing_Hash.
              • -------- --------
              • -------- --------
              • Set VariableSet SoulRing_LoadValue = (Load 3 of (Key SoulRing_Handle.) from SoulRing_Hash.)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • SoulRing_WasHeroKill Equal to False
                • Then - Actions
                  • -------- Track kill counts on this item: --------
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • SoulRing_LoadValue Less than SoulRing_UnitKillsRequired
                    • Then - Actions
                      • Hashtable - Save (SoulRing_LoadValue + 1) as 3 of (Key SoulRing_Handle.) in SoulRing_Hash.
                    • Else - Actions
                      • Hashtable - Save 0 as 3 of (Key SoulRing_Handle.) in SoulRing_Hash.
                      • -------- --------
                      • Set VariableSet SoulRing_LoadValue = (Ability: (Unit: SoulRing_Hero's Ability with Ability Code: SoulRing_Ability)'s Integer Level Field Agility Bonus ('Iagi'), of Level: 0)
                      • Ability - Set Ability: (Unit: SoulRing_Hero's Ability with Ability Code: SoulRing_Ability)'s Integer Level Field: Agility Bonus ('Iagi') of Level: 0 to (SoulRing_LoadValue + SoulRing_BonusAmount)
                      • Unit - Increase level of SoulRing_Ability for SoulRing_Hero
                      • Unit - Decrease level of SoulRing_Ability for SoulRing_Hero
                      • -------- --------
                      • -------- Track the total amount of Agility gained: --------
                      • Set VariableSet SoulRing_LoadValue = (Load 6 of (Key SoulRing_Handle.) from SoulRing_Hash.)
                      • Hashtable - Save (SoulRing_LoadValue + SoulRing_BonusAmount) as 6 of (Key SoulRing_Handle.) in SoulRing_Hash.
                • Else - Actions
                  • -------- Hero kills don't require any kill count tracking: --------
                  • Set VariableSet SoulRing_LoadValue = (Ability: (Unit: SoulRing_Hero's Ability with Ability Code: SoulRing_Ability)'s Integer Level Field Agility Bonus ('Iagi'), of Level: 0)
                  • Ability - Set Ability: (Unit: SoulRing_Hero's Ability with Ability Code: SoulRing_Ability)'s Integer Level Field: Agility Bonus ('Iagi') of Level: 0 to (SoulRing_LoadValue + SoulRing_BonusAmount)
                  • Unit - Increase level of SoulRing_Ability for SoulRing_Hero
                  • Unit - Decrease level of SoulRing_Ability for SoulRing_Hero
                  • -------- --------
                  • -------- Track the total amount of Agility gained: --------
                  • Set VariableSet SoulRing_LoadValue = (Load 6 of (Key SoulRing_Handle.) from SoulRing_Hash.)
                  • Hashtable - Save (SoulRing_LoadValue + SoulRing_BonusAmount) as 6 of (Key SoulRing_Handle.) in SoulRing_Hash.
              • -------- --------
              • Item - Set charges remaining in SoulRing_Item to ((Charges remaining in SoulRing_Item) + SoulRing_BonusAmount)
            • Else - Actions
 
Last edited:

Uncle

Warcraft Moderator
Level 73
Joined
Aug 10, 2018
Messages
7,866
There's instructions in the GST folder as to how everything works.

Anyway, the system by default will create a brand new timer each time you call a GST_ function:
  • Custom script: call GST_Unit( udg_SoulRing_Hero, false, 4.00 )
HOWEVER, if you provide a unique "restart" key:
  • Set VariableSet GST_RestartKey = SoulRing_CV
Then the system knows to instead restart the timer if it already exists.


So for example, if I were to do this:
  • Set Variable Test_Unit = Some unit
  • Set Variable GST_Trigger = Some trigger
  • Custom script: call GST_Unit( udg_Test_Unit, false, 4.00 )
  • Custom script: call GST_Unit( udg_Test_Unit, false, 4.00 )
  • Custom script: call GST_Unit( udg_Test_Unit, false, 4.00 )
It would create 3 timers that all run GST_Trigger separately after 4.00 seconds.

The moment I add a GST_RestartKey the functionality changes to the standard Timer behavior:
  • Set Variable Test_Unit = Some unit
  • Set Variable GST_Trigger = Some trigger
  • Set Variable GST_RestartKey = (Custom value of Test_Unit)
  • Custom script: call GST_Unit( udg_Test_Unit, false, 4.00 )
  • Custom script: call GST_Unit( udg_Test_Unit, false, 4.00 )
  • Custom script: call GST_Unit( udg_Test_Unit, false, 4.00 )
This would create a new timer, then restart it two times in a row. The end result would be a single timer that lasts 4.00 seconds.
 
Last edited:
Level 11
Joined
Jun 20, 2017
Messages
380
Thanks, here are the full triggers, I hope I didn't make any mistakes!
  • Attribute Bonus Setup
    • Events
      • Map initialization
    • Conditions
    • Actions
      • Hashtable - Create a hashtable
      • Set VariableSet AttributeBonus_Hashtable = (Last created hashtable)
      • -------- --------
      • -------- You must configure these --------
      • Set VariableSet AttributeBonus_Ability = Attribute Bonus [Custom] Punisher
      • Set VariableSet AttributeBonus_AllItem = Punisher
      • Set VariableSet AttributeBonus_StrItem = Attribute Bonus Strength
      • Set VariableSet AttributeBonus_AgiItem = Attribute Bonus Agility
      • Set VariableSet AttributeBonus_IntItem = Attribute Bonus Intelligence
      • Set VariableSet AttributeBonus_BonusAmount = 100
      • Set VariableSet AttributeBonus_PerAttack = 1
      • -------- --------
      • -------- Don't change this next variable (this is necessary for the Bonus triggers to track attacks properly) --------
      • Set VariableSet AttributeBonus_PerAttack = (AttributeBonus_PerAttack - 1)
  • Attribute Bonus Acquire
    • Events
      • Unit - A unit Acquires an item
    • Conditions
      • ((Triggering unit) is A Hero) Equal to True
      • Or - Any (Conditions) are true
        • Conditions
          • (Item-type of (Item being manipulated)) Equal to AttributeBonus_AllItem
          • (Item-type of (Item being manipulated)) Equal to AttributeBonus_StrItem
          • (Item-type of (Item being manipulated)) Equal to AttributeBonus_AgiItem
          • (Item-type of (Item being manipulated)) Equal to AttributeBonus_IntItem
    • Actions
      • Set VariableSet AttributeBonus_Unit = (Triggering unit)
      • -------- --------
      • -------- Add the ability if it doesn't exist yet --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of AttributeBonus_Ability for AttributeBonus_Unit) Equal to 0
        • Then - Actions
          • Unit - Add AttributeBonus_Ability to AttributeBonus_Unit
          • -------- --------
          • -------- For the sake efficiency only enable certain Attribute Bonus triggers if a unit actually has one of these items --------
          • Trigger - Turn on Attribute Bonus Reset <gen>
          • Trigger - Turn on Attribute Bonus Reset On Die <gen>
          • Trigger - Turn on Attribute Bonus Attack <gen>
        • Else - Actions
      • -------- --------
      • -------- Save the number of Attribute Bonus to the Hero --------
      • Set VariableSet AttributeBonus_Handle = (Triggering unit)
      • Set VariableSet AttributeBonus_LoadValue = (Load 0 of (Key AttributeBonus_Handle.) from AttributeBonus_Hashtable.)
      • Hashtable - Save (AttributeBonus_LoadValue + 1) as 0 of (Key AttributeBonus_Handle.) in AttributeBonus_Hashtable.
      • -------- --------
      • Set VariableSet AttributeBonus_Handle = (Item being manipulated)
      • Set VariableSet AttributeBonus_ItemType = (Item-type of (Item being manipulated))
      • -------- --------
      • -------- Add any bonus stats that the Attribute Bonus already has stored to it --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • AttributeBonus_ItemType Equal to AttributeBonus_StrItem
        • Then - Actions
          • -------- Strength --------
          • Set VariableSet AttributeBonus_LoadValue = (Ability: (Unit: AttributeBonus_Unit's Ability with Ability Code: AttributeBonus_Ability)'s Integer Level Field Strength Bonus ('Istr'), of Level: 0)
          • Ability - Set Ability: (Unit: AttributeBonus_Unit's Ability with Ability Code: AttributeBonus_Ability)'s Integer Level Field: Strength Bonus ('Istr') of Level: 0 to (AttributeBonus_LoadValue + (Load 4 of (Key AttributeBonus_Handle.) from AttributeBonus_Hashtable.))
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • AttributeBonus_ItemType Equal to AttributeBonus_AgiItem
            • Then - Actions
              • -------- Agility --------
              • Set VariableSet AttributeBonus_LoadValue = (Ability: (Unit: AttributeBonus_Unit's Ability with Ability Code: AttributeBonus_Ability)'s Integer Level Field Agility Bonus ('Iagi'), of Level: 0)
              • Ability - Set Ability: (Unit: AttributeBonus_Unit's Ability with Ability Code: AttributeBonus_Ability)'s Integer Level Field: Agility Bonus ('Iagi') of Level: 0 to (AttributeBonus_LoadValue + (Load 5 of (Key AttributeBonus_Handle.) from AttributeBonus_Hashtable.))
            • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • AttributeBonus_ItemType Equal to AttributeBonus_IntItem
                • Then - Actions
                  • -------- Intelligence --------
                  • Set VariableSet AttributeBonus_LoadValue = (Ability: (Unit: AttributeBonus_Unit's Ability with Ability Code: AttributeBonus_Ability)'s Integer Level Field Intelligence Bonus ('Iint'), of Level: 0)
                  • Ability - Set Ability: (Unit: AttributeBonus_Unit's Ability with Ability Code: AttributeBonus_Ability)'s Integer Level Field: Intelligence Bonus ('Iint') of Level: 0 to (AttributeBonus_LoadValue + (Load 6 of (Key AttributeBonus_Handle.) from AttributeBonus_Hashtable.))
                • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • AttributeBonus_ItemType Equal to AttributeBonus_AllItem
                    • Then - Actions
                      • -------- Strength --------
                      • Set VariableSet AttributeBonus_LoadValue = (Ability: (Unit: AttributeBonus_Unit's Ability with Ability Code: AttributeBonus_Ability)'s Integer Level Field Strength Bonus ('Istr'), of Level: 0)
                      • Ability - Set Ability: (Unit: AttributeBonus_Unit's Ability with Ability Code: AttributeBonus_Ability)'s Integer Level Field: Strength Bonus ('Istr') of Level: 0 to (AttributeBonus_LoadValue + (Load 4 of (Key AttributeBonus_Handle.) from AttributeBonus_Hashtable.))
                      • -------- --------
                      • -------- Agility --------
                      • Set VariableSet AttributeBonus_LoadValue = (Ability: (Unit: AttributeBonus_Unit's Ability with Ability Code: AttributeBonus_Ability)'s Integer Level Field Agility Bonus ('Iagi'), of Level: 0)
                      • Ability - Set Ability: (Unit: AttributeBonus_Unit's Ability with Ability Code: AttributeBonus_Ability)'s Integer Level Field: Agility Bonus ('Iagi') of Level: 0 to (AttributeBonus_LoadValue + (Load 5 of (Key AttributeBonus_Handle.) from AttributeBonus_Hashtable.))
                      • -------- --------
                      • -------- Intelligence --------
                      • Set VariableSet AttributeBonus_LoadValue = (Ability: (Unit: AttributeBonus_Unit's Ability with Ability Code: AttributeBonus_Ability)'s Integer Level Field Intelligence Bonus ('Iint'), of Level: 0)
                      • Ability - Set Ability: (Unit: AttributeBonus_Unit's Ability with Ability Code: AttributeBonus_Ability)'s Integer Level Field: Intelligence Bonus ('Iint') of Level: 0 to (AttributeBonus_LoadValue + (Load 6 of (Key AttributeBonus_Handle.) from AttributeBonus_Hashtable.))
                    • Else - Actions
      • -------- --------
      • Unit - Increase level of AttributeBonus_Ability for AttributeBonus_Unit
      • Unit - Decrease level of AttributeBonus_Ability for AttributeBonus_Unit
  • Attribute Bonus Lose
    • Events
      • Unit - A unit Loses an item
    • Conditions
      • ((Triggering unit) is A Hero) Equal to True
      • (Item-type of (Item being manipulated)) Equal to AttributeBonus_AllItem
    • Actions
      • Set VariableSet AttributeBonus_DeadUnit = (Triggering unit)
      • -------- --------
      • -------- Reset the ability so it provides 0 bonus stats --------
      • Ability - Set Ability: (Unit: AttributeBonus_Unit's Ability with Ability Code: AttributeBonus_Ability)'s Integer Level Field: Strength Bonus ('Istr') of Level: 0 to 0
      • Ability - Set Ability: (Unit: AttributeBonus_Unit's Ability with Ability Code: AttributeBonus_Ability)'s Integer Level Field: Agility Bonus ('Iagi') of Level: 0 to 0
      • Ability - Set Ability: (Unit: AttributeBonus_Unit's Ability with Ability Code: AttributeBonus_Ability)'s Integer Level Field: Intelligence Bonus ('Iint') of Level: 0 to 0
      • Unit - Increase level of AttributeBonus_Ability for AttributeBonus_Unit
      • Unit - Decrease level of AttributeBonus_Ability for AttributeBonus_Unit
      • -------- --------
      • -------- Reset attack counts on each Attribute Bonus --------
      • For each (Integer AttributeBonus_Slot) from 1 to 6, do (Actions)
        • Loop - Actions
          • Set VariableSet AttributeBonus_Item = (Item carried by AttributeBonus_DeadUnit in slot AttributeBonus_Slot)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Or - Any (Conditions) are true
                • Conditions
                  • (Item-type of AttributeBonus_Item) Equal to AttributeBonus_AllItem
                  • (Item-type of AttributeBonus_Item) Equal to AttributeBonus_StrItem
                  • (Item-type of AttributeBonus_Item) Equal to AttributeBonus_AgiItem
                  • (Item-type of AttributeBonus_Item) Equal to AttributeBonus_IntItem
            • Then - Actions
              • Custom script: set udg_AttributeBonus_Handle = udg_AttributeBonus_Item
              • Hashtable - Save 0 as 1 of (Key AttributeBonus_Handle.) in AttributeBonus_Hashtable.
              • Hashtable - Save 0 as 2 of (Key AttributeBonus_Handle.) in AttributeBonus_Hashtable.
              • Hashtable - Save 0 as 3 of (Key AttributeBonus_Handle.) in AttributeBonus_Hashtable.
              • Hashtable - Save 0 as 4 of (Key AttributeBonus_Handle.) in AttributeBonus_Hashtable.
              • Hashtable - Save 0 as 5 of (Key AttributeBonus_Handle.) in AttributeBonus_Hashtable.
              • Hashtable - Save 0 as 6 of (Key AttributeBonus_Handle.) in AttributeBonus_Hashtable.
              • Item - Set charges remaining in AttributeBonus_Item to 0
            • Else - Actions
  • Attribute Bonus Reset
    • Events
      • Unit - A unit Loses an item
    • Conditions
      • ((Triggering unit) is A Hero) Equal to True
      • Or - Any (Conditions) are true
        • Conditions
          • (Item-type of (Item being manipulated)) Equal to AttributeBonus_AllItem
          • (Item-type of (Item being manipulated)) Equal to AttributeBonus_StrItem
          • (Item-type of (Item being manipulated)) Equal to AttributeBonus_AgiItem
          • (Item-type of (Item being manipulated)) Equal to AttributeBonus_IntItem
    • Actions
      • Set VariableSet AttributeBonus_Unit = (Triggering unit)
      • -------- --------
      • -------- Save the number of Attribute Bonus to the Hero --------
      • Set VariableSet AttributeBonus_Handle = (Triggering unit)
      • Set VariableSet AttributeBonus_LoadValue = (Load 0 of (Key AttributeBonus_Handle.) from AttributeBonus_Hashtable.)
      • Hashtable - Save (AttributeBonus_LoadValue - 1) as 0 of (Key AttributeBonus_Handle.) in AttributeBonus_Hashtable.
      • -------- --------
      • Set VariableSet AttributeBonus_Handle = (Item being manipulated)
      • Set VariableSet AttributeBonus_ItemType = (Item-type of (Item being manipulated))
      • -------- --------
      • -------- Subtract the bonus stats that the lost Attribute Bonus was providing --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • AttributeBonus_ItemType Equal to AttributeBonus_StrItem
        • Then - Actions
          • -------- Strength --------
          • Set VariableSet AttributeBonus_LoadValue = (Ability: (Unit: AttributeBonus_Unit's Ability with Ability Code: AttributeBonus_Ability)'s Integer Level Field Strength Bonus ('Istr'), of Level: 0)
          • Ability - Set Ability: (Unit: AttributeBonus_Unit's Ability with Ability Code: AttributeBonus_Ability)'s Integer Level Field: Strength Bonus ('Istr') of Level: 0 to (AttributeBonus_LoadValue - (Load 4 of (Key AttributeBonus_Handle.) from AttributeBonus_Hashtable.))
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • AttributeBonus_ItemType Equal to AttributeBonus_IntItem
            • Then - Actions
              • -------- Agility --------
              • Set VariableSet AttributeBonus_LoadValue = (Ability: (Unit: AttributeBonus_Unit's Ability with Ability Code: AttributeBonus_Ability)'s Integer Level Field Agility Bonus ('Iagi'), of Level: 0)
              • Ability - Set Ability: (Unit: AttributeBonus_Unit's Ability with Ability Code: AttributeBonus_Ability)'s Integer Level Field: Agility Bonus ('Iagi') of Level: 0 to (AttributeBonus_LoadValue - (Load 5 of (Key AttributeBonus_Handle.) from AttributeBonus_Hashtable.))
            • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • AttributeBonus_ItemType Equal to AttributeBonus_AgiItem
                • Then - Actions
                  • -------- Intelligence --------
                  • Set VariableSet AttributeBonus_LoadValue = (Ability: (Unit: AttributeBonus_Unit's Ability with Ability Code: AttributeBonus_Ability)'s Integer Level Field Intelligence Bonus ('Iint'), of Level: 0)
                  • Ability - Set Ability: (Unit: AttributeBonus_Unit's Ability with Ability Code: AttributeBonus_Ability)'s Integer Level Field: Intelligence Bonus ('Iint') of Level: 0 to (AttributeBonus_LoadValue - (Load 6 of (Key AttributeBonus_Handle.) from AttributeBonus_Hashtable.))
                • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • AttributeBonus_ItemType Equal to AttributeBonus_AllItem
                    • Then - Actions
                      • -------- Strength --------
                      • Set VariableSet AttributeBonus_LoadValue = (Ability: (Unit: AttributeBonus_Unit's Ability with Ability Code: AttributeBonus_Ability)'s Integer Level Field Strength Bonus ('Istr'), of Level: 0)
                      • Ability - Set Ability: (Unit: AttributeBonus_Unit's Ability with Ability Code: AttributeBonus_Ability)'s Integer Level Field: Strength Bonus ('Istr') of Level: 0 to (AttributeBonus_LoadValue - (Load 4 of (Key AttributeBonus_Handle.) from AttributeBonus_Hashtable.))
                      • -------- Agility --------
                      • Set VariableSet AttributeBonus_LoadValue = (Ability: (Unit: AttributeBonus_Unit's Ability with Ability Code: AttributeBonus_Ability)'s Integer Level Field Agility Bonus ('Iagi'), of Level: 0)
                      • Ability - Set Ability: (Unit: AttributeBonus_Unit's Ability with Ability Code: AttributeBonus_Ability)'s Integer Level Field: Agility Bonus ('Iagi') of Level: 0 to (AttributeBonus_LoadValue - (Load 5 of (Key AttributeBonus_Handle.) from AttributeBonus_Hashtable.))
                      • -------- Intelligence --------
                      • Set VariableSet AttributeBonus_LoadValue = (Ability: (Unit: AttributeBonus_Unit's Ability with Ability Code: AttributeBonus_Ability)'s Integer Level Field Intelligence Bonus ('Iint'), of Level: 0)
                      • Ability - Set Ability: (Unit: AttributeBonus_Unit's Ability with Ability Code: AttributeBonus_Ability)'s Integer Level Field: Intelligence Bonus ('Iint') of Level: 0 to (AttributeBonus_LoadValue - (Load 6 of (Key AttributeBonus_Handle.) from AttributeBonus_Hashtable.))
                    • Else - Actions
      • -------- --------
      • Unit - Increase level of AttributeBonus_Ability for AttributeBonus_Unit
      • Unit - Decrease level of AttributeBonus_Ability for AttributeBonus_Unit
  • Attribute Bonus Reset On Die
    • Events
      • Unit - A unit Dies
    • Conditions
      • (Load 0 of (Key (Dying unit).) from AttributeBonus_Hashtable.) Greater than 0
    • Actions
      • Set VariableSet AttributeBonus_DeadUnit = (Triggering unit)
      • -------- --------
      • -------- Reset the ability so it provides 0 bonus stats --------
      • Ability - Set Ability: (Unit: AttributeBonus_Unit's Ability with Ability Code: AttributeBonus_Ability)'s Integer Level Field: Strength Bonus ('Istr') of Level: 0 to 0
      • Ability - Set Ability: (Unit: AttributeBonus_Unit's Ability with Ability Code: AttributeBonus_Ability)'s Integer Level Field: Agility Bonus ('Iagi') of Level: 0 to 0
      • Ability - Set Ability: (Unit: AttributeBonus_Unit's Ability with Ability Code: AttributeBonus_Ability)'s Integer Level Field: Intelligence Bonus ('Iint') of Level: 0 to 0
      • Unit - Increase level of AttributeBonus_Ability for AttributeBonus_Unit
      • Unit - Decrease level of AttributeBonus_Ability for AttributeBonus_Unit
      • -------- --------
      • -------- Reset attack counts on each Attribute Bonus --------
      • For each (Integer AttributeBonus_Slot) from 1 to 6, do (Actions)
        • Loop - Actions
          • Set VariableSet AttributeBonus_Item = (Item carried by AttributeBonus_DeadUnit in slot AttributeBonus_Slot)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Or - Any (Conditions) are true
                • Conditions
                  • (Item-type of AttributeBonus_Item) Equal to AttributeBonus_AllItem
                  • (Item-type of AttributeBonus_Item) Equal to AttributeBonus_StrItem
                  • (Item-type of AttributeBonus_Item) Equal to AttributeBonus_AgiItem
                  • (Item-type of AttributeBonus_Item) Equal to AttributeBonus_IntItem
            • Then - Actions
              • Custom script: set udg_AttributeBonus_Handle = udg_AttributeBonus_Item
              • Hashtable - Save 0 as 1 of (Key AttributeBonus_Handle.) in AttributeBonus_Hashtable.
              • Hashtable - Save 0 as 2 of (Key AttributeBonus_Handle.) in AttributeBonus_Hashtable.
              • Hashtable - Save 0 as 3 of (Key AttributeBonus_Handle.) in AttributeBonus_Hashtable.
              • Hashtable - Save 0 as 4 of (Key AttributeBonus_Handle.) in AttributeBonus_Hashtable.
              • Hashtable - Save 0 as 5 of (Key AttributeBonus_Handle.) in AttributeBonus_Hashtable.
              • Hashtable - Save 0 as 6 of (Key AttributeBonus_Handle.) in AttributeBonus_Hashtable.
              • Item - Set charges remaining in AttributeBonus_Item to 0
            • Else - Actions
  • Attribute Bonus Attack
    • Events
      • Unit - A unit Is attacked
    • Conditions
      • (Load 0 of (Key (Attacking unit).) from AttributeBonus_Hashtable.) Greater than 0
    • Actions
      • Set VariableSet AttributeBonus_Unit = (Attacking unit)
      • Set VariableSet AttributeBonus_DeadUnit = (Triggering unit)
      • -------- --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Or - Any (Conditions) are true
            • Conditions
              • (Unit-type of AttributeBonus_DeadUnit) Equal to Wall
              • (Unit-type of AttributeBonus_DeadUnit) Equal to Wall (2)
              • (Unit-type of AttributeBonus_DeadUnit) Equal to Wall (3)
              • (Unit-type of AttributeBonus_DeadUnit) Equal to Wall (4)
              • (Unit-type of AttributeBonus_DeadUnit) Equal to Wall (5)
              • (Unit-type of AttributeBonus_DeadUnit) Equal to Wall (6)
              • (Unit-type of AttributeBonus_DeadUnit) Equal to Wall (7)
              • (Unit-type of AttributeBonus_DeadUnit) Equal to Wall (8)
              • (Unit-type of AttributeBonus_DeadUnit) Equal to Wall (9)
              • (Unit-type of AttributeBonus_DeadUnit) Equal to Wall (10)
              • (Unit-type of AttributeBonus_DeadUnit) Equal to Wall (11)
        • Then - Actions
          • Set VariableSet AttributeBonus_IsItHero = False
          • -------- --------
          • Trigger - Run Attribute Bonus Str <gen> (ignoring conditions)
          • Trigger - Run Attribute Bonus Agi <gen> (ignoring conditions)
          • Trigger - Run Attribute Bonus Int <gen> (ignoring conditions)
        • Else - Actions
      • -------- --------
      • -------- Use the "GST system" to start a 4.00 second timer (or restart the existing one) --------
      • Set VariableSet GST_Trigger = Attribute Bonus Reset 4 Sec <gen>
      • Custom script: call GST_Unit( udg_AttributeBonus_Unit, false, 4.00 )
  • Attribute Bonus Reset 4 Sec
    • Events
    • Conditions
    • Actions
      • -------- This trigger is using the "GST system". It's hooked up to a timer that will expire after 4.00 seconds --------
      • -------- "GST_Unit1" = The "AttributeBonus_Unit" from "Attribute Bonus Attack" --------
      • Set VariableSet AttributeBonus_DeadUnit = GST_Unit1
      • -------- --------
      • -------- Reset the ability so it provides 0 bonus stats --------
      • Ability - Set Ability: (Unit: GST_Unit1's Ability with Ability Code: AttributeBonus_Ability)'s Integer Level Field: Strength Bonus ('Istr') of Level: 0 to 0
      • Ability - Set Ability: (Unit: GST_Unit1's Ability with Ability Code: AttributeBonus_Ability)'s Integer Level Field: Agility Bonus ('Iagi') of Level: 0 to 0
      • Ability - Set Ability: (Unit: GST_Unit1's Ability with Ability Code: AttributeBonus_Ability)'s Integer Level Field: Intelligence Bonus ('Iint') of Level: 0 to 0
      • Unit - Increase level of AttributeBonus_Ability for GST_Unit1
      • Unit - Decrease level of AttributeBonus_Ability for GST_Unit1
      • -------- --------
      • -------- Reset attack counts on each Attribute Bonus --------
      • For each (Integer AttributeBonus_Slot) from 1 to 6, do (Actions)
        • Loop - Actions
          • Set VariableSet AttributeBonus_Item = (Item carried by AttributeBonus_DeadUnit in slot AttributeBonus_Slot)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Or - Any (Conditions) are true
                • Conditions
                  • (Item-type of AttributeBonus_Item) Equal to AttributeBonus_AllItem
                  • (Item-type of AttributeBonus_Item) Equal to AttributeBonus_StrItem
                  • (Item-type of AttributeBonus_Item) Equal to AttributeBonus_AgiItem
                  • (Item-type of AttributeBonus_Item) Equal to AttributeBonus_IntItem
            • Then - Actions
              • Custom script: set udg_AttributeBonus_Handle = udg_AttributeBonus_Item
              • Hashtable - Save 0 as 1 of (Key AttributeBonus_Handle.) in AttributeBonus_Hashtable.
              • Hashtable - Save 0 as 2 of (Key AttributeBonus_Handle.) in AttributeBonus_Hashtable.
              • Hashtable - Save 0 as 3 of (Key AttributeBonus_Handle.) in AttributeBonus_Hashtable.
              • Hashtable - Save 0 as 4 of (Key AttributeBonus_Handle.) in AttributeBonus_Hashtable.
              • Hashtable - Save 0 as 5 of (Key AttributeBonus_Handle.) in AttributeBonus_Hashtable.
              • Hashtable - Save 0 as 6 of (Key AttributeBonus_Handle.) in AttributeBonus_Hashtable.
              • Item - Set charges remaining in AttributeBonus_Item to 0
            • Else - Actions
  • Attribute Bonus Str
    • Events
    • Conditions
    • Actions
      • For each (Integer AttributeBonus_Slot) from 1 to 6, do (Actions)
        • Loop - Actions
          • Set VariableSet AttributeBonus_ItemType = (Item-type of (Item carried by AttributeBonus_Unit in slot AttributeBonus_Slot))
          • -------- --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Or - Any (Conditions) are true
                • Conditions
                  • AttributeBonus_ItemType Equal to AttributeBonus_AllItem
                  • AttributeBonus_ItemType Equal to AttributeBonus_StrItem
            • Then - Actions
              • Set VariableSet AttributeBonus_Item = (Item carried by AttributeBonus_Unit in slot AttributeBonus_Slot)
              • Custom script: set udg_AttributeBonus_Handle = udg_AttributeBonus_Item
              • Set VariableSet AttributeBonus_LoadValue = (Load 1 of (Key AttributeBonus_Handle.) from AttributeBonus_Hashtable.)
              • -------- --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • AttributeBonus_IsItHero Equal to False
                • Then - Actions
                  • -------- Track unit attack counts on this item --------
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • AttributeBonus_LoadValue Less than AttributeBonus_PerAttack
                    • Then - Actions
                      • Hashtable - Save (AttributeBonus_LoadValue + 1) as 1 of (Key AttributeBonus_Handle.) in AttributeBonus_Hashtable.
                    • Else - Actions
                      • Hashtable - Save 0 as 1 of (Key AttributeBonus_Handle.) in AttributeBonus_Hashtable.
                      • -------- --------
                      • Set VariableSet AttributeBonus_LoadValue = (Ability: (Unit: AttributeBonus_Unit's Ability with Ability Code: AttributeBonus_Ability)'s Integer Level Field Strength Bonus ('Istr'), of Level: 0)
                      • Ability - Set Ability: (Unit: AttributeBonus_Unit's Ability with Ability Code: AttributeBonus_Ability)'s Integer Level Field: Strength Bonus ('Istr') of Level: 0 to (AttributeBonus_LoadValue + AttributeBonus_BonusAmount)
                      • Unit - Increase level of AttributeBonus_Ability for AttributeBonus_Unit
                      • Unit - Decrease level of AttributeBonus_Ability for AttributeBonus_Unit
                      • -------- --------
                      • -------- Track the total amount of Strength gained --------
                      • Set VariableSet AttributeBonus_LoadValue = (Load 4 of (Key AttributeBonus_Handle.) from AttributeBonus_Hashtable.)
                      • Hashtable - Save (AttributeBonus_LoadValue + AttributeBonus_BonusAmount) as 4 of (Key AttributeBonus_Handle.) in AttributeBonus_Hashtable.
                      • Item - Set charges remaining in AttributeBonus_Item to ((Charges remaining in AttributeBonus_Item) + AttributeBonus_BonusAmount)
                • Else - Actions
                  • -------- Hero attacks don't require any attack count tracking --------
                  • Set VariableSet AttributeBonus_LoadValue = (Ability: (Unit: AttributeBonus_Unit's Ability with Ability Code: AttributeBonus_Ability)'s Integer Level Field Strength Bonus ('Istr'), of Level: 0)
                  • Ability - Set Ability: (Unit: AttributeBonus_Unit's Ability with Ability Code: AttributeBonus_Ability)'s Integer Level Field: Strength Bonus ('Istr') of Level: 0 to (AttributeBonus_LoadValue + AttributeBonus_BonusAmount)
                  • Unit - Increase level of AttributeBonus_Ability for AttributeBonus_Unit
                  • Unit - Decrease level of AttributeBonus_Ability for AttributeBonus_Unit
                  • -------- --------
                  • -------- Track the total amount of Strength gained --------
                  • Set VariableSet AttributeBonus_LoadValue = (Load 4 of (Key AttributeBonus_Handle.) from AttributeBonus_Hashtable.)
                  • Hashtable - Save (AttributeBonus_LoadValue + AttributeBonus_BonusAmount) as 4 of (Key AttributeBonus_Handle.) in AttributeBonus_Hashtable.
                  • Item - Set charges remaining in AttributeBonus_Item to ((Charges remaining in AttributeBonus_Item) + AttributeBonus_BonusAmount)
            • Else - Actions
  • Attribute Bonus Agi
    • Events
    • Conditions
    • Actions
      • For each (Integer AttributeBonus_Slot) from 1 to 6, do (Actions)
        • Loop - Actions
          • Set VariableSet AttributeBonus_ItemType = (Item-type of (Item carried by AttributeBonus_Unit in slot AttributeBonus_Slot))
          • -------- --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Or - Any (Conditions) are true
                • Conditions
                  • AttributeBonus_ItemType Equal to AttributeBonus_AllItem
                  • AttributeBonus_ItemType Equal to AttributeBonus_AgiItem
            • Then - Actions
              • Set VariableSet AttributeBonus_Item = (Item carried by AttributeBonus_Unit in slot AttributeBonus_Slot)
              • Custom script: set udg_AttributeBonus_Handle = udg_AttributeBonus_Item
              • Set VariableSet AttributeBonus_LoadValue = (Load 2 of (Key AttributeBonus_Handle.) from AttributeBonus_Hashtable.)
              • -------- --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • AttributeBonus_IsItHero Equal to False
                • Then - Actions
                  • -------- Track unit attack counts on this item --------
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • AttributeBonus_LoadValue Less than AttributeBonus_PerAttack
                    • Then - Actions
                      • Hashtable - Save (AttributeBonus_LoadValue + 1) as 2 of (Key AttributeBonus_Handle.) in AttributeBonus_Hashtable.
                    • Else - Actions
                      • Hashtable - Save 0 as 2 of (Key AttributeBonus_Handle.) in AttributeBonus_Hashtable.
                      • -------- --------
                      • Set VariableSet AttributeBonus_LoadValue = (Ability: (Unit: AttributeBonus_Unit's Ability with Ability Code: AttributeBonus_Ability)'s Integer Level Field Agility Bonus ('Iagi'), of Level: 0)
                      • Ability - Set Ability: (Unit: AttributeBonus_Unit's Ability with Ability Code: AttributeBonus_Ability)'s Integer Level Field: Agility Bonus ('Iagi') of Level: 0 to (AttributeBonus_LoadValue + AttributeBonus_BonusAmount)
                      • Unit - Increase level of AttributeBonus_Ability for AttributeBonus_Unit
                      • Unit - Decrease level of AttributeBonus_Ability for AttributeBonus_Unit
                      • -------- --------
                      • -------- Track the total amount of Agility gained --------
                      • Set VariableSet AttributeBonus_LoadValue = (Load 5 of (Key AttributeBonus_Handle.) from AttributeBonus_Hashtable.)
                      • Hashtable - Save (AttributeBonus_LoadValue + AttributeBonus_BonusAmount) as 5 of (Key AttributeBonus_Handle.) in AttributeBonus_Hashtable.
                      • Item - Set charges remaining in AttributeBonus_Item to ((Charges remaining in AttributeBonus_Item) + AttributeBonus_BonusAmount)
                • Else - Actions
                  • -------- Hero attacks don't require any attack count tracking --------
                  • Set VariableSet AttributeBonus_LoadValue = (Ability: (Unit: AttributeBonus_Unit's Ability with Ability Code: AttributeBonus_Ability)'s Integer Level Field Agility Bonus ('Iagi'), of Level: 0)
                  • Ability - Set Ability: (Unit: AttributeBonus_Unit's Ability with Ability Code: AttributeBonus_Ability)'s Integer Level Field: Agility Bonus ('Iagi') of Level: 0 to (AttributeBonus_LoadValue + AttributeBonus_BonusAmount)
                  • Unit - Increase level of AttributeBonus_Ability for AttributeBonus_Unit
                  • Unit - Decrease level of AttributeBonus_Ability for AttributeBonus_Unit
                  • -------- --------
                  • -------- Track the total amount of Agility gained --------
                  • Set VariableSet AttributeBonus_LoadValue = (Load 5 of (Key AttributeBonus_Handle.) from AttributeBonus_Hashtable.)
                  • Hashtable - Save (AttributeBonus_LoadValue + AttributeBonus_BonusAmount) as 5 of (Key AttributeBonus_Handle.) in AttributeBonus_Hashtable.
                  • Item - Set charges remaining in AttributeBonus_Item to ((Charges remaining in AttributeBonus_Item) + AttributeBonus_BonusAmount)
            • Else - Actions
  • Attribute Bonus Int
    • Events
    • Conditions
    • Actions
      • For each (Integer AttributeBonus_Slot) from 1 to 6, do (Actions)
        • Loop - Actions
          • Set VariableSet AttributeBonus_ItemType = (Item-type of (Item carried by AttributeBonus_Unit in slot AttributeBonus_Slot))
          • -------- --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Or - Any (Conditions) are true
                • Conditions
                  • AttributeBonus_ItemType Equal to AttributeBonus_AllItem
                  • AttributeBonus_ItemType Equal to AttributeBonus_IntItem
            • Then - Actions
              • Set VariableSet AttributeBonus_Item = (Item carried by AttributeBonus_Unit in slot AttributeBonus_Slot)
              • Custom script: set udg_AttributeBonus_Handle = udg_AttributeBonus_Item
              • Set VariableSet AttributeBonus_LoadValue = (Load 3 of (Key AttributeBonus_Handle.) from AttributeBonus_Hashtable.)
              • -------- --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • AttributeBonus_IsItHero Equal to False
                • Then - Actions
                  • -------- Track unit attack counts on this item --------
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • AttributeBonus_LoadValue Less than AttributeBonus_PerAttack
                    • Then - Actions
                      • Hashtable - Save (AttributeBonus_LoadValue + 1) as 3 of (Key AttributeBonus_Handle.) in AttributeBonus_Hashtable.
                    • Else - Actions
                      • Hashtable - Save 0 as 3 of (Key AttributeBonus_Handle.) in AttributeBonus_Hashtable.
                      • -------- --------
                      • Set VariableSet AttributeBonus_LoadValue = (Ability: (Unit: AttributeBonus_Unit's Ability with Ability Code: AttributeBonus_Ability)'s Integer Level Field Intelligence Bonus ('Iint'), of Level: 0)
                      • Ability - Set Ability: (Unit: AttributeBonus_Unit's Ability with Ability Code: AttributeBonus_Ability)'s Integer Level Field: Intelligence Bonus ('Iint') of Level: 0 to (AttributeBonus_LoadValue + AttributeBonus_BonusAmount)
                      • Unit - Increase level of AttributeBonus_Ability for AttributeBonus_Unit
                      • Unit - Decrease level of AttributeBonus_Ability for AttributeBonus_Unit
                      • -------- --------
                      • -------- Track the total amount of Intelligence gained --------
                      • Set VariableSet AttributeBonus_LoadValue = (Load 6 of (Key AttributeBonus_Handle.) from AttributeBonus_Hashtable.)
                      • Hashtable - Save (AttributeBonus_LoadValue + AttributeBonus_BonusAmount) as 6 of (Key AttributeBonus_Handle.) in AttributeBonus_Hashtable.
                      • Item - Set charges remaining in AttributeBonus_Item to ((Charges remaining in AttributeBonus_Item) + AttributeBonus_BonusAmount)
                • Else - Actions
                  • -------- Hero attacks don't require any attack count tracking --------
                  • Set VariableSet AttributeBonus_LoadValue = (Ability: (Unit: AttributeBonus_Unit's Ability with Ability Code: AttributeBonus_Ability)'s Integer Level Field Intelligence Bonus ('Iint'), of Level: 0)
                  • Ability - Set Ability: (Unit: AttributeBonus_Unit's Ability with Ability Code: AttributeBonus_Ability)'s Integer Level Field: Intelligence Bonus ('Iint') of Level: 0 to (AttributeBonus_LoadValue + AttributeBonus_BonusAmount)
                  • Unit - Increase level of AttributeBonus_Ability for AttributeBonus_Unit
                  • Unit - Decrease level of AttributeBonus_Ability for AttributeBonus_Unit
                  • -------- --------
                  • -------- Track the total amount of Intelligence gained --------
                  • Set VariableSet AttributeBonus_LoadValue = (Load 6 of (Key AttributeBonus_Handle.) from AttributeBonus_Hashtable.)
                  • Hashtable - Save (AttributeBonus_LoadValue + AttributeBonus_BonusAmount) as 6 of (Key AttributeBonus_Handle.) in AttributeBonus_Hashtable.
                  • Item - Set charges remaining in AttributeBonus_Item to ((Charges remaining in AttributeBonus_Item) + AttributeBonus_BonusAmount)
            • Else - Actions

If I understand correctly, this is the new system that gives me 5 stats every 5 seconds, there is a problem that it runs twice after giving the first 5 stats!
  • Vampiric Orb
    • Events
      • Unit - A unit Acquires an item
    • Conditions
      • ((Triggering unit) is A Hero) Equal to True
      • (Item-type of (Item being manipulated)) Equal to Vampiric Orb
    • Actions
      • Set VariableSet VO_Unit = (Triggering unit)
      • -------- --------
      • -------- Add the ability if it doesn't exist yet --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Attribute Bonus [Custom] Vampiric Orb for VO_Unit) Equal to 0
        • Then - Actions
          • Unit - Add Attribute Bonus [Custom] Vampiric Orb to VO_Unit
        • Else - Actions
      • -------- --------
      • Set VariableSet GST_Trigger = Vampiric Orb Bonus <gen>
      • Custom script: call GST_Unit( udg_VO_Unit, true, 5.00 )
  • Vampiric Orb Bonus
    • Events
    • Conditions
    • Actions
      • Set VariableSet VO_Unit = GST_Unit1
      • -------- --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (GST_Unit1 has an item of type Vampiric Orb) Equal to True
        • Then - Actions
          • Set VariableSet VO_BonusAmount = (VO_BonusAmount + 5)
          • -------- --------
          • Ability - Set Ability: (Unit: GST_Unit1's Ability with Ability Code: Attribute Bonus [Custom] Vampiric Orb)'s Integer Level Field: Strength Bonus ('Istr') of Level: 0 to VO_BonusAmount
          • Ability - Set Ability: (Unit: GST_Unit1's Ability with Ability Code: Attribute Bonus [Custom] Vampiric Orb)'s Integer Level Field: Agility Bonus ('Iagi') of Level: 0 to VO_BonusAmount
          • Ability - Set Ability: (Unit: GST_Unit1's Ability with Ability Code: Attribute Bonus [Custom] Vampiric Orb)'s Integer Level Field: Intelligence Bonus ('Iint') of Level: 0 to VO_BonusAmount
          • Unit - Increase level of Attribute Bonus [Custom] Vampiric Orb for GST_Unit1
          • Unit - Decrease level of Attribute Bonus [Custom] Vampiric Orb for GST_Unit1
        • Else - Actions
 
Top