//A faire remonter dans Animal FAIT public override void DangerEvaluation(Species species) { base.DangerEvaluation(species); if (species.GetType() == typeof(ChimeraAnt)) { ChimeraAnt cAnt = (ChimeraAnt)species; if (cAnt.familyBoidId != familyBoidId) { if (cAnt.status == ChimeraAntClass.King) { increaseDangerLvl(3); } if (cAnt.status == ChimeraAntClass.KingGuard) { increaseDangerLvl(2); } if (cAnt.status == ChimeraAntClass.Worker || cAnt.status == ChimeraAntClass.Soldier) { increaseDangerLvl(1); } } } }
//Factory en fonction des différent animaux public Species ChimeraReproduction(Genomes gene) { ChimeraAnt child = null; switch (gene) { case Genomes.Tree: { child = SpawnChildren(); int randX = Random.Range(-10, 10); int randY = Random.Range(-10, 10); print("nAISSANCE mode arbre"); child.transform.position = transform.position + new Vector3(randX, 0, randY); } break; case Genomes.Wolf: { if (state != State.Leader && isInReproductionTime == false) { return(null); } child = SpawnChildren(); } break; default: { child = SpawnChildren(); } break; } return(child); }
//FAIT private void QueenModeActivation(ChimeraAnt cAnt) { if (status == ChimeraAntClass.King) { if (cAnt.sex == Sex.Female) { cAnt.status = ChimeraAntClass.Queen; //change material to red } } }
private ChimeraAnt SpawnChildren() { int familyId = familyBoidId; if (status != ChimeraAntClass.Queen) { return(null); } string source = "Prefabs/"; // Last part of Queen's life : Give birth to the future King if (longevity <= 4000 && !_isKingBorn) { //if it's a king we set a new family boid id source += "AntKing"; _isKingBorn = true; } else { // Middle part of Queen's life : Give birth to the future King Guard if (longevity <= 6000 && !_isKingBorn) { source += "AntKingGuard"; } else { // First and default part of Queen's life : Give birth to the colony System.Random random = new System.Random(); if (random.Next() % 2 == 0) { source += "AntWorker"; } else { source += "AntSoldier"; } } } print("Instatiating " + source); ChimeraAnt go = ((GameObject)Instantiate(Resources.Load(source), transform.position - transform.forward * 1.5f, new Quaternion())).GetComponent <ChimeraAnt>(); print("Transmitting movement "); ((ChimeraAntMove)move).InheritMovement((ChimeraAntMove)go.move); // transmitting queen's movement qualities to newborn go.queen = this; go.familyBoidId = familyBoidId; // after init/awake, reassign newborn to this queen's family go.transform.parent = transform.parent; return(go); }
public void FeedQueen(ChimeraAnt queen) { if (queen.status != ChimeraAntClass.Queen) { return; } if (foodForQueen == null) { return; } queen.Feed(foodForQueen); foodForQueen = null; }