Exemple #1
0
 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
 }
Exemple #3
0
        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);
 }
Exemple #5
0
        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);
        }
Exemple #6
0
 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));
 }
Exemple #7
0
        protected sealed override void PrepareProtoItemWithFreshness()
        {
            base.PrepareProtoItemWithFreshness();
            this.PrepareProtoItemFood();

            var effects = new EffectActionsList();

            this.PrepareEffects(effects);
            this.Effects = effects.ToReadOnly();
        }
Exemple #8
0
 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>();
 }
Exemple #9
0
 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>();
 }
Exemple #11
0
        protected sealed override void PrepareProtoItem()
        {
            base.PrepareProtoItem();

            var effects = new EffectActionsList();

            this.PrepareEffects(effects);
            this.Effects = effects.ToReadOnly();

            this.PrepareProtoItemConsumable();
        }
Exemple #12
0
 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();
        }
Exemple #14
0
 protected override void PrepareEffects(EffectActionsList effects)
 {
     effects
     .WillAddEffect <StatusEffectHealthyFood>(intensity: 0.05);
 }
Exemple #15
0
 protected override void PrepareEffects(EffectActionsList effects)
 {
     effects
     .WillAddEffect <StatusEffectHealingSlow>(intensity: 0.07);    // 7 seconds (7hp)
 }
Exemple #16
0
 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);
 }
Exemple #18
0
        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);
        }
Exemple #19
0
 protected override void PrepareEffects(EffectActionsList effects)
 {
     effects
     .WillAddEffect <StatusEffectSavoryFood>(intensity: 0.20);
 }
Exemple #20
0
 protected override void PrepareEffects(EffectActionsList effects)
 {
     effects
     .WillAddEffect <StatusEffectHealingFast>(intensity: 0.50);    // adds fast health regeneration
 }
Exemple #21
0
 protected override void PrepareEffects(EffectActionsList effects)
 {
     effects
     .WillAddEffect <StatusEffectEnergyRush>(intensity: 0.50);
 }
Exemple #22
0
        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);
 }
Exemple #27
0
 protected virtual void PrepareEffects(EffectActionsList effects)
 {
 }
Exemple #28
0
 protected override void PrepareEffects(EffectActionsList effects)
 {
     effects
     .WillRemoveEffect <StatusEffectMutation>();    // removes mutation
 }
Exemple #29
0
 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
 }