Spellpack Sho Minamimoto, The Math addict

Magoiche

Member
Reaction score
20
Sho Minamimoto
shoip9.jpg

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


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:
imagemls1.png


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:
imagem2hk6.png


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:
imagem3fh8.png


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!
 

Magoiche

Member
Reaction score
20
ops! Forgot to remove them xD
Removing messages and re attaching the map.
Yeah they are diferent, but for some reason i liked them too =D


Well, i think i can live only making spells an so.
My map can wait a long time. I just wanna make things and be happy
=D
 

Larcenist

REP: Respect, Envy, Prosperity?
Reaction score
211
I checked it out only because it involved maths :eek:

Pretty nice spells though, but the ultimate can get really annoying, especially if you're trying to escape or something.
 

Magoiche

Member
Reaction score
20
Yeah it can...
Thinking in something.
Maybe i could make Zetta Slow a non-learnable skill(with very low chances of course) =P
Them i could think in a new Ultimate =O
 

Larcenist

REP: Respect, Envy, Prosperity?
Reaction score
211
You could make it activable, so that it drains a little mana over time and does whatever it does now. That way you could control it too.
 

Magoiche

Member
Reaction score
20
Good point!
With this i can control the mana per second/chance of actvatings.
Well that is a much better way =P
(Serching a On/Off spell)
 

Magoiche

Member
Reaction score
20
Oh crap!
I forgot immolation T.T
[autoheadshot]LoL[/autoheadshot]

Another thing:

Maybe i will add 3 more spells for him.
2 Normal Spell
And another that only activates whem he have all the other in the max.

The names:

Random Function - Tottaly Random Spell
Aritmetich Skills - Passive
Math Oblivion - Mega Holy Hiper LoL Spell(Soo much graphical effects inclued =D)

How i am happy of my ideas! Yahuuuu! =O
 

lh2705

Just another Helper
Reaction score
111
I have to say..
This is one of the most creative heroes I have ever seen..
Great work
 

Magoiche

Member
Reaction score
20
Thanks for the comments ^^
Yeah, i thought it was a crazy idea in the begining.
And it still is. =O
 

Sim

Forum Administrator
Staff member
Reaction score
534
Where are 3/4 of the screenshots? :eek:
 

Magoiche

Member
Reaction score
20
I don't understand xD

You mean:

1. The screen shots aew to small?
2. The Screanshot for Zetta Slow?

Answers:

1. Too Big. Not Necessary.
2. It is passive and cast the same other things =O
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top