public static void RefreshOrgans(this BasicChar bc) { Organs so = bc.SexualOrgans; List <Dick> dicks = so.Dicks; List <Balls> balls = so.Balls; List <V****a> vaginas = so.Vaginas; List <Boobs> boobs = so.Boobs; dicks.RemoveAll(d => d.Size <= 0); balls.RemoveAll(b => b.Size <= 0); vaginas.RemoveAll(v => v.Size <= 0); boobs.RemoveAll(b => b.Size <= 0); float ballsRatio = balls.Total() * 2f + 1f; float vaginaRatio = vaginas.Total() * 1.5f + 1f; if (so.GenderPrefActive) { if (so.GenderPref == Genders.Cuntboy) { vaginaRatio -= 100; } else if (so.GenderPref == Genders.Dickgirl) { vaginaRatio += 100; } } Essence masc = bc.Essence.Masc; float StableAmount = bc.TotalStableEssence(); if (masc.Amount > StableAmount) { if (dicks.Total() <= ballsRatio) { if (dicks.Exists(d => masc.Amount >= d.Cost)) { foreach (Dick d in dicks) { if (masc.Amount >= d.Cost) { masc.Lose(d.Grow()); break; } } } else if (masc.Amount >= dicks.Cost()) { masc.Lose(dicks.Cost()); dicks.AddDick(); } } else { if (balls.Exists(b => masc.Amount >= b.Cost)) { foreach (Balls b in balls) { if (masc.Amount >= b.Cost) { masc.Lose(b.Grow()); break; } } } else if (masc.Amount >= balls.Cost()) { masc.Lose(balls.Cost()); balls.AddBalls(); } } } Essence femi = bc.Essence.Femi; if (femi.Amount > StableAmount) { if (boobs.Total() <= vaginaRatio) { if (boobs.Exists(b => femi.Amount >= b.Cost)) { foreach (Boobs b in boobs) { if (femi.Amount >= b.Cost) { femi.Lose(b.Grow()); break; } } } else if (femi.Amount >= boobs.Cost()) { femi.Lose(boobs.Cost()); boobs.AddBoobs(); } } else { if (vaginas.Exists(v => femi.Amount >= v.Cost)) { foreach (V****a v in vaginas) { if (femi.Amount >= v.Cost) { femi.Lose(v.Grow()); break; } } } else if (femi.Amount >= vaginas.Cost()) { femi.Lose(vaginas.Cost()); vaginas.AddVag(); } } } }