Ejemplo n.º 1
0
        public MainCell(double x, double y, Creature creature, DNA dna)
        {
            base.Init(null, creature, int.Parse(dna.abstraction.GetElementsByTagName("size")[0].InnerText), x, y);
            this.dna = dna;

            color = dna.abstraction.GetElementsByTagName("color")[0].InnerText;

            foreach (XmlElement xml in dna.abstraction.ChildNodes)
            {
                double dir;
                int    size;
                switch (xml.Name)
                {
                case "MainCell":
                    dir  = double.Parse(xml.GetElementsByTagName("dir")[0].InnerText);
                    size = int.Parse(xml.GetElementsByTagName("size")[0].InnerText);
                    Organs.Add(new MainCell((int)(x + size * Math.Cos(dir)), (int)(y + size * Math.Sin(dir)), new DNA(xml), creature));
                    break;

                case "Fin":
                    dir  = double.Parse(xml.GetElementsByTagName("dir")[0].InnerText);
                    size = int.Parse(xml.GetElementsByTagName("size")[0].InnerText);
                    Organs.Add(new Fin((x + size * Math.Cos(dir)), (y + size * Math.Sin(dir)), new DNA(xml), creature));
                    break;

                default:
                    break;
                }
            }

            brainSpeed   = int.Parse(dna.abstraction.GetElementsByTagName("brainSpeed")[0].InnerText);
            brainChange  = double.Parse(dna.abstraction.GetElementsByTagName("brainChange")[0].InnerText);
            creature.iq += 4;
        }
Ejemplo n.º 2
0
        public Eye(double x, double y, DNA dna, Organ parent)
        {
            base.Init(parent, int.Parse(dna.abstraction.GetElementsByTagName("size")[0].InnerText), x, y);
            amount = 3;

            foreach (XmlElement xml in dna.abstraction.GetElementsByTagName("MainCell"))
            {
                double dir;
                int    size;
                switch (xml.Name)
                {
                case "MainCell":
                    dir  = double.Parse(xml.GetElementsByTagName("dir")[0].Value);
                    size = int.Parse(xml.GetElementsByTagName("size")[0].Value);
                    Organs.Add(new MainCell((int)(x + size * Math.Cos(dir)), (int)(y + size * Math.Sin(dir)), creature, new DNA(xml)));
                    break;

                case "Fin":
                    dir  = double.Parse(xml.GetElementsByTagName("dir")[0].Value);
                    size = int.Parse(xml.GetElementsByTagName("size")[0].Value);
                    Organs.Add(new Fin((int)(x + size * Math.Cos(dir)), (int)(y + size * Math.Sin(dir)), this, new DNA(xml)));
                    break;

                default:
                    break;
                }
            }
        }
Ejemplo n.º 3
0
    public void OnSow(SowPlant2Type Sow)
    {
        SowingData = Sow;

        // Go through all our children and find all organs.
        Organs.Clear();
        foreach (object ChildObject in My.ChildrenAsObjects)
        {
            Organ Child = ChildObject as Organ;
            if (Child != null)
            {
                Organs.Add(Child);
            }
        }

        if (NewCrop != null)
        {
            NewCropType Crop = new NewCropType();
            Crop.crop_type = CropType;
            Crop.sender    = Name;
            NewCrop.Invoke(Crop);
        }

        if (Sowing != null)
        {
            Sowing.Invoke();
        }

        // tell all our children about sow
        foreach (Organ Child in Organs)
        {
            Child.OnSow(Sow);
        }
    }
Ejemplo n.º 4
0
 public MockForage(double liveWt)
 {
     Organs.Add(new MockOrgan(liveWt));
 }