private void EnemyMain_OnDamaged(object sender, EnemyMain.OnDamagedEventArgs e) { Vector3 bloodDir = (GetPosition() - e.attacker.GetPosition()).normalized; BloodParticleSystemHandler.Instance.SpawnBlood(5, GetPosition(), bloodDir); int damageAmount = Mathf.RoundToInt(30 * e.damageMultiplier * UnityEngine.Random.Range(.8f, 1.2f)); DamagePopup.Create(GetPosition(), damageAmount, false); enemyMain.HealthSystem.Damage(damageAmount); //Sound_Manager.PlaySound(Sound_Manager.Sound.BodyHit_1, GetPosition()); if (enemyMain.HealthSystem.IsDead()) { FlyingBody.Create(GameAssets.i.pfEnemyFlyingBody, GetPosition(), bloodDir); enemyMain.DestroySelf(); Sound_Manager.PlaySound(Sound_Manager.Sound.Minion_Dead, GetPosition()); } else { // Knockback enemyMain.EnemyRigidbody2D.MovePosition(transform.position + bloodDir * 5f); } }
public void Damage(IEnemyTargetable attacker) { Vector3 bloodDir = (GetPosition() - attacker.GetPosition()).normalized; Blood_Handler.SpawnBlood(GetPosition(), bloodDir); int damageAmount = 30; DamagePopup.Create(GetPosition(), damageAmount, false); healthSystem.Damage(damageAmount); if (IsDead()) { FlyingBody.Create(GameAssets.i.pfEnemyFlyingBody, GetPosition(), bloodDir); Destroy(gameObject); } else { // Knockback transform.position += bloodDir * 5f; if (hitUnitAnim != null) { state = State.Busy; characterBase.PlayHitAnimation(bloodDir * (Vector2.one * -1f), SetStateNormal); } } }
private void PlayerCharacterHandler_OnEnemyKilled(object sender, EnemyHealth.OnEnemyKilledEventArgs e) { // Vector3 enemyPos = GetComponent<EnemyCharacterHandler>().ActualEnemyPosition; Vector3 flyDirection = (enemyCharacterHandler.GetPosition() - playerCharacterHandler.GetPosition()).normalized; FlyingBody.Create(pfEnemyDeadBody, enemyCharacterHandler.GetPosition(), flyDirection); enemy.SetActive(false); UtilsClass.ShakeCamera(2f, .1f); }
public void Damage(CharacterBattle attacker, int damageAmount) { //damageAmount = 1; Debug.Log("##### No Damage"); Vector3 bloodDir = (GetPosition() - attacker.GetPosition()).normalized; Blood_Handler.SpawnBlood(GetPosition(), bloodDir); SoundManager.PlaySound(SoundManager.Sound.CharacterDamaged); DamagePopup.Create(GetPosition(), damageAmount, false); healthSystem.Damage(damageAmount); DamageFlash(); playerBase.GetUnitAnimation().PlayAnimForced(hitUnitAnimType, GetTargetDir(), 1f, (UnitAnim unitAnim) => { PlayIdleAnim(); }, null, null); if (IsDead()) { if (!IsPlayerTeam()) { // Enemy if (characterType != Character.Type.EvilMonster && characterType != Character.Type.EvilMonster_2 && characterType != Character.Type.EvilMonster_3) { // Don't spawn Flying Body for Evil Monster FlyingBody.Create(GameAssets.i.pfEnemyFlyingBody, GetPosition(), bloodDir); SoundManager.PlaySound(SoundManager.Sound.CharacterDead); } gameObject.SetActive(false); } else { // Player Team stats.special = 0; SoundManager.PlaySound(SoundManager.Sound.OooohNooo); } playerBase.GetUnitAnimation().PlayAnimForced(UnitAnim.GetUnitAnim("LyingUp"), 1f, null); healthWorldBar.Hide(); transform.localScale = new Vector3(-1, 1, 1); //gameObject.SetActive(false); //Destroy(gameObject); } else { // Knockback /* * transform.position += bloodDir * 5f; * if (hitUnitAnim != null) { * state = State.Busy; * enemyBase.PlayHitAnimation(bloodDir * (Vector2.one * -1f), SetStateNormal); * } */ } }
public void Damage(Vector3 attackerPosition) { Vector3 bloodDir = (GetPosition() - attackerPosition).normalized; Blood_Handler.SpawnBlood(GetPosition(), bloodDir); // Knockback transform.position += bloodDir * 1.5f; health--; if (health == 0) { FlyingBody.Create(GameAssets.i.pfEnemyFlyingBody, GetPosition(), bloodDir); gameObject.SetActive(false); //transform.Find("Body").gameObject.SetActive(false); } }
public void Damage(EnemyAim attacker) { Vector3 bloodDir = (GetPosition() - attacker.GetPosition()).normalized; Blood_Handler.SpawnBlood(GetPosition(), bloodDir); healthSystem.Damage(1); if (IsDead()) { FlyingBody.Create(GameAssets.i.pfEnemyFlyingBody, GetPosition(), bloodDir); playerBase.DestroySelf(); Destroy(gameObject); } else { // Knockback transform.position += bloodDir * 2.5f; } }
public void Damage(UnitGridCombat attacker, int damageAmount) { Vector3 bloodDir = (GetPosition() - attacker.GetPosition()).normalized; Blood_Handler.SpawnBlood(GetPosition(), bloodDir); DamagePopup.Create(GetPosition(), damageAmount, false); healthSystem.Damage(damageAmount); if (healthSystem.IsDead()) { FlyingBody.Create(GameAssets.i.pfEnemyFlyingBody, GetPosition(), bloodDir); Destroy(gameObject); } else { // Knockback //transform.position += bloodDir * 5f; } }
public void Damage(IEnemyTargetable attacker, int damageAmount) { Vector3 bloodDir = (GetPosition() - attacker.GetPosition()).normalized; Blood_Handler.SpawnBlood(4, GetPosition(), bloodDir); health -= damageAmount; if (IsDead()) { FlyingBody.Create(GameAssets.i.pfEnemyFlyingBody, GetPosition(), bloodDir); Destroy(gameObject); } else { // Knockback /*transform.position += bloodDir * 5f; * if (hitUnitAnim != null) { * state = State.Busy; * unitAnimation.PlayAnimForced(hitUnitAnim, bloodDir * (Vector2.one * -1f), 1f, (UnitAnim unitAnim) => { * state = State.Normal; * }, null, null); * }*/ } }
public void Damage(IEnemyTargetable attacker) { Vector3 bloodDir = (GetPosition() - attacker.GetPosition()).normalized; //Blood_Handler.SpawnBlood(GetPosition(), bloodDir); health--; if (IsDead()) { FlyingBody.Create(GameAssetsDefault.i.pfEnemyFlyingBody, GetPosition(), bloodDir); Destroy(gameObject); } else { // Knockback transform.position += bloodDir * 5f; if (hitUnitAnim != null) { state = State.Busy; unitAnimation.PlayAnimForced(hitUnitAnim, bloodDir * (Vector2.one * -1f), 1f, (UnitAnim unitAnim) => { state = State.Normal; }, null, null); } } }