Sirroelivan
Gunnerkrigg Court
- Reaction score
- 95
Hi all
Here's the cleric hero I've been making for my dungeon map.
For Mark of Righeousness and Astral Shield, the dummy spell has a different buff for each level. These buffs have been put in an array.
Abilities:
Regular Ability:
Healing Word - 1 Level
You whisper a brief prayer causing divine light to wash over the target, healing 8 x Intelligence damage.
Hero Abilities:
Mark of Rigtheousness - 6 Levels
Burning light damages the target for (Level x 80) + Intelligence damage and gives the target the Symbol of Righteousness buff that lasts 20 seconds. While under the effect of this buff, the unit takes (level x 4) extra damage from attacks.
Astral Shield - 6 Levels
Protects the target with a glimmering shield that adds (level x 2) + 1 armor and deals (level x 4) damage to attackers. The shield lasts 45 seconds.
Healing Strike - 6 Levels
Whenever you kill a unit, nearby allies are healed for (level x 30) damage (except for kills by Channel Divinity).
Channel Divinity - 2 Levels - Ultimate
You let powerful astral energies rain down around you, damaging enemies and healing allies. You deal (level x 10) + 10 damage per second to enemies and heal (level x 10) + 5 damage per second from allies. Lasts 30 seconds.
What do you think?
Here's the cleric hero I've been making for my dungeon map.
For Mark of Righeousness and Astral Shield, the dummy spell has a different buff for each level. These buffs have been put in an array.
Abilities:
Regular Ability:
Healing Word - 1 Level
You whisper a brief prayer causing divine light to wash over the target, healing 8 x Intelligence damage.
Code:
Healing Word
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Healing Word
Actions
Set Real_Temp = (8.00 x (Real((Intelligence of (Casting unit) (Include bonuses)))))
Unit - Set life of (Target unit of ability being cast) to ((Life of (Target unit of ability being cast)) + Real_Temp)
Hero Abilities:
Mark of Rigtheousness - 6 Levels
Burning light damages the target for (Level x 80) + Intelligence damage and gives the target the Symbol of Righteousness buff that lasts 20 seconds. While under the effect of this buff, the unit takes (level x 4) extra damage from attacks.
Code:
Mark of Righteousness
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Mark of Righteousness
Actions
Set Real_Temp = ((80.00 x (Real((Level of Mark of Righteousness for (Casting unit))))) + (Real((Intelligence of (Casting unit) (Include bonuses)))))
Unit - Cause (Casting unit) to damage (Target unit of ability being cast), dealing Real_Temp damage of attack type Spells and damage type Normal
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
((Target unit of ability being cast) is alive) Equal to True
Then - Actions
Set Point = (Position of (Target unit of ability being cast))
Unit - Create 1 Dummy Caster for (Owner of (Casting unit)) at Point facing Default building facing degrees
Custom script: call RemoveLocation(udg_Point)
Unit - Add Symbol of Righteousness to (Last created unit)
Unit - Set level of Symbol of Righteousness for (Last created unit) to (Level of Mark of Righteousness for (Casting unit))
Unit - Order (Last created unit) to Human Sorceress - Slow (Target unit of ability being cast)
Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
Else - Actions
Do nothing
Code:
Symbol of Righteousness
Events
Unit - A unit Is attacked
Conditions
Actions
For each (Integer A) from 1 to 6, do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
((Attacked unit) has buff Symbol_of_Righteousness[(Integer A)]) Equal to True
Then - Actions
Unit - Cause (Attacking unit) to damage (Attacked unit), dealing ((Real((Integer A))) x 4.00) damage of attack type Spells and damage type Normal
Set Point = (Position of (Attacked unit))
Special Effect - Create a special effect at Point using Abilities\Weapons\GlaiveMissile\GlaiveMissileTarget.mdl
Special Effect - Destroy (Last created special effect)
Custom script: call RemoveLocation(udg_Point)
Else - Actions
Do nothing
Astral Shield - 6 Levels
Protects the target with a glimmering shield that adds (level x 2) + 1 armor and deals (level x 4) damage to attackers. The shield lasts 45 seconds.
Code:
Astral Shield Cast
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Astral Shield
Actions
Set Point = (Position of (Target unit of ability being cast))
Unit - Create 1 Dummy Caster for (Owner of (Casting unit)) at Point facing Default building facing degrees
Custom script: call RemoveLocation(udg_Point)
Unit - Add Astral Shield (Buff) to (Last created unit)
Unit - Set level of Astral Shield (Buff) for (Last created unit) to (Level of Astral Shield for (Casting unit))
Unit - Order (Last created unit) to Human Priest - Inner Fire (Target unit of ability being cast)
Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
Code:
Astral Shield Buff
Events
Unit - A unit Is attacked
Conditions
Actions
For each (Integer A) from 1 to 6, do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
((Attacked unit) has buff Astral_Shield[(Integer A)]) Equal to True
Then - Actions
Unit - Cause (Attacked unit) to damage (Attacking unit), dealing ((Real((Integer A))) x 4.00) damage of attack type Spells and damage type Normal
Else - Actions
Do nothing
Healing Strike - 6 Levels
Whenever you kill a unit, nearby allies are healed for (level x 30) damage (except for kills by Channel Divinity).
Code:
Healing Strike
Events
Unit - A unit Dies
Conditions
(Unit-type of (Killing unit)) Equal to Cleric
(Level of Healing Strike for (Killing unit)) Greater than or equal to 1
Actions
Set Real_Temp = (30.00 x (Real((Level of Healing Strike for (Killing unit)))))
Set Point = (Position of (Killing unit))
Set UnitGroup = (Units within 600.00 of Point matching ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an ally of (Owner of (Killing unit))) Equal to True)))
Unit Group - Pick every unit in UnitGroup and do (Actions)
Loop - Actions
Set Point = (Position of (Picked unit))
Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + Real_Temp)
Special Effect - Create a special effect at Point using Abilities\Spells\Items\AIvi\AIviTarget.mdl
Special Effect - Destroy (Last created special effect)
Custom script: call RemoveLocation(udg_Point)
Channel Divinity - 2 Levels - Ultimate
You let powerful astral energies rain down around you, damaging enemies and healing allies. You deal (level x 10) + 10 damage per second to enemies and heal (level x 10) + 5 damage per second from allies. Lasts 30 seconds.
Code:
Start Channel Divinity
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Channel Divinity
Actions
Set CD_Point = (Position of (Casting unit))
Set CD_Caster = (Casting unit)
Set CD_Level = (Level of Channel Divinity for (Casting unit))
Trigger - Turn on Channel Divinity <gen>
Trigger - Turn off Healing Strike <gen>
Code:
End Channel Divinity
Events
Unit - A unit Stops casting an ability
Unit - A unit Finishes casting an ability
Conditions
(Ability being cast) Equal to Channel Divinity
Actions
Trigger - Turn off Channel Divinity <gen>
Trigger - Turn on Healing Strike <gen>
Code:
Channel Divinity
Events
Time - Every 1.00 seconds of game time
Conditions
Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(CD_Caster is alive) Equal to True
Then - Actions
Set Real_Temp = (((Real(CD_Level)) x 10.00) + 10.00)
Set UnitGroup = (Units within 700.00 of CD_Point matching ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of CD_Caster)) Equal to True)))
Unit Group - Pick every unit in UnitGroup and do (Actions)
Loop - Actions
Unit - Cause CD_Caster to damage (Picked unit), dealing Real_Temp damage of attack type Spells and damage type Normal
Set Point = (Position of (Picked unit))
Special Effect - Create a special effect at Point using Units\NightElf\Wisp\WispExplode.mdl
Special Effect - Destroy (Last created special effect)
Custom script: call RemoveLocation(udg_Point)
Custom script: call DestroyGroup(udg_UnitGroup)
Set Real_Temp = (((Real(CD_Level)) x 10.00) + 5.00)
Set UnitGroup = (Units within 700.00 of CD_Point matching ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an ally of (Owner of CD_Caster)) Equal to True)))
Unit Group - Pick every unit in UnitGroup and do (Actions)
Loop - Actions
Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + Real_Temp)
Set Point = (Position of (Picked unit))
Special Effect - Create a special effect at Point using Abilities\Spells\Human\HolyBolt\HolyBoltSpecialArt.mdl
Special Effect - Destroy (Last created special effect)
Custom script: call RemoveLocation(udg_Point)
Custom script: call DestroyGroup(udg_UnitGroup)
Else - Actions
Trigger - Turn off (This trigger)
What do you think?