Пример #1
0
    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);
    }
Пример #2
0
 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();
     }
 }
Пример #3
0
	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;
	}
Пример #4
0
	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;
	}