Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
Set DamageVariable = (Real((Strength of HeroUnit (Include bonuses))))
CWCone

Events


Unit - A unit Starts the effect of an ability

Conditions


(Ability being cast) Equal to Animate Dead

Actions


Set Angle = 30.00


Set Range = 500.00


Set Caster = (Triggering unit)


Set Damage = (Real((Strength of Caster (Include bonuses))))


Set CastPoint = (Position of Caster)


Set Target_Point = (Target point of ability being cast)


Set AngleBetwenPoints = (360.00 + (Angle from CastPoint to Target_Point))


Set UnitsInRange = (Units within Range of CastPoint matching (((Matching unit) belongs to an enemy of (Triggering Player)) Equal to True))


Unit Group - Pick every unit in UnitsInRange and do (Actions)



Loop - Actions




Set tempPoint = (Position of (Picked unit))




Set tempReal = (Angle from CastPoint to tempPoint)




If (All Conditions are True) then do (Then Actions) else do (Else Actions)





If - Conditions






AngleBetwenPoints Greater than or equal to (tempReal + (360.00 - (Angle / 2.00)))






AngleBetwenPoints Less than or equal to (tempReal + (360.00 + (Angle / 2.00)))





Then - Actions






Unit - Cause Caster to damage (Picked unit), dealing Damage damage of attack type Spells and damage type Normal





Else - Actions




Custom script: call RemoveLocation(udg_tempPoint)


Custom script: call DestroyGroup(udg_UnitsInRange)


Custom script: call RemoveLocation(udg_CastPoint)


Custom script: call RemoveLocation(udg_Target_Point)
CWLine

Events


Unit - A unit Starts the effect of an ability

Conditions


(Ability being cast) Equal to Animate Dead

Actions


Set Range = 500.00


Set Width = 200.00


Set Step = (Width / 4.00)


Set StepNo = ((Range / Step) - 4.00)


Set Caster = (Triggering unit)


Set Damage = (Real((Strength of Caster (Include bonuses))))


Set CastPoint = (Position of Caster)


Set Target_Point = (Target point of ability being cast)


Set AngleBetwenPoints = (Angle from CastPoint to Target_Point)


Set Target_Group = (Units within Width of CastPoint matching (((Matching unit) belongs to an enemy of (Triggering player)) Equal to True))


For each (Integer tempInt) from 0 to (Integer(StepNo)), do (Actions)



Loop - Actions




Set CastPoint = (CastPoint offset by Step towards AngleBetwenPoints degrees)




Set UnitsInRange = (Units within Width of CastPoint matching (((Matching unit) belongs to an enemy of (Triggering player)) Equal to True))




Unit Group - Pick every unit in UnitsInRange and do (Actions)





Loop - Actions






If (All Conditions are True) then do (Then Actions) else do (Else Actions)







If - Conditions








((Picked unit) is in Target_Group) Equal to False







Then - Actions








Unit Group - Add (Picked unit) to Target_Group







Else - Actions




Custom script: call DestroyGroup(udg_UnitsInRange)


Unit Group - Pick every unit in Target_Group and do (Actions)



Loop - Actions




Unit - Cause Caster to damage (Picked unit), dealing Damage damage of attack type Spells and damage type Normal


Custom script: call DestroyGroup(udg_Target_Group)


Custom script: call RemoveLocation(udg_CastPoint)


Custom script: call RemoveLocation(udg_Target_Point)
Set Angle = Real
Set Range = Real
Set Caster = Unit
Set Damage = Real
Set CastPoint = Point
Set Target_Point = Point
Set AngleBetwenPoints = Real
Set UnitsInRange = Unit Group
Set tempPoint = Point
Set tempReal = Real
Set Range = Real
Set Width = Real
Set Step = Real
Set StepNo = Real
Set Caster = Unit
Set Damage = Real
Set CastPoint = Point
Set Target_Point = Point
Set AngleBetwenPoints = Real
Set Target_Group = Unit Group
Set CastPoint = Point
Set UnitsInRange = Unit Group
@Mirage Tempest
A DDS and Missile System are not equal in importance at any aspect.
A Missile System is a must in every single good map. A DDS however is very bad when you are making a good map.
For simple maps or a few spells, you can use it but when you are using alternative stats, then a DDS will not help you at all.
In that case you should write an Alternative Damage-Engine instead.
call AEM_Call_Event(udg_ADE_Event_Damage)call AEM_Call_Event(udg_ADE_Event_Damage, udg_ADE_Damage_Type)call AEM_Call_Event(udg_ADE_Event_Damage, udg_ADE_Damage_Type, udg_ADE_Damage_Subtype)call AEM_Call_Event(udg_ADE_Event_Damage, udg_ADE_Damage_Target, 1)call AEM_Call_Event(udg_ADE_Event_Damage, udg_ADE_Damage_Source, 2)call AEM_Call_Event(udg_ADE_Event_Damage_Modified, udg_ADE_Damage_Index, udg_ADE_Damage_Effect)
