Creating Player Classes (boss)

Adding your own content -

Editing Custom Classes

Minigames > Custom Classes > Edit

Adding/Reverting default custom classes

Minigames > Custom Classes > Edit > Click the right large option button, Select Add All. This will add and overwrite all classes with similar names to the default classes. Note: When you edit the name of a class, ability, or description, it will prevent it from being translated to the default values if you select a different language setting. You can reset the localization by click "Reset Localization" which will allow translating of default classes again.

How to edit Custom Classes

Minigames > Custom Classes > Edit > From here you can either edit existing classes or add new ones by clicking the appropriate option button dropdown.

Custom classes have two main components:

  1. Abilities

  2. Buffs

The first 3 ability options are selectable by players when it's their turn. The rest of the abilities can be used internally by buffs and abilities to make a large variety actions happen. Abilities can even be run when it's not the players turn by making use of buffs!

Ability options explained

Player classes are very similar to how bosses are created except there are no conditions for whether an ability runs, because the player gets to choose what to do. But, you can still make conditions for different things to happen during an ability.

  1. Short description - for players to read what an ability does. This does not update automatically, you need to adjust this every time you make changes to the balance of an ability.

  2. Instructions for bots - Basic instructions for bots to know how the ability should be used. For example: buff/debuff will try not to cause if the buff/debuff already exists on the target. Sustain target will try to use it as priority when a player has low HP.

  3. override animation - At the moment this only has one purpose : to cancel the default animation by setting it to no_animation It currently does not select which animation will play instead of attack, but that will be the case at a later date.

  4. additional animation - allows the ability to display an additional animation when it's running. an example for this can be found with the default bard class. It displays a lute above the player's head during ability casts.

  5. available target - Select who this ability targets. (self, boss, or players) You can chain abilities together to have multiple selection types though, but that requires you to add an extra ability beyond the first 3!

  6. group select - This is really only useable if you have players as the available target. It works similar to boss ability conditions where players that are selected must meet the conditions listed. "is targeted with chat" is how you flag an ability to require a target, in which case it will only select 1 player.

  7. selection mode - highly recommended to leave it on simultaneous to make the actions work quickly and keep the boss fight time requirement to a minimum.

  8. create action - actions are how abilities deal damage, assign buffs, store variables on players, remove buffs, or heal.

  9. allow repeats - if you have multiple actions, allowing repeats means the same player can be targets multiple times.

  10. action options - this is how you remove, edit, or set which action is triggered first.

  11. run ability after- this is how you can chain multiple abilities together. Once this ability finishes it will run any ability here. (Note: Do not assign an ability here that requires a target with chat!)

Action options explained

Actions give purpose to abilities and buffs. They can modify variables, apply damage, apply healing, and apply buffs/debuffs.

  1. Edit Animation - this animation will play on the action target. (there is a way to prevent it from playing through variable conditions. default example: mage, self_lightning ability)

  2. Custom Variables - enabling this will add more options, allowing you to make advanced variables to store information, compare, and use information stored for healing, damage, and adding/removing buffs.

  3. damage type - changes what type of damage is used if there is any damage to be dealt.

  4. damage - a random range between the first value and the second value. (if use variable selected it will do that instead)

  5. heal - a random range between the first value and second value. (if use variable selected it will do that instead)

  6. Projectile speed & animation - by default when an action is casted, a ball will fly from the source to the target to give visual effect of what's happening. You can edit the speed and the effect image/animation that flies to the target. note: a negative speed will cause the projectile to fly backwards from target to source (use case would be lifesteal). an if you set the ability speed to a high number like 800 and edit the animation to change the color, you can make the projectile invisible and instant!

  7. Chat message - this can be useful for debugging or if you'd like chat messages to be outputted when a certain ability is used. (example: pumpkin_king seed attack)

  8. Add buff - you can set multiple buffs to be added here by separating them with a semi-colon. (example: fire_buff, cold_effect, blahblah)

  9. Remove buff - you can set multiple buffs to be removed here by separating them with a semi-colon. (example: fire_buff, cold_effect, blahblah)

Buff options explained

Buffs allow you to run actions and abilities and have persistent animations/images display on the boss or players. They work by using events to trigger when an action happens when a buff is applied to a target.

buffsource = the player/boss who put the buff on the target.

