/// <summary> /// The implementing class must handle modifiers to stats under its control /// </summary> /// <param name="modifier">Modifier for stats</param> public void ProcessModifier(IModifiesStats modifier) { foreach (var a in modifier.Modifiers) { CharacterSkill sk; if (this.skills.TryGetValue(a.StatisticName, out sk)) { sk.AddModifier(a); } } }
/// <summary> /// The implementing class must handle modifiers to stats under its control /// </summary> /// <param name="modifier">Modifier for stats</param> public void ProcessModifier(IModifiesStats modifier) { foreach (var a in modifier.Modifiers) { CharacterSkill sk; if (this.skills.TryGetValue(a.StatisticName, out sk)) { ShortLog.DebugFormat("Modifying Skill ({0}) by {1}", a.StatisticName, a.Modifier.ToString()); sk.AddModifier(a); } } }
/// <summary> /// The implementing class must handle modifiers to stats under its control /// </summary> /// <param name="modifier">Modifier for stats</param> public void ProcessModifier(IModifiesStats modifier) { foreach (var m in modifier.Modifiers) { switch (m.StatisticName) { case CombatManeuverDefenseStatName: this.CombatManeuverDefense.AddModifier(m); break; case CombatManeuverBonusStatName: this.CombatManeuverBonus.AddModifier(m); break; } } }
/// <summary> /// The implementing class must handle modifiers to stats under its control /// </summary> /// <param name="modifier">Modifier for stats</param> public void ProcessModifier(IModifiesStats modifier) { foreach (var s in modifier.Modifiers) { switch (s.StatisticName) { case ArmorClassStatName: this.armor.AddModifier(s); break; case FortitudeSaveStatName: this.fortitudeSave.AddModifier(s); break; case ReflexSaveStatName: this.reflexSave.AddModifier(s); break; case WillSaveStatName: this.willSave.AddModifier(s); break; } } }
/// <summary> /// Processes the stat modifier. This takes anything that modifies stats and relays it to interested classes that might want to monitor for it /// TODO: Better mechanism would be a call back whenever a stat modifier is sent to the character sheet /// </summary> /// <param name="modifier">Modifier that can change stats.</param> public void ProcessStatModifier(IModifiesStats modifier) { SkillRanks.ProcessModifier(modifier); this.Defense.ProcessModifier(modifier); this.Offense.ProcessModifier(modifier); }
/// <summary> /// The implementing class must handle modifiers to stats under its control /// </summary> /// <param name="modifier">Modifier for stats</param> public void ProcessModifier(IModifiesStats modifier) { throw new NotImplementedException(); }