![]() |
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.