mirror of
https://github.com/psforever/PSF-LoginServer.git
synced 2026-01-19 18:44:45 +00:00
gender was never the same thing as sex; for now, I just need easy pronouns for the log
This commit is contained in:
parent
39d68b537d
commit
9798e27d29
|
|
@ -77,11 +77,11 @@
|
||||||
<onMatch>ACCEPT</onMatch>
|
<onMatch>ACCEPT</onMatch>
|
||||||
<onMismatch>DENY</onMismatch>
|
<onMismatch>DENY</onMismatch>
|
||||||
</filter>
|
</filter>
|
||||||
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
<!-- <filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||||||
<level>TRACE</level>
|
<level>TRACE</level>
|
||||||
<onMatch>ACCEPT</onMatch>
|
<onMatch>ACCEPT</onMatch>
|
||||||
<onMismatch>DENY</onMismatch>
|
<onMismatch>DENY</onMismatch>
|
||||||
</filter>
|
</filter> -->
|
||||||
</appender>
|
</appender>
|
||||||
|
|
||||||
<appender name="Sentry" class="io.sentry.logback.SentryAppender">
|
<appender name="Sentry" class="io.sentry.logback.SentryAppender">
|
||||||
|
|
|
||||||
|
|
@ -485,7 +485,7 @@ class PacketCodingActorITest extends ActorTest {
|
||||||
BasicCharacterData(
|
BasicCharacterData(
|
||||||
"IlllIIIlllIlIllIlllIllI",
|
"IlllIIIlllIlIllIlllIllI",
|
||||||
PlanetSideEmpire.VS,
|
PlanetSideEmpire.VS,
|
||||||
CharacterGender.Female,
|
CharacterSex.Female,
|
||||||
41,
|
41,
|
||||||
CharacterVoice.Voice1
|
CharacterVoice.Voice1
|
||||||
),
|
),
|
||||||
|
|
@ -600,7 +600,7 @@ class PacketCodingActorKTest extends ActorTest {
|
||||||
BasicCharacterData(
|
BasicCharacterData(
|
||||||
"IlllIIIlllIlIllIlllIllI",
|
"IlllIIIlllIlIllIlllIllI",
|
||||||
PlanetSideEmpire.VS,
|
PlanetSideEmpire.VS,
|
||||||
CharacterGender.Female,
|
CharacterSex.Female,
|
||||||
41,
|
41,
|
||||||
CharacterVoice.Voice1
|
CharacterVoice.Voice1
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,7 @@ class AutoRepairFacilityIntegrationTest extends FreedContextActorTest {
|
||||||
val building = Building.Structure(StructureType.Facility)(name = "integ-fac-test-building", guid = 6, map_id = 0, zone, context)
|
val building = Building.Structure(StructureType.Facility)(name = "integ-fac-test-building", guid = 6, map_id = 0, zone, context)
|
||||||
building.Invalidate()
|
building.Invalidate()
|
||||||
|
|
||||||
val player = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
|
val player = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
player.Spawn()
|
player.Spawn()
|
||||||
val weapon = new Tool(GlobalDefinitions.suppressor)
|
val weapon = new Tool(GlobalDefinitions.suppressor)
|
||||||
val terminal = new Terminal(AutoRepairIntegrationTest.terminal_definition)
|
val terminal = new Terminal(AutoRepairIntegrationTest.terminal_definition)
|
||||||
|
|
@ -164,7 +164,7 @@ class AutoRepairFacilityIntegrationAntGiveNtuTest extends FreedContextActorTest
|
||||||
expectNoMessage(1000 milliseconds)
|
expectNoMessage(1000 milliseconds)
|
||||||
var buildingMap = new TrieMap[Int, Building]()
|
var buildingMap = new TrieMap[Int, Building]()
|
||||||
val guid = new NumberPoolHub(new MaxNumberSource(max = 10))
|
val guid = new NumberPoolHub(new MaxNumberSource(max = 10))
|
||||||
val player = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
|
val player = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
val ant = Vehicle(GlobalDefinitions.ant)
|
val ant = Vehicle(GlobalDefinitions.ant)
|
||||||
val terminal = new Terminal(AutoRepairIntegrationTest.slow_terminal_definition)
|
val terminal = new Terminal(AutoRepairIntegrationTest.slow_terminal_definition)
|
||||||
val silo = new ResourceSilo()
|
val silo = new ResourceSilo()
|
||||||
|
|
@ -255,7 +255,7 @@ class AutoRepairFacilityIntegrationTerminalDestroyedTerminalAntTest extends Free
|
||||||
expectNoMessage(1000 milliseconds)
|
expectNoMessage(1000 milliseconds)
|
||||||
var buildingMap = new TrieMap[Int, Building]()
|
var buildingMap = new TrieMap[Int, Building]()
|
||||||
val guid = new NumberPoolHub(new MaxNumberSource(max = 10))
|
val guid = new NumberPoolHub(new MaxNumberSource(max = 10))
|
||||||
val player = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
|
val player = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
val weapon = new Tool(GlobalDefinitions.suppressor)
|
val weapon = new Tool(GlobalDefinitions.suppressor)
|
||||||
val ant = Vehicle(GlobalDefinitions.ant)
|
val ant = Vehicle(GlobalDefinitions.ant)
|
||||||
val terminal = new Terminal(AutoRepairIntegrationTest.slow_terminal_definition)
|
val terminal = new Terminal(AutoRepairIntegrationTest.slow_terminal_definition)
|
||||||
|
|
@ -357,7 +357,7 @@ class AutoRepairFacilityIntegrationTerminalIncompleteRepairTest extends FreedCon
|
||||||
expectNoMessage(1000 milliseconds)
|
expectNoMessage(1000 milliseconds)
|
||||||
var buildingMap = new TrieMap[Int, Building]()
|
var buildingMap = new TrieMap[Int, Building]()
|
||||||
val guid = new NumberPoolHub(new MaxNumberSource(max = 10))
|
val guid = new NumberPoolHub(new MaxNumberSource(max = 10))
|
||||||
val player = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
|
val player = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
val weapon = new Tool(GlobalDefinitions.suppressor)
|
val weapon = new Tool(GlobalDefinitions.suppressor)
|
||||||
val ant = Vehicle(GlobalDefinitions.ant)
|
val ant = Vehicle(GlobalDefinitions.ant)
|
||||||
val terminal = new Terminal(AutoRepairIntegrationTest.slow_terminal_definition)
|
val terminal = new Terminal(AutoRepairIntegrationTest.slow_terminal_definition)
|
||||||
|
|
@ -485,7 +485,7 @@ class AutoRepairTowerIntegrationTest extends FreedContextActorTest {
|
||||||
val building = Building.Structure(StructureType.Tower)(name = "integ-twr-test-building", guid = 6, map_id = 0, zone, context)
|
val building = Building.Structure(StructureType.Tower)(name = "integ-twr-test-building", guid = 6, map_id = 0, zone, context)
|
||||||
building.Invalidate()
|
building.Invalidate()
|
||||||
|
|
||||||
val player = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
|
val player = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
player.Spawn()
|
player.Spawn()
|
||||||
val weapon = new Tool(GlobalDefinitions.suppressor)
|
val weapon = new Tool(GlobalDefinitions.suppressor)
|
||||||
val terminal = new Terminal(AutoRepairIntegrationTest.terminal_definition)
|
val terminal = new Terminal(AutoRepairIntegrationTest.terminal_definition)
|
||||||
|
|
|
||||||
|
|
@ -20,13 +20,13 @@ import net.psforever.objects.vital.projectile.ProjectileReason
|
||||||
import net.psforever.objects.zones.{Zone, ZoneMap}
|
import net.psforever.objects.zones.{Zone, ZoneMap}
|
||||||
import net.psforever.objects.{GlobalDefinitions, Player, Tool}
|
import net.psforever.objects.{GlobalDefinitions, Player, Tool}
|
||||||
import net.psforever.services.ServiceManager
|
import net.psforever.services.ServiceManager
|
||||||
import net.psforever.types.{CharacterGender, CharacterVoice, PlanetSideEmpire, Vector3}
|
import net.psforever.types.{CharacterSex, CharacterVoice, PlanetSideEmpire, Vector3}
|
||||||
|
|
||||||
import scala.concurrent.duration._
|
import scala.concurrent.duration._
|
||||||
|
|
||||||
class AutoRepairRequestNtuTest extends FreedContextActorTest {
|
class AutoRepairRequestNtuTest extends FreedContextActorTest {
|
||||||
ServiceManager.boot
|
ServiceManager.boot
|
||||||
val player = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
|
val player = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
player.Spawn()
|
player.Spawn()
|
||||||
val weapon = new Tool(GlobalDefinitions.suppressor)
|
val weapon = new Tool(GlobalDefinitions.suppressor)
|
||||||
val terminal = new Terminal(AutoRepairTest.terminal_definition)
|
val terminal = new Terminal(AutoRepairTest.terminal_definition)
|
||||||
|
|
@ -87,7 +87,7 @@ class AutoRepairRequestNtuTest extends FreedContextActorTest {
|
||||||
|
|
||||||
class AutoRepairRequestNtuRepeatTest extends FreedContextActorTest {
|
class AutoRepairRequestNtuRepeatTest extends FreedContextActorTest {
|
||||||
ServiceManager.boot
|
ServiceManager.boot
|
||||||
val player = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
|
val player = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
player.Spawn()
|
player.Spawn()
|
||||||
val weapon = new Tool(GlobalDefinitions.suppressor)
|
val weapon = new Tool(GlobalDefinitions.suppressor)
|
||||||
val terminal = new Terminal(AutoRepairTest.terminal_definition)
|
val terminal = new Terminal(AutoRepairTest.terminal_definition)
|
||||||
|
|
@ -151,7 +151,7 @@ class AutoRepairRequestNtuRepeatTest extends FreedContextActorTest {
|
||||||
|
|
||||||
class AutoRepairNoRequestNtuTest extends FreedContextActorTest {
|
class AutoRepairNoRequestNtuTest extends FreedContextActorTest {
|
||||||
ServiceManager.boot
|
ServiceManager.boot
|
||||||
val player = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
|
val player = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
player.Spawn()
|
player.Spawn()
|
||||||
val weapon = new Tool(GlobalDefinitions.suppressor)
|
val weapon = new Tool(GlobalDefinitions.suppressor)
|
||||||
val terminal = new Terminal(AutoRepairTest.terminal_definition)
|
val terminal = new Terminal(AutoRepairTest.terminal_definition)
|
||||||
|
|
@ -209,7 +209,7 @@ class AutoRepairNoRequestNtuTest extends FreedContextActorTest {
|
||||||
|
|
||||||
class AutoRepairRestoreRequestNtuTest extends FreedContextActorTest {
|
class AutoRepairRestoreRequestNtuTest extends FreedContextActorTest {
|
||||||
ServiceManager.boot
|
ServiceManager.boot
|
||||||
val player = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
|
val player = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
player.Spawn()
|
player.Spawn()
|
||||||
val weapon = new Tool(GlobalDefinitions.suppressor)
|
val weapon = new Tool(GlobalDefinitions.suppressor)
|
||||||
val terminal = new Terminal(AutoRepairTest.terminal_definition)
|
val terminal = new Terminal(AutoRepairTest.terminal_definition)
|
||||||
|
|
@ -274,7 +274,7 @@ class AutoRepairRestoreRequestNtuTest extends FreedContextActorTest {
|
||||||
|
|
||||||
class AutoRepairRepairWithNtuTest extends FreedContextActorTest {
|
class AutoRepairRepairWithNtuTest extends FreedContextActorTest {
|
||||||
ServiceManager.boot
|
ServiceManager.boot
|
||||||
val player = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
|
val player = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
player.Spawn()
|
player.Spawn()
|
||||||
val weapon = new Tool(GlobalDefinitions.suppressor)
|
val weapon = new Tool(GlobalDefinitions.suppressor)
|
||||||
val terminal = new Terminal(AutoRepairTest.terminal_definition)
|
val terminal = new Terminal(AutoRepairTest.terminal_definition)
|
||||||
|
|
@ -336,7 +336,7 @@ class AutoRepairRepairWithNtuTest extends FreedContextActorTest {
|
||||||
|
|
||||||
class AutoRepairRepairWithNtuUntilDoneTest extends FreedContextActorTest {
|
class AutoRepairRepairWithNtuUntilDoneTest extends FreedContextActorTest {
|
||||||
ServiceManager.boot
|
ServiceManager.boot
|
||||||
val player = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
|
val player = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
player.Spawn()
|
player.Spawn()
|
||||||
val weapon = new Tool(GlobalDefinitions.suppressor)
|
val weapon = new Tool(GlobalDefinitions.suppressor)
|
||||||
val terminal = new Terminal(AutoRepairTest.terminal_definition)
|
val terminal = new Terminal(AutoRepairTest.terminal_definition)
|
||||||
|
|
|
||||||
|
|
@ -58,7 +58,7 @@ class VehicleSpawnControl3Test extends ActorTest {
|
||||||
val (vehicle, player, pad, zone) = VehicleSpawnPadControlTest.SetUpAgents(PlanetSideEmpire.TR)
|
val (vehicle, player, pad, zone) = VehicleSpawnPadControlTest.SetUpAgents(PlanetSideEmpire.TR)
|
||||||
//we can recycle the vehicle and the player for each order
|
//we can recycle the vehicle and the player for each order
|
||||||
val probe = new TestProbe(system, "zone-events")
|
val probe = new TestProbe(system, "zone-events")
|
||||||
val player2 = Player(Avatar(0, "test2", player.Faction, CharacterGender.Male, 0, CharacterVoice.Mute))
|
val player2 = Player(Avatar(0, "test2", player.Faction, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
player2.GUID = PlanetSideGUID(11)
|
player2.GUID = PlanetSideGUID(11)
|
||||||
player2.Continent = zone.id
|
player2.Continent = zone.id
|
||||||
player2.Spawn()
|
player2.Spawn()
|
||||||
|
|
@ -216,7 +216,7 @@ object VehicleSpawnPadControlTest {
|
||||||
import net.psforever.objects.serverobject.structures.Building
|
import net.psforever.objects.serverobject.structures.Building
|
||||||
import net.psforever.objects.vehicles.VehicleControl
|
import net.psforever.objects.vehicles.VehicleControl
|
||||||
import net.psforever.objects.Tool
|
import net.psforever.objects.Tool
|
||||||
import net.psforever.types.CharacterGender
|
import net.psforever.types.CharacterSex
|
||||||
|
|
||||||
val vehicle = Vehicle(GlobalDefinitions.two_man_assault_buggy)
|
val vehicle = Vehicle(GlobalDefinitions.two_man_assault_buggy)
|
||||||
val weapon = vehicle.WeaponControlledFromSeat(1).get.asInstanceOf[Tool]
|
val weapon = vehicle.WeaponControlledFromSeat(1).get.asInstanceOf[Tool]
|
||||||
|
|
@ -245,7 +245,7 @@ object VehicleSpawnPadControlTest {
|
||||||
pad.Owner.Faction = faction
|
pad.Owner.Faction = faction
|
||||||
pad.Zone = zone
|
pad.Zone = zone
|
||||||
guid.register(pad, "test-pool")
|
guid.register(pad, "test-pool")
|
||||||
val player = Player(Avatar(0, "test", faction, CharacterGender.Male, 0, CharacterVoice.Mute))
|
val player = Player(Avatar(0, "test", faction, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
guid.register(player, "test-pool")
|
guid.register(player, "test-pool")
|
||||||
player.Zone = zone
|
player.Zone = zone
|
||||||
player.Spawn()
|
player.Spawn()
|
||||||
|
|
|
||||||
|
|
@ -181,7 +181,7 @@ class DroptItemTest extends ActorTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
class LoadPlayerTest extends ActorTest {
|
class LoadPlayerTest extends ActorTest {
|
||||||
val obj = Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.VS, CharacterGender.Female, 1, CharacterVoice.Voice1))
|
val obj = Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.VS, CharacterSex.Female, 1, CharacterVoice.Voice1))
|
||||||
obj.GUID = PlanetSideGUID(10)
|
obj.GUID = PlanetSideGUID(10)
|
||||||
obj.Slot(5).Equipment.get.GUID = PlanetSideGUID(11)
|
obj.Slot(5).Equipment.get.GUID = PlanetSideGUID(11)
|
||||||
val c1data = obj.Definition.Packet.DetailedConstructorData(obj).get
|
val c1data = obj.Definition.Packet.DetailedConstructorData(obj).get
|
||||||
|
|
@ -335,7 +335,7 @@ class PlayerStateTest extends ActorTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
class PickupItemTest extends ActorTest {
|
class PickupItemTest extends ActorTest {
|
||||||
val obj = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.VS, CharacterGender.Female, 1, CharacterVoice.Voice1))
|
val obj = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.VS, CharacterSex.Female, 1, CharacterVoice.Voice1))
|
||||||
val tool = Tool(GlobalDefinitions.beamer)
|
val tool = Tool(GlobalDefinitions.beamer)
|
||||||
tool.GUID = PlanetSideGUID(40)
|
tool.GUID = PlanetSideGUID(40)
|
||||||
|
|
||||||
|
|
@ -512,7 +512,7 @@ class AvatarReleaseTest extends FreedContextActorTest {
|
||||||
GUID(guid)
|
GUID(guid)
|
||||||
}
|
}
|
||||||
zone.init(context)
|
zone.init(context)
|
||||||
val obj = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.VS, CharacterGender.Female, 1, CharacterVoice.Voice1))
|
val obj = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.VS, CharacterSex.Female, 1, CharacterVoice.Voice1))
|
||||||
guid.register(obj)
|
guid.register(obj)
|
||||||
guid.register(obj.Slot(5).Equipment.get)
|
guid.register(obj.Slot(5).Equipment.get)
|
||||||
obj.Zone = zone
|
obj.Zone = zone
|
||||||
|
|
@ -563,7 +563,7 @@ class AvatarReleaseEarly1Test extends FreedContextActorTest {
|
||||||
GUID(guid)
|
GUID(guid)
|
||||||
}
|
}
|
||||||
zone.init(context)
|
zone.init(context)
|
||||||
val obj = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.VS, CharacterGender.Female, 1, CharacterVoice.Voice1))
|
val obj = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.VS, CharacterSex.Female, 1, CharacterVoice.Voice1))
|
||||||
guid.register(obj)
|
guid.register(obj)
|
||||||
guid.register(obj.Slot(5).Equipment.get)
|
guid.register(obj.Slot(5).Equipment.get)
|
||||||
obj.Zone = zone
|
obj.Zone = zone
|
||||||
|
|
@ -615,13 +615,13 @@ class AvatarReleaseEarly2Test extends FreedContextActorTest {
|
||||||
GUID(guid)
|
GUID(guid)
|
||||||
}
|
}
|
||||||
zone.init(context)
|
zone.init(context)
|
||||||
val obj = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.VS, CharacterGender.Female, 1, CharacterVoice.Voice1))
|
val obj = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.VS, CharacterSex.Female, 1, CharacterVoice.Voice1))
|
||||||
guid.register(obj)
|
guid.register(obj)
|
||||||
guid.register(obj.Slot(5).Equipment.get)
|
guid.register(obj.Slot(5).Equipment.get)
|
||||||
obj.Zone = zone
|
obj.Zone = zone
|
||||||
obj.Release
|
obj.Release
|
||||||
val objAlt = Player(
|
val objAlt = Player(
|
||||||
Avatar(0, "TestCharacter2", PlanetSideEmpire.NC, CharacterGender.Male, 1, CharacterVoice.Voice1)
|
Avatar(0, "TestCharacter2", PlanetSideEmpire.NC, CharacterSex.Male, 1, CharacterVoice.Voice1)
|
||||||
) //necessary clutter
|
) //necessary clutter
|
||||||
objAlt.GUID = PlanetSideGUID(3)
|
objAlt.GUID = PlanetSideGUID(3)
|
||||||
objAlt.Slot(5).Equipment.get.GUID = PlanetSideGUID(4)
|
objAlt.Slot(5).Equipment.get.GUID = PlanetSideGUID(4)
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,7 @@ import net.psforever.packet.game.{
|
||||||
PlanetsideAttributeMessage
|
PlanetsideAttributeMessage
|
||||||
}
|
}
|
||||||
import net.psforever.types.{
|
import net.psforever.types.{
|
||||||
CharacterGender,
|
CharacterSex,
|
||||||
CharacterVoice,
|
CharacterVoice,
|
||||||
ExoSuitType,
|
ExoSuitType,
|
||||||
ImplantType,
|
ImplantType,
|
||||||
|
|
@ -98,7 +98,7 @@ object AvatarActor {
|
||||||
name: String,
|
name: String,
|
||||||
head: Int,
|
head: Int,
|
||||||
voice: CharacterVoice.Value,
|
voice: CharacterVoice.Value,
|
||||||
gender: CharacterGender.Value,
|
gender: CharacterSex,
|
||||||
empire: PlanetSideEmpire.Value
|
empire: PlanetSideEmpire.Value
|
||||||
) extends Command
|
) extends Command
|
||||||
|
|
||||||
|
|
@ -1275,7 +1275,7 @@ class AvatarActor(
|
||||||
.run(query[persistence.Loadout].filter(_.avatarId == lift(avatar.id)))
|
.run(query[persistence.Loadout].filter(_.avatarId == lift(avatar.id)))
|
||||||
.map { loadouts =>
|
.map { loadouts =>
|
||||||
loadouts.map { loadout =>
|
loadouts.map { loadout =>
|
||||||
val doll = new Player(Avatar(0, "doll", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
|
val doll = new Player(Avatar(0, "doll", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
doll.ExoSuit = ExoSuitType(loadout.exosuitId)
|
doll.ExoSuit = ExoSuitType(loadout.exosuitId)
|
||||||
|
|
||||||
loadout.items.split("/").foreach {
|
loadout.items.split("/").foreach {
|
||||||
|
|
|
||||||
|
|
@ -349,7 +349,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
out
|
out
|
||||||
case None =>
|
case None =>
|
||||||
//delete stale entity reference from client
|
//delete stale entity reference from client
|
||||||
log.warn(s"${player.Name} has an invalid reference to GUID ${id.get} in zone ${continent.id}")
|
log.warn(s"ValidObject - ${player.Name} has an invalid GUID ${id.get.guid}, believing it in ${player.Sex.possessive} locker")
|
||||||
sendResponse(ObjectDeleteMessage(id.get, 0))
|
sendResponse(ObjectDeleteMessage(id.get, 0))
|
||||||
None
|
None
|
||||||
}
|
}
|
||||||
|
|
@ -359,7 +359,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
|
|
||||||
case None if id.nonEmpty && id.get != PlanetSideGUID(0) =>
|
case None if id.nonEmpty && id.get != PlanetSideGUID(0) =>
|
||||||
//delete stale entity reference from client
|
//delete stale entity reference from client
|
||||||
log.warn(s"${player.Name} has an invalid reference to GUID ${id.get} in zone ${continent.id}")
|
log.warn(s"${player.Name} has an invalid reference to GUID ${id.get.guid} in zone ${continent.id}")
|
||||||
sendResponse(ObjectDeleteMessage(id.get, 0))
|
sendResponse(ObjectDeleteMessage(id.get, 0))
|
||||||
None
|
None
|
||||||
|
|
||||||
|
|
@ -556,7 +556,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
vehicle.Seats(index).mount(player)
|
vehicle.Seats(index).mount(player)
|
||||||
Some(vehicle)
|
Some(vehicle)
|
||||||
case Some((name, index)) =>
|
case Some((name, index)) =>
|
||||||
log.warn(s"TransferPassenger: mount $index is already occupied")
|
log.warn(s"TransferPassenger: $player tried to mount seat $index when it was already occupied, and was rebuked")
|
||||||
None
|
None
|
||||||
case None =>
|
case None =>
|
||||||
None
|
None
|
||||||
|
|
@ -943,7 +943,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
log.warn(s"${tplayer.Name} can not spawn in zone ${zone.id}; why?")
|
log.warn(s"${tplayer.Name} can not spawn in zone ${zone.id}; why?")
|
||||||
|
|
||||||
case Zone.Population.PlayerAlreadySpawned(zone, tplayer) =>
|
case Zone.Population.PlayerAlreadySpawned(zone, tplayer) =>
|
||||||
log.warn(s"${tplayer.Name} is already spawned on zone ${zone.id}; a clerical error?")
|
log.warn(s"${tplayer.Name} is already spawned on zone ${zone.id}; is this a clerical error?")
|
||||||
|
|
||||||
case ICS.SpawnPointResponse(response) =>
|
case ICS.SpawnPointResponse(response) =>
|
||||||
zoningType match {
|
zoningType match {
|
||||||
|
|
@ -955,8 +955,9 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
cluster ! ICS.GetInstantActionSpawnPoint(player.Faction, context.self)
|
cluster ! ICS.GetInstantActionSpawnPoint(player.Faction, context.self)
|
||||||
})
|
})
|
||||||
|
|
||||||
case zoningType =>
|
case _ =>
|
||||||
val currentZoningType = zoningType
|
log.warn(s"SpawnPointResponse: ${player.Name}'s zoning was not in order at the time a response was received; attempting to guess what ${player.Sex.pronounSubject} wants to do")
|
||||||
|
val previousZoningType = zoningType
|
||||||
CancelZoningProcess()
|
CancelZoningProcess()
|
||||||
PlayerActionsToCancel()
|
PlayerActionsToCancel()
|
||||||
CancelAllProximityUnits()
|
CancelAllProximityUnits()
|
||||||
|
|
@ -970,14 +971,14 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
player
|
player
|
||||||
}
|
}
|
||||||
val (pos, ori) = spawnPoint.SpecificPoint(obj)
|
val (pos, ori) = spawnPoint.SpecificPoint(obj)
|
||||||
if (zoningType == Zoning.Method.InstantAction)
|
if (previousZoningType == Zoning.Method.InstantAction)
|
||||||
LoadZonePhysicalSpawnPoint(zone.id, pos, ori, 0 seconds)
|
LoadZonePhysicalSpawnPoint(zone.id, pos, ori, respawnTime = 0 seconds)
|
||||||
else
|
else
|
||||||
LoadZonePhysicalSpawnPoint(zone.id, pos, ori, CountSpawnDelay(zone.id, spawnPoint, continent.id))
|
LoadZonePhysicalSpawnPoint(zone.id, pos, ori, CountSpawnDelay(zone.id, spawnPoint, continent.id))
|
||||||
case None =>
|
case None =>
|
||||||
log.error("got None spawn point response from InterstellarClusterService")
|
log.warn(s"SpawnPointResponse: ${player.Name} received no spawn point response when asking InterstellarClusterService; sending home")
|
||||||
Thread.sleep(1000) // throttle in case of infinite loop
|
//Thread.sleep(1000) // throttle in case of infinite loop
|
||||||
RequestSanctuaryZoneSpawn(player, 0)
|
RequestSanctuaryZoneSpawn(player, currentZone = 0)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -990,12 +991,12 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
case msg @ Zone.Vehicle.HasSpawned(zone, vehicle) => ;
|
case msg @ Zone.Vehicle.HasSpawned(zone, vehicle) => ;
|
||||||
|
|
||||||
case msg @ Zone.Vehicle.CanNotSpawn(zone, vehicle, reason) =>
|
case msg @ Zone.Vehicle.CanNotSpawn(zone, vehicle, reason) =>
|
||||||
log.warn(s"$msg")
|
log.warn(s"${player.Name}'s ${vehicle.Definition.Name} can not spawn in ${zone.id} because $reason")
|
||||||
|
|
||||||
case msg @ Zone.Vehicle.HasDespawned(zone, vehicle) => ;
|
case msg @ Zone.Vehicle.HasDespawned(zone, vehicle) => ;
|
||||||
|
|
||||||
case msg @ Zone.Vehicle.CanNotDespawn(zone, vehicle, reason) =>
|
case msg @ Zone.Vehicle.CanNotDespawn(zone, vehicle, reason) =>
|
||||||
log.warn(s"$msg")
|
log.warn(s"${player.Name}'s ${vehicle.Definition.Name} can not deconstruct in ${zone.id} because $reason")
|
||||||
|
|
||||||
case Zone.Deployable.DeployableIsBuilt(obj, tool) =>
|
case Zone.Deployable.DeployableIsBuilt(obj, tool) =>
|
||||||
val index = player.Find(tool) match {
|
val index = player.Find(tool) match {
|
||||||
|
|
@ -1019,7 +1020,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
case GlobalDefinitions.router_telepad => ;
|
case GlobalDefinitions.router_telepad => ;
|
||||||
case _ =>
|
case _ =>
|
||||||
log.warn(
|
log.warn(
|
||||||
s"Zone.Deployable.DeployableIsBuilt: not sure what kind of construction item to animate - ${tool.Definition}"
|
s"Zone.Deployable.DeployableIsBuilt: not sure what kind of construction item to animate - ${tool.Definition.Name}"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
import scala.concurrent.ExecutionContext.Implicits.global
|
import scala.concurrent.ExecutionContext.Implicits.global
|
||||||
|
|
@ -1116,9 +1117,9 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
sendResponse(GenericObjectActionMessage(guid, 21)) //reset build cooldown
|
sendResponse(GenericObjectActionMessage(guid, 21)) //reset build cooldown
|
||||||
sendResponse(ObjectDeployedMessage.Failure(definition.Name))
|
sendResponse(ObjectDeployedMessage.Failure(definition.Name))
|
||||||
log.warn(
|
log.warn(
|
||||||
s"FinalizeDeployable: deployable ${definition.asInstanceOf[BaseDeployableDefinition].Item}@$guid not handled by specific case"
|
s"FinalizeDeployable: deployable ${definition.Item}@$guid not handled by specific case"
|
||||||
)
|
)
|
||||||
log.warn(s"FinalizeDeployable: deployable will be cleaned up, but may not get unregistered properly")
|
log.warn(s"FinalizeDeployable: deployable ${definition.Item}@$guid will be cleaned up, but may not get unregistered properly")
|
||||||
TryDropFDU(tool, index, obj.Position)
|
TryDropFDU(tool, index, obj.Position)
|
||||||
obj.Position = Vector3.Zero
|
obj.Position = Vector3.Zero
|
||||||
continent.Deployables ! Zone.Deployable.Dismiss(obj)
|
continent.Deployables ! Zone.Deployable.Dismiss(obj)
|
||||||
|
|
@ -1194,7 +1195,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
case Zone.Nowhere =>
|
case Zone.Nowhere =>
|
||||||
RequestSanctuaryZoneSpawn(player, currentZone = 0)
|
RequestSanctuaryZoneSpawn(player, currentZone = 0)
|
||||||
case zone =>
|
case zone =>
|
||||||
log.info(s"Zone ${zone.id} will now load for ${player.Name}")
|
log.trace(s"zone ${zone.id} will now load for ${player.Name}")
|
||||||
loadConfZone = true
|
loadConfZone = true
|
||||||
val oldZone = continent
|
val oldZone = continent
|
||||||
session = session.copy(zone = zone)
|
session = session.copy(zone = zone)
|
||||||
|
|
@ -1218,7 +1219,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
}
|
}
|
||||||
|
|
||||||
case ICS.ZoneResponse(zone) =>
|
case ICS.ZoneResponse(zone) =>
|
||||||
log.info(s"Zone ${zone.get.id} will now load for ${player.Name}")
|
log.trace(s"Zone ${zone.get.id} will now load for ${player.Name}")
|
||||||
loadConfZone = true
|
loadConfZone = true
|
||||||
val oldZone = session.zone
|
val oldZone = session.zone
|
||||||
session = session.copy(zone = zone.get)
|
session = session.copy(zone = zone.get)
|
||||||
|
|
@ -1239,7 +1240,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
|
|
||||||
case NewPlayerLoaded(tplayer) =>
|
case NewPlayerLoaded(tplayer) =>
|
||||||
//new zone
|
//new zone
|
||||||
log.info(s"Player ${tplayer.Name} has been loaded")
|
log.info(s"Player ${tplayer.Name} has spawned into ${tplayer.Zone.id}")
|
||||||
tplayer.avatar = avatar
|
tplayer.avatar = avatar
|
||||||
session = session.copy(player = tplayer)
|
session = session.copy(player = tplayer)
|
||||||
avatarActor ! AvatarActor.CreateImplants()
|
avatarActor ! AvatarActor.CreateImplants()
|
||||||
|
|
@ -1296,7 +1297,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The user is either already in the current zone and merely transporting himself from one location to another,
|
* The user is either already in the current zone and merely transporting from one location to another,
|
||||||
* also called "dying", or occasionally "deconstructing,"
|
* also called "dying", or occasionally "deconstructing,"
|
||||||
* or is completely switching in between zones.
|
* or is completely switching in between zones.
|
||||||
* These correspond to the message `NewPlayerLoaded` for the case of "dying" or the latter zone switching case,
|
* These correspond to the message `NewPlayerLoaded` for the case of "dying" or the latter zone switching case,
|
||||||
|
|
@ -1318,21 +1319,21 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
val waitingOnUpstream = upstreamMessageCount == 0
|
val waitingOnUpstream = upstreamMessageCount == 0
|
||||||
if (attempt >= max_attempts && waitingOnUpstream) {
|
if (attempt >= max_attempts && waitingOnUpstream) {
|
||||||
log.warn(
|
log.warn(
|
||||||
s"SetCurrentAvatar-max attempt failure: " +
|
s"SetCurrentAvatar/${player.Name}: max attempt failure: " +
|
||||||
s"zone=${if (zoneLoaded.contains(true)) "loaded"
|
s"zone=${if (zoneLoaded.contains(true)) "loaded"
|
||||||
else if (zoneLoaded.contains(false)) "failed"
|
else if (zoneLoaded.contains(false)) "failed"
|
||||||
else "unloaded"}," +
|
else "unloaded"}, " +
|
||||||
s"guid=${tplayer.HasGUID}, control=${(tplayer.Actor != Default.Actor)}, avatar=$waitingOnUpstream"
|
s"guid=${tplayer.HasGUID}, control=${tplayer.Actor != Default.Actor}, no upstream messaging"
|
||||||
)
|
)
|
||||||
zoneLoaded match {
|
zoneLoaded match {
|
||||||
case None | Some(false) =>
|
case None | Some(false) =>
|
||||||
log.warn(
|
log.warn(
|
||||||
"SetCurrentAvatar-max attempt failure: failed to load intended destination zone; routing to faction sanctuary"
|
s"SetCurrentAvatar/${player.Name}: max attempt failure: failed to load intended destination zone; routing to faction sanctuary"
|
||||||
)
|
)
|
||||||
RequestSanctuaryZoneSpawn(tplayer, continent.Number)
|
RequestSanctuaryZoneSpawn(tplayer, continent.Number)
|
||||||
case _ =>
|
case _ =>
|
||||||
log.warn(
|
log.warn(
|
||||||
"SetCurrentAvatar-max attempt failure: the zone loaded but elements remain unready; restarting the process ..."
|
s"SetCurrentAvatar/${player.Name}: max attempt failure: the zone loaded but elements remain unready; restarting the process ..."
|
||||||
)
|
)
|
||||||
val pos = shiftPosition.getOrElse(player.Position)
|
val pos = shiftPosition.getOrElse(player.Position)
|
||||||
val orient = shiftOrientation.getOrElse(player.Orientation)
|
val orient = shiftOrientation.getOrElse(player.Orientation)
|
||||||
|
|
@ -1382,7 +1383,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
}
|
}
|
||||||
|
|
||||||
case Vitality.DamageResolution(target: PlanetSideGameObject, _) =>
|
case Vitality.DamageResolution(target: PlanetSideGameObject, _) =>
|
||||||
log.warn(s"Vital target ${target.Definition.Name} damage resolution not supported using this method")
|
log.warn(s"DamageResolution: vital target ${target.Definition.Name} damage resolution not supported")
|
||||||
|
|
||||||
case ResponseToSelf(pkt) =>
|
case ResponseToSelf(pkt) =>
|
||||||
sendResponse(pkt)
|
sendResponse(pkt)
|
||||||
|
|
@ -1499,12 +1500,12 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
|
|
||||||
case _ =>
|
case _ =>
|
||||||
//fall back to sanctuary/prior?
|
//fall back to sanctuary/prior?
|
||||||
log.error(s"LoginInfo: player $playerName could not be found in game world")
|
log.info(s"LoginInfo: player $playerName could not be found in game world")
|
||||||
self.forward(PlayerToken.LoginInfo(playerName, Zone.Nowhere, pos))
|
self.forward(PlayerToken.LoginInfo(playerName, Zone.Nowhere, pos))
|
||||||
}
|
}
|
||||||
|
|
||||||
case PlayerToken.CanNotLogin(playerName, reason) =>
|
case PlayerToken.CanNotLogin(playerName, reason) =>
|
||||||
log.warn(s"LoginInfo: player $playerName is denied login for reason: $reason")
|
log.warn(s"LoginInfo: $playerName is denied login for reason - $reason")
|
||||||
reason match {
|
reason match {
|
||||||
case PlayerToken.DeniedLoginReason.Kicked => KickedByAdministration()
|
case PlayerToken.DeniedLoginReason.Kicked => KickedByAdministration()
|
||||||
case _ => sendResponse(DisconnectMessage("You will be logged out."))
|
case _ => sendResponse(DisconnectMessage("You will be logged out."))
|
||||||
|
|
@ -1693,7 +1694,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
else PlanetSideGUID(0)
|
else PlanetSideGUID(0)
|
||||||
reply match {
|
reply match {
|
||||||
case AvatarResponse.TeardownConnection() =>
|
case AvatarResponse.TeardownConnection() =>
|
||||||
log.info("ending session by event system request (relog)")
|
log.trace(s"ending ${player.Name}'s old session by event system request (relog)")
|
||||||
context.stop(self)
|
context.stop(self)
|
||||||
|
|
||||||
case AvatarResponse.SendResponse(msg) =>
|
case AvatarResponse.SendResponse(msg) =>
|
||||||
|
|
@ -1984,12 +1985,11 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
// Check that the magazine is still empty before sending WeaponDryFireMessage
|
// Check that the magazine is still empty before sending WeaponDryFireMessage
|
||||||
// As it could have been reloaded since the packet was dispatched, which would make other clients not see it firing
|
// As it could have been reloaded since the packet was dispatched, which would make other clients not see it firing
|
||||||
continent.GUID(weapon_guid) match {
|
continent.GUID(weapon_guid) match {
|
||||||
case Some(tool: Tool) => {
|
case Some(tool: Tool) =>
|
||||||
if (tool.Magazine == 0) {
|
if (tool.Magazine == 0) {
|
||||||
sendResponse(WeaponDryFireMessage(weapon_guid))
|
sendResponse(WeaponDryFireMessage(weapon_guid))
|
||||||
}
|
}
|
||||||
}
|
case _ => ;
|
||||||
case _ => log.warn(s"Tried to send WeaponDryFire but GUID ${weapon_guid} does not seem to be a Tool")
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -2385,7 +2385,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
case Mountable.CanMount(obj: Vehicle, seat_number, _) =>
|
case Mountable.CanMount(obj: Vehicle, seat_number, _) =>
|
||||||
CancelZoningProcessWithDescriptiveReason("cancel_mount")
|
CancelZoningProcessWithDescriptiveReason("cancel_mount")
|
||||||
val obj_guid: PlanetSideGUID = obj.GUID
|
val obj_guid: PlanetSideGUID = obj.GUID
|
||||||
log.info(s"MountVehicleMsg: ${player.Name} mounts ${obj.Definition.Name} in seat $seat_number")
|
log.info(s"${player.Name} mounts ${obj.Definition.Name} in seat $seat_number")
|
||||||
CancelAllProximityUnits()
|
CancelAllProximityUnits()
|
||||||
sendResponse(PlanetsideAttributeMessage(obj_guid, 0, obj.Health))
|
sendResponse(PlanetsideAttributeMessage(obj_guid, 0, obj.Health))
|
||||||
sendResponse(PlanetsideAttributeMessage(obj_guid, 68, obj.Shields)) //shield health
|
sendResponse(PlanetsideAttributeMessage(obj_guid, 68, obj.Shields)) //shield health
|
||||||
|
|
@ -2436,7 +2436,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
keepAliveFunc = KeepAlivePersistence
|
keepAliveFunc = KeepAlivePersistence
|
||||||
|
|
||||||
case Mountable.CanMount(obj: Mountable, _, _) =>
|
case Mountable.CanMount(obj: Mountable, _, _) =>
|
||||||
log.warn(s"MountVehicleMsg: $obj is some generic mountable object and nothing will happen")
|
log.warn(s"MountVehicleMsg: $obj is some mountable object and nothing will happen for ${player.Name}")
|
||||||
|
|
||||||
case Mountable.CanDismount(obj: ImplantTerminalMech, seat_num, _) =>
|
case Mountable.CanDismount(obj: ImplantTerminalMech, seat_num, _) =>
|
||||||
DismountAction(tplayer, obj, seat_num)
|
DismountAction(tplayer, obj, seat_num)
|
||||||
|
|
@ -2505,7 +2505,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
DismountAction(tplayer, obj, seat_num)
|
DismountAction(tplayer, obj, seat_num)
|
||||||
|
|
||||||
case Mountable.CanDismount(obj: Mountable, _, _) =>
|
case Mountable.CanDismount(obj: Mountable, _, _) =>
|
||||||
log.warn(s"DismountVehicleMsg: $obj is some generic mountable object and nothing will happen")
|
log.warn(s"DismountVehicleMsg: $obj is some dismountable object but nothing will happen for ${player.Name}")
|
||||||
|
|
||||||
case Mountable.CanNotMount(obj: Vehicle, mount_point) =>
|
case Mountable.CanNotMount(obj: Vehicle, mount_point) =>
|
||||||
log.warn(s"MountVehicleMsg: ${tplayer.Name} attempted to mount $obj's mount $mount_point, but was not allowed")
|
log.warn(s"MountVehicleMsg: ${tplayer.Name} attempted to mount $obj's mount $mount_point, but was not allowed")
|
||||||
|
|
@ -2597,7 +2597,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
slot.Equipment = entry.obj
|
slot.Equipment = entry.obj
|
||||||
case None =>
|
case None =>
|
||||||
log.warn(
|
log.warn(
|
||||||
s"applying default loadout to $vehicle on spawn, but can not find a mounted weapon @ ${entry.start}"
|
s"BuyVehicle: ${player.Name} tries to apply default loadout to $vehicle on spawn, but can not find a mounted weapon for ${entry.start}"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
@ -2620,11 +2620,11 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
|
|
||||||
case Terminal.NoDeal() =>
|
case Terminal.NoDeal() =>
|
||||||
val order: String = if (msg == null) {
|
val order: String = if (msg == null) {
|
||||||
s"order $msg"
|
|
||||||
} else {
|
|
||||||
"missing order"
|
"missing order"
|
||||||
|
} else {
|
||||||
|
s"${msg.transaction_type} order"
|
||||||
}
|
}
|
||||||
log.warn(s"${tplayer.Name} made a request but the terminal rejected the $order")
|
log.warn(s"NoDeal: ${tplayer.Name} made a request but the terminal rejected the $order")
|
||||||
sendResponse(ItemTransactionResultMessage(msg.terminal_guid, msg.transaction_type, false))
|
sendResponse(ItemTransactionResultMessage(msg.terminal_guid, msg.transaction_type, false))
|
||||||
lastTerminalOrderFulfillment = true
|
lastTerminalOrderFulfillment = true
|
||||||
|
|
||||||
|
|
@ -3254,8 +3254,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
def handleGamePkt(pkt: PlanetSideGamePacket) =
|
def handleGamePkt(pkt: PlanetSideGamePacket) =
|
||||||
pkt match {
|
pkt match {
|
||||||
case ConnectToWorldRequestMessage(server, token, majorVersion, minorVersion, revision, buildDate, unk) =>
|
case ConnectToWorldRequestMessage(server, token, majorVersion, minorVersion, revision, buildDate, unk) =>
|
||||||
val clientVersion = s"Client Version: $majorVersion.$minorVersion.$revision, $buildDate"
|
log.trace(s"ConnectToWorldRequestMessage: client with versioning $majorVersion.$minorVersion.$revision, $buildDate has sent token $token to the server")
|
||||||
log.info(s"New world login to $server with Token:$token. $clientVersion")
|
|
||||||
sendResponse(ChatMsg(ChatMessageType.CMT_CULLWATERMARK, false, "", "", None))
|
sendResponse(ChatMsg(ChatMessageType.CMT_CULLWATERMARK, false, "", "", None))
|
||||||
import scala.concurrent.ExecutionContext.Implicits.global
|
import scala.concurrent.ExecutionContext.Implicits.global
|
||||||
clientKeepAlive.cancel()
|
clientKeepAlive.cancel()
|
||||||
|
|
@ -3272,12 +3271,12 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
cargo.Actor ! CargoBehavior.CheckCargoMounting(carrier_guid, mountPoint, 0)
|
cargo.Actor ! CargoBehavior.CheckCargoMounting(carrier_guid, mountPoint, 0)
|
||||||
case _ =>
|
case _ =>
|
||||||
log.warn(
|
log.warn(
|
||||||
s"MountVehicleCargoMsg: target carrier vehicle (${carrier.Definition.Name}) does not have a cargo hold"
|
s"MountVehicleCargoMsg: ${player.Name} trying to load cargo into a ${carrier.Definition.Name} which oes not have a cargo hold"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
case (None, _) | (Some(_), None) =>
|
case (None, _) | (Some(_), None) =>
|
||||||
log.warn(
|
log.warn(
|
||||||
s"MountVehicleCargoMsg: one or more of the target vehicles do not exist - $carrier_guid or $cargo_guid"
|
s"MountVehicleCargoMsg: ${player.Name} lost a vehicle while working with cargo - either $carrier_guid or $cargo_guid"
|
||||||
)
|
)
|
||||||
case _ => ;
|
case _ => ;
|
||||||
}
|
}
|
||||||
|
|
@ -3464,11 +3463,10 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
_.GUID != vehicle.GUID
|
_.GUID != vehicle.GUID
|
||||||
}
|
}
|
||||||
case Some(_) =>
|
case Some(_) =>
|
||||||
//vehicle, but we're not seated in it
|
log.warn(s"BeginZoningMessage: ${player.Name} thought ${player.Sex.pronounSubject} was sitting in a vehicle, but it just evaporated around ${player.Sex.pronounObject}")
|
||||||
player.VehicleSeated = None
|
player.VehicleSeated = None
|
||||||
(b, List.empty[Vehicle])
|
(b, List.empty[Vehicle])
|
||||||
case None =>
|
case None =>
|
||||||
//throw error since VehicleSeated didn't point to a vehicle?
|
|
||||||
player.VehicleSeated = None
|
player.VehicleSeated = None
|
||||||
(b, List.empty[Vehicle])
|
(b, List.empty[Vehicle])
|
||||||
}
|
}
|
||||||
|
|
@ -3791,16 +3789,15 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
log.warn(
|
log.warn(
|
||||||
s"ChildObjectState: ${player.Name} is using a different controllable agent than #${object_guid.guid}"
|
s"ChildObjectState: ${player.Name} is using a different controllable agent than entity ${object_guid.guid}"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
case (Some(obj), None) =>
|
case (Some(obj), None) =>
|
||||||
log.warn(
|
log.warn(
|
||||||
s"ChildObjectState: ${player.Name} can not find any controllable agent, let alone #${object_guid.guid}"
|
s"ChildObjectState: ${player.Name} can not find any controllable agent, let alone entity ${object_guid.guid}"
|
||||||
)
|
)
|
||||||
case (None, _) => ;
|
case (None, _) => ;
|
||||||
//TODO status condition of "playing getting out of vehicle to allow for late packets without warning
|
//TODO status condition of "playing getting out of vehicle to allow for late packets without warning
|
||||||
//log.warn(s"ChildObjectState: player ${player.Name} not related to anything with a controllable agent")
|
|
||||||
}
|
}
|
||||||
if (player.death_by == -1) {
|
if (player.death_by == -1) {
|
||||||
KickedByAdministration()
|
KickedByAdministration()
|
||||||
|
|
@ -3873,7 +3870,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
//TODO placing a "not driving" warning here may trigger as we are disembarking the vehicle
|
//TODO placing a "not driving" warning here may trigger as we are disembarking the vehicle
|
||||||
case (_, Some(index)) =>
|
case (_, Some(index)) =>
|
||||||
log.error(
|
log.error(
|
||||||
s"VehicleState: player should not be dispatching this kind of packet from vehicle#$vehicle_guid when not the driver ($index)"
|
s"VehicleState: ${player.Name} should not be dispatching this kind of packet from vehicle ${vehicle_guid.guid} when not the driver (actually, seat $index)"
|
||||||
)
|
)
|
||||||
case _ => ;
|
case _ => ;
|
||||||
}
|
}
|
||||||
|
|
@ -3882,7 +3879,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
}
|
}
|
||||||
|
|
||||||
case msg @ VehicleSubStateMessage(vehicle_guid, player_guid, vehicle_pos, vehicle_ang, vel, unk1, unk2) =>
|
case msg @ VehicleSubStateMessage(vehicle_guid, player_guid, vehicle_pos, vehicle_ang, vel, unk1, unk2) =>
|
||||||
//log.info(s"VehicleSubState: $vehicle_guid, ${player.Name}_guid, $vehicle_pos, $vehicle_ang, $vel, $unk1, $unk2")
|
log.debug(s"VehicleSubState: $vehicle_guid, ${player.Name}_guid, $vehicle_pos, $vehicle_ang, $vel, $unk1, $unk2")
|
||||||
|
|
||||||
case msg @ ProjectileStateMessage(projectile_guid, shot_pos, shot_vel, shot_orient, seq, end, target_guid) =>
|
case msg @ ProjectileStateMessage(projectile_guid, shot_pos, shot_vel, shot_orient, seq, end, target_guid) =>
|
||||||
val index = projectile_guid.guid - Projectile.baseUID
|
val index = projectile_guid.guid - Projectile.baseUID
|
||||||
|
|
@ -3912,13 +3909,13 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
}
|
}
|
||||||
|
|
||||||
case msg @ ReleaseAvatarRequestMessage() =>
|
case msg @ ReleaseAvatarRequestMessage() =>
|
||||||
log.info(s"ReleaseAvatarRequest: ${player.Name} on ${continent.id} has released")
|
log.info(s"${player.Name} on ${continent.id} has released")
|
||||||
reviveTimer.cancel()
|
reviveTimer.cancel()
|
||||||
GoToDeploymentMap()
|
GoToDeploymentMap()
|
||||||
HandleReleaseAvatar(player, continent)
|
HandleReleaseAvatar(player, continent)
|
||||||
|
|
||||||
case msg @ SpawnRequestMessage(u1, spawnGroup, u3, u4, zoneNumber) =>
|
case msg @ SpawnRequestMessage(u1, spawnGroup, u3, u4, zoneNumber) =>
|
||||||
log.info(s"SpawnRequestMessage: ${player.Name} on ${continent.id} wants to respawn in $zoneNumber")
|
log.info(s"${player.Name} on ${continent.id} wants to respawn in zone #$zoneNumber")
|
||||||
if (deadState != DeadState.RespawnTime) {
|
if (deadState != DeadState.RespawnTime) {
|
||||||
deadState = DeadState.RespawnTime
|
deadState = DeadState.RespawnTime
|
||||||
cluster ! ICS.GetNearbySpawnPoint(
|
cluster ! ICS.GetNearbySpawnPoint(
|
||||||
|
|
@ -3933,20 +3930,22 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
context.self
|
context.self
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
log.warn("SpawnRequestMessage: request consumed; already respawning ...")
|
log.warn(s"SpawnRequestMessage: request consumed because ${player.Name} is already respawning ...")
|
||||||
}
|
}
|
||||||
|
|
||||||
case msg @ SetChatFilterMessage(send_channel, origin, whitelist) =>
|
case _ : SetChatFilterMessage => //msg @ SetChatFilterMessage(send_channel, origin, whitelist) => ;
|
||||||
//log.info("SetChatFilters: " + msg)
|
|
||||||
|
|
||||||
case msg: ChatMsg =>
|
case msg : ChatMsg =>
|
||||||
chatActor ! ChatActor.Message(msg)
|
chatActor ! ChatActor.Message(msg)
|
||||||
|
|
||||||
case msg @ VoiceHostRequest(unk, PlanetSideGUID(player_guid), data) =>
|
case _ : VoiceHostRequest =>
|
||||||
log.trace("Player " + player_guid + " requested in-game voice chat.")
|
log.trace(s"${player.Name} requested in-game voice chat.")
|
||||||
sendResponse(VoiceHostKill())
|
sendResponse(VoiceHostKill())
|
||||||
|
sendResponse(
|
||||||
|
ChatMsg(ChatMessageType.CMT_OPEN, false, "", "Try our Discord at https://discord.gg/0nRe5TNbTYoUruA4", None)
|
||||||
|
)
|
||||||
|
|
||||||
case msg @ VoiceHostInfo(player_guid, data) =>
|
case _ : VoiceHostInfo =>
|
||||||
sendResponse(VoiceHostKill())
|
sendResponse(VoiceHostKill())
|
||||||
|
|
||||||
case msg @ ChangeAmmoMessage(item_guid, unk1) =>
|
case msg @ ChangeAmmoMessage(item_guid, unk1) =>
|
||||||
|
|
@ -3956,9 +3955,9 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
case (Some(obj), Some(tool: Tool)) =>
|
case (Some(obj), Some(tool: Tool)) =>
|
||||||
PerformToolAmmoChange(tool, obj)
|
PerformToolAmmoChange(tool, obj)
|
||||||
case (_, Some(obj)) =>
|
case (_, Some(obj)) =>
|
||||||
log.error(s"ChangeAmmo: the ${obj.Definition.Name} in ${player.Name}'s hands does not contain ammunition")
|
log.warn(s"ChangeAmmo: the ${obj.Definition.Name} in ${player.Name}'s hands does not contain ammunition")
|
||||||
case (_, None) =>
|
case (_, None) =>
|
||||||
log.error(s"ChangeAmmo: can not find $item_guid")
|
log.warn(s"ChangeAmmo: can not find $item_guid")
|
||||||
}
|
}
|
||||||
|
|
||||||
case msg @ ChangeFireModeMessage(item_guid, fire_mode) =>
|
case msg @ ChangeFireModeMessage(item_guid, fire_mode) =>
|
||||||
|
|
@ -3977,7 +3976,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
obj.FireModeIndex = originalModeIndex
|
obj.FireModeIndex = originalModeIndex
|
||||||
sendResponse(ChangeFireModeMessage(tool_guid, originalModeIndex)) //reinforcement
|
sendResponse(ChangeFireModeMessage(tool_guid, originalModeIndex)) //reinforcement
|
||||||
} else {
|
} else {
|
||||||
log.info(s"ChangeFireMode: ${player.Name} is changing his ${obj.Definition.Name} to fire mode $modeIndex")
|
log.info(s"${player.Name} is changing his ${obj.Definition.Name} to fire mode #$modeIndex")
|
||||||
sendResponse(ChangeFireModeMessage(tool_guid, modeIndex))
|
sendResponse(ChangeFireModeMessage(tool_guid, modeIndex))
|
||||||
continent.AvatarEvents ! AvatarServiceMessage(
|
continent.AvatarEvents ! AvatarServiceMessage(
|
||||||
continent.id,
|
continent.id,
|
||||||
|
|
@ -3985,9 +3984,9 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
case Some(_) =>
|
case Some(_) =>
|
||||||
log.error(s"ChangeFireMode: the object that was found for $item_guid does not possess fire modes")
|
log.warn(s"ChangeFireMode: the object that was found for $item_guid does not possess fire modes")
|
||||||
case None =>
|
case None =>
|
||||||
log.error(s"ChangeFireMode: can not find $item_guid")
|
log.warn(s"ChangeFireMode: can not find $item_guid")
|
||||||
}
|
}
|
||||||
|
|
||||||
case msg @ ChangeFireStateMessage_Start(item_guid) =>
|
case msg @ ChangeFireStateMessage_Start(item_guid) =>
|
||||||
|
|
@ -4018,7 +4017,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
log.warn(
|
log.warn(
|
||||||
s"ChangeFireState_Start: ${player.Name}'s ${tool.Definition.Name} magazine was empty before trying to shoot!"
|
s"ChangeFireState_Start: ${player.Name}'s ${tool.Definition.Name} magazine was empty before trying to shoot"
|
||||||
)
|
)
|
||||||
EmptyMagazine(item_guid, tool)
|
EmptyMagazine(item_guid, tool)
|
||||||
}
|
}
|
||||||
|
|
@ -4031,7 +4030,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
AvatarAction.ChangeFireState_Start(player.GUID, item_guid)
|
AvatarAction.ChangeFireState_Start(player.GUID, item_guid)
|
||||||
)
|
)
|
||||||
case None =>
|
case None =>
|
||||||
log.error(s"ChangeFireState_Start: can not find $item_guid")
|
log.warn(s"ChangeFireState_Start: can not find $item_guid")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -4072,7 +4071,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
)
|
)
|
||||||
Some(tool)
|
Some(tool)
|
||||||
case _ =>
|
case _ =>
|
||||||
log.warn(s"ChangeFireState_Stop: received an unexpected message about $item_guid")
|
log.warn(s"ChangeFireState_Stop: ${player.Name} never started firing item ${item_guid.guid} in the first place?")
|
||||||
None
|
None
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -4126,7 +4125,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
log.warn(s"DropItem: ${player.Name} wanted to drop a $obj, but that isn't possible")
|
log.warn(s"DropItem: ${player.Name} wanted to drop a $obj, but that isn't possible")
|
||||||
case None =>
|
case None =>
|
||||||
sendResponse(ObjectDeleteMessage(item_guid, 0)) //this is fine; item doesn't exist to the server anyway
|
sendResponse(ObjectDeleteMessage(item_guid, 0)) //this is fine; item doesn't exist to the server anyway
|
||||||
log.warn(s"DropItem: ${player.Name} wanted to drop an item ($item_guid), but it was nowhere to be found")
|
log.warn(s"DropItem: ${player.Name} wanted to drop an item ${item_guid.guid}, but it was nowhere to be found")
|
||||||
}
|
}
|
||||||
|
|
||||||
case msg @ PickupItemMessage(item_guid, player_guid, unk1, unk2) =>
|
case msg @ PickupItemMessage(item_guid, player_guid, unk1, unk2) =>
|
||||||
|
|
@ -4141,29 +4140,25 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
}
|
}
|
||||||
case _ =>
|
case _ =>
|
||||||
log.warn(
|
log.warn(
|
||||||
s"PickupItem: ${player.Name} requested an item that doesn't seem to exist"
|
s"PickupItem: ${player.Name} requested an item ${item_guid.guid} that doesn't seem to exist"
|
||||||
)
|
)
|
||||||
sendResponse(ObjectDeleteMessage(item_guid, 0))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
case msg @ ReloadMessage(item_guid, ammo_clip, unk1) =>
|
case msg @ ReloadMessage(item_guid, ammo_clip, unk1) =>
|
||||||
FindContainedWeapon match {
|
FindContainedWeapon match {
|
||||||
case (Some(obj), Some(tool: Tool)) =>
|
case (Some(obj: PlanetSideServerObject with Container), Some(tool: Tool)) =>
|
||||||
val currentMagazine: Int = tool.Magazine
|
val currentMagazine: Int = tool.Magazine
|
||||||
val magazineSize: Int = tool.MaxMagazine
|
val magazineSize: Int = tool.MaxMagazine
|
||||||
val reloadValue: Int = magazineSize - currentMagazine
|
val reloadValue: Int = magazineSize - currentMagazine
|
||||||
if (magazineSize > 0 && reloadValue > 0) {
|
if (magazineSize > 0 && reloadValue > 0) {
|
||||||
FindEquipmentStock(obj, FindAmmoBoxThatUses(tool.AmmoType), reloadValue, CountAmmunition).reverse match {
|
FindEquipmentStock(obj, FindAmmoBoxThatUses(tool.AmmoType), reloadValue, CountAmmunition).reverse match {
|
||||||
case Nil =>
|
case Nil => ;
|
||||||
log.warn(s"ReloadMessage: no ammunition could be found for $item_guid")
|
|
||||||
case x :: xs =>
|
case x :: xs =>
|
||||||
val (deleteFunc, modifyFunc): (Equipment => Future[Any], (AmmoBox, Int) => Unit) = obj match {
|
val (deleteFunc, modifyFunc): (Equipment => Future[Any], (AmmoBox, Int) => Unit) = obj match {
|
||||||
case veh: Vehicle =>
|
case veh: Vehicle =>
|
||||||
(RemoveOldEquipmentFromInventory(veh), ModifyAmmunitionInVehicle(veh))
|
(RemoveOldEquipmentFromInventory(veh), ModifyAmmunitionInVehicle(veh))
|
||||||
case o: PlanetSideServerObject with Container =>
|
|
||||||
(RemoveOldEquipmentFromInventory(o), ModifyAmmunition(o))
|
|
||||||
case _ =>
|
case _ =>
|
||||||
throw new Exception("ReloadMessage: should be a server object, not a regular game object")
|
(RemoveOldEquipmentFromInventory(obj), ModifyAmmunition(obj))
|
||||||
}
|
}
|
||||||
xs.foreach { item => deleteFunc(item.obj) }
|
xs.foreach { item => deleteFunc(item.obj) }
|
||||||
val box = x.obj.asInstanceOf[AmmoBox]
|
val box = x.obj.asInstanceOf[AmmoBox]
|
||||||
|
|
@ -4180,7 +4175,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
modifyFunc(box, reloadValue - tailReloadValue)
|
modifyFunc(box, reloadValue - tailReloadValue)
|
||||||
reloadValue
|
reloadValue
|
||||||
}) + currentMagazine
|
}) + currentMagazine
|
||||||
log.info(s"ReloadMessage: ${player.Name} successfully reloaded $actualReloadValue ${tool.AmmoType} into $tool")
|
log.info(s"${player.Name} successfully reloaded $actualReloadValue ${tool.AmmoType} into $tool")
|
||||||
tool.Magazine = actualReloadValue
|
tool.Magazine = actualReloadValue
|
||||||
sendResponse(ReloadMessage(item_guid, actualReloadValue, unk1))
|
sendResponse(ReloadMessage(item_guid, actualReloadValue, unk1))
|
||||||
continent.AvatarEvents ! AvatarServiceMessage(
|
continent.AvatarEvents ! AvatarServiceMessage(
|
||||||
|
|
@ -4189,12 +4184,12 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
log.warn(s"ReloadMessage: the $tool in ${player.Name}'s hand can not reload (full=$magazineSize, want=$reloadValue)")
|
log.warn(s"ReloadMessage: the ${tool.Definition.Name} under ${player.Name}'s control can not reload (full=$magazineSize, want=$reloadValue)")
|
||||||
}
|
}
|
||||||
case (_, Some(_)) =>
|
case (_, Some(_)) =>
|
||||||
log.error(s"ReloadMessage: the object that was found for $item_guid was not a Tool")
|
log.warn(s"ReloadMessage: the object that was found for $item_guid was not a Tool")
|
||||||
case (_, None) =>
|
case (_, None) =>
|
||||||
log.error(s"ReloadMessage: can not find $item_guid")
|
log.warn(s"ReloadMessage: can not find $item_guid")
|
||||||
}
|
}
|
||||||
|
|
||||||
case msg @ ObjectHeldMessage(avatar_guid, held_holsters, unk1) =>
|
case msg @ ObjectHeldMessage(avatar_guid, held_holsters, unk1) =>
|
||||||
|
|
@ -4214,7 +4209,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
if (held_holsters >= 0 && held_holsters < 5) {
|
if (held_holsters >= 0 && held_holsters < 5) {
|
||||||
player.Holsters()(held_holsters).Equipment match {
|
player.Holsters()(held_holsters).Equipment match {
|
||||||
case Some(unholsteredItem: Equipment) =>
|
case Some(unholsteredItem: Equipment) =>
|
||||||
log.info(s"ObjectHeld: ${player.Name} has drawn a $unholsteredItem from its holster")
|
log.info(s"${player.Name} has drawn a $unholsteredItem from its holster")
|
||||||
if (unholsteredItem.Definition == GlobalDefinitions.remote_electronics_kit) {
|
if (unholsteredItem.Definition == GlobalDefinitions.remote_electronics_kit) {
|
||||||
// Player has unholstered a REK - we need to set an atttribute on the REK itself to change the beam/icon colour to the correct one for the player's hack level
|
// Player has unholstered a REK - we need to set an atttribute on the REK itself to change the beam/icon colour to the correct one for the player's hack level
|
||||||
continent.AvatarEvents ! AvatarServiceMessage(
|
continent.AvatarEvents ! AvatarServiceMessage(
|
||||||
|
|
@ -4434,11 +4429,11 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
case (Some(obj), _) =>
|
case (Some(obj), _) =>
|
||||||
log.warn(s"LootItem: item $obj is (probably) not lootable to ${player.Name}")
|
log.error(s"LootItem: item $obj is (probably) not lootable to ${player.Name}")
|
||||||
case (None, _) =>
|
case (None, _) =>
|
||||||
log.warn(s"LootItem: ${player.Name} can not find $item_guid")
|
log.error(s"LootItem: ${player.Name} can not find $item_guid")
|
||||||
case (_, None) =>
|
case (_, None) =>
|
||||||
log.warn(s"LootItem: ${player.Name} can not find where to put $item_guid")
|
log.error(s"LootItem: ${player.Name} can not find where to put $item_guid")
|
||||||
}
|
}
|
||||||
|
|
||||||
case msg @ AvatarImplantMessage(player_guid, action, slot, status) =>
|
case msg @ AvatarImplantMessage(player_guid, action, slot, status) =>
|
||||||
|
|
@ -4452,7 +4447,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
avatarActor ! AvatarActor.DeactivateImplant(implant.definition.implantType)
|
avatarActor ! AvatarActor.DeactivateImplant(implant.definition.implantType)
|
||||||
}
|
}
|
||||||
case Some(implant) if !implant.initialized => ()
|
case Some(implant) if !implant.initialized => ()
|
||||||
case _ => log.error(s"AvatarImplantMessage: ${player.Name} has an unknown implant in $slot")
|
case _ => log.error(s"AvatarImplantMessage: ${player.Name} has an unknown implant in $slot")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -4494,7 +4489,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
CancelZoningProcessWithDescriptiveReason("cancel_use")
|
CancelZoningProcessWithDescriptiveReason("cancel_use")
|
||||||
if (obj.isBackpack) {
|
if (obj.isBackpack) {
|
||||||
if (equipment.isEmpty) {
|
if (equipment.isEmpty) {
|
||||||
log.info(s"UseItem: ${player.Name} is looting the corpse of ${obj.Name}")
|
log.info(s"${player.Name} is looting the corpse of ${obj.Name}")
|
||||||
sendResponse(
|
sendResponse(
|
||||||
UseItemMessage(
|
UseItemMessage(
|
||||||
avatar_guid,
|
avatar_guid,
|
||||||
|
|
@ -4638,7 +4633,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
case Some(item) =>
|
case Some(item) =>
|
||||||
log.warn(s"UseItem: ${player.Name} looking for Kit to use, but found $item instead")
|
log.warn(s"UseItem: ${player.Name} looking for Kit to use, but found $item instead")
|
||||||
case None =>
|
case None =>
|
||||||
log.warn(s"UseItem: anticipated a Kit $item_used_guid for ${player.Name}, but can't find it")
|
log.error(s"UseItem: anticipated a Kit $item_used_guid for ${player.Name}, but can't find it")
|
||||||
}
|
}
|
||||||
} else if (itemType == ObjectClass.avatar && unk3) {
|
} else if (itemType == ObjectClass.avatar && unk3) {
|
||||||
equipment match {
|
equipment match {
|
||||||
|
|
@ -4656,8 +4651,8 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
case Some(item) =>
|
case Some(item) =>
|
||||||
CancelZoningProcessWithDescriptiveReason("cancel_use")
|
CancelZoningProcessWithDescriptiveReason("cancel_use")
|
||||||
locker.Actor ! CommonMessages.Use(player, Some(item))
|
locker.Actor ! CommonMessages.Use(player, Some(item))
|
||||||
case None if locker.Faction == player.Faction || !locker.HackedBy.isEmpty =>
|
case None if locker.Faction == player.Faction || locker.HackedBy.nonEmpty =>
|
||||||
log.info(s"UseItem: ${player.Name} is accessing a locker")
|
log.info(s"${player.Name} is accessing a locker")
|
||||||
CancelZoningProcessWithDescriptiveReason("cancel_use")
|
CancelZoningProcessWithDescriptiveReason("cancel_use")
|
||||||
val playerLocker = player.avatar.locker
|
val playerLocker = player.avatar.locker
|
||||||
sendResponse(
|
sendResponse(
|
||||||
|
|
@ -4936,7 +4931,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
case Some(obj) => ;
|
case Some(obj) => ;
|
||||||
log.warn(s"ProximityTerminalUse: $obj does not have proximity effects for ${player.Name}")
|
log.warn(s"ProximityTerminalUse: $obj does not have proximity effects for ${player.Name}")
|
||||||
case None =>
|
case None =>
|
||||||
log.warn(s"ProximityTerminalUse: ${player.Name} can not find an oject with guid $object_guid")
|
log.error(s"ProximityTerminalUse: ${player.Name} can not find an oject with guid $object_guid")
|
||||||
}
|
}
|
||||||
|
|
||||||
case msg @ UnuseItemMessage(player_guid, object_guid) =>
|
case msg @ UnuseItemMessage(player_guid, object_guid) =>
|
||||||
|
|
@ -4967,7 +4962,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
case turret =>
|
case turret =>
|
||||||
turret
|
turret
|
||||||
}
|
}
|
||||||
log.info(s"DeployObject: ${player.Name} is constructing a $ammoType deployable")
|
log.info(s"${player.Name} is constructing a $ammoType deployable")
|
||||||
CancelZoningProcessWithDescriptiveReason("cancel_use")
|
CancelZoningProcessWithDescriptiveReason("cancel_use")
|
||||||
val dObj: PlanetSideGameObject with Deployable = Deployables.Make(ammoType)()
|
val dObj: PlanetSideGameObject with Deployable = Deployables.Make(ammoType)()
|
||||||
dObj.Position = pos
|
dObj.Position = pos
|
||||||
|
|
@ -4983,9 +4978,9 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
continent.tasks ! CallBackForTask(tasking, continent.Deployables, Zone.Deployable.Build(dObj, obj))
|
continent.tasks ! CallBackForTask(tasking, continent.Deployables, Zone.Deployable.Build(dObj, obj))
|
||||||
|
|
||||||
case Some(obj) =>
|
case Some(obj) =>
|
||||||
log.warn(s"DeployObject: What is $obj, ${player.Name}? It's not a construction tool!")
|
log.warn(s"DeployObject: what is $obj, ${player.Name}? It's not a construction tool!")
|
||||||
case None =>
|
case None =>
|
||||||
log.warn(s"DeployObject: nothing, ${player.Name}? It's not a construction tool!")
|
log.error(s"DeployObject: nothing, ${player.Name}? It's not a construction tool!")
|
||||||
}
|
}
|
||||||
|
|
||||||
case msg @ GenericObjectActionMessage(object_guid, code) =>
|
case msg @ GenericObjectActionMessage(object_guid, code) =>
|
||||||
|
|
@ -4999,13 +4994,12 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
}
|
}
|
||||||
|
|
||||||
case msg @ GenericObjectStateMsg(object_guid, unk1) =>
|
case msg @ GenericObjectStateMsg(object_guid, unk1) =>
|
||||||
log.info("GenericObjectState: " + msg)
|
log.debug("GenericObjectState: " + msg)
|
||||||
|
|
||||||
case msg @ GenericActionMessage(action) =>
|
case msg @ GenericActionMessage(action) =>
|
||||||
log.info(s"GenericAction: $msg")
|
|
||||||
if (player == null) {
|
if (player == null) {
|
||||||
if (action == 29) {
|
if (action == 29) {
|
||||||
log.info("AFK state reported during login")
|
log.debug("GenericObjectState: AFK state reported during login")
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
val (toolOpt, definition) = player.Slot(0).Equipment match {
|
val (toolOpt, definition) = player.Slot(0).Equipment match {
|
||||||
|
|
@ -5022,7 +5016,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
player.AwayFromKeyboard = false
|
player.AwayFromKeyboard = false
|
||||||
}
|
}
|
||||||
if (action == 15) { //max deployment
|
if (action == 15) { //max deployment
|
||||||
log.info(s"GenericObject: ${player.Name} is anchored")
|
log.info(s"${player.Name} has anchored ${player.Sex.pronounObject}self to the ground")
|
||||||
player.UsingSpecial = SpecialExoSuitDefinition.Mode.Anchored
|
player.UsingSpecial = SpecialExoSuitDefinition.Mode.Anchored
|
||||||
continent.AvatarEvents ! AvatarServiceMessage(
|
continent.AvatarEvents ! AvatarServiceMessage(
|
||||||
continent.id,
|
continent.id,
|
||||||
|
|
@ -5040,10 +5034,10 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
tool.ToFireMode = convertFireModeIndex
|
tool.ToFireMode = convertFireModeIndex
|
||||||
sendResponse(ChangeFireModeMessage(tool.GUID, convertFireModeIndex))
|
sendResponse(ChangeFireModeMessage(tool.GUID, convertFireModeIndex))
|
||||||
case _ =>
|
case _ =>
|
||||||
log.warn(s"GenericObject: ${player.Name} is a MAX with an unexpected weapon - ${definition.Name}")
|
log.warn(s"GenericObject: ${player.Name} is a MAX with an unexpected attachment - ${definition.Name}")
|
||||||
}
|
}
|
||||||
} else if (action == 16) { //max deployment
|
} else if (action == 16) { //max deployment
|
||||||
log.info(s"GenericObject: ${player.Name} has released the anchors")
|
log.info(s"${player.Name} has released the anchors")
|
||||||
player.UsingSpecial = SpecialExoSuitDefinition.Mode.Normal
|
player.UsingSpecial = SpecialExoSuitDefinition.Mode.Normal
|
||||||
continent.AvatarEvents ! AvatarServiceMessage(
|
continent.AvatarEvents ! AvatarServiceMessage(
|
||||||
continent.id,
|
continent.id,
|
||||||
|
|
@ -5061,23 +5055,23 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
tool.ToFireMode = convertFireModeIndex
|
tool.ToFireMode = convertFireModeIndex
|
||||||
sendResponse(ChangeFireModeMessage(tool.GUID, convertFireModeIndex))
|
sendResponse(ChangeFireModeMessage(tool.GUID, convertFireModeIndex))
|
||||||
case _ =>
|
case _ =>
|
||||||
log.warn(s"GenericObject: $player is MAX with an unexpected weapon - ${definition.Name}")
|
log.warn(s"GenericObject: $player is MAX with an unexpected attachment - ${definition.Name}")
|
||||||
}
|
}
|
||||||
} else if (action == 20) {
|
} else if (action == 20) {
|
||||||
if (player.ExoSuit == ExoSuitType.MAX) {
|
if (player.ExoSuit == ExoSuitType.MAX) {
|
||||||
ToggleMaxSpecialState(enable = true)
|
ToggleMaxSpecialState(enable = true)
|
||||||
} else {
|
} else {
|
||||||
log.warn(s"${player.Name} got GenericActionMessage 20 but can't handle it")
|
log.warn(s"GenericActionMessage: ${player.Name} can't handle action code 20")
|
||||||
}
|
}
|
||||||
} else if (action == 21) {
|
} else if (action == 21) {
|
||||||
if (player.ExoSuit == ExoSuitType.MAX) {
|
if (player.ExoSuit == ExoSuitType.MAX) {
|
||||||
player.Faction match {
|
player.Faction match {
|
||||||
case PlanetSideEmpire.NC =>
|
case PlanetSideEmpire.NC =>
|
||||||
ToggleMaxSpecialState(enable = false)
|
ToggleMaxSpecialState(enable = false)
|
||||||
case _ => log.warn(s"${player.Name} tried to cancel an uncancellable MAX special ability")
|
case _ => log.warn(s"GenericActionMessage: ${player.Name} tried to cancel an uncancellable MAX special ability")
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
log.warn(s"${player.Name} got GenericActionMessage 21 but can't handle it")
|
log.warn(s"GenericActionMessage: ${player.Name} can't handle action code 21")
|
||||||
}
|
}
|
||||||
} else if (action == 36) { //Looking For Squad ON
|
} else if (action == 36) { //Looking For Squad ON
|
||||||
if (squadUI.nonEmpty) {
|
if (squadUI.nonEmpty) {
|
||||||
|
|
@ -5103,13 +5097,15 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
} else if (avatar.lookingForSquad) {
|
} else if (avatar.lookingForSquad) {
|
||||||
avatarActor ! AvatarActor.SetLookingForSquad(false)
|
avatarActor ! AvatarActor.SetLookingForSquad(false)
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
log.debug(s"$msg")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
case msg @ ItemTransactionMessage(terminal_guid, transaction_type, _, _, _, _) =>
|
case msg @ ItemTransactionMessage(terminal_guid, transaction_type, _, _, _, _) =>
|
||||||
continent.GUID(terminal_guid) match {
|
continent.GUID(terminal_guid) match {
|
||||||
case Some(term: Terminal) =>
|
case Some(term: Terminal) =>
|
||||||
log.info(s"ItemTransaction: ${player.Name} is using a terminal")
|
log.info(s"${player.Name} is using a terminal")
|
||||||
if (lastTerminalOrderFulfillment) {
|
if (lastTerminalOrderFulfillment) {
|
||||||
lastTerminalOrderFulfillment = false
|
lastTerminalOrderFulfillment = false
|
||||||
CancelZoningProcessWithDescriptiveReason("cancel_use")
|
CancelZoningProcessWithDescriptiveReason("cancel_use")
|
||||||
|
|
@ -5123,7 +5119,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
|
|
||||||
case msg @ FavoritesRequest(player_guid, loadoutType, action, line, label) =>
|
case msg @ FavoritesRequest(player_guid, loadoutType, action, line, label) =>
|
||||||
CancelZoningProcessWithDescriptiveReason("cancel_use")
|
CancelZoningProcessWithDescriptiveReason("cancel_use")
|
||||||
log.info(s"FavoritesRequest: ${player.Name} wishes to load a saved favorite entry")
|
log.info(s"${player.Name} wishes to load a saved favorite loadout")
|
||||||
action match {
|
action match {
|
||||||
case FavoritesAction.Save => avatarActor ! AvatarActor.SaveLoadout(player, loadoutType, label, line)
|
case FavoritesAction.Save => avatarActor ! AvatarActor.SaveLoadout(player, loadoutType, label, line)
|
||||||
case FavoritesAction.Delete => avatarActor ! AvatarActor.DeleteLoadout(player, loadoutType, line)
|
case FavoritesAction.Delete => avatarActor ! AvatarActor.DeleteLoadout(player, loadoutType, line)
|
||||||
|
|
@ -5139,7 +5135,10 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
continent.id,
|
continent.id,
|
||||||
AvatarAction.WeaponDryFire(player.GUID, weapon_guid)
|
AvatarAction.WeaponDryFire(player.GUID, weapon_guid)
|
||||||
)
|
)
|
||||||
case _ => ;
|
case Some(_) =>
|
||||||
|
log.warn(s"WeaponDryFire: ${player.Name}'s weapon ${weapon_guid.guid} does not seem to be a weapon")
|
||||||
|
case None =>
|
||||||
|
log.error(s"WeaponDryFire: ${player.Name}'s weapon ${weapon_guid.guid} does not seem to exist")
|
||||||
}
|
}
|
||||||
|
|
||||||
case msg @ WeaponFireMessage(
|
case msg @ WeaponFireMessage(
|
||||||
|
|
@ -5157,8 +5156,8 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
) =>
|
) =>
|
||||||
HandleWeaponFire(weapon_guid, projectile_guid, shot_origin)
|
HandleWeaponFire(weapon_guid, projectile_guid, shot_origin)
|
||||||
|
|
||||||
case msg @ WeaponLazeTargetPositionMessage(weapon, pos1, pos2) =>
|
case msg @ WeaponLazeTargetPositionMessage(_, _, pos2) =>
|
||||||
//log.info(s"Lazing position: ${pos2.toString}")
|
log.debug(s"${player.Name} is lazing the position $pos2; to what ends?")
|
||||||
|
|
||||||
case msg @ ObjectDetectedMessage(guid1, guid2, unk, targets) =>
|
case msg @ ObjectDetectedMessage(guid1, guid2, unk, targets) =>
|
||||||
FindWeapon match {
|
FindWeapon match {
|
||||||
|
|
@ -5183,7 +5182,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
unk3,
|
unk3,
|
||||||
unk4
|
unk4
|
||||||
) =>
|
) =>
|
||||||
log.trace(s"Hit: $msg")
|
log.trace(s"${player.Name} hits with $msg")
|
||||||
//find defined projectile
|
//find defined projectile
|
||||||
FindProjectileEntry(projectile_guid) match {
|
FindProjectileEntry(projectile_guid) match {
|
||||||
case Some(projectile) =>
|
case Some(projectile) =>
|
||||||
|
|
@ -5258,7 +5257,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
unk4,
|
unk4,
|
||||||
targets
|
targets
|
||||||
) =>
|
) =>
|
||||||
log.trace(s"Splash: $msg")
|
log.trace(s"${player.Name} splashes with $msg")
|
||||||
FindProjectileEntry(projectile_guid) match {
|
FindProjectileEntry(projectile_guid) match {
|
||||||
case Some(projectile) =>
|
case Some(projectile) =>
|
||||||
val profile = projectile.profile
|
val profile = projectile.profile
|
||||||
|
|
@ -5319,7 +5318,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
}
|
}
|
||||||
|
|
||||||
case msg @ LashMessage(seq_time, killer_guid, victim_guid, projectile_guid, hit_pos, unk1) =>
|
case msg @ LashMessage(seq_time, killer_guid, victim_guid, projectile_guid, hit_pos, unk1) =>
|
||||||
log.info(s"Lash: $msg")
|
log.trace(s"${player.Name} lashes with $msg")
|
||||||
ValidObject(victim_guid) match {
|
ValidObject(victim_guid) match {
|
||||||
case Some(target: PlanetSideGameObject with FactionAffinity with Vitality) =>
|
case Some(target: PlanetSideGameObject with FactionAffinity with Vitality) =>
|
||||||
CheckForHitPositionDiscrepancy(projectile_guid, hit_pos, target)
|
CheckForHitPositionDiscrepancy(projectile_guid, hit_pos, target)
|
||||||
|
|
@ -5358,7 +5357,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
destinationBuildingGuid,
|
destinationBuildingGuid,
|
||||||
context.self
|
context.self
|
||||||
)
|
)
|
||||||
log.info(s"WarpgateRequest: ${player.Name} is trying to use a warp gate")
|
log.info(s"${player.Name} is trying to use a warp gate")
|
||||||
|
|
||||||
case Some(wg: WarpGate) if !wg.Active =>
|
case Some(wg: WarpGate) if !wg.Active =>
|
||||||
log.warn(s"WarpgateRequest: ${player.Name} is knocking on an inactive warp gate")
|
log.warn(s"WarpgateRequest: ${player.Name} is knocking on an inactive warp gate")
|
||||||
|
|
@ -5368,22 +5367,23 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
RequestSanctuaryZoneSpawn(player, continent.Number)
|
RequestSanctuaryZoneSpawn(player, continent.Number)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
log.warn(s"WarpgateRequest: your request was already consumed, ${player.Name}; already working on it ...")
|
log.debug(s"WarpgateRequest: your request was already consumed, ${player.Name}; already working on it ...")
|
||||||
}
|
}
|
||||||
|
|
||||||
case msg @ MountVehicleMsg(player_guid, mountable_guid, entry_point) =>
|
case msg @ MountVehicleMsg(player_guid, mountable_guid, entry_point) =>
|
||||||
ValidObject(mountable_guid) match {
|
ValidObject(mountable_guid) match {
|
||||||
case Some(obj: Mountable) =>
|
case Some(obj: Mountable) =>
|
||||||
obj.Actor ! Mountable.TryMount(player, entry_point)
|
obj.Actor ! Mountable.TryMount(player, entry_point)
|
||||||
|
|
||||||
case None | Some(_) =>
|
case None | Some(_) =>
|
||||||
log.warn(s"MountVehicleMsg: object ${mountable_guid.guid} not a mountable thing, ${player.Name}")
|
log.error(s"MountVehicleMsg: object ${mountable_guid.guid} not a mountable thing, ${player.Name}")
|
||||||
}
|
}
|
||||||
|
|
||||||
case msg @ DismountVehicleMsg(player_guid, bailType, wasKickedByDriver) =>
|
case msg @ DismountVehicleMsg(player_guid, bailType, wasKickedByDriver) =>
|
||||||
//TODO optimize this later
|
//TODO optimize this later
|
||||||
//common warning for this section
|
//common warning for this section
|
||||||
def dismountWarning(note: String): Unit = {
|
def dismountWarning(note: String): Unit = {
|
||||||
log.warn(s"$note; some vehicle might not know that ${player.Name} is no longer sitting in it")
|
log.error(s"$note; some vehicle might not know that ${player.Name} is no longer sitting in it")
|
||||||
}
|
}
|
||||||
if (player.GUID == player_guid) {
|
if (player.GUID == player_guid) {
|
||||||
//normally disembarking from a mount
|
//normally disembarking from a mount
|
||||||
|
|
@ -5469,22 +5469,26 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
}
|
}
|
||||||
|
|
||||||
case msg @ DeployRequestMessage(player_guid, vehicle_guid, deploy_state, unk2, unk3, pos) =>
|
case msg @ DeployRequestMessage(player_guid, vehicle_guid, deploy_state, unk2, unk3, pos) =>
|
||||||
if (player.avatar.vehicle.contains(vehicle_guid) && player.avatar.vehicle == player.VehicleSeated) {
|
if (player.avatar.vehicle.contains(vehicle_guid)) {
|
||||||
continent.GUID(vehicle_guid) match {
|
if (player.avatar.vehicle == player.VehicleSeated) {
|
||||||
case Some(obj: Vehicle) =>
|
continent.GUID(vehicle_guid) match {
|
||||||
log.info(s"DeployRequest: ${player.Name} is requesting a deployment change for ${obj.Definition.Name}")
|
case Some(obj: Vehicle) =>
|
||||||
obj.Actor ! Deployment.TryDeploymentChange(deploy_state)
|
log.info(s"${player.Name} is requesting a deployment change for ${obj.Definition.Name}")
|
||||||
|
obj.Actor ! Deployment.TryDeploymentChange(deploy_state)
|
||||||
|
|
||||||
case _ =>
|
case _ =>
|
||||||
log.error(s"DeployRequest: can not find vehicle $vehicle_guid")
|
log.error(s"DeployRequest: ${player.Name} can not find vehicle $vehicle_guid")
|
||||||
avatarActor ! AvatarActor.SetVehicle(None)
|
avatarActor ! AvatarActor.SetVehicle(None)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
log.warn(s"${player.Name} must be mounted to request a deployment change")
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
log.warn(s"DeployRequest: ${player.Name} does not own the deploying $vehicle_guid object")
|
log.warn(s"DeployRequest: ${player.Name} does not own the deploying $vehicle_guid object")
|
||||||
}
|
}
|
||||||
|
|
||||||
case msg @ AvatarGrenadeStateMessage(player_guid, state) =>
|
case msg @ AvatarGrenadeStateMessage(player_guid, state) =>
|
||||||
log.info("AvatarGrenadeStateMessage: " + msg) //TODO I thought I had this working?
|
log.debug(s"${player.Name} lofts his grenade high ... $msg") //TODO I thought I had this working?
|
||||||
|
|
||||||
case msg @ SquadDefinitionActionMessage(u1, u2, action) =>
|
case msg @ SquadDefinitionActionMessage(u1, u2, action) =>
|
||||||
squadService ! SquadServiceMessage(player, continent, SquadServiceAction.Definition(u1, u2, action))
|
squadService ! SquadServiceMessage(player, continent, SquadServiceAction.Definition(u1, u2, action))
|
||||||
|
|
@ -5514,13 +5518,13 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
summary,
|
summary,
|
||||||
desc
|
desc
|
||||||
) =>
|
) =>
|
||||||
log.info(s"BugReportMessage: ${player.Name} filed $msg")
|
log.warn(s"${player.Name} filed a $msg")
|
||||||
|
log.debug(s"$msg")
|
||||||
|
|
||||||
case msg @ BindPlayerMessage(action, bindDesc, unk1, logging, unk2, unk3, unk4, pos) =>
|
case msg @ BindPlayerMessage(action, bindDesc, unk1, logging, unk2, unk3, unk4, pos) =>
|
||||||
//log.info("BindPlayerMessage: " + msg)
|
//log.info("BindPlayerMessage: " + msg)
|
||||||
|
|
||||||
case msg @ PlanetsideAttributeMessage(object_guid, attribute_type, attribute_value) =>
|
case msg @ PlanetsideAttributeMessage(object_guid, attribute_type, attribute_value) =>
|
||||||
log.info("PlanetsideAttributeMessage: " + msg)
|
|
||||||
ValidObject(object_guid) match {
|
ValidObject(object_guid) match {
|
||||||
case Some(vehicle: Vehicle) =>
|
case Some(vehicle: Vehicle) =>
|
||||||
if (player.avatar.vehicle.contains(vehicle.GUID)) {
|
if (player.avatar.vehicle.contains(vehicle.GUID)) {
|
||||||
|
|
@ -5528,7 +5532,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
vehicle.PermissionGroup(attribute_type, attribute_value) match {
|
vehicle.PermissionGroup(attribute_type, attribute_value) match {
|
||||||
case Some(allow) =>
|
case Some(allow) =>
|
||||||
val group = AccessPermissionGroup(attribute_type - 10)
|
val group = AccessPermissionGroup(attribute_type - 10)
|
||||||
log.info(s"Vehicle attributes: ${player.Name} changed ${vehicle.Definition.Name}'s access permission $group changed to $allow")
|
log.info(s"${player.Name} changed ${vehicle.Definition.Name}'s access permission $group changed to $allow")
|
||||||
continent.VehicleEvents ! VehicleServiceMessage(
|
continent.VehicleEvents ! VehicleServiceMessage(
|
||||||
continent.id,
|
continent.id,
|
||||||
VehicleAction.SeatPermissions(player.GUID, vehicle.GUID, attribute_type, attribute_value)
|
VehicleAction.SeatPermissions(player.GUID, vehicle.GUID, attribute_type, attribute_value)
|
||||||
|
|
@ -5569,7 +5573,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
log.warn(s"Vehicle attributes: unsupported change on vehicle $object_guid - $attribute_type, ${player.Name}")
|
log.warn(s"Vehicle attributes: unsupported change on vehicle $object_guid - $attribute_type, ${player.Name}")
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
log.warn(s"Vehicle attributes: ${player.Name} does not own vehicle ${vehicle.GUID} and can not change it")
|
log.warn(s"PlanetsideAttributeMessage: vehicle attributes - ${player.Name} does not own vehicle ${vehicle.GUID} and can not change it")
|
||||||
}
|
}
|
||||||
|
|
||||||
// Cosmetics options
|
// Cosmetics options
|
||||||
|
|
@ -5577,7 +5581,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
avatarActor ! AvatarActor.SetCosmetics(Cosmetic.valuesFromAttributeValue(attribute_value))
|
avatarActor ! AvatarActor.SetCosmetics(Cosmetic.valuesFromAttributeValue(attribute_value))
|
||||||
|
|
||||||
case _ =>
|
case _ =>
|
||||||
log.warn(s"echoing unknown attributes behavior")
|
log.warn(s"PlanetsideAttributeMessage: echoing unknown attributes behavior $attribute_type back to ${player.Name}")
|
||||||
sendResponse(PlanetsideAttributeMessage(object_guid, attribute_type, attribute_value))
|
sendResponse(PlanetsideAttributeMessage(object_guid, attribute_type, attribute_value))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -5599,7 +5603,9 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
}
|
}
|
||||||
|
|
||||||
case msg @ BattleplanMessage(char_id, player_name, zone_id, diagrams) =>
|
case msg @ BattleplanMessage(char_id, player_name, zone_id, diagrams) =>
|
||||||
log.info(s"Battleplan: ${player.Name} has a brilliant idea that no one will ever see")
|
val lament: String = s"${player.Name} has a brilliant idea that no one will ever see"
|
||||||
|
log.info(lament)
|
||||||
|
log.debug(s"BattleplanMessage: $lament - $msg")
|
||||||
|
|
||||||
case msg @ CreateShortcutMessage(player_guid, slot, unk, add, shortcut) => ;
|
case msg @ CreateShortcutMessage(player_guid, slot, unk, add, shortcut) => ;
|
||||||
|
|
||||||
|
|
@ -6367,8 +6373,8 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
sumReloadValue
|
sumReloadValue
|
||||||
} else {
|
} else {
|
||||||
val splitReloadAmmo: Int = sumReloadValue - fullMagazine
|
val splitReloadAmmo: Int = sumReloadValue - fullMagazine
|
||||||
log.info(
|
log.trace(
|
||||||
s"ChangeAmmo: ${player.Name} takes ${originalBoxCapacity - splitReloadAmmo} from a box of ${originalBoxCapacity} $requestedAmmoType ammo"
|
s"${player.Name} takes ${originalBoxCapacity - splitReloadAmmo} from a box of $originalBoxCapacity $requestedAmmoType ammo"
|
||||||
)
|
)
|
||||||
val boxForInventory = AmmoBox(box.Definition, splitReloadAmmo)
|
val boxForInventory = AmmoBox(box.Definition, splitReloadAmmo)
|
||||||
continent.tasks ! stowNewFunc(boxForInventory)
|
continent.tasks ! stowNewFunc(boxForInventory)
|
||||||
|
|
@ -6377,7 +6383,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
sendResponse(
|
sendResponse(
|
||||||
InventoryStateMessage(box.GUID, tool.GUID, box.Capacity)
|
InventoryStateMessage(box.GUID, tool.GUID, box.Capacity)
|
||||||
) //should work for both players and vehicles
|
) //should work for both players and vehicles
|
||||||
log.info(s"ChangeAmmo: ${player.Name} loads ${box.Capacity} $requestedAmmoType into ${tool.GUID} in $ammoSlotIndex")
|
log.info(s"${player.Name} loads ${box.Capacity} $requestedAmmoType into ${tool.GUID} in $ammoSlotIndex")
|
||||||
if (previousBox.Capacity > 0) {
|
if (previousBox.Capacity > 0) {
|
||||||
//divide capacity across other existing and not full boxes of that ammo type
|
//divide capacity across other existing and not full boxes of that ammo type
|
||||||
var capacity = previousBox.Capacity
|
var capacity = previousBox.Capacity
|
||||||
|
|
@ -6397,7 +6403,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
val entry = iter.next()
|
val entry = iter.next()
|
||||||
val item: AmmoBox = entry.obj.asInstanceOf[AmmoBox]
|
val item: AmmoBox = entry.obj.asInstanceOf[AmmoBox]
|
||||||
val ammoAllocated = math.min(item.FullCapacity - item.Capacity, capacity)
|
val ammoAllocated = math.min(item.FullCapacity - item.Capacity, capacity)
|
||||||
log.info(s"ChangeAmmo: ${player.Name} put $ammoAllocated back into a box of ${item.Capacity} $originalAmmoType")
|
log.info(s"${player.Name} put $ammoAllocated back into a box of ${item.Capacity} $originalAmmoType")
|
||||||
capacity -= ammoAllocated
|
capacity -= ammoAllocated
|
||||||
modifyFunc(item, -ammoAllocated)
|
modifyFunc(item, -ammoAllocated)
|
||||||
}
|
}
|
||||||
|
|
@ -7738,7 +7744,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
def DismountAction(tplayer: Player, obj: PlanetSideGameObject with Mountable, seatNum: Int): Unit = {
|
def DismountAction(tplayer: Player, obj: PlanetSideGameObject with Mountable, seatNum: Int): Unit = {
|
||||||
val player_guid: PlanetSideGUID = tplayer.GUID
|
val player_guid: PlanetSideGUID = tplayer.GUID
|
||||||
log.info(
|
log.info(
|
||||||
s"DismountVehicleMsg: ${tplayer.Name} dismounts a ${obj.Definition.asInstanceOf[ObjectDefinition].Name} from seat $seatNum"
|
s"${tplayer.Name} dismounts a ${obj.Definition.asInstanceOf[ObjectDefinition].Name} from seat $seatNum"
|
||||||
)
|
)
|
||||||
keepAliveFunc = NormalKeepAlive
|
keepAliveFunc = NormalKeepAlive
|
||||||
sendResponse(DismountVehicleMsg(player_guid, BailType.Normal, wasKickedByDriver = false))
|
sendResponse(DismountVehicleMsg(player_guid, BailType.Normal, wasKickedByDriver = false))
|
||||||
|
|
@ -7943,7 +7949,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
obj.ModePermissions
|
obj.ModePermissions
|
||||||
) && originalAmmoIndex != obj.AmmoTypeIndex)
|
) && originalAmmoIndex != obj.AmmoTypeIndex)
|
||||||
log.info(
|
log.info(
|
||||||
s"ChangeFireMode: ${player.Name} switched construction object ${obj.Definition.Name} to ${obj.AmmoType} (mode ${obj.FireModeIndex})"
|
s"${player.Name} switched construction object ${obj.Definition.Name} to ${obj.AmmoType} (mode #${obj.FireModeIndex})"
|
||||||
)
|
)
|
||||||
sendResponse(ChangeAmmoMessage(obj.GUID, obj.AmmoTypeIndex))
|
sendResponse(ChangeAmmoMessage(obj.GUID, obj.AmmoTypeIndex))
|
||||||
}
|
}
|
||||||
|
|
@ -8119,7 +8125,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
player.Slot(newIndex).Equipment = None
|
player.Slot(newIndex).Equipment = None
|
||||||
true
|
true
|
||||||
case None =>
|
case None =>
|
||||||
log.error(s"$logDecorator: ${player.Name} could not find the target ${tool.Definition.Name}")
|
log.warn(s"$logDecorator: ${player.Name} could not find the target ${tool.Definition.Name}")
|
||||||
false
|
false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -8345,7 +8351,9 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
* does not factor in any time required for loading zone or game objects
|
* does not factor in any time required for loading zone or game objects
|
||||||
*/
|
*/
|
||||||
def LoadZonePhysicalSpawnPoint(zoneId: String, pos: Vector3, ori: Vector3, respawnTime: FiniteDuration): Unit = {
|
def LoadZonePhysicalSpawnPoint(zoneId: String, pos: Vector3, ori: Vector3, respawnTime: FiniteDuration): Unit = {
|
||||||
log.info(s"LoadZonePhysicalSpawnPoint: ${player.Name} will load in zone $zoneId at position $pos in $respawnTime")
|
val msg = s"${player.Name} will load in zone $zoneId at position $pos in $respawnTime"
|
||||||
|
log.info(msg)
|
||||||
|
log.debug(s"LoadZonePhysicalSpawnPoint: $msg")
|
||||||
respawnTimer.cancel()
|
respawnTimer.cancel()
|
||||||
reviveTimer.cancel()
|
reviveTimer.cancel()
|
||||||
deadState = DeadState.RespawnTime
|
deadState = DeadState.RespawnTime
|
||||||
|
|
@ -8409,7 +8417,9 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
* @param zoneId the zone in which the player will be placed
|
* @param zoneId the zone in which the player will be placed
|
||||||
*/
|
*/
|
||||||
def LoadZoneAsPlayer(targetPlayer: Player, zoneId: String): Unit = {
|
def LoadZoneAsPlayer(targetPlayer: Player, zoneId: String): Unit = {
|
||||||
log.info(s"LoadZoneAsPlayer ${targetPlayer.avatar.name} loading into $zoneId")
|
val msg: String = s"${targetPlayer.avatar.name} loading into $zoneId"
|
||||||
|
log.info(msg)
|
||||||
|
log.debug(s"LoadZoneAsPlayer: $msg")
|
||||||
if (!zoneReload && zoneId == continent.id) {
|
if (!zoneReload && zoneId == continent.id) {
|
||||||
if (player.isBackpack) { // important! test the actor-wide player ref, not the parameter
|
if (player.isBackpack) { // important! test the actor-wide player ref, not the parameter
|
||||||
// respawning from unregistered player
|
// respawning from unregistered player
|
||||||
|
|
@ -8490,7 +8500,9 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
* @return a tuple composed of an `ActorRef` destination and a message to send to that destination
|
* @return a tuple composed of an `ActorRef` destination and a message to send to that destination
|
||||||
*/
|
*/
|
||||||
def LoadZoneInVehicleAsDriver(vehicle: Vehicle, zoneId: String): Unit = {
|
def LoadZoneInVehicleAsDriver(vehicle: Vehicle, zoneId: String): Unit = {
|
||||||
log.info(s"LoadZoneInVehicleAsDriver: ${player.Name} loading into $zoneId, driving a ${vehicle.Definition.Name}")
|
val msg: String = s"${player.Name} loading into $zoneId, driving a ${vehicle.Definition.Name}"
|
||||||
|
log.info(msg)
|
||||||
|
log.debug(s"LoadZoneInVehicleAsDriver: $msg")
|
||||||
val manifest = vehicle.PrepareGatingManifest()
|
val manifest = vehicle.PrepareGatingManifest()
|
||||||
val pguid = player.GUID
|
val pguid = player.GUID
|
||||||
val toChannel = manifest.file
|
val toChannel = manifest.file
|
||||||
|
|
@ -8502,7 +8514,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
manifest.cargo.foreach {
|
manifest.cargo.foreach {
|
||||||
case ("MISSING_DRIVER", index) =>
|
case ("MISSING_DRIVER", index) =>
|
||||||
val cargo = vehicle.CargoHolds(index).occupant.get
|
val cargo = vehicle.CargoHolds(index).occupant.get
|
||||||
log.error(s"LoadZoneInVehicleAsDriver: ${player.Name} must eject cargo in hold $index; vehicle is missing driver")
|
log.warn(s"LoadZoneInVehicleAsDriver: ${player.Name} must eject cargo in hold $index; vehicle is missing driver")
|
||||||
CargoBehavior.HandleVehicleCargoDismount(cargo.GUID, cargo, vehicle.GUID, vehicle, false, false, true)
|
CargoBehavior.HandleVehicleCargoDismount(cargo.GUID, cargo, vehicle.GUID, vehicle, false, false, true)
|
||||||
case (name, index) =>
|
case (name, index) =>
|
||||||
val cargo = vehicle.CargoHolds(index).occupant.get
|
val cargo = vehicle.CargoHolds(index).occupant.get
|
||||||
|
|
@ -8581,7 +8593,9 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
* @return a tuple composed of an `ActorRef` destination and a message to send to that destination
|
* @return a tuple composed of an `ActorRef` destination and a message to send to that destination
|
||||||
*/
|
*/
|
||||||
def LoadZoneInVehicleAsPassenger(vehicle: Vehicle, zoneId: String): Unit = {
|
def LoadZoneInVehicleAsPassenger(vehicle: Vehicle, zoneId: String): Unit = {
|
||||||
log.info(s"LoadZoneInVehicleAsPassenger: ${player.Name} loading into $zoneId as the passenger of a ${vehicle.Definition.Name}")
|
val msg: String = s"${player.Name} loading into $zoneId as the passenger of a ${vehicle.Definition.Name}\""
|
||||||
|
log.info(msg)
|
||||||
|
log.debug(s"LoadZoneInVehicleAsPassenger: $msg")
|
||||||
if (!zoneReload && zoneId == continent.id) {
|
if (!zoneReload && zoneId == continent.id) {
|
||||||
//transferring a vehicle between spawn points (warp gates) in the same zone
|
//transferring a vehicle between spawn points (warp gates) in the same zone
|
||||||
self ! PlayerLoaded(player)
|
self ! PlayerLoaded(player)
|
||||||
|
|
|
||||||
|
|
@ -1646,7 +1646,7 @@ object GlobalDefinitions {
|
||||||
1.093750f // same regardless of gender
|
1.093750f // same regardless of gender
|
||||||
} else if (p.ExoSuit == ExoSuitType.MAX) {
|
} else if (p.ExoSuit == ExoSuitType.MAX) {
|
||||||
1.906250f // VS female MAX
|
1.906250f // VS female MAX
|
||||||
} else if (p.Sex == CharacterGender.Male) {
|
} else if (p.Sex == CharacterSex.Male) {
|
||||||
obj.Definition.MaxDepth // male
|
obj.Definition.MaxDepth // male
|
||||||
} else {
|
} else {
|
||||||
1.546875f // female
|
1.546875f // female
|
||||||
|
|
|
||||||
|
|
@ -79,7 +79,7 @@ class Player(var avatar: Avatar)
|
||||||
|
|
||||||
def Faction: PlanetSideEmpire.Value = avatar.faction
|
def Faction: PlanetSideEmpire.Value = avatar.faction
|
||||||
|
|
||||||
def Sex: CharacterGender.Value = avatar.sex
|
def Sex: CharacterSex = avatar.sex
|
||||||
|
|
||||||
def Head: Int = avatar.head
|
def Head: Int = avatar.head
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -72,7 +72,7 @@ case class Avatar(
|
||||||
id: Int,
|
id: Int,
|
||||||
name: String,
|
name: String,
|
||||||
faction: PlanetSideEmpire.Value,
|
faction: PlanetSideEmpire.Value,
|
||||||
sex: CharacterGender.Value,
|
sex: CharacterSex,
|
||||||
head: Int,
|
head: Int,
|
||||||
voice: CharacterVoice.Value,
|
voice: CharacterVoice.Value,
|
||||||
bep: Long = 0,
|
bep: Long = 0,
|
||||||
|
|
|
||||||
|
|
@ -714,7 +714,7 @@ class PlayerControl(player: Player, avatarActor: typed.ActorRef[AvatarActor.Comm
|
||||||
case Some(a) =>
|
case Some(a) =>
|
||||||
damageLog.info(s"DisplayDestroy: ${a.defender} was killed by ${a.attacker}")
|
damageLog.info(s"DisplayDestroy: ${a.defender} was killed by ${a.attacker}")
|
||||||
case _ =>
|
case _ =>
|
||||||
damageLog.info(s"DisplayDestroy: ${player.Name} killed ${if(player.Sex==CharacterGender.Male){"himself"}else{"herself"}}.")
|
damageLog.info(s"DisplayDestroy: ${player.Name} killed ${player.Sex.pronounObject}self.")
|
||||||
}
|
}
|
||||||
events ! AvatarServiceMessage(
|
events ! AvatarServiceMessage(
|
||||||
nameChannel,
|
nameChannel,
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ class CorpseConverter extends AvatarConverter {
|
||||||
*/
|
*/
|
||||||
private def MakeAppearanceData(obj: Player): Int => CharacterAppearanceData = {
|
private def MakeAppearanceData(obj: Player): Int => CharacterAppearanceData = {
|
||||||
val aa: Int => CharacterAppearanceA = CharacterAppearanceA(
|
val aa: Int => CharacterAppearanceA = CharacterAppearanceA(
|
||||||
BasicCharacterData(obj.Name, obj.Faction, CharacterGender.Male, 0, CharacterVoice.Mute),
|
BasicCharacterData(obj.Name, obj.Faction, CharacterSex.Male, 0, CharacterVoice.Mute),
|
||||||
CommonFieldData(
|
CommonFieldData(
|
||||||
obj.Faction,
|
obj.Faction,
|
||||||
bops = false,
|
bops = false,
|
||||||
|
|
|
||||||
|
|
@ -183,7 +183,7 @@ object CargoBehavior {
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
false
|
false
|
||||||
//sending packet to the cargo vehicle's client results in player locking himself in his vehicle
|
//sending packet to the cargo vehicle's client results in player being lock in own vehicle
|
||||||
//player gets stuck as "always trying to remount the cargo hold"
|
//player gets stuck as "always trying to remount the cargo hold"
|
||||||
//obviously, don't do this
|
//obviously, don't do this
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -281,7 +281,7 @@ object CargoBehavior {
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
false
|
false
|
||||||
//sending packet to the cargo vehicle's client results in player locking himself in his vehicle
|
//sending packet to the cargo vehicle's client results in player being lock in own vehicle
|
||||||
//player gets stuck as "always trying to remount the cargo hold"
|
//player gets stuck as "always trying to remount the cargo hold"
|
||||||
//obviously, don't do this
|
//obviously, don't do this
|
||||||
} else if (iteration > 40) {
|
} else if (iteration > 40) {
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
package net.psforever.packet.game
|
package net.psforever.packet.game
|
||||||
|
|
||||||
import net.psforever.packet.{GamePacketOpcode, Marshallable, PacketHelpers, PlanetSideGamePacket}
|
import net.psforever.packet.{GamePacketOpcode, Marshallable, PacketHelpers, PlanetSideGamePacket}
|
||||||
import net.psforever.types.{CharacterGender, CharacterVoice, PlanetSideEmpire}
|
import net.psforever.types.{CharacterSex, CharacterVoice, PlanetSideEmpire}
|
||||||
import scodec.{Attempt, Codec, Err}
|
import scodec.{Attempt, Codec, Err}
|
||||||
import scodec.codecs._
|
import scodec.codecs._
|
||||||
import shapeless.{::, HNil}
|
import shapeless.{::, HNil}
|
||||||
|
|
@ -14,7 +14,7 @@ final case class CharacterCreateRequestMessage(
|
||||||
name: String,
|
name: String,
|
||||||
headId: Int,
|
headId: Int,
|
||||||
voiceId: CharacterVoice.Value,
|
voiceId: CharacterVoice.Value,
|
||||||
gender: CharacterGender.Value,
|
gender: CharacterSex,
|
||||||
empire: PlanetSideEmpire.Value
|
empire: PlanetSideEmpire.Value
|
||||||
) extends PlanetSideGamePacket {
|
) extends PlanetSideGamePacket {
|
||||||
type Packet = CharacterCreateRequestMessage
|
type Packet = CharacterCreateRequestMessage
|
||||||
|
|
@ -29,7 +29,7 @@ object CharacterCreateRequestMessage extends Marshallable[CharacterCreateRequest
|
||||||
("name" | PacketHelpers.encodedWideString) ::
|
("name" | PacketHelpers.encodedWideString) ::
|
||||||
("headId" | uint8L) ::
|
("headId" | uint8L) ::
|
||||||
("voiceId" | character_voice_codec) ::
|
("voiceId" | character_voice_codec) ::
|
||||||
("gender" | CharacterGender.codec) ::
|
("gender" | CharacterSex.codec) ::
|
||||||
("empire" | PlanetSideEmpire.codec)
|
("empire" | PlanetSideEmpire.codec)
|
||||||
).exmap[CharacterCreateRequestMessage](
|
).exmap[CharacterCreateRequestMessage](
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ import net.psforever.types._
|
||||||
* This partition of the data stream contains information used to represent how the player's avatar is presented.
|
* This partition of the data stream contains information used to represent how the player's avatar is presented.
|
||||||
* This appearance coincides with the data available from the `CharacterCreateRequestMessage` packet.
|
* This appearance coincides with the data available from the `CharacterCreateRequestMessage` packet.
|
||||||
* @see `PlanetSideEmpire`<br>
|
* @see `PlanetSideEmpire`<br>
|
||||||
* `CharacterGender`
|
* `CharacterSex`
|
||||||
* @param name the unique name of the avatar;
|
* @param name the unique name of the avatar;
|
||||||
* minimum of two characters
|
* minimum of two characters
|
||||||
* @param faction the empire to which the avatar belongs
|
* @param faction the empire to which the avatar belongs
|
||||||
|
|
@ -21,7 +21,7 @@ import net.psforever.types._
|
||||||
final case class BasicCharacterData(
|
final case class BasicCharacterData(
|
||||||
name: String,
|
name: String,
|
||||||
faction: PlanetSideEmpire.Value,
|
faction: PlanetSideEmpire.Value,
|
||||||
sex: CharacterGender.Value,
|
sex: CharacterSex,
|
||||||
head: Int,
|
head: Int,
|
||||||
voice: CharacterVoice.Value
|
voice: CharacterVoice.Value
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -304,7 +304,7 @@ object CharacterAppearanceData extends Marshallable[CharacterAppearanceData] {
|
||||||
("name" | PacketHelpers.encodedWideStringAligned(namePadding(name_padding, data.v2))) ::
|
("name" | PacketHelpers.encodedWideStringAligned(namePadding(name_padding, data.v2))) ::
|
||||||
("exosuit" | ExoSuitType.codec) ::
|
("exosuit" | ExoSuitType.codec) ::
|
||||||
("unk5" | uint2) :: //unknown
|
("unk5" | uint2) :: //unknown
|
||||||
("sex" | CharacterGender.codec) ::
|
("sex" | CharacterSex.codec) ::
|
||||||
("head" | uint8L) ::
|
("head" | uint8L) ::
|
||||||
("voice" | CharacterVoice.codec) ::
|
("voice" | CharacterVoice.codec) ::
|
||||||
("unk6" | uint32L) ::
|
("unk6" | uint32L) ::
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package net.psforever.persistence
|
||||||
import net.psforever.objects.avatar
|
import net.psforever.objects.avatar
|
||||||
import net.psforever.objects.avatar.Cosmetic
|
import net.psforever.objects.avatar.Cosmetic
|
||||||
import org.joda.time.LocalDateTime
|
import org.joda.time.LocalDateTime
|
||||||
import net.psforever.types.{CharacterGender, CharacterVoice, PlanetSideEmpire}
|
import net.psforever.types.{CharacterSex, CharacterVoice, PlanetSideEmpire}
|
||||||
|
|
||||||
case class Avatar(
|
case class Avatar(
|
||||||
id: Int,
|
id: Int,
|
||||||
|
|
@ -27,7 +27,7 @@ case class Avatar(
|
||||||
id,
|
id,
|
||||||
name,
|
name,
|
||||||
PlanetSideEmpire(factionId),
|
PlanetSideEmpire(factionId),
|
||||||
CharacterGender(genderId),
|
CharacterSex(genderId),
|
||||||
headId,
|
headId,
|
||||||
CharacterVoice(voiceId),
|
CharacterVoice(voiceId),
|
||||||
bep,
|
bep,
|
||||||
|
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
||||||
// Copyright (c) 2017 PSForever
|
|
||||||
package net.psforever.types
|
|
||||||
|
|
||||||
import net.psforever.packet.PacketHelpers
|
|
||||||
import scodec.codecs.uint2L
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Values for two genders, Male and Female, starting at 1 = Male.
|
|
||||||
*/
|
|
||||||
object CharacterGender extends Enumeration(1) {
|
|
||||||
type Type = Value
|
|
||||||
|
|
||||||
val Male, Female = Value
|
|
||||||
|
|
||||||
implicit val codec = PacketHelpers.createEnumerationCodec(this, uint2L)
|
|
||||||
}
|
|
||||||
45
src/main/scala/net/psforever/types/CharacterSex.scala
Normal file
45
src/main/scala/net/psforever/types/CharacterSex.scala
Normal file
|
|
@ -0,0 +1,45 @@
|
||||||
|
// Copyright (c) 2021 PSForever
|
||||||
|
package net.psforever.types
|
||||||
|
|
||||||
|
import enumeratum.values.{IntEnum, IntEnumEntry}
|
||||||
|
import net.psforever.packet.PacketHelpers
|
||||||
|
import scodec.codecs.uint2L
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Values for two sexes, Male and Female, as required by `ObjectCreateMessage` parameters.
|
||||||
|
* Some quaint language for log decoration is provided.
|
||||||
|
* Blame the lack of gender dysphoria on the Terran Republic.
|
||||||
|
*/
|
||||||
|
sealed abstract class CharacterSex(
|
||||||
|
val value: Int,
|
||||||
|
val pronounSubject: String,
|
||||||
|
val pronounObject: String,
|
||||||
|
val possessive: String
|
||||||
|
) extends IntEnumEntry {
|
||||||
|
def possessiveNoObject: String = possessive
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Values for two sexes, Male and Female.
|
||||||
|
*/
|
||||||
|
object CharacterSex extends IntEnum[CharacterSex] {
|
||||||
|
val values = findValues
|
||||||
|
|
||||||
|
case object Male extends CharacterSex(
|
||||||
|
value = 1,
|
||||||
|
pronounSubject = "he",
|
||||||
|
pronounObject = "him",
|
||||||
|
possessive = "his"
|
||||||
|
)
|
||||||
|
|
||||||
|
case object Female extends CharacterSex(
|
||||||
|
value = 2,
|
||||||
|
pronounSubject = "she",
|
||||||
|
pronounObject = "her",
|
||||||
|
possessive = "her"
|
||||||
|
) {
|
||||||
|
override def possessiveNoObject: String = "hers"
|
||||||
|
}
|
||||||
|
|
||||||
|
implicit val codec = PacketHelpers.createIntEnumCodec(enum = this, uint2L)
|
||||||
|
}
|
||||||
|
|
@ -10,7 +10,7 @@ import scodec.codecs.uint
|
||||||
* While it is technically not valid to have a wrong-gendered voice,
|
* While it is technically not valid to have a wrong-gendered voice,
|
||||||
* unlisted sixth and seventh entries would give a male character a female voice;
|
* unlisted sixth and seventh entries would give a male character a female voice;
|
||||||
* a female character with either entry would become mute, however.
|
* a female character with either entry would become mute, however.
|
||||||
* @see `CharacterGender`
|
* @see `CharacterSex`
|
||||||
*/
|
*/
|
||||||
object CharacterVoice extends Enumeration {
|
object CharacterVoice extends Enumeration {
|
||||||
type Type = Value
|
type Type = Value
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ package game
|
||||||
import org.specs2.mutable._
|
import org.specs2.mutable._
|
||||||
import net.psforever.packet._
|
import net.psforever.packet._
|
||||||
import net.psforever.packet.game._
|
import net.psforever.packet.game._
|
||||||
import net.psforever.types.{CharacterGender, CharacterVoice, PlanetSideEmpire}
|
import net.psforever.types.{CharacterSex, CharacterVoice, PlanetSideEmpire}
|
||||||
import scodec.bits._
|
import scodec.bits._
|
||||||
|
|
||||||
class CharacterCreateRequestMessageTest extends Specification {
|
class CharacterCreateRequestMessageTest extends Specification {
|
||||||
|
|
@ -16,7 +16,7 @@ class CharacterCreateRequestMessageTest extends Specification {
|
||||||
name mustEqual "TestChar"
|
name mustEqual "TestChar"
|
||||||
head mustEqual 50
|
head mustEqual 50
|
||||||
voice mustEqual CharacterVoice.Voice5
|
voice mustEqual CharacterVoice.Voice5
|
||||||
gender mustEqual CharacterGender.Female
|
gender mustEqual CharacterSex.Female
|
||||||
faction mustEqual PlanetSideEmpire.NC
|
faction mustEqual PlanetSideEmpire.NC
|
||||||
case _ =>
|
case _ =>
|
||||||
ko
|
ko
|
||||||
|
|
@ -25,7 +25,7 @@ class CharacterCreateRequestMessageTest extends Specification {
|
||||||
|
|
||||||
"encode" in {
|
"encode" in {
|
||||||
val msg =
|
val msg =
|
||||||
CharacterCreateRequestMessage("TestChar", 50, CharacterVoice.Voice5, CharacterGender.Female, PlanetSideEmpire.NC)
|
CharacterCreateRequestMessage("TestChar", 50, CharacterVoice.Voice5, CharacterSex.Female, PlanetSideEmpire.NC)
|
||||||
val pkt = PacketCoding.encodePacket(msg).require.toByteVector
|
val pkt = PacketCoding.encodePacket(msg).require.toByteVector
|
||||||
|
|
||||||
pkt mustEqual string
|
pkt mustEqual string
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,7 @@ class CharacterDataTest extends Specification {
|
||||||
case CharacterAppearanceData(a, b, ribbons) =>
|
case CharacterAppearanceData(a, b, ribbons) =>
|
||||||
a.app.name mustEqual "ScrawnyRonnie"
|
a.app.name mustEqual "ScrawnyRonnie"
|
||||||
a.app.faction mustEqual PlanetSideEmpire.TR
|
a.app.faction mustEqual PlanetSideEmpire.TR
|
||||||
a.app.sex mustEqual CharacterGender.Male
|
a.app.sex mustEqual CharacterSex.Male
|
||||||
a.app.head mustEqual 5
|
a.app.head mustEqual 5
|
||||||
a.app.voice mustEqual CharacterVoice.Voice5
|
a.app.voice mustEqual CharacterVoice.Voice5
|
||||||
a.data.bops mustEqual false
|
a.data.bops mustEqual false
|
||||||
|
|
@ -157,7 +157,7 @@ class CharacterDataTest extends Specification {
|
||||||
case CharacterAppearanceData(a, b, ribbons) =>
|
case CharacterAppearanceData(a, b, ribbons) =>
|
||||||
a.app.name mustEqual "ScrawnyRonnie"
|
a.app.name mustEqual "ScrawnyRonnie"
|
||||||
a.app.faction mustEqual PlanetSideEmpire.TR
|
a.app.faction mustEqual PlanetSideEmpire.TR
|
||||||
a.app.sex mustEqual CharacterGender.Male
|
a.app.sex mustEqual CharacterSex.Male
|
||||||
a.app.head mustEqual 5
|
a.app.head mustEqual 5
|
||||||
a.app.voice mustEqual CharacterVoice.Voice5
|
a.app.voice mustEqual CharacterVoice.Voice5
|
||||||
a.data.bops mustEqual false
|
a.data.bops mustEqual false
|
||||||
|
|
@ -226,7 +226,7 @@ class CharacterDataTest extends Specification {
|
||||||
case CharacterAppearanceData(a, b, ribbons) =>
|
case CharacterAppearanceData(a, b, ribbons) =>
|
||||||
a.app.name mustEqual "Angello"
|
a.app.name mustEqual "Angello"
|
||||||
a.app.faction mustEqual PlanetSideEmpire.VS
|
a.app.faction mustEqual PlanetSideEmpire.VS
|
||||||
a.app.sex mustEqual CharacterGender.Male
|
a.app.sex mustEqual CharacterSex.Male
|
||||||
a.app.head mustEqual 10
|
a.app.head mustEqual 10
|
||||||
a.app.voice mustEqual CharacterVoice.Voice2
|
a.app.voice mustEqual CharacterVoice.Voice2
|
||||||
a.data.bops mustEqual false
|
a.data.bops mustEqual false
|
||||||
|
|
@ -300,7 +300,7 @@ class CharacterDataTest extends Specification {
|
||||||
BasicCharacterData(
|
BasicCharacterData(
|
||||||
"ScrawnyRonnie",
|
"ScrawnyRonnie",
|
||||||
PlanetSideEmpire.TR,
|
PlanetSideEmpire.TR,
|
||||||
CharacterGender.Male,
|
CharacterSex.Male,
|
||||||
5,
|
5,
|
||||||
CharacterVoice.Voice5
|
CharacterVoice.Voice5
|
||||||
),
|
),
|
||||||
|
|
@ -408,7 +408,7 @@ class CharacterDataTest extends Specification {
|
||||||
BasicCharacterData(
|
BasicCharacterData(
|
||||||
"ScrawnyRonnie",
|
"ScrawnyRonnie",
|
||||||
PlanetSideEmpire.TR,
|
PlanetSideEmpire.TR,
|
||||||
CharacterGender.Male,
|
CharacterSex.Male,
|
||||||
5,
|
5,
|
||||||
CharacterVoice.Voice5
|
CharacterVoice.Voice5
|
||||||
),
|
),
|
||||||
|
|
@ -524,7 +524,7 @@ class CharacterDataTest extends Specification {
|
||||||
BasicCharacterData(
|
BasicCharacterData(
|
||||||
"Angello",
|
"Angello",
|
||||||
PlanetSideEmpire.VS,
|
PlanetSideEmpire.VS,
|
||||||
CharacterGender.Male,
|
CharacterSex.Male,
|
||||||
10,
|
10,
|
||||||
CharacterVoice.Voice2
|
CharacterVoice.Voice2
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,7 @@ class DetailedCharacterDataTest extends Specification {
|
||||||
case CharacterAppearanceData(a, b, ribbons) =>
|
case CharacterAppearanceData(a, b, ribbons) =>
|
||||||
a.app.name mustEqual "IlllIIIlllIlIllIlllIllI"
|
a.app.name mustEqual "IlllIIIlllIlIllIlllIllI"
|
||||||
a.app.faction mustEqual PlanetSideEmpire.VS
|
a.app.faction mustEqual PlanetSideEmpire.VS
|
||||||
a.app.sex mustEqual CharacterGender.Female
|
a.app.sex mustEqual CharacterSex.Female
|
||||||
a.app.head mustEqual 41
|
a.app.head mustEqual 41
|
||||||
a.app.voice mustEqual CharacterVoice.Voice1
|
a.app.voice mustEqual CharacterVoice.Voice1
|
||||||
a.data.bops mustEqual false
|
a.data.bops mustEqual false
|
||||||
|
|
@ -258,7 +258,7 @@ class DetailedCharacterDataTest extends Specification {
|
||||||
case CharacterAppearanceData(a, b, ribbons) =>
|
case CharacterAppearanceData(a, b, ribbons) =>
|
||||||
a.app.name mustEqual "IlllIIIlllIlIllIlllIllI"
|
a.app.name mustEqual "IlllIIIlllIlIllIlllIllI"
|
||||||
a.app.faction mustEqual PlanetSideEmpire.VS
|
a.app.faction mustEqual PlanetSideEmpire.VS
|
||||||
a.app.sex mustEqual CharacterGender.Female
|
a.app.sex mustEqual CharacterSex.Female
|
||||||
a.app.head mustEqual 41
|
a.app.head mustEqual 41
|
||||||
a.app.voice mustEqual CharacterVoice.Voice1
|
a.app.voice mustEqual CharacterVoice.Voice1
|
||||||
a.data.bops mustEqual false
|
a.data.bops mustEqual false
|
||||||
|
|
@ -443,7 +443,7 @@ class DetailedCharacterDataTest extends Specification {
|
||||||
case CharacterAppearanceData(a, b, ribbons) =>
|
case CharacterAppearanceData(a, b, ribbons) =>
|
||||||
a.app.name mustEqual "HaHaATRMax"
|
a.app.name mustEqual "HaHaATRMax"
|
||||||
a.app.faction mustEqual PlanetSideEmpire.TR
|
a.app.faction mustEqual PlanetSideEmpire.TR
|
||||||
a.app.sex mustEqual CharacterGender.Male
|
a.app.sex mustEqual CharacterSex.Male
|
||||||
a.app.head mustEqual 57
|
a.app.head mustEqual 57
|
||||||
a.app.voice mustEqual CharacterVoice.Voice1
|
a.app.voice mustEqual CharacterVoice.Voice1
|
||||||
a.data.bops mustEqual false
|
a.data.bops mustEqual false
|
||||||
|
|
@ -670,7 +670,7 @@ class DetailedCharacterDataTest extends Specification {
|
||||||
case CharacterAppearanceData(a, b, ribbons) =>
|
case CharacterAppearanceData(a, b, ribbons) =>
|
||||||
a.app.name mustEqual "KiCkJr"
|
a.app.name mustEqual "KiCkJr"
|
||||||
a.app.faction mustEqual PlanetSideEmpire.NC
|
a.app.faction mustEqual PlanetSideEmpire.NC
|
||||||
a.app.sex mustEqual CharacterGender.Male
|
a.app.sex mustEqual CharacterSex.Male
|
||||||
a.app.head mustEqual 24
|
a.app.head mustEqual 24
|
||||||
a.app.voice mustEqual CharacterVoice.Voice4
|
a.app.voice mustEqual CharacterVoice.Voice4
|
||||||
a.data.bops mustEqual false
|
a.data.bops mustEqual false
|
||||||
|
|
@ -1189,7 +1189,7 @@ class DetailedCharacterDataTest extends Specification {
|
||||||
a.app mustEqual BasicCharacterData(
|
a.app mustEqual BasicCharacterData(
|
||||||
"CCRIDER",
|
"CCRIDER",
|
||||||
PlanetSideEmpire.NC,
|
PlanetSideEmpire.NC,
|
||||||
CharacterGender.Male,
|
CharacterSex.Male,
|
||||||
20,
|
20,
|
||||||
CharacterVoice.Voice3
|
CharacterVoice.Voice3
|
||||||
)
|
)
|
||||||
|
|
@ -1336,7 +1336,7 @@ class DetailedCharacterDataTest extends Specification {
|
||||||
a.app mustEqual BasicCharacterData(
|
a.app mustEqual BasicCharacterData(
|
||||||
"xRider912",
|
"xRider912",
|
||||||
PlanetSideEmpire.TR,
|
PlanetSideEmpire.TR,
|
||||||
CharacterGender.Male,
|
CharacterSex.Male,
|
||||||
4,
|
4,
|
||||||
CharacterVoice.Voice1
|
CharacterVoice.Voice1
|
||||||
)
|
)
|
||||||
|
|
@ -1515,7 +1515,7 @@ class DetailedCharacterDataTest extends Specification {
|
||||||
BasicCharacterData(
|
BasicCharacterData(
|
||||||
"IlllIIIlllIlIllIlllIllI",
|
"IlllIIIlllIlIllIlllIllI",
|
||||||
PlanetSideEmpire.VS,
|
PlanetSideEmpire.VS,
|
||||||
CharacterGender.Female,
|
CharacterSex.Female,
|
||||||
41,
|
41,
|
||||||
CharacterVoice.Voice1
|
CharacterVoice.Voice1
|
||||||
),
|
),
|
||||||
|
|
@ -1697,7 +1697,7 @@ class DetailedCharacterDataTest extends Specification {
|
||||||
BasicCharacterData(
|
BasicCharacterData(
|
||||||
"IlllIIIlllIlIllIlllIllI",
|
"IlllIIIlllIlIllIlllIllI",
|
||||||
PlanetSideEmpire.VS,
|
PlanetSideEmpire.VS,
|
||||||
CharacterGender.Female,
|
CharacterSex.Female,
|
||||||
41,
|
41,
|
||||||
CharacterVoice.Voice1
|
CharacterVoice.Voice1
|
||||||
),
|
),
|
||||||
|
|
@ -1886,7 +1886,7 @@ class DetailedCharacterDataTest extends Specification {
|
||||||
BasicCharacterData(
|
BasicCharacterData(
|
||||||
"HaHaATRMax",
|
"HaHaATRMax",
|
||||||
PlanetSideEmpire.TR,
|
PlanetSideEmpire.TR,
|
||||||
CharacterGender.Male,
|
CharacterSex.Male,
|
||||||
57,
|
57,
|
||||||
CharacterVoice.Voice1
|
CharacterVoice.Voice1
|
||||||
),
|
),
|
||||||
|
|
@ -2103,7 +2103,7 @@ class DetailedCharacterDataTest extends Specification {
|
||||||
BasicCharacterData(
|
BasicCharacterData(
|
||||||
"KiCkJr",
|
"KiCkJr",
|
||||||
PlanetSideEmpire.NC,
|
PlanetSideEmpire.NC,
|
||||||
CharacterGender.Male,
|
CharacterSex.Male,
|
||||||
24,
|
24,
|
||||||
CharacterVoice.Voice4
|
CharacterVoice.Voice4
|
||||||
),
|
),
|
||||||
|
|
@ -3588,7 +3588,7 @@ class DetailedCharacterDataTest extends Specification {
|
||||||
BasicCharacterData(
|
BasicCharacterData(
|
||||||
"CCRIDER",
|
"CCRIDER",
|
||||||
PlanetSideEmpire.NC,
|
PlanetSideEmpire.NC,
|
||||||
CharacterGender.Male,
|
CharacterSex.Male,
|
||||||
20,
|
20,
|
||||||
CharacterVoice.Voice3
|
CharacterVoice.Voice3
|
||||||
),
|
),
|
||||||
|
|
@ -4512,7 +4512,7 @@ class DetailedCharacterDataTest extends Specification {
|
||||||
BasicCharacterData(
|
BasicCharacterData(
|
||||||
"xRider912",
|
"xRider912",
|
||||||
PlanetSideEmpire.TR,
|
PlanetSideEmpire.TR,
|
||||||
CharacterGender.Male,
|
CharacterSex.Male,
|
||||||
4,
|
4,
|
||||||
CharacterVoice.Voice1
|
CharacterVoice.Voice1
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -57,7 +57,7 @@ class MountedVehiclesTest extends Specification {
|
||||||
a.app mustEqual BasicCharacterData(
|
a.app mustEqual BasicCharacterData(
|
||||||
"ScrawnyRonnie",
|
"ScrawnyRonnie",
|
||||||
PlanetSideEmpire.TR,
|
PlanetSideEmpire.TR,
|
||||||
CharacterGender.Male,
|
CharacterSex.Male,
|
||||||
5,
|
5,
|
||||||
CharacterVoice.Voice5
|
CharacterVoice.Voice5
|
||||||
)
|
)
|
||||||
|
|
@ -146,7 +146,7 @@ class MountedVehiclesTest extends Specification {
|
||||||
BasicCharacterData(
|
BasicCharacterData(
|
||||||
"ScrawnyRonnie",
|
"ScrawnyRonnie",
|
||||||
PlanetSideEmpire.TR,
|
PlanetSideEmpire.TR,
|
||||||
CharacterGender.Male,
|
CharacterSex.Male,
|
||||||
5,
|
5,
|
||||||
CharacterVoice.Voice5
|
CharacterVoice.Voice5
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -6,12 +6,12 @@ import net.psforever.objects._
|
||||||
import net.psforever.objects.avatar.{Avatar, BattleRank, Implant}
|
import net.psforever.objects.avatar.{Avatar, BattleRank, Implant}
|
||||||
import net.psforever.objects.definition.ImplantDefinition
|
import net.psforever.objects.definition.ImplantDefinition
|
||||||
import net.psforever.objects.locker.LockerEquipment
|
import net.psforever.objects.locker.LockerEquipment
|
||||||
import net.psforever.types.{CharacterGender, CharacterVoice, ImplantType, PlanetSideEmpire}
|
import net.psforever.types.{CharacterSex, CharacterVoice, ImplantType, PlanetSideEmpire}
|
||||||
import org.specs2.mutable._
|
import org.specs2.mutable._
|
||||||
|
|
||||||
class AvatarTest extends Specification {
|
class AvatarTest extends Specification {
|
||||||
def CreatePlayer(): (Player, Avatar) = {
|
def CreatePlayer(): (Player, Avatar) = {
|
||||||
val avatar = Avatar(0, "TestCharacter", PlanetSideEmpire.VS, CharacterGender.Female, 41, CharacterVoice.Voice1)
|
val avatar = Avatar(0, "TestCharacter", PlanetSideEmpire.VS, CharacterSex.Female, 41, CharacterVoice.Voice1)
|
||||||
val player = Player(avatar)
|
val player = Player(avatar)
|
||||||
player.Slot(0).Equipment = Tool(beamer)
|
player.Slot(0).Equipment = Tool(beamer)
|
||||||
player.Slot(2).Equipment = Tool(suppressor)
|
player.Slot(2).Equipment = Tool(suppressor)
|
||||||
|
|
@ -26,10 +26,10 @@ class AvatarTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"construct" in {
|
"construct" in {
|
||||||
val av = Avatar(0, "Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
val av = Avatar(0, "Chord", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Voice5)
|
||||||
av.name mustEqual "Chord"
|
av.name mustEqual "Chord"
|
||||||
av.faction mustEqual PlanetSideEmpire.TR
|
av.faction mustEqual PlanetSideEmpire.TR
|
||||||
av.sex mustEqual CharacterGender.Male
|
av.sex mustEqual CharacterSex.Male
|
||||||
av.head mustEqual 0
|
av.head mustEqual 0
|
||||||
av.voice mustEqual CharacterVoice.Voice5
|
av.voice mustEqual CharacterVoice.Voice5
|
||||||
av.bep mustEqual 0
|
av.bep mustEqual 0
|
||||||
|
|
@ -39,7 +39,7 @@ class AvatarTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"can not maintain experience point values below zero" in {
|
"can not maintain experience point values below zero" in {
|
||||||
val av = Avatar(0, "Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
val av = Avatar(0, "Chord", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Voice5)
|
||||||
av.bep mustEqual 0
|
av.bep mustEqual 0
|
||||||
av.copy(bep = -1) must throwA[AssertionError]
|
av.copy(bep = -1) must throwA[AssertionError]
|
||||||
av.copy(cep = -1) must throwA[AssertionError]
|
av.copy(cep = -1) must throwA[AssertionError]
|
||||||
|
|
@ -47,7 +47,7 @@ class AvatarTest extends Specification {
|
||||||
|
|
||||||
//refer to ImplantTest.scala for more tests
|
//refer to ImplantTest.scala for more tests
|
||||||
"maximum of three implant slots" in {
|
"maximum of three implant slots" in {
|
||||||
val obj = Avatar(0, "Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
val obj = Avatar(0, "Chord", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Voice5)
|
||||||
obj.implants.length mustEqual 3
|
obj.implants.length mustEqual 3
|
||||||
obj.implants(0) must beNone
|
obj.implants(0) must beNone
|
||||||
obj.implants(1) must beNone
|
obj.implants(1) must beNone
|
||||||
|
|
@ -61,7 +61,7 @@ class AvatarTest extends Specification {
|
||||||
0,
|
0,
|
||||||
"Chord",
|
"Chord",
|
||||||
PlanetSideEmpire.TR,
|
PlanetSideEmpire.TR,
|
||||||
CharacterGender.Male,
|
CharacterSex.Male,
|
||||||
0,
|
0,
|
||||||
CharacterVoice.Voice5,
|
CharacterVoice.Voice5,
|
||||||
bep = BattleRank.BR6.experience
|
bep = BattleRank.BR6.experience
|
||||||
|
|
@ -81,7 +81,7 @@ class AvatarTest extends Specification {
|
||||||
"can not install the same type of implant twice" in {
|
"can not install the same type of implant twice" in {
|
||||||
val testplant1 = Implant(new ImplantDefinition(ImplantType.AdvancedRegen))
|
val testplant1 = Implant(new ImplantDefinition(ImplantType.AdvancedRegen))
|
||||||
val testplant2 = Implant(new ImplantDefinition(ImplantType.AdvancedRegen))
|
val testplant2 = Implant(new ImplantDefinition(ImplantType.AdvancedRegen))
|
||||||
val obj = Avatar(0, "Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
val obj = Avatar(0, "Chord", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Voice5)
|
||||||
obj.copy(implants = obj.implants.updated(0, Some(testplant1)).updated(1, Some(testplant2))) must throwA[
|
obj.copy(implants = obj.implants.updated(0, Some(testplant1)).updated(1, Some(testplant2))) must throwA[
|
||||||
AssertionError
|
AssertionError
|
||||||
]
|
]
|
||||||
|
|
@ -91,7 +91,7 @@ class AvatarTest extends Specification {
|
||||||
val testplant1 = Implant(new ImplantDefinition(ImplantType.AdvancedRegen))
|
val testplant1 = Implant(new ImplantDefinition(ImplantType.AdvancedRegen))
|
||||||
val testplant2 = Implant(new ImplantDefinition(ImplantType.Surge))
|
val testplant2 = Implant(new ImplantDefinition(ImplantType.Surge))
|
||||||
val testplant3 = Implant(new ImplantDefinition(ImplantType.DarklightVision))
|
val testplant3 = Implant(new ImplantDefinition(ImplantType.DarklightVision))
|
||||||
val obj = Avatar(0, "Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
val obj = Avatar(0, "Chord", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Voice5)
|
||||||
obj.copy(
|
obj.copy(
|
||||||
bep = BattleRank.BR12.value,
|
bep = BattleRank.BR12.value,
|
||||||
implants = Seq(Some(testplant1), Some(testplant2), Some(testplant3))
|
implants = Seq(Some(testplant1), Some(testplant2), Some(testplant3))
|
||||||
|
|
|
||||||
|
|
@ -648,7 +648,7 @@ class ConverterTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"Player" should {
|
"Player" should {
|
||||||
var avatar = Avatar(0, "Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
var avatar = Avatar(0, "Chord", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Voice5)
|
||||||
val obj: Player = {
|
val obj: Player = {
|
||||||
/*
|
/*
|
||||||
Create an AmmoBoxDefinition with which to build two AmmoBoxes
|
Create an AmmoBoxDefinition with which to build two AmmoBoxes
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@ class DamageCalculationsTests extends Specification {
|
||||||
val wep_prof = wep_fmode.Add
|
val wep_prof = wep_fmode.Add
|
||||||
val proj = DamageModelTests.projectile
|
val proj = DamageModelTests.projectile
|
||||||
val proj_prof = proj.asInstanceOf[DamageProfile]
|
val proj_prof = proj.asInstanceOf[DamageProfile]
|
||||||
val player = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
|
val player = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
val projectile = Projectile(proj, wep, wep_fmode, player, Vector3(2, 2, 0), Vector3.Zero)
|
val projectile = Projectile(proj, wep, wep_fmode, player, Vector3(2, 2, 0), Vector3.Zero)
|
||||||
val target = Vehicle(GlobalDefinitions.fury)
|
val target = Vehicle(GlobalDefinitions.fury)
|
||||||
target.Position = Vector3(10, 0, 0)
|
target.Position = Vector3(10, 0, 0)
|
||||||
|
|
@ -450,7 +450,7 @@ class DamageCalculationsTests extends Specification {
|
||||||
|
|
||||||
"galaxy gunship reduction (target is not a vehicle)" in {
|
"galaxy gunship reduction (target is not a vehicle)" in {
|
||||||
val tplayer =
|
val tplayer =
|
||||||
Player(Avatar(0, "TestCharacter2", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
|
Player(Avatar(0, "TestCharacter2", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
val resfprojectile = DamageInteraction(
|
val resfprojectile = DamageInteraction(
|
||||||
SourceEntry(tplayer),
|
SourceEntry(tplayer),
|
||||||
ProjectileReason(
|
ProjectileReason(
|
||||||
|
|
@ -479,7 +479,7 @@ class ResistanceCalculationsTests extends Specification {
|
||||||
val wep = GlobalDefinitions.galaxy_gunship_cannon
|
val wep = GlobalDefinitions.galaxy_gunship_cannon
|
||||||
val wep_fmode = Tool(wep).FireMode
|
val wep_fmode = Tool(wep).FireMode
|
||||||
val proj = DamageModelTests.projectile
|
val proj = DamageModelTests.projectile
|
||||||
val player = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
|
val player = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
val projectile = Projectile(proj, wep, wep_fmode, player, Vector3(2, 2, 0), Vector3.Zero)
|
val projectile = Projectile(proj, wep, wep_fmode, player, Vector3(2, 2, 0), Vector3.Zero)
|
||||||
|
|
||||||
"ResistanceCalculations" should {
|
"ResistanceCalculations" should {
|
||||||
|
|
@ -515,7 +515,7 @@ class ResistanceCalculationsTests extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"discern mechanized infantry targets" in {
|
"discern mechanized infantry targets" in {
|
||||||
val target = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
|
val target = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
target.ExoSuit = ExoSuitType.MAX
|
target.ExoSuit = ExoSuitType.MAX
|
||||||
val resprojectile = DamageInteraction(
|
val resprojectile = DamageInteraction(
|
||||||
SourceEntry(target),
|
SourceEntry(target),
|
||||||
|
|
@ -592,7 +592,7 @@ class ResolutionCalculationsTests extends Specification {
|
||||||
val wep = GlobalDefinitions.galaxy_gunship_cannon
|
val wep = GlobalDefinitions.galaxy_gunship_cannon
|
||||||
val wep_fmode = Tool(wep).FireMode
|
val wep_fmode = Tool(wep).FireMode
|
||||||
val proj = DamageModelTests.projectile
|
val proj = DamageModelTests.projectile
|
||||||
val player = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
|
val player = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
player.Spawn()
|
player.Spawn()
|
||||||
val projectile = Projectile(proj, wep, wep_fmode, player, Vector3(2, 2, 0), Vector3.Zero)
|
val projectile = Projectile(proj, wep, wep_fmode, player, Vector3(2, 2, 0), Vector3.Zero)
|
||||||
|
|
||||||
|
|
@ -656,7 +656,7 @@ class ResolutionCalculationsTests extends Specification {
|
||||||
InfantryDamageAfterResist(100, 100)(50, 60) mustEqual (0, 50)
|
InfantryDamageAfterResist(100, 100)(50, 60) mustEqual (0, 50)
|
||||||
}
|
}
|
||||||
|
|
||||||
val player2 = Player(Avatar(0, "TestCharacter2", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
|
val player2 = Player(Avatar(0, "TestCharacter2", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
player2.ExoSuit = ExoSuitType.MAX
|
player2.ExoSuit = ExoSuitType.MAX
|
||||||
player2.Spawn()
|
player2.Spawn()
|
||||||
"calculate no max damage for vehicles" in {
|
"calculate no max damage for vehicles" in {
|
||||||
|
|
@ -740,7 +740,7 @@ class DamageModelTests extends Specification {
|
||||||
val wep_tool = Tool(wep)
|
val wep_tool = Tool(wep)
|
||||||
val wep_fmode = wep_tool.FireMode
|
val wep_fmode = wep_tool.FireMode
|
||||||
val proj = DamageModelTests.projectile
|
val proj = DamageModelTests.projectile
|
||||||
val player = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
|
val player = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
player.Spawn()
|
player.Spawn()
|
||||||
val projectile = Projectile(proj, wep, wep_fmode, player, Vector3(2, 2, 0), Vector3.Zero)
|
val projectile = Projectile(proj, wep, wep_fmode, player, Vector3(2, 2, 0), Vector3.Zero)
|
||||||
|
|
||||||
|
|
@ -767,7 +767,7 @@ class DamageModelTests extends Specification {
|
||||||
|
|
||||||
"resolve infantry targets" in {
|
"resolve infantry targets" in {
|
||||||
val tplayer =
|
val tplayer =
|
||||||
Player(Avatar(0, "TestCharacter2", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
|
Player(Avatar(0, "TestCharacter2", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
tplayer.Spawn()
|
tplayer.Spawn()
|
||||||
tplayer.Health mustEqual 100
|
tplayer.Health mustEqual 100
|
||||||
tplayer.Armor mustEqual 50
|
tplayer.Armor mustEqual 50
|
||||||
|
|
@ -789,7 +789,7 @@ class DamageModelTests extends Specification {
|
||||||
|
|
||||||
"resolve infantry targets in a specific way" in {
|
"resolve infantry targets in a specific way" in {
|
||||||
val tplayer =
|
val tplayer =
|
||||||
Player(Avatar(0, "TestCharacter2", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
|
Player(Avatar(0, "TestCharacter2", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
tplayer.Spawn()
|
tplayer.Spawn()
|
||||||
tplayer.Health mustEqual 100
|
tplayer.Health mustEqual 100
|
||||||
tplayer.Armor mustEqual 50
|
tplayer.Armor mustEqual 50
|
||||||
|
|
@ -811,7 +811,7 @@ class DamageModelTests extends Specification {
|
||||||
|
|
||||||
"resolve infantry targets, with damage overflow" in {
|
"resolve infantry targets, with damage overflow" in {
|
||||||
val tplayer =
|
val tplayer =
|
||||||
Player(Avatar(0, "TestCharacter2", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
|
Player(Avatar(0, "TestCharacter2", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
tplayer.Spawn()
|
tplayer.Spawn()
|
||||||
tplayer.Health mustEqual 100
|
tplayer.Health mustEqual 100
|
||||||
tplayer.Armor mustEqual 50
|
tplayer.Armor mustEqual 50
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@ import net.psforever.objects.vital.base.DamageResolution
|
||||||
import net.psforever.objects.vital.projectile.ProjectileReason
|
import net.psforever.objects.vital.projectile.ProjectileReason
|
||||||
|
|
||||||
class DamageableTest extends Specification {
|
class DamageableTest extends Specification {
|
||||||
val player1 = Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
|
val player1 = Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
val pSource = PlayerSource(player1)
|
val pSource = PlayerSource(player1)
|
||||||
val weaponA = Tool(GlobalDefinitions.phoenix) //decimator
|
val weaponA = Tool(GlobalDefinitions.phoenix) //decimator
|
||||||
val projectileA = weaponA.Projectile
|
val projectileA = weaponA.Projectile
|
||||||
|
|
@ -128,7 +128,7 @@ class DamageableTest extends Specification {
|
||||||
|
|
||||||
"permit damaging friendly targets, even those not designated for friendly fire, if the target is hacked" in {
|
"permit damaging friendly targets, even those not designated for friendly fire, if the target is hacked" in {
|
||||||
val player2 =
|
val player2 =
|
||||||
Player(Avatar(0, "TestCharacter2", PlanetSideEmpire.NC, CharacterGender.Male, 0, CharacterVoice.Mute))
|
Player(Avatar(0, "TestCharacter2", PlanetSideEmpire.NC, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
player2.GUID = PlanetSideGUID(1)
|
player2.GUID = PlanetSideGUID(1)
|
||||||
val target = new Terminal(new TerminalDefinition(0) {
|
val target = new Terminal(new TerminalDefinition(0) {
|
||||||
Damageable = true
|
Damageable = true
|
||||||
|
|
@ -240,7 +240,7 @@ class DamageableTest extends Specification {
|
||||||
|
|
||||||
"permit jamming friendly targets if the target is hacked" in {
|
"permit jamming friendly targets if the target is hacked" in {
|
||||||
val player2 =
|
val player2 =
|
||||||
Player(Avatar(0, "TestCharacter2", PlanetSideEmpire.NC, CharacterGender.Male, 0, CharacterVoice.Mute))
|
Player(Avatar(0, "TestCharacter2", PlanetSideEmpire.NC, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
player2.GUID = PlanetSideGUID(1)
|
player2.GUID = PlanetSideGUID(1)
|
||||||
val target = new SensorDeployable(GlobalDefinitions.motionalarmsensor)
|
val target = new SensorDeployable(GlobalDefinitions.motionalarmsensor)
|
||||||
target.Faction = player1.Faction
|
target.Faction = player1.Faction
|
||||||
|
|
@ -285,7 +285,7 @@ class DamageableEntityDamageTest extends ActorTest {
|
||||||
val building = Building("test-building", 1, 1, zone, StructureType.Facility) //guid=1
|
val building = Building("test-building", 1, 1, zone, StructureType.Facility) //guid=1
|
||||||
val gen = Generator(GlobalDefinitions.generator) //guid=2
|
val gen = Generator(GlobalDefinitions.generator) //guid=2
|
||||||
val player1 =
|
val player1 =
|
||||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=3
|
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=3
|
||||||
guid.register(building, 1)
|
guid.register(building, 1)
|
||||||
guid.register(gen, 2)
|
guid.register(gen, 2)
|
||||||
guid.register(player1, 3)
|
guid.register(player1, 3)
|
||||||
|
|
@ -355,7 +355,7 @@ class DamageableEntityDestroyedTest extends ActorTest {
|
||||||
mech.Position = Vector3(1, 0, 0)
|
mech.Position = Vector3(1, 0, 0)
|
||||||
mech.Actor = system.actorOf(Props(classOf[ImplantTerminalMechControl], mech), "mech-control")
|
mech.Actor = system.actorOf(Props(classOf[ImplantTerminalMechControl], mech), "mech-control")
|
||||||
val player1 =
|
val player1 =
|
||||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=3
|
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=3
|
||||||
player1.Position = Vector3(14, 0, 0) //<14m from generator; dies
|
player1.Position = Vector3(14, 0, 0) //<14m from generator; dies
|
||||||
player1.Spawn()
|
player1.Spawn()
|
||||||
val building = Building("test-building", 1, 1, zone, StructureType.Facility) //guid=1
|
val building = Building("test-building", 1, 1, zone, StructureType.Facility) //guid=1
|
||||||
|
|
@ -426,7 +426,7 @@ class DamageableEntityNotDestroyTwice extends ActorTest {
|
||||||
val building = Building("test-building", 1, 1, zone, StructureType.Facility) //guid=1
|
val building = Building("test-building", 1, 1, zone, StructureType.Facility) //guid=1
|
||||||
val gen = Generator(GlobalDefinitions.generator) //guid=2
|
val gen = Generator(GlobalDefinitions.generator) //guid=2
|
||||||
val player1 =
|
val player1 =
|
||||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=3
|
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=3
|
||||||
player1.Spawn()
|
player1.Spawn()
|
||||||
guid.register(building, 1)
|
guid.register(building, 1)
|
||||||
guid.register(gen, 2)
|
guid.register(gen, 2)
|
||||||
|
|
@ -499,7 +499,7 @@ class DamageableAmenityTest extends ActorTest {
|
||||||
val building = Building("test-building", 1, 1, zone, StructureType.Facility) //guid=1
|
val building = Building("test-building", 1, 1, zone, StructureType.Facility) //guid=1
|
||||||
val term = Terminal(GlobalDefinitions.order_terminal) //guid=2
|
val term = Terminal(GlobalDefinitions.order_terminal) //guid=2
|
||||||
val player1 =
|
val player1 =
|
||||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=3
|
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=3
|
||||||
player1.Spawn()
|
player1.Spawn()
|
||||||
guid.register(building, 1)
|
guid.register(building, 1)
|
||||||
guid.register(term, 2)
|
guid.register(term, 2)
|
||||||
|
|
@ -589,11 +589,11 @@ class DamageableMountableDamageTest extends ActorTest {
|
||||||
val building = Building("test-building", 1, 1, zone, StructureType.Facility) //guid=1
|
val building = Building("test-building", 1, 1, zone, StructureType.Facility) //guid=1
|
||||||
val mech = ImplantTerminalMech(GlobalDefinitions.implant_terminal_mech) //guid=2
|
val mech = ImplantTerminalMech(GlobalDefinitions.implant_terminal_mech) //guid=2
|
||||||
val player1 =
|
val player1 =
|
||||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=3
|
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=3
|
||||||
player1.Spawn()
|
player1.Spawn()
|
||||||
player1.Position = Vector3(2, 2, 2)
|
player1.Position = Vector3(2, 2, 2)
|
||||||
val player2 =
|
val player2 =
|
||||||
Player(Avatar(0, "TestCharacter2", PlanetSideEmpire.NC, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=4
|
Player(Avatar(0, "TestCharacter2", PlanetSideEmpire.NC, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=4
|
||||||
player2.Spawn()
|
player2.Spawn()
|
||||||
guid.register(building, 1)
|
guid.register(building, 1)
|
||||||
guid.register(mech, 2)
|
guid.register(mech, 2)
|
||||||
|
|
@ -683,13 +683,13 @@ class DamageableMountableDestroyTest extends ActorTest {
|
||||||
val building = Building("test-building", 1, 1, zone, StructureType.Facility) //guid=1
|
val building = Building("test-building", 1, 1, zone, StructureType.Facility) //guid=1
|
||||||
val mech = ImplantTerminalMech(GlobalDefinitions.implant_terminal_mech) //guid=2
|
val mech = ImplantTerminalMech(GlobalDefinitions.implant_terminal_mech) //guid=2
|
||||||
val player1 =
|
val player1 =
|
||||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=3
|
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=3
|
||||||
player1.Spawn()
|
player1.Spawn()
|
||||||
player1.Position = Vector3(2, 2, 2)
|
player1.Position = Vector3(2, 2, 2)
|
||||||
val player1Probe = TestProbe()
|
val player1Probe = TestProbe()
|
||||||
player1.Actor = player1Probe.ref
|
player1.Actor = player1Probe.ref
|
||||||
val player2 =
|
val player2 =
|
||||||
Player(Avatar(0, "TestCharacter2", PlanetSideEmpire.NC, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=4
|
Player(Avatar(0, "TestCharacter2", PlanetSideEmpire.NC, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=4
|
||||||
player2.Spawn()
|
player2.Spawn()
|
||||||
val player2Probe = TestProbe()
|
val player2Probe = TestProbe()
|
||||||
player2.Actor = player2Probe.ref
|
player2.Actor = player2Probe.ref
|
||||||
|
|
@ -784,13 +784,13 @@ class DamageableWeaponTurretDamageTest extends ActorTest {
|
||||||
turret.Zone = zone
|
turret.Zone = zone
|
||||||
turret.Position = Vector3(1, 0, 0)
|
turret.Position = Vector3(1, 0, 0)
|
||||||
val player1 =
|
val player1 =
|
||||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=3
|
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=3
|
||||||
player1.Spawn()
|
player1.Spawn()
|
||||||
player1.Position = Vector3(2, 2, 2)
|
player1.Position = Vector3(2, 2, 2)
|
||||||
val player1Probe = TestProbe()
|
val player1Probe = TestProbe()
|
||||||
player1.Actor = player1Probe.ref
|
player1.Actor = player1Probe.ref
|
||||||
val player2 =
|
val player2 =
|
||||||
Player(Avatar(0, "TestCharacter2", PlanetSideEmpire.NC, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=4
|
Player(Avatar(0, "TestCharacter2", PlanetSideEmpire.NC, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=4
|
||||||
player2.Spawn()
|
player2.Spawn()
|
||||||
val player2Probe = TestProbe()
|
val player2Probe = TestProbe()
|
||||||
player2.Actor = player2Probe.ref
|
player2.Actor = player2Probe.ref
|
||||||
|
|
@ -882,13 +882,13 @@ class DamageableWeaponTurretJammerTest extends ActorTest {
|
||||||
val turretWeapon = turret.Weapons.values.head.Equipment.get.asInstanceOf[Tool]
|
val turretWeapon = turret.Weapons.values.head.Equipment.get.asInstanceOf[Tool]
|
||||||
|
|
||||||
val player1 =
|
val player1 =
|
||||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=3
|
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=3
|
||||||
player1.Spawn()
|
player1.Spawn()
|
||||||
player1.Position = Vector3(2, 2, 2)
|
player1.Position = Vector3(2, 2, 2)
|
||||||
val player1Probe = TestProbe()
|
val player1Probe = TestProbe()
|
||||||
player1.Actor = player1Probe.ref
|
player1.Actor = player1Probe.ref
|
||||||
val player2 =
|
val player2 =
|
||||||
Player(Avatar(0, "TestCharacter2", PlanetSideEmpire.NC, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=4
|
Player(Avatar(0, "TestCharacter2", PlanetSideEmpire.NC, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=4
|
||||||
player2.Spawn()
|
player2.Spawn()
|
||||||
val player2Probe = TestProbe()
|
val player2Probe = TestProbe()
|
||||||
player2.Actor = player2Probe.ref
|
player2.Actor = player2Probe.ref
|
||||||
|
|
@ -982,13 +982,13 @@ class DamageableWeaponTurretDestructionTest extends ActorTest {
|
||||||
val turretWeapon = turret.Weapons.values.head.Equipment.get.asInstanceOf[Tool]
|
val turretWeapon = turret.Weapons.values.head.Equipment.get.asInstanceOf[Tool]
|
||||||
|
|
||||||
val player1 =
|
val player1 =
|
||||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=3
|
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=3
|
||||||
player1.Spawn()
|
player1.Spawn()
|
||||||
player1.Position = Vector3(2, 2, 2)
|
player1.Position = Vector3(2, 2, 2)
|
||||||
val player1Probe = TestProbe()
|
val player1Probe = TestProbe()
|
||||||
player1.Actor = player1Probe.ref
|
player1.Actor = player1Probe.ref
|
||||||
val player2 =
|
val player2 =
|
||||||
Player(Avatar(1, "TestCharacter2", PlanetSideEmpire.NC, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=4
|
Player(Avatar(1, "TestCharacter2", PlanetSideEmpire.NC, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=4
|
||||||
player2.Spawn()
|
player2.Spawn()
|
||||||
val player2Probe = TestProbe()
|
val player2Probe = TestProbe()
|
||||||
player2.Actor = player2Probe.ref
|
player2.Actor = player2Probe.ref
|
||||||
|
|
@ -1133,13 +1133,13 @@ class DamageableVehicleDamageTest extends ActorTest {
|
||||||
atv.Position = Vector3(1, 0, 0)
|
atv.Position = Vector3(1, 0, 0)
|
||||||
|
|
||||||
val player1 =
|
val player1 =
|
||||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=2
|
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=2
|
||||||
player1.Spawn()
|
player1.Spawn()
|
||||||
player1.Position = Vector3(2, 0, 0)
|
player1.Position = Vector3(2, 0, 0)
|
||||||
val player1Probe = TestProbe()
|
val player1Probe = TestProbe()
|
||||||
player1.Actor = player1Probe.ref
|
player1.Actor = player1Probe.ref
|
||||||
val player2 =
|
val player2 =
|
||||||
Player(Avatar(0, "TestCharacter2", PlanetSideEmpire.NC, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=3
|
Player(Avatar(0, "TestCharacter2", PlanetSideEmpire.NC, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=3
|
||||||
player2.Spawn()
|
player2.Spawn()
|
||||||
val player2Probe = TestProbe()
|
val player2Probe = TestProbe()
|
||||||
player2.Actor = player2Probe.ref
|
player2.Actor = player2Probe.ref
|
||||||
|
|
@ -1242,18 +1242,18 @@ class DamageableVehicleDamageMountedTest extends ActorTest {
|
||||||
atv.Actor = system.actorOf(Props(classOf[VehicleControl], atv), "atv-control")
|
atv.Actor = system.actorOf(Props(classOf[VehicleControl], atv), "atv-control")
|
||||||
|
|
||||||
val player1 =
|
val player1 =
|
||||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=2
|
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=2
|
||||||
player1.Spawn()
|
player1.Spawn()
|
||||||
player1.Position = Vector3(2, 0, 0)
|
player1.Position = Vector3(2, 0, 0)
|
||||||
val player1Probe = TestProbe()
|
val player1Probe = TestProbe()
|
||||||
player1.Actor = player1Probe.ref
|
player1.Actor = player1Probe.ref
|
||||||
val player2 =
|
val player2 =
|
||||||
Player(Avatar(0, "TestCharacter2", PlanetSideEmpire.NC, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=3
|
Player(Avatar(0, "TestCharacter2", PlanetSideEmpire.NC, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=3
|
||||||
player2.Spawn()
|
player2.Spawn()
|
||||||
val player2Probe = TestProbe()
|
val player2Probe = TestProbe()
|
||||||
player2.Actor = player2Probe.ref
|
player2.Actor = player2Probe.ref
|
||||||
val player3 =
|
val player3 =
|
||||||
Player(Avatar(0, "TestCharacter3", PlanetSideEmpire.NC, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=10
|
Player(Avatar(0, "TestCharacter3", PlanetSideEmpire.NC, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=10
|
||||||
player3.Spawn()
|
player3.Spawn()
|
||||||
val player3Probe = TestProbe()
|
val player3Probe = TestProbe()
|
||||||
player3.Actor = player3Probe.ref
|
player3.Actor = player3Probe.ref
|
||||||
|
|
@ -1387,18 +1387,18 @@ class DamageableVehicleJammeringMountedTest extends ActorTest {
|
||||||
lodestar.Position = Vector3(1, 0, 0)
|
lodestar.Position = Vector3(1, 0, 0)
|
||||||
|
|
||||||
val player1 =
|
val player1 =
|
||||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=7
|
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=7
|
||||||
player1.Spawn()
|
player1.Spawn()
|
||||||
player1.Position = Vector3(2, 0, 0)
|
player1.Position = Vector3(2, 0, 0)
|
||||||
val player1Probe = TestProbe()
|
val player1Probe = TestProbe()
|
||||||
player1.Actor = player1Probe.ref
|
player1.Actor = player1Probe.ref
|
||||||
val player2 =
|
val player2 =
|
||||||
Player(Avatar(0, "TestCharacter2", PlanetSideEmpire.NC, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=8
|
Player(Avatar(0, "TestCharacter2", PlanetSideEmpire.NC, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=8
|
||||||
player2.Spawn()
|
player2.Spawn()
|
||||||
val player2Probe = TestProbe()
|
val player2Probe = TestProbe()
|
||||||
player2.Actor = player2Probe.ref
|
player2.Actor = player2Probe.ref
|
||||||
val player3 =
|
val player3 =
|
||||||
Player(Avatar(0, "TestCharacter3", PlanetSideEmpire.NC, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=9
|
Player(Avatar(0, "TestCharacter3", PlanetSideEmpire.NC, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=9
|
||||||
player3.Spawn()
|
player3.Spawn()
|
||||||
val player3Probe = TestProbe()
|
val player3Probe = TestProbe()
|
||||||
player3.Actor = player3Probe.ref
|
player3.Actor = player3Probe.ref
|
||||||
|
|
@ -1499,13 +1499,13 @@ class DamageableVehicleDestroyTest extends ActorTest {
|
||||||
val atvWeapon = atv.Weapons(1).Equipment.get.asInstanceOf[Tool] //guid=4 & 5
|
val atvWeapon = atv.Weapons(1).Equipment.get.asInstanceOf[Tool] //guid=4 & 5
|
||||||
|
|
||||||
val player1 =
|
val player1 =
|
||||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=2
|
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=2
|
||||||
player1.Spawn()
|
player1.Spawn()
|
||||||
player1.Position = Vector3(2, 0, 0)
|
player1.Position = Vector3(2, 0, 0)
|
||||||
val player1Probe = TestProbe()
|
val player1Probe = TestProbe()
|
||||||
player1.Actor = player1Probe.ref
|
player1.Actor = player1Probe.ref
|
||||||
val player2 =
|
val player2 =
|
||||||
Player(Avatar(0, "TestCharacter2", PlanetSideEmpire.NC, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=3
|
Player(Avatar(0, "TestCharacter2", PlanetSideEmpire.NC, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=3
|
||||||
player2.Spawn()
|
player2.Spawn()
|
||||||
val player2Probe = TestProbe()
|
val player2Probe = TestProbe()
|
||||||
player2.Actor = player2Probe.ref
|
player2.Actor = player2Probe.ref
|
||||||
|
|
@ -1595,18 +1595,18 @@ class DamageableVehicleDestroyMountedTest extends ActorTest {
|
||||||
lodestar.Position = Vector3(1, 0, 0)
|
lodestar.Position = Vector3(1, 0, 0)
|
||||||
|
|
||||||
val player1 =
|
val player1 =
|
||||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=7
|
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=7
|
||||||
player1.Spawn()
|
player1.Spawn()
|
||||||
player1.Position = Vector3(2, 0, 0)
|
player1.Position = Vector3(2, 0, 0)
|
||||||
val player1Probe = TestProbe()
|
val player1Probe = TestProbe()
|
||||||
player1.Actor = player1Probe.ref
|
player1.Actor = player1Probe.ref
|
||||||
val player2 =
|
val player2 =
|
||||||
Player(Avatar(0, "TestCharacter2", PlanetSideEmpire.NC, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=8
|
Player(Avatar(0, "TestCharacter2", PlanetSideEmpire.NC, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=8
|
||||||
player2.Spawn()
|
player2.Spawn()
|
||||||
val player2Probe = TestProbe()
|
val player2Probe = TestProbe()
|
||||||
player2.Actor = player2Probe.ref
|
player2.Actor = player2Probe.ref
|
||||||
val player3 =
|
val player3 =
|
||||||
Player(Avatar(0, "TestCharacter3", PlanetSideEmpire.NC, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=9
|
Player(Avatar(0, "TestCharacter3", PlanetSideEmpire.NC, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=9
|
||||||
player3.Spawn()
|
player3.Spawn()
|
||||||
val player3Probe = TestProbe()
|
val player3Probe = TestProbe()
|
||||||
player3.Actor = player3Probe.ref
|
player3.Actor = player3Probe.ref
|
||||||
|
|
|
||||||
|
|
@ -320,10 +320,10 @@ class ExplosiveDeployableJammerTest extends ActorTest {
|
||||||
|
|
||||||
val j_mine = Deployables.Make(DeployedItem.jammer_mine)().asInstanceOf[ExplosiveDeployable] //guid=1
|
val j_mine = Deployables.Make(DeployedItem.jammer_mine)().asInstanceOf[ExplosiveDeployable] //guid=1
|
||||||
val player1 =
|
val player1 =
|
||||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=3
|
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=3
|
||||||
player1.Spawn()
|
player1.Spawn()
|
||||||
val player2 =
|
val player2 =
|
||||||
Player(Avatar(0, "TestCharacter2", PlanetSideEmpire.NC, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=4
|
Player(Avatar(0, "TestCharacter2", PlanetSideEmpire.NC, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=4
|
||||||
player2.Spawn()
|
player2.Spawn()
|
||||||
val weapon = Tool(GlobalDefinitions.jammer_grenade) //guid=5
|
val weapon = Tool(GlobalDefinitions.jammer_grenade) //guid=5
|
||||||
guid.register(j_mine, 1)
|
guid.register(j_mine, 1)
|
||||||
|
|
@ -420,10 +420,10 @@ class ExplosiveDeployableJammerExplodeTest extends ActorTest {
|
||||||
|
|
||||||
val h_mine = Deployables.Make(DeployedItem.he_mine)().asInstanceOf[ExplosiveDeployable] //guid=2
|
val h_mine = Deployables.Make(DeployedItem.he_mine)().asInstanceOf[ExplosiveDeployable] //guid=2
|
||||||
val player1 =
|
val player1 =
|
||||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=3
|
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=3
|
||||||
player1.Spawn()
|
player1.Spawn()
|
||||||
val player2 =
|
val player2 =
|
||||||
Player(Avatar(0, "TestCharacter2", PlanetSideEmpire.NC, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=4
|
Player(Avatar(0, "TestCharacter2", PlanetSideEmpire.NC, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=4
|
||||||
player2.Spawn()
|
player2.Spawn()
|
||||||
val weapon = Tool(GlobalDefinitions.jammer_grenade) //guid=5
|
val weapon = Tool(GlobalDefinitions.jammer_grenade) //guid=5
|
||||||
guid.register(h_mine, 2)
|
guid.register(h_mine, 2)
|
||||||
|
|
@ -531,10 +531,10 @@ class ExplosiveDeployableDestructionTest extends ActorTest {
|
||||||
|
|
||||||
val h_mine = Deployables.Make(DeployedItem.he_mine)().asInstanceOf[ExplosiveDeployable] //guid=2
|
val h_mine = Deployables.Make(DeployedItem.he_mine)().asInstanceOf[ExplosiveDeployable] //guid=2
|
||||||
val player1 =
|
val player1 =
|
||||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=3
|
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=3
|
||||||
player1.Spawn()
|
player1.Spawn()
|
||||||
val player2 =
|
val player2 =
|
||||||
Player(Avatar(0, "TestCharacter2", PlanetSideEmpire.NC, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=4
|
Player(Avatar(0, "TestCharacter2", PlanetSideEmpire.NC, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=4
|
||||||
player2.Spawn()
|
player2.Spawn()
|
||||||
val weapon = Tool(GlobalDefinitions.suppressor) //guid=5
|
val weapon = Tool(GlobalDefinitions.suppressor) //guid=5
|
||||||
guid.register(h_mine, 2)
|
guid.register(h_mine, 2)
|
||||||
|
|
@ -673,7 +673,7 @@ class TurretControlMountTest extends ActorTest {
|
||||||
obj.Actor = system.actorOf(Props(classOf[TurretControl], obj), s"${obj.Definition.Name}_test")
|
obj.Actor = system.actorOf(Props(classOf[TurretControl], obj), s"${obj.Definition.Name}_test")
|
||||||
|
|
||||||
assert(obj.Seats(0).occupant.isEmpty)
|
assert(obj.Seats(0).occupant.isEmpty)
|
||||||
val player1 = Player(Avatar(0, "test1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
|
val player1 = Player(Avatar(0, "test1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
obj.Actor ! Mountable.TryMount(player1, 1)
|
obj.Actor ! Mountable.TryMount(player1, 1)
|
||||||
val reply1a = receiveOne(200 milliseconds)
|
val reply1a = receiveOne(200 milliseconds)
|
||||||
assert(reply1a.isInstanceOf[Mountable.MountMessages])
|
assert(reply1a.isInstanceOf[Mountable.MountMessages])
|
||||||
|
|
@ -693,7 +693,7 @@ class TurretControlBlockMountTest extends ActorTest {
|
||||||
obj.Actor = system.actorOf(Props(classOf[TurretControl], obj), s"${obj.Definition.Name}_test")
|
obj.Actor = system.actorOf(Props(classOf[TurretControl], obj), s"${obj.Definition.Name}_test")
|
||||||
|
|
||||||
assert(obj.Seats(0).occupant.isEmpty)
|
assert(obj.Seats(0).occupant.isEmpty)
|
||||||
val player1 = Player(Avatar(0, "test1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
|
val player1 = Player(Avatar(0, "test1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
obj.Actor ! Mountable.TryMount(player1, 1)
|
obj.Actor ! Mountable.TryMount(player1, 1)
|
||||||
val reply1a = receiveOne(200 milliseconds)
|
val reply1a = receiveOne(200 milliseconds)
|
||||||
assert(reply1a.isInstanceOf[Mountable.MountMessages])
|
assert(reply1a.isInstanceOf[Mountable.MountMessages])
|
||||||
|
|
@ -702,7 +702,7 @@ class TurretControlBlockMountTest extends ActorTest {
|
||||||
assert(reply1b.response.isInstanceOf[Mountable.CanMount])
|
assert(reply1b.response.isInstanceOf[Mountable.CanMount])
|
||||||
assert(obj.Seats(0).occupant.contains(player1))
|
assert(obj.Seats(0).occupant.contains(player1))
|
||||||
|
|
||||||
val player2 = Player(Avatar(1, "test2", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
|
val player2 = Player(Avatar(1, "test2", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
obj.Actor ! Mountable.TryMount(player2, 1)
|
obj.Actor ! Mountable.TryMount(player2, 1)
|
||||||
val reply2a = receiveOne(200 milliseconds)
|
val reply2a = receiveOne(200 milliseconds)
|
||||||
assert(reply2a.isInstanceOf[Mountable.MountMessages])
|
assert(reply2a.isInstanceOf[Mountable.MountMessages])
|
||||||
|
|
@ -721,7 +721,7 @@ class TurretControlBlockBetrayalMountTest extends ActorTest {
|
||||||
obj.Actor = system.actorOf(Props(classOf[TurretControl], obj), s"${obj.Definition.Name}_test")
|
obj.Actor = system.actorOf(Props(classOf[TurretControl], obj), s"${obj.Definition.Name}_test")
|
||||||
|
|
||||||
assert(obj.Seats(0).occupant.isEmpty)
|
assert(obj.Seats(0).occupant.isEmpty)
|
||||||
val player = Player(Avatar(0, "test", PlanetSideEmpire.VS, CharacterGender.Male, 0, CharacterVoice.Mute))
|
val player = Player(Avatar(0, "test", PlanetSideEmpire.VS, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
obj.Actor ! Mountable.TryMount(player, 1)
|
obj.Actor ! Mountable.TryMount(player, 1)
|
||||||
val reply1a = receiveOne(200 milliseconds)
|
val reply1a = receiveOne(200 milliseconds)
|
||||||
assert(reply1a.isInstanceOf[Mountable.MountMessages])
|
assert(reply1a.isInstanceOf[Mountable.MountMessages])
|
||||||
|
|
@ -741,8 +741,9 @@ class TurretControlDismountTest extends ActorTest {
|
||||||
obj.Actor = system.actorOf(Props(classOf[TurretControl], obj), s"${obj.Definition.Name}_test")
|
obj.Actor = system.actorOf(Props(classOf[TurretControl], obj), s"${obj.Definition.Name}_test")
|
||||||
|
|
||||||
assert(obj.Seats(0).occupant.isEmpty)
|
assert(obj.Seats(0).occupant.isEmpty)
|
||||||
val player = Player(Avatar(0, "test", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
|
val player = Player(Avatar(0, "test", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
obj.Actor ! Mountable.TryMount(player, 1)
|
obj.Actor ! Mountable.TryMount(player, 1)
|
||||||
|
|
||||||
val reply1a = receiveOne(200 milliseconds)
|
val reply1a = receiveOne(200 milliseconds)
|
||||||
assert(reply1a.isInstanceOf[Mountable.MountMessages])
|
assert(reply1a.isInstanceOf[Mountable.MountMessages])
|
||||||
val reply1b = reply1a.asInstanceOf[Mountable.MountMessages]
|
val reply1b = reply1a.asInstanceOf[Mountable.MountMessages]
|
||||||
|
|
@ -775,7 +776,7 @@ class TurretControlBetrayalMountTest extends ActorTest {
|
||||||
val probe = new TestProbe(system)
|
val probe = new TestProbe(system)
|
||||||
|
|
||||||
assert(obj.Seats(0).occupant.isEmpty)
|
assert(obj.Seats(0).occupant.isEmpty)
|
||||||
val player = Player(Avatar(0, "test", PlanetSideEmpire.NC, CharacterGender.Male, 0, CharacterVoice.Mute))
|
val player = Player(Avatar(0, "test", PlanetSideEmpire.NC, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
assert(player.Faction != obj.Faction)
|
assert(player.Faction != obj.Faction)
|
||||||
obj.Actor.tell(Mountable.TryMount(player, 1), probe.ref)
|
obj.Actor.tell(Mountable.TryMount(player, 1), probe.ref)
|
||||||
val reply1a = probe.receiveOne(200 milliseconds)
|
val reply1a = probe.receiveOne(200 milliseconds)
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ import org.specs2.mutable.Specification
|
||||||
import scala.concurrent.duration._
|
import scala.concurrent.duration._
|
||||||
|
|
||||||
class DoorTest extends Specification {
|
class DoorTest extends Specification {
|
||||||
val player = Player(Avatar(0, "test", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
|
val player = Player(Avatar(0, "test", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
|
|
||||||
"Door" should {
|
"Door" should {
|
||||||
"construct" in {
|
"construct" in {
|
||||||
|
|
@ -148,7 +148,7 @@ object DoorControlTest {
|
||||||
GlobalDefinitions.building
|
GlobalDefinitions.building
|
||||||
)
|
)
|
||||||
door.Owner.Faction = faction
|
door.Owner.Faction = faction
|
||||||
val player = Player(Avatar(0, "test", faction, CharacterGender.Male, 0, CharacterVoice.Mute))
|
val player = Player(Avatar(0, "test", faction, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
guid.register(player, 2)
|
guid.register(player, 2)
|
||||||
(player, door)
|
(player, door)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -100,7 +100,7 @@ class FacilityTurretControl1Test extends ActorTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
class FacilityTurretControl2Test extends ActorTest {
|
class FacilityTurretControl2Test extends ActorTest {
|
||||||
val player = Player(Avatar(0, "", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
|
val player = Player(Avatar(0, "", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
val obj = FacilityTurret(GlobalDefinitions.manned_turret)
|
val obj = FacilityTurret(GlobalDefinitions.manned_turret)
|
||||||
obj.GUID = PlanetSideGUID(1)
|
obj.GUID = PlanetSideGUID(1)
|
||||||
obj.Actor = system.actorOf(Props(classOf[FacilityTurretControl], obj), "turret-control")
|
obj.Actor = system.actorOf(Props(classOf[FacilityTurretControl], obj), "turret-control")
|
||||||
|
|
@ -127,7 +127,7 @@ class FacilityTurretControl2Test extends ActorTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
class FacilityTurretControl3Test extends ActorTest {
|
class FacilityTurretControl3Test extends ActorTest {
|
||||||
val player = Player(Avatar(0, "", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
|
val player = Player(Avatar(0, "", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
val obj = FacilityTurret(GlobalDefinitions.manned_turret)
|
val obj = FacilityTurret(GlobalDefinitions.manned_turret)
|
||||||
obj.GUID = PlanetSideGUID(1)
|
obj.GUID = PlanetSideGUID(1)
|
||||||
obj.Actor = system.actorOf(Props(classOf[FacilityTurretControl], obj), "turret-control")
|
obj.Actor = system.actorOf(Props(classOf[FacilityTurretControl], obj), "turret-control")
|
||||||
|
|
@ -153,7 +153,7 @@ class FacilityTurretControl3Test extends ActorTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
class FacilityTurretControl4Test extends ActorTest {
|
class FacilityTurretControl4Test extends ActorTest {
|
||||||
val player = Player(Avatar(0, "", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
|
val player = Player(Avatar(0, "", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
val obj = FacilityTurret(GlobalDefinitions.vanu_sentry_turret)
|
val obj = FacilityTurret(GlobalDefinitions.vanu_sentry_turret)
|
||||||
obj.GUID = PlanetSideGUID(1)
|
obj.GUID = PlanetSideGUID(1)
|
||||||
obj.Actor = system.actorOf(Props(classOf[FacilityTurretControl], obj), "turret-control")
|
obj.Actor = system.actorOf(Props(classOf[FacilityTurretControl], obj), "turret-control")
|
||||||
|
|
@ -201,7 +201,7 @@ class FacilityTurretControlRestorationTest extends ActorTest {
|
||||||
val turretWeapon = turret.Weapons.values.head.Equipment.get.asInstanceOf[Tool]
|
val turretWeapon = turret.Weapons.values.head.Equipment.get.asInstanceOf[Tool]
|
||||||
|
|
||||||
val player1 =
|
val player1 =
|
||||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=3
|
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=3
|
||||||
player1.Spawn()
|
player1.Spawn()
|
||||||
player1.Position = Vector3(2, 2, 2)
|
player1.Position = Vector3(2, 2, 2)
|
||||||
val player1Probe = TestProbe()
|
val player1Probe = TestProbe()
|
||||||
|
|
|
||||||
|
|
@ -66,7 +66,7 @@ class GeneratorControlDamageTest extends ActorTest {
|
||||||
gen.Actor = system.actorOf(Props(classOf[GeneratorControl], gen), "generator-control")
|
gen.Actor = system.actorOf(Props(classOf[GeneratorControl], gen), "generator-control")
|
||||||
|
|
||||||
val player1 =
|
val player1 =
|
||||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=3
|
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=3
|
||||||
player1.Position = Vector3(14, 0, 0) //<14m from generator; dies
|
player1.Position = Vector3(14, 0, 0) //<14m from generator; dies
|
||||||
player1.Spawn()
|
player1.Spawn()
|
||||||
|
|
||||||
|
|
@ -149,7 +149,7 @@ class GeneratorControlCriticalTest extends ActorTest {
|
||||||
gen.Actor = system.actorOf(Props(classOf[GeneratorControl], gen), "generator-control")
|
gen.Actor = system.actorOf(Props(classOf[GeneratorControl], gen), "generator-control")
|
||||||
|
|
||||||
val player1 =
|
val player1 =
|
||||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=3
|
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=3
|
||||||
player1.Position = Vector3(14, 0, 0) //<14m from generator; dies
|
player1.Position = Vector3(14, 0, 0) //<14m from generator; dies
|
||||||
player1.Spawn()
|
player1.Spawn()
|
||||||
|
|
||||||
|
|
@ -234,7 +234,7 @@ class GeneratorControlDestroyedTest extends ActorTest {
|
||||||
gen.Actor = system.actorOf(Props(classOf[GeneratorControl], gen), "generator-control")
|
gen.Actor = system.actorOf(Props(classOf[GeneratorControl], gen), "generator-control")
|
||||||
|
|
||||||
val player1 =
|
val player1 =
|
||||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=3
|
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=3
|
||||||
player1.Position = Vector3(14, 0, 0) //<14m from generator; dies
|
player1.Position = Vector3(14, 0, 0) //<14m from generator; dies
|
||||||
player1.Spawn()
|
player1.Spawn()
|
||||||
player1.Actor = TestProbe().ref
|
player1.Actor = TestProbe().ref
|
||||||
|
|
@ -343,13 +343,13 @@ class GeneratorControlKillsTest extends ActorTest {
|
||||||
gen.Actor = system.actorOf(Props(classOf[GeneratorControl], gen), "generator-control")
|
gen.Actor = system.actorOf(Props(classOf[GeneratorControl], gen), "generator-control")
|
||||||
|
|
||||||
val player1 =
|
val player1 =
|
||||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=3
|
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=3
|
||||||
player1.Position = Vector3(14, 0, 0) //<14m from generator; dies
|
player1.Position = Vector3(14, 0, 0) //<14m from generator; dies
|
||||||
player1.Spawn()
|
player1.Spawn()
|
||||||
val player1Probe = TestProbe()
|
val player1Probe = TestProbe()
|
||||||
player1.Actor = player1Probe.ref
|
player1.Actor = player1Probe.ref
|
||||||
val player2 =
|
val player2 =
|
||||||
Player(Avatar(0, "TestCharacter2", PlanetSideEmpire.TR, CharacterGender.Female, 1, CharacterVoice.Mute)) //guid=4
|
Player(Avatar(0, "TestCharacter2", PlanetSideEmpire.TR, CharacterSex.Female, 1, CharacterVoice.Mute)) //guid=4
|
||||||
player2.Position = Vector3(25, 0, 0) //>14m from generator; lives
|
player2.Position = Vector3(25, 0, 0) //>14m from generator; lives
|
||||||
player2.Spawn()
|
player2.Spawn()
|
||||||
val player2Probe = TestProbe()
|
val player2Probe = TestProbe()
|
||||||
|
|
@ -481,7 +481,7 @@ class GeneratorControlNotDestroyTwice extends ActorTest {
|
||||||
val building = Building("test-building", 1, 1, zone, StructureType.Facility) //guid=1
|
val building = Building("test-building", 1, 1, zone, StructureType.Facility) //guid=1
|
||||||
val gen = Generator(GeneratorTest.generator_definition) //guid=2
|
val gen = Generator(GeneratorTest.generator_definition) //guid=2
|
||||||
val player1 =
|
val player1 =
|
||||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=3
|
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=3
|
||||||
player1.Spawn()
|
player1.Spawn()
|
||||||
guid.register(building, 1)
|
guid.register(building, 1)
|
||||||
guid.register(gen, 2)
|
guid.register(gen, 2)
|
||||||
|
|
@ -572,7 +572,7 @@ class GeneratorControlNotDamageIfExplodingTest extends ActorTest {
|
||||||
gen.Actor = system.actorOf(Props(classOf[GeneratorControl], gen), "generator-control")
|
gen.Actor = system.actorOf(Props(classOf[GeneratorControl], gen), "generator-control")
|
||||||
|
|
||||||
val player1 =
|
val player1 =
|
||||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=3
|
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=3
|
||||||
player1.Position = Vector3(14, 0, 0) //<14m from generator; dies
|
player1.Position = Vector3(14, 0, 0) //<14m from generator; dies
|
||||||
player1.Spawn()
|
player1.Spawn()
|
||||||
val player1Probe = TestProbe()
|
val player1Probe = TestProbe()
|
||||||
|
|
@ -671,7 +671,7 @@ class GeneratorControlNotRepairIfExplodingTest extends ActorTest {
|
||||||
gen.Actor = system.actorOf(Props(classOf[GeneratorControl], gen), "generator-control")
|
gen.Actor = system.actorOf(Props(classOf[GeneratorControl], gen), "generator-control")
|
||||||
|
|
||||||
val player1 =
|
val player1 =
|
||||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=3
|
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=3
|
||||||
player1.Position = Vector3(14, 0, 0) //<14m from generator; dies
|
player1.Position = Vector3(14, 0, 0) //<14m from generator; dies
|
||||||
player1.Spawn()
|
player1.Spawn()
|
||||||
val player1Probe = TestProbe()
|
val player1Probe = TestProbe()
|
||||||
|
|
@ -774,7 +774,7 @@ class GeneratorControlRepairPastRestorePoint extends ActorTest {
|
||||||
gen.Actor = system.actorOf(Props(classOf[GeneratorControl], gen), "generator-control")
|
gen.Actor = system.actorOf(Props(classOf[GeneratorControl], gen), "generator-control")
|
||||||
|
|
||||||
val player1 =
|
val player1 =
|
||||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=3
|
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=3
|
||||||
player1.Position = Vector3(14, 0, 0) //<14m from generator; dies
|
player1.Position = Vector3(14, 0, 0) //<14m from generator; dies
|
||||||
player1.Spawn()
|
player1.Spawn()
|
||||||
val player1Probe = TestProbe()
|
val player1Probe = TestProbe()
|
||||||
|
|
|
||||||
|
|
@ -98,6 +98,6 @@ object IFFLockControlTest {
|
||||||
GlobalDefinitions.building
|
GlobalDefinitions.building
|
||||||
)
|
)
|
||||||
lock.Owner.Faction = faction
|
lock.Owner.Faction = faction
|
||||||
(Player(Avatar(0, "test", faction, CharacterGender.Male, 0, CharacterVoice.Mute)), lock)
|
(Player(Avatar(0, "test", faction, CharacterSex.Male, 0, CharacterVoice.Mute)), lock)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,13 +3,13 @@ package objects
|
||||||
|
|
||||||
import net.psforever.objects._
|
import net.psforever.objects._
|
||||||
import net.psforever.objects.loadouts._
|
import net.psforever.objects.loadouts._
|
||||||
import net.psforever.types.{CharacterGender, CharacterVoice, ExoSuitType, PlanetSideEmpire}
|
import net.psforever.types.{CharacterSex, CharacterVoice, ExoSuitType, PlanetSideEmpire}
|
||||||
import net.psforever.objects.GlobalDefinitions._
|
import net.psforever.objects.GlobalDefinitions._
|
||||||
import net.psforever.objects.avatar.Avatar
|
import net.psforever.objects.avatar.Avatar
|
||||||
import org.specs2.mutable._
|
import org.specs2.mutable._
|
||||||
|
|
||||||
class LoadoutTest extends Specification {
|
class LoadoutTest extends Specification {
|
||||||
val avatar = Avatar(0, "TestCharacter", PlanetSideEmpire.VS, CharacterGender.Female, 41, CharacterVoice.Voice1)
|
val avatar = Avatar(0, "TestCharacter", PlanetSideEmpire.VS, CharacterSex.Female, 41, CharacterVoice.Voice1)
|
||||||
|
|
||||||
def CreatePlayer(): Player = {
|
def CreatePlayer(): Player = {
|
||||||
new Player(avatar) {
|
new Player(avatar) {
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ import net.psforever.objects.avatar.Avatar
|
||||||
import net.psforever.objects.definition.ObjectDefinition
|
import net.psforever.objects.definition.ObjectDefinition
|
||||||
import net.psforever.objects.serverobject.mount._
|
import net.psforever.objects.serverobject.mount._
|
||||||
import net.psforever.objects.serverobject.PlanetSideServerObject
|
import net.psforever.objects.serverobject.PlanetSideServerObject
|
||||||
import net.psforever.types.{CharacterGender, CharacterVoice, PlanetSideEmpire, PlanetSideGUID}
|
import net.psforever.types.{CharacterSex, CharacterVoice, PlanetSideEmpire, PlanetSideGUID}
|
||||||
|
|
||||||
import scala.concurrent.duration.Duration
|
import scala.concurrent.duration.Duration
|
||||||
|
|
||||||
|
|
@ -25,7 +25,7 @@ class MountableControl1Test extends ActorTest {
|
||||||
class MountableControl2Test extends ActorTest {
|
class MountableControl2Test extends ActorTest {
|
||||||
"MountableControl" should {
|
"MountableControl" should {
|
||||||
"let a player mount" in {
|
"let a player mount" in {
|
||||||
val player = Player(Avatar(0, "test", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
|
val player = Player(Avatar(0, "test", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
val obj = new MountableTest.MountableTestObject
|
val obj = new MountableTest.MountableTestObject
|
||||||
obj.Actor = system.actorOf(Props(classOf[MountableTest.MountableTestControl], obj), "mountable")
|
obj.Actor = system.actorOf(Props(classOf[MountableTest.MountableTestControl], obj), "mountable")
|
||||||
val msg = Mountable.TryMount(player, 0)
|
val msg = Mountable.TryMount(player, 0)
|
||||||
|
|
@ -46,8 +46,8 @@ class MountableControl2Test extends ActorTest {
|
||||||
class MountableControl3Test extends ActorTest {
|
class MountableControl3Test extends ActorTest {
|
||||||
"MountableControl" should {
|
"MountableControl" should {
|
||||||
"block a player from mounting" in {
|
"block a player from mounting" in {
|
||||||
val player1 = Player(Avatar(0, "test1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
|
val player1 = Player(Avatar(0, "test1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
val player2 = Player(Avatar(1, "test2", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
|
val player2 = Player(Avatar(1, "test2", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
val obj = new MountableTest.MountableTestObject
|
val obj = new MountableTest.MountableTestObject
|
||||||
obj.Actor = system.actorOf(Props(classOf[MountableTest.MountableTestControl], obj), "mountable")
|
obj.Actor = system.actorOf(Props(classOf[MountableTest.MountableTestControl], obj), "mountable")
|
||||||
obj.Actor ! Mountable.TryMount(player1, 0)
|
obj.Actor ! Mountable.TryMount(player1, 0)
|
||||||
|
|
|
||||||
|
|
@ -26,9 +26,9 @@ import scala.concurrent.duration._
|
||||||
|
|
||||||
class PlayerControlHealTest extends ActorTest {
|
class PlayerControlHealTest extends ActorTest {
|
||||||
val player1 =
|
val player1 =
|
||||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=1
|
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=1
|
||||||
val player2 =
|
val player2 =
|
||||||
Player(Avatar(1, "TestCharacter2", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=2
|
Player(Avatar(1, "TestCharacter2", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=2
|
||||||
val avatarProbe = TestProbe()
|
val avatarProbe = TestProbe()
|
||||||
val guid = new NumberPoolHub(new MaxNumberSource(15))
|
val guid = new NumberPoolHub(new MaxNumberSource(15))
|
||||||
val zone = new Zone("test", new ZoneMap("test"), 0) {
|
val zone = new Zone("test", new ZoneMap("test"), 0) {
|
||||||
|
|
@ -111,7 +111,7 @@ class PlayerControlHealTest extends ActorTest {
|
||||||
}
|
}
|
||||||
class PlayerControlHealSelfTest extends ActorTest {
|
class PlayerControlHealSelfTest extends ActorTest {
|
||||||
val player1 =
|
val player1 =
|
||||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=1
|
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=1
|
||||||
val avatarProbe = TestProbe()
|
val avatarProbe = TestProbe()
|
||||||
val guid = new NumberPoolHub(new MaxNumberSource(15))
|
val guid = new NumberPoolHub(new MaxNumberSource(15))
|
||||||
val zone = new Zone("test", new ZoneMap("test"), 0) {
|
val zone = new Zone("test", new ZoneMap("test"), 0) {
|
||||||
|
|
@ -186,9 +186,9 @@ class PlayerControlHealSelfTest extends ActorTest {
|
||||||
|
|
||||||
class PlayerControlRepairTest extends ActorTest {
|
class PlayerControlRepairTest extends ActorTest {
|
||||||
val player1 =
|
val player1 =
|
||||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=1
|
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=1
|
||||||
val player2 =
|
val player2 =
|
||||||
Player(Avatar(1, "TestCharacter2", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=2
|
Player(Avatar(1, "TestCharacter2", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=2
|
||||||
val avatarProbe = TestProbe()
|
val avatarProbe = TestProbe()
|
||||||
val guid = new NumberPoolHub(new MaxNumberSource(15))
|
val guid = new NumberPoolHub(new MaxNumberSource(15))
|
||||||
val zone = new Zone("test", new ZoneMap("test"), 0) {
|
val zone = new Zone("test", new ZoneMap("test"), 0) {
|
||||||
|
|
@ -282,7 +282,7 @@ class PlayerControlRepairTest extends ActorTest {
|
||||||
|
|
||||||
class PlayerControlRepairSelfTest extends ActorTest {
|
class PlayerControlRepairSelfTest extends ActorTest {
|
||||||
val player1 =
|
val player1 =
|
||||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=1
|
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=1
|
||||||
val avatarProbe = TestProbe()
|
val avatarProbe = TestProbe()
|
||||||
val guid = new NumberPoolHub(new MaxNumberSource(15))
|
val guid = new NumberPoolHub(new MaxNumberSource(15))
|
||||||
val zone = new Zone("test", new ZoneMap("test"), 0) {
|
val zone = new Zone("test", new ZoneMap("test"), 0) {
|
||||||
|
|
@ -357,9 +357,9 @@ class PlayerControlRepairSelfTest extends ActorTest {
|
||||||
|
|
||||||
class PlayerControlDamageTest extends ActorTest {
|
class PlayerControlDamageTest extends ActorTest {
|
||||||
val player1 =
|
val player1 =
|
||||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=1
|
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=1
|
||||||
val player2 =
|
val player2 =
|
||||||
Player(Avatar(1, "TestCharacter2", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=2
|
Player(Avatar(1, "TestCharacter2", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=2
|
||||||
val avatarProbe = TestProbe()
|
val avatarProbe = TestProbe()
|
||||||
val activityProbe = TestProbe()
|
val activityProbe = TestProbe()
|
||||||
val guid = new NumberPoolHub(new MaxNumberSource(15))
|
val guid = new NumberPoolHub(new MaxNumberSource(15))
|
||||||
|
|
@ -462,9 +462,9 @@ class PlayerControlDamageTest extends ActorTest {
|
||||||
|
|
||||||
class PlayerControlDeathStandingTest extends ActorTest {
|
class PlayerControlDeathStandingTest extends ActorTest {
|
||||||
val player1 =
|
val player1 =
|
||||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=1
|
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=1
|
||||||
val player2 =
|
val player2 =
|
||||||
Player(Avatar(1, "TestCharacter2", PlanetSideEmpire.NC, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=2
|
Player(Avatar(1, "TestCharacter2", PlanetSideEmpire.NC, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=2
|
||||||
val avatarProbe = TestProbe()
|
val avatarProbe = TestProbe()
|
||||||
val activityProbe = TestProbe()
|
val activityProbe = TestProbe()
|
||||||
val guid = new NumberPoolHub(new MaxNumberSource(15))
|
val guid = new NumberPoolHub(new MaxNumberSource(15))
|
||||||
|
|
@ -600,9 +600,9 @@ class PlayerControlDeathStandingTest extends ActorTest {
|
||||||
|
|
||||||
class PlayerControlDeathSeatedTest extends ActorTest {
|
class PlayerControlDeathSeatedTest extends ActorTest {
|
||||||
val player1 =
|
val player1 =
|
||||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=1
|
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=1
|
||||||
val player2 =
|
val player2 =
|
||||||
Player(Avatar(1, "TestCharacter2", PlanetSideEmpire.NC, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=2
|
Player(Avatar(1, "TestCharacter2", PlanetSideEmpire.NC, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=2
|
||||||
val avatarProbe = TestProbe()
|
val avatarProbe = TestProbe()
|
||||||
val activityProbe = TestProbe()
|
val activityProbe = TestProbe()
|
||||||
val guid = new NumberPoolHub(new MaxNumberSource(15))
|
val guid = new NumberPoolHub(new MaxNumberSource(15))
|
||||||
|
|
@ -756,7 +756,7 @@ class PlayerControlDeathSeatedTest extends ActorTest {
|
||||||
|
|
||||||
class PlayerControlInteractWithWaterTest extends ActorTest {
|
class PlayerControlInteractWithWaterTest extends ActorTest {
|
||||||
val player1 =
|
val player1 =
|
||||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=1
|
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=1
|
||||||
val avatarProbe = TestProbe()
|
val avatarProbe = TestProbe()
|
||||||
val guid = new NumberPoolHub(new MaxNumberSource(15))
|
val guid = new NumberPoolHub(new MaxNumberSource(15))
|
||||||
val pool = Pool(EnvironmentAttribute.Water, DeepSquare(-1, 10, 10, 0, 0))
|
val pool = Pool(EnvironmentAttribute.Water, DeepSquare(-1, 10, 10, 0, 0))
|
||||||
|
|
@ -808,7 +808,7 @@ class PlayerControlInteractWithWaterTest extends ActorTest {
|
||||||
|
|
||||||
class PlayerControlStopInteractWithWaterTest extends ActorTest {
|
class PlayerControlStopInteractWithWaterTest extends ActorTest {
|
||||||
val player1 =
|
val player1 =
|
||||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=1
|
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=1
|
||||||
val avatarProbe = TestProbe()
|
val avatarProbe = TestProbe()
|
||||||
val guid = new NumberPoolHub(new MaxNumberSource(15))
|
val guid = new NumberPoolHub(new MaxNumberSource(15))
|
||||||
val pool = Pool(EnvironmentAttribute.Water, DeepSquare(-1, 10, 10, 0, 0))
|
val pool = Pool(EnvironmentAttribute.Water, DeepSquare(-1, 10, 10, 0, 0))
|
||||||
|
|
@ -871,7 +871,7 @@ class PlayerControlStopInteractWithWaterTest extends ActorTest {
|
||||||
|
|
||||||
class PlayerControlInteractWithLavaTest extends ActorTest {
|
class PlayerControlInteractWithLavaTest extends ActorTest {
|
||||||
val player1 =
|
val player1 =
|
||||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=1
|
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=1
|
||||||
val avatarProbe = TestProbe()
|
val avatarProbe = TestProbe()
|
||||||
val guid = new NumberPoolHub(new MaxNumberSource(15))
|
val guid = new NumberPoolHub(new MaxNumberSource(15))
|
||||||
val pool = Pool(EnvironmentAttribute.Lava, DeepSquare(-1, 10, 10, 0, 0))
|
val pool = Pool(EnvironmentAttribute.Lava, DeepSquare(-1, 10, 10, 0, 0))
|
||||||
|
|
@ -931,7 +931,7 @@ class PlayerControlInteractWithLavaTest extends ActorTest {
|
||||||
|
|
||||||
class PlayerControlInteractWithDeathTest extends ActorTest {
|
class PlayerControlInteractWithDeathTest extends ActorTest {
|
||||||
val player1 =
|
val player1 =
|
||||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=1
|
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=1
|
||||||
val avatarProbe = TestProbe()
|
val avatarProbe = TestProbe()
|
||||||
val guid = new NumberPoolHub(new MaxNumberSource(15))
|
val guid = new NumberPoolHub(new MaxNumberSource(15))
|
||||||
val pool = Pool(EnvironmentAttribute.Death, DeepSquare(-1, 10, 10, 0, 0))
|
val pool = Pool(EnvironmentAttribute.Death, DeepSquare(-1, 10, 10, 0, 0))
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ import net.psforever.objects._
|
||||||
import net.psforever.objects.avatar.Avatar
|
import net.psforever.objects.avatar.Avatar
|
||||||
import net.psforever.objects.definition.{SimpleItemDefinition, SpecialExoSuitDefinition}
|
import net.psforever.objects.definition.{SimpleItemDefinition, SpecialExoSuitDefinition}
|
||||||
import net.psforever.objects.equipment.EquipmentSize
|
import net.psforever.objects.equipment.EquipmentSize
|
||||||
|
import net.psforever.objects.inventory.InventoryItem
|
||||||
import net.psforever.objects.locker.LockerEquipment
|
import net.psforever.objects.locker.LockerEquipment
|
||||||
import net.psforever.types.{PlanetSideGUID, _}
|
import net.psforever.types.{PlanetSideGUID, _}
|
||||||
import org.specs2.mutable._
|
import org.specs2.mutable._
|
||||||
|
|
@ -16,7 +17,7 @@ class PlayerTest extends Specification {
|
||||||
def TestPlayer(
|
def TestPlayer(
|
||||||
name: String,
|
name: String,
|
||||||
faction: PlanetSideEmpire.Value,
|
faction: PlanetSideEmpire.Value,
|
||||||
sex: CharacterGender.Value,
|
sex: CharacterSex,
|
||||||
head: Int,
|
head: Int,
|
||||||
voice: CharacterVoice.Value
|
voice: CharacterVoice.Value
|
||||||
): Player = {
|
): Player = {
|
||||||
|
|
@ -25,7 +26,7 @@ class PlayerTest extends Specification {
|
||||||
|
|
||||||
"Player" should {
|
"Player" should {
|
||||||
"construct" in {
|
"construct" in {
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Voice5)
|
||||||
obj.isAlive mustEqual false
|
obj.isAlive mustEqual false
|
||||||
obj.FacingYawUpper mustEqual 0
|
obj.FacingYawUpper mustEqual 0
|
||||||
obj.Jumping mustEqual false
|
obj.Jumping mustEqual false
|
||||||
|
|
@ -43,7 +44,7 @@ class PlayerTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"(re)spawn" in {
|
"(re)spawn" in {
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Voice5)
|
||||||
obj.isAlive mustEqual false
|
obj.isAlive mustEqual false
|
||||||
obj.Health mustEqual 0
|
obj.Health mustEqual 0
|
||||||
obj.Armor mustEqual 0
|
obj.Armor mustEqual 0
|
||||||
|
|
@ -56,7 +57,7 @@ class PlayerTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"will not (re)spawn if not dead" in {
|
"will not (re)spawn if not dead" in {
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Voice5)
|
||||||
obj.Spawn()
|
obj.Spawn()
|
||||||
obj.Health mustEqual 100
|
obj.Health mustEqual 100
|
||||||
obj.Armor mustEqual 50
|
obj.Armor mustEqual 50
|
||||||
|
|
@ -72,7 +73,7 @@ class PlayerTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"can die" in {
|
"can die" in {
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Voice5)
|
||||||
obj.Spawn()
|
obj.Spawn()
|
||||||
obj.Armor = 35 //50 -> 35
|
obj.Armor = 35 //50 -> 35
|
||||||
obj.isAlive mustEqual true
|
obj.isAlive mustEqual true
|
||||||
|
|
@ -85,7 +86,7 @@ class PlayerTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"can not become a backpack if alive" in {
|
"can not become a backpack if alive" in {
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Voice5)
|
||||||
obj.Spawn()
|
obj.Spawn()
|
||||||
obj.isAlive mustEqual true
|
obj.isAlive mustEqual true
|
||||||
obj.isBackpack mustEqual false
|
obj.isBackpack mustEqual false
|
||||||
|
|
@ -95,7 +96,7 @@ class PlayerTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"can become a backpack" in {
|
"can become a backpack" in {
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Voice5)
|
||||||
obj.isAlive mustEqual false
|
obj.isAlive mustEqual false
|
||||||
obj.isBackpack mustEqual false
|
obj.isBackpack mustEqual false
|
||||||
obj.Release
|
obj.Release
|
||||||
|
|
@ -104,7 +105,7 @@ class PlayerTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"set new maximum values (health, stamina)" in {
|
"set new maximum values (health, stamina)" in {
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Voice5)
|
||||||
obj.MaxHealth mustEqual 100
|
obj.MaxHealth mustEqual 100
|
||||||
obj.MaxHealth = 123
|
obj.MaxHealth = 123
|
||||||
obj.MaxHealth mustEqual 123
|
obj.MaxHealth mustEqual 123
|
||||||
|
|
@ -114,7 +115,7 @@ class PlayerTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
// "set new values (health, armor, stamina) but only when alive" in {
|
// "set new values (health, armor, stamina) but only when alive" in {
|
||||||
// val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
// val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Voice5)
|
||||||
// obj.Health = 23
|
// obj.Health = 23
|
||||||
// obj.Armor = 34
|
// obj.Armor = 34
|
||||||
// obj.Stamina = 45
|
// obj.Stamina = 45
|
||||||
|
|
@ -135,7 +136,7 @@ class PlayerTest extends Specification {
|
||||||
// }
|
// }
|
||||||
|
|
||||||
"has visible slots" in {
|
"has visible slots" in {
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Voice5)
|
||||||
obj.VisibleSlots mustEqual Set(0, 2, 4) //Standard
|
obj.VisibleSlots mustEqual Set(0, 2, 4) //Standard
|
||||||
obj.ExoSuit = ExoSuitType.Agile
|
obj.ExoSuit = ExoSuitType.Agile
|
||||||
obj.VisibleSlots mustEqual Set(0, 1, 2, 4)
|
obj.VisibleSlots mustEqual Set(0, 1, 2, 4)
|
||||||
|
|
@ -148,7 +149,7 @@ class PlayerTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"init (Standard Exo-Suit)" in {
|
"init (Standard Exo-Suit)" in {
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Voice5)
|
||||||
obj.ExoSuit mustEqual ExoSuitType.Standard
|
obj.ExoSuit mustEqual ExoSuitType.Standard
|
||||||
obj.Slot(0).Size mustEqual EquipmentSize.Pistol
|
obj.Slot(0).Size mustEqual EquipmentSize.Pistol
|
||||||
obj.Slot(1).Size mustEqual EquipmentSize.Blocked
|
obj.Slot(1).Size mustEqual EquipmentSize.Blocked
|
||||||
|
|
@ -162,7 +163,7 @@ class PlayerTest extends Specification {
|
||||||
|
|
||||||
"draw equipped holsters only" in {
|
"draw equipped holsters only" in {
|
||||||
val wep = SimpleItem(SimpleItemDefinition(149))
|
val wep = SimpleItem(SimpleItemDefinition(149))
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Voice5)
|
||||||
obj.Slot(1).Size = EquipmentSize.Pistol
|
obj.Slot(1).Size = EquipmentSize.Pistol
|
||||||
obj.Slot(1).Equipment = wep
|
obj.Slot(1).Equipment = wep
|
||||||
obj.DrawnSlot mustEqual Player.HandsDownSlot
|
obj.DrawnSlot mustEqual Player.HandsDownSlot
|
||||||
|
|
@ -175,7 +176,7 @@ class PlayerTest extends Specification {
|
||||||
"remember the last drawn holster" in {
|
"remember the last drawn holster" in {
|
||||||
val wep1 = SimpleItem(SimpleItemDefinition(149))
|
val wep1 = SimpleItem(SimpleItemDefinition(149))
|
||||||
val wep2 = SimpleItem(SimpleItemDefinition(149))
|
val wep2 = SimpleItem(SimpleItemDefinition(149))
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Voice5)
|
||||||
obj.Slot(0).Size = EquipmentSize.Pistol
|
obj.Slot(0).Size = EquipmentSize.Pistol
|
||||||
obj.Slot(0).Equipment = wep1
|
obj.Slot(0).Equipment = wep1
|
||||||
obj.Slot(1).Size = EquipmentSize.Pistol
|
obj.Slot(1).Size = EquipmentSize.Pistol
|
||||||
|
|
@ -214,7 +215,7 @@ class PlayerTest extends Specification {
|
||||||
|
|
||||||
"hold something in their free hand" in {
|
"hold something in their free hand" in {
|
||||||
val wep = SimpleItem(SimpleItemDefinition(149))
|
val wep = SimpleItem(SimpleItemDefinition(149))
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Voice5)
|
||||||
obj.Slot(Player.FreeHandSlot).Equipment = wep
|
obj.Slot(Player.FreeHandSlot).Equipment = wep
|
||||||
|
|
||||||
obj.Slot(Player.FreeHandSlot).Equipment.get.Definition.ObjectId mustEqual 149
|
obj.Slot(Player.FreeHandSlot).Equipment.get.Definition.ObjectId mustEqual 149
|
||||||
|
|
@ -222,14 +223,14 @@ class PlayerTest extends Specification {
|
||||||
|
|
||||||
"provide an invalid hand that can not hold anything" in {
|
"provide an invalid hand that can not hold anything" in {
|
||||||
val wep = SimpleItem(SimpleItemDefinition(149))
|
val wep = SimpleItem(SimpleItemDefinition(149))
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Voice5)
|
||||||
obj.Slot(-1).Equipment = wep
|
obj.Slot(-1).Equipment = wep
|
||||||
|
|
||||||
obj.Slot(-1).Equipment.isEmpty mustEqual true
|
obj.Slot(-1).Equipment.isEmpty mustEqual true
|
||||||
}
|
}
|
||||||
|
|
||||||
"search for the smallest available slot in which to store equipment" in {
|
"search for the smallest available slot in which to store equipment" in {
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Voice5)
|
||||||
obj.Inventory.Resize(3, 3) //fits one item
|
obj.Inventory.Resize(3, 3) //fits one item
|
||||||
|
|
||||||
obj.Fit(Tool(GlobalDefinitions.beamer)).contains(0) mustEqual true
|
obj.Fit(Tool(GlobalDefinitions.beamer)).contains(0) mustEqual true
|
||||||
|
|
@ -247,7 +248,7 @@ class PlayerTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"can use their free hand to hold things" in {
|
"can use their free hand to hold things" in {
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Voice5)
|
||||||
val ammo = AmmoBox(GlobalDefinitions.bullet_9mm)
|
val ammo = AmmoBox(GlobalDefinitions.bullet_9mm)
|
||||||
obj.FreeHand.Equipment.isEmpty mustEqual true
|
obj.FreeHand.Equipment.isEmpty mustEqual true
|
||||||
|
|
||||||
|
|
@ -256,12 +257,12 @@ class PlayerTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"can access the player's locker-space" in {
|
"can access the player's locker-space" in {
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Voice5)
|
||||||
obj.Slot(5).Equipment.get.isInstanceOf[LockerEquipment] mustEqual true
|
obj.Slot(5).Equipment.get.isInstanceOf[LockerEquipment] mustEqual true
|
||||||
}
|
}
|
||||||
|
|
||||||
"can find equipment" in {
|
"can find equipment" in {
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Voice5)
|
||||||
obj.Slot(0).Equipment = {
|
obj.Slot(0).Equipment = {
|
||||||
val item = Tool(beamer)
|
val item = Tool(beamer)
|
||||||
item.GUID = PlanetSideGUID(1)
|
item.GUID = PlanetSideGUID(1)
|
||||||
|
|
@ -297,7 +298,7 @@ class PlayerTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"does equipment collision checking (are we already holding something there?)" in {
|
"does equipment collision checking (are we already holding something there?)" in {
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Voice5)
|
||||||
val item1 = Tool(beamer)
|
val item1 = Tool(beamer)
|
||||||
val item2 = Kit(medkit)
|
val item2 = Kit(medkit)
|
||||||
val item3 = AmmoBox(GlobalDefinitions.bullet_9mm)
|
val item3 = AmmoBox(GlobalDefinitions.bullet_9mm)
|
||||||
|
|
@ -306,7 +307,7 @@ class PlayerTest extends Specification {
|
||||||
obj.FreeHand.Equipment = item3
|
obj.FreeHand.Equipment = item3
|
||||||
|
|
||||||
obj.Collisions(0, 1, 1) match {
|
obj.Collisions(0, 1, 1) match {
|
||||||
case Success(List(item)) =>
|
case Success(List(item: InventoryItem)) =>
|
||||||
item.obj mustEqual item1
|
item.obj mustEqual item1
|
||||||
item.start mustEqual 0
|
item.start mustEqual 0
|
||||||
case _ =>
|
case _ =>
|
||||||
|
|
@ -320,7 +321,7 @@ class PlayerTest extends Specification {
|
||||||
} //holsters, nothing
|
} //holsters, nothing
|
||||||
|
|
||||||
obj.Collisions(6, 1, 1) match {
|
obj.Collisions(6, 1, 1) match {
|
||||||
case Success(List(item)) =>
|
case Success(List(item: InventoryItem)) =>
|
||||||
item.obj mustEqual item2
|
item.obj mustEqual item2
|
||||||
item.start mustEqual 6
|
item.start mustEqual 6
|
||||||
case _ =>
|
case _ =>
|
||||||
|
|
@ -328,16 +329,17 @@ class PlayerTest extends Specification {
|
||||||
} //inventory
|
} //inventory
|
||||||
|
|
||||||
obj.Collisions(Player.FreeHandSlot, 1, 1) match {
|
obj.Collisions(Player.FreeHandSlot, 1, 1) match {
|
||||||
case Success(List(item)) =>
|
case Success(List(item: InventoryItem)) =>
|
||||||
item.obj mustEqual item3
|
item.obj mustEqual item3
|
||||||
item.start mustEqual Player.FreeHandSlot
|
item.start mustEqual Player.FreeHandSlot
|
||||||
case _ =>
|
case _ =>
|
||||||
ko
|
ko
|
||||||
} //free hand
|
} //free hand
|
||||||
|
ok
|
||||||
}
|
}
|
||||||
|
|
||||||
"mount in a vehicle" in {
|
"mount in a vehicle" in {
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Voice5)
|
||||||
obj.VehicleSeated.isEmpty mustEqual true
|
obj.VehicleSeated.isEmpty mustEqual true
|
||||||
obj.VehicleSeated = PlanetSideGUID(65)
|
obj.VehicleSeated = PlanetSideGUID(65)
|
||||||
obj.VehicleSeated.contains(PlanetSideGUID(65)) mustEqual true
|
obj.VehicleSeated.contains(PlanetSideGUID(65)) mustEqual true
|
||||||
|
|
@ -346,7 +348,7 @@ class PlayerTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"own in a vehicle" in {
|
"own in a vehicle" in {
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Voice5)
|
||||||
obj.avatar.vehicle.isEmpty mustEqual true
|
obj.avatar.vehicle.isEmpty mustEqual true
|
||||||
obj.avatar.vehicle = Some(PlanetSideGUID(65))
|
obj.avatar.vehicle = Some(PlanetSideGUID(65))
|
||||||
obj.avatar.vehicle.contains(PlanetSideGUID(65)) mustEqual true
|
obj.avatar.vehicle.contains(PlanetSideGUID(65)) mustEqual true
|
||||||
|
|
@ -355,21 +357,21 @@ class PlayerTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"remember what zone he is in" in {
|
"remember what zone he is in" in {
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Voice5)
|
||||||
obj.Continent mustEqual "home2"
|
obj.Continent mustEqual "home2"
|
||||||
obj.Continent = "ugd01"
|
obj.Continent = "ugd01"
|
||||||
obj.Continent mustEqual "ugd01"
|
obj.Continent mustEqual "ugd01"
|
||||||
}
|
}
|
||||||
|
|
||||||
"special is typically normal and can not be changed from normal" in {
|
"special is typically normal and can not be changed from normal" in {
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Voice5)
|
||||||
obj.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
|
obj.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
|
||||||
obj.UsingSpecial = SpecialExoSuitDefinition.Mode.Shielded
|
obj.UsingSpecial = SpecialExoSuitDefinition.Mode.Shielded
|
||||||
obj.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
|
obj.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
|
||||||
}
|
}
|
||||||
|
|
||||||
"a TR MAX can change its special to Overdrive or Anchored" in {
|
"a TR MAX can change its special to Overdrive or Anchored" in {
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Voice5)
|
||||||
obj.ExoSuit = ExoSuitType.MAX
|
obj.ExoSuit = ExoSuitType.MAX
|
||||||
obj.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
|
obj.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
|
||||||
obj.UsingSpecial = SpecialExoSuitDefinition.Mode.Anchored
|
obj.UsingSpecial = SpecialExoSuitDefinition.Mode.Anchored
|
||||||
|
|
@ -384,7 +386,7 @@ class PlayerTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"an NC MAX can change its special to Shielded" in {
|
"an NC MAX can change its special to Shielded" in {
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.NC, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
val obj = TestPlayer("Chord", PlanetSideEmpire.NC, CharacterSex.Male, 0, CharacterVoice.Voice5)
|
||||||
obj.ExoSuit = ExoSuitType.MAX
|
obj.ExoSuit = ExoSuitType.MAX
|
||||||
obj.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
|
obj.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
|
||||||
obj.UsingSpecial = SpecialExoSuitDefinition.Mode.Shielded
|
obj.UsingSpecial = SpecialExoSuitDefinition.Mode.Shielded
|
||||||
|
|
@ -394,13 +396,13 @@ class PlayerTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"one faction can not use the other's specials" in {
|
"one faction can not use the other's specials" in {
|
||||||
val objtr = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
val objtr = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Voice5)
|
||||||
objtr.ExoSuit = ExoSuitType.MAX
|
objtr.ExoSuit = ExoSuitType.MAX
|
||||||
objtr.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
|
objtr.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
|
||||||
objtr.UsingSpecial = SpecialExoSuitDefinition.Mode.Shielded
|
objtr.UsingSpecial = SpecialExoSuitDefinition.Mode.Shielded
|
||||||
objtr.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
|
objtr.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
|
||||||
|
|
||||||
val objnc = TestPlayer("Chord", PlanetSideEmpire.NC, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
val objnc = TestPlayer("Chord", PlanetSideEmpire.NC, CharacterSex.Male, 0, CharacterVoice.Voice5)
|
||||||
objnc.ExoSuit = ExoSuitType.MAX
|
objnc.ExoSuit = ExoSuitType.MAX
|
||||||
objnc.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
|
objnc.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
|
||||||
objnc.UsingSpecial = SpecialExoSuitDefinition.Mode.Overdrive
|
objnc.UsingSpecial = SpecialExoSuitDefinition.Mode.Overdrive
|
||||||
|
|
@ -410,7 +412,7 @@ class PlayerTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"changing exo-suit type resets the special to Normal (and changing back does not revert it again)" in {
|
"changing exo-suit type resets the special to Normal (and changing back does not revert it again)" in {
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Voice5)
|
||||||
obj.ExoSuit = ExoSuitType.MAX
|
obj.ExoSuit = ExoSuitType.MAX
|
||||||
obj.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
|
obj.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
|
||||||
obj.UsingSpecial = SpecialExoSuitDefinition.Mode.Anchored
|
obj.UsingSpecial = SpecialExoSuitDefinition.Mode.Anchored
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ import net.psforever.types.{PlanetSideGUID, _}
|
||||||
import org.specs2.mutable.Specification
|
import org.specs2.mutable.Specification
|
||||||
|
|
||||||
class ProjectileTest extends Specification {
|
class ProjectileTest extends Specification {
|
||||||
val player = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
|
val player = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
val fury = Vehicle(GlobalDefinitions.fury)
|
val fury = Vehicle(GlobalDefinitions.fury)
|
||||||
|
|
||||||
"Range" should {
|
"Range" should {
|
||||||
|
|
@ -209,7 +209,7 @@ class ProjectileTest extends Specification {
|
||||||
|
|
||||||
"contain timely information" in {
|
"contain timely information" in {
|
||||||
val obj =
|
val obj =
|
||||||
Player(Avatar(0, "TestCharacter-alt", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
|
Player(Avatar(0, "TestCharacter-alt", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
obj.VehicleSeated = Some(PlanetSideGUID(1))
|
obj.VehicleSeated = Some(PlanetSideGUID(1))
|
||||||
obj.Position = Vector3(1.2f, 3.4f, 5.6f)
|
obj.Position = Vector3(1.2f, 3.4f, 5.6f)
|
||||||
obj.Orientation = Vector3(2.1f, 4.3f, 6.5f)
|
obj.Orientation = Vector3(2.1f, 4.3f, 6.5f)
|
||||||
|
|
@ -333,7 +333,7 @@ class ProjectileTest extends Specification {
|
||||||
"Projectile DamageInteraction" should { //TODO wrong place for this test?
|
"Projectile DamageInteraction" should { //TODO wrong place for this test?
|
||||||
val beamer_wep = Tool(GlobalDefinitions.beamer)
|
val beamer_wep = Tool(GlobalDefinitions.beamer)
|
||||||
val p_source = PlayerSource(player)
|
val p_source = PlayerSource(player)
|
||||||
val player2 = Player(Avatar(0, "TestTarget", PlanetSideEmpire.NC, CharacterGender.Female, 1, CharacterVoice.Mute))
|
val player2 = Player(Avatar(0, "TestTarget", PlanetSideEmpire.NC, CharacterSex.Female, 1, CharacterVoice.Mute))
|
||||||
val p2_source = PlayerSource(player2)
|
val p2_source = PlayerSource(player2)
|
||||||
val projectile = Projectile(
|
val projectile = Projectile(
|
||||||
beamer_wep.Projectile,
|
beamer_wep.Projectile,
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@ class RepairableEntityRepairTest extends ActorTest {
|
||||||
val building = Building("test-building", 1, 1, zone, StructureType.Facility) //guid=1
|
val building = Building("test-building", 1, 1, zone, StructureType.Facility) //guid=1
|
||||||
val gen = Generator(GlobalDefinitions.generator) //guid=2
|
val gen = Generator(GlobalDefinitions.generator) //guid=2
|
||||||
val player1 =
|
val player1 =
|
||||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=3
|
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=3
|
||||||
player1.Spawn()
|
player1.Spawn()
|
||||||
guid.register(building, 1)
|
guid.register(building, 1)
|
||||||
guid.register(gen, 2)
|
guid.register(gen, 2)
|
||||||
|
|
@ -109,7 +109,7 @@ class RepairableEntityNotRepairTest extends ActorTest {
|
||||||
val building = Building("test-building", 1, 1, zone, StructureType.Facility) //guid=1
|
val building = Building("test-building", 1, 1, zone, StructureType.Facility) //guid=1
|
||||||
val gen = Generator(GlobalDefinitions.generator) //guid=2
|
val gen = Generator(GlobalDefinitions.generator) //guid=2
|
||||||
val player1 =
|
val player1 =
|
||||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=3
|
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=3
|
||||||
player1.Spawn()
|
player1.Spawn()
|
||||||
guid.register(building, 1)
|
guid.register(building, 1)
|
||||||
guid.register(gen, 2)
|
guid.register(gen, 2)
|
||||||
|
|
@ -150,7 +150,7 @@ class RepairableAmenityTest extends ActorTest {
|
||||||
val building = Building("test-building", 1, 1, zone, StructureType.Facility) //guid=1
|
val building = Building("test-building", 1, 1, zone, StructureType.Facility) //guid=1
|
||||||
val term = Terminal(GlobalDefinitions.order_terminal) //guid=2
|
val term = Terminal(GlobalDefinitions.order_terminal) //guid=2
|
||||||
val player1 =
|
val player1 =
|
||||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=3
|
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=3
|
||||||
player1.Spawn()
|
player1.Spawn()
|
||||||
guid.register(building, 1)
|
guid.register(building, 1)
|
||||||
guid.register(term, 2)
|
guid.register(term, 2)
|
||||||
|
|
@ -251,7 +251,7 @@ class RepairableTurretWeapon extends ActorTest {
|
||||||
val turretWeapon = turret.Weapons.values.head.Equipment.get.asInstanceOf[Tool]
|
val turretWeapon = turret.Weapons.values.head.Equipment.get.asInstanceOf[Tool]
|
||||||
|
|
||||||
val player1 =
|
val player1 =
|
||||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=3
|
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=3
|
||||||
player1.Spawn()
|
player1.Spawn()
|
||||||
player1.Position = Vector3(2, 2, 2)
|
player1.Position = Vector3(2, 2, 2)
|
||||||
val player1Probe = TestProbe()
|
val player1Probe = TestProbe()
|
||||||
|
|
@ -337,7 +337,7 @@ class RepairableVehicleRepair extends ActorTest {
|
||||||
val atvWeapon = atv.Weapons(1).Equipment.get.asInstanceOf[Tool]
|
val atvWeapon = atv.Weapons(1).Equipment.get.asInstanceOf[Tool]
|
||||||
|
|
||||||
val player1 =
|
val player1 =
|
||||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=4
|
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=4
|
||||||
player1.Spawn()
|
player1.Spawn()
|
||||||
player1.Position = Vector3(2, 2, 2)
|
player1.Position = Vector3(2, 2, 2)
|
||||||
val player1Probe = TestProbe()
|
val player1Probe = TestProbe()
|
||||||
|
|
@ -410,7 +410,7 @@ class RepairableVehicleRestoration extends ActorTest {
|
||||||
val atvWeapon = atv.Weapons(1).Equipment.get.asInstanceOf[Tool]
|
val atvWeapon = atv.Weapons(1).Equipment.get.asInstanceOf[Tool]
|
||||||
|
|
||||||
val player1 =
|
val player1 =
|
||||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=4
|
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=4
|
||||||
player1.Spawn()
|
player1.Spawn()
|
||||||
player1.Position = Vector3(2, 2, 2)
|
player1.Position = Vector3(2, 2, 2)
|
||||||
val player1Probe = TestProbe()
|
val player1Probe = TestProbe()
|
||||||
|
|
|
||||||
|
|
@ -154,7 +154,7 @@ class ResourceSiloControlUseTest extends FreedContextActorTest {
|
||||||
expectNoMessage(1000 milliseconds)
|
expectNoMessage(1000 milliseconds)
|
||||||
var buildingMap = new TrieMap[Int, Building]()
|
var buildingMap = new TrieMap[Int, Building]()
|
||||||
val guid = new NumberPoolHub(new MaxNumberSource(max = 10))
|
val guid = new NumberPoolHub(new MaxNumberSource(max = 10))
|
||||||
val player = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
|
val player = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
val ant = Vehicle(GlobalDefinitions.ant)
|
val ant = Vehicle(GlobalDefinitions.ant)
|
||||||
val silo = new ResourceSilo()
|
val silo = new ResourceSilo()
|
||||||
val catchall = new TestProbe(system).ref
|
val catchall = new TestProbe(system).ref
|
||||||
|
|
@ -427,7 +427,7 @@ class ResourceSiloControlNoUpdateTest extends ActorTest {
|
||||||
|
|
||||||
object ResourceSiloTest {
|
object ResourceSiloTest {
|
||||||
val player = Player(
|
val player = Player(
|
||||||
new Avatar(0, "TestCharacter", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)
|
new Avatar(0, "TestCharacter", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)
|
||||||
)
|
)
|
||||||
|
|
||||||
class ProbedAvatarService(probe: TestProbe) extends Actor {
|
class ProbedAvatarService(probe: TestProbe) extends Actor {
|
||||||
|
|
|
||||||
|
|
@ -60,7 +60,7 @@ class UtilityTest extends Specification {
|
||||||
val veh = Vehicle(GlobalDefinitions.quadstealth)
|
val veh = Vehicle(GlobalDefinitions.quadstealth)
|
||||||
veh.Faction = PlanetSideEmpire.TR
|
veh.Faction = PlanetSideEmpire.TR
|
||||||
val obj = Utility(UtilityType.teleportpad_terminal, UtilityTest.vehicle)
|
val obj = Utility(UtilityType.teleportpad_terminal, UtilityTest.vehicle)
|
||||||
val player = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
|
val player = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
veh.GUID = PlanetSideGUID(101)
|
veh.GUID = PlanetSideGUID(101)
|
||||||
obj().Owner = veh //hack
|
obj().Owner = veh //hack
|
||||||
obj().GUID = PlanetSideGUID(1)
|
obj().GUID = PlanetSideGUID(1)
|
||||||
|
|
|
||||||
|
|
@ -330,25 +330,6 @@ class VehicleControlMountingBlockedExosuitTest extends ActorTest {
|
||||||
override def VehicleEvents: ActorRef = catchall
|
override def VehicleEvents: ActorRef = catchall
|
||||||
override def Activity: ActorRef = catchall
|
override def Activity: ActorRef = catchall
|
||||||
}
|
}
|
||||||
def checkCanNotMount(probe: TestProbe, id: String): Unit = {
|
|
||||||
val reply = probe.receiveOne(Duration.create(250, "ms"))
|
|
||||||
reply match {
|
|
||||||
case msg: Mountable.MountMessages =>
|
|
||||||
assert(msg.response.isInstanceOf[Mountable.CanNotMount], s"test $id")
|
|
||||||
case _ =>
|
|
||||||
assert(false, s"test $id-b")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
def checkCanMount(probe: TestProbe, id: String): Unit = {
|
|
||||||
val reply = probe.receiveOne(Duration.create(250, "ms"))
|
|
||||||
reply match {
|
|
||||||
case msg: Mountable.MountMessages =>
|
|
||||||
assert(msg.response.isInstanceOf[Mountable.CanMount], s" - test: $id")
|
|
||||||
case _ =>
|
|
||||||
assert(false, s" - test: $id-b")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
val vehicle = Vehicle(GlobalDefinitions.apc_tr)
|
val vehicle = Vehicle(GlobalDefinitions.apc_tr)
|
||||||
vehicle.Faction = PlanetSideEmpire.TR
|
vehicle.Faction = PlanetSideEmpire.TR
|
||||||
vehicle.GUID = PlanetSideGUID(10)
|
vehicle.GUID = PlanetSideGUID(10)
|
||||||
|
|
@ -379,28 +360,28 @@ class VehicleControlMountingBlockedExosuitTest extends ActorTest {
|
||||||
val probe = new TestProbe(system)
|
val probe = new TestProbe(system)
|
||||||
// disallow
|
// disallow
|
||||||
vehicle.Actor.tell(Mountable.TryMount(player2, 1), probe.ref) //MAX in non-Max mount
|
vehicle.Actor.tell(Mountable.TryMount(player2, 1), probe.ref) //MAX in non-Max mount
|
||||||
checkCanNotMount(probe, "MAX in non-Max mount 1")
|
VehicleControlTest.checkCanNotMount(probe, "MAX in non-Max mount 1")
|
||||||
vehicle.Actor.tell(Mountable.TryMount(player2, 2), probe.ref) //MAX in non-MAX mount
|
vehicle.Actor.tell(Mountable.TryMount(player2, 2), probe.ref) //MAX in non-MAX mount
|
||||||
checkCanNotMount(probe, "MAX in non-MAX mount 2")
|
VehicleControlTest.checkCanNotMount(probe, "MAX in non-MAX mount 2")
|
||||||
vehicle.Actor.tell(Mountable.TryMount(player1, 11), probe.ref) //Reinforced in MAX-only mount
|
vehicle.Actor.tell(Mountable.TryMount(player1, 11), probe.ref) //Reinforced in MAX-only mount
|
||||||
checkCanNotMount(probe, "Reinforced in MAX-only mount")
|
VehicleControlTest.checkCanNotMount(probe, "Reinforced in MAX-only mount")
|
||||||
vehicle.Actor.tell(Mountable.TryMount(player3, 11), probe.ref) //Agile in MAX-only mount
|
vehicle.Actor.tell(Mountable.TryMount(player3, 11), probe.ref) //Agile in MAX-only mount
|
||||||
checkCanNotMount(probe, "Agile in MAX-only mount")
|
VehicleControlTest.checkCanNotMount(probe, "Agile in MAX-only mount")
|
||||||
|
|
||||||
//allow
|
//allow
|
||||||
vehicle.Actor.tell(Mountable.TryMount(player1, 1), probe.ref) // Reinforced in driver mount allowing all except MAX
|
vehicle.Actor.tell(Mountable.TryMount(player1, 1), probe.ref) // Reinforced in driver mount allowing all except MAX
|
||||||
checkCanMount(probe, "Reinforced in driver mount allowing all except MAX")
|
VehicleControlTest.checkCanMount(probe, "Reinforced in driver mount allowing all except MAX")
|
||||||
// Reset to allow further driver mount mounting tests
|
// Reset to allow further driver mount mounting tests
|
||||||
vehicle.Actor.tell(Mountable.TryDismount(player1, 0), probe.ref)
|
vehicle.Actor.tell(Mountable.TryDismount(player1, 0), probe.ref)
|
||||||
probe.receiveOne(500 milliseconds) //discard
|
probe.receiveOne(500 milliseconds) //discard
|
||||||
vehicle.Owner = None //ensure
|
vehicle.Owner = None //ensure
|
||||||
vehicle.OwnerName = None //ensure
|
vehicle.OwnerName = None //ensure
|
||||||
vehicle.Actor.tell(Mountable.TryMount(player3, 1), probe.ref) // Agile in driver mount allowing all except MAX
|
vehicle.Actor.tell(Mountable.TryMount(player3, 1), probe.ref) // Agile in driver mount allowing all except MAX
|
||||||
checkCanMount(probe, "Agile in driver mount allowing all except MAX")
|
VehicleControlTest.checkCanMount(probe, "Agile in driver mount allowing all except MAX")
|
||||||
vehicle.Actor.tell(Mountable.TryMount(player1, 3), probe.ref) // Reinforced in passenger mount allowing all except MAX
|
vehicle.Actor.tell(Mountable.TryMount(player1, 3), probe.ref) // Reinforced in passenger mount allowing all except MAX
|
||||||
checkCanMount(probe, "Reinforced in passenger mount allowing all except MAX")
|
VehicleControlTest.checkCanMount(probe, "Reinforced in passenger mount allowing all except MAX")
|
||||||
vehicle.Actor.tell(Mountable.TryMount(player2, 11), probe.ref) // MAX in MAX-only mount
|
vehicle.Actor.tell(Mountable.TryMount(player2, 11), probe.ref) // MAX in MAX-only mount
|
||||||
checkCanMount(probe, "MAX in MAX-only mount")
|
VehicleControlTest.checkCanMount(probe, "MAX in MAX-only mount")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -621,7 +602,7 @@ class VehicleControlShieldsNotChargingTooEarlyTest extends ActorTest {
|
||||||
// }
|
// }
|
||||||
// //
|
// //
|
||||||
// val beamer_wep = Tool(GlobalDefinitions.beamer)
|
// val beamer_wep = Tool(GlobalDefinitions.beamer)
|
||||||
// val p_source = PlayerSource( Player(Avatar(0, "TestTarget", PlanetSideEmpire.NC, CharacterGender.Female, 1, CharacterVoice.Mute)) )
|
// val p_source = PlayerSource( Player(Avatar(0, "TestTarget", PlanetSideEmpire.NC, CharacterSex.Female, 1, CharacterVoice.Mute)) )
|
||||||
// val projectile = Projectile(beamer_wep.Projectile, GlobalDefinitions.beamer, beamer_wep.FireMode, p_source, GlobalDefinitions.beamer.ObjectId, Vector3.Zero, Vector3.Zero)
|
// val projectile = Projectile(beamer_wep.Projectile, GlobalDefinitions.beamer, beamer_wep.FireMode, p_source, GlobalDefinitions.beamer.ObjectId, Vector3.Zero, Vector3.Zero)
|
||||||
// val fury_dm = Vehicle(GlobalDefinitions.fury).DamageModel
|
// val fury_dm = Vehicle(GlobalDefinitions.fury).DamageModel
|
||||||
// val obj = DamageInteraction(p_source, ProjectileReason(DamageResolution.Hit, projectile, fury_dm), Vector3(1.2f, 3.4f, 5.6f))
|
// val obj = DamageInteraction(p_source, ProjectileReason(DamageResolution.Hit, projectile, fury_dm), Vector3(1.2f, 3.4f, 5.6f))
|
||||||
|
|
@ -643,7 +624,7 @@ class VehicleControlShieldsNotChargingTooEarlyTest extends ActorTest {
|
||||||
class VehicleControlInteractWithWaterPartialTest extends ActorTest {
|
class VehicleControlInteractWithWaterPartialTest extends ActorTest {
|
||||||
val vehicle = Vehicle(GlobalDefinitions.fury) //guid=2
|
val vehicle = Vehicle(GlobalDefinitions.fury) //guid=2
|
||||||
val player1 =
|
val player1 =
|
||||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=1
|
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=1
|
||||||
val playerProbe = TestProbe()
|
val playerProbe = TestProbe()
|
||||||
val guid = new NumberPoolHub(new MaxNumberSource(15))
|
val guid = new NumberPoolHub(new MaxNumberSource(15))
|
||||||
val pool = Pool(EnvironmentAttribute.Water, DeepSquare(-1, 10, 10, 0, 0))
|
val pool = Pool(EnvironmentAttribute.Water, DeepSquare(-1, 10, 10, 0, 0))
|
||||||
|
|
@ -694,7 +675,7 @@ class VehicleControlInteractWithWaterPartialTest extends ActorTest {
|
||||||
class VehicleControlInteractWithWaterTest extends ActorTest {
|
class VehicleControlInteractWithWaterTest extends ActorTest {
|
||||||
val vehicle = Vehicle(GlobalDefinitions.fury) //guid=2
|
val vehicle = Vehicle(GlobalDefinitions.fury) //guid=2
|
||||||
val player1 =
|
val player1 =
|
||||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=1
|
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=1
|
||||||
val avatarProbe = TestProbe()
|
val avatarProbe = TestProbe()
|
||||||
val vehicleProbe = TestProbe()
|
val vehicleProbe = TestProbe()
|
||||||
val guid = new NumberPoolHub(new MaxNumberSource(15))
|
val guid = new NumberPoolHub(new MaxNumberSource(15))
|
||||||
|
|
@ -765,7 +746,7 @@ class VehicleControlInteractWithWaterTest extends ActorTest {
|
||||||
class VehicleControlStopInteractWithWaterTest extends ActorTest {
|
class VehicleControlStopInteractWithWaterTest extends ActorTest {
|
||||||
val vehicle = Vehicle(GlobalDefinitions.fury) //guid=2
|
val vehicle = Vehicle(GlobalDefinitions.fury) //guid=2
|
||||||
val player1 =
|
val player1 =
|
||||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=1
|
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=1
|
||||||
val playerProbe = TestProbe()
|
val playerProbe = TestProbe()
|
||||||
val guid = new NumberPoolHub(new MaxNumberSource(15))
|
val guid = new NumberPoolHub(new MaxNumberSource(15))
|
||||||
val pool = Pool(EnvironmentAttribute.Water, DeepSquare(-1, 10, 10, 0, 0))
|
val pool = Pool(EnvironmentAttribute.Water, DeepSquare(-1, 10, 10, 0, 0))
|
||||||
|
|
@ -829,7 +810,7 @@ class VehicleControlStopInteractWithWaterTest extends ActorTest {
|
||||||
class VehicleControlInteractWithLavaTest extends ActorTest {
|
class VehicleControlInteractWithLavaTest extends ActorTest {
|
||||||
val vehicle = Vehicle(GlobalDefinitions.fury) //guid=2
|
val vehicle = Vehicle(GlobalDefinitions.fury) //guid=2
|
||||||
val player1 =
|
val player1 =
|
||||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=1
|
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=1
|
||||||
val avatarProbe = TestProbe()
|
val avatarProbe = TestProbe()
|
||||||
val vehicleProbe = TestProbe()
|
val vehicleProbe = TestProbe()
|
||||||
val guid = new NumberPoolHub(new MaxNumberSource(15))
|
val guid = new NumberPoolHub(new MaxNumberSource(15))
|
||||||
|
|
@ -890,7 +871,7 @@ class VehicleControlInteractWithLavaTest extends ActorTest {
|
||||||
class VehicleControlInteractWithDeathTest extends ActorTest {
|
class VehicleControlInteractWithDeathTest extends ActorTest {
|
||||||
val vehicle = Vehicle(GlobalDefinitions.fury) //guid=2
|
val vehicle = Vehicle(GlobalDefinitions.fury) //guid=2
|
||||||
val player1 =
|
val player1 =
|
||||||
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)) //guid=1
|
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=1
|
||||||
val guid = new NumberPoolHub(new MaxNumberSource(15))
|
val guid = new NumberPoolHub(new MaxNumberSource(15))
|
||||||
val pool = Pool(EnvironmentAttribute.Death, DeepSquare(-1, 10, 10, 0, 0))
|
val pool = Pool(EnvironmentAttribute.Death, DeepSquare(-1, 10, 10, 0, 0))
|
||||||
val zone = new Zone(
|
val zone = new Zone(
|
||||||
|
|
@ -937,11 +918,10 @@ class VehicleControlInteractWithDeathTest extends ActorTest {
|
||||||
|
|
||||||
object VehicleControlTest {
|
object VehicleControlTest {
|
||||||
import net.psforever.objects.avatar.Avatar
|
import net.psforever.objects.avatar.Avatar
|
||||||
import net.psforever.types.{CharacterGender, PlanetSideEmpire}
|
import net.psforever.types.{CharacterSex, PlanetSideEmpire}
|
||||||
|
|
||||||
val avatar1 = Avatar(0, "test1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)
|
|
||||||
val avatar2 = Avatar(1, "test2", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)
|
|
||||||
|
|
||||||
|
val avatar1 = Avatar(0, "test1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)
|
||||||
|
val avatar2 = Avatar(1, "test2", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)
|
||||||
|
|
||||||
def checkCanNotMount(probe: TestProbe, id: String): Unit = {
|
def checkCanNotMount(probe: TestProbe, id: String): Unit = {
|
||||||
val reply = probe.receiveOne(Duration.create(250, "ms"))
|
val reply = probe.receiveOne(Duration.create(250, "ms"))
|
||||||
|
|
|
||||||
|
|
@ -307,8 +307,8 @@ class VehicleTest extends Specification {
|
||||||
|
|
||||||
object VehicleTest {
|
object VehicleTest {
|
||||||
import net.psforever.objects.avatar.Avatar
|
import net.psforever.objects.avatar.Avatar
|
||||||
import net.psforever.types.{CharacterGender, PlanetSideEmpire}
|
import net.psforever.types.{CharacterSex, PlanetSideEmpire}
|
||||||
|
|
||||||
val avatar1 = Avatar(0, "test1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)
|
val avatar1 = Avatar(0, "test1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)
|
||||||
val avatar2 = Avatar(1, "test2", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)
|
val avatar2 = Avatar(1, "test2", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ class VitalityTest extends Specification {
|
||||||
val vSource = VehicleSource(vehicle)
|
val vSource = VehicleSource(vehicle)
|
||||||
|
|
||||||
"accept a variety of events" in {
|
"accept a variety of events" in {
|
||||||
val player = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
|
val player = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
val pSource = PlayerSource(player)
|
val pSource = PlayerSource(player)
|
||||||
val projectile = Projectile(proj, wep, wep_fmode, player, Vector3(2, 2, 0), Vector3.Zero)
|
val projectile = Projectile(proj, wep, wep_fmode, player, Vector3(2, 2, 0), Vector3.Zero)
|
||||||
val resprojectile = DamageInteraction(
|
val resprojectile = DamageInteraction(
|
||||||
|
|
@ -47,7 +47,7 @@ class VitalityTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"return and clear the former list of vital activities" in {
|
"return and clear the former list of vital activities" in {
|
||||||
val player = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
|
val player = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
val pSource = PlayerSource(player)
|
val pSource = PlayerSource(player)
|
||||||
|
|
||||||
player.History(HealFromKit(pSource, 10, GlobalDefinitions.medkit))
|
player.History(HealFromKit(pSource, 10, GlobalDefinitions.medkit))
|
||||||
|
|
@ -71,7 +71,7 @@ class VitalityTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"get exactly one entry that was caused by projectile damage" in {
|
"get exactly one entry that was caused by projectile damage" in {
|
||||||
val player = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
|
val player = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
val pSource = PlayerSource(player)
|
val pSource = PlayerSource(player)
|
||||||
val projectile = Projectile(proj, wep, wep_fmode, player, Vector3(2, 2, 0), Vector3.Zero)
|
val projectile = Projectile(proj, wep, wep_fmode, player, Vector3(2, 2, 0), Vector3.Zero)
|
||||||
val resprojectile = DamageInteraction(
|
val resprojectile = DamageInteraction(
|
||||||
|
|
|
||||||
|
|
@ -217,7 +217,7 @@ class ZonePopulationTest extends ActorTest {
|
||||||
val zone = new Zone("test", new ZoneMap(""), 0) {
|
val zone = new Zone("test", new ZoneMap(""), 0) {
|
||||||
override def SetupNumberPools() = {}
|
override def SetupNumberPools() = {}
|
||||||
}
|
}
|
||||||
val avatar = Avatar(0, "Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
val avatar = Avatar(0, "Chord", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Voice5)
|
||||||
val player = Player(avatar)
|
val player = Player(avatar)
|
||||||
player.GUID = PlanetSideGUID(1)
|
player.GUID = PlanetSideGUID(1)
|
||||||
zone.actor = system.spawn(ZoneActor(zone), ZoneTest.TestName)
|
zone.actor = system.spawn(ZoneActor(zone), ZoneTest.TestName)
|
||||||
|
|
@ -237,7 +237,7 @@ class ZonePopulationTest extends ActorTest {
|
||||||
val zone = new Zone("test", new ZoneMap(""), 0) {
|
val zone = new Zone("test", new ZoneMap(""), 0) {
|
||||||
override def SetupNumberPools() = {}
|
override def SetupNumberPools() = {}
|
||||||
}
|
}
|
||||||
val avatar = Avatar(1, "Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
val avatar = Avatar(1, "Chord", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Voice5)
|
||||||
val player = Player(avatar)
|
val player = Player(avatar)
|
||||||
player.GUID = PlanetSideGUID(1)
|
player.GUID = PlanetSideGUID(1)
|
||||||
zone.actor = system.spawn(ZoneActor(zone), ZoneTest.TestName)
|
zone.actor = system.spawn(ZoneActor(zone), ZoneTest.TestName)
|
||||||
|
|
@ -257,7 +257,7 @@ class ZonePopulationTest extends ActorTest {
|
||||||
/* TODO they need AvatarActor, which has further dependencies
|
/* TODO they need AvatarActor, which has further dependencies
|
||||||
"associate user with a character" in {
|
"associate user with a character" in {
|
||||||
val zone = new Zone("test", new ZoneMap(""), 0) { override def SetupNumberPools() = {} }
|
val zone = new Zone("test", new ZoneMap(""), 0) { override def SetupNumberPools() = {} }
|
||||||
val avatar = Avatar(0, "Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
val avatar = Avatar(0, "Chord", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Voice5)
|
||||||
val player = Player(avatar)
|
val player = Player(avatar)
|
||||||
player.GUID = PlanetSideGUID(1)
|
player.GUID = PlanetSideGUID(1)
|
||||||
zone.actor = system.spawn(ZoneActor(zone), ZoneTest.TestName)
|
zone.actor = system.spawn(ZoneActor(zone), ZoneTest.TestName)
|
||||||
|
|
@ -278,7 +278,7 @@ class ZonePopulationTest extends ActorTest {
|
||||||
|
|
||||||
"disassociate character from a user" in {
|
"disassociate character from a user" in {
|
||||||
val zone = new Zone("test", new ZoneMap(""), 0) { override def SetupNumberPools() = {} }
|
val zone = new Zone("test", new ZoneMap(""), 0) { override def SetupNumberPools() = {} }
|
||||||
val avatar = Avatar(0, "Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
val avatar = Avatar(0, "Chord", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Voice5)
|
||||||
val player = Player(avatar)
|
val player = Player(avatar)
|
||||||
player.GUID = PlanetSideGUID(1)
|
player.GUID = PlanetSideGUID(1)
|
||||||
zone.actor = system.spawn(ZoneActor(zone), ZoneTest.TestName)
|
zone.actor = system.spawn(ZoneActor(zone), ZoneTest.TestName)
|
||||||
|
|
@ -301,7 +301,7 @@ class ZonePopulationTest extends ActorTest {
|
||||||
|
|
||||||
"user tries to Leave, but still has an associated character" in {
|
"user tries to Leave, but still has an associated character" in {
|
||||||
val zone = new Zone("test", new ZoneMap(""), 0) { override def SetupNumberPools() = {} }
|
val zone = new Zone("test", new ZoneMap(""), 0) { override def SetupNumberPools() = {} }
|
||||||
val avatar = Avatar(0, "Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
val avatar = Avatar(0, "Chord", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Voice5)
|
||||||
val player = Player(avatar)
|
val player = Player(avatar)
|
||||||
player.GUID = PlanetSideGUID(1)
|
player.GUID = PlanetSideGUID(1)
|
||||||
zone.actor = system.spawn(ZoneActor(zone), ZoneTest.TestName)
|
zone.actor = system.spawn(ZoneActor(zone), ZoneTest.TestName)
|
||||||
|
|
@ -326,7 +326,7 @@ class ZonePopulationTest extends ActorTest {
|
||||||
|
|
||||||
"user tries to Spawn a character, but an associated character already exists" in {
|
"user tries to Spawn a character, but an associated character already exists" in {
|
||||||
val zone = new Zone("test", new ZoneMap(""), 0) { override def SetupNumberPools() = {} }
|
val zone = new Zone("test", new ZoneMap(""), 0) { override def SetupNumberPools() = {} }
|
||||||
val avatar = Avatar(0, "Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
val avatar = Avatar(0, "Chord", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Voice5)
|
||||||
val player1 = Player(avatar)
|
val player1 = Player(avatar)
|
||||||
player1.GUID = PlanetSideGUID(1)
|
player1.GUID = PlanetSideGUID(1)
|
||||||
val player2 = Player(avatar)
|
val player2 = Player(avatar)
|
||||||
|
|
@ -354,7 +354,7 @@ class ZonePopulationTest extends ActorTest {
|
||||||
|
|
||||||
"user tries to Spawn a character, but did not Join first" in {
|
"user tries to Spawn a character, but did not Join first" in {
|
||||||
val zone = new Zone("test", new ZoneMap(""), 0) { override def SetupNumberPools() = {} }
|
val zone = new Zone("test", new ZoneMap(""), 0) { override def SetupNumberPools() = {} }
|
||||||
val avatar = Avatar(0, "Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
val avatar = Avatar(0, "Chord", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Voice5)
|
||||||
val player = Player(avatar)
|
val player = Player(avatar)
|
||||||
player.GUID = PlanetSideGUID(1)
|
player.GUID = PlanetSideGUID(1)
|
||||||
zone.actor = system.spawn(ZoneActor(zone), ZoneTest.TestName)
|
zone.actor = system.spawn(ZoneActor(zone), ZoneTest.TestName)
|
||||||
|
|
@ -376,7 +376,7 @@ class ZonePopulationTest extends ActorTest {
|
||||||
val zone = new Zone("test", new ZoneMap(""), 0) {
|
val zone = new Zone("test", new ZoneMap(""), 0) {
|
||||||
override def SetupNumberPools() = {}
|
override def SetupNumberPools() = {}
|
||||||
}
|
}
|
||||||
val avatar = Avatar(2, "Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
val avatar = Avatar(2, "Chord", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Voice5)
|
||||||
val player = Player(avatar)
|
val player = Player(avatar)
|
||||||
player.GUID = PlanetSideGUID(1)
|
player.GUID = PlanetSideGUID(1)
|
||||||
zone.actor = system.spawn(ZoneActor(zone), ZoneTest.TestName)
|
zone.actor = system.spawn(ZoneActor(zone), ZoneTest.TestName)
|
||||||
|
|
@ -402,7 +402,7 @@ class ZonePopulationTest extends ActorTest {
|
||||||
val zone = new Zone("test", new ZoneMap(""), 0) {
|
val zone = new Zone("test", new ZoneMap(""), 0) {
|
||||||
override def SetupNumberPools() = {}
|
override def SetupNumberPools() = {}
|
||||||
}
|
}
|
||||||
val player = Player(Avatar(3, "Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5))
|
val player = Player(Avatar(3, "Chord", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Voice5))
|
||||||
player.GUID = PlanetSideGUID(1)
|
player.GUID = PlanetSideGUID(1)
|
||||||
player.Release
|
player.Release
|
||||||
zone.actor = system.spawn(ZoneActor(zone), ZoneTest.TestName)
|
zone.actor = system.spawn(ZoneActor(zone), ZoneTest.TestName)
|
||||||
|
|
@ -419,7 +419,7 @@ class ZonePopulationTest extends ActorTest {
|
||||||
val zone = new Zone("test", new ZoneMap(""), 0) {
|
val zone = new Zone("test", new ZoneMap(""), 0) {
|
||||||
override def SetupNumberPools() = {}
|
override def SetupNumberPools() = {}
|
||||||
}
|
}
|
||||||
val player = Player(Avatar(4, "Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5))
|
val player = Player(Avatar(4, "Chord", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Voice5))
|
||||||
player.GUID = PlanetSideGUID(1)
|
player.GUID = PlanetSideGUID(1)
|
||||||
player.Release
|
player.Release
|
||||||
zone.actor = system.spawn(ZoneActor(zone), ZoneTest.TestName)
|
zone.actor = system.spawn(ZoneActor(zone), ZoneTest.TestName)
|
||||||
|
|
@ -438,13 +438,13 @@ class ZonePopulationTest extends ActorTest {
|
||||||
val zone = new Zone("test", new ZoneMap(""), 0) {
|
val zone = new Zone("test", new ZoneMap(""), 0) {
|
||||||
override def SetupNumberPools() = {}
|
override def SetupNumberPools() = {}
|
||||||
}
|
}
|
||||||
val player1 = Player(Avatar(5, "Chord1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5))
|
val player1 = Player(Avatar(5, "Chord1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Voice5))
|
||||||
player1.GUID = PlanetSideGUID(1)
|
player1.GUID = PlanetSideGUID(1)
|
||||||
player1.Release
|
player1.Release
|
||||||
val player2 = Player(Avatar(6, "Chord2", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5))
|
val player2 = Player(Avatar(6, "Chord2", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Voice5))
|
||||||
player2.GUID = PlanetSideGUID(2)
|
player2.GUID = PlanetSideGUID(2)
|
||||||
player2.Release
|
player2.Release
|
||||||
val player3 = Player(Avatar(7, "Chord3", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5))
|
val player3 = Player(Avatar(7, "Chord3", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Voice5))
|
||||||
player3.GUID = PlanetSideGUID(3)
|
player3.GUID = PlanetSideGUID(3)
|
||||||
player3.Release
|
player3.Release
|
||||||
zone.actor = system.spawn(ZoneActor(zone), ZoneTest.TestName)
|
zone.actor = system.spawn(ZoneActor(zone), ZoneTest.TestName)
|
||||||
|
|
@ -469,7 +469,7 @@ class ZonePopulationTest extends ActorTest {
|
||||||
val zone = new Zone("test", new ZoneMap(""), 0) {
|
val zone = new Zone("test", new ZoneMap(""), 0) {
|
||||||
override def SetupNumberPools() = {}
|
override def SetupNumberPools() = {}
|
||||||
}
|
}
|
||||||
val player = Player(Avatar(8, "Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5))
|
val player = Player(Avatar(8, "Chord", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Voice5))
|
||||||
player.GUID = PlanetSideGUID(1)
|
player.GUID = PlanetSideGUID(1)
|
||||||
//player.Release !!important
|
//player.Release !!important
|
||||||
zone.actor = system.spawn(ZoneActor(zone), ZoneTest.TestName)
|
zone.actor = system.spawn(ZoneActor(zone), ZoneTest.TestName)
|
||||||
|
|
|
||||||
|
|
@ -6,12 +6,12 @@ import net.psforever.objects._
|
||||||
import net.psforever.objects.avatar.Avatar
|
import net.psforever.objects.avatar.Avatar
|
||||||
import net.psforever.objects.guid.{GUIDTask, TaskResolver}
|
import net.psforever.objects.guid.{GUIDTask, TaskResolver}
|
||||||
import net.psforever.objects.locker.LockerEquipment
|
import net.psforever.objects.locker.LockerEquipment
|
||||||
import net.psforever.types.{CharacterGender, CharacterVoice, PlanetSideEmpire}
|
import net.psforever.types.{CharacterSex, CharacterVoice, PlanetSideEmpire}
|
||||||
|
|
||||||
class GUIDTaskRegisterAvatarTest extends ActorTest {
|
class GUIDTaskRegisterAvatarTest extends ActorTest {
|
||||||
"RegisterAvatar" in {
|
"RegisterAvatar" in {
|
||||||
val (_, uns, taskResolver, probe) = GUIDTaskTest.CommonTestSetup
|
val (_, uns, taskResolver, probe) = GUIDTaskTest.CommonTestSetup
|
||||||
val obj = Player(Avatar(0, "test", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
|
val obj = Player(Avatar(0, "test", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
val obj_wep = Tool(GlobalDefinitions.beamer)
|
val obj_wep = Tool(GlobalDefinitions.beamer)
|
||||||
obj.Slot(0).Equipment = obj_wep
|
obj.Slot(0).Equipment = obj_wep
|
||||||
val obj_wep_ammo = AmmoBox(GlobalDefinitions.energy_cell)
|
val obj_wep_ammo = AmmoBox(GlobalDefinitions.energy_cell)
|
||||||
|
|
|
||||||
|
|
@ -6,12 +6,12 @@ import net.psforever.objects._
|
||||||
import net.psforever.objects.avatar.Avatar
|
import net.psforever.objects.avatar.Avatar
|
||||||
import net.psforever.objects.guid.{GUIDTask, TaskResolver}
|
import net.psforever.objects.guid.{GUIDTask, TaskResolver}
|
||||||
import net.psforever.objects.locker.LockerEquipment
|
import net.psforever.objects.locker.LockerEquipment
|
||||||
import net.psforever.types.{CharacterGender, CharacterVoice, PlanetSideEmpire}
|
import net.psforever.types.{CharacterSex, CharacterVoice, PlanetSideEmpire}
|
||||||
|
|
||||||
class GUIDTaskRegisterPlayerTest extends ActorTest {
|
class GUIDTaskRegisterPlayerTest extends ActorTest {
|
||||||
"RegisterPlayer" in {
|
"RegisterPlayer" in {
|
||||||
val (_, uns, taskResolver, probe) = GUIDTaskTest.CommonTestSetup
|
val (_, uns, taskResolver, probe) = GUIDTaskTest.CommonTestSetup
|
||||||
val obj = Player(Avatar(0, "test", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
|
val obj = Player(Avatar(0, "test", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
val obj_wep = Tool(GlobalDefinitions.beamer)
|
val obj_wep = Tool(GlobalDefinitions.beamer)
|
||||||
obj.Slot(0).Equipment = obj_wep
|
obj.Slot(0).Equipment = obj_wep
|
||||||
val obj_wep_ammo = AmmoBox(GlobalDefinitions.energy_cell)
|
val obj_wep_ammo = AmmoBox(GlobalDefinitions.energy_cell)
|
||||||
|
|
|
||||||
|
|
@ -6,12 +6,12 @@ import net.psforever.objects._
|
||||||
import net.psforever.objects.avatar.Avatar
|
import net.psforever.objects.avatar.Avatar
|
||||||
import net.psforever.objects.guid.{GUIDTask, TaskResolver}
|
import net.psforever.objects.guid.{GUIDTask, TaskResolver}
|
||||||
import net.psforever.objects.locker.LockerEquipment
|
import net.psforever.objects.locker.LockerEquipment
|
||||||
import net.psforever.types.{CharacterGender, CharacterVoice, PlanetSideEmpire}
|
import net.psforever.types.{CharacterSex, CharacterVoice, PlanetSideEmpire}
|
||||||
|
|
||||||
class GUIDTaskUnregisterAvatarTest extends ActorTest {
|
class GUIDTaskUnregisterAvatarTest extends ActorTest {
|
||||||
"UnregisterAvatar" in {
|
"UnregisterAvatar" in {
|
||||||
val (guid, uns, taskResolver, probe) = GUIDTaskTest.CommonTestSetup
|
val (guid, uns, taskResolver, probe) = GUIDTaskTest.CommonTestSetup
|
||||||
val obj = Player(Avatar(0, "test", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
|
val obj = Player(Avatar(0, "test", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
val obj_wep = Tool(GlobalDefinitions.beamer)
|
val obj_wep = Tool(GlobalDefinitions.beamer)
|
||||||
obj.Slot(0).Equipment = obj_wep
|
obj.Slot(0).Equipment = obj_wep
|
||||||
val obj_wep_ammo = AmmoBox(GlobalDefinitions.energy_cell)
|
val obj_wep_ammo = AmmoBox(GlobalDefinitions.energy_cell)
|
||||||
|
|
|
||||||
|
|
@ -6,12 +6,12 @@ import net.psforever.objects._
|
||||||
import net.psforever.objects.avatar.Avatar
|
import net.psforever.objects.avatar.Avatar
|
||||||
import net.psforever.objects.guid.{GUIDTask, TaskResolver}
|
import net.psforever.objects.guid.{GUIDTask, TaskResolver}
|
||||||
import net.psforever.objects.locker.LockerEquipment
|
import net.psforever.objects.locker.LockerEquipment
|
||||||
import net.psforever.types.{CharacterGender, CharacterVoice, PlanetSideEmpire}
|
import net.psforever.types.{CharacterSex, CharacterVoice, PlanetSideEmpire}
|
||||||
|
|
||||||
class GUIDTaskUnregisterPlayerTest extends ActorTest {
|
class GUIDTaskUnregisterPlayerTest extends ActorTest {
|
||||||
"UnregisterPlayer" in {
|
"UnregisterPlayer" in {
|
||||||
val (guid, uns, taskResolver, probe) = GUIDTaskTest.CommonTestSetup
|
val (guid, uns, taskResolver, probe) = GUIDTaskTest.CommonTestSetup
|
||||||
val obj = Player(Avatar(0, "test", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
|
val obj = Player(Avatar(0, "test", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
val obj_wep = Tool(GlobalDefinitions.beamer)
|
val obj_wep = Tool(GlobalDefinitions.beamer)
|
||||||
obj.Slot(0).Equipment = obj_wep
|
obj.Slot(0).Equipment = obj_wep
|
||||||
val obj_wep_ammo = AmmoBox(GlobalDefinitions.energy_cell)
|
val obj_wep_ammo = AmmoBox(GlobalDefinitions.energy_cell)
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ import net.psforever.objects.serverobject.mount.{MountInfo, Mountable, Seat, Sea
|
||||||
import net.psforever.objects.serverobject.structures.{Building, StructureType}
|
import net.psforever.objects.serverobject.structures.{Building, StructureType}
|
||||||
import net.psforever.objects.serverobject.terminals.Terminal
|
import net.psforever.objects.serverobject.terminals.Terminal
|
||||||
import net.psforever.objects.zones.{Zone, ZoneMap}
|
import net.psforever.objects.zones.{Zone, ZoneMap}
|
||||||
import net.psforever.types.{CharacterGender, CharacterVoice, PlanetSideEmpire, Vector3}
|
import net.psforever.types.{CharacterSex, CharacterVoice, PlanetSideEmpire, Vector3}
|
||||||
import org.specs2.mutable.Specification
|
import org.specs2.mutable.Specification
|
||||||
|
|
||||||
import scala.concurrent.duration.Duration
|
import scala.concurrent.duration.Duration
|
||||||
|
|
@ -46,7 +46,7 @@ class ImplantTerminalMechTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"get passenger in a mount" in {
|
"get passenger in a mount" in {
|
||||||
val player = Player(Avatar(0, "test", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
|
val player = Player(Avatar(0, "test", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
val obj = ImplantTerminalMech(GlobalDefinitions.implant_terminal_mech)
|
val obj = ImplantTerminalMech(GlobalDefinitions.implant_terminal_mech)
|
||||||
obj.PassengerInSeat(player).isEmpty mustEqual true
|
obj.PassengerInSeat(player).isEmpty mustEqual true
|
||||||
obj.Seats(0).mount(player)
|
obj.Seats(0).mount(player)
|
||||||
|
|
@ -87,11 +87,11 @@ class ImplantTerminalMechControl2Test extends ActorTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
class ImplantTerminalMechControl3Test extends ActorTest {
|
class ImplantTerminalMechControl3Test extends ActorTest {
|
||||||
import net.psforever.types.CharacterGender
|
import net.psforever.types.CharacterSex
|
||||||
"ImplantTerminalMechControl" should {
|
"ImplantTerminalMechControl" should {
|
||||||
"block a player from mounting" in {
|
"block a player from mounting" in {
|
||||||
val (player1, mech) = ImplantTerminalMechTest.SetUpAgents(PlanetSideEmpire.TR)
|
val (player1, mech) = ImplantTerminalMechTest.SetUpAgents(PlanetSideEmpire.TR)
|
||||||
val player2 = Player(Avatar(1, "test2", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
|
val player2 = Player(Avatar(1, "test2", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
|
|
||||||
mech.Actor ! Mountable.TryMount(player1, 1)
|
mech.Actor ! Mountable.TryMount(player1, 1)
|
||||||
receiveOne(Duration.create(100, "ms")) //consume reply
|
receiveOne(Duration.create(100, "ms")) //consume reply
|
||||||
|
|
@ -183,6 +183,6 @@ object ImplantTerminalMechTest {
|
||||||
map.linkTerminalToInterface(1, 2)
|
map.linkTerminalToInterface(1, 2)
|
||||||
terminal.Actor = system.actorOf(Props(classOf[ImplantTerminalMechControl], terminal), "terminal-control")
|
terminal.Actor = system.actorOf(Props(classOf[ImplantTerminalMechControl], terminal), "terminal-control")
|
||||||
|
|
||||||
(Player(Avatar(0, "test", faction, CharacterGender.Male, 0, CharacterVoice.Mute)), terminal)
|
(Player(Avatar(0, "test", faction, CharacterSex.Male, 0, CharacterVoice.Mute)), terminal)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ class MatrixTerminalTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"invalid message" in {
|
"invalid message" in {
|
||||||
val player = Player(Avatar(0, "test", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
|
val player = Player(Avatar(0, "test", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
|
||||||
val msg = ItemTransactionMessage(PlanetSideGUID(1), TransactionType.Buy, 1, "lite_armor", 0, PlanetSideGUID(0))
|
val msg = ItemTransactionMessage(PlanetSideGUID(1), TransactionType.Buy, 1, "lite_armor", 0, PlanetSideGUID(0))
|
||||||
val terminal = Terminal(new MatrixTerminalDefinition(519))
|
val terminal = Terminal(new MatrixTerminalDefinition(519))
|
||||||
terminal.Owner = Vehicle(GlobalDefinitions.quadstealth)
|
terminal.Owner = Vehicle(GlobalDefinitions.quadstealth)
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ import net.psforever.types._
|
||||||
import org.specs2.mutable.Specification
|
import org.specs2.mutable.Specification
|
||||||
|
|
||||||
class OrderTerminalTest extends Specification {
|
class OrderTerminalTest extends Specification {
|
||||||
val avatar = Avatar(0, "test", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)
|
val avatar = Avatar(0, "test", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)
|
||||||
val player = Player(avatar)
|
val player = Player(avatar)
|
||||||
|
|
||||||
val building = new Building(
|
val building = new Building(
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ import net.psforever.objects.serverobject.terminals.{
|
||||||
}
|
}
|
||||||
import net.psforever.objects.zones.{Zone, ZoneMap}
|
import net.psforever.objects.zones.{Zone, ZoneMap}
|
||||||
import net.psforever.objects.{GlobalDefinitions, Player}
|
import net.psforever.objects.{GlobalDefinitions, Player}
|
||||||
import net.psforever.types.{CharacterGender, CharacterVoice, PlanetSideEmpire, PlanetSideGUID}
|
import net.psforever.types.{CharacterSex, CharacterVoice, PlanetSideEmpire, PlanetSideGUID}
|
||||||
import org.specs2.mutable.Specification
|
import org.specs2.mutable.Specification
|
||||||
import net.psforever.services.Service
|
import net.psforever.services.Service
|
||||||
import net.psforever.services.local.LocalService
|
import net.psforever.services.local.LocalService
|
||||||
|
|
@ -41,7 +41,7 @@ class ProximityTest extends Specification {
|
||||||
ProximityTest.avatarId.getAndIncrement(),
|
ProximityTest.avatarId.getAndIncrement(),
|
||||||
"TestCharacter1",
|
"TestCharacter1",
|
||||||
PlanetSideEmpire.VS,
|
PlanetSideEmpire.VS,
|
||||||
CharacterGender.Female,
|
CharacterSex.Female,
|
||||||
1,
|
1,
|
||||||
CharacterVoice.Voice1
|
CharacterVoice.Voice1
|
||||||
)
|
)
|
||||||
|
|
@ -54,7 +54,7 @@ class ProximityTest extends Specification {
|
||||||
ProximityTest.avatarId.getAndIncrement(),
|
ProximityTest.avatarId.getAndIncrement(),
|
||||||
"TestCharacter2",
|
"TestCharacter2",
|
||||||
PlanetSideEmpire.VS,
|
PlanetSideEmpire.VS,
|
||||||
CharacterGender.Female,
|
CharacterSex.Female,
|
||||||
1,
|
1,
|
||||||
CharacterVoice.Voice1
|
CharacterVoice.Voice1
|
||||||
)
|
)
|
||||||
|
|
@ -77,7 +77,7 @@ class ProximityTest extends Specification {
|
||||||
ProximityTest.avatarId.getAndIncrement(),
|
ProximityTest.avatarId.getAndIncrement(),
|
||||||
"TestCharacter1",
|
"TestCharacter1",
|
||||||
PlanetSideEmpire.VS,
|
PlanetSideEmpire.VS,
|
||||||
CharacterGender.Female,
|
CharacterSex.Female,
|
||||||
1,
|
1,
|
||||||
CharacterVoice.Voice1
|
CharacterVoice.Voice1
|
||||||
)
|
)
|
||||||
|
|
@ -90,7 +90,7 @@ class ProximityTest extends Specification {
|
||||||
ProximityTest.avatarId.getAndIncrement(),
|
ProximityTest.avatarId.getAndIncrement(),
|
||||||
"TestCharacter2",
|
"TestCharacter2",
|
||||||
PlanetSideEmpire.VS,
|
PlanetSideEmpire.VS,
|
||||||
CharacterGender.Female,
|
CharacterSex.Female,
|
||||||
1,
|
1,
|
||||||
CharacterVoice.Voice1
|
CharacterVoice.Voice1
|
||||||
)
|
)
|
||||||
|
|
@ -118,7 +118,7 @@ class ProximityTest extends Specification {
|
||||||
ProximityTest.avatarId.getAndIncrement(),
|
ProximityTest.avatarId.getAndIncrement(),
|
||||||
"TestCharacter1",
|
"TestCharacter1",
|
||||||
PlanetSideEmpire.VS,
|
PlanetSideEmpire.VS,
|
||||||
CharacterGender.Female,
|
CharacterSex.Female,
|
||||||
1,
|
1,
|
||||||
CharacterVoice.Voice1
|
CharacterVoice.Voice1
|
||||||
)
|
)
|
||||||
|
|
@ -140,7 +140,7 @@ class ProximityTest extends Specification {
|
||||||
ProximityTest.avatarId.getAndIncrement(),
|
ProximityTest.avatarId.getAndIncrement(),
|
||||||
"TestCharacter1",
|
"TestCharacter1",
|
||||||
PlanetSideEmpire.VS,
|
PlanetSideEmpire.VS,
|
||||||
CharacterGender.Female,
|
CharacterSex.Female,
|
||||||
1,
|
1,
|
||||||
CharacterVoice.Voice1
|
CharacterVoice.Voice1
|
||||||
)
|
)
|
||||||
|
|
@ -184,7 +184,7 @@ class ProximityTerminalControlStartTest extends ActorTest {
|
||||||
ProximityTest.avatarId.getAndIncrement(),
|
ProximityTest.avatarId.getAndIncrement(),
|
||||||
"TestCharacter1",
|
"TestCharacter1",
|
||||||
PlanetSideEmpire.VS,
|
PlanetSideEmpire.VS,
|
||||||
CharacterGender.Female,
|
CharacterSex.Female,
|
||||||
1,
|
1,
|
||||||
CharacterVoice.Voice1
|
CharacterVoice.Voice1
|
||||||
)
|
)
|
||||||
|
|
@ -235,7 +235,7 @@ class ProximityTerminalControlTwoUsersTest extends ActorTest {
|
||||||
ProximityTest.avatarId.getAndIncrement(),
|
ProximityTest.avatarId.getAndIncrement(),
|
||||||
"TestCharacter1",
|
"TestCharacter1",
|
||||||
PlanetSideEmpire.VS,
|
PlanetSideEmpire.VS,
|
||||||
CharacterGender.Female,
|
CharacterSex.Female,
|
||||||
1,
|
1,
|
||||||
CharacterVoice.Voice1
|
CharacterVoice.Voice1
|
||||||
)
|
)
|
||||||
|
|
@ -249,7 +249,7 @@ class ProximityTerminalControlTwoUsersTest extends ActorTest {
|
||||||
ProximityTest.avatarId.getAndIncrement(),
|
ProximityTest.avatarId.getAndIncrement(),
|
||||||
"TestCharacter2",
|
"TestCharacter2",
|
||||||
PlanetSideEmpire.VS,
|
PlanetSideEmpire.VS,
|
||||||
CharacterGender.Female,
|
CharacterSex.Female,
|
||||||
1,
|
1,
|
||||||
CharacterVoice.Voice1
|
CharacterVoice.Voice1
|
||||||
)
|
)
|
||||||
|
|
@ -307,7 +307,7 @@ class ProximityTerminalControlStopTest extends ActorTest {
|
||||||
ProximityTest.avatarId.getAndIncrement(),
|
ProximityTest.avatarId.getAndIncrement(),
|
||||||
"TestCharacter1",
|
"TestCharacter1",
|
||||||
PlanetSideEmpire.VS,
|
PlanetSideEmpire.VS,
|
||||||
CharacterGender.Female,
|
CharacterSex.Female,
|
||||||
1,
|
1,
|
||||||
CharacterVoice.Voice1
|
CharacterVoice.Voice1
|
||||||
)
|
)
|
||||||
|
|
@ -361,7 +361,7 @@ class ProximityTerminalControlNotStopTest extends ActorTest {
|
||||||
ProximityTest.avatarId.getAndIncrement(),
|
ProximityTest.avatarId.getAndIncrement(),
|
||||||
"TestCharacter1",
|
"TestCharacter1",
|
||||||
PlanetSideEmpire.VS,
|
PlanetSideEmpire.VS,
|
||||||
CharacterGender.Female,
|
CharacterSex.Female,
|
||||||
1,
|
1,
|
||||||
CharacterVoice.Voice1
|
CharacterVoice.Voice1
|
||||||
)
|
)
|
||||||
|
|
@ -375,7 +375,7 @@ class ProximityTerminalControlNotStopTest extends ActorTest {
|
||||||
ProximityTest.avatarId.getAndIncrement(),
|
ProximityTest.avatarId.getAndIncrement(),
|
||||||
"TestCharacter2",
|
"TestCharacter2",
|
||||||
PlanetSideEmpire.VS,
|
PlanetSideEmpire.VS,
|
||||||
CharacterGender.Female,
|
CharacterSex.Female,
|
||||||
1,
|
1,
|
||||||
CharacterVoice.Voice1
|
CharacterVoice.Voice1
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -143,6 +143,6 @@ object TerminalControlTest {
|
||||||
GlobalDefinitions.building
|
GlobalDefinitions.building
|
||||||
)
|
)
|
||||||
terminal.Owner.Faction = faction
|
terminal.Owner.Faction = faction
|
||||||
(Player(Avatar(0, "test", faction, CharacterGender.Male, 0, CharacterVoice.Mute)), terminal)
|
(Player(Avatar(0, "test", faction, CharacterSex.Male, 0, CharacterVoice.Mute)), terminal)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue