• Check out the results of the Techtree Contest #19!
  • 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.
  • Create a void inspired texture for Warcraft 3 and enter Hive's 34th Texturing Contest: Void! Click here to enter!
  • The Hive's 22nd Icon Contest: Creep Abilities is now concluded, time to vote for your favourite set of icons! Click here to vote!

Custom stat system!

Status
Not open for further replies.
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:
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:
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
 
Status
Not open for further replies.
Back
Top