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; }
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(); } }