/// <summary> Handles hp/wp recovery, fat burn, vore </summary>
    public static void OverTimeTick(this BasicChar basicChar)
    {
        basicChar.HP.TickRecovery();
        basicChar.WP.TickRecovery();
        if (basicChar.Vore.Active)
        {
            basicChar.Vore.Digest();
        }
        Body     body        = basicChar.Body;
        BodyStat fat         = body.Fat;
        float    fatBurnRate = fat.BaseValue * 0.0001f;

        if (basicChar.Vore.Active)
        {
            VorePerksSystem perks = basicChar.Vore.Perks;
            if (perks.HasPerk(VorePerks.PredatoryMetabolism))
            {
                // TODO test pred metabol
                if (body.FatPrecent > 0.18f)
                {
                    fatBurnRate += fat.BaseValue * (0.0001f * perks.GetPerkLevel(VorePerks.PredatoryMetabolism)) * body.FatPrecent;
                }
            }
        }
        if (basicChar.Perks.HasPerk(PerksTypes.Gluttony))
        {
            fatBurnRate += PerkEffects.Gluttony.ExtraFatBurn(basicChar.Perks);
        }
        else if (basicChar.Perks.HasPerk(PerksTypes.LowMetabolism))
        {
            fatBurnRate -= PerkEffects.LowMetabolism.LowerBurn(basicChar.Perks);
        }
        fat.LoseFlat(fatBurnRate);
        basicChar.ReGainFluidsTick();
    }
Exemple #2
0
 public Body(float parHeight, float parFat, float parMuscle)
 {
     height = new BodyStat(parHeight);
     fat    = new BodyStat(parFat);
     muscle = new BodyStat(parMuscle);
 }