mirror of
https://github.com/psforever/PSF-LoginServer.git
synced 2026-01-19 18:44:45 +00:00
while it's still a dice roll, all tests currently implemented are capable of passing
This commit is contained in:
parent
1847b4bedf
commit
46cc8bae14
|
|
@ -131,15 +131,10 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
|||
startHeartbeat()
|
||||
|
||||
case SessionActor.PokeClient =>
|
||||
middlewareActor ! MiddlewareActor.Send(KeepAliveMessage())
|
||||
pokeClient()
|
||||
|
||||
case SessionActor.SetMode(newMode) =>
|
||||
if (mode != newMode) {
|
||||
logic.switchFrom(data.session)
|
||||
mode = newMode
|
||||
logic = mode.setup(data)
|
||||
}
|
||||
logic.switchTo(data.session)
|
||||
changeMode(newMode)
|
||||
|
||||
case packet =>
|
||||
parse(sender())(packet)
|
||||
|
|
@ -157,6 +152,19 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
|||
)
|
||||
}
|
||||
|
||||
private def pokeClient(): Unit = {
|
||||
middlewareActor ! MiddlewareActor.Send(KeepAliveMessage())
|
||||
}
|
||||
|
||||
private def changeMode(newMode: PlayerMode): Unit = {
|
||||
if (mode != newMode) {
|
||||
logic.switchFrom(data.session)
|
||||
mode = newMode
|
||||
logic = mode.setup(data)
|
||||
}
|
||||
logic.switchTo(data.session)
|
||||
}
|
||||
|
||||
private def parse(sender: ActorRef): Receive = {
|
||||
/* really common messages (very frequently, every life) */
|
||||
case packet: PlanetSideGamePacket =>
|
||||
|
|
|
|||
|
|
@ -31,17 +31,19 @@ import org.specs2.mutable.Specification
|
|||
|
||||
import scala.concurrent.duration._
|
||||
import net.psforever.objects.avatar.Avatar
|
||||
import net.psforever.objects.definition.ProjectileDefinition
|
||||
import net.psforever.objects.serverobject.terminals.implant.{ImplantTerminalMech, ImplantTerminalMechControl}
|
||||
import net.psforever.objects.sourcing.{PlayerSource, SourceEntry}
|
||||
import net.psforever.objects.vital.interaction.DamageInteraction
|
||||
import net.psforever.objects.vital.base.DamageResolution
|
||||
import net.psforever.objects.vital.projectile.ProjectileReason
|
||||
import net.psforever.objects.vital.resolution.ResolutionCalculations.Output
|
||||
|
||||
class DamageableTest extends Specification {
|
||||
val player1 = Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||
val pSource = PlayerSource(player1)
|
||||
val weaponA = Tool(GlobalDefinitions.phoenix) //decimator
|
||||
val projectileA = weaponA.Projectile
|
||||
val player1: Player = Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||
val pSource: PlayerSource = PlayerSource(player1)
|
||||
val weaponA: Tool = Tool(GlobalDefinitions.phoenix) //decimator
|
||||
val projectileA: ProjectileDefinition = weaponA.Projectile
|
||||
|
||||
"Damageable" should {
|
||||
"permit damage" in {
|
||||
|
|
@ -282,16 +284,20 @@ essentially, treat them more as generic entities whose object types are damageab
|
|||
see specific object type tests in relation to what those object types does above and beyond that during damage
|
||||
*/
|
||||
class DamageableEntityDamageTest extends ActorTest {
|
||||
val activityProbe: TestProbe = TestProbe()
|
||||
val avatarProbe: TestProbe = TestProbe()
|
||||
val buildingProbe: TestProbe = TestProbe()
|
||||
val guid = new NumberPoolHub(new MaxNumberSource(5))
|
||||
val zone = new Zone("test", new ZoneMap("test"), 0) {
|
||||
override def SetupNumberPools() = {}
|
||||
val zone: Zone = new Zone("test", new ZoneMap("test"), 0) {
|
||||
override def SetupNumberPools(): Unit = {}
|
||||
|
||||
GUID(guid)
|
||||
override def Activity: ActorRef = activityProbe.ref
|
||||
override def AvatarEvents: ActorRef = avatarProbe.ref
|
||||
}
|
||||
val building = Building("test-building", 1, 1, zone, StructureType.Facility) //guid=1
|
||||
val gen = Generator(GlobalDefinitions.generator) //guid=2
|
||||
val player1 =
|
||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=3
|
||||
val building: Building = Building("test-building", 1, 1, zone, StructureType.Facility) //guid=1
|
||||
val gen: Generator = Generator(GlobalDefinitions.generator) //guid=2
|
||||
val player1: Player = Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=3
|
||||
guid.register(building, 1)
|
||||
guid.register(gen, 2)
|
||||
guid.register(player1, 3)
|
||||
|
|
@ -300,17 +306,11 @@ class DamageableEntityDamageTest extends ActorTest {
|
|||
building.Amenities = gen
|
||||
gen.Position = Vector3(1, 0, 0)
|
||||
gen.Actor = system.actorOf(Props(classOf[GeneratorControl], gen), "generator-control")
|
||||
|
||||
val activityProbe = TestProbe()
|
||||
val avatarProbe = TestProbe()
|
||||
val buildingProbe = TestProbe()
|
||||
zone.Activity = activityProbe.ref
|
||||
zone.AvatarEvents = avatarProbe.ref
|
||||
building.Actor = buildingProbe.ref
|
||||
|
||||
val weapon = Tool(GlobalDefinitions.phoenix) //decimator
|
||||
val projectile = weapon.Projectile
|
||||
val resolved = DamageInteraction(
|
||||
val weapon: Tool = Tool(GlobalDefinitions.phoenix) //decimator
|
||||
val projectile: ProjectileDefinition = weapon.Projectile
|
||||
val resolved: DamageInteraction = DamageInteraction(
|
||||
SourceEntry(gen),
|
||||
ProjectileReason(
|
||||
DamageResolution.Hit,
|
||||
|
|
@ -319,14 +319,14 @@ class DamageableEntityDamageTest extends ActorTest {
|
|||
),
|
||||
Vector3(1,0,0)
|
||||
)
|
||||
val applyDamageTo = resolved.calculate()
|
||||
val applyDamageTo: Output = resolved.calculate()
|
||||
expectNoMessage(200 milliseconds)
|
||||
|
||||
"DamageableEntity" should {
|
||||
"handle taking damage" in {
|
||||
gen.Actor ! Vitality.Damage(applyDamageTo)
|
||||
val msg1 = avatarProbe.receiveOne(500 milliseconds)
|
||||
val msg2 = activityProbe.receiveOne(500 milliseconds)
|
||||
val msg1 = avatarProbe.receiveOne(5000 milliseconds)
|
||||
val msg2 = activityProbe.receiveOne(5000 milliseconds)
|
||||
msg1 match {
|
||||
case AvatarServiceMessage("test", AvatarAction.PlanetsideAttributeToAll(ValidPlanetSideGUID(2), 0, 3600)) => ()
|
||||
case _ => assert(false, "DamageableEntity:handle taking damage - player not messaged")
|
||||
|
|
@ -344,34 +344,34 @@ class DamageableEntityDamageTest extends ActorTest {
|
|||
|
||||
class DamageableEntityDestroyedTest extends ActorTest {
|
||||
val guid = new NumberPoolHub(new MaxNumberSource(5))
|
||||
val zone = new Zone("test", new ZoneMap("test"), 0) {
|
||||
override def SetupNumberPools() = {}
|
||||
val zone: Zone = new Zone("test", new ZoneMap("test"), 0) {
|
||||
override def SetupNumberPools(): Unit = {}
|
||||
|
||||
GUID(guid)
|
||||
}
|
||||
val avatarProbe = TestProbe()
|
||||
val avatarProbe: TestProbe = TestProbe()
|
||||
zone.AvatarEvents = avatarProbe.ref
|
||||
val activityProbe = TestProbe()
|
||||
val activityProbe: TestProbe = TestProbe()
|
||||
zone.Activity = activityProbe.ref
|
||||
val mech = ImplantTerminalMech(GlobalDefinitions.implant_terminal_mech) //guid=2
|
||||
val mech: ImplantTerminalMech = ImplantTerminalMech(GlobalDefinitions.implant_terminal_mech) //guid=2
|
||||
mech.Position = Vector3(1, 0, 0)
|
||||
mech.Actor = system.actorOf(Props(classOf[ImplantTerminalMechControl], mech), "mech-control")
|
||||
val player1 =
|
||||
val player1: Player =
|
||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=3
|
||||
player1.Position = Vector3(14, 0, 0) //<14m from generator; dies
|
||||
player1.Spawn()
|
||||
val building = Building("test-building", 1, 1, zone, StructureType.Facility) //guid=1
|
||||
val building: Building = Building("test-building", 1, 1, zone, StructureType.Facility) //guid=1
|
||||
building.Position = Vector3(1, 0, 0)
|
||||
building.Zone = zone
|
||||
building.Amenities = mech
|
||||
val buildingProbe = TestProbe()
|
||||
val buildingProbe: TestProbe = TestProbe()
|
||||
building.Actor = buildingProbe.ref
|
||||
guid.register(building, 1)
|
||||
guid.register(mech, 2)
|
||||
guid.register(player1, 3)
|
||||
val weapon = Tool(GlobalDefinitions.phoenix) //decimator
|
||||
val projectile = weapon.Projectile
|
||||
val resolved = DamageInteraction(
|
||||
val weapon: Tool = Tool(GlobalDefinitions.phoenix) //decimator
|
||||
val projectile: ProjectileDefinition = weapon.Projectile
|
||||
val resolved: DamageInteraction = DamageInteraction(
|
||||
SourceEntry(mech),
|
||||
ProjectileReason(
|
||||
DamageResolution.Hit,
|
||||
|
|
@ -388,7 +388,7 @@ class DamageableEntityDestroyedTest extends ActorTest {
|
|||
),
|
||||
Vector3(1, 0, 0)
|
||||
)
|
||||
val applyDamageTo = resolved.calculate()
|
||||
val applyDamageTo: Output = resolved.calculate()
|
||||
expectNoMessage(200 milliseconds)
|
||||
//we're not testing that the math is correct
|
||||
|
||||
|
|
@ -420,14 +420,14 @@ class DamageableEntityDestroyedTest extends ActorTest {
|
|||
|
||||
class DamageableEntityNotDestroyTwice extends ActorTest {
|
||||
val guid = new NumberPoolHub(new MaxNumberSource(10))
|
||||
val zone = new Zone("test", new ZoneMap("test"), 0) {
|
||||
override def SetupNumberPools() = {}
|
||||
val zone: Zone = new Zone("test", new ZoneMap("test"), 0) {
|
||||
override def SetupNumberPools(): Unit = {}
|
||||
|
||||
GUID(guid)
|
||||
}
|
||||
val building = Building("test-building", 1, 1, zone, StructureType.Facility) //guid=1
|
||||
val gen = Generator(GlobalDefinitions.generator) //guid=2
|
||||
val player1 =
|
||||
val building: Building = Building("test-building", 1, 1, zone, StructureType.Facility) //guid=1
|
||||
val gen: Generator = Generator(GlobalDefinitions.generator) //guid=2
|
||||
val player1: Player =
|
||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=3
|
||||
player1.Spawn()
|
||||
guid.register(building, 1)
|
||||
|
|
@ -438,16 +438,16 @@ class DamageableEntityNotDestroyTwice extends ActorTest {
|
|||
building.Amenities = gen
|
||||
gen.Position = Vector3(1, 0, 0)
|
||||
gen.Actor = system.actorOf(Props(classOf[GeneratorControl], gen), "generator-control")
|
||||
val activityProbe = TestProbe()
|
||||
val avatarProbe = TestProbe()
|
||||
val buildingProbe = TestProbe()
|
||||
val activityProbe: TestProbe = TestProbe()
|
||||
val avatarProbe: TestProbe = TestProbe()
|
||||
val buildingProbe: TestProbe = TestProbe()
|
||||
zone.Activity = activityProbe.ref
|
||||
zone.AvatarEvents = avatarProbe.ref
|
||||
building.Actor = buildingProbe.ref
|
||||
|
||||
val weapon = Tool(GlobalDefinitions.phoenix) //decimator
|
||||
val projectile = weapon.Projectile
|
||||
val resolved = DamageInteraction(
|
||||
val weapon: Tool = Tool(GlobalDefinitions.phoenix) //decimator
|
||||
val projectile: ProjectileDefinition = weapon.Projectile
|
||||
val resolved: DamageInteraction = DamageInteraction(
|
||||
SourceEntry(gen),
|
||||
ProjectileReason(
|
||||
DamageResolution.Hit,
|
||||
|
|
@ -464,7 +464,7 @@ class DamageableEntityNotDestroyTwice extends ActorTest {
|
|||
),
|
||||
Vector3(1, 0, 0)
|
||||
)
|
||||
val applyDamageTo = resolved.calculate()
|
||||
val applyDamageTo: Output = resolved.calculate()
|
||||
expectNoMessage(200 milliseconds)
|
||||
//we're not testing that the math is correct
|
||||
|
||||
|
|
@ -493,20 +493,20 @@ class DamageableEntityNotDestroyTwice extends ActorTest {
|
|||
|
||||
class DamageableAmenityTest extends ActorTest {
|
||||
val guid = new NumberPoolHub(new MaxNumberSource(10))
|
||||
val activityProbe = TestProbe()
|
||||
val avatarProbe = TestProbe()
|
||||
val buildingProbe = TestProbe()
|
||||
val zone = new Zone("test", new ZoneMap("test"), 0) {
|
||||
override def SetupNumberPools() = {}
|
||||
val activityProbe: TestProbe = TestProbe()
|
||||
val avatarProbe: TestProbe = TestProbe()
|
||||
val buildingProbe: TestProbe = TestProbe()
|
||||
val zone: Zone = new Zone("test", new ZoneMap("test"), 0) {
|
||||
override def SetupNumberPools(): Unit = {}
|
||||
|
||||
override def AvatarEvents: ActorRef = avatarProbe.ref
|
||||
override def Activity: ActorRef = activityProbe.ref
|
||||
|
||||
GUID(guid)
|
||||
}
|
||||
val building = Building("test-building", 1, 1, zone, StructureType.Facility) //guid=1
|
||||
val term = Terminal(GlobalDefinitions.order_terminal) //guid=2
|
||||
val player1 =
|
||||
val building: Building = Building("test-building", 1, 1, zone, StructureType.Facility) //guid=1
|
||||
val term: Terminal = Terminal(GlobalDefinitions.order_terminal) //guid=2
|
||||
val player1: Player =
|
||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=3
|
||||
player1.Spawn()
|
||||
guid.register(building, 1)
|
||||
|
|
@ -520,9 +520,9 @@ class DamageableAmenityTest extends ActorTest {
|
|||
term.Actor = system.actorOf(Props(classOf[TerminalControl], term), "terminal-control")
|
||||
building.Actor = buildingProbe.ref
|
||||
|
||||
val weapon = Tool(GlobalDefinitions.phoenix) //decimator
|
||||
val projectile = weapon.Projectile
|
||||
val resolved = DamageInteraction(
|
||||
val weapon: Tool = Tool(GlobalDefinitions.phoenix) //decimator
|
||||
val projectile: ProjectileDefinition = weapon.Projectile
|
||||
val resolved: DamageInteraction = DamageInteraction(
|
||||
SourceEntry(term),
|
||||
ProjectileReason(
|
||||
DamageResolution.Hit,
|
||||
|
|
@ -539,7 +539,7 @@ class DamageableAmenityTest extends ActorTest {
|
|||
),
|
||||
Vector3(1, 0, 0)
|
||||
)
|
||||
val applyDamageTo = resolved.calculate()
|
||||
val applyDamageTo: Output = resolved.calculate()
|
||||
expectNoMessage(200 milliseconds)
|
||||
//we're not testing that the math is correct
|
||||
|
||||
|
|
@ -577,19 +577,19 @@ class DamageableAmenityTest extends ActorTest {
|
|||
class DamageableMountableDamageTest extends ActorTest {
|
||||
//TODO this test with not send HitHint packets because LivePlayers is not being allocated for the players in the zone
|
||||
val guid = new NumberPoolHub(new MaxNumberSource(10))
|
||||
val zone = new Zone("test", new ZoneMap("test"), 0) {
|
||||
override def SetupNumberPools() = {}
|
||||
val zone: Zone = new Zone("test", new ZoneMap("test"), 0) {
|
||||
override def SetupNumberPools(): Unit = {}
|
||||
|
||||
GUID(guid)
|
||||
}
|
||||
val building = Building("test-building", 1, 1, zone, StructureType.Facility) //guid=1
|
||||
val mech = ImplantTerminalMech(GlobalDefinitions.implant_terminal_mech) //guid=2
|
||||
val player1 =
|
||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=3
|
||||
val building: Building = Building("test-building", 1, 1, zone, StructureType.Facility) //guid=1
|
||||
val mech: ImplantTerminalMech = ImplantTerminalMech(GlobalDefinitions.implant_terminal_mech) //guid=2
|
||||
val player1: Player = Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=3
|
||||
player1.Zone = zone
|
||||
player1.Spawn()
|
||||
player1.Position = Vector3(2, 2, 2)
|
||||
val player2 =
|
||||
Player(Avatar(0, "TestCharacter2", PlanetSideEmpire.NC, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=4
|
||||
val player2: Player = Player(Avatar(0, "TestCharacter2", PlanetSideEmpire.NC, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=4
|
||||
player2.Zone = zone
|
||||
player2.Spawn()
|
||||
guid.register(building, 1)
|
||||
guid.register(mech, 2)
|
||||
|
|
@ -600,16 +600,16 @@ class DamageableMountableDamageTest extends ActorTest {
|
|||
building.Amenities = mech
|
||||
mech.Position = Vector3(1, 0, 0)
|
||||
mech.Actor = system.actorOf(Props(classOf[ImplantTerminalMechControl], mech), "mech-control")
|
||||
val activityProbe = TestProbe()
|
||||
val avatarProbe = TestProbe()
|
||||
val buildingProbe = TestProbe()
|
||||
val activityProbe: TestProbe = TestProbe()
|
||||
val avatarProbe: TestProbe = TestProbe()
|
||||
val buildingProbe: TestProbe = TestProbe()
|
||||
zone.Activity = activityProbe.ref
|
||||
zone.AvatarEvents = avatarProbe.ref
|
||||
building.Actor = buildingProbe.ref
|
||||
|
||||
val weapon = Tool(GlobalDefinitions.phoenix) //decimator
|
||||
val projectile = weapon.Projectile
|
||||
val resolved = DamageInteraction(
|
||||
val weapon: Tool = Tool(GlobalDefinitions.phoenix) //decimator
|
||||
val projectile: ProjectileDefinition = weapon.Projectile
|
||||
val resolved: DamageInteraction = DamageInteraction(
|
||||
SourceEntry(mech),
|
||||
ProjectileReason(
|
||||
DamageResolution.Hit,
|
||||
|
|
@ -626,7 +626,7 @@ class DamageableMountableDamageTest extends ActorTest {
|
|||
),
|
||||
Vector3(1, 0, 0)
|
||||
)
|
||||
val applyDamageTo = resolved.calculate()
|
||||
val applyDamageTo: Output = resolved.calculate()
|
||||
mech.Seats(0).mount(player2) //mount the player
|
||||
player2.VehicleSeated = Some(mech.GUID) //mount the player
|
||||
expectNoMessage(200 milliseconds)
|
||||
|
|
@ -637,8 +637,8 @@ class DamageableMountableDamageTest extends ActorTest {
|
|||
assert(mech.Health == mech.Definition.DefaultHealth)
|
||||
|
||||
mech.Actor ! Vitality.Damage(applyDamageTo)
|
||||
val msg1_3 = avatarProbe.receiveN(2, 500 milliseconds)
|
||||
val msg2 = activityProbe.receiveOne(500 milliseconds)
|
||||
val msg1_3 = avatarProbe.receiveN(2, 5000 milliseconds)
|
||||
val msg2 = activityProbe.receiveOne(5000 milliseconds)
|
||||
assert(
|
||||
msg1_3.head match {
|
||||
case AvatarServiceMessage("test", AvatarAction.PlanetsideAttributeToAll(PlanetSideGUID(2), 0, _)) => true
|
||||
|
|
@ -671,25 +671,25 @@ class DamageableMountableDamageTest extends ActorTest {
|
|||
class DamageableMountableDestroyTest extends ActorTest {
|
||||
//TODO this test with not send HitHint packets because LivePlayers is not being allocated for the players in the zone
|
||||
val guid = new NumberPoolHub(new MaxNumberSource(10))
|
||||
val zone = new Zone("test", new ZoneMap("test"), 0) {
|
||||
override def SetupNumberPools() = {}
|
||||
val zone: Zone = new Zone("test", new ZoneMap("test"), 0) {
|
||||
override def SetupNumberPools(): Unit = {}
|
||||
|
||||
GUID(guid)
|
||||
}
|
||||
val building = Building("test-building", 1, 1, zone, StructureType.Facility) //guid=1
|
||||
val mech = ImplantTerminalMech(GlobalDefinitions.implant_terminal_mech) //guid=2
|
||||
val player1 = Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=3
|
||||
val building: Building = Building("test-building", 1, 1, zone, StructureType.Facility) //guid=1
|
||||
val mech: ImplantTerminalMech = ImplantTerminalMech(GlobalDefinitions.implant_terminal_mech) //guid=2
|
||||
val player1: Player = Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=3
|
||||
mech.Zone = zone
|
||||
player1.Spawn()
|
||||
player1.Zone = zone
|
||||
player1.Position = Vector3(2, 2, 2)
|
||||
val player1Probe = TestProbe()
|
||||
val player1Probe: TestProbe = TestProbe()
|
||||
player1.Actor = player1Probe.ref
|
||||
val player2 =
|
||||
val player2: Player =
|
||||
Player(Avatar(0, "TestCharacter2", PlanetSideEmpire.NC, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=4
|
||||
player2.Spawn()
|
||||
player2.Zone = zone
|
||||
val player2Probe = TestProbe()
|
||||
val player2Probe: TestProbe = TestProbe()
|
||||
player2.Actor = player2Probe.ref
|
||||
guid.register(building, 1)
|
||||
guid.register(mech, 2)
|
||||
|
|
@ -700,16 +700,16 @@ class DamageableMountableDestroyTest extends ActorTest {
|
|||
building.Amenities = mech
|
||||
mech.Position = Vector3(1, 0, 0)
|
||||
mech.Actor = system.actorOf(Props(classOf[ImplantTerminalMechControl], mech), "mech-control")
|
||||
val activityProbe = TestProbe()
|
||||
val avatarProbe = TestProbe()
|
||||
val buildingProbe = TestProbe()
|
||||
val activityProbe: TestProbe = TestProbe()
|
||||
val avatarProbe: TestProbe = TestProbe()
|
||||
val buildingProbe: TestProbe = TestProbe()
|
||||
zone.actor = ActorTestKit().createTestProbe[ZoneActor.Command]().ref
|
||||
zone.Activity = activityProbe.ref
|
||||
zone.AvatarEvents = avatarProbe.ref
|
||||
building.Actor = buildingProbe.ref
|
||||
val weapon = Tool(GlobalDefinitions.phoenix) //decimator
|
||||
val projectile = weapon.Projectile
|
||||
val resolved = DamageInteraction(
|
||||
val weapon: Tool = Tool(GlobalDefinitions.phoenix) //decimator
|
||||
val projectile: ProjectileDefinition = weapon.Projectile
|
||||
val resolved: DamageInteraction = DamageInteraction(
|
||||
SourceEntry(mech),
|
||||
ProjectileReason(
|
||||
DamageResolution.Hit,
|
||||
|
|
@ -726,7 +726,7 @@ class DamageableMountableDestroyTest extends ActorTest {
|
|||
),
|
||||
Vector3(1, 0, 0)
|
||||
)
|
||||
val applyDamageTo = resolved.calculate()
|
||||
val applyDamageTo: Output = resolved.calculate()
|
||||
mech.Seats(0).mount(player2) //mount the player
|
||||
player2.VehicleSeated = Some(mech.GUID) //mount the player
|
||||
expectNoMessage(200 milliseconds)
|
||||
|
|
@ -752,8 +752,8 @@ class DamageableMountableDestroyTest extends ActorTest {
|
|||
case _ => assert(false)
|
||||
}
|
||||
msg3 match {
|
||||
case Player.Die(_) => true
|
||||
case _ => assert(false)
|
||||
case Player.Die(_) => ()
|
||||
case _ => assert(false)
|
||||
}
|
||||
assert(mech.Health <= mech.Definition.DamageDestroysAt)
|
||||
assert(mech.Destroyed)
|
||||
|
|
@ -763,13 +763,13 @@ class DamageableMountableDestroyTest extends ActorTest {
|
|||
|
||||
class DamageableWeaponTurretDamageTest extends ActorTest {
|
||||
val guid = new NumberPoolHub(new MaxNumberSource(10))
|
||||
val zone = new Zone("test", new ZoneMap("test"), 0) {
|
||||
override def SetupNumberPools() = {}
|
||||
val zone: Zone = new Zone("test", new ZoneMap("test"), 0) {
|
||||
override def SetupNumberPools(): Unit = {}
|
||||
GUID(guid)
|
||||
}
|
||||
val activityProbe = TestProbe()
|
||||
val avatarProbe = TestProbe()
|
||||
val vehicleProbe = TestProbe()
|
||||
val activityProbe: TestProbe = TestProbe()
|
||||
val avatarProbe: TestProbe = TestProbe()
|
||||
val vehicleProbe: TestProbe = TestProbe()
|
||||
zone.actor = ActorTestKit().createTestProbe[ZoneActor.Command]().ref
|
||||
zone.Activity = activityProbe.ref
|
||||
zone.AvatarEvents = avatarProbe.ref
|
||||
|
|
@ -779,17 +779,17 @@ class DamageableWeaponTurretDamageTest extends ActorTest {
|
|||
turret.Zone = zone
|
||||
turret.Position = Vector3(1, 0, 0)
|
||||
turret.LogActivity(SpawningActivity(SourceEntry(turret), zone.Number, None)) //seed a spawn event
|
||||
val tSource = SourceEntry(turret)
|
||||
val player1 =
|
||||
val tSource: SourceEntry = SourceEntry(turret)
|
||||
val player1: Player =
|
||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=3
|
||||
player1.Spawn()
|
||||
player1.Position = Vector3(2, 2, 2)
|
||||
val player1Probe = TestProbe()
|
||||
val player1Probe: TestProbe = TestProbe()
|
||||
player1.Actor = player1Probe.ref
|
||||
val player2 =
|
||||
val player2: Player =
|
||||
Player(Avatar(0, "TestCharacter2", PlanetSideEmpire.NC, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=4
|
||||
player2.Spawn()
|
||||
val player2Probe = TestProbe()
|
||||
val player2Probe: TestProbe = TestProbe()
|
||||
player2.Actor = player2Probe.ref
|
||||
guid.register(turret, 2)
|
||||
guid.register(player1, 3)
|
||||
|
|
@ -797,10 +797,10 @@ class DamageableWeaponTurretDamageTest extends ActorTest {
|
|||
turret.Seats(0).mount(player2)
|
||||
player2.VehicleSeated = turret.GUID
|
||||
|
||||
val weapon = Tool(GlobalDefinitions.suppressor)
|
||||
val projectile = weapon.Projectile
|
||||
val pSource = PlayerSource(player1)
|
||||
val resolved = DamageInteraction(
|
||||
val weapon: Tool = Tool(GlobalDefinitions.suppressor)
|
||||
val projectile: ProjectileDefinition = weapon.Projectile
|
||||
val pSource: PlayerSource = PlayerSource(player1)
|
||||
val resolved: DamageInteraction = DamageInteraction(
|
||||
tSource,
|
||||
ProjectileReason(
|
||||
DamageResolution.Hit,
|
||||
|
|
@ -817,7 +817,7 @@ class DamageableWeaponTurretDamageTest extends ActorTest {
|
|||
),
|
||||
Vector3(1, 0, 0)
|
||||
)
|
||||
val applyDamageTo = resolved.calculate()
|
||||
val applyDamageTo: Output = resolved.calculate()
|
||||
expectNoMessage(200 milliseconds)
|
||||
//we're not testing that the math is correct
|
||||
|
||||
|
|
@ -861,13 +861,13 @@ class DamageableWeaponTurretDamageTest extends ActorTest {
|
|||
|
||||
class DamageableWeaponTurretJammerTest extends ActorTest {
|
||||
val guid = new NumberPoolHub(new MaxNumberSource(10))
|
||||
val zone = new Zone("test", new ZoneMap("test"), 0) {
|
||||
override def SetupNumberPools() = {}
|
||||
val zone: Zone = new Zone("test", new ZoneMap("test"), 0) {
|
||||
override def SetupNumberPools(): Unit = {}
|
||||
GUID(guid)
|
||||
}
|
||||
val activityProbe = TestProbe()
|
||||
val avatarProbe = TestProbe()
|
||||
val vehicleProbe = TestProbe()
|
||||
val activityProbe: TestProbe = TestProbe()
|
||||
val avatarProbe: TestProbe = TestProbe()
|
||||
val vehicleProbe: TestProbe = TestProbe()
|
||||
zone.Activity = activityProbe.ref
|
||||
zone.AvatarEvents = avatarProbe.ref
|
||||
zone.VehicleEvents = vehicleProbe.ref
|
||||
|
|
@ -876,18 +876,18 @@ class DamageableWeaponTurretJammerTest extends ActorTest {
|
|||
turret.Actor = system.actorOf(Props(classOf[TurretControl], turret), "turret-control")
|
||||
turret.Zone = zone
|
||||
turret.Position = Vector3(1, 0, 0)
|
||||
val turretWeapon = turret.Weapons.values.head.Equipment.get.asInstanceOf[Tool]
|
||||
val turretWeapon: Tool = turret.Weapons.values.head.Equipment.get.asInstanceOf[Tool]
|
||||
|
||||
val player1 =
|
||||
val player1: Player =
|
||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=3
|
||||
player1.Spawn()
|
||||
player1.Position = Vector3(2, 2, 2)
|
||||
val player1Probe = TestProbe()
|
||||
val player1Probe: TestProbe = TestProbe()
|
||||
player1.Actor = player1Probe.ref
|
||||
val player2 =
|
||||
val player2: Player =
|
||||
Player(Avatar(0, "TestCharacter2", PlanetSideEmpire.NC, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=4
|
||||
player2.Spawn()
|
||||
val player2Probe = TestProbe()
|
||||
val player2Probe: TestProbe = TestProbe()
|
||||
player2.Actor = player2Probe.ref
|
||||
|
||||
guid.register(turret, 2)
|
||||
|
|
@ -898,10 +898,10 @@ class DamageableWeaponTurretJammerTest extends ActorTest {
|
|||
turret.Seats(0).mount(player2)
|
||||
player2.VehicleSeated = turret.GUID
|
||||
|
||||
val weapon = Tool(GlobalDefinitions.jammer_grenade)
|
||||
val projectile = weapon.Projectile
|
||||
val turretSource = SourceEntry(turret)
|
||||
val resolved = DamageInteraction(
|
||||
val weapon: Tool = Tool(GlobalDefinitions.jammer_grenade)
|
||||
val projectile: ProjectileDefinition = weapon.Projectile
|
||||
val turretSource: SourceEntry = SourceEntry(turret)
|
||||
val resolved: DamageInteraction = DamageInteraction(
|
||||
turretSource,
|
||||
ProjectileReason(
|
||||
DamageResolution.Hit,
|
||||
|
|
@ -918,7 +918,7 @@ class DamageableWeaponTurretJammerTest extends ActorTest {
|
|||
),
|
||||
Vector3(1, 0, 0)
|
||||
)
|
||||
val applyDamageTo = resolved.calculate()
|
||||
val applyDamageTo: Output = resolved.calculate()
|
||||
expectNoMessage(200 milliseconds)
|
||||
//we're not testing that the math is correct
|
||||
|
||||
|
|
@ -958,15 +958,15 @@ class DamageableWeaponTurretJammerTest extends ActorTest {
|
|||
|
||||
class DamageableWeaponTurretDestructionTest extends ActorTest {
|
||||
val guid = new NumberPoolHub(new MaxNumberSource(10))
|
||||
val zone = new Zone("test", new ZoneMap("test"), 0) {
|
||||
override def SetupNumberPools() = {}
|
||||
val zone: Zone = new Zone("test", new ZoneMap("test"), 0) {
|
||||
override def SetupNumberPools(): Unit = {}
|
||||
GUID(guid)
|
||||
}
|
||||
val building = Building("test-building", 1, 1, zone, StructureType.Facility) //guid=1
|
||||
val activityProbe = TestProbe()
|
||||
val avatarProbe = TestProbe()
|
||||
val vehicleProbe = TestProbe()
|
||||
val buildingProbe = TestProbe()
|
||||
val building: Building = Building("test-building", 1, 1, zone, StructureType.Facility) //guid=1
|
||||
val activityProbe: TestProbe = TestProbe()
|
||||
val avatarProbe: TestProbe = TestProbe()
|
||||
val vehicleProbe: TestProbe = TestProbe()
|
||||
val buildingProbe: TestProbe = TestProbe()
|
||||
zone.actor = ActorTestKit().createTestProbe[ZoneActor.Command]().ref
|
||||
zone.Activity = activityProbe.ref
|
||||
zone.AvatarEvents = avatarProbe.ref
|
||||
|
|
@ -977,18 +977,18 @@ class DamageableWeaponTurretDestructionTest extends ActorTest {
|
|||
turret.Actor = system.actorOf(Props(classOf[FacilityTurretControl], turret), "turret-control")
|
||||
turret.Zone = zone
|
||||
turret.Position = Vector3(1, 0, 0)
|
||||
val turretWeapon = turret.Weapons.values.head.Equipment.get.asInstanceOf[Tool]
|
||||
val turretWeapon: Tool = turret.Weapons.values.head.Equipment.get.asInstanceOf[Tool]
|
||||
|
||||
val player1 =
|
||||
val player1: Player =
|
||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=3
|
||||
player1.Spawn()
|
||||
player1.Position = Vector3(2, 2, 2)
|
||||
val player1Probe = TestProbe()
|
||||
val player1Probe: TestProbe = TestProbe()
|
||||
player1.Actor = player1Probe.ref
|
||||
val player2 =
|
||||
val player2: Player =
|
||||
Player(Avatar(1, "TestCharacter2", PlanetSideEmpire.NC, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=4
|
||||
player2.Spawn()
|
||||
val player2Probe = TestProbe()
|
||||
val player2Probe: TestProbe = TestProbe()
|
||||
player2.Actor = player2Probe.ref
|
||||
|
||||
guid.register(building, 1)
|
||||
|
|
@ -1003,11 +1003,11 @@ class DamageableWeaponTurretDestructionTest extends ActorTest {
|
|||
building.Zone = zone
|
||||
building.Amenities = turret
|
||||
|
||||
val turretSource = SourceEntry(turret)
|
||||
val turretSource: SourceEntry = SourceEntry(turret)
|
||||
//turret.History(EntitySpawn(turretSource, zone)) //seed a spawn event
|
||||
val weaponA = Tool(GlobalDefinitions.jammer_grenade)
|
||||
val projectileA = weaponA.Projectile
|
||||
val resolvedA = DamageInteraction(
|
||||
val weaponA: Tool = Tool(GlobalDefinitions.jammer_grenade)
|
||||
val projectileA: ProjectileDefinition = weaponA.Projectile
|
||||
val resolvedA: DamageInteraction = DamageInteraction(
|
||||
turretSource,
|
||||
ProjectileReason(
|
||||
DamageResolution.Hit,
|
||||
|
|
@ -1024,11 +1024,11 @@ class DamageableWeaponTurretDestructionTest extends ActorTest {
|
|||
),
|
||||
Vector3(1, 0, 0)
|
||||
)
|
||||
val applyDamageToA = resolvedA.calculate()
|
||||
val applyDamageToA: Output = resolvedA.calculate()
|
||||
|
||||
val weaponB = Tool(GlobalDefinitions.phoenix) //decimator
|
||||
val projectileB = weaponB.Projectile
|
||||
val resolvedB = DamageInteraction(
|
||||
val weaponB: Tool = Tool(GlobalDefinitions.phoenix) //decimator
|
||||
val projectileB: ProjectileDefinition = weaponB.Projectile
|
||||
val resolvedB: DamageInteraction = DamageInteraction(
|
||||
|
||||
turretSource,
|
||||
ProjectileReason(
|
||||
|
|
@ -1046,7 +1046,7 @@ class DamageableWeaponTurretDestructionTest extends ActorTest {
|
|||
),
|
||||
Vector3(1, 0, 0)
|
||||
)
|
||||
val applyDamageToB = resolvedB.calculate()
|
||||
val applyDamageToB: Output = resolvedB.calculate()
|
||||
expectNoMessage(200 milliseconds)
|
||||
//we're not testing that the math is correct
|
||||
|
||||
|
|
@ -1080,7 +1080,7 @@ class DamageableWeaponTurretDestructionTest extends ActorTest {
|
|||
assert(false, s"DamageableWeaponTurretDestructionTest-2: ${msg12_4(1)}")
|
||||
}
|
||||
msg3 match {
|
||||
case Player.Die(_) => true
|
||||
case Player.Die(_) => ()
|
||||
case _ =>
|
||||
assert(false, s"DamageableWeaponTurretDestructionTest-3: player not dead - $msg3")
|
||||
}
|
||||
|
|
@ -1095,10 +1095,8 @@ class DamageableWeaponTurretDestructionTest extends ActorTest {
|
|||
assert(false, s"DamageableWeaponTurretDestructionTest-5: ${msg56.head}")
|
||||
}
|
||||
msg56(1) match {
|
||||
case VehicleServiceMessage.TurretUpgrade(TurretUpgrader.AddTask(t, _, TurretUpgrade.None, _)) if t eq turret => ;
|
||||
true
|
||||
case _ =>
|
||||
assert(false, s"DamageableWeaponTurretDestructionTest-6: ${msg56(1)}")
|
||||
case VehicleServiceMessage.TurretUpgrade(TurretUpgrader.AddTask(t, _, TurretUpgrade.None, _)) if t eq turret => ()
|
||||
case _ => assert(false, s"DamageableWeaponTurretDestructionTest-6: ${msg56(1)}")
|
||||
}
|
||||
assert(turret.Health <= turret.Definition.DamageDestroysAt)
|
||||
assert(!turret.Jammed)
|
||||
|
|
@ -1109,33 +1107,33 @@ class DamageableWeaponTurretDestructionTest extends ActorTest {
|
|||
|
||||
class DamageableVehicleDamageTest extends ActorTest {
|
||||
val guid = new NumberPoolHub(new MaxNumberSource(10))
|
||||
val zone = new Zone("test", new ZoneMap("test"), 0) {
|
||||
override def SetupNumberPools() = {}
|
||||
val zone: Zone = new Zone("test", new ZoneMap("test"), 0) {
|
||||
override def SetupNumberPools(): Unit = {}
|
||||
GUID(guid)
|
||||
}
|
||||
val activityProbe = TestProbe()
|
||||
val avatarProbe = TestProbe()
|
||||
val vehicleProbe = TestProbe()
|
||||
val activityProbe: TestProbe = TestProbe()
|
||||
val avatarProbe: TestProbe = TestProbe()
|
||||
val vehicleProbe: TestProbe = TestProbe()
|
||||
zone.actor = ActorTestKit().createTestProbe[ZoneActor.Command]().ref
|
||||
zone.Activity = activityProbe.ref
|
||||
zone.AvatarEvents = avatarProbe.ref
|
||||
zone.VehicleEvents = vehicleProbe.ref
|
||||
|
||||
val atv = Vehicle(GlobalDefinitions.quadstealth) //guid=1
|
||||
val atv: Vehicle = Vehicle(GlobalDefinitions.quadstealth) //guid=1
|
||||
atv.Actor = system.actorOf(Props(classOf[VehicleControl], atv), "vehicle-control")
|
||||
atv.Position = Vector3(1, 0, 0)
|
||||
//atv.History(EntitySpawn(turretSource, zone)) //seed a spawn event
|
||||
|
||||
val player1 =
|
||||
val player1: Player =
|
||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=2
|
||||
player1.Spawn()
|
||||
player1.Position = Vector3(2, 0, 0)
|
||||
val player1Probe = TestProbe()
|
||||
val player1Probe: TestProbe = TestProbe()
|
||||
player1.Actor = player1Probe.ref
|
||||
val player2 =
|
||||
val player2: Player =
|
||||
Player(Avatar(0, "TestCharacter2", PlanetSideEmpire.NC, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=3
|
||||
player2.Spawn()
|
||||
val player2Probe = TestProbe()
|
||||
val player2Probe: TestProbe = TestProbe()
|
||||
player2.Actor = player2Probe.ref
|
||||
|
||||
guid.register(atv, 1)
|
||||
|
|
@ -1145,11 +1143,11 @@ class DamageableVehicleDamageTest extends ActorTest {
|
|||
atv.Seats(0).mount(player2)
|
||||
player2.VehicleSeated = atv.GUID
|
||||
|
||||
val weapon = Tool(GlobalDefinitions.suppressor)
|
||||
val projectile = weapon.Projectile
|
||||
val pSource = PlayerSource(player1)
|
||||
val vehicleSource = SourceEntry(atv)
|
||||
val resolved = DamageInteraction(
|
||||
val weapon: Tool = Tool(GlobalDefinitions.suppressor)
|
||||
val projectile: ProjectileDefinition = weapon.Projectile
|
||||
val pSource: PlayerSource = PlayerSource(player1)
|
||||
val vehicleSource: SourceEntry = SourceEntry(atv)
|
||||
val resolved: DamageInteraction = DamageInteraction(
|
||||
vehicleSource,
|
||||
ProjectileReason(
|
||||
DamageResolution.Hit,
|
||||
|
|
@ -1166,7 +1164,7 @@ class DamageableVehicleDamageTest extends ActorTest {
|
|||
),
|
||||
Vector3(1, 0, 0)
|
||||
)
|
||||
val applyDamageTo = resolved.calculate()
|
||||
val applyDamageTo: Output = resolved.calculate()
|
||||
expectNoMessage(200 milliseconds)
|
||||
//we're not testing that the math is correct
|
||||
|
||||
|
|
@ -1219,13 +1217,13 @@ class DamageableVehicleDamageTest extends ActorTest {
|
|||
|
||||
class DamageableVehicleDamageMountedTest extends FreedContextActorTest {
|
||||
val guid = new NumberPoolHub(new MaxNumberSource(15))
|
||||
val zone = new Zone("test", new ZoneMap("test"), 0) {
|
||||
override def SetupNumberPools() = {}
|
||||
val zone: Zone = new Zone("test", new ZoneMap("test"), 0) {
|
||||
override def SetupNumberPools(): Unit = {}
|
||||
GUID(guid)
|
||||
}
|
||||
val activityProbe = TestProbe()
|
||||
val avatarProbe = TestProbe()
|
||||
val vehicleProbe = TestProbe()
|
||||
val activityProbe: TestProbe = TestProbe()
|
||||
val avatarProbe: TestProbe = TestProbe()
|
||||
val vehicleProbe: TestProbe = TestProbe()
|
||||
zone.actor = ActorTestKit().createTestProbe[ZoneActor.Command]().ref
|
||||
zone.Activity = activityProbe.ref
|
||||
zone.AvatarEvents = avatarProbe.ref
|
||||
|
|
@ -1233,28 +1231,28 @@ class DamageableVehicleDamageMountedTest extends FreedContextActorTest {
|
|||
import akka.actor.typed.scaladsl.adapter._
|
||||
zone.actor = new TestProbe(system).ref.toTyped[ZoneActor.Command]
|
||||
|
||||
val lodestar = Vehicle(GlobalDefinitions.lodestar) //guid=1 & 4,5,6,7,8,9
|
||||
val lodestar: Vehicle = Vehicle(GlobalDefinitions.lodestar) //guid=1 & 4,5,6,7,8,9
|
||||
lodestar.Position = Vector3(1, 0, 0)
|
||||
//lodestar.History(EntitySpawn(VehicleSource(lodestar), zone)) //seed a spawn event
|
||||
val atv = Vehicle(GlobalDefinitions.quadstealth) //guid=11
|
||||
val atv: Vehicle = Vehicle(GlobalDefinitions.quadstealth) //guid=11
|
||||
atv.Position = Vector3(1, 0, 0)
|
||||
atv.Actor = system.actorOf(Props(classOf[VehicleControl], atv), "atv-control")
|
||||
|
||||
val player1 =
|
||||
val player1: Player =
|
||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=2
|
||||
player1.Spawn()
|
||||
player1.Position = Vector3(2, 0, 0)
|
||||
val player1Probe = TestProbe()
|
||||
val player1Probe: TestProbe = TestProbe()
|
||||
player1.Actor = player1Probe.ref
|
||||
val player2 =
|
||||
val player2: Player =
|
||||
Player(Avatar(0, "TestCharacter2", PlanetSideEmpire.NC, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=3
|
||||
player2.Spawn()
|
||||
val player2Probe = TestProbe()
|
||||
val player2Probe: TestProbe = TestProbe()
|
||||
player2.Actor = player2Probe.ref
|
||||
val player3 =
|
||||
val player3: Player =
|
||||
Player(Avatar(0, "TestCharacter3", PlanetSideEmpire.NC, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=10
|
||||
player3.Spawn()
|
||||
val player3Probe = TestProbe()
|
||||
val player3Probe: TestProbe = TestProbe()
|
||||
player3.Actor = player3Probe.ref
|
||||
|
||||
guid.register(lodestar, 1)
|
||||
|
|
@ -1280,11 +1278,11 @@ class DamageableVehicleDamageMountedTest extends FreedContextActorTest {
|
|||
lodestar.CargoHolds(1).mount(atv)
|
||||
atv.MountedIn = lodestar.GUID
|
||||
|
||||
val weapon = Tool(GlobalDefinitions.phoenix) //decimator
|
||||
val projectile = weapon.Projectile
|
||||
val pSource = PlayerSource(player1)
|
||||
val vSource = SourceEntry(lodestar)
|
||||
val resolved = DamageInteraction(
|
||||
val weapon: Tool = Tool(GlobalDefinitions.phoenix) //decimator
|
||||
val projectile: ProjectileDefinition = weapon.Projectile
|
||||
val pSource: PlayerSource = PlayerSource(player1)
|
||||
val vSource: SourceEntry = SourceEntry(lodestar)
|
||||
val resolved: DamageInteraction = DamageInteraction(
|
||||
vSource,
|
||||
ProjectileReason(
|
||||
DamageResolution.Hit,
|
||||
|
|
@ -1301,7 +1299,7 @@ class DamageableVehicleDamageMountedTest extends FreedContextActorTest {
|
|||
),
|
||||
Vector3(1, 0, 0)
|
||||
)
|
||||
val applyDamageTo = resolved.calculate()
|
||||
val applyDamageTo: Output = resolved.calculate()
|
||||
expectNoMessage(200 milliseconds)
|
||||
//we're not testing that the math is correct
|
||||
|
||||
|
|
@ -1355,40 +1353,40 @@ class DamageableVehicleDamageMountedTest extends FreedContextActorTest {
|
|||
|
||||
class DamageableVehicleJammeringMountedTest extends FreedContextActorTest {
|
||||
val guid = new NumberPoolHub(new MaxNumberSource(15))
|
||||
val zone = new Zone("test", new ZoneMap("test"), 0) {
|
||||
override def SetupNumberPools() = {}
|
||||
val zone: Zone = new Zone("test", new ZoneMap("test"), 0) {
|
||||
override def SetupNumberPools(): Unit = {}
|
||||
GUID(guid)
|
||||
}
|
||||
val activityProbe = TestProbe()
|
||||
val avatarProbe = TestProbe()
|
||||
val vehicleProbe = TestProbe()
|
||||
val activityProbe: TestProbe = TestProbe()
|
||||
val avatarProbe: TestProbe = TestProbe()
|
||||
val vehicleProbe: TestProbe = TestProbe()
|
||||
zone.Activity = activityProbe.ref
|
||||
zone.AvatarEvents = avatarProbe.ref
|
||||
zone.VehicleEvents = vehicleProbe.ref
|
||||
|
||||
val atv = Vehicle(GlobalDefinitions.quadassault) //guid=1
|
||||
val atv: Vehicle = Vehicle(GlobalDefinitions.quadassault) //guid=1
|
||||
atv.Actor = system.actorOf(Props(classOf[VehicleControl], atv), "atv-control")
|
||||
atv.Position = Vector3(1, 0, 0)
|
||||
val atvWeapon = atv.Weapons(1).Equipment.get.asInstanceOf[Tool] //guid=4 & 5
|
||||
val atvWeapon: Tool = atv.Weapons(1).Equipment.get.asInstanceOf[Tool] //guid=4 & 5
|
||||
|
||||
val lodestar = Vehicle(GlobalDefinitions.lodestar) //guid=6
|
||||
val lodestar: Vehicle = Vehicle(GlobalDefinitions.lodestar) //guid=6
|
||||
lodestar.Position = Vector3(1, 0, 0)
|
||||
|
||||
val player1 =
|
||||
val player1: Player =
|
||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=7
|
||||
player1.Spawn()
|
||||
player1.Position = Vector3(2, 0, 0)
|
||||
val player1Probe = TestProbe()
|
||||
val player1Probe: TestProbe = TestProbe()
|
||||
player1.Actor = player1Probe.ref
|
||||
val player2 =
|
||||
val player2: Player =
|
||||
Player(Avatar(0, "TestCharacter2", PlanetSideEmpire.NC, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=8
|
||||
player2.Spawn()
|
||||
val player2Probe = TestProbe()
|
||||
val player2Probe: TestProbe = TestProbe()
|
||||
player2.Actor = player2Probe.ref
|
||||
val player3 =
|
||||
val player3: Player =
|
||||
Player(Avatar(0, "TestCharacter3", PlanetSideEmpire.NC, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=9
|
||||
player3.Spawn()
|
||||
val player3Probe = TestProbe()
|
||||
val player3Probe: TestProbe = TestProbe()
|
||||
player3.Actor = player3Probe.ref
|
||||
|
||||
guid.register(atv, 1)
|
||||
|
|
@ -1415,10 +1413,10 @@ class DamageableVehicleJammeringMountedTest extends FreedContextActorTest {
|
|||
lodestar.CargoHolds(1).mount(atv)
|
||||
atv.MountedIn = lodestar.GUID
|
||||
|
||||
val vehicleSource = SourceEntry(lodestar)
|
||||
val weapon = Tool(GlobalDefinitions.jammer_grenade)
|
||||
val projectile = weapon.Projectile
|
||||
val resolved = DamageInteraction(
|
||||
val vehicleSource: SourceEntry = SourceEntry(lodestar)
|
||||
val weapon: Tool = Tool(GlobalDefinitions.jammer_grenade)
|
||||
val projectile: ProjectileDefinition = weapon.Projectile
|
||||
val resolved: DamageInteraction = DamageInteraction(
|
||||
vehicleSource,
|
||||
ProjectileReason(
|
||||
DamageResolution.Hit,
|
||||
|
|
@ -1435,7 +1433,7 @@ class DamageableVehicleJammeringMountedTest extends FreedContextActorTest {
|
|||
),
|
||||
Vector3(1, 0, 0)
|
||||
)
|
||||
val applyDamageTo = resolved.calculate()
|
||||
val applyDamageTo: Output = resolved.calculate()
|
||||
expectNoMessage(200 milliseconds)
|
||||
//we're not testing that the math is correct
|
||||
|
||||
|
|
@ -1469,37 +1467,37 @@ class DamageableVehicleJammeringMountedTest extends FreedContextActorTest {
|
|||
}
|
||||
|
||||
class DamageableVehicleDestroyTest extends ActorTest {
|
||||
val activityProbe = TestProbe()
|
||||
val avatarProbe = TestProbe()
|
||||
val vehicleProbe = TestProbe()
|
||||
val activityProbe: TestProbe = TestProbe()
|
||||
val avatarProbe: TestProbe = TestProbe()
|
||||
val vehicleProbe: TestProbe = TestProbe()
|
||||
val guid = new NumberPoolHub(new MaxNumberSource(10))
|
||||
val zone = new Zone("test", new ZoneMap("test"), 0) {
|
||||
override def SetupNumberPools() = {}
|
||||
override def Activity = activityProbe.ref
|
||||
override def AvatarEvents = avatarProbe.ref
|
||||
override def VehicleEvents = vehicleProbe.ref
|
||||
val zone: Zone = new Zone("test", new ZoneMap("test"), 0) {
|
||||
override def SetupNumberPools(): Unit = {}
|
||||
override def Activity: ActorRef = activityProbe.ref
|
||||
override def AvatarEvents: ActorRef = avatarProbe.ref
|
||||
override def VehicleEvents: ActorRef = vehicleProbe.ref
|
||||
|
||||
GUID(guid)
|
||||
}
|
||||
zone.actor = ActorTestKit().createTestProbe[ZoneActor.Command]().ref
|
||||
|
||||
val atv = Vehicle(GlobalDefinitions.quadassault) //guid=1
|
||||
val atv: Vehicle = Vehicle(GlobalDefinitions.quadassault) //guid=1
|
||||
atv.Actor = system.actorOf(Props(classOf[VehicleControl], atv), "vehicle-control")
|
||||
atv.Zone = zone
|
||||
atv.Position = Vector3(1, 0, 0)
|
||||
val atvWeapon = atv.Weapons(1).Equipment.get.asInstanceOf[Tool] //guid=4 & 5
|
||||
val atvWeapon: Tool = atv.Weapons(1).Equipment.get.asInstanceOf[Tool] //guid=4 & 5
|
||||
|
||||
val player1 =
|
||||
val player1: Player =
|
||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=2
|
||||
player1.Spawn()
|
||||
player1.Zone = zone
|
||||
player1.Position = Vector3(2, 0, 0)
|
||||
val player1Probe = TestProbe()
|
||||
val player1Probe: TestProbe = TestProbe()
|
||||
player1.Actor = player1Probe.ref
|
||||
val player2 =
|
||||
val player2: Player =
|
||||
Player(Avatar(0, "TestCharacter2", PlanetSideEmpire.NC, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=3
|
||||
player2.Spawn()
|
||||
val player2Probe = TestProbe()
|
||||
val player2Probe: TestProbe = TestProbe()
|
||||
player2.Zone = zone
|
||||
player2.Actor = player2Probe.ref
|
||||
|
||||
|
|
@ -1511,10 +1509,10 @@ class DamageableVehicleDestroyTest extends ActorTest {
|
|||
atv.Seats(0).mount(player2)
|
||||
player2.VehicleSeated = atv.GUID
|
||||
|
||||
val weapon = Tool(GlobalDefinitions.suppressor)
|
||||
val projectile = weapon.Projectile
|
||||
val vehicleSource = SourceEntry(atv)
|
||||
val resolved = DamageInteraction(
|
||||
val weapon: Tool = Tool(GlobalDefinitions.suppressor)
|
||||
val projectile: ProjectileDefinition = weapon.Projectile
|
||||
val vehicleSource: SourceEntry = SourceEntry(atv)
|
||||
val resolved: DamageInteraction = DamageInteraction(
|
||||
vehicleSource,
|
||||
ProjectileReason(
|
||||
DamageResolution.Hit,
|
||||
|
|
@ -1531,7 +1529,7 @@ class DamageableVehicleDestroyTest extends ActorTest {
|
|||
),
|
||||
Vector3(1, 0, 0)
|
||||
)
|
||||
val applyDamageTo = resolved.calculate()
|
||||
val applyDamageTo: Output = resolved.calculate()
|
||||
expectNoMessage(200 milliseconds)
|
||||
//we're not testing that the math is correct
|
||||
|
||||
|
|
@ -1558,10 +1556,6 @@ class DamageableVehicleDestroyTest extends ActorTest {
|
|||
case Player.Die(_) => ()
|
||||
case _ => assert(false)
|
||||
}
|
||||
// msg124(2) match {
|
||||
// case AvatarServiceMessage("test", AvatarAction.ObjectDelete(PlanetSideGUID(0), PlanetSideGUID(4), _)) => ()
|
||||
// case _ => assert(false)
|
||||
// }
|
||||
assert(atv.Health <= atv.Definition.DamageDestroysAt)
|
||||
assert(atv.Destroyed)
|
||||
//
|
||||
|
|
|
|||
|
|
@ -449,8 +449,8 @@ class ExplosiveDeployableJammerExplodeTest extends ActorTest {
|
|||
assert(!h_mine.Destroyed)
|
||||
|
||||
h_mine.Actor ! Vitality.Damage(applyDamageToH)
|
||||
val eventMsgs = eventsProbe.receiveN(4, 200 milliseconds)
|
||||
val p1Msgs = player1Probe.receiveN(1, 200 milliseconds)
|
||||
val p1Msgs = player1Probe.receiveN(1, 5000 milliseconds)
|
||||
val eventMsgs = eventsProbe.receiveN(3, 5000 milliseconds)
|
||||
eventMsgs.head match {
|
||||
case Zone.HotSpot.Conflict(target, attacker, _)
|
||||
if (target.Definition eq h_mine.Definition) && (attacker eq pSource) => ()
|
||||
|
|
@ -472,13 +472,6 @@ class ExplosiveDeployableJammerExplodeTest extends ActorTest {
|
|||
) => ;
|
||||
case _ => assert(false, "")
|
||||
}
|
||||
eventMsgs(3) match {
|
||||
case AvatarServiceMessage(
|
||||
"test",
|
||||
AvatarAction.Destroy(PlanetSideGUID(2), PlanetSideGUID(3), Service.defaultPlayerGUID, Vector3.Zero)
|
||||
) => ()
|
||||
case _ => assert(false, "")
|
||||
}
|
||||
p1Msgs.head match {
|
||||
case Vitality.Damage(_) => ()
|
||||
case _ => assert(false, "")
|
||||
|
|
|
|||
|
|
@ -1,13 +1,12 @@
|
|||
// Copyright (c) 2020 PSForever
|
||||
package objects
|
||||
|
||||
import akka.actor.{ActorRef => ClassicActorRef}
|
||||
import akka.actor.typed.ActorRef
|
||||
import akka.actor.{ActorSystem, Props}
|
||||
import akka.actor.typed.scaladsl.adapter._
|
||||
import akka.testkit.TestProbe
|
||||
import base.ActorTest
|
||||
import net.psforever.actors.session.AvatarActor
|
||||
import net.psforever.actors.zone.ZoneActor
|
||||
import net.psforever.objects.avatar.{Avatar, Certification, PlayerControl}
|
||||
import net.psforever.objects.ballistics._
|
||||
import net.psforever.objects.guid.NumberPoolHub
|
||||
|
|
@ -15,6 +14,7 @@ import net.psforever.objects.guid.source.MaxNumberSource
|
|||
import net.psforever.objects.vital.{SpawningActivity, Vitality}
|
||||
import net.psforever.objects.zones.{Zone, ZoneMap}
|
||||
import net.psforever.objects._
|
||||
import net.psforever.objects.definition.ProjectileDefinition
|
||||
import net.psforever.objects.serverobject.CommonMessages
|
||||
import net.psforever.objects.serverobject.environment.interaction.common.Watery.OxygenStateTarget
|
||||
import net.psforever.objects.serverobject.environment.{DeepSquare, EnvironmentAttribute, Pool}
|
||||
|
|
@ -22,6 +22,7 @@ import net.psforever.objects.sourcing.{PlayerSource, SourceEntry}
|
|||
import net.psforever.objects.vital.base.DamageResolution
|
||||
import net.psforever.objects.vital.interaction.DamageInteraction
|
||||
import net.psforever.objects.vital.projectile.ProjectileReason
|
||||
import net.psforever.objects.vital.resolution.ResolutionCalculations.Output
|
||||
import net.psforever.packet.game._
|
||||
import net.psforever.types._
|
||||
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
|
||||
|
|
@ -29,17 +30,17 @@ import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
|
|||
import scala.concurrent.duration._
|
||||
|
||||
class PlayerControlHealTest extends ActorTest {
|
||||
val player1 =
|
||||
val player1: Player =
|
||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=1
|
||||
val player2 =
|
||||
val player2: Player =
|
||||
Player(Avatar(1, "TestCharacter2", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=2
|
||||
val avatarProbe = TestProbe()
|
||||
val avatarProbe: TestProbe = TestProbe()
|
||||
val guid = new NumberPoolHub(new MaxNumberSource(15))
|
||||
val zone = new Zone("test", new ZoneMap("test"), 0) {
|
||||
override def SetupNumberPools() = {}
|
||||
val zone: Zone = new Zone("test", new ZoneMap("test"), 0) {
|
||||
override def SetupNumberPools(): Unit = {}
|
||||
GUID(guid)
|
||||
override def LivePlayers = List(player1, player2)
|
||||
override def AvatarEvents = avatarProbe.ref
|
||||
override def LivePlayers: List[Player] = List(player1, player2)
|
||||
override def AvatarEvents: ClassicActorRef = avatarProbe.ref
|
||||
}
|
||||
|
||||
player1.Zone = zone
|
||||
|
|
@ -52,7 +53,7 @@ class PlayerControlHealTest extends ActorTest {
|
|||
guid.register(player2.avatar.locker, 6)
|
||||
player2.Actor = system.actorOf(Props(classOf[PlayerControl], player2, null), "player2-control")
|
||||
|
||||
val tool = Tool(GlobalDefinitions.medicalapplicator) //guid=3 & 4
|
||||
val tool: Tool = Tool(GlobalDefinitions.medicalapplicator) //guid=3 & 4
|
||||
guid.register(player1, 1)
|
||||
guid.register(player2, 2)
|
||||
guid.register(tool, 3)
|
||||
|
|
@ -114,15 +115,15 @@ class PlayerControlHealTest extends ActorTest {
|
|||
}
|
||||
}
|
||||
class PlayerControlHealSelfTest extends ActorTest {
|
||||
val player1 =
|
||||
val player1: Player =
|
||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=1
|
||||
val avatarProbe = TestProbe()
|
||||
val avatarProbe: TestProbe = TestProbe()
|
||||
val guid = new NumberPoolHub(new MaxNumberSource(15))
|
||||
val zone = new Zone("test", new ZoneMap("test"), 0) {
|
||||
override def SetupNumberPools() = {}
|
||||
val zone: Zone = new Zone("test", new ZoneMap("test"), 0) {
|
||||
override def SetupNumberPools(): Unit = {}
|
||||
GUID(guid)
|
||||
override def LivePlayers = List(player1)
|
||||
override def AvatarEvents = avatarProbe.ref
|
||||
override def LivePlayers: List[Player] = List(player1)
|
||||
override def AvatarEvents: ClassicActorRef = avatarProbe.ref
|
||||
}
|
||||
|
||||
player1.Zone = zone
|
||||
|
|
@ -131,7 +132,7 @@ class PlayerControlHealSelfTest extends ActorTest {
|
|||
guid.register(player1.avatar.locker, 5)
|
||||
player1.Actor = system.actorOf(Props(classOf[PlayerControl], player1, null), "player1-control")
|
||||
|
||||
val tool = Tool(GlobalDefinitions.medicalapplicator) //guid=3 & 4
|
||||
val tool: Tool = Tool(GlobalDefinitions.medicalapplicator) //guid=3 & 4
|
||||
guid.register(player1, 1)
|
||||
guid.register(tool, 3)
|
||||
guid.register(tool.AmmoSlot.Box, 4)
|
||||
|
|
@ -189,18 +190,18 @@ class PlayerControlHealSelfTest extends ActorTest {
|
|||
}
|
||||
|
||||
class PlayerControlRepairTest extends ActorTest {
|
||||
val avatar = Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)
|
||||
val avatar: Avatar = Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)
|
||||
.copy(certifications = Set(Certification.Engineering))
|
||||
val player1 = Player(avatar) //guid=1
|
||||
val player2 =
|
||||
val player1: Player = Player(avatar) //guid=1
|
||||
val player2: Player =
|
||||
Player(Avatar(1, "TestCharacter2", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=2
|
||||
val avatarProbe = TestProbe()
|
||||
val avatarProbe: TestProbe = TestProbe()
|
||||
val guid = new NumberPoolHub(new MaxNumberSource(15))
|
||||
val zone = new Zone("test", new ZoneMap("test"), 0) {
|
||||
override def SetupNumberPools() = {}
|
||||
val zone: Zone = new Zone("test", new ZoneMap("test"), 0) {
|
||||
override def SetupNumberPools(): Unit = {}
|
||||
GUID(guid)
|
||||
override def LivePlayers = List(player1, player2)
|
||||
override def AvatarEvents = avatarProbe.ref
|
||||
override def LivePlayers: List[Player] = List(player1, player2)
|
||||
override def AvatarEvents: ClassicActorRef = avatarProbe.ref
|
||||
}
|
||||
|
||||
player1.Zone = zone
|
||||
|
|
@ -213,7 +214,7 @@ class PlayerControlRepairTest extends ActorTest {
|
|||
guid.register(player2.avatar.locker, 6)
|
||||
player2.Actor = system.actorOf(Props(classOf[PlayerControl], player2, null), "player2-control")
|
||||
|
||||
val tool = Tool(GlobalDefinitions.bank) //guid=3 & 4
|
||||
val tool: Tool = Tool(GlobalDefinitions.bank) //guid=3 & 4
|
||||
guid.register(player1, 1)
|
||||
guid.register(player2, 2)
|
||||
guid.register(tool, 3)
|
||||
|
|
@ -286,16 +287,16 @@ class PlayerControlRepairTest extends ActorTest {
|
|||
}
|
||||
|
||||
class PlayerControlRepairSelfTest extends ActorTest {
|
||||
val avatar = Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)
|
||||
val avatar: Avatar = Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)
|
||||
.copy(certifications = Set(Certification.Engineering))
|
||||
val player1 = Player(avatar) //guid=1
|
||||
val avatarProbe = TestProbe()
|
||||
val player1: Player = Player(avatar) //guid=1
|
||||
val avatarProbe: TestProbe = TestProbe()
|
||||
val guid = new NumberPoolHub(new MaxNumberSource(15))
|
||||
val zone = new Zone("test", new ZoneMap("test"), 0) {
|
||||
override def SetupNumberPools() = {}
|
||||
val zone: Zone = new Zone("test", new ZoneMap("test"), 0) {
|
||||
override def SetupNumberPools(): Unit = {}
|
||||
GUID(guid)
|
||||
override def LivePlayers = List(player1)
|
||||
override def AvatarEvents = avatarProbe.ref
|
||||
override def LivePlayers: List[Player] = List(player1)
|
||||
override def AvatarEvents: ClassicActorRef = avatarProbe.ref
|
||||
}
|
||||
|
||||
player1.Zone = zone
|
||||
|
|
@ -304,7 +305,7 @@ class PlayerControlRepairSelfTest extends ActorTest {
|
|||
guid.register(player1.avatar.locker, 5)
|
||||
player1.Actor = system.actorOf(Props(classOf[PlayerControl], player1, null), "player1-control")
|
||||
|
||||
val tool = Tool(GlobalDefinitions.bank) //guid=3 & 4
|
||||
val tool: Tool = Tool(GlobalDefinitions.bank) //guid=3 & 4
|
||||
guid.register(player1, 1)
|
||||
guid.register(tool, 3)
|
||||
guid.register(tool.AmmoSlot.Box, 4)
|
||||
|
|
@ -362,19 +363,19 @@ class PlayerControlRepairSelfTest extends ActorTest {
|
|||
}
|
||||
|
||||
class PlayerControlDamageTest extends ActorTest {
|
||||
val player1 =
|
||||
val player1: Player =
|
||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=1
|
||||
val player2 =
|
||||
val player2: Player =
|
||||
Player(Avatar(1, "TestCharacter2", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=2
|
||||
val avatarProbe = TestProbe()
|
||||
val activityProbe = TestProbe()
|
||||
val avatarProbe: TestProbe = TestProbe()
|
||||
val activityProbe: TestProbe = TestProbe()
|
||||
val guid = new NumberPoolHub(new MaxNumberSource(15))
|
||||
val zone = new Zone("test", new ZoneMap("test"), 0) {
|
||||
override def SetupNumberPools() = {}
|
||||
val zone: Zone = new Zone("test", new ZoneMap("test"), 0) {
|
||||
override def SetupNumberPools(): Unit = {}
|
||||
GUID(guid)
|
||||
override def LivePlayers = List(player1, player2)
|
||||
override def AvatarEvents = avatarProbe.ref
|
||||
override def Activity = activityProbe.ref
|
||||
override def LivePlayers: List[Player] = List(player1, player2)
|
||||
override def AvatarEvents: ClassicActorRef = avatarProbe.ref
|
||||
override def Activity: ClassicActorRef = activityProbe.ref
|
||||
}
|
||||
|
||||
player1.Zone = zone
|
||||
|
|
@ -388,10 +389,10 @@ class PlayerControlDamageTest extends ActorTest {
|
|||
val (probe, avatarActor) = PlayerControlTest.DummyAvatar(system)
|
||||
player2.Actor = system.actorOf(Props(classOf[PlayerControl], player2, avatarActor), name = "player2-control")
|
||||
|
||||
val tool = Tool(GlobalDefinitions.suppressor) //guid 3 & 4
|
||||
val projectile = tool.Projectile
|
||||
val player1Source = PlayerSource(player1)
|
||||
val resolved = DamageInteraction(
|
||||
val tool: Tool = Tool(GlobalDefinitions.suppressor) //guid 3 & 4
|
||||
val projectile: ProjectileDefinition = tool.Projectile
|
||||
val player1Source: PlayerSource = PlayerSource(player1)
|
||||
val resolved: DamageInteraction = DamageInteraction(
|
||||
SourceEntry(player2),
|
||||
ProjectileReason(
|
||||
DamageResolution.Hit,
|
||||
|
|
@ -408,7 +409,7 @@ class PlayerControlDamageTest extends ActorTest {
|
|||
),
|
||||
Vector3(1, 0, 0)
|
||||
)
|
||||
val applyDamageTo = resolved.calculate()
|
||||
val applyDamageTo: Output = resolved.calculate()
|
||||
guid.register(player1, 1)
|
||||
guid.register(player2, 2)
|
||||
guid.register(tool, 3)
|
||||
|
|
@ -467,19 +468,19 @@ class PlayerControlDamageTest extends ActorTest {
|
|||
}
|
||||
|
||||
class PlayerControlDeathStandingTest extends ActorTest {
|
||||
val player1 =
|
||||
val player1: Player =
|
||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=1
|
||||
val player2 =
|
||||
val player2: Player =
|
||||
Player(Avatar(1, "TestCharacter2", PlanetSideEmpire.NC, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=2
|
||||
val avatarProbe = TestProbe()
|
||||
val activityProbe = TestProbe()
|
||||
val avatarProbe: TestProbe = TestProbe()
|
||||
val activityProbe: TestProbe = TestProbe()
|
||||
val guid = new NumberPoolHub(new MaxNumberSource(15))
|
||||
val zone = new Zone("test", new ZoneMap("test"), 0) {
|
||||
override def SetupNumberPools() = {}
|
||||
val zone: Zone = new Zone("test", new ZoneMap("test"), 0) {
|
||||
override def SetupNumberPools(): Unit = {}
|
||||
GUID(guid)
|
||||
override def LivePlayers = List(player1, player2)
|
||||
override def AvatarEvents = avatarProbe.ref
|
||||
override def Activity = activityProbe.ref
|
||||
override def LivePlayers: List[Player] = List(player1, player2)
|
||||
override def AvatarEvents: ClassicActorRef = avatarProbe.ref
|
||||
override def Activity: ClassicActorRef = activityProbe.ref
|
||||
}
|
||||
|
||||
player1.Zone = zone
|
||||
|
|
@ -493,10 +494,10 @@ class PlayerControlDeathStandingTest extends ActorTest {
|
|||
val (probe, avatarActor) = PlayerControlTest.DummyAvatar(system)
|
||||
player2.Actor = system.actorOf(Props(classOf[PlayerControl], player2, avatarActor), name = "player2-control")
|
||||
|
||||
val tool = Tool(GlobalDefinitions.suppressor) //guid 3 & 4
|
||||
val projectile = tool.Projectile
|
||||
val player1Source = PlayerSource(player1)
|
||||
val resolved = DamageInteraction(
|
||||
val tool: Tool = Tool(GlobalDefinitions.suppressor) //guid 3 & 4
|
||||
val projectile: ProjectileDefinition = tool.Projectile
|
||||
val player1Source: PlayerSource = PlayerSource(player1)
|
||||
val resolved: DamageInteraction = DamageInteraction(
|
||||
SourceEntry(player2),
|
||||
ProjectileReason(
|
||||
DamageResolution.Hit,
|
||||
|
|
@ -513,7 +514,7 @@ class PlayerControlDeathStandingTest extends ActorTest {
|
|||
),
|
||||
Vector3(1, 0, 0)
|
||||
)
|
||||
val applyDamageTo = resolved.calculate()
|
||||
val applyDamageTo: Output = resolved.calculate()
|
||||
guid.register(player1, 1)
|
||||
guid.register(player2, 2)
|
||||
guid.register(tool, 3)
|
||||
|
|
@ -774,22 +775,22 @@ class PlayerControlDeathStandingTest extends ActorTest {
|
|||
//}
|
||||
|
||||
class PlayerControlInteractWithWaterTest extends ActorTest {
|
||||
val player1 =
|
||||
val player1: Player =
|
||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=1
|
||||
val avatarProbe = TestProbe()
|
||||
val avatarProbe: TestProbe = TestProbe()
|
||||
val guid = new NumberPoolHub(new MaxNumberSource(15))
|
||||
val pool = Pool(EnvironmentAttribute.Water, DeepSquare(-1, 10, 10, 0, 0))
|
||||
val zone = new Zone(
|
||||
val pool: Pool = Pool(EnvironmentAttribute.Water, DeepSquare(-1, 10, 10, 0, 0))
|
||||
val zone: Zone = new Zone(
|
||||
id = "test",
|
||||
new ZoneMap(name = "test-map") {
|
||||
environment = List(pool)
|
||||
},
|
||||
zoneNumber = 0
|
||||
) {
|
||||
override def SetupNumberPools() = {}
|
||||
override def SetupNumberPools(): Unit = {}
|
||||
GUID(guid)
|
||||
override def LivePlayers = List(player1)
|
||||
override def AvatarEvents = avatarProbe.ref
|
||||
override def LivePlayers: List[Player] = List(player1)
|
||||
override def AvatarEvents: ClassicActorRef = avatarProbe.ref
|
||||
}
|
||||
zone.blockMap.addTo(player1)
|
||||
zone.blockMap.addTo(pool)
|
||||
|
|
@ -828,22 +829,22 @@ class PlayerControlInteractWithWaterTest extends ActorTest {
|
|||
}
|
||||
|
||||
class PlayerControlStopInteractWithWaterTest extends ActorTest {
|
||||
val player1 =
|
||||
val player1: Player =
|
||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=1
|
||||
val avatarProbe = TestProbe()
|
||||
val avatarProbe: TestProbe = TestProbe()
|
||||
val guid = new NumberPoolHub(new MaxNumberSource(15))
|
||||
val pool = Pool(EnvironmentAttribute.Water, DeepSquare(-1, 10, 10, 0, 0))
|
||||
val zone = new Zone(
|
||||
val pool: Pool = Pool(EnvironmentAttribute.Water, DeepSquare(-1, 10, 10, 0, 0))
|
||||
val zone: Zone = new Zone(
|
||||
id = "test",
|
||||
new ZoneMap(name = "test-map") {
|
||||
environment = List(pool)
|
||||
},
|
||||
zoneNumber = 0
|
||||
) {
|
||||
override def SetupNumberPools() = {}
|
||||
override def SetupNumberPools(): Unit = {}
|
||||
GUID(guid)
|
||||
override def LivePlayers = List(player1)
|
||||
override def AvatarEvents = avatarProbe.ref
|
||||
override def LivePlayers: List[Player] = List(player1)
|
||||
override def AvatarEvents: ClassicActorRef = avatarProbe.ref
|
||||
}
|
||||
zone.blockMap.addTo(player1)
|
||||
zone.blockMap.addTo(pool)
|
||||
|
|
@ -893,23 +894,23 @@ class PlayerControlStopInteractWithWaterTest extends ActorTest {
|
|||
}
|
||||
|
||||
class PlayerControlInteractWithLavaTest extends ActorTest {
|
||||
val player1 =
|
||||
val player1: Player =
|
||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=1
|
||||
val avatarProbe = TestProbe()
|
||||
val avatarProbe: TestProbe = TestProbe()
|
||||
val guid = new NumberPoolHub(new MaxNumberSource(15))
|
||||
val pool = Pool(EnvironmentAttribute.Lava, DeepSquare(-1, 10, 10, 0, 0))
|
||||
val zone = new Zone(
|
||||
val pool: Pool = Pool(EnvironmentAttribute.Lava, DeepSquare(-1, 10, 10, 0, 0))
|
||||
val zone: Zone = new Zone(
|
||||
id = "test-map",
|
||||
new ZoneMap(name = "test-map") {
|
||||
environment = List(pool)
|
||||
},
|
||||
zoneNumber = 0
|
||||
) {
|
||||
override def SetupNumberPools() = {}
|
||||
override def SetupNumberPools(): Unit = {}
|
||||
GUID(guid)
|
||||
override def LivePlayers = List(player1)
|
||||
override def AvatarEvents = avatarProbe.ref
|
||||
override def Activity = TestProbe().ref
|
||||
override def LivePlayers: List[Player] = List(player1)
|
||||
override def AvatarEvents: ClassicActorRef = avatarProbe.ref
|
||||
override def Activity: ClassicActorRef = TestProbe().ref
|
||||
}
|
||||
zone.blockMap.addTo(player1)
|
||||
zone.blockMap.addTo(pool)
|
||||
|
|
@ -955,23 +956,23 @@ class PlayerControlInteractWithLavaTest extends ActorTest {
|
|||
}
|
||||
|
||||
class PlayerControlInteractWithDeathTest extends ActorTest {
|
||||
val player1 =
|
||||
val player1: Player =
|
||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=1
|
||||
val avatarProbe = TestProbe()
|
||||
val avatarProbe: TestProbe = TestProbe()
|
||||
val guid = new NumberPoolHub(new MaxNumberSource(15))
|
||||
val pool = Pool(EnvironmentAttribute.Death, DeepSquare(10, 10, 10, 0, 0))
|
||||
val zone = new Zone(
|
||||
val pool: Pool = Pool(EnvironmentAttribute.Death, DeepSquare(10, 10, 10, 0, 0))
|
||||
val zone: Zone = new Zone(
|
||||
id = "test-map",
|
||||
new ZoneMap(name = "test-map") {
|
||||
environment = List(pool)
|
||||
},
|
||||
zoneNumber = 0
|
||||
) {
|
||||
override def SetupNumberPools() = {}
|
||||
override def SetupNumberPools(): Unit = {}
|
||||
GUID(guid)
|
||||
override def LivePlayers = List(player1)
|
||||
override def AvatarEvents = avatarProbe.ref
|
||||
override def Activity = TestProbe().ref
|
||||
override def LivePlayers: List[Player] = List(player1)
|
||||
override def Activity: ClassicActorRef = TestProbe().ref
|
||||
override def AvatarEvents: ClassicActorRef = avatarProbe.ref
|
||||
}
|
||||
guid.register(player1, 1)
|
||||
guid.register(player1.avatar.locker, 5)
|
||||
|
|
@ -988,8 +989,9 @@ class PlayerControlInteractWithDeathTest extends ActorTest {
|
|||
"PlayerControl" should {
|
||||
"kill the player if that player steps into a pool of death" in {
|
||||
assert(player1.Health == 100) //alive
|
||||
probe.expectNoMessage(6.seconds)
|
||||
probe.expectNoMessage(5.seconds)
|
||||
player1.zoneInteractions() //trigger
|
||||
probe.receiveOne(3.seconds)
|
||||
assert(player1.Health == 0) //ded
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue