diff --git a/common/src/main/scala/net/psforever/objects/Avatar.scala b/common/src/main/scala/net/psforever/objects/Avatar.scala
index 05caf2be..3166d5b6 100644
--- a/common/src/main/scala/net/psforever/objects/Avatar.scala
+++ b/common/src/main/scala/net/psforever/objects/Avatar.scala
@@ -4,12 +4,12 @@ package net.psforever.objects
import net.psforever.objects.definition.{AvatarDefinition, ImplantDefinition}
import net.psforever.objects.equipment.EquipmentSize
import net.psforever.objects.loadouts.Loadout
-import net.psforever.types.{CertificationType, CharacterGender, ImplantType, PlanetSideEmpire}
+import net.psforever.types._
import scala.annotation.tailrec
import scala.collection.mutable
-class Avatar(val name : String, val faction : PlanetSideEmpire.Value, val sex : CharacterGender.Value, val head : Int, val voice : Int) {
+class Avatar(val name : String, val faction : PlanetSideEmpire.Value, val sex : CharacterGender.Value, val head : Int, val voice : CharacterVoice.Value) {
/** Battle Experience Points */
private var bep : Long = 0
/** Command Experience Points */
@@ -212,7 +212,7 @@ class Avatar(val name : String, val faction : PlanetSideEmpire.Value, val sex :
object Avatar {
final private val definition : AvatarDefinition = new AvatarDefinition(121)
- def apply(name : String, faction : PlanetSideEmpire.Value, sex : CharacterGender.Value, head : Int, voice : Int) : Avatar = {
+ def apply(name : String, faction : PlanetSideEmpire.Value, sex : CharacterGender.Value, head : Int, voice : CharacterVoice.Value) : Avatar = {
new Avatar(name, faction, sex, head, voice)
}
diff --git a/common/src/main/scala/net/psforever/objects/Player.scala b/common/src/main/scala/net/psforever/objects/Player.scala
index 4300ac40..71398c5e 100644
--- a/common/src/main/scala/net/psforever/objects/Player.scala
+++ b/common/src/main/scala/net/psforever/objects/Player.scala
@@ -58,7 +58,7 @@ class Player(private val core : Avatar) extends PlanetSideGameObject with Factio
def Head : Int = core.head
- def Voice : Int = core.voice
+ def Voice : CharacterVoice.Value = core.voice
def isAlive : Boolean = alive
diff --git a/common/src/main/scala/net/psforever/objects/definition/converter/CharacterSelectConverter.scala b/common/src/main/scala/net/psforever/objects/definition/converter/CharacterSelectConverter.scala
index 7840e027..25870e88 100644
--- a/common/src/main/scala/net/psforever/objects/definition/converter/CharacterSelectConverter.scala
+++ b/common/src/main/scala/net/psforever/objects/definition/converter/CharacterSelectConverter.scala
@@ -4,7 +4,7 @@ package net.psforever.objects.definition.converter
import net.psforever.objects.{EquipmentSlot, Player}
import net.psforever.objects.equipment.Equipment
import net.psforever.packet.game.objectcreate._
-import net.psforever.types.{GrenadeState, ImplantType}
+import net.psforever.types.{CharacterVoice, GrenadeState, ImplantType}
import scala.annotation.tailrec
import scala.util.{Failure, Success, Try}
@@ -45,7 +45,7 @@ class CharacterSelectConverter extends AvatarConverter {
*/
private def MakeAppearanceData(obj : Player) : (Int)=>CharacterAppearanceData = {
CharacterAppearanceData(
- BasicCharacterData(obj.Name, obj.Faction, obj.Sex, obj.Head, 1),
+ BasicCharacterData(obj.Name, obj.Faction, obj.Sex, obj.Head, CharacterVoice.Mute),
0,
false,
false,
diff --git a/common/src/main/scala/net/psforever/objects/definition/converter/CorpseConverter.scala b/common/src/main/scala/net/psforever/objects/definition/converter/CorpseConverter.scala
index b32a0a82..98a4bb38 100644
--- a/common/src/main/scala/net/psforever/objects/definition/converter/CorpseConverter.scala
+++ b/common/src/main/scala/net/psforever/objects/definition/converter/CorpseConverter.scala
@@ -4,7 +4,7 @@ package net.psforever.objects.definition.converter
import net.psforever.objects.{EquipmentSlot, Player}
import net.psforever.objects.equipment.Equipment
import net.psforever.packet.game.objectcreate._
-import net.psforever.types.{CharacterGender, GrenadeState, Vector3}
+import net.psforever.types.{CharacterGender, CharacterVoice, GrenadeState, Vector3}
import scala.annotation.tailrec
import scala.util.{Failure, Success, Try}
@@ -36,7 +36,7 @@ class CorpseConverter extends AvatarConverter {
*/
private def MakeAppearanceData(obj : Player) : (Int)=>CharacterAppearanceData = {
CharacterAppearanceData(
- BasicCharacterData(obj.Name, obj.Faction, CharacterGender.Male, 0, 0),
+ BasicCharacterData(obj.Name, obj.Faction, CharacterGender.Male, 0, CharacterVoice.Mute),
0,
false,
false,
diff --git a/common/src/main/scala/net/psforever/objects/definition/converter/VehicleConverter.scala b/common/src/main/scala/net/psforever/objects/definition/converter/VehicleConverter.scala
index eea2f688..0dd65630 100644
--- a/common/src/main/scala/net/psforever/objects/definition/converter/VehicleConverter.scala
+++ b/common/src/main/scala/net/psforever/objects/definition/converter/VehicleConverter.scala
@@ -35,14 +35,14 @@ class VehicleConverter extends ObjectCreateConverter[Vehicle]() {
false,
obj.Cloaked,
SpecificFormatData(obj),
- Some(InventoryData((MakeSeats(obj) ++ MakeUtilities(obj) ++ MakeMountings(obj)).sortBy(_.parentSlot)))
+ Some(InventoryData(MakeDriverSeat(obj) ++ MakeUtilities(obj) ++ MakeMountings(obj)))
)(SpecificFormatModifier)
)
}
- private def MakeSeats(obj : Vehicle) : List[InventoryItemData.InventoryItem] = {
- val offset : Long = VehicleData.InitialStreamLengthToSeatEntries(true, SpecificFormatModifier)
- obj.Seats(0).Occupant match { //TODO just the driver for now to avoid issues with seat permissions
+ private def MakeDriverSeat(obj : Vehicle) : List[InventoryItemData.InventoryItem] = {
+ val offset : Long = VehicleData.InitialStreamLengthToSeatEntries(obj.Velocity.nonEmpty, SpecificFormatModifier)
+ obj.Seats(0).Occupant match {
case Some(player) =>
val mountedPlayer = VehicleData.PlayerData(
AvatarConverter.MakeAppearanceData(player),
@@ -51,14 +51,32 @@ class VehicleConverter extends ObjectCreateConverter[Vehicle]() {
AvatarConverter.GetDrawnSlot(player),
offset
)
- val entry = InventoryItemData(ObjectClass.avatar, player.GUID, 0, mountedPlayer)
- //println(s"seat 0 offset: $offset, size: ${entry.bitsize}, pad: ${mountedPlayer.basic_appearance.NamePadding}")
- //offset += entry.bitsize
- List(entry)
+ List(InventoryItemData(ObjectClass.avatar, player.GUID, 0, mountedPlayer))
case None =>
Nil
}
}
+
+ //TODO do not use for now; causes vehicle access permission issues; may not mesh with workflows; player GUID requirements
+// private def MakeSeats(obj : Vehicle) : List[InventoryItemData.InventoryItem] = {
+// var offset : Long = VehicleData.InitialStreamLengthToSeatEntries(obj.Velocity.nonEmpty, SpecificFormatModifier)
+// obj.Seats
+// .filter({ case (_, seat) => seat.isOccupied })
+// .map({case (index, seat) =>
+// val player = seat.Occupant.get
+// val mountedPlayer = VehicleData.PlayerData(
+// AvatarConverter.MakeAppearanceData(player),
+// AvatarConverter.MakeCharacterData(player),
+// AvatarConverter.MakeInventoryData(player),
+// AvatarConverter.GetDrawnSlot(player),
+// offset
+// )
+// val entry = InventoryItemData(ObjectClass.avatar, player.GUID, index, mountedPlayer)
+// //println(s"seat 0 offset: $offset, size: ${entry.bitsize}, pad: ${mountedPlayer.basic_appearance.NamePadding}")
+// offset += entry.bitsize
+// entry
+// }).toList
+// }
private def MakeMountings(obj : Vehicle) : List[InventoryItemData.InventoryItem] = {
obj.Weapons.map({
diff --git a/common/src/main/scala/net/psforever/packet/game/CharacterCreateRequestMessage.scala b/common/src/main/scala/net/psforever/packet/game/CharacterCreateRequestMessage.scala
index 29724f0c..635fa074 100644
--- a/common/src/main/scala/net/psforever/packet/game/CharacterCreateRequestMessage.scala
+++ b/common/src/main/scala/net/psforever/packet/game/CharacterCreateRequestMessage.scala
@@ -2,7 +2,7 @@
package net.psforever.packet.game
import net.psforever.packet.{GamePacketOpcode, Marshallable, PacketHelpers, PlanetSideGamePacket}
-import net.psforever.types.{CharacterGender, PlanetSideEmpire}
+import net.psforever.types.{CharacterGender, CharacterVoice, PlanetSideEmpire}
import scodec.{Attempt, Codec, Err}
import scodec.codecs._
import shapeless.{::, HNil}
@@ -12,7 +12,7 @@ import shapeless.{::, HNil}
*/
final case class CharacterCreateRequestMessage(name : String,
headId : Int,
- voiceId : Int,
+ voiceId : CharacterVoice.Value,
gender : CharacterGender.Value,
empire : PlanetSideEmpire.Value)
extends PlanetSideGamePacket {
@@ -22,10 +22,12 @@ final case class CharacterCreateRequestMessage(name : String,
}
object CharacterCreateRequestMessage extends Marshallable[CharacterCreateRequestMessage] {
+ private val character_voice_codec = PacketHelpers.createEnumerationCodec(CharacterVoice, uint8)
+
implicit val codec : Codec[CharacterCreateRequestMessage] = (
("name" | PacketHelpers.encodedWideString) ::
("headId" | uint8L) ::
- ("voiceId" | uint8L) ::
+ ("voiceId" | character_voice_codec) ::
("gender" | CharacterGender.codec) ::
("empire" | PlanetSideEmpire.codec)
).exmap[CharacterCreateRequestMessage] (
diff --git a/common/src/main/scala/net/psforever/packet/game/objectcreate/BasicCharacterData.scala b/common/src/main/scala/net/psforever/packet/game/objectcreate/BasicCharacterData.scala
new file mode 100644
index 00000000..39cacc32
--- /dev/null
+++ b/common/src/main/scala/net/psforever/packet/game/objectcreate/BasicCharacterData.scala
@@ -0,0 +1,25 @@
+// Copyright (c) 2017 PSForever
+package net.psforever.packet.game.objectcreate
+
+import net.psforever.types._
+
+/**
+ * A part of a representation of the avatar portion of `ObjectCreateMessage` packet data.
+ *
+ * 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.
+ * @see `PlanetSideEmpire`
+ * `CharacterGender`
+ * @param name the unique name of the avatar;
+ * minimum of two characters
+ * @param faction the empire to which the avatar belongs
+ * @param sex whether the avatar is `Male` or `Female`
+ * @param head the avatar's face and hair;
+ * by row and column on the character creation screen, the high nibble is the row and the low nibble is the column
+ * @param voice the avatar's voice selection
+ */
+final case class BasicCharacterData(name : String,
+ faction : PlanetSideEmpire.Value,
+ sex : CharacterGender.Value,
+ head : Int,
+ voice : CharacterVoice.Value)
diff --git a/common/src/main/scala/net/psforever/packet/game/objectcreate/CharacterAppearanceData.scala b/common/src/main/scala/net/psforever/packet/game/objectcreate/CharacterAppearanceData.scala
index d6221fcb..fb6eee6e 100644
--- a/common/src/main/scala/net/psforever/packet/game/objectcreate/CharacterAppearanceData.scala
+++ b/common/src/main/scala/net/psforever/packet/game/objectcreate/CharacterAppearanceData.scala
@@ -7,50 +7,6 @@ import scodec.{Attempt, Codec, Err}
import scodec.codecs._
import shapeless.{::, HNil}
-/**
- * The voice used by the player character, from a selection of ten divided between five male voices and five female voices.
- * The first entry (0) is no 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;
- * a female character with either entry would become mute.
- * @see `CharacterGender`
- */
-object CharacterVoice extends Enumeration {
- type Type = Value
-
- val
- Mute,
- Voice1, //grizzled, tough
- Voice2, //greenhorn, clueless
- Voice3, //roughneck, gruff
- Voice4, //stalwart, smooth
- Voice5 //daredevil, calculating
- = Value
-
- implicit val codec = PacketHelpers.createEnumerationCodec(this, uint(3))
-}
-
-/**
- * A part of a representation of the avatar portion of `ObjectCreateMessage` packet data.
- *
- * 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.
- * @see `PlanetSideEmpire`
- * `CharacterGender`
- * @param name the unique name of the avatar;
- * minimum of two characters
- * @param faction the empire to which the avatar belongs
- * @param sex whether the avatar is `Male` or `Female`
- * @param head the avatar's face and hair;
- * by row and column on the character creation screen, the high nibble is the row and the low nibble is the column
- * @param voice the avatar's voice selection
- */
-final case class BasicCharacterData(name : String,
- faction : PlanetSideEmpire.Value,
- sex : CharacterGender.Value,
- head : Int,
- voice : Int)
-
/**
* A part of a representation of the avatar portion of `ObjectCreateDetailedMessage` packet data.
*
@@ -77,6 +33,7 @@ final case class BasicCharacterData(name : String,
* `ExoSuitType`
* `GrenadeState`
* `RibbonBars`
+ * @see `http://www.planetside-universe.com/p-outfit-decals-31.htm`
* @param app the player's cardinal appearance settings
* @param voice2 na;
* affects the frequency by which the character's voice is heard (somehow);
@@ -125,9 +82,9 @@ final case class CharacterAppearanceData(app : BasicCharacterData,
//factor guard bool values into the base size, not its corresponding optional field
val nameStringSize : Long = StreamBitSize.stringBitSize(app.name, 16) + name_padding
val outfitStringSize : Long = StreamBitSize.stringBitSize(outfit_name, 16) +
- (if(outfit_name.nonEmpty) { CharacterAppearanceData.outfitNamePadding } else { 0L }) //even if the outfit_name is blank, string always padded
+ CharacterAppearanceData.outfitNamePadding //even if the outfit_name is blank, string is always padded
val altModelSize = CharacterAppearanceData.altModelBit(this).getOrElse(0)
- 335L + nameStringSize + outfitStringSize + altModelSize
+ 335L + nameStringSize + outfitStringSize + altModelSize //base value includes the ribbons
}
/**
@@ -182,7 +139,7 @@ object CharacterAppearanceData extends Marshallable[CharacterAppearanceData] {
ignore(2) :: //unknown
("sex" | CharacterGender.codec) ::
("head" | uint8L) ::
- ("voice" | uint(3)) ::
+ ("voice" | CharacterVoice.codec) ::
("voice2" | uint2L) ::
ignore(78) :: //unknown
uint16L :: //usually either 0 or 65535
diff --git a/common/src/main/scala/net/psforever/packet/game/objectcreate/VehicleData.scala b/common/src/main/scala/net/psforever/packet/game/objectcreate/VehicleData.scala
index 2d13c1e3..9cfa09d8 100644
--- a/common/src/main/scala/net/psforever/packet/game/objectcreate/VehicleData.scala
+++ b/common/src/main/scala/net/psforever/packet/game/objectcreate/VehicleData.scala
@@ -5,7 +5,7 @@ import net.psforever.packet.game.PlanetSideGUID
import net.psforever.packet.{Marshallable, PacketHelpers}
import scodec.Attempt.{Failure, Successful}
import scodec.{Attempt, Codec, Err}
-import shapeless.HNil //note: do not import shapeless.:: here; it messes up List's :: function
+import shapeless.HNil //note: do not import shapeless.:: here; it messes up List's :: functionality
import scodec.codecs._
import net.psforever.types.{DriveState, PlanetSideEmpire}
diff --git a/common/src/main/scala/net/psforever/types/CharacterVoice.scala b/common/src/main/scala/net/psforever/types/CharacterVoice.scala
new file mode 100644
index 00000000..556b712f
--- /dev/null
+++ b/common/src/main/scala/net/psforever/types/CharacterVoice.scala
@@ -0,0 +1,28 @@
+// Copyright (c) 2017 PSForever
+package net.psforever.types
+
+import net.psforever.packet.PacketHelpers
+import scodec.codecs.uint
+
+/**
+ * The voice used by the player character, from a selection of ten divided between five male voices and five female voices.
+ * The first entry (0) is no 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;
+ * a female character with either entry would become mute, however.
+ * @see `CharacterGender`
+ */
+object CharacterVoice extends Enumeration {
+ type Type = Value
+
+ val
+ Mute,
+ Voice1, //grizzled, tough
+ Voice2, //greenhorn, clueless
+ Voice3, //roughneck, gruff
+ Voice4, //stalwart, smooth
+ Voice5 //daredevil, calculating
+ = Value
+
+ implicit val codec = PacketHelpers.createEnumerationCodec(this, uint(3))
+}
diff --git a/common/src/test/scala/game/CharacterCreateRequestMessageTest.scala b/common/src/test/scala/game/CharacterCreateRequestMessageTest.scala
index 416ac237..f1840669 100644
--- a/common/src/test/scala/game/CharacterCreateRequestMessageTest.scala
+++ b/common/src/test/scala/game/CharacterCreateRequestMessageTest.scala
@@ -4,7 +4,7 @@ package game
import org.specs2.mutable._
import net.psforever.packet._
import net.psforever.packet.game._
-import net.psforever.types.{CharacterGender, PlanetSideEmpire}
+import net.psforever.types.{CharacterGender, CharacterVoice, PlanetSideEmpire}
import scodec.bits._
class CharacterCreateRequestMessageTest extends Specification {
@@ -15,7 +15,7 @@ class CharacterCreateRequestMessageTest extends Specification {
case CharacterCreateRequestMessage(name, head, voice, gender, faction) =>
name mustEqual "TestChar"
head mustEqual 50
- voice mustEqual 5
+ voice mustEqual CharacterVoice.Voice5
gender mustEqual CharacterGender.Female
faction mustEqual PlanetSideEmpire.NC
case _ =>
@@ -24,7 +24,7 @@ class CharacterCreateRequestMessageTest extends Specification {
}
"encode" in {
- val msg = CharacterCreateRequestMessage("TestChar", 50, 5, CharacterGender.Female, PlanetSideEmpire.NC)
+ val msg = CharacterCreateRequestMessage("TestChar", 50, CharacterVoice.Voice5, CharacterGender.Female, PlanetSideEmpire.NC)
val pkt = PacketCoding.EncodePacket(msg).require.toByteVector
pkt mustEqual string
diff --git a/common/src/test/scala/game/objectcreate/CharacterDataTest.scala b/common/src/test/scala/game/objectcreate/CharacterDataTest.scala
index fda6afeb..6115f231 100644
--- a/common/src/test/scala/game/objectcreate/CharacterDataTest.scala
+++ b/common/src/test/scala/game/objectcreate/CharacterDataTest.scala
@@ -37,7 +37,7 @@ class CharacterDataTest extends Specification {
basic.app.faction mustEqual PlanetSideEmpire.TR
basic.app.sex mustEqual CharacterGender.Male
basic.app.head mustEqual 5
- basic.app.voice mustEqual 5
+ basic.app.voice mustEqual CharacterVoice.Voice5
basic.voice2 mustEqual 3
basic.black_ops mustEqual false
basic.jammered mustEqual false
@@ -130,7 +130,7 @@ class CharacterDataTest extends Specification {
basic.app.faction mustEqual PlanetSideEmpire.TR
basic.app.sex mustEqual CharacterGender.Male
basic.app.head mustEqual 5
- basic.app.voice mustEqual 5
+ basic.app.voice mustEqual CharacterVoice.Voice5
basic.voice2 mustEqual 3
basic.black_ops mustEqual false
basic.jammered mustEqual false
@@ -174,7 +174,7 @@ class CharacterDataTest extends Specification {
basic.app.faction mustEqual PlanetSideEmpire.VS
basic.app.sex mustEqual CharacterGender.Male
basic.app.head mustEqual 10
- basic.app.voice mustEqual 2
+ basic.app.voice mustEqual CharacterVoice.Voice2
basic.voice2 mustEqual 0
basic.black_ops mustEqual false
basic.jammered mustEqual false
@@ -226,7 +226,7 @@ class CharacterDataTest extends Specification {
PlanetSideEmpire.TR,
CharacterGender.Male,
5,
- 5
+ CharacterVoice.Voice5
),
3,
false,
@@ -282,7 +282,7 @@ class CharacterDataTest extends Specification {
PlanetSideEmpire.TR,
CharacterGender.Male,
5,
- 5
+ CharacterVoice.Voice5
),
3,
false,
@@ -335,7 +335,7 @@ class CharacterDataTest extends Specification {
PlanetSideEmpire.VS,
CharacterGender.Male,
10,
- 2
+ CharacterVoice.Voice2
),
0,
false,
diff --git a/common/src/test/scala/game/objectcreatedetailed/DetailedCharacterDataTest.scala b/common/src/test/scala/game/objectcreatedetailed/DetailedCharacterDataTest.scala
index 9f573970..b571749b 100644
--- a/common/src/test/scala/game/objectcreatedetailed/DetailedCharacterDataTest.scala
+++ b/common/src/test/scala/game/objectcreatedetailed/DetailedCharacterDataTest.scala
@@ -38,7 +38,7 @@ class DetailedCharacterDataTest extends Specification {
basic.app.faction mustEqual PlanetSideEmpire.VS
basic.app.sex mustEqual CharacterGender.Female
basic.app.head mustEqual 41
- basic.app.voice mustEqual 1 //female 1
+ basic.app.voice mustEqual CharacterVoice.Voice1
basic.voice2 mustEqual 3
basic.black_ops mustEqual false
basic.jammered mustEqual false
@@ -174,7 +174,7 @@ class DetailedCharacterDataTest extends Specification {
basic.app.faction mustEqual PlanetSideEmpire.VS
basic.app.sex mustEqual CharacterGender.Female
basic.app.head mustEqual 41
- basic.app.voice mustEqual 1 //female 1
+ basic.app.voice mustEqual CharacterVoice.Voice1
basic.voice2 mustEqual 3
basic.black_ops mustEqual false
basic.jammered mustEqual false
@@ -380,7 +380,7 @@ class DetailedCharacterDataTest extends Specification {
PlanetSideEmpire.VS,
CharacterGender.Female,
41,
- 1
+ CharacterVoice.Voice1
),
3,
false,
@@ -451,7 +451,7 @@ class DetailedCharacterDataTest extends Specification {
PlanetSideEmpire.VS,
CharacterGender.Female,
41,
- 1
+ CharacterVoice.Voice1
),
3,
false,
@@ -519,7 +519,7 @@ class DetailedCharacterDataTest extends Specification {
None
)
val app : (Int)=>CharacterAppearanceData = CharacterAppearanceData(
- BasicCharacterData("KiCkJr", PlanetSideEmpire.NC, CharacterGender.Male, 24, 4),
+ BasicCharacterData("KiCkJr", PlanetSideEmpire.NC, CharacterGender.Male, 24, CharacterVoice.Voice4),
3,
false, false,
ExoSuitType.Agile,
diff --git a/common/src/test/scala/game/objectcreatevehicle/MountedVehiclesTest.scala b/common/src/test/scala/game/objectcreatevehicle/MountedVehiclesTest.scala
index 393bf678..ca939ebe 100644
--- a/common/src/test/scala/game/objectcreatevehicle/MountedVehiclesTest.scala
+++ b/common/src/test/scala/game/objectcreatevehicle/MountedVehiclesTest.scala
@@ -56,7 +56,7 @@ class MountedVehiclesTest extends Specification {
app.app.faction mustEqual PlanetSideEmpire.TR
app.app.sex mustEqual CharacterGender.Male
app.app.head mustEqual 5
- app.app.voice mustEqual 5
+ app.app.voice mustEqual CharacterVoice.Voice5
app.voice2 mustEqual 3
app.black_ops mustEqual false
app.lfs mustEqual false
@@ -106,7 +106,7 @@ class MountedVehiclesTest extends Specification {
"encode (Scrawny Ronnie's mosquito)" in {
val app : (Int)=>CharacterAppearanceData = CharacterAppearanceData(
- BasicCharacterData("ScrawnyRonnie", PlanetSideEmpire.TR, CharacterGender.Male, 5, 5),
+ BasicCharacterData("ScrawnyRonnie", PlanetSideEmpire.TR, CharacterGender.Male, 5, CharacterVoice.Voice5),
3,
false, false,
ExoSuitType.Agile,
diff --git a/common/src/test/scala/objects/AutoDriveControlsTest.scala b/common/src/test/scala/objects/AutoDriveControlsTest.scala
index e26c7d9b..e16b701e 100644
--- a/common/src/test/scala/objects/AutoDriveControlsTest.scala
+++ b/common/src/test/scala/objects/AutoDriveControlsTest.scala
@@ -7,7 +7,7 @@ import net.psforever.objects.serverobject.pad.{VehicleSpawnControl, VehicleSpawn
import net.psforever.objects.{Avatar, GlobalDefinitions, Player, Vehicle}
import net.psforever.objects.serverobject.pad.process.{AutoDriveControls, VehicleSpawnControlGuided}
import net.psforever.packet.game.PlanetSideGUID
-import net.psforever.types.{CharacterGender, PlanetSideEmpire, Vector3}
+import net.psforever.types.{CharacterGender, CharacterVoice, PlanetSideEmpire, Vector3}
import org.specs2.mutable.Specification
import scala.concurrent.duration._
@@ -389,7 +389,7 @@ class GuidedControlTest1 extends ActorTest {
"unguided" in {
val vehicle = Vehicle(GlobalDefinitions.mediumtransport)
vehicle.GUID = PlanetSideGUID(1)
- val driver = Player(Avatar("", PlanetSideEmpire.TR, CharacterGender.Male, 0,0))
+ val driver = Player(Avatar("", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
driver.VehicleSeated = vehicle.GUID
val sendTo = TestProbe()
val order = VehicleSpawnControl.Order(driver, vehicle, sendTo.ref)
@@ -411,7 +411,7 @@ class GuidedControlTest2 extends ActorTest {
val vehicle = Vehicle(GlobalDefinitions.mediumtransport)
vehicle.GUID = PlanetSideGUID(1)
vehicle.Velocity = Vector3(1,1,1)
- val driver = Player(Avatar("", PlanetSideEmpire.TR, CharacterGender.Male, 0,0))
+ val driver = Player(Avatar("", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
driver.VehicleSeated = vehicle.GUID
val sendTo = TestProbe()
val order = VehicleSpawnControl.Order(driver, vehicle, sendTo.ref)
@@ -436,7 +436,7 @@ class GuidedControlTest3 extends ActorTest {
val vehicle = Vehicle(GlobalDefinitions.mediumtransport)
vehicle.GUID = PlanetSideGUID(1)
vehicle.Velocity = Vector3(1,1,1)
- val driver = Player(Avatar("", PlanetSideEmpire.TR, CharacterGender.Male, 0,0))
+ val driver = Player(Avatar("", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
driver.VehicleSeated = vehicle.GUID
val sendTo = TestProbe()
val order = VehicleSpawnControl.Order(driver, vehicle, sendTo.ref)
@@ -457,7 +457,7 @@ class GuidedControlTest3 extends ActorTest {
assert(msg2.isInstanceOf[VehicleSpawnControlGuided.GuidedControl])
assert(msg2.asInstanceOf[VehicleSpawnControlGuided.GuidedControl].command == AutoDriveControls.State.Wait)
sendTo.expectNoMsg(1000 milliseconds)
- val msg3 = sendTo.receiveOne(100 milliseconds)
+ val msg3 = sendTo.receiveOne(300 milliseconds)
assert(msg3.isInstanceOf[VehicleSpawnControlGuided.GuidedControl])
assert(msg3.asInstanceOf[VehicleSpawnControlGuided.GuidedControl].command == AutoDriveControls.State.Drive)
val msg4 = sendTo.receiveOne(200 milliseconds)
@@ -474,7 +474,7 @@ class GuidedControlTest4 extends ActorTest {
val vehicle = Vehicle(GlobalDefinitions.mediumtransport)
vehicle.GUID = PlanetSideGUID(1)
vehicle.Velocity = Vector3(1,1,1)
- val driver = Player(Avatar("", PlanetSideEmpire.TR, CharacterGender.Male, 0,0))
+ val driver = Player(Avatar("", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
driver.VehicleSeated = vehicle.GUID
val sendTo = TestProbe()
val order = VehicleSpawnControl.Order(driver, vehicle, sendTo.ref)
diff --git a/common/src/test/scala/objects/AvatarTest.scala b/common/src/test/scala/objects/AvatarTest.scala
index 6c331798..c2c482c0 100644
--- a/common/src/test/scala/objects/AvatarTest.scala
+++ b/common/src/test/scala/objects/AvatarTest.scala
@@ -5,12 +5,12 @@ import net.psforever.objects.GlobalDefinitions._
import net.psforever.objects._
import net.psforever.objects.loadouts._
import net.psforever.objects.definition.ImplantDefinition
-import net.psforever.types.{CharacterGender, ImplantType, PlanetSideEmpire}
+import net.psforever.types.{CharacterGender, CharacterVoice, ImplantType, PlanetSideEmpire}
import org.specs2.mutable._
class AvatarTest extends Specification {
def CreatePlayer() : (Player, Avatar) = {
- val avatar = Avatar("TestCharacter", PlanetSideEmpire.VS, CharacterGender.Female, 41, 1)
+ val avatar = Avatar("TestCharacter", PlanetSideEmpire.VS, CharacterGender.Female, 41, CharacterVoice.Voice1)
val
player = Player(avatar)
player.Slot(0).Equipment = Tool(beamer)
@@ -26,12 +26,12 @@ class AvatarTest extends Specification {
}
"construct" in {
- val av = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val av = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
av.name mustEqual "Chord"
av.faction mustEqual PlanetSideEmpire.TR
av.sex mustEqual CharacterGender.Male
av.head mustEqual 0
- av.voice mustEqual 5
+ av.voice mustEqual CharacterVoice.Voice5
av.BEP mustEqual 0
av.CEP mustEqual 0
av.Certifications mustEqual Set.empty
@@ -39,7 +39,7 @@ class AvatarTest extends Specification {
}
"can maintain cumulative battle experience point values" in {
- val av = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val av = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
av.BEP mustEqual 0
av.BEP = 100
av.BEP mustEqual 100
@@ -48,14 +48,14 @@ class AvatarTest extends Specification {
}
"can maintain battle experience point values up to a maximum (Long.MaxValue)" in {
- val av = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val av = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
av.BEP mustEqual 0
av.BEP = 4294967295L
av.BEP mustEqual 4294967295L
}
"can not maintain battle experience point values below zero" in {
- val av = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val av = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
av.BEP mustEqual 0
av.BEP = -1
av.BEP mustEqual 0
@@ -66,7 +66,7 @@ class AvatarTest extends Specification {
}
"can maintain cumulative command experience point values" in {
- val av = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val av = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
av.CEP mustEqual 0
av.CEP = 100
av.CEP mustEqual 100
@@ -75,14 +75,14 @@ class AvatarTest extends Specification {
}
"can maintain command experience point values up to a maximum (Long.MaxValue)" in {
- val av = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val av = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
av.CEP mustEqual 0
av.CEP = 4294967295L
av.CEP mustEqual 4294967295L
}
"can not maintain command experience point values below zero" in {
- val av = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val av = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
av.CEP mustEqual 0
av.CEP = -1
av.CEP mustEqual 0
@@ -93,28 +93,28 @@ class AvatarTest extends Specification {
}
"can tell the difference between avatars" in {
- (Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5) ==
- Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)) mustEqual true
+ (Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5) ==
+ Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)) mustEqual true
- (Avatar("Chord1", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5) ==
- Avatar("Chord2", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)) mustEqual false
+ (Avatar("Chord1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5) ==
+ Avatar("Chord2", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)) mustEqual false
- (Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5) ==
- Avatar("Chord", PlanetSideEmpire.NC, CharacterGender.Male, 0, 5)) mustEqual false
+ (Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5) ==
+ Avatar("Chord", PlanetSideEmpire.NC, CharacterGender.Male, 0, CharacterVoice.Voice5)) mustEqual false
- (Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5) ==
- Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Female, 0, 5)) mustEqual false
+ (Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5) ==
+ Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Female, 0, CharacterVoice.Voice5)) mustEqual false
- (Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5) ==
- Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 1, 5)) mustEqual false
+ (Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5) ==
+ Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 1, CharacterVoice.Voice5)) mustEqual false
- (Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5) ==
- Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 6)) mustEqual false
+ (Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5) ==
+ Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice4)) mustEqual false
}
//refer to ImplantTest.scala for more tests
"maximum of three implant slots" in {
- val obj = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val obj = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
obj.Implants.length mustEqual 3
obj.Implants(0).Unlocked mustEqual false
obj.Implants(0).Initialized mustEqual false
@@ -140,7 +140,7 @@ class AvatarTest extends Specification {
"can install an implant" in {
val testplant : ImplantDefinition = ImplantDefinition(1)
- val obj = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val obj = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
obj.Implants(0).Unlocked = true
obj.InstallImplant(testplant) mustEqual Some(0)
obj.Implants.find({p => p.Implant == ImplantType(1)}) match { //find the installed implant
@@ -155,7 +155,7 @@ class AvatarTest extends Specification {
"can install implants in sequential slots" in {
val testplant1 : ImplantDefinition = ImplantDefinition(1)
val testplant2 : ImplantDefinition = ImplantDefinition(2)
- val obj = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val obj = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
obj.Implants(0).Unlocked = true
obj.Implants(1).Unlocked = true
@@ -166,7 +166,7 @@ class AvatarTest extends Specification {
"can not install the same type of implant twice" in {
val testplant1 : ImplantDefinition = ImplantDefinition(1)
val testplant2 : ImplantDefinition = ImplantDefinition(1)
- val obj = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val obj = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
obj.Implants(0).Unlocked = true
obj.Implants(1).Unlocked = true
@@ -178,7 +178,7 @@ class AvatarTest extends Specification {
val testplant1 : ImplantDefinition = ImplantDefinition(1)
val testplant2 : ImplantDefinition = ImplantDefinition(2)
val testplant3 : ImplantDefinition = ImplantDefinition(3)
- val obj = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val obj = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
obj.Implants(0).Unlocked = true
obj.Implants(1).Unlocked = true
@@ -192,7 +192,7 @@ class AvatarTest extends Specification {
val testplant2 : ImplantDefinition = ImplantDefinition(2)
val testplant3 : ImplantDefinition = ImplantDefinition(3)
val testplant4 : ImplantDefinition = ImplantDefinition(4)
- val obj = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val obj = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
obj.Implants(0).Unlocked = true
obj.Implants(1).Unlocked = true
obj.Implants(2).Unlocked = true
@@ -205,7 +205,7 @@ class AvatarTest extends Specification {
"can uninstall an implant" in {
val testplant : ImplantDefinition = ImplantDefinition(1)
- val obj = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val obj = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
obj.Implants(0).Unlocked = true
obj.InstallImplant(testplant) mustEqual Some(0)
obj.Implants(0).Installed mustEqual Some(testplant)
@@ -218,7 +218,7 @@ class AvatarTest extends Specification {
val testplant1 : ImplantDefinition = ImplantDefinition(1)
val testplant2 : ImplantDefinition = ImplantDefinition(2)
val testplant3 : ImplantDefinition = ImplantDefinition(3)
- val obj = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val obj = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
obj.Implants(0).Unlocked = true
obj.Implants(1).Unlocked = true
obj.Implants(2).Unlocked = true
@@ -239,7 +239,7 @@ class AvatarTest extends Specification {
val testplant1 : ImplantDefinition = ImplantDefinition(1)
val testplant2 : ImplantDefinition = ImplantDefinition(2)
val testplant3 : ImplantDefinition = ImplantDefinition(3)
- val obj = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val obj = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
obj.Implants(0).Unlocked = true
obj.Implants(1).Unlocked = true
obj.Implants(2).Unlocked = true
@@ -261,7 +261,7 @@ class AvatarTest extends Specification {
"can reset implants to uninitialized state" in {
val testplant1 : ImplantDefinition = ImplantDefinition(1)
val testplant2 : ImplantDefinition = ImplantDefinition(2)
- val obj = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val obj = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
obj.Implants(0).Unlocked = true
obj.Implants(1).Unlocked = true
obj.InstallImplant(testplant1) mustEqual Some(0)
@@ -393,6 +393,6 @@ class AvatarTest extends Specification {
}
"toString" in {
- Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5).toString mustEqual "TR Chord"
+ Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5).toString mustEqual "TR Chord"
}
}
diff --git a/common/src/test/scala/objects/ConverterTest.scala b/common/src/test/scala/objects/ConverterTest.scala
index aad737dd..b863499a 100644
--- a/common/src/test/scala/objects/ConverterTest.scala
+++ b/common/src/test/scala/objects/ConverterTest.scala
@@ -11,7 +11,7 @@ import net.psforever.objects.serverobject.terminals.Terminal
import net.psforever.objects.serverobject.tube.SpawnTube
import net.psforever.packet.game.PlanetSideGUID
import net.psforever.packet.game.objectcreate._
-import net.psforever.types.{CharacterGender, PlanetSideEmpire, Vector3}
+import net.psforever.types.{CharacterGender, CharacterVoice, PlanetSideEmpire, Vector3}
import org.specs2.mutable.Specification
import scala.util.{Failure, Success}
@@ -154,7 +154,7 @@ class ConverterTest extends Specification {
}
"Player" should {
- val avatar = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val avatar = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
val obj : Player = {
/*
Create an AmmoBoxDefinition with which to build two AmmoBoxes
diff --git a/common/src/test/scala/objects/DoorTest.scala b/common/src/test/scala/objects/DoorTest.scala
index 73e55c00..76184282 100644
--- a/common/src/test/scala/objects/DoorTest.scala
+++ b/common/src/test/scala/objects/DoorTest.scala
@@ -7,13 +7,13 @@ import net.psforever.objects.serverobject.doors.{Door, DoorControl}
import net.psforever.objects.serverobject.structures.{Building, StructureType}
import net.psforever.objects.zones.Zone
import net.psforever.packet.game.{PlanetSideGUID, UseItemMessage}
-import net.psforever.types.{CharacterGender, PlanetSideEmpire, Vector3}
+import net.psforever.types.{CharacterGender, CharacterVoice, PlanetSideEmpire, Vector3}
import org.specs2.mutable.Specification
import scala.concurrent.duration.Duration
class DoorTest extends Specification {
- val player = Player(Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, 0))
+ val player = Player(Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
"Door" should {
"construct" in {
@@ -123,6 +123,6 @@ object DoorControlTest {
door.Actor = system.actorOf(Props(classOf[DoorControl], door), "door")
door.Owner = new Building(0, Zone.Nowhere, StructureType.Building)
door.Owner.Faction = faction
- (Player(Avatar("test", faction, CharacterGender.Male, 0, 0)), door)
+ (Player(Avatar("test", faction, CharacterGender.Male, 0, CharacterVoice.Mute)), door)
}
}
diff --git a/common/src/test/scala/objects/IFFLockTest.scala b/common/src/test/scala/objects/IFFLockTest.scala
index 5cd66613..9ac7044d 100644
--- a/common/src/test/scala/objects/IFFLockTest.scala
+++ b/common/src/test/scala/objects/IFFLockTest.scala
@@ -8,7 +8,7 @@ import net.psforever.objects.serverobject.locks.{IFFLock, IFFLockControl}
import net.psforever.objects.serverobject.structures.{Building, StructureType}
import net.psforever.objects.zones.Zone
import net.psforever.packet.game.PlanetSideGUID
-import net.psforever.types.{CharacterGender, PlanetSideEmpire}
+import net.psforever.types.{CharacterGender, CharacterVoice, PlanetSideEmpire}
import org.specs2.mutable.Specification
class IFFLockTest extends Specification {
@@ -69,6 +69,6 @@ object IFFLockControlTest {
lock.Actor = system.actorOf(Props(classOf[IFFLockControl], lock), "lock-control")
lock.Owner = new Building(0, Zone.Nowhere, StructureType.Building)
lock.Owner.Faction = faction
- (Player(Avatar("test", faction, CharacterGender.Male, 0, 0)), lock)
+ (Player(Avatar("test", faction, CharacterGender.Male, 0, CharacterVoice.Mute)), lock)
}
}
diff --git a/common/src/test/scala/objects/LoadoutTest.scala b/common/src/test/scala/objects/LoadoutTest.scala
index 5ddb448e..a5b98381 100644
--- a/common/src/test/scala/objects/LoadoutTest.scala
+++ b/common/src/test/scala/objects/LoadoutTest.scala
@@ -3,12 +3,12 @@ package objects
import net.psforever.objects._
import net.psforever.objects.loadouts._
-import net.psforever.types.{CharacterGender, ExoSuitType, PlanetSideEmpire}
+import net.psforever.types.{CharacterGender, CharacterVoice, ExoSuitType, PlanetSideEmpire}
import net.psforever.objects.GlobalDefinitions._
import org.specs2.mutable._
class LoadoutTest extends Specification {
- val avatar = Avatar("TestCharacter", PlanetSideEmpire.VS, CharacterGender.Female, 41, 1)
+ val avatar = Avatar("TestCharacter", PlanetSideEmpire.VS, CharacterGender.Female, 41, CharacterVoice.Voice1)
def CreatePlayer() : Player = {
new Player(avatar) {
diff --git a/common/src/test/scala/objects/MountableTest.scala b/common/src/test/scala/objects/MountableTest.scala
index 56fe1f83..841069d6 100644
--- a/common/src/test/scala/objects/MountableTest.scala
+++ b/common/src/test/scala/objects/MountableTest.scala
@@ -8,7 +8,7 @@ import net.psforever.objects.serverobject.mount.{Mountable, MountableBehavior}
import net.psforever.objects.serverobject.PlanetSideServerObject
import net.psforever.objects.vehicles.Seat
import net.psforever.packet.game.PlanetSideGUID
-import net.psforever.types.{CharacterGender, PlanetSideEmpire}
+import net.psforever.types.{CharacterGender, CharacterVoice, PlanetSideEmpire}
import scala.concurrent.duration.Duration
@@ -25,7 +25,7 @@ class MountableControl1Test extends ActorTest() {
class MountableControl2Test extends ActorTest() {
"MountableControl" should {
"let a player mount" in {
- val player = Player(Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, 0))
+ val player = Player(Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
val obj = new MountableTest.MountableTestObject
obj.Actor = system.actorOf(Props(classOf[MountableTest.MountableTestControl], obj), "mountable")
val msg = Mountable.TryMount(player, 0)
@@ -46,8 +46,8 @@ class MountableControl2Test extends ActorTest() {
class MountableControl3Test extends ActorTest() {
"MountableControl" should {
"block a player from mounting" in {
- val player1 = Player(Avatar("test1", PlanetSideEmpire.TR, CharacterGender.Male, 0, 0))
- val player2 = Player(Avatar("test2", PlanetSideEmpire.TR, CharacterGender.Male, 0, 0))
+ val player1 = Player(Avatar("test1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
+ val player2 = Player(Avatar("test2", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
val obj = new MountableTest.MountableTestObject
obj.Actor = system.actorOf(Props(classOf[MountableTest.MountableTestControl], obj), "mountable")
obj.Actor ! Mountable.TryMount(player1, 0)
diff --git a/common/src/test/scala/objects/PlayerTest.scala b/common/src/test/scala/objects/PlayerTest.scala
index 416eba4d..4e4d367a 100644
--- a/common/src/test/scala/objects/PlayerTest.scala
+++ b/common/src/test/scala/objects/PlayerTest.scala
@@ -6,19 +6,19 @@ import net.psforever.objects._
import net.psforever.objects.definition.{ImplantDefinition, SimpleItemDefinition}
import net.psforever.objects.equipment.EquipmentSize
import net.psforever.packet.game.PlanetSideGUID
-import net.psforever.types.{CharacterGender, ExoSuitType, ImplantType, PlanetSideEmpire}
+import net.psforever.types._
import org.specs2.mutable._
import scala.util.Success
class PlayerTest extends Specification {
- def TestPlayer(name : String, faction : PlanetSideEmpire.Value, sex : CharacterGender.Value, head : Int, voice : Int) : Player = {
+ def TestPlayer(name : String, faction : PlanetSideEmpire.Value, sex : CharacterGender.Value, head : Int, voice : CharacterVoice.Value) : Player = {
new Player(Avatar(name, faction, sex, head, voice))
}
"Player" should {
"construct" in {
- val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
obj.isAlive mustEqual false
obj.FacingYawUpper mustEqual 0
obj.Jumping mustEqual false
@@ -36,27 +36,27 @@ class PlayerTest extends Specification {
}
"different players" in {
- (TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5) ==
- TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)) mustEqual true
+ (TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5) ==
+ TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)) mustEqual true
- (TestPlayer("Chord1", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5) ==
- TestPlayer("Chord2", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)) mustEqual false
+ (TestPlayer("Chord1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5) ==
+ TestPlayer("Chord2", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)) mustEqual false
- (TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5) ==
- TestPlayer("Chord", PlanetSideEmpire.NC, CharacterGender.Male, 0, 5)) mustEqual false
+ (TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5) ==
+ TestPlayer("Chord", PlanetSideEmpire.NC, CharacterGender.Male, 0, CharacterVoice.Voice5)) mustEqual false
- (TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5) ==
- TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Female, 0, 5)) mustEqual false
+ (TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5) ==
+ TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Female, 0, CharacterVoice.Voice5)) mustEqual false
- (TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5) ==
- TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 1, 5)) mustEqual false
+ (TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5) ==
+ TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 1, CharacterVoice.Voice5)) mustEqual false
- (TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5) ==
- TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 6)) mustEqual false
+ (TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5) ==
+ TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice4)) mustEqual false
}
"(re)spawn" in {
- val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
obj.isAlive mustEqual false
obj.Health mustEqual 0
obj.Stamina mustEqual 0
@@ -72,7 +72,7 @@ class PlayerTest extends Specification {
}
"will not (re)spawn if not dead" in {
- val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
obj.Spawn
obj.Health mustEqual 100
obj.Armor mustEqual 50
@@ -88,7 +88,7 @@ class PlayerTest extends Specification {
}
"can die" in {
- val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
obj.Spawn
obj.Armor = 35 //50 -> 35
obj.isAlive mustEqual true
@@ -103,7 +103,7 @@ class PlayerTest extends Specification {
}
"can not become a backpack if alive" in {
- val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
obj.Spawn
obj.isAlive mustEqual true
obj.isBackpack mustEqual false
@@ -113,7 +113,7 @@ class PlayerTest extends Specification {
}
"can become a backpack" in {
- val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
obj.isAlive mustEqual false
obj.isBackpack mustEqual false
obj.Release
@@ -122,7 +122,7 @@ class PlayerTest extends Specification {
}
"set new maximum values (health, stamina)" in {
- val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
obj.MaxHealth mustEqual 100
obj.MaxStamina mustEqual 100
obj.MaxHealth = 123
@@ -133,7 +133,7 @@ class PlayerTest extends Specification {
}
"set new values (health, armor, stamina) but only when alive" in {
- val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
obj.Health = 23
obj.Armor = 34
obj.Stamina = 45
@@ -154,7 +154,7 @@ class PlayerTest extends Specification {
}
"has visible slots" in {
- val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
obj.VisibleSlots mustEqual Set(0,2,4) //Standard
obj.ExoSuit = ExoSuitType.Agile
obj.VisibleSlots mustEqual Set(0,1,2,4)
@@ -167,7 +167,7 @@ class PlayerTest extends Specification {
}
"init (Standard Exo-Suit)" in {
- val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
obj.ExoSuit mustEqual ExoSuitType.Standard
obj.Slot(0).Size mustEqual EquipmentSize.Pistol
obj.Slot(1).Size mustEqual EquipmentSize.Blocked
@@ -181,7 +181,7 @@ class PlayerTest extends Specification {
"draw equipped holsters only" in {
val wep = SimpleItem(SimpleItemDefinition(149))
- val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
obj.Slot(1).Size = EquipmentSize.Pistol
obj.Slot(1).Equipment = wep
obj.DrawnSlot mustEqual Player.HandsDownSlot
@@ -194,7 +194,7 @@ class PlayerTest extends Specification {
"remember the last drawn holster" in {
val wep1 = SimpleItem(SimpleItemDefinition(149))
val wep2 = SimpleItem(SimpleItemDefinition(149))
- val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
obj.Slot(0).Size = EquipmentSize.Pistol
obj.Slot(0).Equipment = wep1
obj.Slot(1).Size = EquipmentSize.Pistol
@@ -233,7 +233,7 @@ class PlayerTest extends Specification {
"hold something in their free hand" in {
val wep = SimpleItem(SimpleItemDefinition(149))
- val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
obj.Slot(Player.FreeHandSlot).Equipment = wep
obj.Slot(Player.FreeHandSlot).Equipment.get.Definition.ObjectId mustEqual 149
@@ -241,14 +241,14 @@ class PlayerTest extends Specification {
"provide an invalid hand that can not hold anything" in {
val wep = SimpleItem(SimpleItemDefinition(149))
- val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
obj.Slot(-1).Equipment = wep
obj.Slot(-1).Equipment mustEqual None
}
"search for the smallest available slot in which to store equipment" in {
- val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
obj.Inventory.Resize(3,3) //fits one item
obj.Fit(Tool(GlobalDefinitions.beamer)) mustEqual Some(0)
@@ -266,7 +266,7 @@ class PlayerTest extends Specification {
}
"can use their free hand to hold things" in {
- val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
val ammo = AmmoBox(GlobalDefinitions.bullet_9mm)
obj.FreeHand.Equipment mustEqual None
@@ -275,12 +275,12 @@ class PlayerTest extends Specification {
}
"can access the player's locker-space" in {
- val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
obj.Slot(5).Equipment.get.isInstanceOf[LockerContainer] mustEqual true
}
"can find equipment" in {
- val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
obj.Slot(0).Equipment = {
val item = Tool(beamer)
item.GUID = PlanetSideGUID(1)
@@ -316,7 +316,7 @@ class PlayerTest extends Specification {
}
"does equipment collision checking (are we already holding something there?)" in {
- val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
val item1 = Tool(beamer)
val item2 = Kit(medkit)
val item3 = AmmoBox(GlobalDefinitions.bullet_9mm)
@@ -356,7 +356,7 @@ class PlayerTest extends Specification {
}
"battle experience point values of the avatar" in {
- val avatar = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val avatar = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
val player = Player(avatar)
player.BEP mustEqual avatar.BEP
@@ -365,7 +365,7 @@ class PlayerTest extends Specification {
}
"command experience point values of the avatar" in {
- val avatar = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val avatar = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
val player = Player(avatar)
player.CEP mustEqual avatar.CEP
@@ -374,14 +374,14 @@ class PlayerTest extends Specification {
}
"can get a quick summary of implant slots (default)" in {
- val avatar = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val avatar = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
val player = Player(avatar)
player.Implants mustEqual Array.empty
}
"can get a quick summary of implant slots (two unlocked, one installed)" in {
- val avatar = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val avatar = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
val player = Player(avatar)
val temp = new ImplantDefinition(1)
avatar.Implants(0).Unlocked = true
@@ -404,7 +404,7 @@ class PlayerTest extends Specification {
}
"can get a quick summary of implant slots (all unlocked, first two installed)" in {
- val avatar = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val avatar = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
val player = Player(avatar)
avatar.Implants(0).Unlocked = true
avatar.InstallImplant(new ImplantDefinition(1))
@@ -435,7 +435,7 @@ class PlayerTest extends Specification {
}
"seat in a vehicle" in {
- val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
obj.VehicleSeated mustEqual None
obj.VehicleSeated = PlanetSideGUID(65)
obj.VehicleSeated mustEqual Some(PlanetSideGUID(65))
@@ -444,7 +444,7 @@ class PlayerTest extends Specification {
}
"own in a vehicle" in {
- val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
obj.VehicleOwned mustEqual None
obj.VehicleOwned = PlanetSideGUID(65)
obj.VehicleOwned mustEqual Some(PlanetSideGUID(65))
@@ -453,21 +453,21 @@ class PlayerTest extends Specification {
}
"remember what zone he is in" in {
- val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
obj.Continent mustEqual "home2"
obj.Continent = "ugd01"
obj.Continent mustEqual "ugd01"
}
"special is typically normal and can not be changed from normal" in {
- val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
obj.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
obj.UsingSpecial = SpecialExoSuitDefinition.Mode.Shielded
obj.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
}
"a TR MAX can change its special to Overdrive or Anchored" in {
- val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
obj.ExoSuit = ExoSuitType.MAX
obj.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
obj.UsingSpecial = SpecialExoSuitDefinition.Mode.Anchored
@@ -482,7 +482,7 @@ class PlayerTest extends Specification {
}
"an NC MAX can change its special to Shielded" in {
- val obj = TestPlayer("Chord", PlanetSideEmpire.NC, CharacterGender.Male, 0, 5)
+ val obj = TestPlayer("Chord", PlanetSideEmpire.NC, CharacterGender.Male, 0, CharacterVoice.Voice5)
obj.ExoSuit = ExoSuitType.MAX
obj.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
obj.UsingSpecial = SpecialExoSuitDefinition.Mode.Shielded
@@ -492,13 +492,13 @@ class PlayerTest extends Specification {
}
"one faction can not use the other's specials" in {
- val objtr = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val objtr = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
objtr.ExoSuit = ExoSuitType.MAX
objtr.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
objtr.UsingSpecial = SpecialExoSuitDefinition.Mode.Shielded
objtr.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
- val objnc = TestPlayer("Chord", PlanetSideEmpire.NC, CharacterGender.Male, 0, 5)
+ val objnc = TestPlayer("Chord", PlanetSideEmpire.NC, CharacterGender.Male, 0, CharacterVoice.Voice5)
objnc.ExoSuit = ExoSuitType.MAX
objnc.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
objnc.UsingSpecial = SpecialExoSuitDefinition.Mode.Overdrive
@@ -508,7 +508,7 @@ class PlayerTest extends Specification {
}
"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, 5)
+ val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
obj.ExoSuit = ExoSuitType.MAX
obj.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
obj.UsingSpecial = SpecialExoSuitDefinition.Mode.Anchored
@@ -522,7 +522,7 @@ class PlayerTest extends Specification {
}
"toString" in {
- val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
obj.toString mustEqual "TR Chord 0/100 0/50"
obj.GUID = PlanetSideGUID(455)
diff --git a/common/src/test/scala/objects/VehicleSpawnPadTest.scala b/common/src/test/scala/objects/VehicleSpawnPadTest.scala
index 8e3f240c..e2693030 100644
--- a/common/src/test/scala/objects/VehicleSpawnPadTest.scala
+++ b/common/src/test/scala/objects/VehicleSpawnPadTest.scala
@@ -9,7 +9,7 @@ import net.psforever.objects.serverobject.structures.StructureType
import net.psforever.objects.{Avatar, GlobalDefinitions, Player, Vehicle}
import net.psforever.objects.zones.Zone
import net.psforever.packet.game.PlanetSideGUID
-import net.psforever.types.{PlanetSideEmpire, Vector3}
+import net.psforever.types.{CharacterVoice, PlanetSideEmpire, Vector3}
import org.specs2.mutable.Specification
import scala.concurrent.duration._
@@ -263,12 +263,12 @@ class VehicleSpawnControl5Test extends ActorTest() {
val probe3Msg4 = probe3.receiveOne(3 seconds)
assert(probe3Msg4.isInstanceOf[VehicleSpawnPad.DetachFromRails])
- val probe1Msg1 = probe1.receiveOne(1 seconds)
- assert(probe1Msg1.isInstanceOf[VehicleSpawnPad.RevealPlayer])
+ val probe3Msg5 = probe3.receiveOne(1 seconds)
+ assert(probe3Msg5.isInstanceOf[VehicleSpawnPad.RevealPlayer])
- val probe1Msg2 = probe1.receiveOne(12 seconds)
- assert(probe1Msg2.isInstanceOf[VehicleSpawnPad.PeriodicReminder])
- assert(probe1Msg2.asInstanceOf[VehicleSpawnPad.PeriodicReminder].reason == VehicleSpawnPad.Reminders.Blocked)
+ val probe1Msg = probe1.receiveOne(12 seconds)
+ assert(probe1Msg.isInstanceOf[VehicleSpawnPad.PeriodicReminder])
+ assert(probe1Msg.asInstanceOf[VehicleSpawnPad.PeriodicReminder].reason == VehicleSpawnPad.Reminders.Blocked)
}
}
}
@@ -300,8 +300,8 @@ class VehicleSpawnControl6Test extends ActorTest() {
val probe3Msg4 = probe3.receiveOne(3 seconds)
assert(probe3Msg4.isInstanceOf[VehicleSpawnPad.DetachFromRails])
- val probe1Msg2 = probe1.receiveOne(3 seconds)
- assert(probe1Msg2.isInstanceOf[VehicleSpawnPad.RevealPlayer])
+ val probe3Msg5 = probe3.receiveOne(3 seconds)
+ assert(probe3Msg5.isInstanceOf[VehicleSpawnPad.RevealPlayer])
val probe1Msg3 = probe1.receiveOne(12 seconds)
assert(probe1Msg3.isInstanceOf[VehicleSpawnPad.PeriodicReminder])
@@ -340,7 +340,7 @@ object VehicleSpawnPadControlTest {
pad.Actor = system.actorOf(Props(classOf[VehicleSpawnControl], pad), s"test-pad-${System.nanoTime()}")
pad.Owner = new Building(0, zone, StructureType.Building)
pad.Owner.Faction = faction
- val player = Player(Avatar("test", faction, CharacterGender.Male, 0, 0))
+ val player = Player(Avatar("test", faction, CharacterGender.Male, 0, CharacterVoice.Mute))
player.GUID = PlanetSideGUID(10)
player.Continent = zone.Id
player.Spawn
diff --git a/common/src/test/scala/objects/VehicleTest.scala b/common/src/test/scala/objects/VehicleTest.scala
index e0495c4a..1467b4ae 100644
--- a/common/src/test/scala/objects/VehicleTest.scala
+++ b/common/src/test/scala/objects/VehicleTest.scala
@@ -7,7 +7,7 @@ import net.psforever.objects.definition.{SeatDefinition, VehicleDefinition}
import net.psforever.objects.serverobject.mount.Mountable
import net.psforever.objects.vehicles._
import net.psforever.packet.game.PlanetSideGUID
-import net.psforever.types.ExoSuitType
+import net.psforever.types.{CharacterVoice, ExoSuitType}
import org.specs2.mutable._
import scala.concurrent.duration.Duration
@@ -361,6 +361,6 @@ class VehicleControl2Test extends ActorTest {
object VehicleTest {
import net.psforever.objects.Avatar
import net.psforever.types.{CharacterGender, PlanetSideEmpire}
- val avatar1 = Avatar("test1", PlanetSideEmpire.TR, CharacterGender.Male, 0, 0)
- val avatar2 = Avatar("test2", PlanetSideEmpire.TR, CharacterGender.Male, 0, 0)
+ val avatar1 = Avatar("test1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)
+ val avatar2 = Avatar("test2", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)
}
diff --git a/common/src/test/scala/objects/ZoneTest.scala b/common/src/test/scala/objects/ZoneTest.scala
index 70642ee9..3804825d 100644
--- a/common/src/test/scala/objects/ZoneTest.scala
+++ b/common/src/test/scala/objects/ZoneTest.scala
@@ -12,7 +12,7 @@ import net.psforever.objects.serverobject.terminals.Terminal
import net.psforever.objects.serverobject.tube.SpawnTube
import net.psforever.objects._
import net.psforever.packet.game.PlanetSideGUID
-import net.psforever.types.{CharacterGender, PlanetSideEmpire, Vector3}
+import net.psforever.types.{CharacterGender, CharacterVoice, PlanetSideEmpire, Vector3}
import net.psforever.objects.serverobject.structures.{Building, FoundationBuilder, StructureType}
import net.psforever.objects.zones.{Zone, ZoneActor, ZoneMap}
import net.psforever.objects.Vehicle
@@ -185,7 +185,7 @@ class ZoneActorTest extends ActorTest {
zone.Actor = system.actorOf(Props(classOf[ZoneActor], zone), "test-spawn")
zone.Actor ! Zone.Init()
expectNoMsg(Duration.create(300, "ms"))
- val player = Player(Avatar("Chord", PlanetSideEmpire.NEUTRAL, CharacterGender.Male, 0, 5))
+ val player = Player(Avatar("Chord", PlanetSideEmpire.NEUTRAL, CharacterGender.Male, 0, CharacterVoice.Voice5))
val bldg1 = zone.Building(1).get
val bldg3 = zone.Building(3).get
@@ -216,7 +216,7 @@ class ZoneActorTest extends ActorTest {
zone.Actor = system.actorOf(Props(classOf[ZoneActor], zone), "test-no-spawn")
zone.Actor ! Zone.Init()
expectNoMsg(Duration.create(300, "ms"))
- val player = Player(Avatar("Chord", PlanetSideEmpire.NEUTRAL, CharacterGender.Male, 0, 5))
+ val player = Player(Avatar("Chord", PlanetSideEmpire.NEUTRAL, CharacterGender.Male, 0, CharacterVoice.Voice5))
zone.Actor ! Zone.Lattice.RequestSpawnPoint(1, player, 7)
val reply = receiveOne(Duration.create(200, "ms"))
@@ -234,7 +234,7 @@ class ZonePopulationTest extends ActorTest {
"ZonePopulationActor" should {
"add new user to zones" in {
val zone = new Zone("test", new ZoneMap(""), 0)
- val avatar = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val avatar = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
system.actorOf(Props(classOf[ZoneTest.ZoneInitActor], zone), TestName) ! "!"
receiveOne(Duration.create(200, "ms")) //consume
@@ -249,7 +249,7 @@ class ZonePopulationTest extends ActorTest {
"remove user from zones" in {
val zone = new Zone("test", new ZoneMap(""), 0)
- val avatar = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val avatar = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
system.actorOf(Props(classOf[ZoneTest.ZoneInitActor], zone), TestName) ! "!"
receiveOne(Duration.create(200, "ms")) //consume
zone.Population ! Zone.Population.Join(avatar)
@@ -264,7 +264,7 @@ class ZonePopulationTest extends ActorTest {
"associate user with a character" in {
val zone = new Zone("test", new ZoneMap(""), 0)
- val avatar = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val avatar = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
val player = Player(avatar)
system.actorOf(Props(classOf[ZoneTest.ZoneInitActor], zone), TestName) ! "!"
receiveOne(Duration.create(200, "ms")) //consume
@@ -284,7 +284,7 @@ class ZonePopulationTest extends ActorTest {
"disassociate character from a user" in {
val zone = new Zone("test", new ZoneMap(""), 0)
- val avatar = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val avatar = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
val player = Player(avatar)
system.actorOf(Props(classOf[ZoneTest.ZoneInitActor], zone), TestName) ! "!"
receiveOne(Duration.create(200, "ms")) //consume
@@ -306,7 +306,7 @@ class ZonePopulationTest extends ActorTest {
"user tries to Leave, but still has an associated character" in {
val zone = new Zone("test", new ZoneMap(""), 0)
- val avatar = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val avatar = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
val player = Player(avatar)
system.actorOf(Props(classOf[ZoneTest.ZoneInitActor], zone), TestName) ! "!"
receiveOne(Duration.create(500, "ms")) //consume
@@ -330,7 +330,7 @@ class ZonePopulationTest extends ActorTest {
"user tries to Spawn a character, but an associated character already exists" in {
val zone = new Zone("test", new ZoneMap(""), 0)
- val avatar = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val avatar = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
val player1 = Player(avatar)
val player2 = Player(avatar)
system.actorOf(Props(classOf[ZoneTest.ZoneInitActor], zone), TestName) ! "!"
@@ -356,7 +356,7 @@ class ZonePopulationTest extends ActorTest {
"user tries to Spawn a character, but did not Join first" in {
val zone = new Zone("test", new ZoneMap(""), 0)
- val avatar = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val avatar = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
val player = Player(avatar)
system.actorOf(Props(classOf[ZoneTest.ZoneInitActor], zone), TestName) ! "!"
receiveOne(Duration.create(200, "ms")) //consume
@@ -374,7 +374,7 @@ class ZonePopulationTest extends ActorTest {
"user tries to Release a character, but did not Spawn a character first" in {
val zone = new Zone("test", new ZoneMap(""), 0)
- val avatar = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
+ val avatar = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
system.actorOf(Props(classOf[ZoneTest.ZoneInitActor], zone), TestName) ! "!"
receiveOne(Duration.create(200, "ms")) //consume
zone.Population ! Zone.Population.Join(avatar)
@@ -395,7 +395,7 @@ class ZonePopulationTest extends ActorTest {
"user adds character to list of retired characters" in {
val zone = new Zone("test", new ZoneMap(""), 0)
- val player = Player(Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5))
+ val player = Player(Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5))
player.Release
system.actorOf(Props(classOf[ZoneTest.ZoneInitActor], zone), TestName) ! "!"
receiveOne(Duration.create(200, "ms")) //consume
@@ -409,7 +409,7 @@ class ZonePopulationTest extends ActorTest {
"user removes character from the list of retired characters" in {
val zone = new Zone("test", new ZoneMap(""), 0)
- val player = Player(Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5))
+ val player = Player(Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5))
player.Release
system.actorOf(Props(classOf[ZoneTest.ZoneInitActor], zone), TestName) ! "!"
receiveOne(Duration.create(200, "ms")) //consume
@@ -425,11 +425,11 @@ class ZonePopulationTest extends ActorTest {
"user removes THE CORRECT character from the list of retired characters" in {
val zone = new Zone("test", new ZoneMap(""), 0)
- val player1 = Player(Avatar("Chord1", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5))
+ val player1 = Player(Avatar("Chord1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5))
player1.Release
- val player2 = Player(Avatar("Chord2", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5))
+ val player2 = Player(Avatar("Chord2", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5))
player2.Release
- val player3 = Player(Avatar("Chord3", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5))
+ val player3 = Player(Avatar("Chord3", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5))
player3.Release
system.actorOf(Props(classOf[ZoneTest.ZoneInitActor], zone), TestName) ! "!"
receiveOne(Duration.create(200, "ms")) //consume
@@ -451,7 +451,7 @@ class ZonePopulationTest extends ActorTest {
"user tries to add character to list of retired characters, but is not in correct state" in {
val zone = new Zone("test", new ZoneMap(""), 0)
- val player = Player(Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5))
+ val player = Player(Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5))
//player.Release !!important
system.actorOf(Props(classOf[ZoneTest.ZoneInitActor], zone), "testC") ! "!"
receiveOne(Duration.create(500, "ms")) //consume
diff --git a/common/src/test/scala/objects/guidtask/GUIDTaskRegister5Test.scala b/common/src/test/scala/objects/guidtask/GUIDTaskRegister5Test.scala
index 0a19c67d..c18987ef 100644
--- a/common/src/test/scala/objects/guidtask/GUIDTaskRegister5Test.scala
+++ b/common/src/test/scala/objects/guidtask/GUIDTaskRegister5Test.scala
@@ -3,13 +3,13 @@ package objects.guidtask
import net.psforever.objects._
import net.psforever.objects.guid.{GUIDTask, TaskResolver}
-import net.psforever.types.{CharacterGender, PlanetSideEmpire}
+import net.psforever.types.{CharacterGender, CharacterVoice, PlanetSideEmpire}
import objects.ActorTest
class GUIDTaskRegister5Test extends ActorTest() {
"RegisterAvatar" in {
val (_, uns, taskResolver, probe) = GUIDTaskTest.CommonTestSetup
- val obj = Player(Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, 0))
+ val obj = Player(Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
val obj_wep = Tool(GlobalDefinitions.beamer)
obj.Slot(0).Equipment = obj_wep
val obj_wep_ammo = AmmoBox(GlobalDefinitions.energy_cell)
diff --git a/common/src/test/scala/objects/guidtask/GUIDTaskRegister6Test.scala b/common/src/test/scala/objects/guidtask/GUIDTaskRegister6Test.scala
index 091ea62f..e6806cbd 100644
--- a/common/src/test/scala/objects/guidtask/GUIDTaskRegister6Test.scala
+++ b/common/src/test/scala/objects/guidtask/GUIDTaskRegister6Test.scala
@@ -3,13 +3,13 @@ package objects.guidtask
import net.psforever.objects._
import net.psforever.objects.guid.{GUIDTask, TaskResolver}
-import net.psforever.types.{CharacterGender, PlanetSideEmpire}
+import net.psforever.types.{CharacterGender, CharacterVoice, PlanetSideEmpire}
import objects.ActorTest
class GUIDTaskRegister6Test extends ActorTest() {
"RegisterPlayer" in {
val (_, uns, taskResolver, probe) = GUIDTaskTest.CommonTestSetup
- val obj = Player(Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, 0))
+ val obj = Player(Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
val obj_wep = Tool(GlobalDefinitions.beamer)
obj.Slot(0).Equipment = obj_wep
val obj_wep_ammo = AmmoBox(GlobalDefinitions.energy_cell)
diff --git a/common/src/test/scala/objects/guidtask/GUIDTaskUnregister5Test.scala b/common/src/test/scala/objects/guidtask/GUIDTaskUnregister5Test.scala
index 15cef74e..a9bba717 100644
--- a/common/src/test/scala/objects/guidtask/GUIDTaskUnregister5Test.scala
+++ b/common/src/test/scala/objects/guidtask/GUIDTaskUnregister5Test.scala
@@ -3,13 +3,13 @@ package objects.guidtask
import net.psforever.objects._
import net.psforever.objects.guid.{GUIDTask, TaskResolver}
-import net.psforever.types.{CharacterGender, PlanetSideEmpire}
+import net.psforever.types.{CharacterGender, CharacterVoice, PlanetSideEmpire}
import objects.ActorTest
class GUIDTaskUnregister5Test extends ActorTest() {
"UnregisterAvatar" in {
val (guid, uns, taskResolver, probe) = GUIDTaskTest.CommonTestSetup
- val obj = Player(Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, 0))
+ val obj = Player(Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
val obj_wep = Tool(GlobalDefinitions.beamer)
obj.Slot(0).Equipment = obj_wep
val obj_wep_ammo = AmmoBox(GlobalDefinitions.energy_cell)
diff --git a/common/src/test/scala/objects/guidtask/GUIDTaskUnregister6Test.scala b/common/src/test/scala/objects/guidtask/GUIDTaskUnregister6Test.scala
index 718f460f..26e8ccfb 100644
--- a/common/src/test/scala/objects/guidtask/GUIDTaskUnregister6Test.scala
+++ b/common/src/test/scala/objects/guidtask/GUIDTaskUnregister6Test.scala
@@ -3,13 +3,13 @@ package objects.guidtask
import net.psforever.objects._
import net.psforever.objects.guid.{GUIDTask, TaskResolver}
-import net.psforever.types.{CharacterGender, PlanetSideEmpire}
+import net.psforever.types.{CharacterGender, CharacterVoice, PlanetSideEmpire}
import objects.ActorTest
class GUIDTaskUnregister6Test extends ActorTest() {
"UnregisterPlayer" in {
val (guid, uns, taskResolver, probe) = GUIDTaskTest.CommonTestSetup
- val obj = Player(Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, 0))
+ val obj = Player(Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
val obj_wep = Tool(GlobalDefinitions.beamer)
obj.Slot(0).Equipment = obj_wep
val obj_wep_ammo = AmmoBox(GlobalDefinitions.energy_cell)
diff --git a/common/src/test/scala/objects/terminal/AirVehicleTerminalTest.scala b/common/src/test/scala/objects/terminal/AirVehicleTerminalTest.scala
index b635ad5d..8ea5ae6a 100644
--- a/common/src/test/scala/objects/terminal/AirVehicleTerminalTest.scala
+++ b/common/src/test/scala/objects/terminal/AirVehicleTerminalTest.scala
@@ -7,12 +7,12 @@ import net.psforever.objects.{Avatar, GlobalDefinitions, Player}
import net.psforever.objects.serverobject.terminals.Terminal
import net.psforever.objects.zones.Zone
import net.psforever.packet.game.{ItemTransactionMessage, PlanetSideGUID}
-import net.psforever.types.{CharacterGender, PlanetSideEmpire, TransactionType}
+import net.psforever.types.{CharacterGender, CharacterVoice, PlanetSideEmpire, TransactionType}
import org.specs2.mutable.Specification
class AirVehicleTerminalTest extends Specification {
"Air_Vehicle_Terminal" should {
- val player = Player(Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, 0))
+ val player = Player(Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
val terminal = Terminal(GlobalDefinitions.air_vehicle_terminal)
terminal.Owner = new Building(0, Zone.Nowhere, StructureType.Building)
terminal.Owner.Faction = PlanetSideEmpire.TR
diff --git a/common/src/test/scala/objects/terminal/CertTerminalTest.scala b/common/src/test/scala/objects/terminal/CertTerminalTest.scala
index c9791c9e..67682396 100644
--- a/common/src/test/scala/objects/terminal/CertTerminalTest.scala
+++ b/common/src/test/scala/objects/terminal/CertTerminalTest.scala
@@ -12,7 +12,7 @@ import org.specs2.mutable.Specification
class CertTerminalTest extends Specification {
"Cert_Terminal" should {
- val player = Player(Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, 0))
+ val player = Player(Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
val terminal = Terminal(GlobalDefinitions.cert_terminal)
terminal.Owner = new Building(0, Zone.Nowhere, StructureType.Building)
terminal.Owner.Faction = PlanetSideEmpire.TR
diff --git a/common/src/test/scala/objects/terminal/DropshipVehicleTerminalTest.scala b/common/src/test/scala/objects/terminal/DropshipVehicleTerminalTest.scala
index ef6c621b..3ad3df33 100644
--- a/common/src/test/scala/objects/terminal/DropshipVehicleTerminalTest.scala
+++ b/common/src/test/scala/objects/terminal/DropshipVehicleTerminalTest.scala
@@ -7,12 +7,12 @@ import net.psforever.objects.{Avatar, GlobalDefinitions, Player}
import net.psforever.objects.serverobject.terminals.Terminal
import net.psforever.objects.zones.Zone
import net.psforever.packet.game.{ItemTransactionMessage, PlanetSideGUID}
-import net.psforever.types.{CharacterGender, PlanetSideEmpire, TransactionType}
+import net.psforever.types.{CharacterGender, CharacterVoice, PlanetSideEmpire, TransactionType}
import org.specs2.mutable.Specification
class DropshipVehicleTerminalTest extends Specification {
"Dropship_Vehicle_Terminal" should {
- val player = Player(Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, 0))
+ val player = Player(Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
val terminal = Terminal(GlobalDefinitions.dropship_vehicle_terminal)
terminal.Owner = new Building(0, Zone.Nowhere, StructureType.Building)
terminal.Owner.Faction = PlanetSideEmpire.TR
diff --git a/common/src/test/scala/objects/terminal/GroundVehicleTerminalTest.scala b/common/src/test/scala/objects/terminal/GroundVehicleTerminalTest.scala
index ee88b602..680d4752 100644
--- a/common/src/test/scala/objects/terminal/GroundVehicleTerminalTest.scala
+++ b/common/src/test/scala/objects/terminal/GroundVehicleTerminalTest.scala
@@ -7,12 +7,12 @@ import net.psforever.objects.{Avatar, GlobalDefinitions, Player}
import net.psforever.objects.serverobject.terminals.Terminal
import net.psforever.objects.zones.Zone
import net.psforever.packet.game.{ItemTransactionMessage, PlanetSideGUID}
-import net.psforever.types.{CharacterGender, PlanetSideEmpire, TransactionType}
+import net.psforever.types.{CharacterGender, CharacterVoice, PlanetSideEmpire, TransactionType}
import org.specs2.mutable.Specification
class GroundVehicleTerminalTest extends Specification {
"Ground_Vehicle_Terminal" should {
- val player = Player(Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, 0))
+ val player = Player(Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
val terminal = Terminal(GlobalDefinitions.ground_vehicle_terminal)
terminal.Owner = new Building(0, Zone.Nowhere, StructureType.Building)
terminal.Owner.Faction = PlanetSideEmpire.TR
diff --git a/common/src/test/scala/objects/terminal/ImplantTerminalInterfaceTest.scala b/common/src/test/scala/objects/terminal/ImplantTerminalInterfaceTest.scala
index 272815f7..461fef8f 100644
--- a/common/src/test/scala/objects/terminal/ImplantTerminalInterfaceTest.scala
+++ b/common/src/test/scala/objects/terminal/ImplantTerminalInterfaceTest.scala
@@ -7,12 +7,12 @@ import net.psforever.objects.{Avatar, GlobalDefinitions, Player}
import net.psforever.objects.serverobject.terminals.Terminal
import net.psforever.objects.zones.Zone
import net.psforever.packet.game.{ItemTransactionMessage, PlanetSideGUID}
-import net.psforever.types.{CharacterGender, PlanetSideEmpire, TransactionType}
+import net.psforever.types.{CharacterGender, CharacterVoice, PlanetSideEmpire, TransactionType}
import org.specs2.mutable.Specification
class ImplantTerminalInterfaceTest extends Specification {
"Implant_Terminal_Interface" should {
- val player = Player(Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, 0))
+ val player = Player(Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
val terminal = Terminal(GlobalDefinitions.implant_terminal_interface)
terminal.Owner = new Building(0, Zone.Nowhere, StructureType.Building)
terminal.Owner.Faction = PlanetSideEmpire.TR
diff --git a/common/src/test/scala/objects/terminal/ImplantTerminalMechTest.scala b/common/src/test/scala/objects/terminal/ImplantTerminalMechTest.scala
index 91993769..6bde119a 100644
--- a/common/src/test/scala/objects/terminal/ImplantTerminalMechTest.scala
+++ b/common/src/test/scala/objects/terminal/ImplantTerminalMechTest.scala
@@ -8,7 +8,7 @@ import net.psforever.objects.serverobject.implantmech.{ImplantTerminalMech, Impl
import net.psforever.objects.serverobject.structures.StructureType
import net.psforever.objects.vehicles.Seat
import net.psforever.objects.{Avatar, GlobalDefinitions, Player}
-import net.psforever.types.{CharacterGender, PlanetSideEmpire, Vector3}
+import net.psforever.types.{CharacterGender, CharacterVoice, PlanetSideEmpire, Vector3}
import objects.ActorTest
import org.specs2.mutable.Specification
@@ -45,7 +45,7 @@ class ImplantTerminalMechTest extends Specification {
}
"get passenger in a seat" in {
- val player = Player(Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, 0))
+ val player = Player(Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
val obj = ImplantTerminalMech(GlobalDefinitions.implant_terminal_mech)
obj.PassengerInSeat(player) mustEqual None
obj.Seats(0).Occupant = player
@@ -90,7 +90,7 @@ class ImplantTerminalMechControl3Test extends ActorTest() {
"ImplantTerminalMechControl" should {
"block a player from mounting" in {
val (player1, mech) = ImplantTerminalMechTest.SetUpAgents(PlanetSideEmpire.TR)
- val player2 = Player(Avatar("test2", PlanetSideEmpire.TR, CharacterGender.Male, 0, 0))
+ val player2 = Player(Avatar("test2", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
mech.Actor ! Mountable.TryMount(player1, 0)
receiveOne(Duration.create(100, "ms")) //consume reply
@@ -164,6 +164,6 @@ object ImplantTerminalMechTest {
terminal.Owner = new Building(0, Zone.Nowhere, StructureType.Building)
terminal.Owner.Faction = faction
terminal.GUID = PlanetSideGUID(1)
- (Player(Avatar("test", faction, CharacterGender.Male, 0, 0)), terminal)
+ (Player(Avatar("test", faction, CharacterGender.Male, 0, CharacterVoice.Mute)), terminal)
}
}
diff --git a/common/src/test/scala/objects/terminal/MatrixTerminalTest.scala b/common/src/test/scala/objects/terminal/MatrixTerminalTest.scala
index fbbb4d6e..15c3e7e4 100644
--- a/common/src/test/scala/objects/terminal/MatrixTerminalTest.scala
+++ b/common/src/test/scala/objects/terminal/MatrixTerminalTest.scala
@@ -60,7 +60,7 @@ class MatrixTerminalTest extends Specification {
}
"player can not buy (anything)" in {
- val player = Player(Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, 0))
+ val player = Player(Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
val msg = ItemTransactionMessage(PlanetSideGUID(1), TransactionType.Buy, 1, "lite_armor", 0, PlanetSideGUID(0))
terminal.Request(player, msg) mustEqual Terminal.NoDeal()
diff --git a/common/src/test/scala/objects/terminal/MedicalTerminalTest.scala b/common/src/test/scala/objects/terminal/MedicalTerminalTest.scala
index 86b39fe3..b27de07b 100644
--- a/common/src/test/scala/objects/terminal/MedicalTerminalTest.scala
+++ b/common/src/test/scala/objects/terminal/MedicalTerminalTest.scala
@@ -5,7 +5,7 @@ import akka.actor.ActorRef
import net.psforever.objects.serverobject.terminals.{MedicalTerminalDefinition, ProximityTerminal, Terminal}
import net.psforever.objects.{Avatar, GlobalDefinitions, Player}
import net.psforever.packet.game.{ItemTransactionMessage, PlanetSideGUID}
-import net.psforever.types.{CharacterGender, PlanetSideEmpire, TransactionType}
+import net.psforever.types.{CharacterGender, CharacterVoice, PlanetSideEmpire, TransactionType}
import org.specs2.mutable.Specification
class MedicalTerminalTest extends Specification {
@@ -81,7 +81,7 @@ class MedicalTerminalTest extends Specification {
"player can not interact with the proximity terminal normally (buy)" in {
val terminal = ProximityTerminal(GlobalDefinitions.medical_terminal)
- val player = Player(Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, 0))
+ val player = Player(Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
val msg = ItemTransactionMessage(PlanetSideGUID(1), TransactionType.Buy, 1, "lite_armor", 0, PlanetSideGUID(0))
terminal.Request(player, msg) mustEqual Terminal.NoDeal()
diff --git a/common/src/test/scala/objects/terminal/OrderTerminalABTest.scala b/common/src/test/scala/objects/terminal/OrderTerminalABTest.scala
index ee4b4a47..fcdaa498 100644
--- a/common/src/test/scala/objects/terminal/OrderTerminalABTest.scala
+++ b/common/src/test/scala/objects/terminal/OrderTerminalABTest.scala
@@ -47,14 +47,14 @@ class OrderTerminalABTest extends Specification {
}
"player can buy different armor ('lite_armor')" in {
- val player = Player(Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, 0))
+ val player = Player(Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
val msg = ItemTransactionMessage(PlanetSideGUID(1), TransactionType.Buy, 1, "lite_armor", 0, PlanetSideGUID(0))
terminal.Request(player, msg) mustEqual Terminal.BuyExosuit(ExoSuitType.Agile)
}
"player can buy max armor ('trhev_antiaircraft')" in {
- val player = Player(Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, 0))
+ val player = Player(Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
val msg = ItemTransactionMessage(PlanetSideGUID(1), TransactionType.Buy, 1, "trhev_antiaircraft", 0, PlanetSideGUID(0))
terminal.Request(player, msg) mustEqual Terminal.NoDeal()
@@ -62,7 +62,7 @@ class OrderTerminalABTest extends Specification {
//TODO loudout tests
"player can not load max loadout" in {
- val avatar = Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, 0)
+ val avatar = Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)
val player = Player(avatar)
avatar.SaveLoadout(player, "test1", 0)
player.ExoSuit = ExoSuitType.MAX
diff --git a/common/src/test/scala/objects/terminal/OrderTerminalTest.scala b/common/src/test/scala/objects/terminal/OrderTerminalTest.scala
index 76e30ba1..ccdc7531 100644
--- a/common/src/test/scala/objects/terminal/OrderTerminalTest.scala
+++ b/common/src/test/scala/objects/terminal/OrderTerminalTest.scala
@@ -12,7 +12,7 @@ import org.specs2.mutable.Specification
class OrderTerminalTest extends Specification {
"Order_Terminal" should {
- val player = Player(Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, 0))
+ val player = Player(Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
val terminal = Terminal(GlobalDefinitions.order_terminal)
terminal.Owner = new Building(0, Zone.Nowhere, StructureType.Building)
terminal.Owner.Faction = PlanetSideEmpire.TR
@@ -79,7 +79,7 @@ class OrderTerminalTest extends Specification {
}
"player can retrieve an infantry loadout" in {
- val avatar = Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, 0)
+ val avatar = Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)
val player2 = Player(avatar)
player2.ExoSuit = ExoSuitType.Agile
player2.Slot(0).Equipment = Tool(GlobalDefinitions.beamer)
@@ -99,7 +99,7 @@ class OrderTerminalTest extends Specification {
}
"player can not retrieve an infantry loadout from the wrong page" in {
- val avatar = Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, 0)
+ val avatar = Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)
val player2 = Player(avatar)
player2.ExoSuit = ExoSuitType.Agile
player2.Slot(0).Equipment = Tool(GlobalDefinitions.beamer)
@@ -111,7 +111,7 @@ class OrderTerminalTest extends Specification {
}
"player can not retrieve an infantry loadout from the wrong line" in {
- val avatar = Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, 0)
+ val avatar = Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)
val player2 = Player(avatar)
player2.ExoSuit = ExoSuitType.Agile
player2.Slot(0).Equipment = Tool(GlobalDefinitions.beamer)
diff --git a/common/src/test/scala/objects/terminal/ProximityTerminalControlTest.scala b/common/src/test/scala/objects/terminal/ProximityTerminalControlTest.scala
index a28235fe..bfd00c03 100644
--- a/common/src/test/scala/objects/terminal/ProximityTerminalControlTest.scala
+++ b/common/src/test/scala/objects/terminal/ProximityTerminalControlTest.scala
@@ -6,7 +6,7 @@ import net.psforever.objects.serverobject.CommonMessages
import net.psforever.objects.{Avatar, GlobalDefinitions, Player}
import net.psforever.objects.serverobject.terminals._
import net.psforever.packet.game.PlanetSideGUID
-import net.psforever.types.{CharacterGender, PlanetSideEmpire}
+import net.psforever.types.{CharacterGender, CharacterVoice, PlanetSideEmpire}
import objects.ActorTest
import scala.concurrent.duration.Duration
@@ -34,7 +34,7 @@ class MedicalTerminalControl1Test extends ActorTest() {
"ProximityTerminalControl sends a message to the first new user only" in {
val (player, terminal) = ProximityTerminalControlTest.SetUpAgents(GlobalDefinitions.medical_terminal, PlanetSideEmpire.TR)
player.GUID = PlanetSideGUID(10)
- val player2 = Player(Avatar("someothertest", PlanetSideEmpire.TR, CharacterGender.Male, 0, 0))
+ val player2 = Player(Avatar("someothertest", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
player2.GUID = PlanetSideGUID(11)
terminal.Actor ! CommonMessages.Use(player)
@@ -57,7 +57,7 @@ class MedicalTerminalControl2Test extends ActorTest() {
"ProximityTerminalControl sends a message to the last user only" in {
val (player, terminal) : (Player, ProximityTerminal) = ProximityTerminalControlTest.SetUpAgents(GlobalDefinitions.medical_terminal, PlanetSideEmpire.TR)
player.GUID = PlanetSideGUID(10)
- val player2 = Player(Avatar("someothertest", PlanetSideEmpire.TR, CharacterGender.Male, 0, 0))
+ val player2 = Player(Avatar("someothertest", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
player2.GUID = PlanetSideGUID(11)
terminal.Actor ! CommonMessages.Use(player)
@@ -86,7 +86,7 @@ class MedicalTerminalControl3Test extends ActorTest() {
"ProximityTerminalControl sends a message to the last user only (confirmation of test #2)" in {
val (player, terminal) : (Player, ProximityTerminal) = ProximityTerminalControlTest.SetUpAgents(GlobalDefinitions.medical_terminal, PlanetSideEmpire.TR)
player.GUID = PlanetSideGUID(10)
- val player2 = Player(Avatar("someothertest", PlanetSideEmpire.TR, CharacterGender.Male, 0, 0))
+ val player2 = Player(Avatar("someothertest", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
player2.GUID = PlanetSideGUID(11)
terminal.Actor ! CommonMessages.Use(player)
@@ -115,6 +115,6 @@ object ProximityTerminalControlTest {
def SetUpAgents(tdef : MedicalTerminalDefinition, faction : PlanetSideEmpire.Value)(implicit system : ActorSystem) : (Player, ProximityTerminal) = {
val terminal = ProximityTerminal(tdef)
terminal.Actor = system.actorOf(Props(classOf[ProximityTerminalControl], terminal), "test-term")
- (Player(Avatar("test", faction, CharacterGender.Male, 0, 0)), terminal)
+ (Player(Avatar("test", faction, CharacterGender.Male, 0, CharacterVoice.Mute)), terminal)
}
}
diff --git a/common/src/test/scala/objects/terminal/ProximityTest.scala b/common/src/test/scala/objects/terminal/ProximityTest.scala
index 7b799d1d..449feb31 100644
--- a/common/src/test/scala/objects/terminal/ProximityTest.scala
+++ b/common/src/test/scala/objects/terminal/ProximityTest.scala
@@ -7,7 +7,7 @@ import net.psforever.objects.serverobject.terminals.Terminal.TerminalMessage
import net.psforever.objects.serverobject.terminals.{ProximityTerminal, ProximityTerminalControl, ProximityUnit, Terminal}
import net.psforever.objects.{Avatar, GlobalDefinitions, Player}
import net.psforever.packet.game.PlanetSideGUID
-import net.psforever.types.{CharacterGender, PlanetSideEmpire}
+import net.psforever.types.{CharacterGender, CharacterVoice, PlanetSideEmpire}
import objects.ActorTest
import org.specs2.mutable.Specification
@@ -70,7 +70,7 @@ class ProximityTerminalControl1bTest extends ActorTest {
"send out a start message" in {
val obj = ProximityTerminal(GlobalDefinitions.medical_terminal)
obj.Actor = system.actorOf(Props(classOf[ProximityTerminalControl], obj), "prox-ctrl")
- val player = Player(Avatar("TestCharacter", PlanetSideEmpire.TR, CharacterGender.Male, 0, 0))
+ val player = Player(Avatar("TestCharacter", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
player.GUID = PlanetSideGUID(10)
assert(obj.NumberUsers == 0)
@@ -91,9 +91,9 @@ class ProximityTerminalControl2bTest extends ActorTest {
"will not send out one start message unless first user" in {
val obj = ProximityTerminal(GlobalDefinitions.medical_terminal)
obj.Actor = system.actorOf(Props(classOf[ProximityTerminalControl], obj), "prox-ctrl")
- val player1 = Player(Avatar("TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, 0))
+ val player1 = Player(Avatar("TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
player1.GUID = PlanetSideGUID(10)
- val player2 = Player(Avatar("TestCharacter2", PlanetSideEmpire.TR, CharacterGender.Male, 0, 0))
+ val player2 = Player(Avatar("TestCharacter2", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
player2.GUID = PlanetSideGUID(11)
assert(obj.NumberUsers == 0)
@@ -114,7 +114,7 @@ class ProximityTerminalControl3bTest extends ActorTest {
"send out a stop message" in {
val obj = ProximityTerminal(GlobalDefinitions.medical_terminal)
obj.Actor = system.actorOf(Props(classOf[ProximityTerminalControl], obj), "prox-ctrl")
- val player = Player(Avatar("TestCharacter", PlanetSideEmpire.TR, CharacterGender.Male, 0, 0))
+ val player = Player(Avatar("TestCharacter", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
player.GUID = PlanetSideGUID(10)
assert(obj.NumberUsers == 0)
@@ -138,9 +138,9 @@ class ProximityTerminalControl4bTest extends ActorTest {
"will not send out one stop message until last user" in {
val obj = ProximityTerminal(GlobalDefinitions.medical_terminal)
obj.Actor = system.actorOf(Props(classOf[ProximityTerminalControl], obj), "prox-ctrl")
- val player1 = Player(Avatar("TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, 0))
+ val player1 = Player(Avatar("TestCharacter1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
player1.GUID = PlanetSideGUID(10)
- val player2 = Player(Avatar("TestCharacter2", PlanetSideEmpire.TR, CharacterGender.Male, 0, 0))
+ val player2 = Player(Avatar("TestCharacter2", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
player2.GUID = PlanetSideGUID(11)
assert(obj.NumberUsers == 0)
diff --git a/common/src/test/scala/objects/terminal/RepairRearmSiloTest.scala b/common/src/test/scala/objects/terminal/RepairRearmSiloTest.scala
index 516e834c..ddc27794 100644
--- a/common/src/test/scala/objects/terminal/RepairRearmSiloTest.scala
+++ b/common/src/test/scala/objects/terminal/RepairRearmSiloTest.scala
@@ -7,12 +7,12 @@ import net.psforever.objects._
import net.psforever.objects.serverobject.terminals.Terminal
import net.psforever.objects.zones.Zone
import net.psforever.packet.game.{ItemTransactionMessage, PlanetSideGUID}
-import net.psforever.types.{CharacterGender, PlanetSideEmpire, TransactionType}
+import net.psforever.types.{CharacterGender, CharacterVoice, PlanetSideEmpire, TransactionType}
import org.specs2.mutable.Specification
class RepairRearmSiloTest extends Specification {
"RepairRearmSilo" should {
- val player = Player(Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, 0))
+ val player = Player(Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
val silo = Terminal(GlobalDefinitions.repair_silo)
silo.Owner = new Building(0, Zone.Nowhere, StructureType.Building)
silo.Owner.Faction = PlanetSideEmpire.TR
@@ -49,7 +49,7 @@ class RepairRearmSiloTest extends Specification {
}
"player can retrieve a vehicle loadout" in {
- val avatar = Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, 0)
+ val avatar = Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)
val player2 = Player(avatar)
val vehicle = Vehicle(GlobalDefinitions.fury)
vehicle.Slot(30).Equipment = AmmoBox(GlobalDefinitions.bullet_9mm)
@@ -67,7 +67,7 @@ class RepairRearmSiloTest extends Specification {
}
"player can not retrieve a vehicle loadout from the wrong line" in {
- val avatar = Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, 0)
+ val avatar = Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)
val player2 = Player(avatar)
val vehicle = Vehicle(GlobalDefinitions.fury)
vehicle.Slot(30).Equipment = AmmoBox(GlobalDefinitions.bullet_9mm)
@@ -78,7 +78,7 @@ class RepairRearmSiloTest extends Specification {
}
"player can not retrieve a vehicle loadout from the wrong line" in {
- val avatar = Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, 0)
+ val avatar = Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)
val player2 = Player(avatar)
val vehicle = Vehicle(GlobalDefinitions.fury)
vehicle.Slot(30).Equipment = AmmoBox(GlobalDefinitions.bullet_9mm)
diff --git a/common/src/test/scala/objects/terminal/TerminalControlTest.scala b/common/src/test/scala/objects/terminal/TerminalControlTest.scala
index e8432d3d..784779fb 100644
--- a/common/src/test/scala/objects/terminal/TerminalControlTest.scala
+++ b/common/src/test/scala/objects/terminal/TerminalControlTest.scala
@@ -123,6 +123,6 @@ object TerminalControlTest {
terminal.Actor = system.actorOf(Props(classOf[TerminalControl], terminal), "test-term")
terminal.Owner = new Building(0, Zone.Nowhere, StructureType.Building)
terminal.Owner.Faction = faction
- (Player(Avatar("test", faction, CharacterGender.Male, 0, 0)), terminal)
+ (Player(Avatar("test", faction, CharacterGender.Male, 0, CharacterVoice.Mute)), terminal)
}
}
diff --git a/common/src/test/scala/objects/terminal/VehicleTerminalCombinedTest.scala b/common/src/test/scala/objects/terminal/VehicleTerminalCombinedTest.scala
index 0233dc9d..b6edd741 100644
--- a/common/src/test/scala/objects/terminal/VehicleTerminalCombinedTest.scala
+++ b/common/src/test/scala/objects/terminal/VehicleTerminalCombinedTest.scala
@@ -7,12 +7,12 @@ import net.psforever.objects.{Avatar, GlobalDefinitions, Player}
import net.psforever.objects.serverobject.terminals.Terminal
import net.psforever.objects.zones.Zone
import net.psforever.packet.game.{ItemTransactionMessage, PlanetSideGUID}
-import net.psforever.types.{CharacterGender, PlanetSideEmpire, TransactionType}
+import net.psforever.types.{CharacterGender, CharacterVoice, PlanetSideEmpire, TransactionType}
import org.specs2.mutable.Specification
class VehicleTerminalCombinedTest extends Specification {
"Ground_Vehicle_Terminal" should {
- val player = Player(Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, 0))
+ val player = Player(Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
val terminal = Terminal(GlobalDefinitions.vehicle_terminal_combined)
terminal.Owner = new Building(0, Zone.Nowhere, StructureType.Building)
terminal.Owner.Faction = PlanetSideEmpire.TR
diff --git a/pslogin/src/main/scala/WorldSessionActor.scala b/pslogin/src/main/scala/WorldSessionActor.scala
index 6cbe1175..ffb0188d 100644
--- a/pslogin/src/main/scala/WorldSessionActor.scala
+++ b/pslogin/src/main/scala/WorldSessionActor.scala
@@ -1554,7 +1554,7 @@ class WorldSessionActor extends Actor with MDCContextAware {
//TODO begin temp player character auto-loading; remove later
import net.psforever.objects.GlobalDefinitions._
import net.psforever.types.CertificationType._
- avatar = Avatar("TestCharacter" + sessionId.toString, PlanetSideEmpire.VS, CharacterGender.Female, 41, 1)
+ avatar = Avatar("TestCharacter" + sessionId.toString, PlanetSideEmpire.VS, CharacterGender.Female, 41, CharacterVoice.Voice1)
avatar.Certifications += StandardAssault
avatar.Certifications += MediumAssault
avatar.Certifications += StandardExoSuit
@@ -3234,6 +3234,29 @@ class WorldSessionActor extends Actor with MDCContextAware {
}, List(RegisterVehicle(obj)))
}
+ //TODO this may be useful for vehicle gating
+ def RegisterDrivenVehicle(obj : Vehicle, driver : Player) : TaskResolver.GiveTask = {
+ TaskResolver.GiveTask(
+ new Task() {
+ private val localVehicle = obj
+ private val localDriver = driver
+
+ override def isComplete : Task.Resolution.Value = {
+ if(localVehicle.HasGUID && localDriver.HasGUID) {
+ Task.Resolution.Success
+ }
+ else {
+ Task.Resolution.Incomplete
+ }
+ }
+
+ def Execute(resolver : ActorRef) : Unit = {
+ //TODO some kind of callback ...
+ resolver ! scala.util.Success(this)
+ }
+ }, List(RegisterAvatar(driver), RegisterVehicle(obj)))
+ }
+
/**
* Construct tasking that removes the `Equipment` to `target`.
* @param target what object that contains the `Equipment`
diff --git a/pslogin/src/test/scala/AvatarServiceTest.scala b/pslogin/src/test/scala/AvatarServiceTest.scala
index 07c8a2d5..9d521c1b 100644
--- a/pslogin/src/test/scala/AvatarServiceTest.scala
+++ b/pslogin/src/test/scala/AvatarServiceTest.scala
@@ -6,7 +6,7 @@ import net.psforever.objects.guid.{GUIDTask, TaskResolver}
import net.psforever.objects.zones.{Zone, ZoneActor, ZoneMap}
import net.psforever.packet.game.objectcreate.{DroppedItemData, ObjectClass, ObjectCreateMessageParent, PlacementData}
import net.psforever.packet.game.{ObjectCreateMessage, PlanetSideGUID, PlayerStateMessageUpstream}
-import net.psforever.types.{CharacterGender, ExoSuitType, PlanetSideEmpire, Vector3}
+import net.psforever.types._
import services.{RemoverActor, Service, ServiceManager}
import services.avatar._
@@ -152,7 +152,7 @@ class DroptItemTest extends ActorTest {
}
class LoadPlayerTest extends ActorTest {
- val obj = Player(Avatar("TestCharacter1", PlanetSideEmpire.VS, CharacterGender.Female, 1, 1))
+ val obj = Player(Avatar("TestCharacter1", PlanetSideEmpire.VS, CharacterGender.Female, 1, CharacterVoice.Voice1))
obj.GUID = PlanetSideGUID(10)
obj.Slot(5).Equipment.get.GUID = PlanetSideGUID(11)
val c1data = obj.Definition.Packet.DetailedConstructorData(obj).get
@@ -235,7 +235,7 @@ class PlayerStateTest extends ActorTest {
}
class PickupItemATest extends ActorTest {
- val obj = Player(Avatar("TestCharacter", PlanetSideEmpire.VS, CharacterGender.Female, 1, 1))
+ val obj = Player(Avatar("TestCharacter", PlanetSideEmpire.VS, CharacterGender.Female, 1, CharacterVoice.Voice1))
obj.GUID = PlanetSideGUID(10)
obj.Slot(5).Equipment.get.GUID = PlanetSideGUID(11)
@@ -260,7 +260,7 @@ class PickupItemATest extends ActorTest {
}
class PickupItemBTest extends ActorTest {
- val obj = Player(Avatar("TestCharacter", PlanetSideEmpire.VS, CharacterGender.Female, 1, 1))
+ val obj = Player(Avatar("TestCharacter", PlanetSideEmpire.VS, CharacterGender.Female, 1, CharacterVoice.Voice1))
val tool = Tool(GlobalDefinitions.beamer)
tool.GUID = PlanetSideGUID(40)
@@ -388,7 +388,7 @@ class AvatarReleaseTest extends ActorTest {
val taskResolver = system.actorOf(Props[TaskResolver], "release-test-resolver")
zone.Actor = system.actorOf(Props(classOf[ZoneActor], zone), "release-test-zone")
zone.Actor ! Zone.Init()
- val obj = Player(Avatar("TestCharacter", PlanetSideEmpire.VS, CharacterGender.Female, 1, 1))
+ val obj = Player(Avatar("TestCharacter", PlanetSideEmpire.VS, CharacterGender.Female, 1, CharacterVoice.Voice1))
obj.Continent = "test"
obj.Release
@@ -437,7 +437,7 @@ class AvatarReleaseEarly1Test extends ActorTest {
val taskResolver = system.actorOf(Props[TaskResolver], "release-test-resolver")
zone.Actor = system.actorOf(Props(classOf[ZoneActor], zone), "release-test-zone")
zone.Actor ! Zone.Init()
- val obj = Player(Avatar("TestCharacter1", PlanetSideEmpire.VS, CharacterGender.Female, 1, 1))
+ val obj = Player(Avatar("TestCharacter1", PlanetSideEmpire.VS, CharacterGender.Female, 1, CharacterVoice.Voice1))
obj.Continent = "test"
obj.Release
@@ -487,8 +487,8 @@ class AvatarReleaseEarly2Test extends ActorTest {
val taskResolver = system.actorOf(Props[TaskResolver], "release-test-resolver")
zone.Actor = system.actorOf(Props(classOf[ZoneActor], zone), "release-test-zone")
zone.Actor ! Zone.Init()
- val objAlt = Player(Avatar("TestCharacter2", PlanetSideEmpire.NC, CharacterGender.Male, 1, 1)) //necessary clutter
- val obj = Player(Avatar("TestCharacter1", PlanetSideEmpire.VS, CharacterGender.Female, 1, 1))
+ val objAlt = Player(Avatar("TestCharacter2", PlanetSideEmpire.NC, CharacterGender.Male, 1, CharacterVoice.Voice1)) //necessary clutter
+ val obj = Player(Avatar("TestCharacter1", PlanetSideEmpire.VS, CharacterGender.Female, 1, CharacterVoice.Voice1))
obj.Continent = "test"
obj.Release
diff --git a/pslogin/src/test/scala/PacketCodingActorTest.scala b/pslogin/src/test/scala/PacketCodingActorTest.scala
index 674e0fa3..9922f93f 100644
--- a/pslogin/src/test/scala/PacketCodingActorTest.scala
+++ b/pslogin/src/test/scala/PacketCodingActorTest.scala
@@ -455,7 +455,7 @@ class PacketCodingActorITest extends ActorTest {
import net.psforever.packet.game.objectcreate._
val pos : PlacementData = PlacementData(Vector3.Zero, Vector3.Zero)
val app : (Int)=>CharacterAppearanceData = CharacterAppearanceData(
- BasicCharacterData("IlllIIIlllIlIllIlllIllI", PlanetSideEmpire.VS, CharacterGender.Female, 41, 1),
+ BasicCharacterData("IlllIIIlllIlIllIlllIllI", PlanetSideEmpire.VS, CharacterGender.Female, 41, CharacterVoice.Voice1),
3,
false,
false,
@@ -548,7 +548,7 @@ class PacketCodingActorKTest extends ActorTest {
import net.psforever.packet.game.objectcreate._
val pos : PlacementData = PlacementData(Vector3.Zero, Vector3.Zero)
val app : (Int)=>CharacterAppearanceData = CharacterAppearanceData(
- BasicCharacterData("IlllIIIlllIlIllIlllIllI", PlanetSideEmpire.VS, CharacterGender.Female, 41, 1),
+ BasicCharacterData("IlllIIIlllIlIllIlllIllI", PlanetSideEmpire.VS, CharacterGender.Female, 41, CharacterVoice.Voice1),
3,
false,
false,
diff --git a/pslogin/src/test/scala/RemoverActorTest.scala b/pslogin/src/test/scala/RemoverActorTest.scala
index 316c58af..2d0704d3 100644
--- a/pslogin/src/test/scala/RemoverActorTest.scala
+++ b/pslogin/src/test/scala/RemoverActorTest.scala
@@ -1,537 +1,537 @@
-// Copyright (c) 2017 PSForever
-import akka.actor.{ActorRef, Props}
-import akka.routing.RandomPool
-import akka.testkit.TestProbe
-import net.psforever.objects.PlanetSideGameObject
-import net.psforever.objects.definition.{EquipmentDefinition, ObjectDefinition}
-import net.psforever.objects.equipment.Equipment
-import net.psforever.objects.guid.TaskResolver
-import net.psforever.objects.zones.{Zone, ZoneMap}
-import net.psforever.packet.game.PlanetSideGUID
-import services.{RemoverActor, ServiceManager}
-
-import scala.concurrent.duration._
-
-class StandardRemoverActorTest extends ActorTest {
- ServiceManager.boot ! ServiceManager.Register(RandomPool(2).props(Props[TaskResolver]), "taskResolver")
-
- "RemoverActor" should {
- "handle a simple task" in {
- expectNoMsg(500 milliseconds)
- val probe = TestProbe()
- val remover = system.actorOf(Props(classOf[RemoverActorTest.TestRemover], probe), "test-remover")
- remover ! RemoverActor.AddTask(RemoverActorTest.TestObject, Zone.Nowhere)
-
- val reply1 = probe.receiveOne(200 milliseconds)
- assert(reply1.isInstanceOf[RemoverActorTest.InclusionTestAlert])
- val reply2 = probe.receiveOne(200 milliseconds)
- assert(reply2.isInstanceOf[RemoverActorTest.InitialJobAlert])
- probe.expectNoMsg(1 seconds) //delay
- val reply3 = probe.receiveOne(300 milliseconds)
- assert(reply3.isInstanceOf[RemoverActorTest.FirstJobAlert])
- val reply4 = probe.receiveOne(300 milliseconds)
- assert(reply4.isInstanceOf[RemoverActorTest.ClearanceTestAlert])
- val reply5 = probe.receiveOne(300 milliseconds)
- assert(reply5.isInstanceOf[RemoverActorTest.SecondJobAlert])
- val reply6 = probe.receiveOne(500 milliseconds)
- assert(reply6.isInstanceOf[RemoverActorTest.DeletionTaskAlert])
- val reply7 = probe.receiveOne(500 milliseconds)
- assert(reply7.isInstanceOf[RemoverActorTest.DeletionTaskRunAlert])
- }
- }
-}
-
-class DelayedRemoverActorTest extends ActorTest {
- ServiceManager.boot ! ServiceManager.Register(RandomPool(2).props(Props[TaskResolver]), "taskResolver")
-
- "RemoverActor" should {
- "handle a simple task (timed)" in {
- expectNoMsg(500 milliseconds)
- val probe = TestProbe()
- val remover = system.actorOf(Props(classOf[RemoverActorTest.TestRemover], probe), "test-remover")
- remover ! RemoverActor.AddTask(RemoverActorTest.TestObject, Zone.Nowhere, Some(100 milliseconds))
-
- val reply1 = probe.receiveOne(200 milliseconds)
- assert(reply1.isInstanceOf[RemoverActorTest.InclusionTestAlert])
- val reply2 = probe.receiveOne(200 milliseconds)
- assert(reply2.isInstanceOf[RemoverActorTest.InitialJobAlert])
- //no delay
- val reply3 = probe.receiveOne(300 milliseconds)
- assert(reply3.isInstanceOf[RemoverActorTest.FirstJobAlert])
- val reply4 = probe.receiveOne(300 milliseconds)
- assert(reply4.isInstanceOf[RemoverActorTest.ClearanceTestAlert])
- val reply5 = probe.receiveOne(300 milliseconds)
- assert(reply5.isInstanceOf[RemoverActorTest.SecondJobAlert])
- val reply6 = probe.receiveOne(300 milliseconds)
- assert(reply6.isInstanceOf[RemoverActorTest.DeletionTaskAlert])
- val reply7 = probe.receiveOne(300 milliseconds)
- assert(reply7.isInstanceOf[RemoverActorTest.DeletionTaskRunAlert])
- }
- }
-}
-
-class ExcludedRemoverActorTest extends ActorTest {
- ServiceManager.boot ! ServiceManager.Register(RandomPool(2).props(Props[TaskResolver]), "taskResolver")
- val AlternateTestObject = new PlanetSideGameObject() { def Definition = new ObjectDefinition(0) { } }
-
- "RemoverActor" should {
- "allow only specific objects" in {
- expectNoMsg(500 milliseconds)
- val probe = TestProbe()
- val remover = system.actorOf(Props(classOf[RemoverActorTest.TestRemover], probe), "test-remover")
- remover ! RemoverActor.AddTask(AlternateTestObject, Zone.Nowhere)
-
- val reply1 = probe.receiveOne(200 milliseconds)
- assert(reply1.isInstanceOf[RemoverActorTest.InclusionTestAlert])
- expectNoMsg(2 seconds)
- //RemoverActor is stalled because it received an object that it was not allowed to act upon
- }
- }
-}
-
-class MultipleRemoverActorTest extends ActorTest {
- ServiceManager.boot ! ServiceManager.Register(RandomPool(2).props(Props[TaskResolver]), "taskResolver")
- final val TestObject2 = new Equipment() { def Definition = new EquipmentDefinition(0) { GUID = PlanetSideGUID(2) } }
-
- "RemoverActor" should {
- "work on parallel tasks" in {
- expectNoMsg(500 milliseconds)
- val probe = TestProbe()
- val remover = system.actorOf(Props(classOf[RemoverActorTest.TestRemover], probe), "test-remover")
- remover ! RemoverActor.AddTask(RemoverActorTest.TestObject, Zone.Nowhere)
- remover ! RemoverActor.AddTask(TestObject2, Zone.Nowhere)
-
- val replies = probe.receiveN(14, 5 seconds)
- var ita : Int = 0
- var ija : Int = 0
- var fja : Int = 0
- var cta : Int = 0
- var sja : Int = 0
- var dta : Int = 0
- var dtr : Int = 0
- replies.collect {
- case RemoverActorTest.InclusionTestAlert() => ita += 1
- case RemoverActorTest.InitialJobAlert() => ija += 1
- case RemoverActorTest.FirstJobAlert() => fja += 1
- case RemoverActorTest.ClearanceTestAlert() => cta += 1
- case RemoverActorTest.SecondJobAlert() => sja += 1
- case RemoverActorTest.DeletionTaskAlert() => dta += 1
- case RemoverActorTest.DeletionTaskRunAlert() => dtr += 1
- case msg => assert(false, s"$msg")
- }
- assert(ita == 2 && ija == 2 && fja == 2 && cta == 2 && sja == 2 && dta == 2 && dtr == 2)
- }
- }
-}
-
-class HurrySpecificRemoverActorTest extends ActorTest {
- ServiceManager.boot ! ServiceManager.Register(RandomPool(2).props(Props[TaskResolver]), "taskResolver")
-
- "RemoverActor" should {
- "be able to hurry certain tasks" in {
- expectNoMsg(500 milliseconds)
- val probe = TestProbe()
- val remover = system.actorOf(Props(classOf[RemoverActorTest.TestRemover], probe), "test-remover")
- remover ! RemoverActor.AddTask(RemoverActorTest.TestObject, Zone.Nowhere, Some(10 minutes)) //TEN MINUTE WAIT
-
- val reply1 = probe.receiveOne(200 milliseconds)
- assert(reply1.isInstanceOf[RemoverActorTest.InclusionTestAlert])
- val reply2 = probe.receiveOne(200 milliseconds)
- assert(reply2.isInstanceOf[RemoverActorTest.InitialJobAlert])
- probe.expectNoMsg(3 seconds) //long delay, longer than standard but not yet 10 minutes
- remover ! RemoverActor.HurrySpecific(List(RemoverActorTest.TestObject), Zone.Nowhere) //hurried
- val reply3 = probe.receiveOne(300 milliseconds)
- assert(reply3.isInstanceOf[RemoverActorTest.FirstJobAlert])
- val reply4 = probe.receiveOne(300 milliseconds)
- assert(reply4.isInstanceOf[RemoverActorTest.ClearanceTestAlert])
- val reply5 = probe.receiveOne(300 milliseconds)
- assert(reply5.isInstanceOf[RemoverActorTest.SecondJobAlert])
- val reply6 = probe.receiveOne(500 milliseconds)
- assert(reply6.isInstanceOf[RemoverActorTest.DeletionTaskAlert])
- val reply7 = probe.receiveOne(500 milliseconds)
- assert(reply7.isInstanceOf[RemoverActorTest.DeletionTaskRunAlert])
- }
- }
-}
-
-class HurrySelectionRemoverActorTest extends ActorTest {
- ServiceManager.boot ! ServiceManager.Register(RandomPool(2).props(Props[TaskResolver]), "taskResolver")
- final val TestObject2 = new Equipment() { def Definition = new EquipmentDefinition(0) { GUID = PlanetSideGUID(2) } }
-
- "RemoverActor" should {
- "be able to hurry certain tasks, but let others finish normally" in {
- expectNoMsg(500 milliseconds)
- val probe = TestProbe()
- val remover = system.actorOf(Props(classOf[RemoverActorTest.TestRemover], probe), "test-remover")
- remover ! RemoverActor.AddTask(RemoverActorTest.TestObject, Zone.Nowhere, Some(5 seconds))
- remover ! RemoverActor.AddTask(TestObject2, Zone.Nowhere, Some(10 seconds))
-
- val replies = probe.receiveN(4, 5 seconds)
- var ita : Int = 0
- var ija : Int = 0
- replies.collect {
- case RemoverActorTest.InclusionTestAlert() => ita += 1
- case RemoverActorTest.InitialJobAlert() => ija += 1
- case msg => assert(false, s"$msg")
- }
- assert(ita == 2 && ija == 2)
- probe.expectNoMsg(3 seconds) //long delay, longer than standard but not yet 5 seconds
- remover ! RemoverActor.HurrySpecific(List(RemoverActorTest.TestObject), Zone.Nowhere) //hurried
- //first
- val reply3a = probe.receiveOne(300 milliseconds)
- assert(reply3a.isInstanceOf[RemoverActorTest.FirstJobAlert])
- val reply4a = probe.receiveOne(300 milliseconds)
- assert(reply4a.isInstanceOf[RemoverActorTest.ClearanceTestAlert])
- val reply5a = probe.receiveOne(300 milliseconds)
- assert(reply5a.isInstanceOf[RemoverActorTest.SecondJobAlert])
- val reply6a = probe.receiveOne(500 milliseconds)
- assert(reply6a.isInstanceOf[RemoverActorTest.DeletionTaskAlert])
- val reply7a = probe.receiveOne(500 milliseconds)
- assert(reply7a.isInstanceOf[RemoverActorTest.DeletionTaskRunAlert])
- //second
- remover ! RemoverActor.HurrySpecific(List(TestObject2), Zone.Nowhere) //hurried
- val reply3b = probe.receiveOne(300 milliseconds)
- assert(reply3b.isInstanceOf[RemoverActorTest.FirstJobAlert])
- val reply4b = probe.receiveOne(300 milliseconds)
- assert(reply4b.isInstanceOf[RemoverActorTest.ClearanceTestAlert])
- val reply5b = probe.receiveOne(300 milliseconds)
- assert(reply5b.isInstanceOf[RemoverActorTest.SecondJobAlert])
- val reply6b = probe.receiveOne(500 milliseconds)
- assert(reply6b.isInstanceOf[RemoverActorTest.DeletionTaskAlert])
- val reply7b = probe.receiveOne(500 milliseconds)
- assert(reply7b.isInstanceOf[RemoverActorTest.DeletionTaskRunAlert])
- }
- }
-}
-
-class HurryMultipleRemoverActorTest extends ActorTest {
- ServiceManager.boot ! ServiceManager.Register(RandomPool(2).props(Props[TaskResolver]), "taskResolver")
- final val TestObject2 = new Equipment() { def Definition = new EquipmentDefinition(0) { GUID = PlanetSideGUID(2) } }
- final val TestObject3 = new Equipment() { def Definition = new EquipmentDefinition(0) { GUID = PlanetSideGUID(3) } }
-
- "RemoverActor" should {
- "be able to hurry certain tasks, but only valid ones" in {
- expectNoMsg(500 milliseconds)
- val probe = TestProbe()
- val remover = system.actorOf(Props(classOf[RemoverActorTest.TestRemover], probe), "test-remover")
- remover ! RemoverActor.AddTask(RemoverActorTest.TestObject, Zone.Nowhere, Some(5 seconds))
- remover ! RemoverActor.AddTask(TestObject2, Zone.Nowhere, Some(5 seconds))
-
- val replies = probe.receiveN(4, 5 seconds)
- var ita : Int = 0
- var ija : Int = 0
- replies.collect {
- case RemoverActorTest.InclusionTestAlert() => ita += 1
- case RemoverActorTest.InitialJobAlert() => ija += 1
- case msg => assert(false, s"$msg")
- }
- assert(ita == 2 && ija == 2)
- probe.expectNoMsg(3 seconds) //long delay, longer than standard but not yet 5 seconds
- remover ! RemoverActor.HurrySpecific(List(RemoverActorTest.TestObject, TestObject3), Zone.Nowhere) //multiple hurried, only one valid
- //first
- val reply3a = probe.receiveOne(300 milliseconds)
- assert(reply3a.isInstanceOf[RemoverActorTest.FirstJobAlert])
- val reply4a = probe.receiveOne(300 milliseconds)
- assert(reply4a.isInstanceOf[RemoverActorTest.ClearanceTestAlert])
- val reply5a = probe.receiveOne(300 milliseconds)
- assert(reply5a.isInstanceOf[RemoverActorTest.SecondJobAlert])
- val reply6a = probe.receiveOne(500 milliseconds)
- assert(reply6a.isInstanceOf[RemoverActorTest.DeletionTaskAlert])
- val reply7a = probe.receiveOne(500 milliseconds)
- assert(reply7a.isInstanceOf[RemoverActorTest.DeletionTaskRunAlert])
- //second
- remover ! RemoverActor.HurrySpecific(List(TestObject2), Zone.Nowhere) //hurried
- val reply3b = probe.receiveOne(300 milliseconds)
- assert(reply3b.isInstanceOf[RemoverActorTest.FirstJobAlert])
- val reply4b = probe.receiveOne(300 milliseconds)
- assert(reply4b.isInstanceOf[RemoverActorTest.ClearanceTestAlert])
- val reply5b = probe.receiveOne(300 milliseconds)
- assert(reply5b.isInstanceOf[RemoverActorTest.SecondJobAlert])
- val reply6b = probe.receiveOne(500 milliseconds)
- assert(reply6b.isInstanceOf[RemoverActorTest.DeletionTaskAlert])
- val reply7b = probe.receiveOne(500 milliseconds)
- assert(reply7b.isInstanceOf[RemoverActorTest.DeletionTaskRunAlert])
- }
- }
-}
-
-class HurryByZoneRemoverActorTest extends ActorTest {
- ServiceManager.boot ! ServiceManager.Register(RandomPool(2).props(Props[TaskResolver]), "taskResolver")
- final val TestObject2 = new Equipment() { def Definition = new EquipmentDefinition(0) { GUID = PlanetSideGUID(2) } }
- final val TestObject3 = new Equipment() { def Definition = new EquipmentDefinition(0) { GUID = PlanetSideGUID(3) } }
- final val zone = new Zone("test", new ZoneMap("test-map"), 11)
-
- "RemoverActor" should {
- "be able to hurry certain tasks by their zone" in {
- expectNoMsg(500 milliseconds)
- val probe = TestProbe()
- val remover = system.actorOf(Props(classOf[RemoverActorTest.TestRemover], probe), "test-remover")
- remover ! RemoverActor.AddTask(RemoverActorTest.TestObject, Zone.Nowhere, Some(5 seconds))
- remover ! RemoverActor.AddTask(TestObject2, zone, Some(5 seconds))
- remover ! RemoverActor.AddTask(TestObject3, Zone.Nowhere, Some(5 seconds))
-
- val replies1 = probe.receiveN(6, 5 seconds)
- var ita : Int = 0
- var ija : Int = 0
- replies1.collect {
- case RemoverActorTest.InclusionTestAlert() => ita += 1
- case RemoverActorTest.InitialJobAlert() => ija += 1
- case msg => assert(false, s"$msg")
- }
- assert(ita == 3 && ija == 3)
- probe.expectNoMsg(3 seconds) //long delay, longer than standard but not yet 5 seconds
- remover ! RemoverActor.HurrySpecific(List(), Zone.Nowhere) //multiple hurried, only the two entries with Zone.Nowhere
- //
- val replies2 = probe.receiveN(10, 5 seconds)
- var fja : Int = 0
- var cta : Int = 0
- var sja : Int = 0
- var dta : Int = 0
- var dtr : Int = 0
- replies2.collect {
- case RemoverActorTest.InclusionTestAlert() => ita += 1
- case RemoverActorTest.InitialJobAlert() => ija += 1
- case RemoverActorTest.FirstJobAlert() => fja += 1
- case RemoverActorTest.ClearanceTestAlert() => cta += 1
- case RemoverActorTest.SecondJobAlert() => sja += 1
- case RemoverActorTest.DeletionTaskAlert() => dta += 1
- case RemoverActorTest.DeletionTaskRunAlert() => dtr += 1
- case msg => assert(false, s"$msg")
- }
- assert(fja == 2 && cta == 2 && sja == 2 && dta == 2 && dtr == 2)
- //final
- remover ! RemoverActor.HurrySpecific(List(), zone) //hurried
- val reply3b = probe.receiveOne(300 milliseconds)
- assert(reply3b.isInstanceOf[RemoverActorTest.FirstJobAlert])
- val reply4b = probe.receiveOne(300 milliseconds)
- assert(reply4b.isInstanceOf[RemoverActorTest.ClearanceTestAlert])
- val reply5b = probe.receiveOne(300 milliseconds)
- assert(reply5b.isInstanceOf[RemoverActorTest.SecondJobAlert])
- val reply6b = probe.receiveOne(500 milliseconds)
- assert(reply6b.isInstanceOf[RemoverActorTest.DeletionTaskAlert])
- val reply7b = probe.receiveOne(500 milliseconds)
- assert(reply7b.isInstanceOf[RemoverActorTest.DeletionTaskRunAlert])
- }
- }
-}
-
-class HurryAllRemoverActorTest extends ActorTest {
- ServiceManager.boot ! ServiceManager.Register(RandomPool(2).props(Props[TaskResolver]), "taskResolver")
- final val TestObject2 = new Equipment() { def Definition = new EquipmentDefinition(0) { GUID = PlanetSideGUID(2) } }
- final val TestObject3 = new Equipment() { def Definition = new EquipmentDefinition(0) { GUID = PlanetSideGUID(3) } }
-
- "RemoverActor" should {
- "be able to hurry all tasks to completion" in {
- expectNoMsg(500 milliseconds)
- val probe = TestProbe()
- val remover = system.actorOf(Props(classOf[RemoverActorTest.TestRemover], probe), "test-remover")
- remover ! RemoverActor.AddTask(RemoverActorTest.TestObject, Zone.Nowhere, Some(20 seconds))
- remover ! RemoverActor.AddTask(TestObject2, Zone.Nowhere, Some(15 seconds))
- remover ! RemoverActor.AddTask(TestObject3, Zone.Nowhere, Some(10 seconds))
-
- val replies1 = probe.receiveN(6, 5 seconds)
- var ita : Int = 0
- var ija : Int = 0
- replies1.collect {
- case RemoverActorTest.InclusionTestAlert() => ita += 1
- case RemoverActorTest.InitialJobAlert() => ija += 1
- case msg => assert(false, s"$msg")
- }
- assert(ita == 3 && ija == 3)
- probe.expectNoMsg(3 seconds) //long delay, longer than standard but not yet longer than any of the tasks
- remover ! RemoverActor.HurryAll() //all hurried
- //
- val replies2 = probe.receiveN(15, 5 seconds)
- var fja : Int = 0
- var cta : Int = 0
- var sja : Int = 0
- var dta : Int = 0
- var dtr : Int = 0
- replies2.collect {
- case RemoverActorTest.InclusionTestAlert() => ita += 1
- case RemoverActorTest.InitialJobAlert() => ija += 1
- case RemoverActorTest.FirstJobAlert() => fja += 1
- case RemoverActorTest.ClearanceTestAlert() => cta += 1
- case RemoverActorTest.SecondJobAlert() => sja += 1
- case RemoverActorTest.DeletionTaskAlert() => dta += 1
- case RemoverActorTest.DeletionTaskRunAlert() => dtr += 1
- case msg => assert(false, s"$msg")
- }
- assert(fja == 3 && cta == 3 && sja == 3 && dta == 3 && dtr == 3)
- }
- }
-}
-
-class ClearSelectionRemoverActorTest extends ActorTest {
- ServiceManager.boot ! ServiceManager.Register(RandomPool(2).props(Props[TaskResolver]), "taskResolver")
- final val TestObject2 = new Equipment() { def Definition = new EquipmentDefinition(0) { GUID = PlanetSideGUID(2) } }
-
- "RemoverActor" should {
- "be able to clear certain tasks" in {
- expectNoMsg(500 milliseconds)
- val probe = TestProbe()
- val remover = system.actorOf(Props(classOf[RemoverActorTest.TestRemover], probe), "test-remover")
- remover ! RemoverActor.AddTask(RemoverActorTest.TestObject, Zone.Nowhere, Some(5 seconds))
- remover ! RemoverActor.AddTask(TestObject2, Zone.Nowhere, Some(5 seconds))
-
- val replies = probe.receiveN(4, 5 seconds)
- var ita : Int = 0
- var ija : Int = 0
- replies.collect {
- case RemoverActorTest.InclusionTestAlert() => ita += 1
- case RemoverActorTest.InitialJobAlert() => ija += 1
- case msg => assert(false, s"$msg")
- }
- assert(ita == 2 && ija == 2)
- probe.expectNoMsg(4 seconds) //long delay, longer than standard but not yet 5 seconds
- remover ! RemoverActor.ClearSpecific(List(RemoverActorTest.TestObject), Zone.Nowhere) //cleared
- //
- val reply3 = probe.receiveOne(2 seconds)
- assert(reply3.isInstanceOf[RemoverActorTest.FirstJobAlert])
- val reply4 = probe.receiveOne(300 milliseconds)
- assert(reply4.isInstanceOf[RemoverActorTest.ClearanceTestAlert])
- val reply5 = probe.receiveOne(300 milliseconds)
- assert(reply5.isInstanceOf[RemoverActorTest.SecondJobAlert])
- val reply6 = probe.receiveOne(500 milliseconds)
- assert(reply6.isInstanceOf[RemoverActorTest.DeletionTaskAlert])
- val reply7 = probe.receiveOne(500 milliseconds)
- assert(reply7.isInstanceOf[RemoverActorTest.DeletionTaskRunAlert])
- //wait
- probe.expectNoMsg(2 seconds) //nothing more to do
- }
- }
-}
-
-class ClearAllRemoverActorTest extends ActorTest {
- ServiceManager.boot ! ServiceManager.Register(RandomPool(2).props(Props[TaskResolver]), "taskResolver")
- final val TestObject2 = new Equipment() { def Definition = new EquipmentDefinition(0) { GUID = PlanetSideGUID(2) } }
-
- "RemoverActor" should {
- "be able to clear all tasks, with no more work on them" in {
- expectNoMsg(500 milliseconds)
- val probe = TestProbe()
- val remover = system.actorOf(Props(classOf[RemoverActorTest.TestRemover], probe), "test-remover")
- remover ! RemoverActor.AddTask(RemoverActorTest.TestObject, Zone.Nowhere, Some(5 seconds))
- remover ! RemoverActor.AddTask(TestObject2, Zone.Nowhere, Some(5 seconds))
-
- val replies = probe.receiveN(4, 5 seconds)
- var ita : Int = 0
- var ija : Int = 0
- replies.collect {
- case RemoverActorTest.InclusionTestAlert() => ita += 1
- case RemoverActorTest.InitialJobAlert() => ija += 1
- case msg => assert(false, s"$msg")
- }
- assert(ita == 2 && ija == 2)
- probe.expectNoMsg(4 seconds) //long delay, longer than standard but not yet 5 seconds
- remover ! RemoverActor.ClearAll() //cleared
- //wait
- probe.expectNoMsg(3 seconds) //nothing more to do
- }
- }
-}
-
-class EarlyDeathRemoverActorTest extends ActorTest {
- ServiceManager.boot ! ServiceManager.Register(RandomPool(2).props(Props[TaskResolver]), "taskResolver")
- final val TestObject2 = new Equipment() { def Definition = new EquipmentDefinition(0) { GUID = PlanetSideGUID(2) } }
-
- "RemoverActor" should {
- "be able to hurry certain tasks" in {
- expectNoMsg(500 milliseconds)
- val probe = TestProbe()
- val remover = system.actorOf(Props(classOf[RemoverActorTest.TestRemover], probe), "test-remover")
- remover ! RemoverActor.AddTask(RemoverActorTest.TestObject, Zone.Nowhere, Some(5 seconds))
- remover ! RemoverActor.AddTask(TestObject2, Zone.Nowhere, Some(5 seconds))
-
- val replies = probe.receiveN(4, 5 seconds)
- var ita : Int = 0
- var ija : Int = 0
- replies.collect {
- case RemoverActorTest.InclusionTestAlert() => ita += 1
- case RemoverActorTest.InitialJobAlert() => ija += 1
- case msg => assert(false, s"$msg")
- }
- assert(ita == 2 && ija == 2)
- probe.expectNoMsg(2 seconds)
- remover ! akka.actor.PoisonPill
- //
- val replies2 = probe.receiveN(8, 5 seconds)
- var fja : Int = 0
- var cta : Int = 0
- var sja : Int = 0
- var dta : Int = 0
- var dtr : Int = 0
- replies2.collect {
- case RemoverActorTest.FirstJobAlert() => fja += 1
- case RemoverActorTest.ClearanceTestAlert() => cta += 1
- case RemoverActorTest.SecondJobAlert() => sja += 1
- case RemoverActorTest.DeletionTaskAlert() => dta += 1
- case RemoverActorTest.DeletionTaskRunAlert() => dtr += 1
- case msg => assert(false, s"$msg")
- }
- assert(fja == 2 && cta == 0 && sja == 2 && dta == 2 && dtr == 2) //no clearance tests
- }
- }
-}
-
-object RemoverActorTest {
- final val TestObject = new Equipment() { def Definition = new EquipmentDefinition(0) { GUID = PlanetSideGUID(1) } }
-
- final case class InclusionTestAlert()
-
- final case class InitialJobAlert()
-
- final case class FirstJobAlert()
-
- final case class SecondJobAlert()
-
- final case class ClearanceTestAlert()
-
- final case class DeletionTaskAlert()
-
- final case class DeletionTaskRunAlert()
-
- class TestRemover(probe : TestProbe) extends RemoverActor {
- import net.psforever.objects.guid.{Task, TaskResolver}
- val FirstStandardDuration = 1 seconds
-
- val SecondStandardDuration = 100 milliseconds
-
- def InclusionTest(entry : RemoverActor.Entry) : Boolean = {
- probe.ref ! InclusionTestAlert()
- entry.obj.isInstanceOf[Equipment]
- }
-
- def InitialJob(entry : RemoverActor.Entry) : Unit = {
- probe.ref ! InitialJobAlert()
- }
-
- def FirstJob(entry : RemoverActor.Entry) : Unit = {
- probe.ref ! FirstJobAlert()
- }
-
- override def SecondJob(entry : RemoverActor.Entry) : Unit = {
- probe.ref ! SecondJobAlert()
- super.SecondJob(entry)
- }
-
- def ClearanceTest(entry : RemoverActor.Entry) : Boolean = {
- probe.ref ! ClearanceTestAlert()
- true
- }
-
- def DeletionTask(entry : RemoverActor.Entry) : TaskResolver.GiveTask = {
- probe.ref ! DeletionTaskAlert()
- TaskResolver.GiveTask(new Task() {
- private val localProbe = probe
-
- override def isComplete = Task.Resolution.Success
-
- def Execute(resolver : ActorRef) : Unit = {
- localProbe.ref ! DeletionTaskRunAlert()
- resolver ! scala.util.Success(this)
- }
- })
- }
- }
-}
+//// Copyright (c) 2017 PSForever
+//import akka.actor.{ActorRef, Props}
+//import akka.routing.RandomPool
+//import akka.testkit.TestProbe
+//import net.psforever.objects.PlanetSideGameObject
+//import net.psforever.objects.definition.{EquipmentDefinition, ObjectDefinition}
+//import net.psforever.objects.equipment.Equipment
+//import net.psforever.objects.guid.TaskResolver
+//import net.psforever.objects.zones.{Zone, ZoneMap}
+//import net.psforever.packet.game.PlanetSideGUID
+//import services.{RemoverActor, ServiceManager}
+//
+//import scala.concurrent.duration._
+//
+//class StandardRemoverActorTest extends ActorTest {
+// ServiceManager.boot ! ServiceManager.Register(RandomPool(2).props(Props[TaskResolver]), "taskResolver")
+//
+// "RemoverActor" should {
+// "handle a simple task" in {
+// expectNoMsg(500 milliseconds)
+// val probe = TestProbe()
+// val remover = system.actorOf(Props(classOf[RemoverActorTest.TestRemover], probe), "test-remover")
+// remover ! RemoverActor.AddTask(RemoverActorTest.TestObject, Zone.Nowhere)
+//
+// val reply1 = probe.receiveOne(200 milliseconds)
+// assert(reply1.isInstanceOf[RemoverActorTest.InclusionTestAlert])
+// val reply2 = probe.receiveOne(200 milliseconds)
+// assert(reply2.isInstanceOf[RemoverActorTest.InitialJobAlert])
+// probe.expectNoMsg(1 seconds) //delay
+// val reply3 = probe.receiveOne(300 milliseconds)
+// assert(reply3.isInstanceOf[RemoverActorTest.FirstJobAlert])
+// val reply4 = probe.receiveOne(300 milliseconds)
+// assert(reply4.isInstanceOf[RemoverActorTest.ClearanceTestAlert])
+// val reply5 = probe.receiveOne(300 milliseconds)
+// assert(reply5.isInstanceOf[RemoverActorTest.SecondJobAlert])
+// val reply6 = probe.receiveOne(500 milliseconds)
+// assert(reply6.isInstanceOf[RemoverActorTest.DeletionTaskAlert])
+// val reply7 = probe.receiveOne(500 milliseconds)
+// assert(reply7.isInstanceOf[RemoverActorTest.DeletionTaskRunAlert])
+// }
+// }
+//}
+//
+//class DelayedRemoverActorTest extends ActorTest {
+// ServiceManager.boot ! ServiceManager.Register(RandomPool(2).props(Props[TaskResolver]), "taskResolver")
+//
+// "RemoverActor" should {
+// "handle a simple task (timed)" in {
+// expectNoMsg(500 milliseconds)
+// val probe = TestProbe()
+// val remover = system.actorOf(Props(classOf[RemoverActorTest.TestRemover], probe), "test-remover")
+// remover ! RemoverActor.AddTask(RemoverActorTest.TestObject, Zone.Nowhere, Some(100 milliseconds))
+//
+// val reply1 = probe.receiveOne(200 milliseconds)
+// assert(reply1.isInstanceOf[RemoverActorTest.InclusionTestAlert])
+// val reply2 = probe.receiveOne(200 milliseconds)
+// assert(reply2.isInstanceOf[RemoverActorTest.InitialJobAlert])
+// //no delay
+// val reply3 = probe.receiveOne(300 milliseconds)
+// assert(reply3.isInstanceOf[RemoverActorTest.FirstJobAlert])
+// val reply4 = probe.receiveOne(300 milliseconds)
+// assert(reply4.isInstanceOf[RemoverActorTest.ClearanceTestAlert])
+// val reply5 = probe.receiveOne(300 milliseconds)
+// assert(reply5.isInstanceOf[RemoverActorTest.SecondJobAlert])
+// val reply6 = probe.receiveOne(300 milliseconds)
+// assert(reply6.isInstanceOf[RemoverActorTest.DeletionTaskAlert])
+// val reply7 = probe.receiveOne(300 milliseconds)
+// assert(reply7.isInstanceOf[RemoverActorTest.DeletionTaskRunAlert])
+// }
+// }
+//}
+//
+//class ExcludedRemoverActorTest extends ActorTest {
+// ServiceManager.boot ! ServiceManager.Register(RandomPool(2).props(Props[TaskResolver]), "taskResolver")
+// val AlternateTestObject = new PlanetSideGameObject() { def Definition = new ObjectDefinition(0) { } }
+//
+// "RemoverActor" should {
+// "allow only specific objects" in {
+// expectNoMsg(500 milliseconds)
+// val probe = TestProbe()
+// val remover = system.actorOf(Props(classOf[RemoverActorTest.TestRemover], probe), "test-remover")
+// remover ! RemoverActor.AddTask(AlternateTestObject, Zone.Nowhere)
+//
+// val reply1 = probe.receiveOne(200 milliseconds)
+// assert(reply1.isInstanceOf[RemoverActorTest.InclusionTestAlert])
+// expectNoMsg(2 seconds)
+// //RemoverActor is stalled because it received an object that it was not allowed to act upon
+// }
+// }
+//}
+//
+//class MultipleRemoverActorTest extends ActorTest {
+// ServiceManager.boot ! ServiceManager.Register(RandomPool(2).props(Props[TaskResolver]), "taskResolver")
+// final val TestObject2 = new Equipment() { def Definition = new EquipmentDefinition(0) { GUID = PlanetSideGUID(2) } }
+//
+// "RemoverActor" should {
+// "work on parallel tasks" in {
+// expectNoMsg(500 milliseconds)
+// val probe = TestProbe()
+// val remover = system.actorOf(Props(classOf[RemoverActorTest.TestRemover], probe), "test-remover")
+// remover ! RemoverActor.AddTask(RemoverActorTest.TestObject, Zone.Nowhere)
+// remover ! RemoverActor.AddTask(TestObject2, Zone.Nowhere)
+//
+// val replies = probe.receiveN(14, 5 seconds)
+// var ita : Int = 0
+// var ija : Int = 0
+// var fja : Int = 0
+// var cta : Int = 0
+// var sja : Int = 0
+// var dta : Int = 0
+// var dtr : Int = 0
+// replies.collect {
+// case RemoverActorTest.InclusionTestAlert() => ita += 1
+// case RemoverActorTest.InitialJobAlert() => ija += 1
+// case RemoverActorTest.FirstJobAlert() => fja += 1
+// case RemoverActorTest.ClearanceTestAlert() => cta += 1
+// case RemoverActorTest.SecondJobAlert() => sja += 1
+// case RemoverActorTest.DeletionTaskAlert() => dta += 1
+// case RemoverActorTest.DeletionTaskRunAlert() => dtr += 1
+// case msg => assert(false, s"$msg")
+// }
+// assert(ita == 2 && ija == 2 && fja == 2 && cta == 2 && sja == 2 && dta == 2 && dtr == 2)
+// }
+// }
+//}
+//
+//class HurrySpecificRemoverActorTest extends ActorTest {
+// ServiceManager.boot ! ServiceManager.Register(RandomPool(2).props(Props[TaskResolver]), "taskResolver")
+//
+// "RemoverActor" should {
+// "be able to hurry certain tasks" in {
+// expectNoMsg(500 milliseconds)
+// val probe = TestProbe()
+// val remover = system.actorOf(Props(classOf[RemoverActorTest.TestRemover], probe), "test-remover")
+// remover ! RemoverActor.AddTask(RemoverActorTest.TestObject, Zone.Nowhere, Some(10 minutes)) //TEN MINUTE WAIT
+//
+// val reply1 = probe.receiveOne(200 milliseconds)
+// assert(reply1.isInstanceOf[RemoverActorTest.InclusionTestAlert])
+// val reply2 = probe.receiveOne(200 milliseconds)
+// assert(reply2.isInstanceOf[RemoverActorTest.InitialJobAlert])
+// probe.expectNoMsg(3 seconds) //long delay, longer than standard but not yet 10 minutes
+// remover ! RemoverActor.HurrySpecific(List(RemoverActorTest.TestObject), Zone.Nowhere) //hurried
+// val reply3 = probe.receiveOne(300 milliseconds)
+// assert(reply3.isInstanceOf[RemoverActorTest.FirstJobAlert])
+// val reply4 = probe.receiveOne(300 milliseconds)
+// assert(reply4.isInstanceOf[RemoverActorTest.ClearanceTestAlert])
+// val reply5 = probe.receiveOne(300 milliseconds)
+// assert(reply5.isInstanceOf[RemoverActorTest.SecondJobAlert])
+// val reply6 = probe.receiveOne(500 milliseconds)
+// assert(reply6.isInstanceOf[RemoverActorTest.DeletionTaskAlert])
+// val reply7 = probe.receiveOne(500 milliseconds)
+// assert(reply7.isInstanceOf[RemoverActorTest.DeletionTaskRunAlert])
+// }
+// }
+//}
+//
+//class HurrySelectionRemoverActorTest extends ActorTest {
+// ServiceManager.boot ! ServiceManager.Register(RandomPool(2).props(Props[TaskResolver]), "taskResolver")
+// final val TestObject2 = new Equipment() { def Definition = new EquipmentDefinition(0) { GUID = PlanetSideGUID(2) } }
+//
+// "RemoverActor" should {
+// "be able to hurry certain tasks, but let others finish normally" in {
+// expectNoMsg(500 milliseconds)
+// val probe = TestProbe()
+// val remover = system.actorOf(Props(classOf[RemoverActorTest.TestRemover], probe), "test-remover")
+// remover ! RemoverActor.AddTask(RemoverActorTest.TestObject, Zone.Nowhere, Some(5 seconds))
+// remover ! RemoverActor.AddTask(TestObject2, Zone.Nowhere, Some(10 seconds))
+//
+// val replies = probe.receiveN(4, 5 seconds)
+// var ita : Int = 0
+// var ija : Int = 0
+// replies.collect {
+// case RemoverActorTest.InclusionTestAlert() => ita += 1
+// case RemoverActorTest.InitialJobAlert() => ija += 1
+// case msg => assert(false, s"$msg")
+// }
+// assert(ita == 2 && ija == 2)
+// probe.expectNoMsg(3 seconds) //long delay, longer than standard but not yet 5 seconds
+// remover ! RemoverActor.HurrySpecific(List(RemoverActorTest.TestObject), Zone.Nowhere) //hurried
+// //first
+// val reply3a = probe.receiveOne(300 milliseconds)
+// assert(reply3a.isInstanceOf[RemoverActorTest.FirstJobAlert])
+// val reply4a = probe.receiveOne(300 milliseconds)
+// assert(reply4a.isInstanceOf[RemoverActorTest.ClearanceTestAlert])
+// val reply5a = probe.receiveOne(300 milliseconds)
+// assert(reply5a.isInstanceOf[RemoverActorTest.SecondJobAlert])
+// val reply6a = probe.receiveOne(500 milliseconds)
+// assert(reply6a.isInstanceOf[RemoverActorTest.DeletionTaskAlert])
+// val reply7a = probe.receiveOne(500 milliseconds)
+// assert(reply7a.isInstanceOf[RemoverActorTest.DeletionTaskRunAlert])
+// //second
+// remover ! RemoverActor.HurrySpecific(List(TestObject2), Zone.Nowhere) //hurried
+// val reply3b = probe.receiveOne(300 milliseconds)
+// assert(reply3b.isInstanceOf[RemoverActorTest.FirstJobAlert])
+// val reply4b = probe.receiveOne(300 milliseconds)
+// assert(reply4b.isInstanceOf[RemoverActorTest.ClearanceTestAlert])
+// val reply5b = probe.receiveOne(300 milliseconds)
+// assert(reply5b.isInstanceOf[RemoverActorTest.SecondJobAlert])
+// val reply6b = probe.receiveOne(500 milliseconds)
+// assert(reply6b.isInstanceOf[RemoverActorTest.DeletionTaskAlert])
+// val reply7b = probe.receiveOne(500 milliseconds)
+// assert(reply7b.isInstanceOf[RemoverActorTest.DeletionTaskRunAlert])
+// }
+// }
+//}
+//
+//class HurryMultipleRemoverActorTest extends ActorTest {
+// ServiceManager.boot ! ServiceManager.Register(RandomPool(2).props(Props[TaskResolver]), "taskResolver")
+// final val TestObject2 = new Equipment() { def Definition = new EquipmentDefinition(0) { GUID = PlanetSideGUID(2) } }
+// final val TestObject3 = new Equipment() { def Definition = new EquipmentDefinition(0) { GUID = PlanetSideGUID(3) } }
+//
+// "RemoverActor" should {
+// "be able to hurry certain tasks, but only valid ones" in {
+// expectNoMsg(500 milliseconds)
+// val probe = TestProbe()
+// val remover = system.actorOf(Props(classOf[RemoverActorTest.TestRemover], probe), "test-remover")
+// remover ! RemoverActor.AddTask(RemoverActorTest.TestObject, Zone.Nowhere, Some(5 seconds))
+// remover ! RemoverActor.AddTask(TestObject2, Zone.Nowhere, Some(5 seconds))
+//
+// val replies = probe.receiveN(4, 5 seconds)
+// var ita : Int = 0
+// var ija : Int = 0
+// replies.collect {
+// case RemoverActorTest.InclusionTestAlert() => ita += 1
+// case RemoverActorTest.InitialJobAlert() => ija += 1
+// case msg => assert(false, s"$msg")
+// }
+// assert(ita == 2 && ija == 2)
+// probe.expectNoMsg(3 seconds) //long delay, longer than standard but not yet 5 seconds
+// remover ! RemoverActor.HurrySpecific(List(RemoverActorTest.TestObject, TestObject3), Zone.Nowhere) //multiple hurried, only one valid
+// //first
+// val reply3a = probe.receiveOne(300 milliseconds)
+// assert(reply3a.isInstanceOf[RemoverActorTest.FirstJobAlert])
+// val reply4a = probe.receiveOne(300 milliseconds)
+// assert(reply4a.isInstanceOf[RemoverActorTest.ClearanceTestAlert])
+// val reply5a = probe.receiveOne(300 milliseconds)
+// assert(reply5a.isInstanceOf[RemoverActorTest.SecondJobAlert])
+// val reply6a = probe.receiveOne(500 milliseconds)
+// assert(reply6a.isInstanceOf[RemoverActorTest.DeletionTaskAlert])
+// val reply7a = probe.receiveOne(500 milliseconds)
+// assert(reply7a.isInstanceOf[RemoverActorTest.DeletionTaskRunAlert])
+// //second
+// remover ! RemoverActor.HurrySpecific(List(TestObject2), Zone.Nowhere) //hurried
+// val reply3b = probe.receiveOne(300 milliseconds)
+// assert(reply3b.isInstanceOf[RemoverActorTest.FirstJobAlert])
+// val reply4b = probe.receiveOne(300 milliseconds)
+// assert(reply4b.isInstanceOf[RemoverActorTest.ClearanceTestAlert])
+// val reply5b = probe.receiveOne(300 milliseconds)
+// assert(reply5b.isInstanceOf[RemoverActorTest.SecondJobAlert])
+// val reply6b = probe.receiveOne(500 milliseconds)
+// assert(reply6b.isInstanceOf[RemoverActorTest.DeletionTaskAlert])
+// val reply7b = probe.receiveOne(500 milliseconds)
+// assert(reply7b.isInstanceOf[RemoverActorTest.DeletionTaskRunAlert])
+// }
+// }
+//}
+//
+//class HurryByZoneRemoverActorTest extends ActorTest {
+// ServiceManager.boot ! ServiceManager.Register(RandomPool(2).props(Props[TaskResolver]), "taskResolver")
+// final val TestObject2 = new Equipment() { def Definition = new EquipmentDefinition(0) { GUID = PlanetSideGUID(2) } }
+// final val TestObject3 = new Equipment() { def Definition = new EquipmentDefinition(0) { GUID = PlanetSideGUID(3) } }
+// final val zone = new Zone("test", new ZoneMap("test-map"), 11)
+//
+// "RemoverActor" should {
+// "be able to hurry certain tasks by their zone" in {
+// expectNoMsg(500 milliseconds)
+// val probe = TestProbe()
+// val remover = system.actorOf(Props(classOf[RemoverActorTest.TestRemover], probe), "test-remover")
+// remover ! RemoverActor.AddTask(RemoverActorTest.TestObject, Zone.Nowhere, Some(5 seconds))
+// remover ! RemoverActor.AddTask(TestObject2, zone, Some(5 seconds))
+// remover ! RemoverActor.AddTask(TestObject3, Zone.Nowhere, Some(5 seconds))
+//
+// val replies1 = probe.receiveN(6, 5 seconds)
+// var ita : Int = 0
+// var ija : Int = 0
+// replies1.collect {
+// case RemoverActorTest.InclusionTestAlert() => ita += 1
+// case RemoverActorTest.InitialJobAlert() => ija += 1
+// case msg => assert(false, s"$msg")
+// }
+// assert(ita == 3 && ija == 3)
+// probe.expectNoMsg(3 seconds) //long delay, longer than standard but not yet 5 seconds
+// remover ! RemoverActor.HurrySpecific(List(), Zone.Nowhere) //multiple hurried, only the two entries with Zone.Nowhere
+// //
+// val replies2 = probe.receiveN(10, 5 seconds)
+// var fja : Int = 0
+// var cta : Int = 0
+// var sja : Int = 0
+// var dta : Int = 0
+// var dtr : Int = 0
+// replies2.collect {
+// case RemoverActorTest.InclusionTestAlert() => ita += 1
+// case RemoverActorTest.InitialJobAlert() => ija += 1
+// case RemoverActorTest.FirstJobAlert() => fja += 1
+// case RemoverActorTest.ClearanceTestAlert() => cta += 1
+// case RemoverActorTest.SecondJobAlert() => sja += 1
+// case RemoverActorTest.DeletionTaskAlert() => dta += 1
+// case RemoverActorTest.DeletionTaskRunAlert() => dtr += 1
+// case msg => assert(false, s"$msg")
+// }
+// assert(fja == 2 && cta == 2 && sja == 2 && dta == 2 && dtr == 2)
+// //final
+// remover ! RemoverActor.HurrySpecific(List(), zone) //hurried
+// val reply3b = probe.receiveOne(300 milliseconds)
+// assert(reply3b.isInstanceOf[RemoverActorTest.FirstJobAlert])
+// val reply4b = probe.receiveOne(300 milliseconds)
+// assert(reply4b.isInstanceOf[RemoverActorTest.ClearanceTestAlert])
+// val reply5b = probe.receiveOne(300 milliseconds)
+// assert(reply5b.isInstanceOf[RemoverActorTest.SecondJobAlert])
+// val reply6b = probe.receiveOne(500 milliseconds)
+// assert(reply6b.isInstanceOf[RemoverActorTest.DeletionTaskAlert])
+// val reply7b = probe.receiveOne(500 milliseconds)
+// assert(reply7b.isInstanceOf[RemoverActorTest.DeletionTaskRunAlert])
+// }
+// }
+//}
+//
+//class HurryAllRemoverActorTest extends ActorTest {
+// ServiceManager.boot ! ServiceManager.Register(RandomPool(2).props(Props[TaskResolver]), "taskResolver")
+// final val TestObject2 = new Equipment() { def Definition = new EquipmentDefinition(0) { GUID = PlanetSideGUID(2) } }
+// final val TestObject3 = new Equipment() { def Definition = new EquipmentDefinition(0) { GUID = PlanetSideGUID(3) } }
+//
+// "RemoverActor" should {
+// "be able to hurry all tasks to completion" in {
+// expectNoMsg(500 milliseconds)
+// val probe = TestProbe()
+// val remover = system.actorOf(Props(classOf[RemoverActorTest.TestRemover], probe), "test-remover")
+// remover ! RemoverActor.AddTask(RemoverActorTest.TestObject, Zone.Nowhere, Some(20 seconds))
+// remover ! RemoverActor.AddTask(TestObject2, Zone.Nowhere, Some(15 seconds))
+// remover ! RemoverActor.AddTask(TestObject3, Zone.Nowhere, Some(10 seconds))
+//
+// val replies1 = probe.receiveN(6, 5 seconds)
+// var ita : Int = 0
+// var ija : Int = 0
+// replies1.collect {
+// case RemoverActorTest.InclusionTestAlert() => ita += 1
+// case RemoverActorTest.InitialJobAlert() => ija += 1
+// case msg => assert(false, s"$msg")
+// }
+// assert(ita == 3 && ija == 3)
+// probe.expectNoMsg(3 seconds) //long delay, longer than standard but not yet longer than any of the tasks
+// remover ! RemoverActor.HurryAll() //all hurried
+// //
+// val replies2 = probe.receiveN(15, 5 seconds)
+// var fja : Int = 0
+// var cta : Int = 0
+// var sja : Int = 0
+// var dta : Int = 0
+// var dtr : Int = 0
+// replies2.collect {
+// case RemoverActorTest.InclusionTestAlert() => ita += 1
+// case RemoverActorTest.InitialJobAlert() => ija += 1
+// case RemoverActorTest.FirstJobAlert() => fja += 1
+// case RemoverActorTest.ClearanceTestAlert() => cta += 1
+// case RemoverActorTest.SecondJobAlert() => sja += 1
+// case RemoverActorTest.DeletionTaskAlert() => dta += 1
+// case RemoverActorTest.DeletionTaskRunAlert() => dtr += 1
+// case msg => assert(false, s"$msg")
+// }
+// assert(fja == 3 && cta == 3 && sja == 3 && dta == 3 && dtr == 3)
+// }
+// }
+//}
+//
+//class ClearSelectionRemoverActorTest extends ActorTest {
+// ServiceManager.boot ! ServiceManager.Register(RandomPool(2).props(Props[TaskResolver]), "taskResolver")
+// final val TestObject2 = new Equipment() { def Definition = new EquipmentDefinition(0) { GUID = PlanetSideGUID(2) } }
+//
+// "RemoverActor" should {
+// "be able to clear certain tasks" in {
+// expectNoMsg(500 milliseconds)
+// val probe = TestProbe()
+// val remover = system.actorOf(Props(classOf[RemoverActorTest.TestRemover], probe), "test-remover")
+// remover ! RemoverActor.AddTask(RemoverActorTest.TestObject, Zone.Nowhere, Some(5 seconds))
+// remover ! RemoverActor.AddTask(TestObject2, Zone.Nowhere, Some(5 seconds))
+//
+// val replies = probe.receiveN(4, 5 seconds)
+// var ita : Int = 0
+// var ija : Int = 0
+// replies.collect {
+// case RemoverActorTest.InclusionTestAlert() => ita += 1
+// case RemoverActorTest.InitialJobAlert() => ija += 1
+// case msg => assert(false, s"$msg")
+// }
+// assert(ita == 2 && ija == 2)
+// probe.expectNoMsg(4 seconds) //long delay, longer than standard but not yet 5 seconds
+// remover ! RemoverActor.ClearSpecific(List(RemoverActorTest.TestObject), Zone.Nowhere) //cleared
+// //
+// val reply3 = probe.receiveOne(2 seconds)
+// assert(reply3.isInstanceOf[RemoverActorTest.FirstJobAlert])
+// val reply4 = probe.receiveOne(300 milliseconds)
+// assert(reply4.isInstanceOf[RemoverActorTest.ClearanceTestAlert])
+// val reply5 = probe.receiveOne(300 milliseconds)
+// assert(reply5.isInstanceOf[RemoverActorTest.SecondJobAlert])
+// val reply6 = probe.receiveOne(500 milliseconds)
+// assert(reply6.isInstanceOf[RemoverActorTest.DeletionTaskAlert])
+// val reply7 = probe.receiveOne(500 milliseconds)
+// assert(reply7.isInstanceOf[RemoverActorTest.DeletionTaskRunAlert])
+// //wait
+// probe.expectNoMsg(2 seconds) //nothing more to do
+// }
+// }
+//}
+//
+//class ClearAllRemoverActorTest extends ActorTest {
+// ServiceManager.boot ! ServiceManager.Register(RandomPool(2).props(Props[TaskResolver]), "taskResolver")
+// final val TestObject2 = new Equipment() { def Definition = new EquipmentDefinition(0) { GUID = PlanetSideGUID(2) } }
+//
+// "RemoverActor" should {
+// "be able to clear all tasks, with no more work on them" in {
+// expectNoMsg(500 milliseconds)
+// val probe = TestProbe()
+// val remover = system.actorOf(Props(classOf[RemoverActorTest.TestRemover], probe), "test-remover")
+// remover ! RemoverActor.AddTask(RemoverActorTest.TestObject, Zone.Nowhere, Some(5 seconds))
+// remover ! RemoverActor.AddTask(TestObject2, Zone.Nowhere, Some(5 seconds))
+//
+// val replies = probe.receiveN(4, 5 seconds)
+// var ita : Int = 0
+// var ija : Int = 0
+// replies.collect {
+// case RemoverActorTest.InclusionTestAlert() => ita += 1
+// case RemoverActorTest.InitialJobAlert() => ija += 1
+// case msg => assert(false, s"$msg")
+// }
+// assert(ita == 2 && ija == 2)
+// probe.expectNoMsg(4 seconds) //long delay, longer than standard but not yet 5 seconds
+// remover ! RemoverActor.ClearAll() //cleared
+// //wait
+// probe.expectNoMsg(3 seconds) //nothing more to do
+// }
+// }
+//}
+//
+//class EarlyDeathRemoverActorTest extends ActorTest {
+// ServiceManager.boot ! ServiceManager.Register(RandomPool(2).props(Props[TaskResolver]), "taskResolver")
+// final val TestObject2 = new Equipment() { def Definition = new EquipmentDefinition(0) { GUID = PlanetSideGUID(2) } }
+//
+// "RemoverActor" should {
+// "be able to hurry certain tasks" in {
+// expectNoMsg(500 milliseconds)
+// val probe = TestProbe()
+// val remover = system.actorOf(Props(classOf[RemoverActorTest.TestRemover], probe), "test-remover")
+// remover ! RemoverActor.AddTask(RemoverActorTest.TestObject, Zone.Nowhere, Some(5 seconds))
+// remover ! RemoverActor.AddTask(TestObject2, Zone.Nowhere, Some(5 seconds))
+//
+// val replies = probe.receiveN(4, 5 seconds)
+// var ita : Int = 0
+// var ija : Int = 0
+// replies.collect {
+// case RemoverActorTest.InclusionTestAlert() => ita += 1
+// case RemoverActorTest.InitialJobAlert() => ija += 1
+// case msg => assert(false, s"$msg")
+// }
+// assert(ita == 2 && ija == 2)
+// probe.expectNoMsg(2 seconds)
+// remover ! akka.actor.PoisonPill
+// //
+// val replies2 = probe.receiveN(8, 5 seconds)
+// var fja : Int = 0
+// var cta : Int = 0
+// var sja : Int = 0
+// var dta : Int = 0
+// var dtr : Int = 0
+// replies2.collect {
+// case RemoverActorTest.FirstJobAlert() => fja += 1
+// case RemoverActorTest.ClearanceTestAlert() => cta += 1
+// case RemoverActorTest.SecondJobAlert() => sja += 1
+// case RemoverActorTest.DeletionTaskAlert() => dta += 1
+// case RemoverActorTest.DeletionTaskRunAlert() => dtr += 1
+// case msg => assert(false, s"$msg")
+// }
+// assert(fja == 2 && cta == 0 && sja == 2 && dta == 2 && dtr == 2) //no clearance tests
+// }
+// }
+//}
+//
+//object RemoverActorTest {
+// final val TestObject = new Equipment() { def Definition = new EquipmentDefinition(0) { GUID = PlanetSideGUID(1) } }
+//
+// final case class InclusionTestAlert()
+//
+// final case class InitialJobAlert()
+//
+// final case class FirstJobAlert()
+//
+// final case class SecondJobAlert()
+//
+// final case class ClearanceTestAlert()
+//
+// final case class DeletionTaskAlert()
+//
+// final case class DeletionTaskRunAlert()
+//
+// class TestRemover(probe : TestProbe) extends RemoverActor {
+// import net.psforever.objects.guid.{Task, TaskResolver}
+// val FirstStandardDuration = 1 seconds
+//
+// val SecondStandardDuration = 100 milliseconds
+//
+// def InclusionTest(entry : RemoverActor.Entry) : Boolean = {
+// probe.ref ! InclusionTestAlert()
+// entry.obj.isInstanceOf[Equipment]
+// }
+//
+// def InitialJob(entry : RemoverActor.Entry) : Unit = {
+// probe.ref ! InitialJobAlert()
+// }
+//
+// def FirstJob(entry : RemoverActor.Entry) : Unit = {
+// probe.ref ! FirstJobAlert()
+// }
+//
+// override def SecondJob(entry : RemoverActor.Entry) : Unit = {
+// probe.ref ! SecondJobAlert()
+// super.SecondJob(entry)
+// }
+//
+// def ClearanceTest(entry : RemoverActor.Entry) : Boolean = {
+// probe.ref ! ClearanceTestAlert()
+// true
+// }
+//
+// def DeletionTask(entry : RemoverActor.Entry) : TaskResolver.GiveTask = {
+// probe.ref ! DeletionTaskAlert()
+// TaskResolver.GiveTask(new Task() {
+// private val localProbe = probe
+//
+// override def isComplete = Task.Resolution.Success
+//
+// def Execute(resolver : ActorRef) : Unit = {
+// localProbe.ref ! DeletionTaskRunAlert()
+// resolver ! scala.util.Success(this)
+// }
+// })
+// }
+// }
+//}