protected void Attack(int partyMemberNo) { ChangeState(CombatBehaviours.CharacterState.Attack); PartyMemberControllers[partyMemberNo].Damage(CombatCalculator.GetEnemyAttackDamage(this, PartyMemberControllers[partyMemberNo])); affectedPartyMembersNo.Add(partyMemberNo); }
public void DoCombatTest() { var result = CombatCalculator.DoCombat( new Fleet() { Ships = new List <Ships>() { new Ships() { Ship = ShipUtils.ShipStats[ShipUtils.Interceptor], Count = 10 } } }, new Fleet() { Ships = new List <Ships>() { new Ships() { Ship = ShipUtils.ShipStats[ShipUtils.Interceptor], Count = 10 } } } ); }
public void attackers_strength_modifier_adds_to_roll_when_attacking() { // +1 strength modifier calculator = new CombatCalculator(new Character(strength: 12)); var opponent = new Character(armorClass: 10); calculator.Attack(opponent, 9).ShouldEqual(AttackResult.Hit); }
public void attackers_strength_modifier_adds_to_damage_dealt_when_attacking() { // +1 strength modifier calculator = new CombatCalculator(new Character(strength: 12)); var opponent = new Character(armorClass: 10, hitPoints: 5); calculator.Attack(opponent, 10); opponent.HitPoints.ShouldEqual(3); }
public void Attack(int enemyNo) { ChangeState(CombatBehaviours.CharacterState.Attack); enemyControllers[enemyNo].Damage(CombatCalculator.GetPartyMemberAttackDamage(this, enemyControllers[enemyNo])); enemyControllers[enemyNo].IsTarget = false; enemyControllers[enemyNo].IsSelected = false; affectedEnemiesNo.Add(enemyNo); }
public static List <IEffect> getCommand(FullCombatCharacter source, List <FullCombatCharacter> targets, CombatData combatData) { List <IEffect> effects = new List <IEffect>(); float coefficient = 1.0f; FullCombatCharacter target = BasicAbilityProcessing.identifyWeakestTarget(targets); int dmg = (int)((CombatCalculator.getNormalAttackValue(source) * 5 / target.vitality)); if (target.inflictDamage(ref dmg) == FullCombatCharacter.HitEffect.Unbalance) { coefficient = coefficient * 2; } effects.Add(new Effect(EffectTypes.Attack, source.combatUniq, string.Empty, 0)); effects.Add(new Effect(EffectTypes.DealDamage, target.combatUniq, string.Empty, dmg)); effects.Add(new Effect(EffectTypes.Message, 0, source.name + " has attacked " + target.name + " for " + dmg.ToString() + " damage!", 0)); GeneralProcessor.calculateNextAttackTime(source, coefficient, combatData); return(effects); }
protected void CalculateMoveOrder() { moveOrder = CombatCalculator.GetMoveOrder(partyMemberControllers, enemyControllers); activeCharacter = 0; }
public void Setup() { calculator = new CombatCalculator(new Character()); }
public void opponents_dexterity_modifier_is_added_to_armor_class_when_attacking() { // A strength of 10 will give no bonus; calculator = new CombatCalculator(new Character(strength: 10)); // A dexterity of 12 will give a +1 bonus. var opponent = new Character(armorClass: 10, dexterity: 12); calculator.Attack(opponent, 10).ShouldEqual(AttackResult.Miss); }
public void minimum_damage_on_hit_when_attacking_is_1() { // -5 strength modifier calculator = new CombatCalculator(new Character(strength: 1)); var opponent = new Character(armorClass: 10, hitPoints: 5); calculator.Attack(opponent, 15); opponent.HitPoints.ShouldEqual(4); }