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!
So I am currently designing my first boss fight. How would I be able to have my boss use abilities and how would I be able to control when and how he uses them?
It might help to ask a question specific to one aspect of your scripted boss battle rather than how to do the whole thing at once, e.g. how to make your boss cast a particular spell under particular circumstances...
this is complicated to make, only if you're really experienced with triggers... you can make the boss to cast the spell periodically like every 10 seconds by triggers
you can script the whole AI behavior using trigger editor.
However making AI is not really an easy process, because you not only have to make the whole thing working, but you have code it all so you prevent problems that could possibly bug the AI (e.g. two different triggers fire at same time with e.g. 0.05 second difference - each trigger orders boss to cast different spell -> only one spell will be cast) and so on.
Use instant abilities and trigger the rest, you should be using conditions, like threat levels or checking role (target caster/melee & tank/dps/healer), for specific targeting either way so having the base abilities target something themselves is of no worth. Naturally dummies will be the ones casting the actual abilities, unless they are fully triggered aswell.
(e.g. two different triggers fire at same time with e.g. 0.05 second difference - each trigger orders boss to cast different spell -> only one spell will be cast)
Note that you might want to preload specific boss scripts one by one if it's a big map and you have many bosses instead of loading them all from the very start.
Boss Abilities ini
Events
Map initialization
Conditions
Actions
-------- If you have global cooldowns like in WoW --------
For each (Integer Temp_Int[0]) from 1 to 10, do (Actions)
Loop - Actions
Set BossAbility_Time[Temp_Int[0]] = GlobalCooldown_Real
-------- If you want Specific Animation times --------
Set BossAbility_Time[0] = Animation time for ability 1
Set BossAbility_Time[1] = Animation time for ability 2
ETC...
-------- You can have several different booleans (e.g both Animation Lenght & Global Cooldown) but In this example I'll just have one --------
For each (Integer Temp_Int[0]) from 1 to how many abilities the boss have, do (Actions)
Loop - Actions
Trigger - Add to Boss Ability Animation End <gen> the event (Time - BossAbility_Timer[Temp_Int[0]] expires)
Abilities based on Channel can be used for anything besides toggle and you can change the ID so it's a good one.
Boss Ability 1
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Channel
Actions
Set BossAbility_Boolean[0] = True
Countdown Timer - Start BossAbility_Timer[0] as a One-shot timer that will expire in BossAbility_Time[0] seconds
Berserk is an instant no target self buff ability.
Boss Ability 2
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Berserk
Actions
Set BossAbility_Boolean[1] = True
Countdown Timer - Start BossAbility_Timer[1] as a One-shot timer that will expire in BossAbility_Time[1] seconds
Defend or Immolation for toggle abilities, immolation already drains mana per second so if you want that the you don't have to trigger it.
Boss Ability 3
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Defend
(Ability being cast) Equal to Immolation
Actions
Set BossAbility_Boolean[2] = True
Countdown Timer - Start BossAbility_Timer[2] as a One-shot timer that will expire in BossAbility_Time[2] seconds
Depending on what you wanted you will use this different (also other things than my examples)
Boss Ability Animation End
Events
Conditions
(Elapsed time for BossAbility_Timer[Temp_Int[0]]) Greater than or equal to BossAbility_Time[Temp_Int[0]]
Actions
For each (Integer Temp_Int[0]) from 1 to how many abilities the boss have, do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
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.