|
Eye of the Nile Docs
Everything you need to know to get started!
|
Handles health, damage, and death of an object/entity. If you want an object to have health, take damage, and die, put this script on it.
Documentation updated 9/15/2024
Public Member Functions | |||||||
| virtual void | ResetHealth () | ||||||
| Set currentHealth back to maxHealth. | |||||||
| virtual void | TakeDamage (int damage) | ||||||
| If something attacks the object, it will run ObjectHealth.TakeDamage() | |||||||
| virtual void | TakeDamage (Transform attacker, int damage) | ||||||
| If something attacks the object, it will run ObjectHealth.TakeDamage() This overload allows for damage particles to come from the direction of the attack. | |||||||
| IEnumerator | SetOnFire (int damageCount, float damageSpeed, int damage) | ||||||
Starts damaging the object (with FireDamage()) repeatedly. A fire sprite will appear over the object while it's on fire.
| |||||||
| void | FireImmunity (float seconds) | ||||||
| Start a coroutine for FireImmunityTimer(). | |||||||
| int | GetMaxHealth () | ||||||
| \breif Return the object's max health. | |||||||
Public Attributes | |
| UnityEvent | OnDeath |
| Invokes any subscribed functions when the object dies. | |
Protected Member Functions | |
| IEnumerator | Invincibility () |
| Makes object invincible for invincibleDuration seconds. Toggles transparency every invincibleFlash seconds. | |
| void | ToggleTransparency (bool isOn) |
| Toggles the reduced opacity of the sprite that is used to create the flashing effect when invincible. | |
| virtual void | FireDamage (int damage) |
| Similar functionality to TakeDamage(), but no invincibility is triggered and no animation players. Used when on fire. | |
| virtual void | Die () |
| Triggered when the object runs out of health. Plays a death sound and animation, drops souls/god souls, and disables the object. | |
| IEnumerator | FireImmunityTimer (float seconds) |
| Make the object immune to fire for the given amount of seconds. | |
Protected Attributes | |
| SpriteRenderer | sRenderer |
| Reference to the object’s sprite renderer. | |
| Animator | animator |
| Transform | hurtEffect |
| SpriteRenderer | onFireSprite |
| EventReference | deathSfxName |
| Reference to the sound effect the object should play when it dies. Nothing will play if left blank. | |
| bool | enableDamageParticles = true |
| If enabled, the object will spawn the given hurtEffect particles when taking damage. | |
| bool | disableColliderOnDeath = true |
| If enabled, the object's Collider2D component will be disabled when it dies. | |
| bool | disableRigidbodyOnDeath = true |
| If enabled, the object's Rigidbody2D component will be disabled when it dies. | |
| bool | destroyOnDeath = false |
| If enabled, the object will be destroyed when it dies. | |
| int | maxHealth = 100 |
| The maximum health the object can have. | |
| int | soulsDroppedOnDeath = 0 |
| The amount of souls the object should grant the player upon death. To disable, set to <= 0. | |
| int | godSoulsDroppedOnDeath = 0 |
| The amount of god souls the object should grant the player upon death. To disable, set to <= 0. | |
| bool | canBeInvincible = false |
| If enabled, the object will be invincible for a short duration after taking damage (invincibility frames). | |
| float | invincibleDuration = 3f |
| In seconds, how long invincibility lasts for after taking damage. | |
| float | flashDuration = 0.25f |
| In seconds, how often the sprite should swap between being opaque and transparent (creating a flashing effect). | |
| WaitForSeconds | invincibleFlash |
| The WaitForSeconds variable that is used to implement flashDuration. | |
| bool | isInvincible = false |
| If the object is currently invincible. | |
| bool | canBeOnFire = true |
| Whether or not the object can be set on fire. | |
| bool | onFire = false |
| Whether or not the object is currently on fire. | |
| bool | fireImmune = false |
| Whether or not the object currently has immunity to fire (usually from an ability). | |
Properties | |
| bool | IsDead [get] |
| The object is dead if the currentHealth falls to 0. | |
| int | currentHealth [get, protected set] |
| The amount of health the object currently has. | |
Events | |
| static Action< int > | soulsDropped |
| Triggered when the object dies (if soulsDroppedOnDeath > 0), telling the DataManager that the amount of souls the player has collected has increased. | |
| static Action< int > | godSoulsDropped |
| Triggered when the object dies (if godSoulsDroppedOnDeath > 0), telling the DataManager that the amount of god souls the player has collected has increased. | |
Private Member Functions | |
| void | Awake () |
| Initialize invincibleFlash. | |
| void | Start () |
| Set currentHealth to maxHealth. | |
Private Attributes | |
| EventReference | setOnFireSFX |
| Reference to the sound effect that plays when the object is set on fire. | |
|
private |
Initialize invincibleFlash.
|
protectedvirtual |
Triggered when the object runs out of health. Plays a death sound and animation, drops souls/god souls, and disables the object.
Reimplemented in PlayerHealth.
|
protectedvirtual |
Similar functionality to TakeDamage(), but no invincibility is triggered and no animation players. Used when on fire.
Reimplemented in PlayerHealth.
| void ObjectHealth.FireImmunity | ( | float | seconds | ) |
Start a coroutine for FireImmunityTimer().
|
protected |
Make the object immune to fire for the given amount of seconds.
| int ObjectHealth.GetMaxHealth | ( | ) |
\breif Return the object's max health.
|
protected |
Makes object invincible for invincibleDuration seconds. Toggles transparency every invincibleFlash seconds.
|
virtual |
Set currentHealth back to maxHealth.
| IEnumerator ObjectHealth.SetOnFire | ( | int | damageCount, |
| float | damageSpeed, | ||
| int | damage ) |
Starts damaging the object (with FireDamage()) repeatedly. A fire sprite will appear over the object while it's on fire.
| damageCount | The amount of times the fire will deal damage before the object stops being on fire. |
| damageSpeed | The amount of seconds between each round of dealing damage. |
| damage | The amount of damage to deal each time. |
|
private |
Set currentHealth to maxHealth.
|
virtual |
If something attacks the object, it will run ObjectHealth.TakeDamage()
Steps:
| damage | The amount of damage to deal to this object. |
|
virtual |
If something attacks the object, it will run ObjectHealth.TakeDamage() This overload allows for damage particles to come from the direction of the attack.
Steps:
| attacker | Reference to the transform of the attacker. Used to determine which direction particles should come from. |
| damage | The amount of damage to deal to this object. |
Reimplemented in PlayerHealth, and PotHealth.
|
protected |
Toggles the reduced opacity of the sprite that is used to create the flashing effect when invincible.
|
protected |
Reference to the object’s animator.
|
protected |
If enabled, the object will be invincible for a short duration after taking damage (invincibility frames).
|
protected |
Whether or not the object can be set on fire.
|
protected |
Reference to the sound effect the object should play when it dies. Nothing will play if left blank.
|
protected |
If enabled, the object will be destroyed when it dies.
|
protected |
If enabled, the object's Collider2D component will be disabled when it dies.
|
protected |
If enabled, the object's Rigidbody2D component will be disabled when it dies.
|
protected |
If enabled, the object will spawn the given hurtEffect particles when taking damage.
|
protected |
Whether or not the object currently has immunity to fire (usually from an ability).
|
protected |
In seconds, how often the sprite should swap between being opaque and transparent (creating a flashing effect).
|
protected |
The amount of god souls the object should grant the player upon death. To disable, set to <= 0.
|
protected |
Reference to the particle effects the object should spawn when taking damage. Can be toggled with enableDamageParticles.
|
protected |
In seconds, how long invincibility lasts for after taking damage.
|
protected |
The WaitForSeconds variable that is used to implement flashDuration.
|
protected |
If the object is currently invincible.
|
protected |
The maximum health the object can have.
| UnityEvent ObjectHealth.OnDeath |
Invokes any subscribed functions when the object dies.
|
protected |
Whether or not the object is currently on fire.
|
protected |
Reference to the sprite that should be overlaid the object’s sprite when the object is on fire.
|
private |
Reference to the sound effect that plays when the object is set on fire.
|
protected |
The amount of souls the object should grant the player upon death. To disable, set to <= 0.
|
protected |
Reference to the object’s sprite renderer.
|
getprotected set |
The amount of health the object currently has.
|
get |
The object is dead if the currentHealth falls to 0.
|
static |
Triggered when the object dies (if godSoulsDroppedOnDeath > 0), telling the DataManager that the amount of god souls the player has collected has increased.
|
static |
Triggered when the object dies (if soulsDroppedOnDeath > 0), telling the DataManager that the amount of souls the player has collected has increased.