Skip to content

Effects Types

Cromha edited this page Mar 26, 2024 · 25 revisions

Introduction

When creating a consumable item, you'll need to specify an effect type, which defines with parameters to use and, which effect will be applied, of course. There are many types of effects that modify the player attributes like its health, its agility, its armor protection and many more. In this wiki page you'll find every effects type explanation with the required parameters.

Check the Creating Items wiki page before reading this one.

Note that you'll find further and more developed information about effects types at the Effects Handling wiki page.

Index

Effects Types

There are currently 11 different types of effects in the current game engine:

- healing # change player health and max health (for a defined amount of time if defined)
- protection # change player global armor protection (for a defined amount of time)
- strength # increase the player global damage and critical hit chance (for a defined amount of time)
- agility # change player global agility (for a defined amount of time)
- time elapsing # increase/decrease time elapsing (for a defined amount of time)
- *attributes addition # add custom attributes to the player
- *dialog displaying # display a dialog
- *enemy spawning # spawn an enemy/enemies
- exp change # change player experience stat
- *coordinates change # change the player's location
- *inventory change # give/remove items for the player's inventory

Note that all the effect starting with a * do not display on the consumable effect info in the inventory management UI (they're invisible).

Healing

The healing effect type affects the player health and max health definitively or for a defined amount of time if wanted. Here's how the healing effect gets defined:

consumable test:
  ...
  [consumable data]
  effects:
    - effect 1:
      type: "healing"
      effect time: <float(game days)> # not required
      health change: # set 'None' as a value so it does nothing
        augmentation: <int> # not required
        diminution: <int> # not required
        max health: # not required
          augmentation: <int> # not required
          diminution: <int> # not required
  • effect time // here you'll enter how many time in game days you want to de be required for this effect to pass. This field isn't required.
  • health change // the dictionary that defines the actions of the effect. Set as a value None to have no effects.
    • augmentation // here you'll enter an integer that'll be added to the player's health. With a value of 999, the player health will be restored to its maximum. This field isn't required.
    • diminution // here you'll enter an integer that'll be removed from the player's health. This field isn't required.
    • max health // This field isn't required.
      • augmentation // here you'll enter an integer that'll be added to the player's max health.This field isn't required.
      • diminution // here you'll enter an integer that'll be removed from the player's max health. This field isn't required.

Protection

The protection effect type affects the player's global armor protection by increasing or decreasing with a coefficient for a defined amount. Here's how the protection effect gets defined:

consumable test:
  ...
  [consumable data]
  effects:
    - effect 1:
      type: "protection"
      effect time: <float(game days)>
      protection change: # set 'None' as a value so it does nothing
        coefficient: <float> # not required
  • effect time // here you'll enter how many time in game days you want to de be required for this effect to pass. Set as a value '999' to make it infinite.
  • protection change // the dictionary that defines the actions of the effect. Set as a value None to have no effects.
    • coefficient // here you'll enter the coefficient that'll be applied to the player's global armor protection. Use values under 1 to decrease the armor protection. EX: a value of .5 will divide the armor protection by 2; a value of 1.4 will multiply the armor protection by 140%. This field isn't required.

NOTE: If the player has multiple effects of this type active, it's a random one that'll be chosen.

Strength

The strength effect type affects the player global damage and the player critical hit chance by two coefficient for a defined amount of time. Here's how the strength effect gets defined:

consumable test:
  ...
  [consumable data]
  effects:
    - effect 1:
      type: "strength"
      effect time: <float(game days)>
      strength change: # set 'None' as a value so it does nothing
        damage coefficient: <float> # not required
        critical hit chance coefficient: <float> # not required
  • effect time // here you'll enter how many time in game days you want to de be required for this effect to pass. Set as a value '999' to make it infinite.
  • strength change // the dictionary that defines the actions of the effect. Set as a value None to have no effects.
    • damage coefficient // here you'll enter the coefficient that'll be applied to the player's global damage. Use values under 1 to decrease the damage. EX: a value of .5 will divide the damage by 2; a value of 1.4 will multiply the damage by 140%. This field isn't required.
    • critical hit chance coefficient // here you'll enter the coefficient that'll be applied to the player's critical hit chance. Use values under 1 to decrease the critical hit chance. EX: a value of .5 will divide the critical hit chance by 2; a value of 1.4 will multiply the critical hit chance by 140%. This field isn't required.

NOTE: If the player has multiple effects of this type active, it's the one with the greatest value that'll be chosen.

Agility

The agility effect type affects the player's agility by increasing or decreasing with a coefficient for a defined amount of time. Here's how the agility effect gets defined:

consumable test:
  ...
  [consumable data]
  effects:
    - effect 1:
      type: "agility"
      effect time: <float(game days)>
      agility change: # set 'None' as a value so it does nothing
        coefficient: <float> # not required
  • effect time // here you'll enter how many time in game days you want to de be required for this effect to pass. Set as a value '999' to make it infinite.
  • agility change // the dictionary that defines the actions of the effect. Set as a value None to have no effects.
    • coefficient // here you'll enter the coefficient that'll be applied to the player's agility. Use values under 1 to decrease the agility. EX: a value of .5 will divide the agility by 2; a value of 1.4 will multiply the agility by 140%. This field isn't required.

NOTE: If the player has multiple effects of this type active, it's a random one that'll be chosen.

Time Elapsing

The time elapsing effect type affects the game day coefficient by increasing or decreasing with a coefficient for a defined amount of time. Here's how the agility effect gets defined:

consumable test:
  ...
  [consumable data]
  effects:
    - effect 1:
      type: "time elapsing"
      effect time: <float(game days)>
      time change: # set 'None' as a value so it does nothing
        coefficient: <float> # not required
  • effect time // here you'll enter how many time in game days you want to de be required for this effect to pass. Set as a value '999' to make it infinite.
  • time change // the dictionary that defines the actions of the effect. Set as a value None to have no effects.

NOTE: Unlike other effect types, if the player has multiple effects of this type active, they'll all be added between them to calculate the final value that'll be applied: EX: if the player has 3 effects of the time elapsing type: (1st[coeff=.5], 2nd[coeff=1.3], 3rd[coeff=1.1]); the the final coefficient will be .5 * 1.3 * 1.1 = 0.715.

Attributes Addition

The attributes addition effect type only function is to add a list of attributes to the player custom attributes list. Here's how it gets defined:

consumable test:
  ...
  [consumable data]
  effects:
    - effect 1:
      type: "attributes addition"
      attributes addition: <list(str)>

Dialog Displaying

The dialog displaying effect type only function is to display a dialog. Note that the dialog to display checks won't be run. Here's how it gets defined:

consumable test:
  ...
  [consumable data]
  effects:
    - effect 1:
      type: "dialog displaying"
      dialog: <dialog(str)>
  • dialog // here you enter the id of the dialog you want to display.

Enemy Spawning

The enemy spawning effect type only function is to summon an enemy/enemies from an enemy list. Here's how it gets defined:

consumable test:
  ...
  [consumable data]
  effects:
    - effect 1:
      type: "enemy spawning"
      enemy list: <list(str)>
  • enemy list // here you enter the id of the enemy list to summon.

EXP Change

The exp change effect type increase or decrease the player's exp by adding or removing a certain amount. Here's how it gets defined:

consumable test:
  ...
  [consumable data]
  effects:
    - effect 1:
      type: "exp change"
      exp change: # set 'None' as a value so it does nothing
        augmentation: <float> # not required
        diminution: <float> # not required
  • exp change // the dictionary that defines the actions of the effect. Set as a value None to have no effects.
    • augmentation // here you'll enter a floating number that'll be added to the player's exp. This field isn't required.
    • diminution // here you'll enter a floating number that'll be removed from the player's exp. This field isn't required.

Coordinates Change

The coordinates change effect type changes the y and x coordinates of the player. Here's how it gets defined:

consumable test:
  ...
  [consumable data]
  effects:
    - effect 1:
      type: "coordinates change"
      coordinates change: # set 'None' as a value so it does nothing
        x: <int> # not required
        y: <int> # not required
  • coordinates change // the dictionary that defines the actions of the effect. Set as a value None to have no effects.
    • x // here you'll enter an integer that'll be the new player x coordinate. This field isn't required.
    • y // here you'll enter an integer that'll be the new player y coordinate. This field isn't required.

Inventory Change

The inventory change effect type can adds or remove items for the player's inventory. Here's how it gets defined:

consumable test:
  ...
  [consumable data]
  effects:
    - effect 1:
      type: "coordinates change"
      inventory change: # set 'None' as a value so it does nothing
        removals: <list(str)> # not required
        additions: <list(str)> # not required
  • inventory change // the dictionary that defines the actions of the effect. Set as a value None to have no effects.
    • removals // here you'll enter the list of items you want to be removed from the player's inventory. This field isn't required.
    • additions // here you'll enter the list of items you want to be added from the player's inventory. This field isn't required.
Clone this wiki locally