/// <summary> /// Add modifiers. /// </summary> /// <param name="stage"> /// The stage during character update this is called. /// </param> /// <param name="addModifier"> /// Add modifiers by calling this method. /// </param> /// <param name="character"> /// The character to add modifiers for. /// </param> protected override void AddModifiers(CharacterUpdateStage stage, Action<Modifier> addModifier, Character character) { base.AddModifiers(stage, addModifier, character); addModifier(new Modifier(this, character[ScoreType.Reflex], 2)); addModifier(new Modifier(this, character[ScoreType.Athletics], 4)); }
/// <summary> /// Add modifiers. /// </summary> /// <param name="stage"> /// The stage during character update this is called. /// </param> /// <param name="addModifier"> /// Add modifiers by calling this method. /// </param> /// <param name="character"> /// The character to add modifiers for. /// </param> protected override void AddModifiers(CharacterUpdateStage stage, Action<Modifier> addModifier, Character character) { base.AddModifiers(stage, addModifier, character); addModifier(new Modifier(this, character[ScoreType.Fortitude], 2)); addModifier(new Modifier(this, character[ScoreType.Science], 4)); }
/// <summary> /// Add modifiers based on this score's current value(s). /// </summary> /// <param name="stage"> /// The stage during character update this is called. /// </param> /// <param name="addModifier"> /// Add modifiers by calling this method. /// </param> /// <param name="character"> /// The character to add modifiers for. /// </param> protected override void AddModifiers(CharacterUpdateStage stage, Action<Modifier> addModifier, Character character) { base.AddModifiers(stage, addModifier, character); addModifier(new Modifier(character[ScoreType.HitPoints], this, character[ScoreType.HitPoints].Total / 2)); }
/// <summary> /// Add modifiers. /// </summary> /// <param name="stage"> /// The stage during character update this is called. /// </param> /// <param name="addModifier"> /// Add modifiers by calling this method. /// </param> /// <param name="character"> /// The character to add modifiers for. /// </param> protected override void AddModifiers(CharacterUpdateStage stage, Action<Modifier> addModifier, Character character) { base.AddModifiers(stage, addModifier, character); addModifier(new Modifier(character[ScoreType.Speed], character[MovementMode], character[ScoreType.Speed].Total)); addModifier(new Modifier(this, character[MovementMode], 0, string.Format("see {0}", Name))); }
/// <summary> /// Add the ability score modifier and half level. /// </summary> /// <param name="stage"> /// The stage during which this is called. /// </param> /// <param name="addModifier"> /// Add modifiers by calling this method. /// </param> /// <param name="character"> /// The <see cref="Character"/> to add modifiers for. /// </param> protected override void AddModifiers(CharacterUpdateStage stage, Action<Modifier> addModifier, Character character) { base.AddModifiers(stage, addModifier, character); addModifier(new Modifier(character[ScoreType.Level], this, character[ScoreType.Level].Total)); addModifier(new Modifier(character[abilityScore], this, ((AbilityScore) character[abilityScore]).Modifier)); }
/// <summary> /// Add modifiers. /// </summary> /// <param name="stage"> /// The stage during character update this is called. /// </param> /// <param name="addModifier"> /// Add modifiers by calling this method. /// </param> /// <param name="character"> /// The character to add modifiers for. /// </param> protected override void AddModifiers(CharacterUpdateStage stage, Action<Modifier> addModifier, Character character) { base.AddModifiers(stage, addModifier, character); addModifier(new Modifier(this, character[ScoreType.Reflex], 2)); addModifier(new Modifier(this, character[ScoreType.Mechanics], 4)); addModifier(new Modifier(this, character[ScoreType.ElectricityResistance], 10)); }
/// <summary> /// Add the specified modifiers. /// </summary> /// <param name="stage"> /// The character update stage this is called. /// </param> /// <param name="addModifier"> /// Add modifiers by calling this method. /// </param> /// <param name="character"> /// The character to add modifiers for. /// </param> protected override void AddModifiers(CharacterUpdateStage stage, Action<Modifier> addModifier, Character character) { base.AddModifiers(stage, addModifier, character); foreach (ScoreType scoreType in ScoreTypes) { addModifier(new Modifier(character[scoreType], this, character[scoreType].Total)); } }
/// <summary> /// Check that Effect has been set. /// </summary> /// <param name="stage"> /// The stage when this is called. /// </param> /// <param name="addModifier"> /// Add modifiers by calling this method. /// </param> /// <param name="character"> /// The <see cref="Character"/> to add modifiers for. /// </param> protected override void AddModifiers(CharacterUpdateStage stage, Action<Modifier> addModifier, Character character) { base.AddModifiers(stage, addModifier, character); if (!HasEffect) { throw new InvalidOperationException(string.Format("Effect not set in power '{0}'. Call SetEffect().", Name)); } }
/// <summary> /// Add modifiers. /// </summary> /// <param name="stage"> /// The stage during character update this is called. /// </param> /// <param name="addModifier"> /// Add modifiers by calling this method. /// </param> /// <param name="character"> /// The character to add modifiers for. /// </param> protected override void AddModifiers(CharacterUpdateStage stage, Action<Modifier> addModifier, Character character) { base.AddModifiers(stage, addModifier, character); addModifier(new Modifier(this, character[ScoreType.Stealth], 4)); addModifier(new Modifier(this, character[ScoreType.Reflex], 2)); if (!character.IsWearingHeavyArmor()) { addModifier(new Modifier(this, character[ScoreType.Speed], 1)); } }
/// <summary> /// Add modifiers based on this score's current value(s). /// </summary> /// <param name="stage"> /// The stage during character update this is called. /// </param> /// <param name="addModifier"> /// Add modifiers by calling this method. /// </param> /// <param name="character"> /// The character to add modifiers for. /// </param> protected override void AddModifiers(CharacterUpdateStage stage, Action<Modifier> addModifier, Character character) { base.AddModifiers(stage, addModifier, character); // Add the AC bonus addModifier(new Modifier(this, character[ScoreType.ArmorClass], ArmorBonus)); if (SpeedPenalty < 0) { addModifier(new Modifier(this, character[ScoreType.Speed], SpeedPenalty)); } }
/// <summary> /// Add modifiers. /// </summary> /// <param name="stage"> /// The stage during character update this is called. /// </param> /// <param name="addModifier"> /// Add modifiers by calling this method. /// </param> /// <param name="character"> /// The character to add modifiers for. /// </param> protected override void AddModifiers(CharacterUpdateStage stage, Action<Modifier> addModifier, Character character) { base.AddModifiers(stage, addModifier, character); addModifier(new Modifier(this, character[ScoreType.Athletics], 4)); addModifier(new Modifier(this, character[ScoreType.Fortitude], 2)); if (character.IsWearingHeavyArmor()) { addModifier(new Modifier(this, character[ScoreType.Speed], 1)); } }
/// <summary> /// Add modifiers based on this score's current value(s). /// </summary> /// <param name="stage"> /// The stage during character update this is called. /// </param> /// <param name="addModifier"> /// Add modifiers by calling this method. /// </param> /// <param name="character"> /// The character to add modifiers for. /// </param> protected override void AddModifiers(CharacterUpdateStage stage, Action<Modifier> addModifier, Character character) { base.AddModifiers(stage, addModifier, character); // Add Con to hps addModifier(new Modifier(character[ScoreType.Constitution], this, character[ScoreType.Constitution].Total)); // At (Level - 1) * (hps per level) to hps addModifier(new Modifier(character[ScoreType.Level], character.HitPoints, (character.Level - 1) * HitPointsPerLevel)); }
/// <summary> /// Add modifiers based on this score's current value(s). /// </summary> /// <param name="stage"> /// The stage during character update this is called. /// </param> /// <param name="addModifier"> /// Add modifiers by calling this method. /// </param> /// <param name="character"> /// The character to add modifiers for. /// </param> protected override void AddModifiers(CharacterUpdateStage stage, Action<Modifier> addModifier, Character character) { base.AddModifiers(stage, addModifier, character); // Add the specified ability score's modfiier. addModifier(new Modifier(character[abilityScore], this, ((AbilityScore) character[abilityScore]).Modifier)); // Add the character's level. addModifier(new Modifier(character[ScoreType.Level], this, character[ScoreType.Level].Total)); }
/// <summary> /// Add modifiers. /// </summary> /// <param name="stage"> /// The stage during character update this is called. /// </param> /// <param name="addModifier"> /// Add modifiers by calling this method. /// </param> /// <param name="character"> /// The character to add modifiers for. /// </param> protected override void AddModifiers(CharacterUpdateStage stage, Action<Modifier> addModifier, Character character) { Weapon weapon; base.AddModifiers(stage, addModifier, character); weapon = character.GetHeldItem<Weapon>(Hand); if (weapon != null) { // Add the accuracy bonus addModifier(new Modifier(weapon, this, weapon.AccuracyBonus)); } }
/// <summary> /// Add modifiers. /// </summary> /// <param name="stage"> /// The stage during character update this is called. /// </param> /// <param name="addModifier"> /// Add modifiers by calling this method. /// </param> /// <param name="character"> /// The character to add modifiers for. /// </param> protected override void AddModifiers(CharacterUpdateStage stage, Action<Modifier> addModifier, Character character) { Weapon weapon; base.AddModifiers(stage, addModifier, character); weapon = character.GetHeldItem<Weapon>(Hand); if (weapon != null) { // Add the greatest ability score's modifier BonusHelper.AddGreatestScoreModifier(this, addModifier, character, weapon.BasicAttackAbilityScores); } }
/// <summary> /// Add modifiers based on this score's current value(s). /// </summary> /// <param name="stage"> /// The stage during character update this is called. /// </param> /// <param name="addModifier"> /// Add modifiers by calling this method. /// </param> /// <param name="character"> /// The character to add modifiers for. /// </param> protected override void AddModifiers(CharacterUpdateStage stage, Action<Modifier> addModifier, Character character) { // Add to Armor Class if (!character.IsWearingHeavyArmor()) { base.AddModifiers(stage, addModifier, character); } else { // Add half the character's level. addModifier(new Modifier(character[ScoreType.Level], this, character[ScoreType.Level].Total)); } }
/// <summary> /// Set the level score. /// </summary> /// <param name="stage"> /// The stage at which this is called. /// </param> /// <param name="addModifier"> /// Add modifiers by calling this method. /// </param> /// <param name="character"> /// The character to add modifiers for. /// </param> protected override void AddModifiers(CharacterUpdateStage stage, Action<Modifier> addModifier, Character character) { base.AddModifiers(stage, addModifier, character); // Set the level addModifier(new Modifier(this, character[ScoreType.Level], character.Level)); // Set the trained skill addModifier(new Modifier(this, character[TrainedSkill], 4)); }
/// <summary> /// Add the modifier to the modifier score. /// </summary> /// <param name="stage"> /// The stage during character update this is called. /// </param> /// <param name="addModifier"> /// Add modifiers by calling this method. /// </param> /// <param name="character"> /// The character to add modifiers for. This should not be modified directly. /// </param> /// <exception cref="ArgumentNullException"> /// Neither modifiers nor character can be null. /// </exception> protected override void AddModifiers(CharacterUpdateStage stage, Action<Modifier> addModifier, Character character) { base.AddModifiers(stage, addModifier, character); addModifier(new Modifier(this, character[ModifierScore], Modifier)); }
/// <summary> /// Ensure the character meets the minimum requirements for the power during the /// score updating phase. /// </summary> /// <param name="stage"> /// The character update stage at which this is called. /// </param> /// <param name="addModifier"> /// Add modifiers by calling this method. /// </param> /// <param name="character"> /// The <see cref="Character"/> to add modifiers for. /// </param> protected override void AddModifiers(CharacterUpdateStage stage, Action<Modifier> addModifier, Character character) { base.AddModifiers(stage, addModifier, character); OriginChoice level2CriticalHitBenefitOrigin; criticals.Clear(); if (character.Level >= 2) { level2CriticalHitBenefitOrigin = ((Level02) character.Levels.OfType<Level02>().First()).CriticalHitBenefitOrigin; if (level2CriticalHitBenefitOrigin == OriginChoice.Primary) { criticals.Add(character.PrimaryOrigin.CriticalHitBenefit); } else { criticals.Add(character.SecondaryOrigin.CriticalHitBenefit); } } else if (character.Level >= 6) { criticals.Add(character.PrimaryOrigin.CriticalHitBenefit); criticals.Add(character.SecondaryOrigin.CriticalHitBenefit); } }
/// <summary> /// Add the bloodied value to the amout of hit points healed. /// </summary> /// <param name="stage"> /// The character update stage this is called. /// </param> /// <param name="addModifier"> /// Add modifiers by calling this method. /// </param> /// <param name="character"> /// The character to add modifiers for. /// </param> protected override void AddModifiers(CharacterUpdateStage stage, Action<Modifier> addModifier, Character character) { base.AddModifiers(stage, addModifier, character); addModifier(new Modifier(character[ScoreType.Bloodied], HitPointsHealed, character[ScoreType.Bloodied].Total)); }
/// <summary> /// Set the level score. /// </summary> /// <param name="stage"> /// The stage at which this is called. /// </param> /// <param name="addModifier"> /// Add modifiers by calling this method. /// </param> /// <param name="character"> /// The character to add modifiers for. /// </param> protected override void AddModifiers(CharacterUpdateStage stage, Action<Modifier> addModifier, Character character) { base.AddModifiers(stage, addModifier, character); }
/// <summary> /// Add half level to the existing modifiers. /// </summary> /// <param name="stage"> /// The character update stage this is called. /// </param> /// <param name="addModifier"> /// Add modifiers by calling this method. /// </param> /// <param name="character"> /// The character to add modifiers for. /// </param> protected override void AddModifiers(CharacterUpdateStage stage, Action<Modifier> addModifier, Character character) { base.AddModifiers(stage, addModifier, character); addModifier(new Modifier(character[ScoreType.Level], this, LevelMulitplier * character.Level)); }
/// <summary> /// Add modifiers. /// </summary> /// <param name="stage"> /// The stage during character update this is called. /// </param> /// <param name="addModifier"> /// Add modifiers by calling this method. /// </param> /// <param name="character"> /// The character to add modifiers for. /// </param> protected override void AddModifiers(CharacterUpdateStage stage, Action<Modifier> addModifier, Character character) { base.AddModifiers(stage, addModifier, character); AbilityScore attackingAbilityScore; // Add the ability score modifier. foreach(ScoreType score in abilityScores) { attackingAbilityScore = (AbilityScore)character[score]; addModifier(new Modifier(attackingAbilityScore, this, attackingAbilityScore.Modifier)); } }
/// <summary> /// Add modifiers. /// </summary> /// <param name="stage"> /// The stage during character update this is called. /// </param> /// <param name="addModifier"> /// Add modifiers by calling this method. /// </param> /// <param name="character"> /// The character to add modifiers for. /// </param> /// <exception cref="InvalidOperationException"> /// The character must be wielding a weapon. /// </exception> protected override void AddModifiers(CharacterUpdateStage stage, Action<Modifier> addModifier, Character character) { Weapon weapon; base.AddModifiers(stage, addModifier, character); weapon = character.GetHeldItem<Weapon>(Hand); if (weapon != null) { SetDice(new Dice(Multiplier * weapon.Damage.Number, weapon.Damage.DiceType)); } // Do nothing if the weapon is not present. Certain powers like a ranger's TwinStrike may // not be available depending on certain weapon configurations. }
/// <summary> /// Add modifiers based on this score's current value(s). /// </summary> /// <param name="stage"> /// The stage during character update this is called. /// </param> /// <param name="addModifier"> /// Add modifiers by calling this method. /// </param> /// <param name="character"> /// The character to add modifiers for. /// </param> protected override void AddModifiers(CharacterUpdateStage stage, Action<Modifier> addModifier, Character character) { base.AddModifiers(stage, addModifier, character); foreach (ScoreType scoreType in ScoreTypeHelper.AbilityScores) { addModifier(new Modifier(this, character[scoreType], scores[scoreType])); } }
/// <summary> /// Add modifiers based on this score's current value(s). /// </summary> /// <param name="stage"> /// The stage during character update this is called. /// </param> /// <param name="addModifier"> /// Add modifiers by calling this method. /// </param> /// <param name="character"> /// The character to add modifiers for. /// </param> protected override void AddModifiers(CharacterUpdateStage stage, Action<Modifier> addModifier, Character character) { AbilityScore abilityScoreWithLargestModifier; AbilityScore currentAbilityScore; base.AddModifiers(stage, addModifier, character); abilityScoreWithLargestModifier = null; foreach (ScoreType abilityScore in abilityScores) { currentAbilityScore = (AbilityScore) character[abilityScore]; if (abilityScoreWithLargestModifier == null) { abilityScoreWithLargestModifier = currentAbilityScore; } else if(currentAbilityScore.Modifier> abilityScoreWithLargestModifier.Modifier) { abilityScoreWithLargestModifier = currentAbilityScore; } } addModifier(new Modifier(abilityScoreWithLargestModifier,this, abilityScoreWithLargestModifier.Modifier)); // Add the character's level. addModifier(new Modifier(character[ScoreType.Level], this, character[ScoreType.Level].Total)); }