Esempio n. 1
0
    public static float TotalStableEssence(this BasicChar basicChar)
    {
        float baseStable = basicChar.Essence.StableEssence.Value;
        Perks perks      = basicChar.Perks;

        if (perks.HasPerk(PerksTypes.EssenceHoarder))
        {
            baseStable += perks.GetPerkLevel(PerksTypes.EssenceHoarder) * 300;
        }
        if (perks.HasPerk(PerksTypes.EssenceShaper))
        {
            baseStable += perks.GetPerkLevel(PerksTypes.EssenceShaper) * 100;
        }
        return(baseStable);
    }
Esempio n. 2
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));
            }
        }
Esempio n. 3
0
 public static float Discount(Perks perks) => perks.HasPerk(PerksTypes.Greedy)
     ? 0.02f * perks.GetPerkLevel(PerksTypes.Greedy)
     : 0f;
Esempio n. 4
0
 public static float ExtraGold(Perks perks) => perks.HasPerk(PerksTypes.Greedy)
     ? 0.05f * perks.GetPerkLevel(PerksTypes.Greedy)
     : 0f;
Esempio n. 5
0
 public static float AfterbattleHealPenalty(Perks perks) => perks.HasPerk(PerksTypes.Thug)
     ? 0.1f * perks.GetPerkLevel(PerksTypes.Thug)
     : 0;
Esempio n. 6
0
 public static float ExtraFatBurn(Perks perks) => perks.HasPerk(PerksTypes.Gluttony)
     ? 0.1f * perks.GetPerkLevel(PerksTypes.Gluttony)
     : 0;
Esempio n. 7
0
 public static float ExtraSensitive(Perks perks) => perks.HasPerk(PerksTypes.Delicate)
     ? 0.2f * perks.GetPerkLevel(PerksTypes.Delicate)
     : 0;
Esempio n. 8
0
 public static float LowerBurn(Perks perks)
 {
     return(perks.HasPerk(PerksTypes.LowMetabolism)
         ? 0.5f * perks.GetPerkLevel(PerksTypes.LowMetabolism)
         : 0);
 }
Esempio n. 9
0
 public static float ExtraStarvationPenalty(Perks perks) => perks.HasPerk(PerksTypes.Gluttony)
     ? 0.1f * perks.GetPerkLevel(PerksTypes.Gluttony)
     : 0;
 public static float GetExtraDrained(Perks perks) => perks.HasPerk(PerksTypes.EssenceFlow)
     ? 10f * perks.GetPerkLevel(PerksTypes.EssenceFlow) : 0;
 public static float ExtraGive(Perks perks) => perks.HasPerk(PerksTypes.EssenceShaper)
      ? 5f * perks.GetPerkLevel(PerksTypes.EssenceShaper) : 0;
 public static float ExtraDrain(Perks perks) => perks.HasPerk(PerksTypes.EssenceThief)
     ? 5f * perks.GetPerkLevel(PerksTypes.EssenceThief) : 0;