Sho Minamimoto
V1.2
Changelog:
V1.0
-First Version
V1.1
-Removed minor leaks
-Zetta Slow is now a Turn On/Off spell
V1.2
-Fixed the Sine Cooldown bug
-First Version
V1.1
-Removed minor leaks
-Zetta Slow is now a Turn On/Off spell
V1.2
-Fixed the Sine Cooldown bug
GUI/JASS: GUI
Systems: None
Import difficulty: Easy-Medium
Leakless?: I think so
MUI: Sadly no.
Tools Used: New Gen Pack 1.5a
1. Sine - Active
Description: Sho cast a wheel of infinite digits that damages the enemys inside the area using a infinite of strange math formulas!
Screenshot:
Triggers:
Code:
S Settings
Events
Unit - A unit Begins casting an ability
Conditions
(Ability being cast) Equal to (==) Sine
Actions
-------- Don't Change --------
Set S_Caster = (Triggering unit)
Set S_CasterOwner = (Owner of (Triggering unit))
Set S_CasterPosition = (Position of S_Caster)
Set S_DummyCasterDistance = (Distance between S_CasterPosition and (Position of (Random unit from S_WheelGroup)))
Set S_ProjectileDistance = 150.00
-------- Change --------
Set S_DamageBase = 10.00
Set S_DamageSineMultiplier = 10.00
Set S_DamageSine = ((Abs((Sin((Random angle))))) x (Real((Level of Sine for S_Caster))))
Set S_Range = 1000.00
Set S_NumberOfProjectiles = 6
Set S_AngleMultiplier = 60.00
Set S_Speed = 5.00
Set S_DamageFormula = ((S_DamageBase x (Random real number between -0.01 and 5.00)) + (S_DamageSineMultiplier x S_DamageSine))
Trigger - Run S Projectile Creation <gen> (ignoring conditions)
Code:
S Projectile Creation
Events
Conditions
Actions
Unit - Order S_Caster to Stop
Unit - Remove S_DummyCaster from the game
Unit - Create 1 Math Projectile for S_CasterOwner at S_CasterPosition facing 270.00 degrees
Set S_DummyCaster = (Last created unit)
Set S_DummyCasterPosition = (Position of S_DummyCaster)
Unit Group - Pick every unit in S_WheelGroup and do (Actions)
Loop - Actions
Unit - Remove (Picked unit) from the game
Do Multiple ActionsFor each (Integer S_Loop) from 1 to S_NumberOfProjectiles, do (Actions)
Loop - Actions
Set S_WheelPoint = (S_CasterPosition offset by S_ProjectileDistance towards ((Real(S_Loop)) x S_AngleMultiplier) degrees)
Unit - Create 1 Math Projectile for S_CasterOwner at S_WheelPoint facing Default building facing (270.0) degrees
Unit Group - Add (Last created unit) to S_WheelGroup
Unit - Set the custom value of (Last created unit) to (S_Loop x (Integer(S_AngleMultiplier)))
Custom script: call RemoveLocation (udg_S_WheelPoint)
Custom script: set udg_S_WheelPoint = null
Set S_ProjectileDistance = 150.00
Set S_Grow = True
Trigger - Turn on S Calculation <gen>
Trigger - Turn on S Effects <gen>
Trigger - Turn on S Damage <gen>
Code:
S Damage
Events
Time - Every 0.90 seconds of game time
Conditions
Actions
Game - Display to (All players) the text: (String(S_DamageFormula))
Unit Group - Pick every unit in (Units within (S_DummyCasterDistance + 20.00) of S_DummyCasterPosition matching (((Matching unit) belongs to an enemy of S_CasterOwner) Equal to (==) True)) and do (Actions)
Loop - Actions
Unit - Cause S_DummyCaster to damage (Picked unit), dealing S_DamageFormula damage of attack type Spells and damage type Normal
Code:
S Calculation
Events
Time - Every 0.90 seconds of game time
Conditions
Actions
Set S_DamageFormula = ((S_DamageBase x (Random real number between 0.00 and 5.00)) + (S_DamageSineMultiplier x S_DamageSine))
Code:
S Effects
Events
Time - Every 0.05 seconds of game time
Conditions
Actions
Set S_WheelAngle = (S_WheelAngle + S_Speed)
Set S_DummyCasterDistance = (Distance between S_DummyCasterPosition and (Position of (Random unit from S_WheelGroup)))
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
S_ProjectileDistance Greater than or equal to (>=) S_Range
Then - Actions
Set S_Grow = False
Else - Actions
Set S_Grow = True
Set S_WheelAngle = (S_WheelAngle + S_Speed)
Set S_DummyCasterDistance = (Distance between S_DummyCasterPosition and (Position of (Random unit from S_WheelGroup)))
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
S_Grow Equal to (==) True
Then - Actions
Set S_ProjectileDistance = (S_ProjectileDistance + S_Speed)
Set S_DummyCasterDistance = (Distance between S_DummyCasterPosition and (Position of (Random unit from S_WheelGroup)))
Else - Actions
Unit Group - Pick every unit in S_WheelGroup and do (Actions)
Loop - Actions
Unit - Explode (Picked unit)
Set S_WheelAngle = 0.00
Unit - Explode S_DummyCaster
Trigger - Turn off (This trigger)
Trigger - Turn off S Damage <gen>
Trigger - Turn off S Calculation <gen>
Unit Group - Pick every unit in S_WheelGroup and do (Actions)
Loop - Actions
Set S_WheelPoint = (S_DummyCasterPosition offset by S_ProjectileDistance towards ((Real((Custom value of (Picked unit)))) + S_WheelAngle) degrees)
Unit - Move (Picked unit) instantly to S_WheelPoint
Unit - Make (Picked unit) face C_CasterPosition over 0.00 seconds
Custom script: call RemoveLocation (udg_S_WheelPoint)
Custom script: set udg_S_WheelPoint = null
2. Cosine - Active
Description: Sho calls the most fearsome math formulas to strike his hectopascals enemies.
Screenshot:
Triggers:
Code:
C Settings
Events
Unit - A unit Begins casting an ability
Conditions
(Ability being cast) Equal to (==) Cosine
Actions
-------- Don't Change --------
Set C_Caster = (Triggering unit)
Set C_CasterFacingAngle = (Facing of C_Caster)
Set C_CasterOwner = (Owner of C_Caster)
Set C_CasterPosition = (Position of C_Caster)
Set C_MovePoint = (C_CasterPosition offset by 300.00 towards C_CasterFacingAngle degrees)
Set C_ProjectileDistance = 150.00
-------- Change --------
Set S_DamageBase = 10.00
Set C_DamageBaseMultiplier = (Random real number between 2.00 and 5.00)
Set C_DamageCosineMultiplier = (Random real number between 3.00 and 5.00)
Set C_DamageLevelMultiplier = (Random real number between 10.00 and 20.00)
Set C_DamageCosine = (((Abs((Cos((Random angle))))) x (Random real number between 2.00 and 3.00)) + (C_DamageLevelMultiplier x (Real((Level of Cosine for C_Caster)))))
Set C_Range = 500.00
Set C_DamageRange = 170.00
Set C_NumberOfProjectiles = 6
Set C_AngleMultiplier = 60.00
Set C_DamageFormula = ((C_DamageBase x C_DamageBaseMultiplier) + (C_DamageCosine x C_DamageCosineMultiplier))
Trigger - Run C Projectile Creation <gen> (ignoring conditions)
Code:
C Projectile Creation
Events
Conditions
Actions
Unit Group - Pick every unit in C_WheelGroup and do (Actions)
Loop - Actions
Unit - Remove (Picked unit) from the game
Do Multiple ActionsFor each (Integer C_Loop) from 1 to C_NumberOfProjectiles, do (Actions)
Loop - Actions
Set C_WheelPoint = (C_MovePoint offset by C_ProjectileDistance towards ((Real(C_Loop)) x C_AngleMultiplier) degrees)
Unit - Create 1 Math Projectile (Cosine) for C_CasterOwner at C_WheelPoint facing Default building facing (270.0) degrees
Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
Unit Group - Add (Last created unit) to C_WheelGroup
Unit - Set the custom value of (Last created unit) to (C_Loop x (Integer(C_AngleMultiplier)))
Custom script: call RemoveLocation (udg_C_WheelPoint)
Custom script: set udg_C_WheelPoint = null
Set C_ProjectileDistance = 150.00
Trigger - Run C Effects <gen> (ignoring conditions)
Code:
C Effects
Events
Conditions
Actions
Unit Group - Pick every unit in C_WheelGroup and do (Actions)
Loop - Actions
Animation - Change (Picked unit) flying height to 0.00 at 2500.00
Wait 0.57 game-time seconds
Unit Group - Pick every unit in C_WheelGroup and do (Actions)
Loop - Actions
Unit - Explode (Picked unit)
Unit - Create 1 Dummy Unit for C_CasterOwner at C_MovePoint facing 0.00 degrees
Set C_DummyCaster = (Last created unit)
Set C_DummyPosition = (Position of (Last created unit))
Unit Group - Pick every unit in (Units within C_Range of C_DummyPosition matching (((Picked unit) belongs to an enemy of C_CasterOwner) Equal to (==) True)) and do (Actions)
Loop - Actions
Unit - Cause C_DummyCaster to damage (Picked unit), dealing C_DamageFormula damage of attack type Spells and damage type Normal
Unit - Remove C_DummyCaster from the game
Custom script: call RemoveLocation (udg_C_DummyPosition)
Game - Display to (All players) the text: (String(C_DamageFormula))
3. Tangent - Active
Description: Sho make waves of pure math power to take down the most fearsome math experts!
Screenshot:
Triggers:
Code:
T Settings
Events
Unit - A unit Begins casting an ability
Conditions
(Ability being cast) Equal to (==) Tangent
Actions
-------- Don't Change --------
Set T_Range = 0.00
Set T_Caster = (Triggering unit)
Set T_CasterOwner = (Owner of (Triggering unit))
Set T_CasterPosition = (Position of (Triggering unit))
Set T_CasterFacingAngle = (Facing of (Triggering unit))
Set T_DummyDistance = -100.00
Set T_DummyPosition[0] = (T_CasterPosition offset by T_DummyDistance towards (T_CasterFacingAngle + 60.00) degrees)
Set T_DummyPosition[1] = (T_CasterPosition offset by T_DummyDistance towards (T_CasterFacingAngle + 40.00) degrees)
Set T_DummyPosition[2] = (T_CasterPosition offset by T_DummyDistance towards (T_CasterFacingAngle + 20.00) degrees)
Set T_DummyPosition[3] = (T_CasterPosition offset by T_DummyDistance towards T_CasterFacingAngle degrees)
Set T_DummyPosition[4] = (T_CasterPosition offset by T_DummyDistance towards (T_CasterFacingAngle - 20.00) degrees)
Set T_DummyPosition[5] = (T_CasterPosition offset by T_DummyDistance towards (T_CasterFacingAngle - 40.00) degrees)
Set T_DummyPosition[6] = (T_CasterPosition offset by T_DummyDistance towards (T_CasterFacingAngle - 60.00) degrees)
Set T_DamageFormula = ((Abs((Integer((Tan((Random angle))))))) + ((Random integer number between 0 and 2) + (Level of Tangent for T_Caster)))
Trigger - Run T Effects <gen> (ignoring conditions)
Code:
T Effects
Events
Conditions
Actions
Do Multiple ActionsFor each (Integer T_Loop) from 0 to 6, do (Actions)
Loop - Actions
Unit - Create 1 Math Projectile for T_CasterOwner at T_DummyPosition[T_Loop] facing T_CasterFacingAngle degrees
Unit - Add Tangent Waves to (Last created unit)
Set T_DamageFormula = T_DamageFormula
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
T_DamageFormula Greater than (>) 10
Then - Actions
Set T_DamageFormula = 10
Else - Actions
Do nothing
Unit - Set level of Tangent Waves for (Last created unit) to T_DamageFormula
Unit - Order (Last created unit) to Orc Tauren Chieftain - Shockwave ((Position of (Last created unit)) offset by T_Range towards T_CasterFacingAngle degrees)
Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
Unit - Remove (Last created unit) from the game
Game - Display to (All players) the text: (String(T_DamageFormula))
Do Multiple ActionsFor each (Integer T_Loop) from 0 to 6, do (Actions)
Loop - Actions
Custom script: call RemoveLocation (udg_T_DummyPosition[udg_T_Loop])
Custom script: call RemoveLocation (udg_T_CasterPosition)
4. Zetta Slow - Passive
Description: Sho make waves of pure math power to take down the most fearsome math experts!
Screenshot: It's passivo. Don't much to see =O
Triggers:
Code:
Z Settings
Events
Unit - A unit Learns a skill
Conditions
(Learned Hero Skill) Equal to (==) Zetta Slow
Actions
-------- Don't Change --------
Set Z_Caster = (Learning Hero)
Set Z_CasterOwner = (Owner of Z_Caster)
Unit - Set the custom value of Z_Caster to 1
-------- Change --------
Set Z_Chance[(Player number of Z_CasterOwner)] = (4 x (Level of Zetta Slow for Z_Caster))
Code:
Z Effects
Events
Unit - A unit Is attacked
Conditions
(Custom value of (Attacked unit)) Equal to (==) 1
((Triggering unit) has buff Zetta Slow ) Equal to (==) True
Actions
Set Z_RandomNumber = (Random integer number between 0 and 100)
Set Z_AttackingUnit = (Attacking unit)
Set Z_AttackedUnit = (Attacked unit)
Set Z_AttackingUnitPosition = (Position of (Attacking unit))
Set Z_AttackedUnitPosition = (Position of (Attacked unit))
Set Z_AttackedUnitOwner = (Owner of Z_AttackedUnit)
Set Z_Move = (Z_AttackingUnitPosition offset by 500.00 towards (Random angle) degrees)
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Z_RandomNumber Less than or equal to (<=) Z_Chance[(Player number of (Owner of Z_AttackedUnit))]
Then - Actions
Special Effect - Create a special effect at Z_AttackedUnitPosition using Abilities\Spells\NightElf\Blink\BlinkTarget.mdl
Unit - Create 1 Math Projectile for Z_AttackedUnitOwner at Z_AttackingUnitPosition facing 0.00 degrees
Set Z_DummyCaster = (Last created unit)
Unit - Add Out of Vector to Z_DummyCaster
Unit - Order Z_DummyCaster to Human Sorceress - Slow Z_AttackingUnit
Unit - Remove Z_DummyCaster from the game
Set Z_Effect = (Last created special effect)
Unit - Move Z_AttackedUnit instantly to Z_Move, facing Z_AttackingUnitPosition
Special Effect - Destroy Z_Effect
Set Z_RandomCast = (Random integer number between 1 and 3)
Unit - Make Z_AttackedUnit face (Attacking unit) over 0.00 seconds
Wait 0.20 game-time seconds
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Z_RandomCast Equal to (==) 1
Then - Actions
Unit - Order Z_AttackedUnit to Human Mountain King - Thunder Clap
Custom script: call RemoveLocation (udg_Z_AttackingUnitPosition)
Custom script: call RemoveLocation (udg_Z_AttackedUnitPosition)
Custom script: call RemoveLocation (udg_Z_Move)
Else - Actions
Do nothing
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Z_RandomCast Equal to (==) 2
Then - Actions
Unit - Order Z_AttackedUnit to Orc Tauren Chieftain - War Stomp
Custom script: call RemoveLocation (udg_Z_AttackingUnitPosition)
Custom script: call RemoveLocation (udg_Z_AttackedUnitPosition)
Custom script: call RemoveLocation (udg_Z_Move)
Else - Actions
Do nothing
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Z_RandomCast Equal to (==) 3
Then - Actions
Unit - Order Z_AttackedUnit to Human Archmage - Summon Water Elemental
Custom script: call RemoveLocation (udg_Z_AttackingUnitPosition)
Custom script: call RemoveLocation (udg_Z_AttackedUnitPosition)
Custom script: call RemoveLocation (udg_Z_Move)
Else - Actions
Do nothing
Else - Actions
Do nothing
Notes:
- My first spellpack =P
- Made this hero thinking in a Hero with VERY UNSTABLE damage
- Based the hero in Sho Minamimoto of "The worlds ends with you"
Contact:
- [email protected]
Please reports any bugs found!