public void Combat_CantFireWhenNoCharge() { MockEquipmentRepository mor = new MockEquipmentRepository(); mor.Mock_SetWeaponProperties(100, 10, 89); TestPreparedWorld tpw = TestUtils.CreateWorldWithBotsReadyForCombat(4, mor); tpw.Engine.Mock_DirectSetBotCharge(tpw.Bot1.PublicId, 0); var eur = tpw.Bot1.FireWeapon(4, "Gun_Turret"); Assert.Equal(UsageEndState.Fail_NoCharge, eur.State); }
public void Weapon_HasCorrectInitialAmmoAllocation() { MockEquipmentRepository mor = new MockEquipmentRepository(); mor.Mock_SetWeaponProperties(100, 11); TestPreparedWorld tpw = TestUtils.CreateWorldWithBotsReadyForCombat(4, mor); var ae = tpw.Bot1.GetEquipment("Gun_Turret"); int initialRounds = tpw.Engine.Mock_GetEquipmentInstanceById(ae.InstanceId).RoundsRemaining; Assert.Equal(11, initialRounds); }
public void Combat_FireProjectileWeaponHitsTargetDoesDamage() { MockEquipmentRepository mor = new MockEquipmentRepository(); mor.Mock_SetWeaponProperties(100); TestPreparedWorld tpw = TestUtils.CreateWorldWithBotsReadyForCombat(4, mor); int beforeLife = tpw.Engine.GetMappedBotById(tpw.GetBot2EngineId()).LifeRemaining; tpw.Engine.PerformNextTick(); var eur = tpw.Bot1.FireWeapon(4, "Gun_Turret"); Assert.True(eur.State == UsageEndState.Success, "The weapon did not fire correctly"); int afterLife = tpw.Engine.GetMappedBotById(tpw.GetBot2EngineId()).LifeRemaining; Assert.True(afterLife < beforeLife); }
public void Combat_VictimRecievesDamageNoteNextTurn() { MockEquipmentRepository mor = new MockEquipmentRepository(); mor.Mock_SetWeaponProperties(100); TestPreparedWorld tpw = TestUtils.CreateWorldWithBotsReadyForCombat(4, mor); tpw.Engine.Mock_SetBotLife(tpw.Bot2.PublicId, 1000); tpw.Engine.PerformNextTick(); var eur = tpw.Bot1.FireWeapon(4, "Gun_Turret"); Assert.True(eur.State == UsageEndState.Success, "The weapon did not fire correctly"); tpw.Engine.PerformNextTick(); var ad = tpw.Bot2.Mock_GetLTR(); Assert.NotNull(ad); Assert.True(ad.Events.Count == 1, "There should have been a fire event"); }
public void Combat_FireProjectileWeapon_ConsumesCharge() { MockEquipmentRepository mor = new MockEquipmentRepository(); mor.Mock_SetWeaponProperties(100, 10, 89); mor.Mock_SetPowerPackProperties(123); TestPreparedWorld tpw = TestUtils.CreateWorldWithBotsReadyForCombat(4, mor); var ae = tpw.Bot1.GetEquipment("Gun_Turret"); var mo = tpw.Engine.Mock_GetBotMapOBjectByPublicId(tpw.Bot1.PublicId); int charge = mo.ChargeRemaining; var eur = tpw.Bot1.FireWeapon(4, "Gun_Turret"); int charge2 = mo.ChargeRemaining; Assert.True(eur.State == UsageEndState.Success, "The weapon did not fire correctly - " + eur.State.ToString()); Assert.True(charge > charge2, "No charge was consumed when the weapon was fired"); Assert.Equal(charge - charge2, 89); }
public void Combat_FireProjectileWeaponHitsTargetGeneratesMessage() { MockEquipmentRepository mor = new MockEquipmentRepository(); mor.Mock_SetWeaponProperties(100); TestPreparedWorld tpw = TestUtils.CreateWorldWithBotsReadyForCombat(4, mor); int messageRecieved = 0; tpw.HubUsed.LookFor <Message_Ui>(uim => { if (uim.SubKind == KnownSubkinds.WeaponFire) { messageRecieved++; } }); tpw.Engine.PerformNextTick(); var eur = tpw.Bot1.FireWeapon(4, "Gun_Turret"); Assert.Equal(1, messageRecieved); }