target or buff holder = the player/boss who has the buff on them.

  1. Duration - how many turns the buff will last. The lifetime of a buff ticks every time the "on every turn" event fires for all buffs.

  2. Stackable - allows multiple of the same buff to exist on a target when enabled.

  3. refresh duration on repeat - when the same buff is put on a target, does it refresh the lifetime to the maximum value.

  4. on start - this event fires when the buff is added to the target. note: this is a common place to put stat modifiers on a buff. Like bonus damage, defence, or health.

  5. on before every turn - this fires before the boss or any player takes their turn.

  6. on your turn - only fires at the end of the buff holder's turn.

  7. on every turn - fires after every turn. (includes boss and all players)

  8. on before receive heal- fire before a heal action >0 occurs on the buffholder. note: using custom variables this heal amount can only be modified here by using the preset variable listed below.

  9. on before receive damage- fire before a damage action >0 occurs on the buffholder. note: using custom variables this heal amount can only be modified here by using the preset variable listed below.

  10. on deal damage - fires after a damage action > 0 occurs. note: the damage value cannot be modified here because it has already been calculated.

  11. movement - fires when a player moves. This was added specifically to give a walk animation to buffs that are "summons". Like necromancer bones ability or druid treant ability.

  12. on your death - fires when the buffholder dies. This is useful for removing other buffs associated with this buff.

  13. on end - fires when the buff naturally expires due to duration. After this event fires, any buff stat modifiers like bonus damage, healing, health, or defense will be removed as well.

If you are thinking about making an ability that uses buffs, I highly recommend looking at existing abilities to get a handle on how buffs work.

Buff Specific Actions

Buffs have additional actions which can modify stats and display animations.

  1. animation settings - very similar to action animations, however the start event animation can exist for the entire duration of the buff! to do this, simply edit the animation and click the infinite loop button.

  2. use direction of holder - allows buffs to match the facing direction of an avatar. (right is the default facing direction)

  3. override start animation - if your buff has a looping animation for the start event, other events can tell the start animation to hide temporarily so that you can play a different animation based on the event happening. This is used for summons to use "walking" and "attacking" animations.

  4. random x offset% - places the animation at a random range based on the width of the avatar sprite.

  5. random y offset% - places the animation at a random range based on the height of the avatar sprite.

  6. Stat modifiers - these are generally modified in the "Start Event" so they only occur once. All stat modifiers are removed at the end of a buff's duration.

Advanced Custom Variables

Custom variables can give you detailed control over what an action actually does.

Example of mortalstrike action:

The above screenshot shows the mortalstrike action to make it do bonus damage if the boss health is below 50%. First it sets the variable mortalstrike to store the boss health percent. Then it compares that against the number 50. If it statement is true, it will use the "THEN" variable, otherwise it will use the "ELSE". Lastly, we use the mortralstrike variable as the damage value to use.

Setting variables: -You can set variables. ie: $(your_variable_name) = 50 or $(your_variable_name) = "test_buff" -You can set variables as float, integer, or text values. float and integer are for comparing, while text variables are for adding or removing buffs.

-You can also chain variable sets together with a semi-colon. -You can also set variables to other variables -You can also set variables to be on the boss or other players. ie: $(boss_variable_name) = $(my_variable) + $(buffsource_variable) The above example sets a boss variable name to a variable stored on the buff's holder plus a variable stored on the buff's origin! (Wow! confusing but kind of useful for passing information around). You can also use random(0,100) to generate random numbers. doing math works! other math things allowed can be found here https://docs.unity3d.com/ScriptReference/ExpressionEvaluator.Evaluate.html Example: (floor($(my_variable$)) + 5) / 2 notes: $(boss_variable_name) will exist on the boss as just: $(variable_name) (the prefix gets removed)

Setting variable executions:

  • execute=run_ability("your_ability_name")

  • execute=swap(source,target,taketurn) notes: source and target params can be: boss, source, target, buffsource. taketurn is true or false, if you are swapping with a source player who is taking the current turn, the target player will be able to make a turn without moving turn counters.

  • execute=no_animation() notes: this will prevent the animation from being run. useful for preventing an animation from happening under certain circumstances.

  • execute=action(type,source,target,amount,damage_type) notes: type can be heal or damage source and target can be boss, source, buffsource, target damage_type only exists if the type paramenter is damage, in which case the options are magical, physical

  • execute=log() notes: this is useful for debugging, it can help you find out what's happening with your custom variables. to read the logs you need to press alt+c and type log then hit enter.

  • execute=setsource(source) notes: this is useful for setting the source of damage or healing. can be boss, source, buffsource, target

Preset Variables: $(health%) $(currency) $(recieve_heal) $(receive_damage_physical) $(receive_damage_magical) $(deal_damage_physical) $(deal_damage_magical) note: all variables can have prefixes that point to different players or bosses! example: $(boss_health%) boss_ (points to the boss) source_ (who is causing the action to occur) target_ (whichever player or boss is the target of an action or buff) buffsource_ (the player that applied the buff)

Last updated