mirror of
https://github.com/2revoemag/PSF-BotServer.git
synced 2026-07-12 15:04:39 +00:00
added an enumeration for character voices, which prompoted a massive file update; separated BasicCharacterData from CharacterAppearanceData; added some yet unimplemented support to WSA and VehicleData; completely commented out RemoveActorTests for later repairs so they do not break in Travis CI
This commit is contained in:
parent
c664f96bd4
commit
a20e75d07c
48 changed files with 864 additions and 811 deletions
|
|
@ -4,12 +4,12 @@ package net.psforever.objects
|
||||||
import net.psforever.objects.definition.{AvatarDefinition, ImplantDefinition}
|
import net.psforever.objects.definition.{AvatarDefinition, ImplantDefinition}
|
||||||
import net.psforever.objects.equipment.EquipmentSize
|
import net.psforever.objects.equipment.EquipmentSize
|
||||||
import net.psforever.objects.loadouts.Loadout
|
import net.psforever.objects.loadouts.Loadout
|
||||||
import net.psforever.types.{CertificationType, CharacterGender, ImplantType, PlanetSideEmpire}
|
import net.psforever.types._
|
||||||
|
|
||||||
import scala.annotation.tailrec
|
import scala.annotation.tailrec
|
||||||
import scala.collection.mutable
|
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 */
|
/** Battle Experience Points */
|
||||||
private var bep : Long = 0
|
private var bep : Long = 0
|
||||||
/** Command Experience Points */
|
/** Command Experience Points */
|
||||||
|
|
@ -212,7 +212,7 @@ class Avatar(val name : String, val faction : PlanetSideEmpire.Value, val sex :
|
||||||
object Avatar {
|
object Avatar {
|
||||||
final private val definition : AvatarDefinition = new AvatarDefinition(121)
|
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)
|
new Avatar(name, faction, sex, head, voice)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -58,7 +58,7 @@ class Player(private val core : Avatar) extends PlanetSideGameObject with Factio
|
||||||
|
|
||||||
def Head : Int = core.head
|
def Head : Int = core.head
|
||||||
|
|
||||||
def Voice : Int = core.voice
|
def Voice : CharacterVoice.Value = core.voice
|
||||||
|
|
||||||
def isAlive : Boolean = alive
|
def isAlive : Boolean = alive
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ package net.psforever.objects.definition.converter
|
||||||
import net.psforever.objects.{EquipmentSlot, Player}
|
import net.psforever.objects.{EquipmentSlot, Player}
|
||||||
import net.psforever.objects.equipment.Equipment
|
import net.psforever.objects.equipment.Equipment
|
||||||
import net.psforever.packet.game.objectcreate._
|
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.annotation.tailrec
|
||||||
import scala.util.{Failure, Success, Try}
|
import scala.util.{Failure, Success, Try}
|
||||||
|
|
@ -45,7 +45,7 @@ class CharacterSelectConverter extends AvatarConverter {
|
||||||
*/
|
*/
|
||||||
private def MakeAppearanceData(obj : Player) : (Int)=>CharacterAppearanceData = {
|
private def MakeAppearanceData(obj : Player) : (Int)=>CharacterAppearanceData = {
|
||||||
CharacterAppearanceData(
|
CharacterAppearanceData(
|
||||||
BasicCharacterData(obj.Name, obj.Faction, obj.Sex, obj.Head, 1),
|
BasicCharacterData(obj.Name, obj.Faction, obj.Sex, obj.Head, CharacterVoice.Mute),
|
||||||
0,
|
0,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ package net.psforever.objects.definition.converter
|
||||||
import net.psforever.objects.{EquipmentSlot, Player}
|
import net.psforever.objects.{EquipmentSlot, Player}
|
||||||
import net.psforever.objects.equipment.Equipment
|
import net.psforever.objects.equipment.Equipment
|
||||||
import net.psforever.packet.game.objectcreate._
|
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.annotation.tailrec
|
||||||
import scala.util.{Failure, Success, Try}
|
import scala.util.{Failure, Success, Try}
|
||||||
|
|
@ -36,7 +36,7 @@ class CorpseConverter extends AvatarConverter {
|
||||||
*/
|
*/
|
||||||
private def MakeAppearanceData(obj : Player) : (Int)=>CharacterAppearanceData = {
|
private def MakeAppearanceData(obj : Player) : (Int)=>CharacterAppearanceData = {
|
||||||
CharacterAppearanceData(
|
CharacterAppearanceData(
|
||||||
BasicCharacterData(obj.Name, obj.Faction, CharacterGender.Male, 0, 0),
|
BasicCharacterData(obj.Name, obj.Faction, CharacterGender.Male, 0, CharacterVoice.Mute),
|
||||||
0,
|
0,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
|
|
|
||||||
|
|
@ -35,14 +35,14 @@ class VehicleConverter extends ObjectCreateConverter[Vehicle]() {
|
||||||
false,
|
false,
|
||||||
obj.Cloaked,
|
obj.Cloaked,
|
||||||
SpecificFormatData(obj),
|
SpecificFormatData(obj),
|
||||||
Some(InventoryData((MakeSeats(obj) ++ MakeUtilities(obj) ++ MakeMountings(obj)).sortBy(_.parentSlot)))
|
Some(InventoryData(MakeDriverSeat(obj) ++ MakeUtilities(obj) ++ MakeMountings(obj)))
|
||||||
)(SpecificFormatModifier)
|
)(SpecificFormatModifier)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
private def MakeSeats(obj : Vehicle) : List[InventoryItemData.InventoryItem] = {
|
private def MakeDriverSeat(obj : Vehicle) : List[InventoryItemData.InventoryItem] = {
|
||||||
val offset : Long = VehicleData.InitialStreamLengthToSeatEntries(true, SpecificFormatModifier)
|
val offset : Long = VehicleData.InitialStreamLengthToSeatEntries(obj.Velocity.nonEmpty, SpecificFormatModifier)
|
||||||
obj.Seats(0).Occupant match { //TODO just the driver for now to avoid issues with seat permissions
|
obj.Seats(0).Occupant match {
|
||||||
case Some(player) =>
|
case Some(player) =>
|
||||||
val mountedPlayer = VehicleData.PlayerData(
|
val mountedPlayer = VehicleData.PlayerData(
|
||||||
AvatarConverter.MakeAppearanceData(player),
|
AvatarConverter.MakeAppearanceData(player),
|
||||||
|
|
@ -51,14 +51,32 @@ class VehicleConverter extends ObjectCreateConverter[Vehicle]() {
|
||||||
AvatarConverter.GetDrawnSlot(player),
|
AvatarConverter.GetDrawnSlot(player),
|
||||||
offset
|
offset
|
||||||
)
|
)
|
||||||
val entry = InventoryItemData(ObjectClass.avatar, player.GUID, 0, mountedPlayer)
|
List(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)
|
|
||||||
case None =>
|
case None =>
|
||||||
Nil
|
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] = {
|
private def MakeMountings(obj : Vehicle) : List[InventoryItemData.InventoryItem] = {
|
||||||
obj.Weapons.map({
|
obj.Weapons.map({
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
package net.psforever.packet.game
|
package net.psforever.packet.game
|
||||||
|
|
||||||
import net.psforever.packet.{GamePacketOpcode, Marshallable, PacketHelpers, PlanetSideGamePacket}
|
import net.psforever.packet.{GamePacketOpcode, Marshallable, PacketHelpers, PlanetSideGamePacket}
|
||||||
import net.psforever.types.{CharacterGender, PlanetSideEmpire}
|
import net.psforever.types.{CharacterGender, CharacterVoice, PlanetSideEmpire}
|
||||||
import scodec.{Attempt, Codec, Err}
|
import scodec.{Attempt, Codec, Err}
|
||||||
import scodec.codecs._
|
import scodec.codecs._
|
||||||
import shapeless.{::, HNil}
|
import shapeless.{::, HNil}
|
||||||
|
|
@ -12,7 +12,7 @@ import shapeless.{::, HNil}
|
||||||
*/
|
*/
|
||||||
final case class CharacterCreateRequestMessage(name : String,
|
final case class CharacterCreateRequestMessage(name : String,
|
||||||
headId : Int,
|
headId : Int,
|
||||||
voiceId : Int,
|
voiceId : CharacterVoice.Value,
|
||||||
gender : CharacterGender.Value,
|
gender : CharacterGender.Value,
|
||||||
empire : PlanetSideEmpire.Value)
|
empire : PlanetSideEmpire.Value)
|
||||||
extends PlanetSideGamePacket {
|
extends PlanetSideGamePacket {
|
||||||
|
|
@ -22,10 +22,12 @@ final case class CharacterCreateRequestMessage(name : String,
|
||||||
}
|
}
|
||||||
|
|
||||||
object CharacterCreateRequestMessage extends Marshallable[CharacterCreateRequestMessage] {
|
object CharacterCreateRequestMessage extends Marshallable[CharacterCreateRequestMessage] {
|
||||||
|
private val character_voice_codec = PacketHelpers.createEnumerationCodec(CharacterVoice, uint8)
|
||||||
|
|
||||||
implicit val codec : Codec[CharacterCreateRequestMessage] = (
|
implicit val codec : Codec[CharacterCreateRequestMessage] = (
|
||||||
("name" | PacketHelpers.encodedWideString) ::
|
("name" | PacketHelpers.encodedWideString) ::
|
||||||
("headId" | uint8L) ::
|
("headId" | uint8L) ::
|
||||||
("voiceId" | uint8L) ::
|
("voiceId" | character_voice_codec) ::
|
||||||
("gender" | CharacterGender.codec) ::
|
("gender" | CharacterGender.codec) ::
|
||||||
("empire" | PlanetSideEmpire.codec)
|
("empire" | PlanetSideEmpire.codec)
|
||||||
).exmap[CharacterCreateRequestMessage] (
|
).exmap[CharacterCreateRequestMessage] (
|
||||||
|
|
|
||||||
|
|
@ -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.<br>
|
||||||
|
* <br>
|
||||||
|
* 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`<br>
|
||||||
|
* `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)
|
||||||
|
|
@ -7,50 +7,6 @@ import scodec.{Attempt, Codec, Err}
|
||||||
import scodec.codecs._
|
import scodec.codecs._
|
||||||
import shapeless.{::, HNil}
|
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.<br>
|
|
||||||
* <br>
|
|
||||||
* 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`<br>
|
|
||||||
* `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.<br>
|
* A part of a representation of the avatar portion of `ObjectCreateDetailedMessage` packet data.<br>
|
||||||
* <br>
|
* <br>
|
||||||
|
|
@ -77,6 +33,7 @@ final case class BasicCharacterData(name : String,
|
||||||
* `ExoSuitType`<br>
|
* `ExoSuitType`<br>
|
||||||
* `GrenadeState`<br>
|
* `GrenadeState`<br>
|
||||||
* `RibbonBars`
|
* `RibbonBars`
|
||||||
|
* @see `http://www.planetside-universe.com/p-outfit-decals-31.htm`
|
||||||
* @param app the player's cardinal appearance settings
|
* @param app the player's cardinal appearance settings
|
||||||
* @param voice2 na;
|
* @param voice2 na;
|
||||||
* affects the frequency by which the character's voice is heard (somehow);
|
* 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
|
//factor guard bool values into the base size, not its corresponding optional field
|
||||||
val nameStringSize : Long = StreamBitSize.stringBitSize(app.name, 16) + name_padding
|
val nameStringSize : Long = StreamBitSize.stringBitSize(app.name, 16) + name_padding
|
||||||
val outfitStringSize : Long = StreamBitSize.stringBitSize(outfit_name, 16) +
|
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)
|
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
|
ignore(2) :: //unknown
|
||||||
("sex" | CharacterGender.codec) ::
|
("sex" | CharacterGender.codec) ::
|
||||||
("head" | uint8L) ::
|
("head" | uint8L) ::
|
||||||
("voice" | uint(3)) ::
|
("voice" | CharacterVoice.codec) ::
|
||||||
("voice2" | uint2L) ::
|
("voice2" | uint2L) ::
|
||||||
ignore(78) :: //unknown
|
ignore(78) :: //unknown
|
||||||
uint16L :: //usually either 0 or 65535
|
uint16L :: //usually either 0 or 65535
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ import net.psforever.packet.game.PlanetSideGUID
|
||||||
import net.psforever.packet.{Marshallable, PacketHelpers}
|
import net.psforever.packet.{Marshallable, PacketHelpers}
|
||||||
import scodec.Attempt.{Failure, Successful}
|
import scodec.Attempt.{Failure, Successful}
|
||||||
import scodec.{Attempt, Codec, Err}
|
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 scodec.codecs._
|
||||||
import net.psforever.types.{DriveState, PlanetSideEmpire}
|
import net.psforever.types.{DriveState, PlanetSideEmpire}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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))
|
||||||
|
}
|
||||||
|
|
@ -4,7 +4,7 @@ package game
|
||||||
import org.specs2.mutable._
|
import org.specs2.mutable._
|
||||||
import net.psforever.packet._
|
import net.psforever.packet._
|
||||||
import net.psforever.packet.game._
|
import net.psforever.packet.game._
|
||||||
import net.psforever.types.{CharacterGender, PlanetSideEmpire}
|
import net.psforever.types.{CharacterGender, CharacterVoice, PlanetSideEmpire}
|
||||||
import scodec.bits._
|
import scodec.bits._
|
||||||
|
|
||||||
class CharacterCreateRequestMessageTest extends Specification {
|
class CharacterCreateRequestMessageTest extends Specification {
|
||||||
|
|
@ -15,7 +15,7 @@ class CharacterCreateRequestMessageTest extends Specification {
|
||||||
case CharacterCreateRequestMessage(name, head, voice, gender, faction) =>
|
case CharacterCreateRequestMessage(name, head, voice, gender, faction) =>
|
||||||
name mustEqual "TestChar"
|
name mustEqual "TestChar"
|
||||||
head mustEqual 50
|
head mustEqual 50
|
||||||
voice mustEqual 5
|
voice mustEqual CharacterVoice.Voice5
|
||||||
gender mustEqual CharacterGender.Female
|
gender mustEqual CharacterGender.Female
|
||||||
faction mustEqual PlanetSideEmpire.NC
|
faction mustEqual PlanetSideEmpire.NC
|
||||||
case _ =>
|
case _ =>
|
||||||
|
|
@ -24,7 +24,7 @@ class CharacterCreateRequestMessageTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"encode" in {
|
"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
|
val pkt = PacketCoding.EncodePacket(msg).require.toByteVector
|
||||||
|
|
||||||
pkt mustEqual string
|
pkt mustEqual string
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@ class CharacterDataTest extends Specification {
|
||||||
basic.app.faction mustEqual PlanetSideEmpire.TR
|
basic.app.faction mustEqual PlanetSideEmpire.TR
|
||||||
basic.app.sex mustEqual CharacterGender.Male
|
basic.app.sex mustEqual CharacterGender.Male
|
||||||
basic.app.head mustEqual 5
|
basic.app.head mustEqual 5
|
||||||
basic.app.voice mustEqual 5
|
basic.app.voice mustEqual CharacterVoice.Voice5
|
||||||
basic.voice2 mustEqual 3
|
basic.voice2 mustEqual 3
|
||||||
basic.black_ops mustEqual false
|
basic.black_ops mustEqual false
|
||||||
basic.jammered mustEqual false
|
basic.jammered mustEqual false
|
||||||
|
|
@ -130,7 +130,7 @@ class CharacterDataTest extends Specification {
|
||||||
basic.app.faction mustEqual PlanetSideEmpire.TR
|
basic.app.faction mustEqual PlanetSideEmpire.TR
|
||||||
basic.app.sex mustEqual CharacterGender.Male
|
basic.app.sex mustEqual CharacterGender.Male
|
||||||
basic.app.head mustEqual 5
|
basic.app.head mustEqual 5
|
||||||
basic.app.voice mustEqual 5
|
basic.app.voice mustEqual CharacterVoice.Voice5
|
||||||
basic.voice2 mustEqual 3
|
basic.voice2 mustEqual 3
|
||||||
basic.black_ops mustEqual false
|
basic.black_ops mustEqual false
|
||||||
basic.jammered mustEqual false
|
basic.jammered mustEqual false
|
||||||
|
|
@ -174,7 +174,7 @@ class CharacterDataTest extends Specification {
|
||||||
basic.app.faction mustEqual PlanetSideEmpire.VS
|
basic.app.faction mustEqual PlanetSideEmpire.VS
|
||||||
basic.app.sex mustEqual CharacterGender.Male
|
basic.app.sex mustEqual CharacterGender.Male
|
||||||
basic.app.head mustEqual 10
|
basic.app.head mustEqual 10
|
||||||
basic.app.voice mustEqual 2
|
basic.app.voice mustEqual CharacterVoice.Voice2
|
||||||
basic.voice2 mustEqual 0
|
basic.voice2 mustEqual 0
|
||||||
basic.black_ops mustEqual false
|
basic.black_ops mustEqual false
|
||||||
basic.jammered mustEqual false
|
basic.jammered mustEqual false
|
||||||
|
|
@ -226,7 +226,7 @@ class CharacterDataTest extends Specification {
|
||||||
PlanetSideEmpire.TR,
|
PlanetSideEmpire.TR,
|
||||||
CharacterGender.Male,
|
CharacterGender.Male,
|
||||||
5,
|
5,
|
||||||
5
|
CharacterVoice.Voice5
|
||||||
),
|
),
|
||||||
3,
|
3,
|
||||||
false,
|
false,
|
||||||
|
|
@ -282,7 +282,7 @@ class CharacterDataTest extends Specification {
|
||||||
PlanetSideEmpire.TR,
|
PlanetSideEmpire.TR,
|
||||||
CharacterGender.Male,
|
CharacterGender.Male,
|
||||||
5,
|
5,
|
||||||
5
|
CharacterVoice.Voice5
|
||||||
),
|
),
|
||||||
3,
|
3,
|
||||||
false,
|
false,
|
||||||
|
|
@ -335,7 +335,7 @@ class CharacterDataTest extends Specification {
|
||||||
PlanetSideEmpire.VS,
|
PlanetSideEmpire.VS,
|
||||||
CharacterGender.Male,
|
CharacterGender.Male,
|
||||||
10,
|
10,
|
||||||
2
|
CharacterVoice.Voice2
|
||||||
),
|
),
|
||||||
0,
|
0,
|
||||||
false,
|
false,
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@ class DetailedCharacterDataTest extends Specification {
|
||||||
basic.app.faction mustEqual PlanetSideEmpire.VS
|
basic.app.faction mustEqual PlanetSideEmpire.VS
|
||||||
basic.app.sex mustEqual CharacterGender.Female
|
basic.app.sex mustEqual CharacterGender.Female
|
||||||
basic.app.head mustEqual 41
|
basic.app.head mustEqual 41
|
||||||
basic.app.voice mustEqual 1 //female 1
|
basic.app.voice mustEqual CharacterVoice.Voice1
|
||||||
basic.voice2 mustEqual 3
|
basic.voice2 mustEqual 3
|
||||||
basic.black_ops mustEqual false
|
basic.black_ops mustEqual false
|
||||||
basic.jammered mustEqual false
|
basic.jammered mustEqual false
|
||||||
|
|
@ -174,7 +174,7 @@ class DetailedCharacterDataTest extends Specification {
|
||||||
basic.app.faction mustEqual PlanetSideEmpire.VS
|
basic.app.faction mustEqual PlanetSideEmpire.VS
|
||||||
basic.app.sex mustEqual CharacterGender.Female
|
basic.app.sex mustEqual CharacterGender.Female
|
||||||
basic.app.head mustEqual 41
|
basic.app.head mustEqual 41
|
||||||
basic.app.voice mustEqual 1 //female 1
|
basic.app.voice mustEqual CharacterVoice.Voice1
|
||||||
basic.voice2 mustEqual 3
|
basic.voice2 mustEqual 3
|
||||||
basic.black_ops mustEqual false
|
basic.black_ops mustEqual false
|
||||||
basic.jammered mustEqual false
|
basic.jammered mustEqual false
|
||||||
|
|
@ -380,7 +380,7 @@ class DetailedCharacterDataTest extends Specification {
|
||||||
PlanetSideEmpire.VS,
|
PlanetSideEmpire.VS,
|
||||||
CharacterGender.Female,
|
CharacterGender.Female,
|
||||||
41,
|
41,
|
||||||
1
|
CharacterVoice.Voice1
|
||||||
),
|
),
|
||||||
3,
|
3,
|
||||||
false,
|
false,
|
||||||
|
|
@ -451,7 +451,7 @@ class DetailedCharacterDataTest extends Specification {
|
||||||
PlanetSideEmpire.VS,
|
PlanetSideEmpire.VS,
|
||||||
CharacterGender.Female,
|
CharacterGender.Female,
|
||||||
41,
|
41,
|
||||||
1
|
CharacterVoice.Voice1
|
||||||
),
|
),
|
||||||
3,
|
3,
|
||||||
false,
|
false,
|
||||||
|
|
@ -519,7 +519,7 @@ class DetailedCharacterDataTest extends Specification {
|
||||||
None
|
None
|
||||||
)
|
)
|
||||||
val app : (Int)=>CharacterAppearanceData = CharacterAppearanceData(
|
val app : (Int)=>CharacterAppearanceData = CharacterAppearanceData(
|
||||||
BasicCharacterData("KiCkJr", PlanetSideEmpire.NC, CharacterGender.Male, 24, 4),
|
BasicCharacterData("KiCkJr", PlanetSideEmpire.NC, CharacterGender.Male, 24, CharacterVoice.Voice4),
|
||||||
3,
|
3,
|
||||||
false, false,
|
false, false,
|
||||||
ExoSuitType.Agile,
|
ExoSuitType.Agile,
|
||||||
|
|
|
||||||
|
|
@ -56,7 +56,7 @@ class MountedVehiclesTest extends Specification {
|
||||||
app.app.faction mustEqual PlanetSideEmpire.TR
|
app.app.faction mustEqual PlanetSideEmpire.TR
|
||||||
app.app.sex mustEqual CharacterGender.Male
|
app.app.sex mustEqual CharacterGender.Male
|
||||||
app.app.head mustEqual 5
|
app.app.head mustEqual 5
|
||||||
app.app.voice mustEqual 5
|
app.app.voice mustEqual CharacterVoice.Voice5
|
||||||
app.voice2 mustEqual 3
|
app.voice2 mustEqual 3
|
||||||
app.black_ops mustEqual false
|
app.black_ops mustEqual false
|
||||||
app.lfs mustEqual false
|
app.lfs mustEqual false
|
||||||
|
|
@ -106,7 +106,7 @@ class MountedVehiclesTest extends Specification {
|
||||||
|
|
||||||
"encode (Scrawny Ronnie's mosquito)" in {
|
"encode (Scrawny Ronnie's mosquito)" in {
|
||||||
val app : (Int)=>CharacterAppearanceData = CharacterAppearanceData(
|
val app : (Int)=>CharacterAppearanceData = CharacterAppearanceData(
|
||||||
BasicCharacterData("ScrawnyRonnie", PlanetSideEmpire.TR, CharacterGender.Male, 5, 5),
|
BasicCharacterData("ScrawnyRonnie", PlanetSideEmpire.TR, CharacterGender.Male, 5, CharacterVoice.Voice5),
|
||||||
3,
|
3,
|
||||||
false, false,
|
false, false,
|
||||||
ExoSuitType.Agile,
|
ExoSuitType.Agile,
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ import net.psforever.objects.serverobject.pad.{VehicleSpawnControl, VehicleSpawn
|
||||||
import net.psforever.objects.{Avatar, GlobalDefinitions, Player, Vehicle}
|
import net.psforever.objects.{Avatar, GlobalDefinitions, Player, Vehicle}
|
||||||
import net.psforever.objects.serverobject.pad.process.{AutoDriveControls, VehicleSpawnControlGuided}
|
import net.psforever.objects.serverobject.pad.process.{AutoDriveControls, VehicleSpawnControlGuided}
|
||||||
import net.psforever.packet.game.PlanetSideGUID
|
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 org.specs2.mutable.Specification
|
||||||
|
|
||||||
import scala.concurrent.duration._
|
import scala.concurrent.duration._
|
||||||
|
|
@ -389,7 +389,7 @@ class GuidedControlTest1 extends ActorTest {
|
||||||
"unguided" in {
|
"unguided" in {
|
||||||
val vehicle = Vehicle(GlobalDefinitions.mediumtransport)
|
val vehicle = Vehicle(GlobalDefinitions.mediumtransport)
|
||||||
vehicle.GUID = PlanetSideGUID(1)
|
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
|
driver.VehicleSeated = vehicle.GUID
|
||||||
val sendTo = TestProbe()
|
val sendTo = TestProbe()
|
||||||
val order = VehicleSpawnControl.Order(driver, vehicle, sendTo.ref)
|
val order = VehicleSpawnControl.Order(driver, vehicle, sendTo.ref)
|
||||||
|
|
@ -411,7 +411,7 @@ class GuidedControlTest2 extends ActorTest {
|
||||||
val vehicle = Vehicle(GlobalDefinitions.mediumtransport)
|
val vehicle = Vehicle(GlobalDefinitions.mediumtransport)
|
||||||
vehicle.GUID = PlanetSideGUID(1)
|
vehicle.GUID = PlanetSideGUID(1)
|
||||||
vehicle.Velocity = Vector3(1,1,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
|
driver.VehicleSeated = vehicle.GUID
|
||||||
val sendTo = TestProbe()
|
val sendTo = TestProbe()
|
||||||
val order = VehicleSpawnControl.Order(driver, vehicle, sendTo.ref)
|
val order = VehicleSpawnControl.Order(driver, vehicle, sendTo.ref)
|
||||||
|
|
@ -436,7 +436,7 @@ class GuidedControlTest3 extends ActorTest {
|
||||||
val vehicle = Vehicle(GlobalDefinitions.mediumtransport)
|
val vehicle = Vehicle(GlobalDefinitions.mediumtransport)
|
||||||
vehicle.GUID = PlanetSideGUID(1)
|
vehicle.GUID = PlanetSideGUID(1)
|
||||||
vehicle.Velocity = Vector3(1,1,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
|
driver.VehicleSeated = vehicle.GUID
|
||||||
val sendTo = TestProbe()
|
val sendTo = TestProbe()
|
||||||
val order = VehicleSpawnControl.Order(driver, vehicle, sendTo.ref)
|
val order = VehicleSpawnControl.Order(driver, vehicle, sendTo.ref)
|
||||||
|
|
@ -457,7 +457,7 @@ class GuidedControlTest3 extends ActorTest {
|
||||||
assert(msg2.isInstanceOf[VehicleSpawnControlGuided.GuidedControl])
|
assert(msg2.isInstanceOf[VehicleSpawnControlGuided.GuidedControl])
|
||||||
assert(msg2.asInstanceOf[VehicleSpawnControlGuided.GuidedControl].command == AutoDriveControls.State.Wait)
|
assert(msg2.asInstanceOf[VehicleSpawnControlGuided.GuidedControl].command == AutoDriveControls.State.Wait)
|
||||||
sendTo.expectNoMsg(1000 milliseconds)
|
sendTo.expectNoMsg(1000 milliseconds)
|
||||||
val msg3 = sendTo.receiveOne(100 milliseconds)
|
val msg3 = sendTo.receiveOne(300 milliseconds)
|
||||||
assert(msg3.isInstanceOf[VehicleSpawnControlGuided.GuidedControl])
|
assert(msg3.isInstanceOf[VehicleSpawnControlGuided.GuidedControl])
|
||||||
assert(msg3.asInstanceOf[VehicleSpawnControlGuided.GuidedControl].command == AutoDriveControls.State.Drive)
|
assert(msg3.asInstanceOf[VehicleSpawnControlGuided.GuidedControl].command == AutoDriveControls.State.Drive)
|
||||||
val msg4 = sendTo.receiveOne(200 milliseconds)
|
val msg4 = sendTo.receiveOne(200 milliseconds)
|
||||||
|
|
@ -474,7 +474,7 @@ class GuidedControlTest4 extends ActorTest {
|
||||||
val vehicle = Vehicle(GlobalDefinitions.mediumtransport)
|
val vehicle = Vehicle(GlobalDefinitions.mediumtransport)
|
||||||
vehicle.GUID = PlanetSideGUID(1)
|
vehicle.GUID = PlanetSideGUID(1)
|
||||||
vehicle.Velocity = Vector3(1,1,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
|
driver.VehicleSeated = vehicle.GUID
|
||||||
val sendTo = TestProbe()
|
val sendTo = TestProbe()
|
||||||
val order = VehicleSpawnControl.Order(driver, vehicle, sendTo.ref)
|
val order = VehicleSpawnControl.Order(driver, vehicle, sendTo.ref)
|
||||||
|
|
|
||||||
|
|
@ -5,12 +5,12 @@ import net.psforever.objects.GlobalDefinitions._
|
||||||
import net.psforever.objects._
|
import net.psforever.objects._
|
||||||
import net.psforever.objects.loadouts._
|
import net.psforever.objects.loadouts._
|
||||||
import net.psforever.objects.definition.ImplantDefinition
|
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._
|
import org.specs2.mutable._
|
||||||
|
|
||||||
class AvatarTest extends Specification {
|
class AvatarTest extends Specification {
|
||||||
def CreatePlayer() : (Player, Avatar) = {
|
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
|
val
|
||||||
player = Player(avatar)
|
player = Player(avatar)
|
||||||
player.Slot(0).Equipment = Tool(beamer)
|
player.Slot(0).Equipment = Tool(beamer)
|
||||||
|
|
@ -26,12 +26,12 @@ class AvatarTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"construct" in {
|
"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.name mustEqual "Chord"
|
||||||
av.faction mustEqual PlanetSideEmpire.TR
|
av.faction mustEqual PlanetSideEmpire.TR
|
||||||
av.sex mustEqual CharacterGender.Male
|
av.sex mustEqual CharacterGender.Male
|
||||||
av.head mustEqual 0
|
av.head mustEqual 0
|
||||||
av.voice mustEqual 5
|
av.voice mustEqual CharacterVoice.Voice5
|
||||||
av.BEP mustEqual 0
|
av.BEP mustEqual 0
|
||||||
av.CEP mustEqual 0
|
av.CEP mustEqual 0
|
||||||
av.Certifications mustEqual Set.empty
|
av.Certifications mustEqual Set.empty
|
||||||
|
|
@ -39,7 +39,7 @@ class AvatarTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"can maintain cumulative battle experience point values" in {
|
"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 mustEqual 0
|
||||||
av.BEP = 100
|
av.BEP = 100
|
||||||
av.BEP mustEqual 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 {
|
"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 mustEqual 0
|
||||||
av.BEP = 4294967295L
|
av.BEP = 4294967295L
|
||||||
av.BEP mustEqual 4294967295L
|
av.BEP mustEqual 4294967295L
|
||||||
}
|
}
|
||||||
|
|
||||||
"can not maintain battle experience point values below zero" in {
|
"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 mustEqual 0
|
||||||
av.BEP = -1
|
av.BEP = -1
|
||||||
av.BEP mustEqual 0
|
av.BEP mustEqual 0
|
||||||
|
|
@ -66,7 +66,7 @@ class AvatarTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"can maintain cumulative command experience point values" in {
|
"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 mustEqual 0
|
||||||
av.CEP = 100
|
av.CEP = 100
|
||||||
av.CEP mustEqual 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 {
|
"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 mustEqual 0
|
||||||
av.CEP = 4294967295L
|
av.CEP = 4294967295L
|
||||||
av.CEP mustEqual 4294967295L
|
av.CEP mustEqual 4294967295L
|
||||||
}
|
}
|
||||||
|
|
||||||
"can not maintain command experience point values below zero" in {
|
"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 mustEqual 0
|
||||||
av.CEP = -1
|
av.CEP = -1
|
||||||
av.CEP mustEqual 0
|
av.CEP mustEqual 0
|
||||||
|
|
@ -93,28 +93,28 @@ class AvatarTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"can tell the difference between avatars" in {
|
"can tell the difference between avatars" in {
|
||||||
(Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5) ==
|
(Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5) ==
|
||||||
Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)) mustEqual true
|
Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)) mustEqual true
|
||||||
|
|
||||||
(Avatar("Chord1", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5) ==
|
(Avatar("Chord1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5) ==
|
||||||
Avatar("Chord2", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)) mustEqual false
|
Avatar("Chord2", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)) mustEqual false
|
||||||
|
|
||||||
(Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5) ==
|
(Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5) ==
|
||||||
Avatar("Chord", PlanetSideEmpire.NC, CharacterGender.Male, 0, 5)) mustEqual false
|
Avatar("Chord", PlanetSideEmpire.NC, CharacterGender.Male, 0, CharacterVoice.Voice5)) mustEqual false
|
||||||
|
|
||||||
(Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5) ==
|
(Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5) ==
|
||||||
Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Female, 0, 5)) mustEqual false
|
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, 0, CharacterVoice.Voice5) ==
|
||||||
Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 1, 5)) mustEqual false
|
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, CharacterVoice.Voice5) ==
|
||||||
Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 6)) mustEqual false
|
Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice4)) mustEqual false
|
||||||
}
|
}
|
||||||
|
|
||||||
//refer to ImplantTest.scala for more tests
|
//refer to ImplantTest.scala for more tests
|
||||||
"maximum of three implant slots" in {
|
"maximum of three implant slots" in {
|
||||||
val obj = Avatar("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.length mustEqual 3
|
||||||
obj.Implants(0).Unlocked mustEqual false
|
obj.Implants(0).Unlocked mustEqual false
|
||||||
obj.Implants(0).Initialized mustEqual false
|
obj.Implants(0).Initialized mustEqual false
|
||||||
|
|
@ -140,7 +140,7 @@ class AvatarTest extends Specification {
|
||||||
|
|
||||||
"can install an implant" in {
|
"can install an implant" in {
|
||||||
val testplant : ImplantDefinition = ImplantDefinition(1)
|
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.Implants(0).Unlocked = true
|
||||||
obj.InstallImplant(testplant) mustEqual Some(0)
|
obj.InstallImplant(testplant) mustEqual Some(0)
|
||||||
obj.Implants.find({p => p.Implant == ImplantType(1)}) match { //find the installed implant
|
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 {
|
"can install implants in sequential slots" in {
|
||||||
val testplant1 : ImplantDefinition = ImplantDefinition(1)
|
val testplant1 : ImplantDefinition = ImplantDefinition(1)
|
||||||
val testplant2 : ImplantDefinition = ImplantDefinition(2)
|
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(0).Unlocked = true
|
||||||
obj.Implants(1).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 {
|
"can not install the same type of implant twice" in {
|
||||||
val testplant1 : ImplantDefinition = ImplantDefinition(1)
|
val testplant1 : ImplantDefinition = ImplantDefinition(1)
|
||||||
val testplant2 : 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(0).Unlocked = true
|
||||||
obj.Implants(1).Unlocked = true
|
obj.Implants(1).Unlocked = true
|
||||||
|
|
||||||
|
|
@ -178,7 +178,7 @@ class AvatarTest extends Specification {
|
||||||
val testplant1 : ImplantDefinition = ImplantDefinition(1)
|
val testplant1 : ImplantDefinition = ImplantDefinition(1)
|
||||||
val testplant2 : ImplantDefinition = ImplantDefinition(2)
|
val testplant2 : ImplantDefinition = ImplantDefinition(2)
|
||||||
val testplant3 : ImplantDefinition = ImplantDefinition(3)
|
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(0).Unlocked = true
|
||||||
obj.Implants(1).Unlocked = true
|
obj.Implants(1).Unlocked = true
|
||||||
|
|
||||||
|
|
@ -192,7 +192,7 @@ class AvatarTest extends Specification {
|
||||||
val testplant2 : ImplantDefinition = ImplantDefinition(2)
|
val testplant2 : ImplantDefinition = ImplantDefinition(2)
|
||||||
val testplant3 : ImplantDefinition = ImplantDefinition(3)
|
val testplant3 : ImplantDefinition = ImplantDefinition(3)
|
||||||
val testplant4 : ImplantDefinition = ImplantDefinition(4)
|
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(0).Unlocked = true
|
||||||
obj.Implants(1).Unlocked = true
|
obj.Implants(1).Unlocked = true
|
||||||
obj.Implants(2).Unlocked = true
|
obj.Implants(2).Unlocked = true
|
||||||
|
|
@ -205,7 +205,7 @@ class AvatarTest extends Specification {
|
||||||
|
|
||||||
"can uninstall an implant" in {
|
"can uninstall an implant" in {
|
||||||
val testplant : ImplantDefinition = ImplantDefinition(1)
|
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.Implants(0).Unlocked = true
|
||||||
obj.InstallImplant(testplant) mustEqual Some(0)
|
obj.InstallImplant(testplant) mustEqual Some(0)
|
||||||
obj.Implants(0).Installed mustEqual Some(testplant)
|
obj.Implants(0).Installed mustEqual Some(testplant)
|
||||||
|
|
@ -218,7 +218,7 @@ class AvatarTest extends Specification {
|
||||||
val testplant1 : ImplantDefinition = ImplantDefinition(1)
|
val testplant1 : ImplantDefinition = ImplantDefinition(1)
|
||||||
val testplant2 : ImplantDefinition = ImplantDefinition(2)
|
val testplant2 : ImplantDefinition = ImplantDefinition(2)
|
||||||
val testplant3 : ImplantDefinition = ImplantDefinition(3)
|
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(0).Unlocked = true
|
||||||
obj.Implants(1).Unlocked = true
|
obj.Implants(1).Unlocked = true
|
||||||
obj.Implants(2).Unlocked = true
|
obj.Implants(2).Unlocked = true
|
||||||
|
|
@ -239,7 +239,7 @@ class AvatarTest extends Specification {
|
||||||
val testplant1 : ImplantDefinition = ImplantDefinition(1)
|
val testplant1 : ImplantDefinition = ImplantDefinition(1)
|
||||||
val testplant2 : ImplantDefinition = ImplantDefinition(2)
|
val testplant2 : ImplantDefinition = ImplantDefinition(2)
|
||||||
val testplant3 : ImplantDefinition = ImplantDefinition(3)
|
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(0).Unlocked = true
|
||||||
obj.Implants(1).Unlocked = true
|
obj.Implants(1).Unlocked = true
|
||||||
obj.Implants(2).Unlocked = true
|
obj.Implants(2).Unlocked = true
|
||||||
|
|
@ -261,7 +261,7 @@ class AvatarTest extends Specification {
|
||||||
"can reset implants to uninitialized state" in {
|
"can reset implants to uninitialized state" in {
|
||||||
val testplant1 : ImplantDefinition = ImplantDefinition(1)
|
val testplant1 : ImplantDefinition = ImplantDefinition(1)
|
||||||
val testplant2 : ImplantDefinition = ImplantDefinition(2)
|
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(0).Unlocked = true
|
||||||
obj.Implants(1).Unlocked = true
|
obj.Implants(1).Unlocked = true
|
||||||
obj.InstallImplant(testplant1) mustEqual Some(0)
|
obj.InstallImplant(testplant1) mustEqual Some(0)
|
||||||
|
|
@ -393,6 +393,6 @@ class AvatarTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"toString" in {
|
"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"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ import net.psforever.objects.serverobject.terminals.Terminal
|
||||||
import net.psforever.objects.serverobject.tube.SpawnTube
|
import net.psforever.objects.serverobject.tube.SpawnTube
|
||||||
import net.psforever.packet.game.PlanetSideGUID
|
import net.psforever.packet.game.PlanetSideGUID
|
||||||
import net.psforever.packet.game.objectcreate._
|
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 org.specs2.mutable.Specification
|
||||||
|
|
||||||
import scala.util.{Failure, Success}
|
import scala.util.{Failure, Success}
|
||||||
|
|
@ -154,7 +154,7 @@ class ConverterTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"Player" should {
|
"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 = {
|
val obj : Player = {
|
||||||
/*
|
/*
|
||||||
Create an AmmoBoxDefinition with which to build two AmmoBoxes
|
Create an AmmoBoxDefinition with which to build two AmmoBoxes
|
||||||
|
|
|
||||||
|
|
@ -7,13 +7,13 @@ import net.psforever.objects.serverobject.doors.{Door, DoorControl}
|
||||||
import net.psforever.objects.serverobject.structures.{Building, StructureType}
|
import net.psforever.objects.serverobject.structures.{Building, StructureType}
|
||||||
import net.psforever.objects.zones.Zone
|
import net.psforever.objects.zones.Zone
|
||||||
import net.psforever.packet.game.{PlanetSideGUID, UseItemMessage}
|
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 org.specs2.mutable.Specification
|
||||||
|
|
||||||
import scala.concurrent.duration.Duration
|
import scala.concurrent.duration.Duration
|
||||||
|
|
||||||
class DoorTest extends Specification {
|
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 {
|
"Door" should {
|
||||||
"construct" in {
|
"construct" in {
|
||||||
|
|
@ -123,6 +123,6 @@ object DoorControlTest {
|
||||||
door.Actor = system.actorOf(Props(classOf[DoorControl], door), "door")
|
door.Actor = system.actorOf(Props(classOf[DoorControl], door), "door")
|
||||||
door.Owner = new Building(0, Zone.Nowhere, StructureType.Building)
|
door.Owner = new Building(0, Zone.Nowhere, StructureType.Building)
|
||||||
door.Owner.Faction = faction
|
door.Owner.Faction = faction
|
||||||
(Player(Avatar("test", faction, CharacterGender.Male, 0, 0)), door)
|
(Player(Avatar("test", faction, CharacterGender.Male, 0, CharacterVoice.Mute)), door)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ import net.psforever.objects.serverobject.locks.{IFFLock, IFFLockControl}
|
||||||
import net.psforever.objects.serverobject.structures.{Building, StructureType}
|
import net.psforever.objects.serverobject.structures.{Building, StructureType}
|
||||||
import net.psforever.objects.zones.Zone
|
import net.psforever.objects.zones.Zone
|
||||||
import net.psforever.packet.game.PlanetSideGUID
|
import net.psforever.packet.game.PlanetSideGUID
|
||||||
import net.psforever.types.{CharacterGender, PlanetSideEmpire}
|
import net.psforever.types.{CharacterGender, CharacterVoice, PlanetSideEmpire}
|
||||||
import org.specs2.mutable.Specification
|
import org.specs2.mutable.Specification
|
||||||
|
|
||||||
class IFFLockTest extends Specification {
|
class IFFLockTest extends Specification {
|
||||||
|
|
@ -69,6 +69,6 @@ object IFFLockControlTest {
|
||||||
lock.Actor = system.actorOf(Props(classOf[IFFLockControl], lock), "lock-control")
|
lock.Actor = system.actorOf(Props(classOf[IFFLockControl], lock), "lock-control")
|
||||||
lock.Owner = new Building(0, Zone.Nowhere, StructureType.Building)
|
lock.Owner = new Building(0, Zone.Nowhere, StructureType.Building)
|
||||||
lock.Owner.Faction = faction
|
lock.Owner.Faction = faction
|
||||||
(Player(Avatar("test", faction, CharacterGender.Male, 0, 0)), lock)
|
(Player(Avatar("test", faction, CharacterGender.Male, 0, CharacterVoice.Mute)), lock)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,12 +3,12 @@ package objects
|
||||||
|
|
||||||
import net.psforever.objects._
|
import net.psforever.objects._
|
||||||
import net.psforever.objects.loadouts._
|
import net.psforever.objects.loadouts._
|
||||||
import net.psforever.types.{CharacterGender, ExoSuitType, PlanetSideEmpire}
|
import net.psforever.types.{CharacterGender, CharacterVoice, ExoSuitType, PlanetSideEmpire}
|
||||||
import net.psforever.objects.GlobalDefinitions._
|
import net.psforever.objects.GlobalDefinitions._
|
||||||
import org.specs2.mutable._
|
import org.specs2.mutable._
|
||||||
|
|
||||||
class LoadoutTest extends Specification {
|
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 = {
|
def CreatePlayer() : Player = {
|
||||||
new Player(avatar) {
|
new Player(avatar) {
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ import net.psforever.objects.serverobject.mount.{Mountable, MountableBehavior}
|
||||||
import net.psforever.objects.serverobject.PlanetSideServerObject
|
import net.psforever.objects.serverobject.PlanetSideServerObject
|
||||||
import net.psforever.objects.vehicles.Seat
|
import net.psforever.objects.vehicles.Seat
|
||||||
import net.psforever.packet.game.PlanetSideGUID
|
import net.psforever.packet.game.PlanetSideGUID
|
||||||
import net.psforever.types.{CharacterGender, PlanetSideEmpire}
|
import net.psforever.types.{CharacterGender, CharacterVoice, PlanetSideEmpire}
|
||||||
|
|
||||||
import scala.concurrent.duration.Duration
|
import scala.concurrent.duration.Duration
|
||||||
|
|
||||||
|
|
@ -25,7 +25,7 @@ class MountableControl1Test extends ActorTest() {
|
||||||
class MountableControl2Test extends ActorTest() {
|
class MountableControl2Test extends ActorTest() {
|
||||||
"MountableControl" should {
|
"MountableControl" should {
|
||||||
"let a player mount" in {
|
"let a player mount" in {
|
||||||
val player = Player(Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, 0))
|
val player = Player(Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
|
||||||
val obj = new MountableTest.MountableTestObject
|
val obj = new MountableTest.MountableTestObject
|
||||||
obj.Actor = system.actorOf(Props(classOf[MountableTest.MountableTestControl], obj), "mountable")
|
obj.Actor = system.actorOf(Props(classOf[MountableTest.MountableTestControl], obj), "mountable")
|
||||||
val msg = Mountable.TryMount(player, 0)
|
val msg = Mountable.TryMount(player, 0)
|
||||||
|
|
@ -46,8 +46,8 @@ class MountableControl2Test extends ActorTest() {
|
||||||
class MountableControl3Test extends ActorTest() {
|
class MountableControl3Test extends ActorTest() {
|
||||||
"MountableControl" should {
|
"MountableControl" should {
|
||||||
"block a player from mounting" in {
|
"block a player from mounting" in {
|
||||||
val player1 = Player(Avatar("test1", 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, 0))
|
val player2 = Player(Avatar("test2", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
|
||||||
val obj = new MountableTest.MountableTestObject
|
val obj = new MountableTest.MountableTestObject
|
||||||
obj.Actor = system.actorOf(Props(classOf[MountableTest.MountableTestControl], obj), "mountable")
|
obj.Actor = system.actorOf(Props(classOf[MountableTest.MountableTestControl], obj), "mountable")
|
||||||
obj.Actor ! Mountable.TryMount(player1, 0)
|
obj.Actor ! Mountable.TryMount(player1, 0)
|
||||||
|
|
|
||||||
|
|
@ -6,19 +6,19 @@ import net.psforever.objects._
|
||||||
import net.psforever.objects.definition.{ImplantDefinition, SimpleItemDefinition}
|
import net.psforever.objects.definition.{ImplantDefinition, SimpleItemDefinition}
|
||||||
import net.psforever.objects.equipment.EquipmentSize
|
import net.psforever.objects.equipment.EquipmentSize
|
||||||
import net.psforever.packet.game.PlanetSideGUID
|
import net.psforever.packet.game.PlanetSideGUID
|
||||||
import net.psforever.types.{CharacterGender, ExoSuitType, ImplantType, PlanetSideEmpire}
|
import net.psforever.types._
|
||||||
import org.specs2.mutable._
|
import org.specs2.mutable._
|
||||||
|
|
||||||
import scala.util.Success
|
import scala.util.Success
|
||||||
|
|
||||||
class PlayerTest extends Specification {
|
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))
|
new Player(Avatar(name, faction, sex, head, voice))
|
||||||
}
|
}
|
||||||
|
|
||||||
"Player" should {
|
"Player" should {
|
||||||
"construct" in {
|
"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.isAlive mustEqual false
|
||||||
obj.FacingYawUpper mustEqual 0
|
obj.FacingYawUpper mustEqual 0
|
||||||
obj.Jumping mustEqual false
|
obj.Jumping mustEqual false
|
||||||
|
|
@ -36,27 +36,27 @@ class PlayerTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"different players" in {
|
"different players" in {
|
||||||
(TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5) ==
|
(TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5) ==
|
||||||
TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)) mustEqual true
|
TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)) mustEqual true
|
||||||
|
|
||||||
(TestPlayer("Chord1", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5) ==
|
(TestPlayer("Chord1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5) ==
|
||||||
TestPlayer("Chord2", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)) mustEqual false
|
TestPlayer("Chord2", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)) mustEqual false
|
||||||
|
|
||||||
(TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5) ==
|
(TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5) ==
|
||||||
TestPlayer("Chord", PlanetSideEmpire.NC, CharacterGender.Male, 0, 5)) mustEqual false
|
TestPlayer("Chord", PlanetSideEmpire.NC, CharacterGender.Male, 0, CharacterVoice.Voice5)) mustEqual false
|
||||||
|
|
||||||
(TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5) ==
|
(TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5) ==
|
||||||
TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Female, 0, 5)) mustEqual false
|
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, 0, CharacterVoice.Voice5) ==
|
||||||
TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 1, 5)) mustEqual false
|
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, CharacterVoice.Voice5) ==
|
||||||
TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 6)) mustEqual false
|
TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice4)) mustEqual false
|
||||||
}
|
}
|
||||||
|
|
||||||
"(re)spawn" in {
|
"(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.isAlive mustEqual false
|
||||||
obj.Health mustEqual 0
|
obj.Health mustEqual 0
|
||||||
obj.Stamina mustEqual 0
|
obj.Stamina mustEqual 0
|
||||||
|
|
@ -72,7 +72,7 @@ class PlayerTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"will not (re)spawn if not dead" in {
|
"will not (re)spawn if not dead" in {
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
||||||
obj.Spawn
|
obj.Spawn
|
||||||
obj.Health mustEqual 100
|
obj.Health mustEqual 100
|
||||||
obj.Armor mustEqual 50
|
obj.Armor mustEqual 50
|
||||||
|
|
@ -88,7 +88,7 @@ class PlayerTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"can die" in {
|
"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.Spawn
|
||||||
obj.Armor = 35 //50 -> 35
|
obj.Armor = 35 //50 -> 35
|
||||||
obj.isAlive mustEqual true
|
obj.isAlive mustEqual true
|
||||||
|
|
@ -103,7 +103,7 @@ class PlayerTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"can not become a backpack if alive" in {
|
"can not become a backpack if alive" in {
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
||||||
obj.Spawn
|
obj.Spawn
|
||||||
obj.isAlive mustEqual true
|
obj.isAlive mustEqual true
|
||||||
obj.isBackpack mustEqual false
|
obj.isBackpack mustEqual false
|
||||||
|
|
@ -113,7 +113,7 @@ class PlayerTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"can become a backpack" in {
|
"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.isAlive mustEqual false
|
||||||
obj.isBackpack mustEqual false
|
obj.isBackpack mustEqual false
|
||||||
obj.Release
|
obj.Release
|
||||||
|
|
@ -122,7 +122,7 @@ class PlayerTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"set new maximum values (health, stamina)" in {
|
"set new maximum values (health, stamina)" in {
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
||||||
obj.MaxHealth mustEqual 100
|
obj.MaxHealth mustEqual 100
|
||||||
obj.MaxStamina mustEqual 100
|
obj.MaxStamina mustEqual 100
|
||||||
obj.MaxHealth = 123
|
obj.MaxHealth = 123
|
||||||
|
|
@ -133,7 +133,7 @@ class PlayerTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"set new values (health, armor, stamina) but only when alive" in {
|
"set new values (health, armor, stamina) but only when alive" in {
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
||||||
obj.Health = 23
|
obj.Health = 23
|
||||||
obj.Armor = 34
|
obj.Armor = 34
|
||||||
obj.Stamina = 45
|
obj.Stamina = 45
|
||||||
|
|
@ -154,7 +154,7 @@ class PlayerTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"has visible slots" in {
|
"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.VisibleSlots mustEqual Set(0,2,4) //Standard
|
||||||
obj.ExoSuit = ExoSuitType.Agile
|
obj.ExoSuit = ExoSuitType.Agile
|
||||||
obj.VisibleSlots mustEqual Set(0,1,2,4)
|
obj.VisibleSlots mustEqual Set(0,1,2,4)
|
||||||
|
|
@ -167,7 +167,7 @@ class PlayerTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"init (Standard Exo-Suit)" in {
|
"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.ExoSuit mustEqual ExoSuitType.Standard
|
||||||
obj.Slot(0).Size mustEqual EquipmentSize.Pistol
|
obj.Slot(0).Size mustEqual EquipmentSize.Pistol
|
||||||
obj.Slot(1).Size mustEqual EquipmentSize.Blocked
|
obj.Slot(1).Size mustEqual EquipmentSize.Blocked
|
||||||
|
|
@ -181,7 +181,7 @@ class PlayerTest extends Specification {
|
||||||
|
|
||||||
"draw equipped holsters only" in {
|
"draw equipped holsters only" in {
|
||||||
val wep = SimpleItem(SimpleItemDefinition(149))
|
val wep = SimpleItem(SimpleItemDefinition(149))
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
||||||
obj.Slot(1).Size = EquipmentSize.Pistol
|
obj.Slot(1).Size = EquipmentSize.Pistol
|
||||||
obj.Slot(1).Equipment = wep
|
obj.Slot(1).Equipment = wep
|
||||||
obj.DrawnSlot mustEqual Player.HandsDownSlot
|
obj.DrawnSlot mustEqual Player.HandsDownSlot
|
||||||
|
|
@ -194,7 +194,7 @@ class PlayerTest extends Specification {
|
||||||
"remember the last drawn holster" in {
|
"remember the last drawn holster" in {
|
||||||
val wep1 = SimpleItem(SimpleItemDefinition(149))
|
val wep1 = SimpleItem(SimpleItemDefinition(149))
|
||||||
val wep2 = SimpleItem(SimpleItemDefinition(149))
|
val wep2 = SimpleItem(SimpleItemDefinition(149))
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
||||||
obj.Slot(0).Size = EquipmentSize.Pistol
|
obj.Slot(0).Size = EquipmentSize.Pistol
|
||||||
obj.Slot(0).Equipment = wep1
|
obj.Slot(0).Equipment = wep1
|
||||||
obj.Slot(1).Size = EquipmentSize.Pistol
|
obj.Slot(1).Size = EquipmentSize.Pistol
|
||||||
|
|
@ -233,7 +233,7 @@ class PlayerTest extends Specification {
|
||||||
|
|
||||||
"hold something in their free hand" in {
|
"hold something in their free hand" in {
|
||||||
val wep = SimpleItem(SimpleItemDefinition(149))
|
val wep = SimpleItem(SimpleItemDefinition(149))
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
||||||
obj.Slot(Player.FreeHandSlot).Equipment = wep
|
obj.Slot(Player.FreeHandSlot).Equipment = wep
|
||||||
|
|
||||||
obj.Slot(Player.FreeHandSlot).Equipment.get.Definition.ObjectId mustEqual 149
|
obj.Slot(Player.FreeHandSlot).Equipment.get.Definition.ObjectId mustEqual 149
|
||||||
|
|
@ -241,14 +241,14 @@ class PlayerTest extends Specification {
|
||||||
|
|
||||||
"provide an invalid hand that can not hold anything" in {
|
"provide an invalid hand that can not hold anything" in {
|
||||||
val wep = SimpleItem(SimpleItemDefinition(149))
|
val wep = SimpleItem(SimpleItemDefinition(149))
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
||||||
obj.Slot(-1).Equipment = wep
|
obj.Slot(-1).Equipment = wep
|
||||||
|
|
||||||
obj.Slot(-1).Equipment mustEqual None
|
obj.Slot(-1).Equipment mustEqual None
|
||||||
}
|
}
|
||||||
|
|
||||||
"search for the smallest available slot in which to store equipment" in {
|
"search for the smallest available slot in which to store equipment" in {
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
||||||
obj.Inventory.Resize(3,3) //fits one item
|
obj.Inventory.Resize(3,3) //fits one item
|
||||||
|
|
||||||
obj.Fit(Tool(GlobalDefinitions.beamer)) mustEqual Some(0)
|
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 {
|
"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)
|
val ammo = AmmoBox(GlobalDefinitions.bullet_9mm)
|
||||||
obj.FreeHand.Equipment mustEqual None
|
obj.FreeHand.Equipment mustEqual None
|
||||||
|
|
||||||
|
|
@ -275,12 +275,12 @@ class PlayerTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"can access the player's locker-space" in {
|
"can access the player's locker-space" in {
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
||||||
obj.Slot(5).Equipment.get.isInstanceOf[LockerContainer] mustEqual true
|
obj.Slot(5).Equipment.get.isInstanceOf[LockerContainer] mustEqual true
|
||||||
}
|
}
|
||||||
|
|
||||||
"can find equipment" in {
|
"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 = {
|
obj.Slot(0).Equipment = {
|
||||||
val item = Tool(beamer)
|
val item = Tool(beamer)
|
||||||
item.GUID = PlanetSideGUID(1)
|
item.GUID = PlanetSideGUID(1)
|
||||||
|
|
@ -316,7 +316,7 @@ class PlayerTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"does equipment collision checking (are we already holding something there?)" in {
|
"does equipment collision checking (are we already holding something there?)" in {
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
||||||
val item1 = Tool(beamer)
|
val item1 = Tool(beamer)
|
||||||
val item2 = Kit(medkit)
|
val item2 = Kit(medkit)
|
||||||
val item3 = AmmoBox(GlobalDefinitions.bullet_9mm)
|
val item3 = AmmoBox(GlobalDefinitions.bullet_9mm)
|
||||||
|
|
@ -356,7 +356,7 @@ class PlayerTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"battle experience point values of the avatar" in {
|
"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)
|
val player = Player(avatar)
|
||||||
|
|
||||||
player.BEP mustEqual avatar.BEP
|
player.BEP mustEqual avatar.BEP
|
||||||
|
|
@ -365,7 +365,7 @@ class PlayerTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"command experience point values of the avatar" in {
|
"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)
|
val player = Player(avatar)
|
||||||
|
|
||||||
player.CEP mustEqual avatar.CEP
|
player.CEP mustEqual avatar.CEP
|
||||||
|
|
@ -374,14 +374,14 @@ class PlayerTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"can get a quick summary of implant slots (default)" in {
|
"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)
|
val player = Player(avatar)
|
||||||
|
|
||||||
player.Implants mustEqual Array.empty
|
player.Implants mustEqual Array.empty
|
||||||
}
|
}
|
||||||
|
|
||||||
"can get a quick summary of implant slots (two unlocked, one installed)" in {
|
"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 player = Player(avatar)
|
||||||
val temp = new ImplantDefinition(1)
|
val temp = new ImplantDefinition(1)
|
||||||
avatar.Implants(0).Unlocked = true
|
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 {
|
"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)
|
val player = Player(avatar)
|
||||||
avatar.Implants(0).Unlocked = true
|
avatar.Implants(0).Unlocked = true
|
||||||
avatar.InstallImplant(new ImplantDefinition(1))
|
avatar.InstallImplant(new ImplantDefinition(1))
|
||||||
|
|
@ -435,7 +435,7 @@ class PlayerTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"seat in a vehicle" in {
|
"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 mustEqual None
|
||||||
obj.VehicleSeated = PlanetSideGUID(65)
|
obj.VehicleSeated = PlanetSideGUID(65)
|
||||||
obj.VehicleSeated mustEqual Some(PlanetSideGUID(65))
|
obj.VehicleSeated mustEqual Some(PlanetSideGUID(65))
|
||||||
|
|
@ -444,7 +444,7 @@ class PlayerTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"own in a vehicle" in {
|
"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 mustEqual None
|
||||||
obj.VehicleOwned = PlanetSideGUID(65)
|
obj.VehicleOwned = PlanetSideGUID(65)
|
||||||
obj.VehicleOwned mustEqual Some(PlanetSideGUID(65))
|
obj.VehicleOwned mustEqual Some(PlanetSideGUID(65))
|
||||||
|
|
@ -453,21 +453,21 @@ class PlayerTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"remember what zone he is in" in {
|
"remember what zone he is in" in {
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
||||||
obj.Continent mustEqual "home2"
|
obj.Continent mustEqual "home2"
|
||||||
obj.Continent = "ugd01"
|
obj.Continent = "ugd01"
|
||||||
obj.Continent mustEqual "ugd01"
|
obj.Continent mustEqual "ugd01"
|
||||||
}
|
}
|
||||||
|
|
||||||
"special is typically normal and can not be changed from normal" in {
|
"special is typically normal and can not be changed from normal" in {
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
||||||
obj.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
|
obj.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
|
||||||
obj.UsingSpecial = SpecialExoSuitDefinition.Mode.Shielded
|
obj.UsingSpecial = SpecialExoSuitDefinition.Mode.Shielded
|
||||||
obj.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
|
obj.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
|
||||||
}
|
}
|
||||||
|
|
||||||
"a TR MAX can change its special to Overdrive or Anchored" in {
|
"a TR MAX can change its special to Overdrive or Anchored" in {
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
||||||
obj.ExoSuit = ExoSuitType.MAX
|
obj.ExoSuit = ExoSuitType.MAX
|
||||||
obj.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
|
obj.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
|
||||||
obj.UsingSpecial = SpecialExoSuitDefinition.Mode.Anchored
|
obj.UsingSpecial = SpecialExoSuitDefinition.Mode.Anchored
|
||||||
|
|
@ -482,7 +482,7 @@ class PlayerTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"an NC MAX can change its special to Shielded" in {
|
"an NC MAX can change its special to Shielded" in {
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.NC, CharacterGender.Male, 0, 5)
|
val obj = TestPlayer("Chord", PlanetSideEmpire.NC, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
||||||
obj.ExoSuit = ExoSuitType.MAX
|
obj.ExoSuit = ExoSuitType.MAX
|
||||||
obj.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
|
obj.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
|
||||||
obj.UsingSpecial = SpecialExoSuitDefinition.Mode.Shielded
|
obj.UsingSpecial = SpecialExoSuitDefinition.Mode.Shielded
|
||||||
|
|
@ -492,13 +492,13 @@ class PlayerTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"one faction can not use the other's specials" in {
|
"one faction can not use the other's specials" in {
|
||||||
val objtr = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
val objtr = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
||||||
objtr.ExoSuit = ExoSuitType.MAX
|
objtr.ExoSuit = ExoSuitType.MAX
|
||||||
objtr.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
|
objtr.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
|
||||||
objtr.UsingSpecial = SpecialExoSuitDefinition.Mode.Shielded
|
objtr.UsingSpecial = SpecialExoSuitDefinition.Mode.Shielded
|
||||||
objtr.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
|
objtr.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
|
||||||
|
|
||||||
val objnc = TestPlayer("Chord", PlanetSideEmpire.NC, CharacterGender.Male, 0, 5)
|
val objnc = TestPlayer("Chord", PlanetSideEmpire.NC, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
||||||
objnc.ExoSuit = ExoSuitType.MAX
|
objnc.ExoSuit = ExoSuitType.MAX
|
||||||
objnc.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
|
objnc.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
|
||||||
objnc.UsingSpecial = SpecialExoSuitDefinition.Mode.Overdrive
|
objnc.UsingSpecial = SpecialExoSuitDefinition.Mode.Overdrive
|
||||||
|
|
@ -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 {
|
"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.ExoSuit = ExoSuitType.MAX
|
||||||
obj.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
|
obj.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
|
||||||
obj.UsingSpecial = SpecialExoSuitDefinition.Mode.Anchored
|
obj.UsingSpecial = SpecialExoSuitDefinition.Mode.Anchored
|
||||||
|
|
@ -522,7 +522,7 @@ class PlayerTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"toString" in {
|
"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.toString mustEqual "TR Chord 0/100 0/50"
|
||||||
|
|
||||||
obj.GUID = PlanetSideGUID(455)
|
obj.GUID = PlanetSideGUID(455)
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ import net.psforever.objects.serverobject.structures.StructureType
|
||||||
import net.psforever.objects.{Avatar, GlobalDefinitions, Player, Vehicle}
|
import net.psforever.objects.{Avatar, GlobalDefinitions, Player, Vehicle}
|
||||||
import net.psforever.objects.zones.Zone
|
import net.psforever.objects.zones.Zone
|
||||||
import net.psforever.packet.game.PlanetSideGUID
|
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 org.specs2.mutable.Specification
|
||||||
|
|
||||||
import scala.concurrent.duration._
|
import scala.concurrent.duration._
|
||||||
|
|
@ -263,12 +263,12 @@ class VehicleSpawnControl5Test extends ActorTest() {
|
||||||
val probe3Msg4 = probe3.receiveOne(3 seconds)
|
val probe3Msg4 = probe3.receiveOne(3 seconds)
|
||||||
assert(probe3Msg4.isInstanceOf[VehicleSpawnPad.DetachFromRails])
|
assert(probe3Msg4.isInstanceOf[VehicleSpawnPad.DetachFromRails])
|
||||||
|
|
||||||
val probe1Msg1 = probe1.receiveOne(1 seconds)
|
val probe3Msg5 = probe3.receiveOne(1 seconds)
|
||||||
assert(probe1Msg1.isInstanceOf[VehicleSpawnPad.RevealPlayer])
|
assert(probe3Msg5.isInstanceOf[VehicleSpawnPad.RevealPlayer])
|
||||||
|
|
||||||
val probe1Msg2 = probe1.receiveOne(12 seconds)
|
val probe1Msg = probe1.receiveOne(12 seconds)
|
||||||
assert(probe1Msg2.isInstanceOf[VehicleSpawnPad.PeriodicReminder])
|
assert(probe1Msg.isInstanceOf[VehicleSpawnPad.PeriodicReminder])
|
||||||
assert(probe1Msg2.asInstanceOf[VehicleSpawnPad.PeriodicReminder].reason == VehicleSpawnPad.Reminders.Blocked)
|
assert(probe1Msg.asInstanceOf[VehicleSpawnPad.PeriodicReminder].reason == VehicleSpawnPad.Reminders.Blocked)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -300,8 +300,8 @@ class VehicleSpawnControl6Test extends ActorTest() {
|
||||||
|
|
||||||
val probe3Msg4 = probe3.receiveOne(3 seconds)
|
val probe3Msg4 = probe3.receiveOne(3 seconds)
|
||||||
assert(probe3Msg4.isInstanceOf[VehicleSpawnPad.DetachFromRails])
|
assert(probe3Msg4.isInstanceOf[VehicleSpawnPad.DetachFromRails])
|
||||||
val probe1Msg2 = probe1.receiveOne(3 seconds)
|
val probe3Msg5 = probe3.receiveOne(3 seconds)
|
||||||
assert(probe1Msg2.isInstanceOf[VehicleSpawnPad.RevealPlayer])
|
assert(probe3Msg5.isInstanceOf[VehicleSpawnPad.RevealPlayer])
|
||||||
|
|
||||||
val probe1Msg3 = probe1.receiveOne(12 seconds)
|
val probe1Msg3 = probe1.receiveOne(12 seconds)
|
||||||
assert(probe1Msg3.isInstanceOf[VehicleSpawnPad.PeriodicReminder])
|
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.Actor = system.actorOf(Props(classOf[VehicleSpawnControl], pad), s"test-pad-${System.nanoTime()}")
|
||||||
pad.Owner = new Building(0, zone, StructureType.Building)
|
pad.Owner = new Building(0, zone, StructureType.Building)
|
||||||
pad.Owner.Faction = faction
|
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.GUID = PlanetSideGUID(10)
|
||||||
player.Continent = zone.Id
|
player.Continent = zone.Id
|
||||||
player.Spawn
|
player.Spawn
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ import net.psforever.objects.definition.{SeatDefinition, VehicleDefinition}
|
||||||
import net.psforever.objects.serverobject.mount.Mountable
|
import net.psforever.objects.serverobject.mount.Mountable
|
||||||
import net.psforever.objects.vehicles._
|
import net.psforever.objects.vehicles._
|
||||||
import net.psforever.packet.game.PlanetSideGUID
|
import net.psforever.packet.game.PlanetSideGUID
|
||||||
import net.psforever.types.ExoSuitType
|
import net.psforever.types.{CharacterVoice, ExoSuitType}
|
||||||
import org.specs2.mutable._
|
import org.specs2.mutable._
|
||||||
|
|
||||||
import scala.concurrent.duration.Duration
|
import scala.concurrent.duration.Duration
|
||||||
|
|
@ -361,6 +361,6 @@ class VehicleControl2Test extends ActorTest {
|
||||||
object VehicleTest {
|
object VehicleTest {
|
||||||
import net.psforever.objects.Avatar
|
import net.psforever.objects.Avatar
|
||||||
import net.psforever.types.{CharacterGender, PlanetSideEmpire}
|
import net.psforever.types.{CharacterGender, PlanetSideEmpire}
|
||||||
val avatar1 = Avatar("test1", 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, 0)
|
val avatar2 = Avatar("test2", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ import net.psforever.objects.serverobject.terminals.Terminal
|
||||||
import net.psforever.objects.serverobject.tube.SpawnTube
|
import net.psforever.objects.serverobject.tube.SpawnTube
|
||||||
import net.psforever.objects._
|
import net.psforever.objects._
|
||||||
import net.psforever.packet.game.PlanetSideGUID
|
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.serverobject.structures.{Building, FoundationBuilder, StructureType}
|
||||||
import net.psforever.objects.zones.{Zone, ZoneActor, ZoneMap}
|
import net.psforever.objects.zones.{Zone, ZoneActor, ZoneMap}
|
||||||
import net.psforever.objects.Vehicle
|
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 = system.actorOf(Props(classOf[ZoneActor], zone), "test-spawn")
|
||||||
zone.Actor ! Zone.Init()
|
zone.Actor ! Zone.Init()
|
||||||
expectNoMsg(Duration.create(300, "ms"))
|
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 bldg1 = zone.Building(1).get
|
||||||
val bldg3 = zone.Building(3).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 = system.actorOf(Props(classOf[ZoneActor], zone), "test-no-spawn")
|
||||||
zone.Actor ! Zone.Init()
|
zone.Actor ! Zone.Init()
|
||||||
expectNoMsg(Duration.create(300, "ms"))
|
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)
|
zone.Actor ! Zone.Lattice.RequestSpawnPoint(1, player, 7)
|
||||||
val reply = receiveOne(Duration.create(200, "ms"))
|
val reply = receiveOne(Duration.create(200, "ms"))
|
||||||
|
|
@ -234,7 +234,7 @@ class ZonePopulationTest extends ActorTest {
|
||||||
"ZonePopulationActor" should {
|
"ZonePopulationActor" should {
|
||||||
"add new user to zones" in {
|
"add new user to zones" in {
|
||||||
val zone = new Zone("test", new ZoneMap(""), 0)
|
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) ! "!"
|
system.actorOf(Props(classOf[ZoneTest.ZoneInitActor], zone), TestName) ! "!"
|
||||||
receiveOne(Duration.create(200, "ms")) //consume
|
receiveOne(Duration.create(200, "ms")) //consume
|
||||||
|
|
||||||
|
|
@ -249,7 +249,7 @@ class ZonePopulationTest extends ActorTest {
|
||||||
|
|
||||||
"remove user from zones" in {
|
"remove user from zones" in {
|
||||||
val zone = new Zone("test", new ZoneMap(""), 0)
|
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) ! "!"
|
system.actorOf(Props(classOf[ZoneTest.ZoneInitActor], zone), TestName) ! "!"
|
||||||
receiveOne(Duration.create(200, "ms")) //consume
|
receiveOne(Duration.create(200, "ms")) //consume
|
||||||
zone.Population ! Zone.Population.Join(avatar)
|
zone.Population ! Zone.Population.Join(avatar)
|
||||||
|
|
@ -264,7 +264,7 @@ class ZonePopulationTest extends ActorTest {
|
||||||
|
|
||||||
"associate user with a character" in {
|
"associate user with a character" in {
|
||||||
val zone = new Zone("test", new ZoneMap(""), 0)
|
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)
|
val player = Player(avatar)
|
||||||
system.actorOf(Props(classOf[ZoneTest.ZoneInitActor], zone), TestName) ! "!"
|
system.actorOf(Props(classOf[ZoneTest.ZoneInitActor], zone), TestName) ! "!"
|
||||||
receiveOne(Duration.create(200, "ms")) //consume
|
receiveOne(Duration.create(200, "ms")) //consume
|
||||||
|
|
@ -284,7 +284,7 @@ class ZonePopulationTest extends ActorTest {
|
||||||
|
|
||||||
"disassociate character from a user" in {
|
"disassociate character from a user" in {
|
||||||
val zone = new Zone("test", new ZoneMap(""), 0)
|
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)
|
val player = Player(avatar)
|
||||||
system.actorOf(Props(classOf[ZoneTest.ZoneInitActor], zone), TestName) ! "!"
|
system.actorOf(Props(classOf[ZoneTest.ZoneInitActor], zone), TestName) ! "!"
|
||||||
receiveOne(Duration.create(200, "ms")) //consume
|
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 {
|
"user tries to Leave, but still has an associated character" in {
|
||||||
val zone = new Zone("test", new ZoneMap(""), 0)
|
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)
|
val player = Player(avatar)
|
||||||
system.actorOf(Props(classOf[ZoneTest.ZoneInitActor], zone), TestName) ! "!"
|
system.actorOf(Props(classOf[ZoneTest.ZoneInitActor], zone), TestName) ! "!"
|
||||||
receiveOne(Duration.create(500, "ms")) //consume
|
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 {
|
"user tries to Spawn a character, but an associated character already exists" in {
|
||||||
val zone = new Zone("test", new ZoneMap(""), 0)
|
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 player1 = Player(avatar)
|
||||||
val player2 = Player(avatar)
|
val player2 = Player(avatar)
|
||||||
system.actorOf(Props(classOf[ZoneTest.ZoneInitActor], zone), TestName) ! "!"
|
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 {
|
"user tries to Spawn a character, but did not Join first" in {
|
||||||
val zone = new Zone("test", new ZoneMap(""), 0)
|
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)
|
val player = Player(avatar)
|
||||||
system.actorOf(Props(classOf[ZoneTest.ZoneInitActor], zone), TestName) ! "!"
|
system.actorOf(Props(classOf[ZoneTest.ZoneInitActor], zone), TestName) ! "!"
|
||||||
receiveOne(Duration.create(200, "ms")) //consume
|
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 {
|
"user tries to Release a character, but did not Spawn a character first" in {
|
||||||
val zone = new Zone("test", new ZoneMap(""), 0)
|
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) ! "!"
|
system.actorOf(Props(classOf[ZoneTest.ZoneInitActor], zone), TestName) ! "!"
|
||||||
receiveOne(Duration.create(200, "ms")) //consume
|
receiveOne(Duration.create(200, "ms")) //consume
|
||||||
zone.Population ! Zone.Population.Join(avatar)
|
zone.Population ! Zone.Population.Join(avatar)
|
||||||
|
|
@ -395,7 +395,7 @@ class ZonePopulationTest extends ActorTest {
|
||||||
|
|
||||||
"user adds character to list of retired characters" in {
|
"user adds character to list of retired characters" in {
|
||||||
val zone = new Zone("test", new ZoneMap(""), 0)
|
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
|
player.Release
|
||||||
system.actorOf(Props(classOf[ZoneTest.ZoneInitActor], zone), TestName) ! "!"
|
system.actorOf(Props(classOf[ZoneTest.ZoneInitActor], zone), TestName) ! "!"
|
||||||
receiveOne(Duration.create(200, "ms")) //consume
|
receiveOne(Duration.create(200, "ms")) //consume
|
||||||
|
|
@ -409,7 +409,7 @@ class ZonePopulationTest extends ActorTest {
|
||||||
|
|
||||||
"user removes character from the list of retired characters" in {
|
"user removes character from the list of retired characters" in {
|
||||||
val zone = new Zone("test", new ZoneMap(""), 0)
|
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
|
player.Release
|
||||||
system.actorOf(Props(classOf[ZoneTest.ZoneInitActor], zone), TestName) ! "!"
|
system.actorOf(Props(classOf[ZoneTest.ZoneInitActor], zone), TestName) ! "!"
|
||||||
receiveOne(Duration.create(200, "ms")) //consume
|
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 {
|
"user removes THE CORRECT character from the list of retired characters" in {
|
||||||
val zone = new Zone("test", new ZoneMap(""), 0)
|
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
|
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
|
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
|
player3.Release
|
||||||
system.actorOf(Props(classOf[ZoneTest.ZoneInitActor], zone), TestName) ! "!"
|
system.actorOf(Props(classOf[ZoneTest.ZoneInitActor], zone), TestName) ! "!"
|
||||||
receiveOne(Duration.create(200, "ms")) //consume
|
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 {
|
"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 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
|
//player.Release !!important
|
||||||
system.actorOf(Props(classOf[ZoneTest.ZoneInitActor], zone), "testC") ! "!"
|
system.actorOf(Props(classOf[ZoneTest.ZoneInitActor], zone), "testC") ! "!"
|
||||||
receiveOne(Duration.create(500, "ms")) //consume
|
receiveOne(Duration.create(500, "ms")) //consume
|
||||||
|
|
|
||||||
|
|
@ -3,13 +3,13 @@ package objects.guidtask
|
||||||
|
|
||||||
import net.psforever.objects._
|
import net.psforever.objects._
|
||||||
import net.psforever.objects.guid.{GUIDTask, TaskResolver}
|
import net.psforever.objects.guid.{GUIDTask, TaskResolver}
|
||||||
import net.psforever.types.{CharacterGender, PlanetSideEmpire}
|
import net.psforever.types.{CharacterGender, CharacterVoice, PlanetSideEmpire}
|
||||||
import objects.ActorTest
|
import objects.ActorTest
|
||||||
|
|
||||||
class GUIDTaskRegister5Test extends ActorTest() {
|
class GUIDTaskRegister5Test extends ActorTest() {
|
||||||
"RegisterAvatar" in {
|
"RegisterAvatar" in {
|
||||||
val (_, uns, taskResolver, probe) = GUIDTaskTest.CommonTestSetup
|
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)
|
val obj_wep = Tool(GlobalDefinitions.beamer)
|
||||||
obj.Slot(0).Equipment = obj_wep
|
obj.Slot(0).Equipment = obj_wep
|
||||||
val obj_wep_ammo = AmmoBox(GlobalDefinitions.energy_cell)
|
val obj_wep_ammo = AmmoBox(GlobalDefinitions.energy_cell)
|
||||||
|
|
|
||||||
|
|
@ -3,13 +3,13 @@ package objects.guidtask
|
||||||
|
|
||||||
import net.psforever.objects._
|
import net.psforever.objects._
|
||||||
import net.psforever.objects.guid.{GUIDTask, TaskResolver}
|
import net.psforever.objects.guid.{GUIDTask, TaskResolver}
|
||||||
import net.psforever.types.{CharacterGender, PlanetSideEmpire}
|
import net.psforever.types.{CharacterGender, CharacterVoice, PlanetSideEmpire}
|
||||||
import objects.ActorTest
|
import objects.ActorTest
|
||||||
|
|
||||||
class GUIDTaskRegister6Test extends ActorTest() {
|
class GUIDTaskRegister6Test extends ActorTest() {
|
||||||
"RegisterPlayer" in {
|
"RegisterPlayer" in {
|
||||||
val (_, uns, taskResolver, probe) = GUIDTaskTest.CommonTestSetup
|
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)
|
val obj_wep = Tool(GlobalDefinitions.beamer)
|
||||||
obj.Slot(0).Equipment = obj_wep
|
obj.Slot(0).Equipment = obj_wep
|
||||||
val obj_wep_ammo = AmmoBox(GlobalDefinitions.energy_cell)
|
val obj_wep_ammo = AmmoBox(GlobalDefinitions.energy_cell)
|
||||||
|
|
|
||||||
|
|
@ -3,13 +3,13 @@ package objects.guidtask
|
||||||
|
|
||||||
import net.psforever.objects._
|
import net.psforever.objects._
|
||||||
import net.psforever.objects.guid.{GUIDTask, TaskResolver}
|
import net.psforever.objects.guid.{GUIDTask, TaskResolver}
|
||||||
import net.psforever.types.{CharacterGender, PlanetSideEmpire}
|
import net.psforever.types.{CharacterGender, CharacterVoice, PlanetSideEmpire}
|
||||||
import objects.ActorTest
|
import objects.ActorTest
|
||||||
|
|
||||||
class GUIDTaskUnregister5Test extends ActorTest() {
|
class GUIDTaskUnregister5Test extends ActorTest() {
|
||||||
"UnregisterAvatar" in {
|
"UnregisterAvatar" in {
|
||||||
val (guid, uns, taskResolver, probe) = GUIDTaskTest.CommonTestSetup
|
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)
|
val obj_wep = Tool(GlobalDefinitions.beamer)
|
||||||
obj.Slot(0).Equipment = obj_wep
|
obj.Slot(0).Equipment = obj_wep
|
||||||
val obj_wep_ammo = AmmoBox(GlobalDefinitions.energy_cell)
|
val obj_wep_ammo = AmmoBox(GlobalDefinitions.energy_cell)
|
||||||
|
|
|
||||||
|
|
@ -3,13 +3,13 @@ package objects.guidtask
|
||||||
|
|
||||||
import net.psforever.objects._
|
import net.psforever.objects._
|
||||||
import net.psforever.objects.guid.{GUIDTask, TaskResolver}
|
import net.psforever.objects.guid.{GUIDTask, TaskResolver}
|
||||||
import net.psforever.types.{CharacterGender, PlanetSideEmpire}
|
import net.psforever.types.{CharacterGender, CharacterVoice, PlanetSideEmpire}
|
||||||
import objects.ActorTest
|
import objects.ActorTest
|
||||||
|
|
||||||
class GUIDTaskUnregister6Test extends ActorTest() {
|
class GUIDTaskUnregister6Test extends ActorTest() {
|
||||||
"UnregisterPlayer" in {
|
"UnregisterPlayer" in {
|
||||||
val (guid, uns, taskResolver, probe) = GUIDTaskTest.CommonTestSetup
|
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)
|
val obj_wep = Tool(GlobalDefinitions.beamer)
|
||||||
obj.Slot(0).Equipment = obj_wep
|
obj.Slot(0).Equipment = obj_wep
|
||||||
val obj_wep_ammo = AmmoBox(GlobalDefinitions.energy_cell)
|
val obj_wep_ammo = AmmoBox(GlobalDefinitions.energy_cell)
|
||||||
|
|
|
||||||
|
|
@ -7,12 +7,12 @@ import net.psforever.objects.{Avatar, GlobalDefinitions, Player}
|
||||||
import net.psforever.objects.serverobject.terminals.Terminal
|
import net.psforever.objects.serverobject.terminals.Terminal
|
||||||
import net.psforever.objects.zones.Zone
|
import net.psforever.objects.zones.Zone
|
||||||
import net.psforever.packet.game.{ItemTransactionMessage, PlanetSideGUID}
|
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
|
import org.specs2.mutable.Specification
|
||||||
|
|
||||||
class AirVehicleTerminalTest extends Specification {
|
class AirVehicleTerminalTest extends Specification {
|
||||||
"Air_Vehicle_Terminal" should {
|
"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)
|
val terminal = Terminal(GlobalDefinitions.air_vehicle_terminal)
|
||||||
terminal.Owner = new Building(0, Zone.Nowhere, StructureType.Building)
|
terminal.Owner = new Building(0, Zone.Nowhere, StructureType.Building)
|
||||||
terminal.Owner.Faction = PlanetSideEmpire.TR
|
terminal.Owner.Faction = PlanetSideEmpire.TR
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ import org.specs2.mutable.Specification
|
||||||
|
|
||||||
class CertTerminalTest extends Specification {
|
class CertTerminalTest extends Specification {
|
||||||
"Cert_Terminal" should {
|
"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)
|
val terminal = Terminal(GlobalDefinitions.cert_terminal)
|
||||||
terminal.Owner = new Building(0, Zone.Nowhere, StructureType.Building)
|
terminal.Owner = new Building(0, Zone.Nowhere, StructureType.Building)
|
||||||
terminal.Owner.Faction = PlanetSideEmpire.TR
|
terminal.Owner.Faction = PlanetSideEmpire.TR
|
||||||
|
|
|
||||||
|
|
@ -7,12 +7,12 @@ import net.psforever.objects.{Avatar, GlobalDefinitions, Player}
|
||||||
import net.psforever.objects.serverobject.terminals.Terminal
|
import net.psforever.objects.serverobject.terminals.Terminal
|
||||||
import net.psforever.objects.zones.Zone
|
import net.psforever.objects.zones.Zone
|
||||||
import net.psforever.packet.game.{ItemTransactionMessage, PlanetSideGUID}
|
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
|
import org.specs2.mutable.Specification
|
||||||
|
|
||||||
class DropshipVehicleTerminalTest extends Specification {
|
class DropshipVehicleTerminalTest extends Specification {
|
||||||
"Dropship_Vehicle_Terminal" should {
|
"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)
|
val terminal = Terminal(GlobalDefinitions.dropship_vehicle_terminal)
|
||||||
terminal.Owner = new Building(0, Zone.Nowhere, StructureType.Building)
|
terminal.Owner = new Building(0, Zone.Nowhere, StructureType.Building)
|
||||||
terminal.Owner.Faction = PlanetSideEmpire.TR
|
terminal.Owner.Faction = PlanetSideEmpire.TR
|
||||||
|
|
|
||||||
|
|
@ -7,12 +7,12 @@ import net.psforever.objects.{Avatar, GlobalDefinitions, Player}
|
||||||
import net.psforever.objects.serverobject.terminals.Terminal
|
import net.psforever.objects.serverobject.terminals.Terminal
|
||||||
import net.psforever.objects.zones.Zone
|
import net.psforever.objects.zones.Zone
|
||||||
import net.psforever.packet.game.{ItemTransactionMessage, PlanetSideGUID}
|
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
|
import org.specs2.mutable.Specification
|
||||||
|
|
||||||
class GroundVehicleTerminalTest extends Specification {
|
class GroundVehicleTerminalTest extends Specification {
|
||||||
"Ground_Vehicle_Terminal" should {
|
"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)
|
val terminal = Terminal(GlobalDefinitions.ground_vehicle_terminal)
|
||||||
terminal.Owner = new Building(0, Zone.Nowhere, StructureType.Building)
|
terminal.Owner = new Building(0, Zone.Nowhere, StructureType.Building)
|
||||||
terminal.Owner.Faction = PlanetSideEmpire.TR
|
terminal.Owner.Faction = PlanetSideEmpire.TR
|
||||||
|
|
|
||||||
|
|
@ -7,12 +7,12 @@ import net.psforever.objects.{Avatar, GlobalDefinitions, Player}
|
||||||
import net.psforever.objects.serverobject.terminals.Terminal
|
import net.psforever.objects.serverobject.terminals.Terminal
|
||||||
import net.psforever.objects.zones.Zone
|
import net.psforever.objects.zones.Zone
|
||||||
import net.psforever.packet.game.{ItemTransactionMessage, PlanetSideGUID}
|
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
|
import org.specs2.mutable.Specification
|
||||||
|
|
||||||
class ImplantTerminalInterfaceTest extends Specification {
|
class ImplantTerminalInterfaceTest extends Specification {
|
||||||
"Implant_Terminal_Interface" should {
|
"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)
|
val terminal = Terminal(GlobalDefinitions.implant_terminal_interface)
|
||||||
terminal.Owner = new Building(0, Zone.Nowhere, StructureType.Building)
|
terminal.Owner = new Building(0, Zone.Nowhere, StructureType.Building)
|
||||||
terminal.Owner.Faction = PlanetSideEmpire.TR
|
terminal.Owner.Faction = PlanetSideEmpire.TR
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ import net.psforever.objects.serverobject.implantmech.{ImplantTerminalMech, Impl
|
||||||
import net.psforever.objects.serverobject.structures.StructureType
|
import net.psforever.objects.serverobject.structures.StructureType
|
||||||
import net.psforever.objects.vehicles.Seat
|
import net.psforever.objects.vehicles.Seat
|
||||||
import net.psforever.objects.{Avatar, GlobalDefinitions, Player}
|
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 objects.ActorTest
|
||||||
import org.specs2.mutable.Specification
|
import org.specs2.mutable.Specification
|
||||||
|
|
||||||
|
|
@ -45,7 +45,7 @@ class ImplantTerminalMechTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"get passenger in a seat" in {
|
"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)
|
val obj = ImplantTerminalMech(GlobalDefinitions.implant_terminal_mech)
|
||||||
obj.PassengerInSeat(player) mustEqual None
|
obj.PassengerInSeat(player) mustEqual None
|
||||||
obj.Seats(0).Occupant = player
|
obj.Seats(0).Occupant = player
|
||||||
|
|
@ -90,7 +90,7 @@ class ImplantTerminalMechControl3Test extends ActorTest() {
|
||||||
"ImplantTerminalMechControl" should {
|
"ImplantTerminalMechControl" should {
|
||||||
"block a player from mounting" in {
|
"block a player from mounting" in {
|
||||||
val (player1, mech) = ImplantTerminalMechTest.SetUpAgents(PlanetSideEmpire.TR)
|
val (player1, mech) = ImplantTerminalMechTest.SetUpAgents(PlanetSideEmpire.TR)
|
||||||
val player2 = Player(Avatar("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)
|
mech.Actor ! Mountable.TryMount(player1, 0)
|
||||||
receiveOne(Duration.create(100, "ms")) //consume reply
|
receiveOne(Duration.create(100, "ms")) //consume reply
|
||||||
|
|
@ -164,6 +164,6 @@ object ImplantTerminalMechTest {
|
||||||
terminal.Owner = new Building(0, Zone.Nowhere, StructureType.Building)
|
terminal.Owner = new Building(0, Zone.Nowhere, StructureType.Building)
|
||||||
terminal.Owner.Faction = faction
|
terminal.Owner.Faction = faction
|
||||||
terminal.GUID = PlanetSideGUID(1)
|
terminal.GUID = PlanetSideGUID(1)
|
||||||
(Player(Avatar("test", faction, CharacterGender.Male, 0, 0)), terminal)
|
(Player(Avatar("test", faction, CharacterGender.Male, 0, CharacterVoice.Mute)), terminal)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -60,7 +60,7 @@ class MatrixTerminalTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"player can not buy (anything)" in {
|
"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))
|
val msg = ItemTransactionMessage(PlanetSideGUID(1), TransactionType.Buy, 1, "lite_armor", 0, PlanetSideGUID(0))
|
||||||
|
|
||||||
terminal.Request(player, msg) mustEqual Terminal.NoDeal()
|
terminal.Request(player, msg) mustEqual Terminal.NoDeal()
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ import akka.actor.ActorRef
|
||||||
import net.psforever.objects.serverobject.terminals.{MedicalTerminalDefinition, ProximityTerminal, Terminal}
|
import net.psforever.objects.serverobject.terminals.{MedicalTerminalDefinition, ProximityTerminal, Terminal}
|
||||||
import net.psforever.objects.{Avatar, GlobalDefinitions, Player}
|
import net.psforever.objects.{Avatar, GlobalDefinitions, Player}
|
||||||
import net.psforever.packet.game.{ItemTransactionMessage, PlanetSideGUID}
|
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
|
import org.specs2.mutable.Specification
|
||||||
|
|
||||||
class MedicalTerminalTest extends Specification {
|
class MedicalTerminalTest extends Specification {
|
||||||
|
|
@ -81,7 +81,7 @@ class MedicalTerminalTest extends Specification {
|
||||||
|
|
||||||
"player can not interact with the proximity terminal normally (buy)" in {
|
"player can not interact with the proximity terminal normally (buy)" in {
|
||||||
val terminal = ProximityTerminal(GlobalDefinitions.medical_terminal)
|
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))
|
val msg = ItemTransactionMessage(PlanetSideGUID(1), TransactionType.Buy, 1, "lite_armor", 0, PlanetSideGUID(0))
|
||||||
|
|
||||||
terminal.Request(player, msg) mustEqual Terminal.NoDeal()
|
terminal.Request(player, msg) mustEqual Terminal.NoDeal()
|
||||||
|
|
|
||||||
|
|
@ -47,14 +47,14 @@ class OrderTerminalABTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"player can buy different armor ('lite_armor')" in {
|
"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))
|
val msg = ItemTransactionMessage(PlanetSideGUID(1), TransactionType.Buy, 1, "lite_armor", 0, PlanetSideGUID(0))
|
||||||
|
|
||||||
terminal.Request(player, msg) mustEqual Terminal.BuyExosuit(ExoSuitType.Agile)
|
terminal.Request(player, msg) mustEqual Terminal.BuyExosuit(ExoSuitType.Agile)
|
||||||
}
|
}
|
||||||
|
|
||||||
"player can buy max armor ('trhev_antiaircraft')" in {
|
"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))
|
val msg = ItemTransactionMessage(PlanetSideGUID(1), TransactionType.Buy, 1, "trhev_antiaircraft", 0, PlanetSideGUID(0))
|
||||||
|
|
||||||
terminal.Request(player, msg) mustEqual Terminal.NoDeal()
|
terminal.Request(player, msg) mustEqual Terminal.NoDeal()
|
||||||
|
|
@ -62,7 +62,7 @@ class OrderTerminalABTest extends Specification {
|
||||||
//TODO loudout tests
|
//TODO loudout tests
|
||||||
|
|
||||||
"player can not load max loadout" in {
|
"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)
|
val player = Player(avatar)
|
||||||
avatar.SaveLoadout(player, "test1", 0)
|
avatar.SaveLoadout(player, "test1", 0)
|
||||||
player.ExoSuit = ExoSuitType.MAX
|
player.ExoSuit = ExoSuitType.MAX
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ import org.specs2.mutable.Specification
|
||||||
|
|
||||||
class OrderTerminalTest extends Specification {
|
class OrderTerminalTest extends Specification {
|
||||||
"Order_Terminal" should {
|
"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)
|
val terminal = Terminal(GlobalDefinitions.order_terminal)
|
||||||
terminal.Owner = new Building(0, Zone.Nowhere, StructureType.Building)
|
terminal.Owner = new Building(0, Zone.Nowhere, StructureType.Building)
|
||||||
terminal.Owner.Faction = PlanetSideEmpire.TR
|
terminal.Owner.Faction = PlanetSideEmpire.TR
|
||||||
|
|
@ -79,7 +79,7 @@ class OrderTerminalTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"player can retrieve an infantry loadout" in {
|
"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)
|
val player2 = Player(avatar)
|
||||||
player2.ExoSuit = ExoSuitType.Agile
|
player2.ExoSuit = ExoSuitType.Agile
|
||||||
player2.Slot(0).Equipment = Tool(GlobalDefinitions.beamer)
|
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 {
|
"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)
|
val player2 = Player(avatar)
|
||||||
player2.ExoSuit = ExoSuitType.Agile
|
player2.ExoSuit = ExoSuitType.Agile
|
||||||
player2.Slot(0).Equipment = Tool(GlobalDefinitions.beamer)
|
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 {
|
"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)
|
val player2 = Player(avatar)
|
||||||
player2.ExoSuit = ExoSuitType.Agile
|
player2.ExoSuit = ExoSuitType.Agile
|
||||||
player2.Slot(0).Equipment = Tool(GlobalDefinitions.beamer)
|
player2.Slot(0).Equipment = Tool(GlobalDefinitions.beamer)
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ import net.psforever.objects.serverobject.CommonMessages
|
||||||
import net.psforever.objects.{Avatar, GlobalDefinitions, Player}
|
import net.psforever.objects.{Avatar, GlobalDefinitions, Player}
|
||||||
import net.psforever.objects.serverobject.terminals._
|
import net.psforever.objects.serverobject.terminals._
|
||||||
import net.psforever.packet.game.PlanetSideGUID
|
import net.psforever.packet.game.PlanetSideGUID
|
||||||
import net.psforever.types.{CharacterGender, PlanetSideEmpire}
|
import net.psforever.types.{CharacterGender, CharacterVoice, PlanetSideEmpire}
|
||||||
import objects.ActorTest
|
import objects.ActorTest
|
||||||
|
|
||||||
import scala.concurrent.duration.Duration
|
import scala.concurrent.duration.Duration
|
||||||
|
|
@ -34,7 +34,7 @@ class MedicalTerminalControl1Test extends ActorTest() {
|
||||||
"ProximityTerminalControl sends a message to the first new user only" in {
|
"ProximityTerminalControl sends a message to the first new user only" in {
|
||||||
val (player, terminal) = ProximityTerminalControlTest.SetUpAgents(GlobalDefinitions.medical_terminal, PlanetSideEmpire.TR)
|
val (player, terminal) = ProximityTerminalControlTest.SetUpAgents(GlobalDefinitions.medical_terminal, PlanetSideEmpire.TR)
|
||||||
player.GUID = PlanetSideGUID(10)
|
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)
|
player2.GUID = PlanetSideGUID(11)
|
||||||
|
|
||||||
terminal.Actor ! CommonMessages.Use(player)
|
terminal.Actor ! CommonMessages.Use(player)
|
||||||
|
|
@ -57,7 +57,7 @@ class MedicalTerminalControl2Test extends ActorTest() {
|
||||||
"ProximityTerminalControl sends a message to the last user only" in {
|
"ProximityTerminalControl sends a message to the last user only" in {
|
||||||
val (player, terminal) : (Player, ProximityTerminal) = ProximityTerminalControlTest.SetUpAgents(GlobalDefinitions.medical_terminal, PlanetSideEmpire.TR)
|
val (player, terminal) : (Player, ProximityTerminal) = ProximityTerminalControlTest.SetUpAgents(GlobalDefinitions.medical_terminal, PlanetSideEmpire.TR)
|
||||||
player.GUID = PlanetSideGUID(10)
|
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)
|
player2.GUID = PlanetSideGUID(11)
|
||||||
|
|
||||||
terminal.Actor ! CommonMessages.Use(player)
|
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 {
|
"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)
|
val (player, terminal) : (Player, ProximityTerminal) = ProximityTerminalControlTest.SetUpAgents(GlobalDefinitions.medical_terminal, PlanetSideEmpire.TR)
|
||||||
player.GUID = PlanetSideGUID(10)
|
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)
|
player2.GUID = PlanetSideGUID(11)
|
||||||
|
|
||||||
terminal.Actor ! CommonMessages.Use(player)
|
terminal.Actor ! CommonMessages.Use(player)
|
||||||
|
|
@ -115,6 +115,6 @@ object ProximityTerminalControlTest {
|
||||||
def SetUpAgents(tdef : MedicalTerminalDefinition, faction : PlanetSideEmpire.Value)(implicit system : ActorSystem) : (Player, ProximityTerminal) = {
|
def SetUpAgents(tdef : MedicalTerminalDefinition, faction : PlanetSideEmpire.Value)(implicit system : ActorSystem) : (Player, ProximityTerminal) = {
|
||||||
val terminal = ProximityTerminal(tdef)
|
val terminal = ProximityTerminal(tdef)
|
||||||
terminal.Actor = system.actorOf(Props(classOf[ProximityTerminalControl], terminal), "test-term")
|
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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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.serverobject.terminals.{ProximityTerminal, ProximityTerminalControl, ProximityUnit, Terminal}
|
||||||
import net.psforever.objects.{Avatar, GlobalDefinitions, Player}
|
import net.psforever.objects.{Avatar, GlobalDefinitions, Player}
|
||||||
import net.psforever.packet.game.PlanetSideGUID
|
import net.psforever.packet.game.PlanetSideGUID
|
||||||
import net.psforever.types.{CharacterGender, PlanetSideEmpire}
|
import net.psforever.types.{CharacterGender, CharacterVoice, PlanetSideEmpire}
|
||||||
import objects.ActorTest
|
import objects.ActorTest
|
||||||
import org.specs2.mutable.Specification
|
import org.specs2.mutable.Specification
|
||||||
|
|
||||||
|
|
@ -70,7 +70,7 @@ class ProximityTerminalControl1bTest extends ActorTest {
|
||||||
"send out a start message" in {
|
"send out a start message" in {
|
||||||
val obj = ProximityTerminal(GlobalDefinitions.medical_terminal)
|
val obj = ProximityTerminal(GlobalDefinitions.medical_terminal)
|
||||||
obj.Actor = system.actorOf(Props(classOf[ProximityTerminalControl], obj), "prox-ctrl")
|
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)
|
player.GUID = PlanetSideGUID(10)
|
||||||
|
|
||||||
assert(obj.NumberUsers == 0)
|
assert(obj.NumberUsers == 0)
|
||||||
|
|
@ -91,9 +91,9 @@ class ProximityTerminalControl2bTest extends ActorTest {
|
||||||
"will not send out one start message unless first user" in {
|
"will not send out one start message unless first user" in {
|
||||||
val obj = ProximityTerminal(GlobalDefinitions.medical_terminal)
|
val obj = ProximityTerminal(GlobalDefinitions.medical_terminal)
|
||||||
obj.Actor = system.actorOf(Props(classOf[ProximityTerminalControl], obj), "prox-ctrl")
|
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)
|
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)
|
player2.GUID = PlanetSideGUID(11)
|
||||||
assert(obj.NumberUsers == 0)
|
assert(obj.NumberUsers == 0)
|
||||||
|
|
||||||
|
|
@ -114,7 +114,7 @@ class ProximityTerminalControl3bTest extends ActorTest {
|
||||||
"send out a stop message" in {
|
"send out a stop message" in {
|
||||||
val obj = ProximityTerminal(GlobalDefinitions.medical_terminal)
|
val obj = ProximityTerminal(GlobalDefinitions.medical_terminal)
|
||||||
obj.Actor = system.actorOf(Props(classOf[ProximityTerminalControl], obj), "prox-ctrl")
|
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)
|
player.GUID = PlanetSideGUID(10)
|
||||||
|
|
||||||
assert(obj.NumberUsers == 0)
|
assert(obj.NumberUsers == 0)
|
||||||
|
|
@ -138,9 +138,9 @@ class ProximityTerminalControl4bTest extends ActorTest {
|
||||||
"will not send out one stop message until last user" in {
|
"will not send out one stop message until last user" in {
|
||||||
val obj = ProximityTerminal(GlobalDefinitions.medical_terminal)
|
val obj = ProximityTerminal(GlobalDefinitions.medical_terminal)
|
||||||
obj.Actor = system.actorOf(Props(classOf[ProximityTerminalControl], obj), "prox-ctrl")
|
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)
|
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)
|
player2.GUID = PlanetSideGUID(11)
|
||||||
assert(obj.NumberUsers == 0)
|
assert(obj.NumberUsers == 0)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,12 +7,12 @@ import net.psforever.objects._
|
||||||
import net.psforever.objects.serverobject.terminals.Terminal
|
import net.psforever.objects.serverobject.terminals.Terminal
|
||||||
import net.psforever.objects.zones.Zone
|
import net.psforever.objects.zones.Zone
|
||||||
import net.psforever.packet.game.{ItemTransactionMessage, PlanetSideGUID}
|
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
|
import org.specs2.mutable.Specification
|
||||||
|
|
||||||
class RepairRearmSiloTest extends Specification {
|
class RepairRearmSiloTest extends Specification {
|
||||||
"RepairRearmSilo" should {
|
"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)
|
val silo = Terminal(GlobalDefinitions.repair_silo)
|
||||||
silo.Owner = new Building(0, Zone.Nowhere, StructureType.Building)
|
silo.Owner = new Building(0, Zone.Nowhere, StructureType.Building)
|
||||||
silo.Owner.Faction = PlanetSideEmpire.TR
|
silo.Owner.Faction = PlanetSideEmpire.TR
|
||||||
|
|
@ -49,7 +49,7 @@ class RepairRearmSiloTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"player can retrieve a vehicle loadout" in {
|
"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 player2 = Player(avatar)
|
||||||
val vehicle = Vehicle(GlobalDefinitions.fury)
|
val vehicle = Vehicle(GlobalDefinitions.fury)
|
||||||
vehicle.Slot(30).Equipment = AmmoBox(GlobalDefinitions.bullet_9mm)
|
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 {
|
"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 player2 = Player(avatar)
|
||||||
val vehicle = Vehicle(GlobalDefinitions.fury)
|
val vehicle = Vehicle(GlobalDefinitions.fury)
|
||||||
vehicle.Slot(30).Equipment = AmmoBox(GlobalDefinitions.bullet_9mm)
|
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 {
|
"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 player2 = Player(avatar)
|
||||||
val vehicle = Vehicle(GlobalDefinitions.fury)
|
val vehicle = Vehicle(GlobalDefinitions.fury)
|
||||||
vehicle.Slot(30).Equipment = AmmoBox(GlobalDefinitions.bullet_9mm)
|
vehicle.Slot(30).Equipment = AmmoBox(GlobalDefinitions.bullet_9mm)
|
||||||
|
|
|
||||||
|
|
@ -123,6 +123,6 @@ object TerminalControlTest {
|
||||||
terminal.Actor = system.actorOf(Props(classOf[TerminalControl], terminal), "test-term")
|
terminal.Actor = system.actorOf(Props(classOf[TerminalControl], terminal), "test-term")
|
||||||
terminal.Owner = new Building(0, Zone.Nowhere, StructureType.Building)
|
terminal.Owner = new Building(0, Zone.Nowhere, StructureType.Building)
|
||||||
terminal.Owner.Faction = faction
|
terminal.Owner.Faction = faction
|
||||||
(Player(Avatar("test", faction, CharacterGender.Male, 0, 0)), terminal)
|
(Player(Avatar("test", faction, CharacterGender.Male, 0, CharacterVoice.Mute)), terminal)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,12 +7,12 @@ import net.psforever.objects.{Avatar, GlobalDefinitions, Player}
|
||||||
import net.psforever.objects.serverobject.terminals.Terminal
|
import net.psforever.objects.serverobject.terminals.Terminal
|
||||||
import net.psforever.objects.zones.Zone
|
import net.psforever.objects.zones.Zone
|
||||||
import net.psforever.packet.game.{ItemTransactionMessage, PlanetSideGUID}
|
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
|
import org.specs2.mutable.Specification
|
||||||
|
|
||||||
class VehicleTerminalCombinedTest extends Specification {
|
class VehicleTerminalCombinedTest extends Specification {
|
||||||
"Ground_Vehicle_Terminal" should {
|
"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)
|
val terminal = Terminal(GlobalDefinitions.vehicle_terminal_combined)
|
||||||
terminal.Owner = new Building(0, Zone.Nowhere, StructureType.Building)
|
terminal.Owner = new Building(0, Zone.Nowhere, StructureType.Building)
|
||||||
terminal.Owner.Faction = PlanetSideEmpire.TR
|
terminal.Owner.Faction = PlanetSideEmpire.TR
|
||||||
|
|
|
||||||
|
|
@ -1554,7 +1554,7 @@ class WorldSessionActor extends Actor with MDCContextAware {
|
||||||
//TODO begin temp player character auto-loading; remove later
|
//TODO begin temp player character auto-loading; remove later
|
||||||
import net.psforever.objects.GlobalDefinitions._
|
import net.psforever.objects.GlobalDefinitions._
|
||||||
import net.psforever.types.CertificationType._
|
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 += StandardAssault
|
||||||
avatar.Certifications += MediumAssault
|
avatar.Certifications += MediumAssault
|
||||||
avatar.Certifications += StandardExoSuit
|
avatar.Certifications += StandardExoSuit
|
||||||
|
|
@ -3234,6 +3234,29 @@ class WorldSessionActor extends Actor with MDCContextAware {
|
||||||
}, List(RegisterVehicle(obj)))
|
}, 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`.
|
* Construct tasking that removes the `Equipment` to `target`.
|
||||||
* @param target what object that contains the `Equipment`
|
* @param target what object that contains the `Equipment`
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ import net.psforever.objects.guid.{GUIDTask, TaskResolver}
|
||||||
import net.psforever.objects.zones.{Zone, ZoneActor, ZoneMap}
|
import net.psforever.objects.zones.{Zone, ZoneActor, ZoneMap}
|
||||||
import net.psforever.packet.game.objectcreate.{DroppedItemData, ObjectClass, ObjectCreateMessageParent, PlacementData}
|
import net.psforever.packet.game.objectcreate.{DroppedItemData, ObjectClass, ObjectCreateMessageParent, PlacementData}
|
||||||
import net.psforever.packet.game.{ObjectCreateMessage, PlanetSideGUID, PlayerStateMessageUpstream}
|
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.{RemoverActor, Service, ServiceManager}
|
||||||
import services.avatar._
|
import services.avatar._
|
||||||
|
|
||||||
|
|
@ -152,7 +152,7 @@ class DroptItemTest extends ActorTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
class LoadPlayerTest 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.GUID = PlanetSideGUID(10)
|
||||||
obj.Slot(5).Equipment.get.GUID = PlanetSideGUID(11)
|
obj.Slot(5).Equipment.get.GUID = PlanetSideGUID(11)
|
||||||
val c1data = obj.Definition.Packet.DetailedConstructorData(obj).get
|
val c1data = obj.Definition.Packet.DetailedConstructorData(obj).get
|
||||||
|
|
@ -235,7 +235,7 @@ class PlayerStateTest extends ActorTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
class PickupItemATest 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.GUID = PlanetSideGUID(10)
|
||||||
obj.Slot(5).Equipment.get.GUID = PlanetSideGUID(11)
|
obj.Slot(5).Equipment.get.GUID = PlanetSideGUID(11)
|
||||||
|
|
||||||
|
|
@ -260,7 +260,7 @@ class PickupItemATest extends ActorTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
class PickupItemBTest 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)
|
val tool = Tool(GlobalDefinitions.beamer)
|
||||||
tool.GUID = PlanetSideGUID(40)
|
tool.GUID = PlanetSideGUID(40)
|
||||||
|
|
||||||
|
|
@ -388,7 +388,7 @@ class AvatarReleaseTest extends ActorTest {
|
||||||
val taskResolver = system.actorOf(Props[TaskResolver], "release-test-resolver")
|
val taskResolver = system.actorOf(Props[TaskResolver], "release-test-resolver")
|
||||||
zone.Actor = system.actorOf(Props(classOf[ZoneActor], zone), "release-test-zone")
|
zone.Actor = system.actorOf(Props(classOf[ZoneActor], zone), "release-test-zone")
|
||||||
zone.Actor ! Zone.Init()
|
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.Continent = "test"
|
||||||
obj.Release
|
obj.Release
|
||||||
|
|
||||||
|
|
@ -437,7 +437,7 @@ class AvatarReleaseEarly1Test extends ActorTest {
|
||||||
val taskResolver = system.actorOf(Props[TaskResolver], "release-test-resolver")
|
val taskResolver = system.actorOf(Props[TaskResolver], "release-test-resolver")
|
||||||
zone.Actor = system.actorOf(Props(classOf[ZoneActor], zone), "release-test-zone")
|
zone.Actor = system.actorOf(Props(classOf[ZoneActor], zone), "release-test-zone")
|
||||||
zone.Actor ! Zone.Init()
|
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.Continent = "test"
|
||||||
obj.Release
|
obj.Release
|
||||||
|
|
||||||
|
|
@ -487,8 +487,8 @@ class AvatarReleaseEarly2Test extends ActorTest {
|
||||||
val taskResolver = system.actorOf(Props[TaskResolver], "release-test-resolver")
|
val taskResolver = system.actorOf(Props[TaskResolver], "release-test-resolver")
|
||||||
zone.Actor = system.actorOf(Props(classOf[ZoneActor], zone), "release-test-zone")
|
zone.Actor = system.actorOf(Props(classOf[ZoneActor], zone), "release-test-zone")
|
||||||
zone.Actor ! Zone.Init()
|
zone.Actor ! Zone.Init()
|
||||||
val objAlt = Player(Avatar("TestCharacter2", PlanetSideEmpire.NC, CharacterGender.Male, 1, 1)) //necessary clutter
|
val objAlt = Player(Avatar("TestCharacter2", PlanetSideEmpire.NC, CharacterGender.Male, 1, CharacterVoice.Voice1)) //necessary clutter
|
||||||
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.Continent = "test"
|
||||||
obj.Release
|
obj.Release
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -455,7 +455,7 @@ class PacketCodingActorITest extends ActorTest {
|
||||||
import net.psforever.packet.game.objectcreate._
|
import net.psforever.packet.game.objectcreate._
|
||||||
val pos : PlacementData = PlacementData(Vector3.Zero, Vector3.Zero)
|
val pos : PlacementData = PlacementData(Vector3.Zero, Vector3.Zero)
|
||||||
val app : (Int)=>CharacterAppearanceData = CharacterAppearanceData(
|
val app : (Int)=>CharacterAppearanceData = CharacterAppearanceData(
|
||||||
BasicCharacterData("IlllIIIlllIlIllIlllIllI", PlanetSideEmpire.VS, CharacterGender.Female, 41, 1),
|
BasicCharacterData("IlllIIIlllIlIllIlllIllI", PlanetSideEmpire.VS, CharacterGender.Female, 41, CharacterVoice.Voice1),
|
||||||
3,
|
3,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
|
|
@ -548,7 +548,7 @@ class PacketCodingActorKTest extends ActorTest {
|
||||||
import net.psforever.packet.game.objectcreate._
|
import net.psforever.packet.game.objectcreate._
|
||||||
val pos : PlacementData = PlacementData(Vector3.Zero, Vector3.Zero)
|
val pos : PlacementData = PlacementData(Vector3.Zero, Vector3.Zero)
|
||||||
val app : (Int)=>CharacterAppearanceData = CharacterAppearanceData(
|
val app : (Int)=>CharacterAppearanceData = CharacterAppearanceData(
|
||||||
BasicCharacterData("IlllIIIlllIlIllIlllIllI", PlanetSideEmpire.VS, CharacterGender.Female, 41, 1),
|
BasicCharacterData("IlllIIIlllIlIllIlllIllI", PlanetSideEmpire.VS, CharacterGender.Female, 41, CharacterVoice.Voice1),
|
||||||
3,
|
3,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue