protected override void PrepareEffects(EffectActionsList effects) { effects .WillRemoveEffect <StatusEffectBleeding>(intensityToRemove: 0.30) // remove bleeding (partially) .WillRemoveEffect <StatusEffectLaceration>(intensityToRemove: 0.10) // remove laceration (partially) .WillAddEffect <StatusEffectHealingSlow>(intensity: 0.10); // add small healing effect }
protected override void PrepareEffects(EffectActionsList effects) { effects .WillRemoveEffect <StatusEffectRadiationPoisoning >(intensityToRemove: 0.10) // remove accumulated radiation .WillAddEffect <StatusEffectProtectionRadiation>(intensity: 0.50); // add radiation protection }
protected sealed override void PrepareProtoItemWithFreshness() { base.PrepareProtoItemWithFreshness(); this.PrepareProtoItemMedical(); var effects = new EffectActionsList(); if (this.CooldownDuration > 0) { if (this.CooldownDuration > StatusEffectMedicalCooldown.MaxDuration) { Logger.Error("Exceeding maximum medical cooldown duration in " + this.Id + ": " + this.CooldownDuration + " seconds." + Environment.NewLine + "Maximum allowed: " + StatusEffectMedicalCooldown.MaxDuration + " seconds"); } // The medical cooldown status effect is added automatically when using this medicine // It's hidden in the list of status effects in the tooltip // because the cooldown duration is displayed separately in the tooltip. effects.WillAddEffect <StatusEffectMedicalCooldown>( intensity: Math.Min(this.CooldownDuration, StatusEffectMedicalCooldown.MaxDuration) / StatusEffectMedicalCooldown.MaxDuration, isHidden: true); } this.PrepareEffects(effects); this.Effects = effects.ToReadOnly(); }
protected override void PrepareEffects(EffectActionsList effects) { effects .WillAddEffect <StatusEffectHealingSlow>(intensity: 0.40) // adds health regeneration .WillAddEffect <StatusEffectHealingFast>(intensity: 0.10) // 1 seconds (+10 HP each second) .WillRemoveEffect <StatusEffectNausea>() // removes nausea .WillRemoveEffect <StatusEffectToxins>(intensityToRemove: 0.1); }
public override float WaterRestore => - 5; // dehydrates protected override void PrepareEffects(EffectActionsList effects) { effects .WillAddEffect <StatusEffectDrunk>(intensity: 0.20) .WillAddEffect <StatusEffectHealingSlow>(intensity: 0.25) .WillRemoveEffect <StatusEffectToxins>(intensityToRemove: 0.10) .WillRemoveEffect <StatusEffectRadiationPoisoning>(intensityToRemove: 0.10); }
protected override void PrepareEffects(EffectActionsList effects) { effects // adds food poisoning unless you have artificial stomach .WillAddEffect <StatusEffectNausea>(intensity: 0.50, condition: context => !context.Character.SharedHasPerk( StatName.PerkEatSpoiledFood)); }
protected sealed override void PrepareProtoItemWithFreshness() { base.PrepareProtoItemWithFreshness(); this.PrepareProtoItemFood(); var effects = new EffectActionsList(); this.PrepareEffects(effects); this.Effects = effects.ToReadOnly(); }
protected override void PrepareEffects(EffectActionsList effects) { effects // adds splinted leg status effect when player has a broken leg status effect .WillAddEffect <StatusEffectSplintedLeg>( condition: context => context.Character.SharedHasStatusEffect <StatusEffectBrokenLeg>(), isHidden: true) // and remove broken leg .WillRemoveEffect <StatusEffectBrokenLeg>(); }
protected override void PrepareEffects(EffectActionsList effects) { // shouldn't be eaten obviously :) effects // adds toxins .WillAddEffect <StatusEffectToxins>() // adds food poisoning unless you have artificial stomach .WillAddEffect <StatusEffectNausea>(condition: context => !context.Character.SharedHasPerk( StatName.PerkEatSpoiledFood)); }
protected override void PrepareEffects(EffectActionsList effects) { effects // removes any overdose instantly .WillRemoveEffect <StatusEffectMedicineOveruse>() // this effect prevents player from quickly putting armor back .WillAddEffect <StatusEffectPeredozinApplication>(isHidden: true) // this effect will prevent usage more than once in 10 minutes .WillAddEffect <StatusEffectAnalBlockage>(); }
protected sealed override void PrepareProtoItem() { base.PrepareProtoItem(); var effects = new EffectActionsList(); this.PrepareEffects(effects); this.Effects = effects.ToReadOnly(); this.PrepareProtoItemConsumable(); }
protected override void PrepareEffects(EffectActionsList effects) { effects .WillAddEffect <StatusEffectHealingSlow>(intensity: 0.70) // 70 seconds (70hp) .WillAddEffect <StatusEffectHealingFast>(intensity: 0.10) // 1 seconds (+10 HP each second) .WillRemoveEffect <StatusEffectBleeding>() .WillRemoveEffect <StatusEffectNausea>() // adds splinted leg status effect when player has a broken leg status effect .WillAddEffect <StatusEffectSplintedLeg>( condition: context => context.Character.SharedHasStatusEffect <StatusEffectBrokenLeg>(), isHidden: true) // and remove broken leg .WillRemoveEffect <StatusEffectBrokenLeg>(); }
protected sealed override void PrepareProtoItemWithFreshness() { base.PrepareProtoItemWithFreshness(); this.PrepareProtoItemMedical(); var effects = new EffectActionsList(); if (this.CooldownDuration > 0) { // medical cooldown is added automatically and it's hidden // (the cooldown duration is displayed separately in the tooltip) effects.WillAddEffect <StatusEffectMedicalCooldown>( intensity: Math.Min(this.CooldownDuration / StatusEffectMedicalCooldown.MaxDuration, 1), isHidden: true); } this.PrepareEffects(effects); this.Effects = effects.ToReadOnly(); }
protected override void PrepareEffects(EffectActionsList effects) { effects .WillAddEffect <StatusEffectHealthyFood>(intensity: 0.05); }
protected override void PrepareEffects(EffectActionsList effects) { effects .WillAddEffect <StatusEffectHealingSlow>(intensity: 0.07); // 7 seconds (7hp) }
protected override void PrepareEffects(EffectActionsList effects) { effects .WillAddEffect <StatusEffectStrength>(intensity: 0.30); // adds strength boost }
protected override void PrepareEffects(EffectActionsList effects) { effects .WillRemoveEffect <StatusEffectRadiationPoisoning>(intensityToRemove: 0.30); }
public override float WaterRestore => - 5; // dehydrates protected override void PrepareEffects(EffectActionsList effects) { // 4.5 minutes (so 2 vodka bottles will be almost 10 minutes, so after the third bottle you will be vomiting) effects .WillAddEffect <StatusEffectDrunk>(intensity: 0.45); }
protected override void PrepareEffects(EffectActionsList effects) { effects .WillAddEffect <StatusEffectSavoryFood>(intensity: 0.20); }
protected override void PrepareEffects(EffectActionsList effects) { effects .WillAddEffect <StatusEffectHealingFast>(intensity: 0.50); // adds fast health regeneration }
protected override void PrepareEffects(EffectActionsList effects) { effects .WillAddEffect <StatusEffectEnergyRush>(intensity: 0.50); }
public override float WaterRestore => 3; // doesn't hydrate much, because of alcohol protected override void PrepareEffects(EffectActionsList effects) { effects .WillAddEffect <StatusEffectDrunk>(intensity: 0.25); }
protected override void PrepareEffects(EffectActionsList effects) { effects .WillRemoveEffect <StatusEffectToxins>(intensityToRemove: 0.10) // remove toxins .WillAddEffect <StatusEffectProtectionToxins>(intensity: 0.50); // add toxin protection }
protected override void PrepareEffects(EffectActionsList effects) { effects .WillRemoveEffect <StatusEffectNausea>(); // removes nausea }
protected override void PrepareEffects(EffectActionsList effects) { effects .WillAddEffect <StatusEffectHigh>(intensity: 0.50); // adds high effect }
protected override void PrepareEffects(EffectActionsList effects) { effects .WillRemoveEffect <StatusEffectToxins>(intensityToRemove: 0.05); }
protected virtual void PrepareEffects(EffectActionsList effects) { }
protected override void PrepareEffects(EffectActionsList effects) { effects .WillRemoveEffect <StatusEffectMutation>(); // removes mutation }
protected override void PrepareEffects(EffectActionsList effects) { effects .WillAddEffect <StatusEffectNausea>(intensity: 0.50); // adds food poisoning }
protected override void PrepareEffects(EffectActionsList effects) { effects .WillRemoveEffect <StatusEffectPain>() // removes all pain .WillAddEffect <StatusEffectProtectionPain>(intensity: 0.50); // adds pain blocking }