public void Die(causeOfDeath cause) { if (cause != causeOfDeath.eaten) { Debug.Log(transform.name + " died from '" + cause + "'."); } else { Debug.Log(transform.name + " died from being '" + cause + "'."); } Destroy(gameObject); }
public void checkState() { if (percentHP() <= 0) { _causedeath = causeOfDeath.Totaled; BattleManager.instance.DeclareDeath(gameObject.name); deactivate(); } else if (_coreDest == null) { _causedeath = causeOfDeath.CoreDestroyed; BattleManager.instance.DeclareDeath(gameObject.name); CamSelect cam = (gameObject.name == "visitor")?CamSelect.CoreVisitor:CamSelect.CoreLocal; BattleManager.instance.switchCam(cam); deactivate(); } else if (verifierEnvers()) { _causedeath = causeOfDeath.UpsideDown; BattleManager.instance.DeclareDeath(gameObject.name); deactivate(); } }
bool diedThisYear(causeOfDeath[] causes, int currentYear) { if(isAlive) { foreach(causeOfDeath cause in causes) { if(cause.checkForDeath(this, currentYear)) { isAlive = false; yearDied = currentYear; diedFrom = cause; evManager.addDeath(getName() + " died in " + currentYear + " of " + cause.name + ", age " + (currentYear - yearBorn) ); return true; } } } return false; }
public bool yearlyUpdate(List<personSim> chars, causeOfDeath[] causes, int currentYear) { if(currentYear <= lastYearRun) { return false; } lastYearRun = currentYear; if(charManager == null) { charManager = GameObject.FindGameObjectWithTag("trackerManager").GetComponent<charTrackerManager>(); } int age = getAge(currentYear); if(isAlive){ if(partner != null && partner.isAlive) { partner.diedThisYear (causes, currentYear); } //make sure parents get updated! if(guard1 != null && guard1.isAlive) { guard1.yearlyUpdate(chars, causes, currentYear); } if(guard2 != null && guard2.isAlive) { guard2.yearlyUpdate(chars, causes, currentYear); } if(partner != null && partner.isAlive && age >= 20 && age <= 53 && children.Count < 2 && charManager.getNumChars() < 8) { //chance of gaining child if((UnityEngine.Random.value >= 0.95f) || (charManager.getNumChars() < 3 && (UnityEngine.Random.value >= 0.85f))) { personSim child = new personSim(currentYear, 0, this, partner); chars.Add(child); children.Add(child); partner.children.Add(child); if(partner.isMale != isMale) evManager.addEvent(getName() + " and " + partner.getName() + " gave birth to " + child.getName() + " in " + currentYear.ToString()); else evManager.addEvent(getName() + " and " + partner.getName() + " adopted " + child.getName() + " in " + currentYear.ToString()); GameObject.FindGameObjectWithTag("trackerManager").GetComponent<charTrackerManager>().addTracker(child); } } //check if should marry if(partner != null && partner.isAlive && isMarried == false && UnityEngine.Random.value >= 0.9f) { partner.isMarried = true; isMarried = true; marriedSince = currentYear; evManager.addEvent(getName() + " married " + partner.getName() + " in " + currentYear + "!"); if(partner.isMale) { string message = getName() + " is now "; surname = partner.surname; Debug.Log(message + getName()); foreach(personSim child in children) { child.surname = surname; } } else { partner.surname = surname; } } //check if find a partner else if(partner == null && age >= 18 && UnityEngine.Random.value >= 0.88f) { //create partner with adjusted gender odds if(isMale)partner = new personSim( yearBorn + UnityEngine.Random.Range(-5, 5), -0.3f); else partner = new personSim(currentYear + UnityEngine.Random.Range(-5, 5), 0.3f); evManager.addEvent(getName() + " started going out with " + partner.getName() + " in " + currentYear); coupledSince = currentYear; } updateThoughts(currentYear); return diedThisYear (causes, currentYear); } return false; }