/// <summary> /// When enemy is damaged keep hiding! /// </summary> /// <param name="sender">Sender.</param> /// <param name="args">Arguments.</param> virtual protected void EnemyDamaged(object sender, DamageInfoEventArgs args) { if (!isCharging && useChargeState && hideStateTimer > 0) { if (chargeMovement != null) { chargeMovement.SetDirection(args.DamageInfo.Direction); } isCharging = true; hideStateTimer = -1.0f; // Turn on hurtbox if (characterHitBox != null && args.DamageInfo.DamageCauser is Character) { characterHitBox.Character = (Character)args.DamageInfo.DamageCauser; characterHitBox.GetComponent <Collider2D>().enabled = true; } } else { hideStateTimer = hideStateTime; isCharging = false; // Turn off hurt box if (characterHitBox != null) { characterHitBox.GetComponent <Collider2D>().enabled = false; } } }
/// <summary> /// Raises the projectile destroyed event. /// </summary> /// <param name="info">Info.</param> virtual protected void OnProjectileDestroyed(DamageInfo info) { if (ProjectileDestroyed != null) { DamageInfoEventArgs args = new DamageInfoEventArgs(info); ProjectileDestroyed(this, args); } }
/// <summary> /// Handles the died event. /// </summary> /// <param name="sender">Sender.</param> /// <param name="e">E.</param> virtual protected void HandleDied(object sender, DamageInfoEventArgs e) { if (saveOnDeath) { Save(this); } if (resetOnDeath) { Reset(this); } }
/// <summary> /// Handles the game over event /// </summary> /// <param name="sender">Sender.</param> /// <param name="e">Event.</param> virtual protected void HandleGameOver(object sender, DamageInfoEventArgs e) { if (saveOnGameOver) { Save(this); } if (resetOnGameOver) { Reset(this); } }
/// <summary> /// Set up this instance. /// </summary> override protected void Init() { if (health == 0) { health = startingHealth; } if (lives <= 0) { lives = startingLives; } OnLoaded(); dying = false; character = gameObject.GetComponent <Character>(); if (character == null || character.gameObject != gameObject) { Debug.LogError("The CharacterHealth script expected to be on the same GameObject as the Character script"); } base.Init(); damageEventArgs = new DamageInfoEventArgs(); }
/// <summary> /// Init this instance. /// </summary> override protected void Init() { base.Init(); damageEventArgs = new DamageInfoEventArgs(); }
/// <summary> /// Handles the character dying by doing a hard reset. /// </summary> /// <param name="sender">Sender.</param> /// <param name="e">E.</param> void HandleDied(object sender, DamageInfoEventArgs e) { HardReset(); }
/// <summary> /// When enemy is damaged keep hiding! /// </summary> /// <param name="sender">Sender.</param> /// <param name="args">Arguments.</param> virtual protected void EnemyDamaged(object sender, DamageInfoEventArgs args) { hideStateTimer = hideStateTime; }
/// <summary> /// Handles the game ending. /// </summary> /// <param name="sender">Sender.</param> /// <param name="e">Event data.</param> virtual public void HandleGameOver(object sender, DamageInfoEventArgs e) { Reset(); }
/// <summary> /// Handles the cahracter dying. /// </summary> /// <param name="sender">Sender.</param> /// <param name="e">Event data.</param> void HandleDied(object sender, DamageInfoEventArgs e) { Save(); }