mirror of
https://github.com/2revoemag/PSF-BotServer.git
synced 2026-07-12 06:55:10 +00:00
tests for prior MAX changes; correcting a 13mm problem with the Lightning's chaingun ammunition type
This commit is contained in:
parent
e14f2817d7
commit
cf3bf19d4d
9 changed files with 664 additions and 443 deletions
|
|
@ -36,7 +36,7 @@ class ExoSuitDefinition(private val suitType : ExoSuitType.Value) {
|
||||||
def InventoryOffset : Int = inventoryOffset
|
def InventoryOffset : Int = inventoryOffset
|
||||||
|
|
||||||
def InventoryOffset_=(offset : Int) : Int = {
|
def InventoryOffset_=(offset : Int) : Int = {
|
||||||
inventoryOffset = offset
|
inventoryOffset = math.min(math.max(0, offset), 65535)
|
||||||
InventoryOffset
|
InventoryOffset
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -138,7 +138,7 @@ object ExoSuitDefinition {
|
||||||
Infiltration.Holster(0, EquipmentSize.Pistol)
|
Infiltration.Holster(0, EquipmentSize.Pistol)
|
||||||
Infiltration.Holster(4, EquipmentSize.Melee)
|
Infiltration.Holster(4, EquipmentSize.Melee)
|
||||||
|
|
||||||
final val MAX = new SpecialExoSuitDefinition(ExoSuitType.MAX)
|
final val MAX = SpecialExoSuitDefinition(ExoSuitType.MAX)
|
||||||
MAX.permission = 1
|
MAX.permission = 1
|
||||||
MAX.MaxArmor = 650
|
MAX.MaxArmor = 650
|
||||||
MAX.InventoryScale = InventoryTile.Tile1612
|
MAX.InventoryScale = InventoryTile.Tile1612
|
||||||
|
|
|
||||||
|
|
@ -2131,7 +2131,7 @@ object GlobalDefinitions {
|
||||||
lightning_weapon_system.Name = "lightning_weapon_system"
|
lightning_weapon_system.Name = "lightning_weapon_system"
|
||||||
lightning_weapon_system.Size = EquipmentSize.VehicleWeapon
|
lightning_weapon_system.Size = EquipmentSize.VehicleWeapon
|
||||||
lightning_weapon_system.AmmoTypes += bullet_75mm
|
lightning_weapon_system.AmmoTypes += bullet_75mm
|
||||||
lightning_weapon_system.AmmoTypes += bullet_25mm
|
lightning_weapon_system.AmmoTypes += bullet_12mm
|
||||||
lightning_weapon_system.FireModes += new FireModeDefinition
|
lightning_weapon_system.FireModes += new FireModeDefinition
|
||||||
lightning_weapon_system.FireModes.head.AmmoTypeIndices += 0
|
lightning_weapon_system.FireModes.head.AmmoTypeIndices += 0
|
||||||
lightning_weapon_system.FireModes.head.AmmoSlotIndex = 0
|
lightning_weapon_system.FireModes.head.AmmoSlotIndex = 0
|
||||||
|
|
|
||||||
|
|
@ -349,31 +349,43 @@ class Player(private val core : Avatar) extends PlanetSideGameObject with Factio
|
||||||
private def DefaultUsingSpecial(state : SpecialExoSuitDefinition.Mode.Value) : SpecialExoSuitDefinition.Mode.Value = SpecialExoSuitDefinition.Mode.Normal
|
private def DefaultUsingSpecial(state : SpecialExoSuitDefinition.Mode.Value) : SpecialExoSuitDefinition.Mode.Value = SpecialExoSuitDefinition.Mode.Normal
|
||||||
|
|
||||||
private def UsingAnchorsOrOverdrive(state : SpecialExoSuitDefinition.Mode.Value) : SpecialExoSuitDefinition.Mode.Value = {
|
private def UsingAnchorsOrOverdrive(state : SpecialExoSuitDefinition.Mode.Value) : SpecialExoSuitDefinition.Mode.Value = {
|
||||||
if(ExoSuit == ExoSuitType.MAX && Faction == PlanetSideEmpire.TR) {
|
import SpecialExoSuitDefinition.Mode._
|
||||||
val curr = UsingSpecial
|
val curr = UsingSpecial
|
||||||
val next = if(curr != SpecialExoSuitDefinition.Mode.Normal) {
|
val next = if(curr == Normal) {
|
||||||
SpecialExoSuitDefinition.Mode.Normal
|
if(state == Anchored || state == Overdrive) {
|
||||||
}
|
|
||||||
else if(curr == SpecialExoSuitDefinition.Mode.Normal) {
|
|
||||||
state
|
state
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
SpecialExoSuitDefinition.Mode.Normal
|
Normal
|
||||||
}
|
}
|
||||||
MAXUsingSpecial(next)
|
}
|
||||||
|
else if(state == Normal) {
|
||||||
|
Normal
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
SpecialExoSuitDefinition.Mode.Normal
|
curr
|
||||||
}
|
}
|
||||||
|
MAXUsingSpecial(next)
|
||||||
}
|
}
|
||||||
|
|
||||||
private def UsingShield(state : SpecialExoSuitDefinition.Mode.Value) : SpecialExoSuitDefinition.Mode.Value = {
|
private def UsingShield(state : SpecialExoSuitDefinition.Mode.Value) : SpecialExoSuitDefinition.Mode.Value = {
|
||||||
if(ExoSuit == ExoSuitType.MAX && Faction == PlanetSideEmpire.NC) {
|
import SpecialExoSuitDefinition.Mode._
|
||||||
MAXUsingSpecial(state)
|
val curr = UsingSpecial
|
||||||
|
val next = if(curr == Normal) {
|
||||||
|
if(state == Shielded) {
|
||||||
|
state
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Normal
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(state == Normal) {
|
||||||
|
Normal
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
SpecialExoSuitDefinition.Mode.Normal
|
curr
|
||||||
}
|
}
|
||||||
|
MAXUsingSpecial(next)
|
||||||
}
|
}
|
||||||
|
|
||||||
private def DefaultGettingSpecial() : SpecialExoSuitDefinition.Mode.Value = SpecialExoSuitDefinition.Mode.Normal
|
private def DefaultGettingSpecial() : SpecialExoSuitDefinition.Mode.Value = SpecialExoSuitDefinition.Mode.Normal
|
||||||
|
|
|
||||||
|
|
@ -326,9 +326,9 @@ abstract class VehicleTerminalDefinition(objId : Int) extends TerminalDefinition
|
||||||
),
|
),
|
||||||
"lightning" -> VehicleLoadout("default_lightning", List(),
|
"lightning" -> VehicleLoadout("default_lightning", List(),
|
||||||
List(
|
List(
|
||||||
SimplifiedEntry(ammo_25mm, 30),
|
SimplifiedEntry(ammo_12mm, 30),
|
||||||
SimplifiedEntry(ammo_25mm, 34),
|
SimplifiedEntry(ammo_12mm, 34),
|
||||||
SimplifiedEntry(ammo_25mm, 38),
|
SimplifiedEntry(ammo_12mm, 38),
|
||||||
SimplifiedEntry(ammo_75mm, 90),
|
SimplifiedEntry(ammo_75mm, 90),
|
||||||
SimplifiedEntry(ammo_75mm, 94),
|
SimplifiedEntry(ammo_75mm, 94),
|
||||||
SimplifiedEntry(ammo_75mm, 98)
|
SimplifiedEntry(ammo_75mm, 98)
|
||||||
|
|
|
||||||
|
|
@ -223,7 +223,7 @@ object Prefab {
|
||||||
VehicleData(CommonFieldData(loc, faction, 0), 0, health, false, false, DriveState.State7, true, false, false, None,
|
VehicleData(CommonFieldData(loc, faction, 0), 0, health, false, false, DriveState.State7, true, false, false, None,
|
||||||
Some(InventoryData(
|
Some(InventoryData(
|
||||||
InventoryItemData(ObjectClass.lightning_weapon_system, weapon_guid, 1,
|
InventoryItemData(ObjectClass.lightning_weapon_system, weapon_guid, 1,
|
||||||
WeaponData(0x4, 0x8, 0, ObjectClass.bullet_75mm, ammo1_guid, 0, AmmoBoxData(0x0), ObjectClass.bullet_25mm, ammo2_guid, 1, AmmoBoxData(0x0))
|
WeaponData(0x4, 0x8, 0, ObjectClass.bullet_75mm, ammo1_guid, 0, AmmoBoxData(0x0), ObjectClass.bullet_12mm, ammo2_guid, 1, AmmoBoxData(0x0))
|
||||||
) :: Nil)
|
) :: Nil)
|
||||||
)
|
)
|
||||||
)(VehicleFormat.Normal)
|
)(VehicleFormat.Normal)
|
||||||
|
|
|
||||||
145
common/src/test/scala/objects/ExoSuitTest.scala
Normal file
145
common/src/test/scala/objects/ExoSuitTest.scala
Normal file
|
|
@ -0,0 +1,145 @@
|
||||||
|
// Copyright (c) 2017 PSForever
|
||||||
|
package objects
|
||||||
|
|
||||||
|
import net.psforever.objects._
|
||||||
|
import net.psforever.objects.equipment.CItem.{DeployedItem, Unit}
|
||||||
|
import net.psforever.objects.equipment._
|
||||||
|
import net.psforever.objects.inventory.InventoryTile
|
||||||
|
import net.psforever.objects.GlobalDefinitions._
|
||||||
|
import net.psforever.objects.definition._
|
||||||
|
import net.psforever.types.ExoSuitType
|
||||||
|
import org.specs2.mutable._
|
||||||
|
|
||||||
|
class ExoSuitTest extends Specification {
|
||||||
|
"ExoSuitDefinition" should {
|
||||||
|
"construct" in {
|
||||||
|
val obj = ExoSuitDefinition(ExoSuitType.Standard)
|
||||||
|
obj.MaxArmor mustEqual 0
|
||||||
|
obj.InventoryScale mustEqual InventoryTile.Tile11
|
||||||
|
obj.InventoryOffset mustEqual 0
|
||||||
|
obj.SuitType mustEqual ExoSuitType.Standard
|
||||||
|
obj.Holsters.length mustEqual 5
|
||||||
|
obj.Holsters.foreach(slot => { if(slot != EquipmentSize.Blocked) { ko } })
|
||||||
|
ok
|
||||||
|
}
|
||||||
|
|
||||||
|
"produce the type of exo-suit that was provided as a clarified type" in {
|
||||||
|
ExoSuitDefinition(ExoSuitType.Standard).SuitType mustEqual ExoSuitType.Standard
|
||||||
|
ExoSuitDefinition(ExoSuitType.Agile).SuitType mustEqual ExoSuitType.Agile
|
||||||
|
}
|
||||||
|
|
||||||
|
"change the maximum armor value" in {
|
||||||
|
val obj = ExoSuitDefinition(ExoSuitType.Standard)
|
||||||
|
obj.MaxArmor mustEqual 0
|
||||||
|
obj.MaxArmor = 1
|
||||||
|
obj.MaxArmor mustEqual 1
|
||||||
|
}
|
||||||
|
|
||||||
|
"not change the maximum armor to an invalid value" in {
|
||||||
|
val obj = ExoSuitDefinition(ExoSuitType.Standard)
|
||||||
|
obj.MaxArmor mustEqual 0
|
||||||
|
obj.MaxArmor = -1
|
||||||
|
obj.MaxArmor mustEqual 0
|
||||||
|
obj.MaxArmor = 65536
|
||||||
|
obj.MaxArmor mustEqual 65535
|
||||||
|
}
|
||||||
|
|
||||||
|
"change the size of the inventory" in {
|
||||||
|
val obj = ExoSuitDefinition(ExoSuitType.Standard)
|
||||||
|
obj.InventoryScale mustEqual InventoryTile.Tile11
|
||||||
|
obj.InventoryScale = InventoryTile.Tile42
|
||||||
|
obj.InventoryScale mustEqual InventoryTile.Tile42
|
||||||
|
}
|
||||||
|
|
||||||
|
"change the start index of the inventory" in {
|
||||||
|
val obj = ExoSuitDefinition(ExoSuitType.Standard)
|
||||||
|
obj.InventoryOffset mustEqual 0
|
||||||
|
obj.InventoryOffset = 1
|
||||||
|
obj.InventoryOffset mustEqual 1
|
||||||
|
}
|
||||||
|
|
||||||
|
"not change the start index of the inventory to an invalid value" in {
|
||||||
|
val obj = ExoSuitDefinition(ExoSuitType.Standard)
|
||||||
|
obj.InventoryOffset mustEqual 0
|
||||||
|
obj.InventoryOffset = -1
|
||||||
|
obj.InventoryOffset mustEqual 0
|
||||||
|
obj.InventoryOffset = 65536
|
||||||
|
obj.InventoryOffset mustEqual 65535
|
||||||
|
}
|
||||||
|
|
||||||
|
"change specific holsters to specific values" in {
|
||||||
|
val obj = ExoSuitDefinition(ExoSuitType.Standard)
|
||||||
|
obj.Holster(0) mustEqual EquipmentSize.Blocked
|
||||||
|
obj.Holster(0, EquipmentSize.Pistol)
|
||||||
|
obj.Holster(0) mustEqual EquipmentSize.Pistol
|
||||||
|
obj.Holster(4) mustEqual EquipmentSize.Blocked
|
||||||
|
obj.Holster(4, EquipmentSize.Rifle)
|
||||||
|
obj.Holster(4) mustEqual EquipmentSize.Rifle
|
||||||
|
(0 to 4).foreach {
|
||||||
|
case 0 => obj.Holsters(0) mustEqual EquipmentSize.Pistol
|
||||||
|
case 4 => obj.Holsters(4) mustEqual EquipmentSize.Rifle
|
||||||
|
case x => obj.Holsters(x) mustEqual EquipmentSize.Blocked
|
||||||
|
}
|
||||||
|
ok
|
||||||
|
}
|
||||||
|
|
||||||
|
"can not change any slot that does not exist" in {
|
||||||
|
val obj = ExoSuitDefinition(ExoSuitType.Standard)
|
||||||
|
obj.Holster(9) mustEqual EquipmentSize.Blocked
|
||||||
|
obj.Holster(9, EquipmentSize.Pistol)
|
||||||
|
obj.Holster(9) mustEqual EquipmentSize.Blocked
|
||||||
|
}
|
||||||
|
|
||||||
|
"produce a copy of the definition" in {
|
||||||
|
val obj = ExoSuitDefinition(ExoSuitType.Standard)
|
||||||
|
val obj2 = obj.Use
|
||||||
|
obj eq obj2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
"SpecialExoSuitDefinition" should {
|
||||||
|
"construct" in {
|
||||||
|
val obj = SpecialExoSuitDefinition(ExoSuitType.Standard)
|
||||||
|
obj.MaxArmor mustEqual 0
|
||||||
|
obj.InventoryScale mustEqual InventoryTile.Tile11
|
||||||
|
obj.InventoryOffset mustEqual 0
|
||||||
|
obj.SuitType mustEqual ExoSuitType.Standard
|
||||||
|
obj.Holsters.length mustEqual 5
|
||||||
|
obj.Holsters.foreach(slot => { if(slot != EquipmentSize.Blocked) { ko } })
|
||||||
|
obj.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
|
||||||
|
}
|
||||||
|
|
||||||
|
"configure UsingSpecial to various values" in {
|
||||||
|
val obj = SpecialExoSuitDefinition(ExoSuitType.Standard)
|
||||||
|
obj.UsingSpecial = SpecialExoSuitDefinition.Mode.Anchored
|
||||||
|
obj.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Anchored
|
||||||
|
obj.UsingSpecial = SpecialExoSuitDefinition.Mode.Overdrive
|
||||||
|
obj.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Overdrive
|
||||||
|
obj.UsingSpecial = SpecialExoSuitDefinition.Mode.Shielded
|
||||||
|
obj.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Shielded
|
||||||
|
obj.UsingSpecial = SpecialExoSuitDefinition.Mode.Normal
|
||||||
|
obj.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
|
||||||
|
}
|
||||||
|
|
||||||
|
"produce a separate copy of the definition" in {
|
||||||
|
val obj = SpecialExoSuitDefinition(ExoSuitType.Standard)
|
||||||
|
val obj2 = obj.Use
|
||||||
|
obj ne obj2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
"ExoSuitDefinition.Select" should {
|
||||||
|
"produce common, shared instances of exo suits" in {
|
||||||
|
ExoSuitDefinition.Select(ExoSuitType.Standard) eq ExoSuitDefinition.Select(ExoSuitType.Standard)
|
||||||
|
ExoSuitDefinition.Select(ExoSuitType.Agile) eq ExoSuitDefinition.Select(ExoSuitType.Agile)
|
||||||
|
ExoSuitDefinition.Select(ExoSuitType.Reinforced) eq ExoSuitDefinition.Select(ExoSuitType.Reinforced)
|
||||||
|
ExoSuitDefinition.Select(ExoSuitType.Infiltration) eq ExoSuitDefinition.Select(ExoSuitType.Infiltration)
|
||||||
|
}
|
||||||
|
|
||||||
|
"produces unique instances of the mechanized assault exo suit" in {
|
||||||
|
val obj = ExoSuitDefinition.Select(ExoSuitType.MAX)
|
||||||
|
obj ne ExoSuitDefinition.Select(ExoSuitType.MAX)
|
||||||
|
obj.isInstanceOf[SpecialExoSuitDefinition] mustEqual true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -16,448 +16,512 @@ class PlayerTest extends Specification {
|
||||||
new Player(Avatar(name, faction, sex, head, voice))
|
new Player(Avatar(name, faction, sex, head, voice))
|
||||||
}
|
}
|
||||||
|
|
||||||
"construct" in {
|
"Player" should {
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
"construct" in {
|
||||||
obj.isAlive mustEqual false
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
||||||
obj.FacingYawUpper mustEqual 0
|
obj.isAlive mustEqual false
|
||||||
obj.Jumping mustEqual false
|
obj.FacingYawUpper mustEqual 0
|
||||||
obj.Crouching mustEqual false
|
obj.Jumping mustEqual false
|
||||||
obj.Cloaked mustEqual false
|
obj.Crouching mustEqual false
|
||||||
|
obj.Cloaked mustEqual false
|
||||||
|
|
||||||
obj.FacingYawUpper = 1.3f
|
obj.FacingYawUpper = 1.3f
|
||||||
obj.Jumping = true
|
obj.Jumping = true
|
||||||
obj.Crouching = true
|
obj.Crouching = true
|
||||||
obj.Cloaked = true
|
obj.Cloaked = true
|
||||||
obj.FacingYawUpper mustEqual 1.3f
|
obj.FacingYawUpper mustEqual 1.3f
|
||||||
obj.Jumping mustEqual true
|
obj.Jumping mustEqual true
|
||||||
obj.Crouching mustEqual true
|
obj.Crouching mustEqual true
|
||||||
obj.Cloaked mustEqual true
|
obj.Cloaked mustEqual true
|
||||||
}
|
|
||||||
|
|
||||||
"different players" in {
|
|
||||||
(TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5) ==
|
|
||||||
TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)) mustEqual true
|
|
||||||
|
|
||||||
(TestPlayer("Chord1", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5) ==
|
|
||||||
TestPlayer("Chord2", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)) mustEqual false
|
|
||||||
|
|
||||||
(TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5) ==
|
|
||||||
TestPlayer("Chord", PlanetSideEmpire.NC, CharacterGender.Male, 0, 5)) mustEqual false
|
|
||||||
|
|
||||||
(TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5) ==
|
|
||||||
TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Female, 0, 5)) mustEqual false
|
|
||||||
|
|
||||||
(TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5) ==
|
|
||||||
TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 1, 5)) mustEqual false
|
|
||||||
|
|
||||||
(TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5) ==
|
|
||||||
TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 6)) mustEqual false
|
|
||||||
}
|
|
||||||
|
|
||||||
"(re)spawn" in {
|
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
|
||||||
obj.isAlive mustEqual false
|
|
||||||
obj.Health mustEqual 0
|
|
||||||
obj.Stamina mustEqual 0
|
|
||||||
obj.Armor mustEqual 0
|
|
||||||
obj.MaxHealth mustEqual 100
|
|
||||||
obj.MaxStamina mustEqual 100
|
|
||||||
obj.MaxArmor mustEqual 50
|
|
||||||
obj.Spawn
|
|
||||||
obj.isAlive mustEqual true
|
|
||||||
obj.Health mustEqual 100
|
|
||||||
obj.Stamina mustEqual 100
|
|
||||||
obj.Armor mustEqual 50
|
|
||||||
}
|
|
||||||
|
|
||||||
"will not (re)spawn if not dead" in {
|
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
|
||||||
obj.Spawn
|
|
||||||
obj.Health mustEqual 100
|
|
||||||
obj.Armor mustEqual 50
|
|
||||||
obj.isAlive mustEqual true
|
|
||||||
|
|
||||||
obj.Health = 10
|
|
||||||
obj.Armor = 10
|
|
||||||
obj.Health mustEqual 10
|
|
||||||
obj.Armor mustEqual 10
|
|
||||||
obj.Spawn
|
|
||||||
obj.Health mustEqual 10
|
|
||||||
obj.Armor mustEqual 10
|
|
||||||
}
|
|
||||||
|
|
||||||
"can die" in {
|
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
|
||||||
obj.Spawn
|
|
||||||
obj.Armor = 35 //50 -> 35
|
|
||||||
obj.isAlive mustEqual true
|
|
||||||
obj.Health mustEqual obj.MaxHealth
|
|
||||||
obj.Stamina mustEqual obj.MaxStamina
|
|
||||||
obj.Armor mustEqual 35
|
|
||||||
obj.Die
|
|
||||||
obj.isAlive mustEqual false
|
|
||||||
obj.Health mustEqual 0
|
|
||||||
obj.Stamina mustEqual 0
|
|
||||||
obj.Armor mustEqual 35
|
|
||||||
}
|
|
||||||
|
|
||||||
"can not become a backpack if alive" in {
|
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
|
||||||
obj.Spawn
|
|
||||||
obj.isAlive mustEqual true
|
|
||||||
obj.isBackpack mustEqual false
|
|
||||||
obj.Release
|
|
||||||
obj.isAlive mustEqual true
|
|
||||||
obj.isBackpack mustEqual false
|
|
||||||
}
|
|
||||||
|
|
||||||
"can become a backpack" in {
|
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
|
||||||
obj.isAlive mustEqual false
|
|
||||||
obj.isBackpack mustEqual false
|
|
||||||
obj.Release
|
|
||||||
obj.isAlive mustEqual false
|
|
||||||
obj.isBackpack mustEqual true
|
|
||||||
}
|
|
||||||
|
|
||||||
"set new maximum values (health, stamina)" in {
|
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
|
||||||
obj.MaxHealth mustEqual 100
|
|
||||||
obj.MaxStamina mustEqual 100
|
|
||||||
obj.MaxHealth = 123
|
|
||||||
obj.MaxStamina = 456
|
|
||||||
obj.Spawn
|
|
||||||
obj.Health mustEqual 123
|
|
||||||
obj.Stamina mustEqual 456
|
|
||||||
}
|
|
||||||
|
|
||||||
"set new values (health, armor, stamina) but only when alive" in {
|
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
|
||||||
obj.Health = 23
|
|
||||||
obj.Armor = 34
|
|
||||||
obj.Stamina = 45
|
|
||||||
obj.Health mustEqual 0
|
|
||||||
obj.Armor mustEqual 0
|
|
||||||
obj.Stamina mustEqual 0
|
|
||||||
|
|
||||||
obj.Spawn
|
|
||||||
obj.Health mustEqual obj.MaxHealth
|
|
||||||
obj.Armor mustEqual obj.MaxArmor
|
|
||||||
obj.Stamina mustEqual obj.MaxStamina
|
|
||||||
obj.Health = 23
|
|
||||||
obj.Armor = 34
|
|
||||||
obj.Stamina = 45
|
|
||||||
obj.Health mustEqual 23
|
|
||||||
obj.Armor mustEqual 34
|
|
||||||
obj.Stamina mustEqual 45
|
|
||||||
}
|
|
||||||
|
|
||||||
"has visible slots" in {
|
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
|
||||||
obj.VisibleSlots mustEqual Set(0,1,2,3,4)
|
|
||||||
obj.ExoSuit = ExoSuitType.MAX
|
|
||||||
obj.VisibleSlots mustEqual Set(0)
|
|
||||||
}
|
|
||||||
|
|
||||||
"init (Standard Exo-Suit)" in {
|
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
|
||||||
obj.ExoSuit mustEqual ExoSuitType.Standard
|
|
||||||
obj.Slot(0).Size mustEqual EquipmentSize.Pistol
|
|
||||||
obj.Slot(1).Size mustEqual EquipmentSize.Blocked
|
|
||||||
obj.Slot(2).Size mustEqual EquipmentSize.Rifle
|
|
||||||
obj.Slot(3).Size mustEqual EquipmentSize.Blocked
|
|
||||||
obj.Slot(4).Size mustEqual EquipmentSize.Melee
|
|
||||||
obj.Inventory.Width mustEqual 9
|
|
||||||
obj.Inventory.Height mustEqual 6
|
|
||||||
obj.Inventory.Offset mustEqual 6
|
|
||||||
}
|
|
||||||
|
|
||||||
"draw equipped holsters only" in {
|
|
||||||
val wep = SimpleItem(SimpleItemDefinition(149))
|
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
|
||||||
obj.Slot(1).Size = EquipmentSize.Pistol
|
|
||||||
obj.Slot(1).Equipment = wep
|
|
||||||
obj.DrawnSlot mustEqual Player.HandsDownSlot
|
|
||||||
obj.DrawnSlot = 0
|
|
||||||
obj.DrawnSlot mustEqual Player.HandsDownSlot
|
|
||||||
obj.DrawnSlot = 1
|
|
||||||
obj.DrawnSlot mustEqual 1
|
|
||||||
}
|
|
||||||
|
|
||||||
"remember the last drawn holster" in {
|
|
||||||
val wep1 = SimpleItem(SimpleItemDefinition(149))
|
|
||||||
val wep2 = SimpleItem(SimpleItemDefinition(149))
|
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
|
||||||
obj.Slot(0).Size = EquipmentSize.Pistol
|
|
||||||
obj.Slot(0).Equipment = wep1
|
|
||||||
obj.Slot(1).Size = EquipmentSize.Pistol
|
|
||||||
obj.Slot(1).Equipment = wep2
|
|
||||||
obj.DrawnSlot mustEqual Player.HandsDownSlot //default value
|
|
||||||
obj.LastDrawnSlot mustEqual Player.HandsDownSlot //default value
|
|
||||||
|
|
||||||
obj.DrawnSlot = 1
|
|
||||||
obj.DrawnSlot mustEqual 1
|
|
||||||
obj.LastDrawnSlot mustEqual 1
|
|
||||||
|
|
||||||
obj.DrawnSlot = 0
|
|
||||||
obj.DrawnSlot mustEqual 0
|
|
||||||
obj.LastDrawnSlot mustEqual 0
|
|
||||||
|
|
||||||
obj.DrawnSlot = Player.HandsDownSlot
|
|
||||||
obj.DrawnSlot mustEqual Player.HandsDownSlot
|
|
||||||
obj.LastDrawnSlot mustEqual 0
|
|
||||||
|
|
||||||
obj.DrawnSlot = 1
|
|
||||||
obj.DrawnSlot mustEqual 1
|
|
||||||
obj.LastDrawnSlot mustEqual 1
|
|
||||||
|
|
||||||
obj.DrawnSlot = 0
|
|
||||||
obj.DrawnSlot mustEqual 0
|
|
||||||
obj.LastDrawnSlot mustEqual 0
|
|
||||||
|
|
||||||
obj.DrawnSlot = 1
|
|
||||||
obj.DrawnSlot mustEqual 1
|
|
||||||
obj.LastDrawnSlot mustEqual 1
|
|
||||||
|
|
||||||
obj.DrawnSlot = Player.HandsDownSlot
|
|
||||||
obj.DrawnSlot mustEqual Player.HandsDownSlot
|
|
||||||
obj.LastDrawnSlot mustEqual 1
|
|
||||||
}
|
|
||||||
|
|
||||||
"hold something in their free hand" in {
|
|
||||||
val wep = SimpleItem(SimpleItemDefinition(149))
|
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
|
||||||
obj.Slot(Player.FreeHandSlot).Equipment = wep
|
|
||||||
|
|
||||||
obj.Slot(Player.FreeHandSlot).Equipment.get.Definition.ObjectId mustEqual 149
|
|
||||||
}
|
|
||||||
|
|
||||||
"provide an invalid hand that can not hold anything" in {
|
|
||||||
val wep = SimpleItem(SimpleItemDefinition(149))
|
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
|
||||||
obj.Slot(-1).Equipment = wep
|
|
||||||
|
|
||||||
obj.Slot(-1).Equipment mustEqual None
|
|
||||||
}
|
|
||||||
|
|
||||||
"search for the smallest available slot in which to store equipment" in {
|
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
|
||||||
obj.Inventory.Resize(3,3) //fits one item
|
|
||||||
|
|
||||||
obj.Fit(Tool(GlobalDefinitions.beamer)) mustEqual Some(0)
|
|
||||||
|
|
||||||
obj.Fit(Tool(GlobalDefinitions.suppressor)) mustEqual Some(2)
|
|
||||||
|
|
||||||
val ammo = AmmoBox(GlobalDefinitions.bullet_9mm)
|
|
||||||
val ammo2 = AmmoBox(GlobalDefinitions.bullet_9mm)
|
|
||||||
val ammo3 = AmmoBox(GlobalDefinitions.bullet_9mm)
|
|
||||||
obj.Fit(ammo) mustEqual Some(6)
|
|
||||||
obj.Slot(6).Equipment = ammo
|
|
||||||
obj.Fit(ammo2) mustEqual Some(Player.FreeHandSlot)
|
|
||||||
obj.Slot(Player.FreeHandSlot).Equipment = ammo2
|
|
||||||
obj.Fit(ammo3) mustEqual None
|
|
||||||
}
|
|
||||||
|
|
||||||
"can use their free hand to hold things" in {
|
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
|
||||||
val ammo = AmmoBox(GlobalDefinitions.bullet_9mm)
|
|
||||||
obj.FreeHand.Equipment mustEqual None
|
|
||||||
|
|
||||||
obj.FreeHand.Equipment = ammo
|
|
||||||
obj.FreeHand.Equipment mustEqual Some(ammo)
|
|
||||||
}
|
|
||||||
|
|
||||||
"can access the player's locker-space" in {
|
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
|
||||||
obj.Slot(5).Equipment.get.isInstanceOf[LockerContainer] mustEqual true
|
|
||||||
}
|
|
||||||
|
|
||||||
"can find equipment" in {
|
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
|
||||||
obj.Slot(0).Equipment = {
|
|
||||||
val item = Tool(beamer)
|
|
||||||
item.GUID = PlanetSideGUID(1)
|
|
||||||
item
|
|
||||||
}
|
|
||||||
obj.Slot(4).Equipment = {
|
|
||||||
val item = Tool(forceblade)
|
|
||||||
item.GUID = PlanetSideGUID(2)
|
|
||||||
item
|
|
||||||
}
|
|
||||||
obj.Slot(6).Equipment = {
|
|
||||||
val item = ConstructionItem(ace)
|
|
||||||
item.GUID = PlanetSideGUID(3)
|
|
||||||
item
|
|
||||||
}
|
|
||||||
obj.Locker.Slot(6).Equipment = {
|
|
||||||
val item = Kit(medkit)
|
|
||||||
item.GUID = PlanetSideGUID(4)
|
|
||||||
item
|
|
||||||
}
|
|
||||||
obj.FreeHand.Equipment = {
|
|
||||||
val item = SimpleItem(remote_electronics_kit)
|
|
||||||
item.GUID = PlanetSideGUID(5)
|
|
||||||
item
|
|
||||||
}
|
}
|
||||||
|
|
||||||
obj.Find(PlanetSideGUID(1)) mustEqual Some(0) //holsters
|
"different players" in {
|
||||||
obj.Find(PlanetSideGUID(2)) mustEqual Some(4) //holsters, melee
|
(TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5) ==
|
||||||
obj.Find(PlanetSideGUID(3)) mustEqual Some(6) //inventory
|
TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)) mustEqual true
|
||||||
obj.Find(PlanetSideGUID(4)) mustEqual None //can not find in locker-space
|
|
||||||
obj.Find(PlanetSideGUID(5)) mustEqual Some(Player.FreeHandSlot) //free hand
|
|
||||||
obj.Find(PlanetSideGUID(6)) mustEqual None //not here
|
|
||||||
}
|
|
||||||
|
|
||||||
"does equipment collision checking (are we already holding something there?)" in {
|
(TestPlayer("Chord1", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5) ==
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
TestPlayer("Chord2", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)) mustEqual false
|
||||||
val item1 = Tool(beamer)
|
|
||||||
val item2 = Kit(medkit)
|
|
||||||
val item3 = AmmoBox(GlobalDefinitions.bullet_9mm)
|
|
||||||
obj.Slot(0).Equipment = item1
|
|
||||||
obj.Slot(6).Equipment = item2
|
|
||||||
obj.FreeHand.Equipment = item3
|
|
||||||
|
|
||||||
obj.Collisions(0, 1, 1) match {
|
(TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5) ==
|
||||||
case Success(List(item)) =>
|
TestPlayer("Chord", PlanetSideEmpire.NC, CharacterGender.Male, 0, 5)) mustEqual false
|
||||||
item.obj mustEqual item1
|
|
||||||
item.start mustEqual 0
|
|
||||||
case _ =>
|
|
||||||
ko
|
|
||||||
} //holsters
|
|
||||||
|
|
||||||
obj.Collisions(1, 1, 1) match {
|
(TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5) ==
|
||||||
case Success(List()) => ;
|
TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Female, 0, 5)) mustEqual false
|
||||||
case _ =>
|
|
||||||
ko
|
|
||||||
} //holsters, nothing
|
|
||||||
|
|
||||||
obj.Collisions(6, 1, 1)match {
|
(TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5) ==
|
||||||
case Success(List(item)) =>
|
TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 1, 5)) mustEqual false
|
||||||
item.obj mustEqual item2
|
|
||||||
item.start mustEqual 6
|
|
||||||
case _ =>
|
|
||||||
ko
|
|
||||||
} //inventory
|
|
||||||
|
|
||||||
obj.Collisions(Player.FreeHandSlot, 1, 1)match {
|
(TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5) ==
|
||||||
case Success(List(item)) =>
|
TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 6)) mustEqual false
|
||||||
item.obj mustEqual item3
|
}
|
||||||
item.start mustEqual Player.FreeHandSlot
|
|
||||||
case _ =>
|
|
||||||
ko
|
|
||||||
} //free hand
|
|
||||||
}
|
|
||||||
|
|
||||||
"battle experience point values of the avatar" in {
|
"(re)spawn" in {
|
||||||
val avatar = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
||||||
val player = Player(avatar)
|
obj.isAlive mustEqual false
|
||||||
|
obj.Health mustEqual 0
|
||||||
|
obj.Stamina mustEqual 0
|
||||||
|
obj.Armor mustEqual 0
|
||||||
|
obj.MaxHealth mustEqual 100
|
||||||
|
obj.MaxStamina mustEqual 100
|
||||||
|
obj.MaxArmor mustEqual 50
|
||||||
|
obj.Spawn
|
||||||
|
obj.isAlive mustEqual true
|
||||||
|
obj.Health mustEqual 100
|
||||||
|
obj.Stamina mustEqual 100
|
||||||
|
obj.Armor mustEqual 50
|
||||||
|
}
|
||||||
|
|
||||||
player.BEP mustEqual avatar.BEP
|
"will not (re)spawn if not dead" in {
|
||||||
avatar.BEP = 1002
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
||||||
player.BEP mustEqual avatar.BEP
|
obj.Spawn
|
||||||
}
|
obj.Health mustEqual 100
|
||||||
|
obj.Armor mustEqual 50
|
||||||
|
obj.isAlive mustEqual true
|
||||||
|
|
||||||
"command experience point values of the avatar" in {
|
obj.Health = 10
|
||||||
val avatar = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
obj.Armor = 10
|
||||||
val player = Player(avatar)
|
obj.Health mustEqual 10
|
||||||
|
obj.Armor mustEqual 10
|
||||||
|
obj.Spawn
|
||||||
|
obj.Health mustEqual 10
|
||||||
|
obj.Armor mustEqual 10
|
||||||
|
}
|
||||||
|
|
||||||
player.CEP mustEqual avatar.CEP
|
"can die" in {
|
||||||
avatar.CEP = 1002
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
||||||
player.CEP mustEqual avatar.CEP
|
obj.Spawn
|
||||||
}
|
obj.Armor = 35 //50 -> 35
|
||||||
|
obj.isAlive mustEqual true
|
||||||
|
obj.Health mustEqual obj.MaxHealth
|
||||||
|
obj.Stamina mustEqual obj.MaxStamina
|
||||||
|
obj.Armor mustEqual 35
|
||||||
|
obj.Die
|
||||||
|
obj.isAlive mustEqual false
|
||||||
|
obj.Health mustEqual 0
|
||||||
|
obj.Stamina mustEqual 0
|
||||||
|
obj.Armor mustEqual 35
|
||||||
|
}
|
||||||
|
|
||||||
"can get a quick summary of implant slots (default)" in {
|
"can not become a backpack if alive" in {
|
||||||
val avatar = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
||||||
val player = Player(avatar)
|
obj.Spawn
|
||||||
|
obj.isAlive mustEqual true
|
||||||
|
obj.isBackpack mustEqual false
|
||||||
|
obj.Release
|
||||||
|
obj.isAlive mustEqual true
|
||||||
|
obj.isBackpack mustEqual false
|
||||||
|
}
|
||||||
|
|
||||||
player.Implants mustEqual Array.empty
|
"can become a backpack" in {
|
||||||
}
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
||||||
|
obj.isAlive mustEqual false
|
||||||
|
obj.isBackpack mustEqual false
|
||||||
|
obj.Release
|
||||||
|
obj.isAlive mustEqual false
|
||||||
|
obj.isBackpack mustEqual true
|
||||||
|
}
|
||||||
|
|
||||||
"can get a quick summary of implant slots (two unlocked, one installed)" in {
|
"set new maximum values (health, stamina)" in {
|
||||||
val avatar = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
||||||
val player = Player(avatar)
|
obj.MaxHealth mustEqual 100
|
||||||
val temp = new ImplantDefinition(1)
|
obj.MaxStamina mustEqual 100
|
||||||
avatar.Implants(0).Unlocked = true
|
obj.MaxHealth = 123
|
||||||
avatar.InstallImplant(new ImplantDefinition(1))
|
obj.MaxStamina = 456
|
||||||
avatar.Implants(1).Unlocked = true
|
obj.Spawn
|
||||||
avatar.InstallImplant(new ImplantDefinition(2))
|
obj.Health mustEqual 123
|
||||||
avatar.UninstallImplant(temp.Type)
|
obj.Stamina mustEqual 456
|
||||||
|
}
|
||||||
|
|
||||||
val list = player.Implants
|
"set new values (health, armor, stamina) but only when alive" in {
|
||||||
//slot 0
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
||||||
val (implant1, init1, active1) = list(0)
|
obj.Health = 23
|
||||||
implant1 mustEqual ImplantType.None
|
obj.Armor = 34
|
||||||
init1 mustEqual -1
|
obj.Stamina = 45
|
||||||
active1 mustEqual false
|
obj.Health mustEqual 0
|
||||||
//slot 1
|
obj.Armor mustEqual 0
|
||||||
val (implant2, init2, active2) = list(1)
|
obj.Stamina mustEqual 0
|
||||||
implant2 mustEqual ImplantType(2)
|
|
||||||
init2 mustEqual 0
|
|
||||||
active2 mustEqual false
|
|
||||||
}
|
|
||||||
|
|
||||||
"can get a quick summary of implant slots (all unlocked, first two installed)" in {
|
obj.Spawn
|
||||||
val avatar = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
obj.Health mustEqual obj.MaxHealth
|
||||||
val player = Player(avatar)
|
obj.Armor mustEqual obj.MaxArmor
|
||||||
avatar.Implants(0).Unlocked = true
|
obj.Stamina mustEqual obj.MaxStamina
|
||||||
avatar.InstallImplant(new ImplantDefinition(1))
|
obj.Health = 23
|
||||||
avatar.Implants(0).Initialized = true
|
obj.Armor = 34
|
||||||
avatar.Implants(0).Active = true
|
obj.Stamina = 45
|
||||||
avatar.Implants(1).Unlocked = true
|
obj.Health mustEqual 23
|
||||||
avatar.InstallImplant(new ImplantDefinition(2))
|
obj.Armor mustEqual 34
|
||||||
avatar.Implants(1).Initialized = true
|
obj.Stamina mustEqual 45
|
||||||
avatar.Implants(1).Active = false
|
}
|
||||||
avatar.Implants(2).Unlocked = true
|
|
||||||
|
|
||||||
val list = player.Implants
|
"has visible slots" in {
|
||||||
//slot 0
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
||||||
val (implant1, init1, active1) = list(0)
|
obj.VisibleSlots mustEqual Set(0,1,2,3,4)
|
||||||
implant1 mustEqual ImplantType(1)
|
obj.ExoSuit = ExoSuitType.MAX
|
||||||
init1 mustEqual 0
|
obj.VisibleSlots mustEqual Set(0)
|
||||||
active1 mustEqual true
|
}
|
||||||
//slot 1
|
|
||||||
val (implant2, init2, active2) = list(1)
|
|
||||||
implant2 mustEqual ImplantType(2)
|
|
||||||
init2 mustEqual 0
|
|
||||||
active2 mustEqual false
|
|
||||||
//slot 2
|
|
||||||
val (implant3, init3, active3) = list(2)
|
|
||||||
implant3 mustEqual ImplantType.None
|
|
||||||
init3 mustEqual -1
|
|
||||||
active3 mustEqual false
|
|
||||||
}
|
|
||||||
|
|
||||||
"seat in a vehicle" 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, 5)
|
||||||
obj.VehicleSeated mustEqual None
|
obj.ExoSuit mustEqual ExoSuitType.Standard
|
||||||
obj.VehicleSeated = PlanetSideGUID(65)
|
obj.Slot(0).Size mustEqual EquipmentSize.Pistol
|
||||||
obj.VehicleSeated mustEqual Some(PlanetSideGUID(65))
|
obj.Slot(1).Size mustEqual EquipmentSize.Blocked
|
||||||
obj.VehicleSeated = None
|
obj.Slot(2).Size mustEqual EquipmentSize.Rifle
|
||||||
obj.VehicleSeated mustEqual None
|
obj.Slot(3).Size mustEqual EquipmentSize.Blocked
|
||||||
}
|
obj.Slot(4).Size mustEqual EquipmentSize.Melee
|
||||||
|
obj.Inventory.Width mustEqual 9
|
||||||
|
obj.Inventory.Height mustEqual 6
|
||||||
|
obj.Inventory.Offset mustEqual 6
|
||||||
|
}
|
||||||
|
|
||||||
"own in a vehicle" in {
|
"draw equipped holsters only" in {
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
val wep = SimpleItem(SimpleItemDefinition(149))
|
||||||
obj.VehicleOwned mustEqual None
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
||||||
obj.VehicleOwned = PlanetSideGUID(65)
|
obj.Slot(1).Size = EquipmentSize.Pistol
|
||||||
obj.VehicleOwned mustEqual Some(PlanetSideGUID(65))
|
obj.Slot(1).Equipment = wep
|
||||||
obj.VehicleOwned = None
|
obj.DrawnSlot mustEqual Player.HandsDownSlot
|
||||||
obj.VehicleOwned mustEqual None
|
obj.DrawnSlot = 0
|
||||||
}
|
obj.DrawnSlot mustEqual Player.HandsDownSlot
|
||||||
|
obj.DrawnSlot = 1
|
||||||
|
obj.DrawnSlot mustEqual 1
|
||||||
|
}
|
||||||
|
|
||||||
"remember what zone he is in" in {
|
"remember the last drawn holster" in {
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
val wep1 = SimpleItem(SimpleItemDefinition(149))
|
||||||
obj.Continent mustEqual "home2"
|
val wep2 = SimpleItem(SimpleItemDefinition(149))
|
||||||
obj.Continent = "ugd01"
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
||||||
obj.Continent mustEqual "ugd01"
|
obj.Slot(0).Size = EquipmentSize.Pistol
|
||||||
}
|
obj.Slot(0).Equipment = wep1
|
||||||
|
obj.Slot(1).Size = EquipmentSize.Pistol
|
||||||
|
obj.Slot(1).Equipment = wep2
|
||||||
|
obj.DrawnSlot mustEqual Player.HandsDownSlot //default value
|
||||||
|
obj.LastDrawnSlot mustEqual Player.HandsDownSlot //default value
|
||||||
|
|
||||||
"toString" in {
|
obj.DrawnSlot = 1
|
||||||
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
obj.DrawnSlot mustEqual 1
|
||||||
obj.toString mustEqual "TR Chord 0/100 0/50"
|
obj.LastDrawnSlot mustEqual 1
|
||||||
|
|
||||||
obj.GUID = PlanetSideGUID(455)
|
obj.DrawnSlot = 0
|
||||||
obj.Continent = "z3"
|
obj.DrawnSlot mustEqual 0
|
||||||
obj.toString mustEqual "TR Chord z3-455 0/100 0/50"
|
obj.LastDrawnSlot mustEqual 0
|
||||||
|
|
||||||
|
obj.DrawnSlot = Player.HandsDownSlot
|
||||||
|
obj.DrawnSlot mustEqual Player.HandsDownSlot
|
||||||
|
obj.LastDrawnSlot mustEqual 0
|
||||||
|
|
||||||
|
obj.DrawnSlot = 1
|
||||||
|
obj.DrawnSlot mustEqual 1
|
||||||
|
obj.LastDrawnSlot mustEqual 1
|
||||||
|
|
||||||
|
obj.DrawnSlot = 0
|
||||||
|
obj.DrawnSlot mustEqual 0
|
||||||
|
obj.LastDrawnSlot mustEqual 0
|
||||||
|
|
||||||
|
obj.DrawnSlot = 1
|
||||||
|
obj.DrawnSlot mustEqual 1
|
||||||
|
obj.LastDrawnSlot mustEqual 1
|
||||||
|
|
||||||
|
obj.DrawnSlot = Player.HandsDownSlot
|
||||||
|
obj.DrawnSlot mustEqual Player.HandsDownSlot
|
||||||
|
obj.LastDrawnSlot mustEqual 1
|
||||||
|
}
|
||||||
|
|
||||||
|
"hold something in their free hand" in {
|
||||||
|
val wep = SimpleItem(SimpleItemDefinition(149))
|
||||||
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
||||||
|
obj.Slot(Player.FreeHandSlot).Equipment = wep
|
||||||
|
|
||||||
|
obj.Slot(Player.FreeHandSlot).Equipment.get.Definition.ObjectId mustEqual 149
|
||||||
|
}
|
||||||
|
|
||||||
|
"provide an invalid hand that can not hold anything" in {
|
||||||
|
val wep = SimpleItem(SimpleItemDefinition(149))
|
||||||
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
||||||
|
obj.Slot(-1).Equipment = wep
|
||||||
|
|
||||||
|
obj.Slot(-1).Equipment mustEqual None
|
||||||
|
}
|
||||||
|
|
||||||
|
"search for the smallest available slot in which to store equipment" in {
|
||||||
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
||||||
|
obj.Inventory.Resize(3,3) //fits one item
|
||||||
|
|
||||||
|
obj.Fit(Tool(GlobalDefinitions.beamer)) mustEqual Some(0)
|
||||||
|
|
||||||
|
obj.Fit(Tool(GlobalDefinitions.suppressor)) mustEqual Some(2)
|
||||||
|
|
||||||
|
val ammo = AmmoBox(GlobalDefinitions.bullet_9mm)
|
||||||
|
val ammo2 = AmmoBox(GlobalDefinitions.bullet_9mm)
|
||||||
|
val ammo3 = AmmoBox(GlobalDefinitions.bullet_9mm)
|
||||||
|
obj.Fit(ammo) mustEqual Some(6)
|
||||||
|
obj.Slot(6).Equipment = ammo
|
||||||
|
obj.Fit(ammo2) mustEqual Some(Player.FreeHandSlot)
|
||||||
|
obj.Slot(Player.FreeHandSlot).Equipment = ammo2
|
||||||
|
obj.Fit(ammo3) mustEqual None
|
||||||
|
}
|
||||||
|
|
||||||
|
"can use their free hand to hold things" in {
|
||||||
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
||||||
|
val ammo = AmmoBox(GlobalDefinitions.bullet_9mm)
|
||||||
|
obj.FreeHand.Equipment mustEqual None
|
||||||
|
|
||||||
|
obj.FreeHand.Equipment = ammo
|
||||||
|
obj.FreeHand.Equipment mustEqual Some(ammo)
|
||||||
|
}
|
||||||
|
|
||||||
|
"can access the player's locker-space" in {
|
||||||
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
||||||
|
obj.Slot(5).Equipment.get.isInstanceOf[LockerContainer] mustEqual true
|
||||||
|
}
|
||||||
|
|
||||||
|
"can find equipment" in {
|
||||||
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
||||||
|
obj.Slot(0).Equipment = {
|
||||||
|
val item = Tool(beamer)
|
||||||
|
item.GUID = PlanetSideGUID(1)
|
||||||
|
item
|
||||||
|
}
|
||||||
|
obj.Slot(4).Equipment = {
|
||||||
|
val item = Tool(forceblade)
|
||||||
|
item.GUID = PlanetSideGUID(2)
|
||||||
|
item
|
||||||
|
}
|
||||||
|
obj.Slot(6).Equipment = {
|
||||||
|
val item = ConstructionItem(ace)
|
||||||
|
item.GUID = PlanetSideGUID(3)
|
||||||
|
item
|
||||||
|
}
|
||||||
|
obj.Locker.Slot(6).Equipment = {
|
||||||
|
val item = Kit(medkit)
|
||||||
|
item.GUID = PlanetSideGUID(4)
|
||||||
|
item
|
||||||
|
}
|
||||||
|
obj.FreeHand.Equipment = {
|
||||||
|
val item = SimpleItem(remote_electronics_kit)
|
||||||
|
item.GUID = PlanetSideGUID(5)
|
||||||
|
item
|
||||||
|
}
|
||||||
|
|
||||||
|
obj.Find(PlanetSideGUID(1)) mustEqual Some(0) //holsters
|
||||||
|
obj.Find(PlanetSideGUID(2)) mustEqual Some(4) //holsters, melee
|
||||||
|
obj.Find(PlanetSideGUID(3)) mustEqual Some(6) //inventory
|
||||||
|
obj.Find(PlanetSideGUID(4)) mustEqual None //can not find in locker-space
|
||||||
|
obj.Find(PlanetSideGUID(5)) mustEqual Some(Player.FreeHandSlot) //free hand
|
||||||
|
obj.Find(PlanetSideGUID(6)) mustEqual None //not here
|
||||||
|
}
|
||||||
|
|
||||||
|
"does equipment collision checking (are we already holding something there?)" in {
|
||||||
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
||||||
|
val item1 = Tool(beamer)
|
||||||
|
val item2 = Kit(medkit)
|
||||||
|
val item3 = AmmoBox(GlobalDefinitions.bullet_9mm)
|
||||||
|
obj.Slot(0).Equipment = item1
|
||||||
|
obj.Slot(6).Equipment = item2
|
||||||
|
obj.FreeHand.Equipment = item3
|
||||||
|
|
||||||
|
obj.Collisions(0, 1, 1) match {
|
||||||
|
case Success(List(item)) =>
|
||||||
|
item.obj mustEqual item1
|
||||||
|
item.start mustEqual 0
|
||||||
|
case _ =>
|
||||||
|
ko
|
||||||
|
} //holsters
|
||||||
|
|
||||||
|
obj.Collisions(1, 1, 1) match {
|
||||||
|
case Success(List()) => ;
|
||||||
|
case _ =>
|
||||||
|
ko
|
||||||
|
} //holsters, nothing
|
||||||
|
|
||||||
|
obj.Collisions(6, 1, 1)match {
|
||||||
|
case Success(List(item)) =>
|
||||||
|
item.obj mustEqual item2
|
||||||
|
item.start mustEqual 6
|
||||||
|
case _ =>
|
||||||
|
ko
|
||||||
|
} //inventory
|
||||||
|
|
||||||
|
obj.Collisions(Player.FreeHandSlot, 1, 1)match {
|
||||||
|
case Success(List(item)) =>
|
||||||
|
item.obj mustEqual item3
|
||||||
|
item.start mustEqual Player.FreeHandSlot
|
||||||
|
case _ =>
|
||||||
|
ko
|
||||||
|
} //free hand
|
||||||
|
}
|
||||||
|
|
||||||
|
"battle experience point values of the avatar" in {
|
||||||
|
val avatar = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
||||||
|
val player = Player(avatar)
|
||||||
|
|
||||||
|
player.BEP mustEqual avatar.BEP
|
||||||
|
avatar.BEP = 1002
|
||||||
|
player.BEP mustEqual avatar.BEP
|
||||||
|
}
|
||||||
|
|
||||||
|
"command experience point values of the avatar" in {
|
||||||
|
val avatar = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
||||||
|
val player = Player(avatar)
|
||||||
|
|
||||||
|
player.CEP mustEqual avatar.CEP
|
||||||
|
avatar.CEP = 1002
|
||||||
|
player.CEP mustEqual avatar.CEP
|
||||||
|
}
|
||||||
|
|
||||||
|
"can get a quick summary of implant slots (default)" in {
|
||||||
|
val avatar = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
||||||
|
val player = Player(avatar)
|
||||||
|
|
||||||
|
player.Implants mustEqual Array.empty
|
||||||
|
}
|
||||||
|
|
||||||
|
"can get a quick summary of implant slots (two unlocked, one installed)" in {
|
||||||
|
val avatar = Avatar("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
||||||
|
val player = Player(avatar)
|
||||||
|
val temp = new ImplantDefinition(1)
|
||||||
|
avatar.Implants(0).Unlocked = true
|
||||||
|
avatar.InstallImplant(new ImplantDefinition(1))
|
||||||
|
avatar.Implants(1).Unlocked = true
|
||||||
|
avatar.InstallImplant(new ImplantDefinition(2))
|
||||||
|
avatar.UninstallImplant(temp.Type)
|
||||||
|
|
||||||
|
val list = player.Implants
|
||||||
|
//slot 0
|
||||||
|
val (implant1, init1, active1) = list(0)
|
||||||
|
implant1 mustEqual ImplantType.None
|
||||||
|
init1 mustEqual -1
|
||||||
|
active1 mustEqual false
|
||||||
|
//slot 1
|
||||||
|
val (implant2, init2, active2) = list(1)
|
||||||
|
implant2 mustEqual ImplantType(2)
|
||||||
|
init2 mustEqual 0
|
||||||
|
active2 mustEqual false
|
||||||
|
}
|
||||||
|
|
||||||
|
"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 player = Player(avatar)
|
||||||
|
avatar.Implants(0).Unlocked = true
|
||||||
|
avatar.InstallImplant(new ImplantDefinition(1))
|
||||||
|
avatar.Implants(0).Initialized = true
|
||||||
|
avatar.Implants(0).Active = true
|
||||||
|
avatar.Implants(1).Unlocked = true
|
||||||
|
avatar.InstallImplant(new ImplantDefinition(2))
|
||||||
|
avatar.Implants(1).Initialized = true
|
||||||
|
avatar.Implants(1).Active = false
|
||||||
|
avatar.Implants(2).Unlocked = true
|
||||||
|
|
||||||
|
val list = player.Implants
|
||||||
|
//slot 0
|
||||||
|
val (implant1, init1, active1) = list(0)
|
||||||
|
implant1 mustEqual ImplantType(1)
|
||||||
|
init1 mustEqual 0
|
||||||
|
active1 mustEqual true
|
||||||
|
//slot 1
|
||||||
|
val (implant2, init2, active2) = list(1)
|
||||||
|
implant2 mustEqual ImplantType(2)
|
||||||
|
init2 mustEqual 0
|
||||||
|
active2 mustEqual false
|
||||||
|
//slot 2
|
||||||
|
val (implant3, init3, active3) = list(2)
|
||||||
|
implant3 mustEqual ImplantType.None
|
||||||
|
init3 mustEqual -1
|
||||||
|
active3 mustEqual false
|
||||||
|
}
|
||||||
|
|
||||||
|
"seat in a vehicle" in {
|
||||||
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
||||||
|
obj.VehicleSeated mustEqual None
|
||||||
|
obj.VehicleSeated = PlanetSideGUID(65)
|
||||||
|
obj.VehicleSeated mustEqual Some(PlanetSideGUID(65))
|
||||||
|
obj.VehicleSeated = None
|
||||||
|
obj.VehicleSeated mustEqual None
|
||||||
|
}
|
||||||
|
|
||||||
|
"own in a vehicle" in {
|
||||||
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
||||||
|
obj.VehicleOwned mustEqual None
|
||||||
|
obj.VehicleOwned = PlanetSideGUID(65)
|
||||||
|
obj.VehicleOwned mustEqual Some(PlanetSideGUID(65))
|
||||||
|
obj.VehicleOwned = None
|
||||||
|
obj.VehicleOwned mustEqual None
|
||||||
|
}
|
||||||
|
|
||||||
|
"remember what zone he is in" in {
|
||||||
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
||||||
|
obj.Continent mustEqual "home2"
|
||||||
|
obj.Continent = "ugd01"
|
||||||
|
obj.Continent mustEqual "ugd01"
|
||||||
|
}
|
||||||
|
|
||||||
|
"special is typically normal and can not be changed from normal" in {
|
||||||
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
||||||
|
obj.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
|
||||||
|
obj.UsingSpecial = SpecialExoSuitDefinition.Mode.Shielded
|
||||||
|
obj.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
|
||||||
|
}
|
||||||
|
|
||||||
|
"a TR MAX can change its special to Overdrive or Anchored" in {
|
||||||
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
||||||
|
obj.ExoSuit = ExoSuitType.MAX
|
||||||
|
obj.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
|
||||||
|
obj.UsingSpecial = SpecialExoSuitDefinition.Mode.Anchored
|
||||||
|
obj.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Anchored
|
||||||
|
obj.UsingSpecial = SpecialExoSuitDefinition.Mode.Normal
|
||||||
|
obj.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
|
||||||
|
obj.UsingSpecial = SpecialExoSuitDefinition.Mode.Overdrive
|
||||||
|
obj.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Overdrive
|
||||||
|
//note
|
||||||
|
obj.UsingSpecial = SpecialExoSuitDefinition.Mode.Anchored
|
||||||
|
obj.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Overdrive
|
||||||
|
}
|
||||||
|
|
||||||
|
"an NC MAX can change its special to Shielded" in {
|
||||||
|
val obj = TestPlayer("Chord", PlanetSideEmpire.NC, CharacterGender.Male, 0, 5)
|
||||||
|
obj.ExoSuit = ExoSuitType.MAX
|
||||||
|
obj.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
|
||||||
|
obj.UsingSpecial = SpecialExoSuitDefinition.Mode.Shielded
|
||||||
|
obj.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Shielded
|
||||||
|
obj.UsingSpecial = SpecialExoSuitDefinition.Mode.Normal
|
||||||
|
obj.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
|
||||||
|
}
|
||||||
|
|
||||||
|
"one faction can not use the other's specials" in {
|
||||||
|
val objtr = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
||||||
|
objtr.ExoSuit = ExoSuitType.MAX
|
||||||
|
objtr.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
|
||||||
|
objtr.UsingSpecial = SpecialExoSuitDefinition.Mode.Shielded
|
||||||
|
objtr.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
|
||||||
|
|
||||||
|
val objnc = TestPlayer("Chord", PlanetSideEmpire.NC, CharacterGender.Male, 0, 5)
|
||||||
|
objnc.ExoSuit = ExoSuitType.MAX
|
||||||
|
objnc.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
|
||||||
|
objnc.UsingSpecial = SpecialExoSuitDefinition.Mode.Overdrive
|
||||||
|
objnc.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
|
||||||
|
objnc.UsingSpecial = SpecialExoSuitDefinition.Mode.Anchored
|
||||||
|
objnc.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
|
||||||
|
}
|
||||||
|
|
||||||
|
"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)
|
||||||
|
obj.ExoSuit = ExoSuitType.MAX
|
||||||
|
obj.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
|
||||||
|
obj.UsingSpecial = SpecialExoSuitDefinition.Mode.Anchored
|
||||||
|
obj.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Anchored
|
||||||
|
|
||||||
|
val test = obj.UsingSpecial
|
||||||
|
obj.ExoSuit = ExoSuitType.Standard
|
||||||
|
obj.UsingSpecial mustEqual SpecialExoSuitDefinition.Mode.Normal
|
||||||
|
obj.ExoSuit = ExoSuitType.MAX
|
||||||
|
obj.UsingSpecial != test mustEqual true
|
||||||
|
}
|
||||||
|
|
||||||
|
"toString" in {
|
||||||
|
val obj = TestPlayer("Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, 5)
|
||||||
|
obj.toString mustEqual "TR Chord 0/100 0/50"
|
||||||
|
|
||||||
|
obj.GUID = PlanetSideGUID(455)
|
||||||
|
obj.Continent = "z3"
|
||||||
|
obj.toString mustEqual "TR Chord z3-455 0/100 0/50"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1486,7 +1486,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.TR, CharacterGender.Female, 41, 1)
|
avatar = Avatar("TestCharacter"+sessionId.toString, PlanetSideEmpire.VS, CharacterGender.Female, 41, 1)
|
||||||
avatar.Certifications += StandardAssault
|
avatar.Certifications += StandardAssault
|
||||||
avatar.Certifications += MediumAssault
|
avatar.Certifications += MediumAssault
|
||||||
avatar.Certifications += StandardExoSuit
|
avatar.Certifications += StandardExoSuit
|
||||||
|
|
@ -2558,7 +2558,7 @@ class WorldSessionActor extends Actor with MDCContextAware {
|
||||||
tool.ToFireMode = convertFireModeIndex
|
tool.ToFireMode = convertFireModeIndex
|
||||||
sendResponse(ChangeFireModeMessage(tool.GUID, convertFireModeIndex))
|
sendResponse(ChangeFireModeMessage(tool.GUID, convertFireModeIndex))
|
||||||
case _ =>
|
case _ =>
|
||||||
log.info(s"GenericObject: $player is MAS with an unexpected weapon - ${definition.Name}")
|
log.info(s"GenericObject: $player is MAX with an unexpected weapon - ${definition.Name}")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(action == 16) {
|
else if(action == 16) {
|
||||||
|
|
@ -2576,7 +2576,7 @@ class WorldSessionActor extends Actor with MDCContextAware {
|
||||||
tool.ToFireMode = convertFireModeIndex
|
tool.ToFireMode = convertFireModeIndex
|
||||||
sendResponse(ChangeFireModeMessage(tool.GUID, convertFireModeIndex))
|
sendResponse(ChangeFireModeMessage(tool.GUID, convertFireModeIndex))
|
||||||
case _ =>
|
case _ =>
|
||||||
log.info(s"GenericObject: $player is MAS with an unexpected weapon - ${definition.Name}")
|
log.info(s"GenericObject: $player is MAX with an unexpected weapon - ${definition.Name}")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ object Zones {
|
||||||
super.Init(context)
|
super.Init(context)
|
||||||
|
|
||||||
import net.psforever.types.PlanetSideEmpire
|
import net.psforever.types.PlanetSideEmpire
|
||||||
Building(2).get.Faction = PlanetSideEmpire.TR
|
Building(2).get.Faction = PlanetSideEmpire.VS
|
||||||
Building(2).get.ModelId = 20
|
Building(2).get.ModelId = 20
|
||||||
Building(38).get.ModelId = 0
|
Building(38).get.ModelId = 0
|
||||||
Building(42).get.ModelId = 0
|
Building(42).get.ModelId = 0
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue