vypur85
Hibernate
- Reaction score
- 793
This is a simple system which allows you to set/add a unit's damage to a certain value, determined by you. At the moment, the system only allows you to set/add up to 99999 damage at max. Not sure if this has been submitted before though.
How to implement:
Example of usage:
This will set the Triggering unit's damage to 12.
Triggers:
It's just something simple inspired by Tom Jones set max HP.
Additional note:
The system above is also usable for setting Armor. All you need to do is to replace Item Damage Bonus to Item Armor Bonus.
Hope you like it.
How to implement:
- Copy Damage System Init and Damage System triggers to your map.
- You need to have 5 Item Damage Bonus abilities, 10 levels each. The damage amount is adjusted accordingly for each ability (check out the map).
- And you're done.
- To SET the damage to a unit, set Int_DamageSys_SETdamage to your desired value and Unit_DamageSys_Unit to your desired unit, and then RUN the Damage System trigger.
- To ADD the damage to a unit, set Int_DamageSys_ADDdamage to your desired value and Unit_DamageSys_Unit to your desired unit, and then RUN the Damage System trigger.
Example of usage:
Code:
Some trigger
Events
Conditions
Actions
Set Int_DamageSys_SETdamage = 12
Set Unit_DamageSys_Unit = (Triggering unit)
Trigger - Run Damage System <gen> (checking conditions)
Triggers:
Code:
Damage System Init
Events
Map initialization
Conditions
Actions
Set Int_DamageSys_DigitCount = 5
Set Abi_DamageSys_Damage[1] = Damage (1x)
Set Abi_DamageSys_Damage[2] = Damage (10x)
Set Abi_DamageSys_Damage[3] = Damage (100x)
Set Abi_DamageSys_Damage[4] = Damage (1000x)
Set Abi_DamageSys_Damage[5] = Damage (10000x)
Code:
Damage System
Events
Conditions
Actions
-------- Required if unit does not have the dummy ability to begin with --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Level of Abi_DamageSys_Damage[1] for Unit_DamageSys_Unit) Equal to 0
Then - Actions
For each (Integer A) from 1 to Int_DamageSys_DigitCount, do (Actions)
Loop - Actions
Unit - Add Abi_DamageSys_Damage[(Integer A)] to Unit_DamageSys_Unit
Else - Actions
-------- Determine Current Damage --------
Set Int_DamageSys_CurrentDmg = 0
For each (Integer A) from 1 to Int_DamageSys_DigitCount, do (Actions)
Loop - Actions
Set Int_DamageSys_CurrentDmg = (Int_DamageSys_CurrentDmg + (((Level of Abi_DamageSys_Damage[(Integer A)] for Unit_DamageSys_Unit) - 1) x (Integer((Power(10.00, ((Real((Integer A))) - 1.00)))))))
-------- Add Damage --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Int_DamageSys_ADDdamage Greater than 0
Then - Actions
Set Int_DamageSys_ADDdamage = (Int_DamageSys_ADDdamage + Int_DamageSys_CurrentDmg)
For each (Integer A) from 1 to Int_DamageSys_DigitCount, do (Actions)
Loop - Actions
Set Int_General = ((Int_DamageSys_ADDdamage mod (Integer((Power(10.00, (Real((Integer A)))))))) / (Integer((Power(10.00, ((Real((Integer A))) - 1.00))))))
Unit - Set level of Abi_DamageSys_Damage[(Integer A)] for Unit_DamageSys_Unit to (Int_General + 1)
Else - Actions
For each (Integer A) from 1 to Int_DamageSys_DigitCount, do (Actions)
Loop - Actions
Unit - Set level of Abi_DamageSys_Damage[(Integer A)] for Unit_DamageSys_Unit to 1
Set Int_General = ((Int_DamageSys_SETdamage mod (Integer((Power(10.00, (Real((Integer A)))))))) / (Integer((Power(10.00, ((Real((Integer A))) - 1.00))))))
Unit - Set level of Abi_DamageSys_Damage[(Integer A)] for Unit_DamageSys_Unit to (Int_General + 1)
Set Int_DamageSys_ADDdamage = 0
Set Int_DamageSys_SETdamage = 0
It's just something simple inspired by Tom Jones set max HP.
Additional note:
The system above is also usable for setting Armor. All you need to do is to replace Item Damage Bonus to Item Armor Bonus.
Hope you like it.
Attachments
-
19.6 KB Views: 496