private static void HandlePlayerCondition(CharacterInstance ch, ApplyTypes applyType, int mod) { var pc = (PlayerInstance)ch; switch (applyType) { case ApplyTypes.Full: if (!ch.IsNpc()) { pc.PlayerData.ConditionTable[ConditionTypes.Full] = (pc.PlayerData.ConditionTable[ConditionTypes.Full] + mod).GetNumberThatIsBetween(0, 48); } break; case ApplyTypes.Thirst: if (!ch.IsNpc()) { pc.PlayerData.ConditionTable[ConditionTypes.Thirsty] = (pc.PlayerData.ConditionTable[ConditionTypes.Thirsty] + mod).GetNumberThatIsBetween(0, 48); } break; case ApplyTypes.Drunk: if (!ch.IsNpc()) { pc.PlayerData.ConditionTable[ConditionTypes.Drunk] = (pc.PlayerData.ConditionTable[ConditionTypes.Drunk] + mod).GetNumberThatIsBetween(0, 48); } break; case ApplyTypes.Blood: if (!ch.IsNpc()) { pc.PlayerData.ConditionTable[ConditionTypes.Bloodthirsty] = (pc.PlayerData.ConditionTable[ConditionTypes.Bloodthirsty] + mod).GetNumberThatIsBetween(0, ch.Level + 10); } break; } }
private static void AddAffectToTarget(CharacterInstance ch, int sn, int level, ApplyTypes appLocation) { int duration = 4 * level * GameConstants.GetConstant <int>("AffectDurationConversionValue"); var af = new AffectData { SkillNumber = sn, Duration = duration, Location = appLocation, Modifier = -1 }; ch.AddAffect(af); }