mirror of
https://github.com/psforever/PSF-LoginServer.git
synced 2026-03-28 08:39:19 +00:00
Restructure repository
* Move /common/src to /src * Move services to net.psforever package * Move /pslogin to /server
This commit is contained in:
parent
89a30ae6f6
commit
f4fd78fc5d
958 changed files with 527 additions and 725 deletions
|
|
@ -1,110 +0,0 @@
|
|||
// Copyright (c) 2017 PSForever
|
||||
package objects
|
||||
|
||||
import net.psforever.objects.GlobalDefinitions._
|
||||
import net.psforever.objects._
|
||||
import net.psforever.objects.avatar.{Avatar, BattleRank, Implant}
|
||||
import net.psforever.objects.definition.ImplantDefinition
|
||||
import net.psforever.types.{CharacterGender, CharacterVoice, ImplantType, PlanetSideEmpire}
|
||||
import org.specs2.mutable._
|
||||
|
||||
class AvatarTest extends Specification {
|
||||
def CreatePlayer(): (Player, Avatar) = {
|
||||
val avatar = Avatar(0, "TestCharacter", PlanetSideEmpire.VS, CharacterGender.Female, 41, CharacterVoice.Voice1)
|
||||
val player = Player(avatar)
|
||||
player.Slot(0).Equipment = Tool(beamer)
|
||||
player.Slot(2).Equipment = Tool(suppressor)
|
||||
player.Slot(4).Equipment = Tool(forceblade)
|
||||
player.Slot(6).Equipment = AmmoBox(bullet_9mm)
|
||||
player.Slot(9).Equipment = AmmoBox(bullet_9mm)
|
||||
player.Slot(12).Equipment = AmmoBox(bullet_9mm)
|
||||
player.Slot(33).Equipment = AmmoBox(bullet_9mm_AP)
|
||||
player.Slot(36).Equipment = AmmoBox(energy_cell)
|
||||
player.Slot(39).Equipment = SimpleItem(remote_electronics_kit)
|
||||
(player, avatar)
|
||||
}
|
||||
|
||||
"construct" in {
|
||||
val av = Avatar(0, "Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
||||
av.name mustEqual "Chord"
|
||||
av.faction mustEqual PlanetSideEmpire.TR
|
||||
av.sex mustEqual CharacterGender.Male
|
||||
av.head mustEqual 0
|
||||
av.voice mustEqual CharacterVoice.Voice5
|
||||
av.bep mustEqual 0
|
||||
av.cep mustEqual 0
|
||||
av.certifications mustEqual Set.empty
|
||||
av.definition.ObjectId mustEqual 121
|
||||
}
|
||||
|
||||
"can not maintain experience point values below zero" in {
|
||||
val av = Avatar(0, "Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
||||
av.bep mustEqual 0
|
||||
av.copy(bep = -1) must throwA[AssertionError]
|
||||
av.copy(cep = -1) must throwA[AssertionError]
|
||||
}
|
||||
|
||||
//refer to ImplantTest.scala for more tests
|
||||
"maximum of three implant slots" in {
|
||||
val obj = Avatar(0, "Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
||||
obj.implants.length mustEqual 3
|
||||
obj.implants(0) must beNone
|
||||
obj.implants(1) must beNone
|
||||
obj.implants(2) must beNone
|
||||
obj.implants.lift(3) must beNone
|
||||
}
|
||||
|
||||
"can install an implant" in {
|
||||
val testplant = Implant(new ImplantDefinition(ImplantType.AdvancedRegen))
|
||||
var obj = Avatar(
|
||||
0,
|
||||
"Chord",
|
||||
PlanetSideEmpire.TR,
|
||||
CharacterGender.Male,
|
||||
0,
|
||||
CharacterVoice.Voice5,
|
||||
bep = BattleRank.BR6.experience
|
||||
)
|
||||
obj.implants.nonEmpty must beTrue
|
||||
obj.implants.length mustEqual 3
|
||||
obj = obj.copy(implants = obj.implants.updated(0, Some(testplant)))
|
||||
obj.implants.flatten.find(_.definition.implantType == ImplantType.AdvancedRegen) match {
|
||||
case Some(slot) =>
|
||||
slot.definition mustEqual testplant.definition
|
||||
case _ =>
|
||||
ko
|
||||
}
|
||||
ok
|
||||
}
|
||||
|
||||
"can not install the same type of implant twice" in {
|
||||
val testplant1 = Implant(new ImplantDefinition(ImplantType.AdvancedRegen))
|
||||
val testplant2 = Implant(new ImplantDefinition(ImplantType.AdvancedRegen))
|
||||
val obj = Avatar(0, "Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
||||
obj.copy(implants = obj.implants.updated(0, Some(testplant1)).updated(1, Some(testplant2))) must throwA[
|
||||
AssertionError
|
||||
]
|
||||
}
|
||||
|
||||
"can not install more implants than slots available" in {
|
||||
val testplant1 = Implant(new ImplantDefinition(ImplantType.AdvancedRegen))
|
||||
val testplant2 = Implant(new ImplantDefinition(ImplantType.Surge))
|
||||
val testplant3 = Implant(new ImplantDefinition(ImplantType.DarklightVision))
|
||||
val obj = Avatar(0, "Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
||||
obj.copy(
|
||||
bep = BattleRank.BR12.value,
|
||||
implants = Seq(Some(testplant1), Some(testplant2), Some(testplant3))
|
||||
) must throwA[
|
||||
AssertionError
|
||||
]
|
||||
}
|
||||
|
||||
"the fifth slot is the locker wrapped in an EquipmentSlot" in {
|
||||
val (_, avatar) = CreatePlayer()
|
||||
avatar.fifthSlot().Equipment match {
|
||||
case Some(slot: LockerEquipment) => slot.Inventory mustEqual avatar.locker.Inventory
|
||||
case _ => ko
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue