Example #1
0
    public override void ApplyMutation(Species mutation)
    {
        base.ApplyMutation(mutation);

        var casted = (MicrobeSpecies)mutation;

        Organelles.Clear();

        foreach (var organelle in casted.Organelles)
        {
            Organelles.Add((OrganelleTemplate)organelle.Clone());
        }

        IsBacteria       = casted.IsBacteria;
        MembraneType     = casted.MembraneType;
        MembraneRigidity = casted.MembraneRigidity;
    }
Example #2
0
    public void UpdateInitialCompounds()
    {
        var simulation = SimulationParameters.Instance;

        var rusticyanin  = simulation.GetOrganelleType("rusticyanin");
        var chemo        = simulation.GetOrganelleType("chemoplast");
        var chemoProtein = simulation.GetOrganelleType("chemoSynthesizingProteins");

        if (Organelles.Any(o => o.Definition == rusticyanin))
        {
            SetInitialCompoundsForIron();
        }
        else if (Organelles.Any(o => o.Definition == chemo ||
                                o.Definition == chemoProtein))
        {
            SetInitialCompoundsForChemo();
        }
        else
        {
            SetInitialCompoundsForDefault();
        }
    }