public ExtendedPerkModifiers(Creature parent) { source = parent ?? throw new ArgumentNullException(nameof(parent)); parent.womb.onBirth += Womb_onBirth; numTransformsDelta = new SignedBytePerkModifier(0, -2, 2); itemForgeCostReduction = new BytePerkModifier(0, 0, 2); replaceMasturbateWithMeditate = new ConditionalPerkModifier(false); lustRequiredForSexOffset = new SignedBytePerkModifier(0, -50, 50); corruptionRequiredOffset = new SignedBytePerkModifier(0, -50, 50); purityRequiredOffset = new SignedBytePerkModifier(0, -50, 50); teaseStrengthMultiplier = new DoublePerkModifier(1, 0.5, 3); isASlut = new ConditionalPerkModifier(false); resistsTFBadEnds = new ConditionalPerkModifier(false); }
public BasePerkModifiers(Creature sourceCreature) { source = sourceCreature ?? throw new ArgumentNullException(nameof(sourceCreature)); //stats minStrengthDelta = new SignedBytePerkModifier(0, 0, 50, CheckStrengthChanged); maxStrengthDelta = new SignedBytePerkModifier(0, -50, 50, CheckStrengthChanged); strengthGainMultiplier = new DoublePerkModifier(1, 0.25, 4); strengthLossMultiplier = new DoublePerkModifier(1, 0.25, 4); minSpeedDelta = new SignedBytePerkModifier(0, 0, 50, CheckSpeedChanged); maxSpeedDelta = new SignedBytePerkModifier(0, -50, 50, CheckSpeedChanged); speedGainMultiplier = new DoublePerkModifier(1, 0.25, 4); speedLossMultiplier = new DoublePerkModifier(1, 0.25, 4); minToughnessDelta = new SignedBytePerkModifier(0, 0, 50, CheckToughnessChanged); maxToughnessDelta = new SignedBytePerkModifier(0, -50, 50, CheckToughnessChanged); toughnessGainMultiplier = new DoublePerkModifier(1, 0.25, 4); toughnessLossMultiplier = new DoublePerkModifier(1, 0.25, 4); minIntelligenceDelta = new SignedBytePerkModifier(0, 0, 50, CheckIntelligenceChanged); maxIntelligenceDelta = new SignedBytePerkModifier(0, -50, 50, CheckIntelligenceChanged); intelligenceGainMultiplier = new DoublePerkModifier(1, 0.25, 4); intelligenceLossMultiplier = new DoublePerkModifier(1, 0.25, 4); minLustDelta = new SignedBytePerkModifier(0, 0, 50, CheckLustChanged); maxLustDelta = new SignedBytePerkModifier(0, -50, 50, CheckLustChanged); lustGainMultiplier = new DoublePerkModifier(1, 0.25, 4); lustLossMultiplier = new DoublePerkModifier(1, 0.25, 4); minLibidoDelta = new SignedBytePerkModifier(0, 0, 50, CheckLibidoChanged); maxLibidoDelta = new SignedBytePerkModifier(0, -50, 50, CheckLibidoChanged); libidoGainMultiplier = new DoublePerkModifier(1, 0.25, 4); libidoLossMultiplier = new DoublePerkModifier(1, 0.25, 4); minCorruptionDelta = new SignedBytePerkModifier(0, 0, 50, CheckCorruptionChanged); maxCorruptionDelta = new SignedBytePerkModifier(0, -50, 50, CheckCorruptionChanged); corruptionGainMultiplier = new DoublePerkModifier(1, 0.25, 4); corruptionLossMultiplier = new DoublePerkModifier(1, 0.25, 4); minSensitivityDelta = new SignedBytePerkModifier(0, 0, 50, CheckSensitivityChanged); maxSensitivityDelta = new SignedBytePerkModifier(0, -50, 50, CheckSensitivityChanged); sensitivityGainMultiplier = new DoublePerkModifier(1, 0.25, 4); sensitivityLossMultiplier = new DoublePerkModifier(1, 0.25, 4); maxFatigueDelta = new SignedBytePerkModifier(0, -50, 50, CheckFatigueChanged); fatigueGainMultiplier = new DoublePerkModifier(1, 0.25, 4); fatigueRecoveryMultiplier = new DoublePerkModifier(1, 0.25, 4); maxHungerDelta = new SignedBytePerkModifier(0, -50, 50, CheckHungerChanged); hungerGainMultiplier = new DoublePerkModifier(1, 0.25, 4); hungerRecoveryMultiplier = new DoublePerkModifier(1, 0.25, 4); gemsGainRate = new DoublePerkModifier(1, 0.66667, 1.5); healthGainMultiplier = new DoublePerkModifier(1, 0.5, 3); //NYI combatDamageModifier = new DoublePerkModifier(1, 0.1, 5); //NYI magicalSpellCost = new DoublePerkModifier(1, .25, 2); physicalSpellCost = new DoublePerkModifier(1, .25, 2); //NYI armorEffectivenessMultiplier = new DoublePerkModifier(0.5, 3); //end NYIs. //Implemented. perkBonusMaxHp = new UnsignedShortPerkModifier(0, 0, 5000, CheckHpChanged); //default wetness defaultVaginalWetness = new VaginalWetnessPerkModifier(VaginalWetness.NORMAL, VaginalWetness.DRY, VaginalWetness.SLAVERING); minVaginalWetness = new VaginalWetnessPerkModifier(VaginalWetness.DRY, VaginalWetness.DRY, VaginalWetness.DROOLING, CheckVaginalWetnessChanged); maxVaginalWetness = new VaginalWetnessPerkModifier(VaginalWetness.SLAVERING, VaginalWetness.WET, VaginalWetness.SLAVERING, CheckVaginalWetnessChanged); defaultVaginalLooseness = new VaginalLoosenessPerkModifier(VaginalLooseness.TIGHT, VaginalLooseness.TIGHT, VaginalLooseness.CLOWN_CAR_WIDE); minVaginalLooseness = new VaginalLoosenessPerkModifier(VaginalLooseness.TIGHT, VaginalLooseness.TIGHT, VaginalLooseness.GAPING, CheckVaginalLoosenessChanged); maxVaginalLooseness = new VaginalLoosenessPerkModifier(VaginalLooseness.CLOWN_CAR_WIDE, VaginalLooseness.LOOSE, VaginalLooseness.CLOWN_CAR_WIDE, CheckVaginalLoosenessChanged); defaultAnalWetness = new AnalWetnessPerkModifier(AnalWetness.NORMAL, AnalWetness.NORMAL, AnalWetness.SLIME_DROOLING); minAnalWetness = new AnalWetnessPerkModifier(AnalWetness.NORMAL, AnalWetness.NORMAL, AnalWetness.DROOLING, CheckAnalWetnessChanged); maxAnalWetness = new AnalWetnessPerkModifier(AnalWetness.SLIME_DROOLING, AnalWetness.MOIST, AnalWetness.SLIME_DROOLING, CheckAnalWetnessChanged); defaultAnalLooseness = new AnalLoosenessPerkModifier(AnalLooseness.NORMAL, AnalLooseness.NORMAL, AnalLooseness.GAPING); minAnalLooseness = new AnalLoosenessPerkModifier(AnalLooseness.NORMAL, AnalLooseness.NORMAL, AnalLooseness.STRETCHED, CheckAnalLoosenessChanged); maxAnalLooseness = new AnalLoosenessPerkModifier(AnalLooseness.GAPING, AnalLooseness.LOOSE, AnalLooseness.GAPING, CheckAnalLoosenessChanged); treatCalculationsAsIfAtMaxLust = new ConditionalPerkModifier(false); alwaysLactatingAtMaximumCapacity = new ConditionalPerkModifier(false); alwaysProducingMaxCum = new ConditionalPerkModifier(false, CheckCumMax); bonusAdditionalCum = new UnsignedIntegerPerkModifier(0, 0, 5000, CheckCumAdd); bonusCumMultiplier = new DoublePerkModifier(1, 0.25, 100, CheckCumMult); newCockSizeDelta = new DoublePerkModifier(0); cockGrowthMultiplier = new DoublePerkModifier(1, 0.5, 3); cockShrinkMultiplier = new DoublePerkModifier(1, 0.5, 3); newCockDefaultSize = new DoublePerkModifier(C**k.DEFAULT_COCK_LENGTH, C**k.DEFAULT_COCK_LENGTH); minCockSize = new DoublePerkModifier(C**k.MIN_COCK_LENGTH, C**k.MIN_COCK_LENGTH, onChange: MinCockChanged); perkBonusVirilityMultiplier = new DoublePerkModifier(1, 0.2, 1.5); perkBonusVirility = new SignedBytePerkModifier(0, -50, 50); perkBasedBonusVaginalCapacity = new UnsignedShortPerkModifier(0, 0, ushort.MaxValue, VaginalCapacityChanged); defaultNewClitSize = new DoublePerkModifier(C**t.DEFAULT_CLIT_SIZE, C**t.DEFAULT_CLIT_SIZE, C**t.MAX_CLIT_SIZE); newClitSizeDelta = new DoublePerkModifier(0, -5, 5); clitGrowthMultiplier = new DoublePerkModifier(1, 0.5, 3); clitShrinkMultiplier = new DoublePerkModifier(1, 0.5, 3); minClitSize = new DoublePerkModifier(C**t.DEFAULT_CLIT_SIZE, C**t.DEFAULT_CLIT_SIZE, C**t.MAX_CLIT_SIZE, MinClitChanged); femaleNewBreastCupSizeDelta = new SignedBytePerkModifier(0, -5, 5); femaleNewBreastDefaultCupSize = new CupSizePerkModifier(CupSize.C, CupSize.FLAT, CupSize.JACQUES00); maleNewBreastCupSizeDelta = new SignedBytePerkModifier(0, -5, 5); maleNewBreastDefaultCupSize = new CupSizePerkModifier(CupSize.FLAT, CupSize.FLAT, CupSize.JACQUES00); femaleMinCupSize = new CupSizePerkModifier(CupSize.FLAT, CupSize.FLAT, CupSize.JACQUES00, MinFemaleCupChanged); maleMinCupSize = new CupSizePerkModifier(CupSize.FLAT, CupSize.FLAT, CupSize.JACQUES00, MinMaleCupChanged); titsGrowthMultiplier = new DoublePerkModifier(1, 0.5, 3); titsShrinkMultiplier = new DoublePerkModifier(1, 0.5, 3); newNippleDefaultLength = new DoublePerkModifier(NippleAggregate.MALE_DEFAULT_NIPPLE, NippleAggregate.MALE_DEFAULT_NIPPLE, NippleAggregate.MAX_NIPPLE_LENGTH); newNippleSizeDelta = new DoublePerkModifier(0, -2, 2); nippleGrowthMultiplier = new DoublePerkModifier(1, 0.5, 3); nippleShrinkMultiplier = new DoublePerkModifier(1, 0.5, 3); newBallsDefaultSize = new BytePerkModifier(Balls.DEFAULT_BALLS_SIZE, Balls.MIN_BALLS_SIZE, Balls.MAX_BALLS_SIZE); newBallsSizeDelta = new SignedBytePerkModifier(0, -4, 4); ballsGrowthMultiplier = new DoublePerkModifier(1, 0.5, 2); ballsShrinkMultiplier = new DoublePerkModifier(1, 0.5, 2); perkBasedBonusAnalCapacity = new UnsignedShortPerkModifier(0, 0, ushort.MaxValue, AnalCapacityChanged); //fertility is annoying b/c it fires off an event when this changes. normally i'd just make the property there a read, but it needs to know the previous data //and that's not always easy to get unless stored there and just copied when this updates. bonusFertility = new BytePerkModifier(0, 0, 50, FertilityChanged); pregnancySpeedModifier = new SignedBytePerkModifier(0, -5, 10); minButtSize = new BytePerkModifier(Butt.TIGHT, Butt.TIGHT, Butt.INCONCEIVABLY_BIG, MinButtChanged); minHipsSize = new BytePerkModifier(0, 0, Hips.INHUMANLY_WIDE, MinHipsChanged); }