• 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!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.

First Boss Fight

Status
Not open for further replies.
Level 3
Joined
May 17, 2014
Messages
29
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?
 
Level 15
Joined
Aug 7, 2013
Messages
1,338
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...
 
Level 4
Joined
May 15, 2014
Messages
67
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
 
Level 28
Joined
Sep 26, 2009
Messages
2,520
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.
 
Level 12
Joined
Nov 3, 2013
Messages
989
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)
in every ability you'd make booleans and timers

Edit - Example of how I'd get started

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)
            • If - Conditions
            • Then - Actions
              • Set BossAbility_Boolean[Temp_Int[0]] = False
            • Else - Actions
 
Last edited:
Status
Not open for further replies.
Top