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!
Acid blood - Whenever the unit is attacked by a unit there's a % chance that the acid blood in the attacked units body will land on the attacking unit dealing ? damage and reducing the attacking units armor by ? for ? seconds, Other units with acid blood are immune to this skill
Level 1: 10 percent chance 5 damage armor reduced by 2 over 2 seconds
Level 2: 20 percent chance 10 damage armor reduced by 4 over 4 seconds
Level 3: 30 percent chance 15 damage armor reduced by 6 over 6 seconds
Acid blood settings
Events
Map initialization
Conditions
Actions
-------- Sets the base spell duration --------
Set AB_Duration = 0
-------- Sets how much seconds are added to the duration per level --------
Set AB_Duration_Per_Level = 2
-------- Sets the base spell damage --------
Set AB_Damage = 0
-------- Sets the damage added per level --------
Set AB_Damage_Per_Level = 5
-------- end of settings --------
Set AB_On = (Units in (Playable map area) matching (((Matching unit) has buff Acid blood ) Equal to True))
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Unit - Remove Acid blood (dummy) buff from Shared_Unit
Unit Group - Remove Shared_Unit from AB_Unitgroup
Hashtable - Clear all child hashtables of child AB_Key in AB_Hash
If ((AB_Unitgroup is empty) Equal to True) then do (Trigger - Turn off (This trigger)) else do (Do nothing)
Lay alien egg - Lays a alien egg at the casting units location, the alien egg will remain motionless for ? seconds and after ? seconds the egg will hatch into a unit of your choice (edited in the Alien egg settings trigger). The level of infect for the hatchling will depend on the level of lay alien egg for the caster.
Set LAE_Number_Of_Eggs = (Units owned by (Triggering player) matching ((((Matching unit) is alive) Equal to True) and ((Unit-type of (Matching unit)) Equal to LAE_Egg_Unit)))
Set Shared_Unit = (Triggering unit)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Number of units in LAE_Number_Of_Eggs) Less than (LAE_Maximum_Eggs + (LAE_Added_Eggs x (Level of Lay alien egg for Shared_Unit)))
Then - Actions
Set Shared_Real = (LAE_Hatch_Time - (LAE_Duration_Decreased x (Real((Level of Lay alien egg for Shared_Unit)))))
Set Shared_Point = (Position of Shared_Unit)
Unit - Create 1 LAE_Egg_Unit for (Triggering player) at Shared_Point facing Shared_Point
Set Shared_Unit = (Last created unit)
Unit - Add a (Shared_Real + 0.10) second Generic expiration timer to Shared_Unit
Set LAE_Key = (Key (Last created unit))
Hashtable - Save Shared_Real as 0 of LAE_Key in LAE_Hash
Hashtable - Save (Level of Lay alien egg for (Triggering unit)) as 1 of LAE_Key in LAE_Hash
Unit Group - Remove Shared_Unit_2 from LAE_Egg_group
Hashtable - Clear all child hashtables of child LAE_Key in LAE_Hash
If ((LAE_Egg_group is empty) Equal to True) then do (Trigger - Turn off (This trigger)) else do (Do nothing)
Infect - The caster gives his life to lay a egg in the body of a targeted unit, in ? seconds the egg will hatch and the hatchling will burst from the targeted units chest. The hatchling must then gain 5 kills in order for it to gain the cocoon ability and progress to its next stage of evolution. The egg can be dispelled, This spell grants sight of the targeted unit untill either the spell finishes, the egg is dispelled, or the unit dies. The level of cocoon for the bursted unit depends on the level of infect for the caster.
-------- Sets how long it takes for the unit to burst from the targets body --------
Set I_Duration = 25.00
-------- Sets how many seconds are deducted from the duration per level --------
Set I_Reduced_Duration = 5.00
-------- Sets which type of unit bursts from the targeted units body --------
Set I_Unit_Burst = chest burster
-------- Sets how many kills are required for the burst unit to gain the cocoon ability --------
Set I_Maximum_Kills = 5
-------- End of settings --------
Set I_Init_Growth = (Units of type I_Unit_Burst)
Unit Group - Pick every unit in I_Init_Growth and do (Actions)
Loop - Actions
Hashtable - Save 1 as 5 of (Key (Picked unit)) in I_Hash
Hashtable - Save Handle Of(Picked unit) as 6 of (Key (Picked unit)) in I_Hash
If (((Infect growth <gen> is on) Equal to False) and ((I_Init_Growth is empty) Equal to False)) then do (Trigger - Turn on Infect growth <gen>) else do (Do nothing)
Set Shared_Unit = (Target unit of ability being cast)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Unit-type of Shared_Unit) Not equal to (Unit-type of (Triggering unit))
(Unit-type of Shared_Unit) Not equal to I_Unit_Burst
(Shared_Unit has buff Infect ) Equal to False
(Shared_Unit is in I_Group) Equal to False
Then - Actions
Set Shared_Real = (I_Duration - (I_Reduced_Duration x (Real((Level of Infect for (Triggering unit))))))
Set I_Key = (Key (Target unit of ability being cast))
Set Shared_Start_Timer = ((Integer(Shared_Real)) + 1)
Set Shared_Group = (All players matching (((Owner of Shared_Unit) Not equal to (Matching player)) and ((Triggering player) Not equal to (Matching player))))
Floating Text - Create floating text that reads (String(Shared_Start_Timer)) above Shared_Unit with Z offset 5.00, using font size 10.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
Set Shared_Text = (Last created floating text)
Floating Text - Hide Shared_Text for Shared_Group
Hashtable - Save Handle OfShared_Text as 3 of I_Key in I_Hash
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Shared_Real Greater than 0.00
(Shared_Unit_3 has buff Infect ) Equal to True
(Shared_Unit_3 is alive) Equal to True
Then - Actions
Unit - Kill Shared_Unit_2
Set Shared_Change_Timer = ((Integer((Load 0 of I_Key from I_Hash))) + 1)
Hashtable - Save (Shared_Real - 0.03) as 0 of I_Key in I_Hash
Floating Text - Change text of Shared_Text to (String(Shared_Change_Timer)) using font size 10.00
Floating Text - Change the position of Shared_Text to Shared_Unit_3 with Z offset 0.00
Else - Actions
Visibility - Destroy Shared_Visibility
Floating Text - Destroy Shared_Text
Unit Group - Remove Shared_Unit_3 from I_Group
Hashtable - Clear all child hashtables of child I_Key in I_Hash
If ((I_Group is empty) Equal to True) then do (Trigger - Turn off (This trigger)) else do (Do nothing)
Infect growth
Events
Unit - A unit Dies
Conditions
(Load 6 of (Key (Killing unit)) in I_Hash) Equal to (Killing unit)
(((Killing unit) belongs to an enemy of (Triggering player)) Equal to True) or ((Triggering player) Equal to Neutral Passive)
Actions
Set I_Key_2 = (Key (Killing unit))
Set I_Growth_Unit = (Killing unit)
Set I_Growth_Killcount = (Load 5 of I_Key_2 from I_Hash)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
I_Growth_Killcount Less than I_Maximum_Kills
Then - Actions
Hashtable - Save (I_Growth_Killcount + 1) as 5 of I_Key_2 in I_Hash
Else - Actions
If (I_Growth_Killcount Equal to I_Maximum_Kills) then do (Unit - Add Cocoon to I_Growth_Unit) else do (Do nothing)
Unit - Set level of Cocoon for I_Growth_Unit to (Load 7 of I_Key_2 from I_Hash)
Hashtable - Clear all child hashtables of child I_Key_2 in I_Hash
Cocoon - After the chest burster has killed 5 enemy or neutral passive units he gains the ability to cocoon himself, after 10 seconds he will have evolved into the next stage of his evolution and leave his cocoon. If the cocoon dies before the evolution is complete the evolved chest burster will have a ?% chance to survive with 1/4 of its health left
Cocoon will still function without the infect ability.
Level 1 - 10%
Level 2 - 15%
Level 3 - 20%
Cocoon settings
Events
Map initialization
Conditions
Actions
Hashtable - Create a hashtable
Set C_Hash = (Last created hashtable)
-------- This sets the percent chance that when the cocoon dies the unit will still evolve --------
Set C_Percent = 5
-------- This sets the percent chance gained per level --------
Set C_Percent_Gain = 5
-------- This sets how long it takes for the newly evolved unit to leave its cocoon --------
Set C_Duration = 10.00
-------- This sets what unit-type the newly evolved unit will be --------
Set C_Evolved_Unit = evolved chest burster
-------- This sets what unit-type the cocoon is --------
Unit Group - Remove (Triggering unit) from C_Cocoon_Group
Hashtable - Clear all child hashtables of child (Key (Triggering unit)) in C_Hash
version 1.0
spell uploaded
version 1.1
removed acid blood trigger 3 and added a expiration timer for the dummy instead
removed possible unitgroup leak
all loop triggers are now initally off untill the skill is activated
version 1.2
changed the art - target for head bite
updated the acid blood tooltip
removed_HB_Life_After HB_Life_Before HB_Life_Inbetween HB_Life_Final HB_Unitgroupcasters variables and changed the headbite function trigger
changed the art - target attachment to the head for head bite
version 1.3
Added more integer and unit variables
changed owner actions from owner of triggering unit to triggering player
acid blood can no longer function on attacking structures
version 1.4
added the variable AB_Picked_Unit and edited the trigger Acid blood function
Fixed a possible bug where the Infest caster had enough time to cast again before dying
food cost for dummy units is now 0
version 1.5
Changed alien egg model file
Changed the target model of the acid blood buff
version 1.6
added a floating text timer indication above the layed alien eggs only visible to the owner of the alien egg.
removed headbite dummy
edited dummy settings
edited triggers Lay alien egg settings, Lay alien egg function, acid blood function, Infect Function, Infect settings
changed the I_Unit_Burst to a nerubian warrior for now
deleted headbite function trigger and edited headbite settings trigger
version 1.7
added a floating text timer to the infect target
changed integers for lay alien egg and infect to reals
edited the triggers lay alien egg settings, lay alien egg function, infect settings, infect function.
changed the duration of Infect and Acid blood dummy to 0
changed the loop timer for lay alien egg and infect to every 0.03 seconds
version 1.8
fixed the alien egg explosion after hatch
put the floating text actions into the function triggers fixing a possible bug where the text didnt show
version 1.9
added the spell Cocoon
changed the model file of the chest burster
edited the how to import triggers and edited the description of infect
the timer for the infected unit now shows to both the owner of the casting unit and the owner of the target
added a extra setting into the infect settings trigger
edited the infect function trigger
fixed a possible bug where the AI had enough time to use the acid blood dummy to recast the acid blood dummy spell
added more integer and text variables
moved the floating text actions to the settings triggers
removed the head bite spell
version 2.0
removed some integer unit and playergroup variables
edited the setting trigger for all spells and added a extra trigger for all spells
fixed a bug where as soon as acid blood dummy was cast the buff infect was removed
edited all trigger and trigger comments
version 2.1
Finished all the spell tooltips
acid blood will activate at startup if units have the ability now
added levels for lay alien egg, infect, and cocoon
edited and changed most init and settings triggers
added a extra trigger to the cocoon category
most spell settings are now set at map initialization
added a expiration timer to the cocoon and alien egg
removed the cocoon and alien egg floating text
the floating text for infect now goes from x-1
version 2.2
changed the setting triggers event to map initialization instead of a timer
fixed a region leak in acid blood settings
the loop triggers are now turned off at the end of the loop trigger not at the beginning.
19 Dec 2011
Bribe: You did move the line "if group is empty" line below the "remove unit from group" line, however what I meant was to add it in the same block so it is indented the same as "remove unit from unit group".
I'm going to approve this...
19 Dec 2011
Bribe: You did move the line "if group is empty" line below the "remove unit from group" line, however what I meant was to add it in the same block so it is indented the same as "remove unit from unit group".
I'm going to approve this with a 3/5 for now (decent spellpack).
All looping triggers must be turned off. Number of units in group condition leaks. Trigger 3 for Acid blood is not needed, just give the unit an expiration timer when you create it.
please get this as a constructive critique - i basically want to use these spells at some stage in project i'm working on
unfortunately, due to large number of units and great potential of number of same spells being cast in short period of time, any 'every 0.03 sec' loop is unacceptable for me.
now, to the point (all based on avoiding the loops):
1) acid blood - why not using 'faerie fire' or 'inner fire' or whatever timed spell with specified duration, instead having a loop
2) infect - kinda similar to 'parasite' ability - can't you use it to avoid loop?
other two - again, are they possible without short-timed loop?
(basically, i could do it on my own and still give you all credits in map, but you had very nice idea, and i would prefer to use then in original form)
also, expanding of your spellpack will be greatly appreciated.
never thought about it i might be able to remove the loops, as for expanding I'm currently working on my next 2 spells. For infect however i may need to keep the loop if the floating text is to be updated for each unit.
I will no longer work on this spell pack for now, I may however come back to it some time in the future. If you want to remake it using your idea with the same function then you can use it in your map or maps without giving any credit.
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.