Ejemplo n.º 1
0
    //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);
                }
            }
        }
    }
Ejemplo n.º 2
0
    //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);
    }
Ejemplo n.º 3
0
 //FAIT
 private void QueenModeActivation(ChimeraAnt cAnt)
 {
     if (status == ChimeraAntClass.King)
     {
         if (cAnt.sex == Sex.Female)
         {
             cAnt.status = ChimeraAntClass.Queen;
             //change material to red
         }
     }
 }
Ejemplo n.º 4
0
    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);
    }
Ejemplo n.º 5
0
 public void FeedQueen(ChimeraAnt queen)
 {
     if (queen.status != ChimeraAntClass.Queen)
     {
         return;
     }
     if (foodForQueen == null)
     {
         return;
     }
     queen.Feed(foodForQueen);
     foodForQueen = null;
 }