예제 #1
0
        public void Digest(Action <ThePrey> digested, float toDigest = 2f)
        {
            float totalDigest = toDigest + (Perks.GetPerkLevel(VorePerks.DigestiveFluids) * 2f);

            for (int i = Preys.Count - 1; i >= 0; i--)
            {
                ThePrey prey = Preys[i];
                DigestTo(prey.Digest(totalDigest));
                // TODO test if working and implement way to toggle vore settings.
                if (Perks.HasPerk(VorePerks.OrgasmicFluids))
                {
                    float arusalGain = 5 * Perks.GetPerkLevel(VorePerks.OrgasmicFluids);
                    if (prey.Prey.SexStats.GainArousal(arusalGain))
                    {
                        if (Perks.HasPerk(VorePerks.DrainEssence))
                        {
                            float toDrain = 6 * Perks.GetPerkLevel(VorePerks.DrainEssence);
                            if (prey.Prey.CanDrainFemi() && prey.Prey.CanDrainMasc() && VoreSettings.DrainEss == ChooseEssence.Both)
                            {
                                pred.Essence.Masc.Gain(prey.Prey.Essence.Masc.Lose(toDrain / 2));
                                pred.Essence.Femi.Gain(prey.Prey.Essence.Femi.Lose(toDrain / 2));
                            }
                            else if (prey.Prey.CanDrainMasc() && (VoreSettings.DrainEss == ChooseEssence.Masc || VoreSettings.DrainEss == ChooseEssence.Both))
                            {
                                pred.Essence.Masc.Gain(prey.Prey.Essence.Masc.Lose(toDrain));
                            }
                            else if (prey.Prey.CanDrainFemi() && (VoreSettings.DrainEss == ChooseEssence.Femi || VoreSettings.DrainEss == ChooseEssence.Both))
                            {
                                pred.Essence.Femi.Gain(prey.Prey.Essence.Femi.Lose(toDrain));
                            }
                        }
                    }
                }
                if (prey.Prey.Body.Weight <= 1)
                {
                    digested?.Invoke(prey);
                    Preys.Remove(prey);
                }
                GainExp(Mathf.FloorToInt(totalDigest));
            }
        }
예제 #2
0
 public void RemovePrey(ThePrey prey) => Preys.Remove(prey);