/// <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);
     }
 }
示例#3
0
 /// <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);
     }
 }
示例#4
0
 /// <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();
        }
示例#6
0
 /// <summary>
 /// Init this instance.
 /// </summary>
 override protected void Init()
 {
     base.Init();
     damageEventArgs = new DamageInfoEventArgs();
 }
示例#7
0
 /// <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;
 }
示例#9
0
 /// <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();
 }
示例#10
0
 /// <summary>
 /// Handles the cahracter dying.
 /// </summary>
 /// <param name="sender">Sender.</param>
 /// <param name="e">Event data.</param>
 void HandleDied(object sender, DamageInfoEventArgs e)
 {
     Save();
 }