public override IEnumerator Die() { if (IWasHitBy != null) { IWasHitBy.GetComponent <NPC>().Kills++; } // to do: fade out yield return(new WaitForSeconds(timeUntilDisappear)); if (FatherBuilding != null) { this.gameObject.transform.position = new Vector3(FatherBuilding.transform.position.x, 0, FatherBuilding.transform.position.z); } if (!Monster && !isSummon) { analytics.removeNPC(this.gameObject); } Destroy(this.gameObject); }
public override void TrueTakeDmg(float Dmg) { int num = Random.Range(0, 3); if (num >= 2 && takeingDmgSound.Length < 0) { int ran = Random.Range(0, takeingDmgSound.Length); Instantiate(takeingDmgSound[ran], this.gameObject.transform.position, transform.rotation); } float DmgDealt = Dmg; if (FloatingtextPrefab) { ShowFloatingtext(); } if (DmgDealt <= 0) { DmgDealt = 0; } CurrentHP -= DmgDealt; if ((Monster == false && isSummon == false && Guard == false && Worker == false && Merchent == false)) { if (isMyPanelOpen()) { charData.updateText(); } } LastDmgTaken = (int)DmgDealt; MyDmgDealt += (int)DmgDealt; if (isSummon == false && !Monster) { analytics.OnDataChanged(this.gameObject, "Damage Dealt");//analytics } if (IWasHitBy != null) { float MyDmgDealt = IWasHitBy.GetComponent <NPC>().MyDmgDealt + DmgDealt; } if (CurrentHP <= 0) { IsDead = true; if (Worker || Guard || Merchent) { FatherBuilding.GetComponent <TownHall>().RemoveFromWork(this.gameObject); } if (Monster == true) { StartCoroutine(Die()); } removeMonsterToBuilding(); if (dieSound != null) { Instantiate(dieSound, this.gameObject.transform.position, transform.rotation); } } else if ((CurrentHP < HP) && (IsDead == false) && (RegenOn == false)) { RegenOn = true; Regen = StartCoroutine(Regeneration()); } }