public void CharacterUsesNonTargetingSense_CharacterCanDetermineGeneralLocationOfOfTarget() { Hearing.PerceptionModifer = 7; LocationPrecision location = Hearing.DetermineLocationOfTarget(); Assert.AreEqual(LocationPrecision.GeneralLocation, location); }
public void ModifyCombatValuesBasedOnAbilityToSeeTarget() { if (PerceptionModier == null) { PerceptionModier = new PerceptionModier(); } else { PerceptionModier.RemoveModifierFrom(Character); } Attack attack = Character.ActiveManuever as Attack; LocationPrecision precision = DetermineLocationOfTarget(attack?.Defender); switch (precision) { case LocationPrecision.CantPercieveLocation: if (attack == null || attack.Ranged) { PerceptionModier.OCV.Multiplier = 0; PerceptionModier.OCV.ModiferAmount = -Character.OCV.CurrentValue; PerceptionModier.DCV.Multiplier = .5; } else { PerceptionModier.OCV.Multiplier = .5; PerceptionModier.DCV.Multiplier = .5; PerceptionModier.OCV.ModiferAmount = 0; PerceptionModier.DCV.ModiferAmount = 0; } break; case LocationPrecision.GeneralLocation: if (attack == null || attack.Ranged) { PerceptionModier.OCV.Multiplier = 0.5; PerceptionModier.OCV.ModiferAmount = 0; PerceptionModier.DCV.Multiplier = 0; PerceptionModier.DCV.ModiferAmount = 0; } else { PerceptionModier.OCV.Multiplier = 0.5; PerceptionModier.OCV.ModiferAmount = 0; PerceptionModier.DCV.Multiplier = 0; PerceptionModier.DCV.ModiferAmount = -1; } break; case LocationPrecision.ExactLocation: PerceptionModier.OCV.Multiplier = 0; PerceptionModier.OCV.ModiferAmount = 0; PerceptionModier.DCV.Multiplier = 0; PerceptionModier.DCV.ModiferAmount = 0; break; } PerceptionModier.ApplyModifierTo(Character); }
public void CharacterUsesSensewithNoRange_CharacterCannotDetermineLocationOfTarget() { LocationPrecision location = Touch.DetermineLocationOfTarget(); Assert.AreEqual(LocationPrecision.CantPercieveLocation, location); }
public void CharacterUsesTargetingSense_CharacterCanDetermineExactLocationOfOfTarget() { LocationPrecision location = Sight.DetermineLocationOfTarget(); Assert.AreEqual(LocationPrecision.ExactLocation, location); }