modified how subscriptions can subscribe and unsubscribe from specific channels (works now); vehicles now come with default loadouts at time of spawn; MoveItem is now a much more generic process that handles all Container objects; alternate fire modes now have correct ammunition values, but still do not change ammunition type properly; terminals are now distinctively split a bit more; LootItemMessage packet

This commit is contained in:
FateJH 2017-12-11 18:17:05 -05:00
parent 01c5d37aef
commit 8fbbd31967
47 changed files with 2053 additions and 687 deletions

View file

@ -2,7 +2,7 @@
package objects.terminal
import akka.actor.ActorRef
import net.psforever.objects.{GlobalDefinitions, Player, Tool}
import net.psforever.objects.{GlobalDefinitions, Player}
import net.psforever.objects.serverobject.terminals.Terminal
import net.psforever.packet.game.{ItemTransactionMessage, PlanetSideGUID}
import net.psforever.types.{CharacterGender, PlanetSideEmpire, TransactionType}
@ -24,7 +24,14 @@ class AirVehicleTerminalTest extends Specification {
reply.isInstanceOf[Terminal.BuyVehicle] mustEqual true
val reply2 = reply.asInstanceOf[Terminal.BuyVehicle]
reply2.vehicle.Definition mustEqual GlobalDefinitions.lightgunship
reply2.loadout mustEqual Nil //TODO
reply2.weapons mustEqual Nil
reply2.inventory.length mustEqual 6
reply2.inventory.head.obj.Definition mustEqual GlobalDefinitions.reaver_rocket
reply2.inventory(1).obj.Definition mustEqual GlobalDefinitions.reaver_rocket
reply2.inventory(2).obj.Definition mustEqual GlobalDefinitions.reaver_rocket
reply2.inventory(3).obj.Definition mustEqual GlobalDefinitions.reaver_rocket
reply2.inventory(4).obj.Definition mustEqual GlobalDefinitions.bullet_20mm
reply2.inventory(5).obj.Definition mustEqual GlobalDefinitions.bullet_20mm
}
"player can not buy a fake vehicle ('reaver')" in {

View file

@ -24,7 +24,20 @@ class DropshipVehicleTerminalTest extends Specification {
reply.isInstanceOf[Terminal.BuyVehicle] mustEqual true
val reply2 = reply.asInstanceOf[Terminal.BuyVehicle]
reply2.vehicle.Definition mustEqual GlobalDefinitions.dropship
reply2.loadout mustEqual Nil //TODO
reply2.weapons mustEqual Nil
reply2.inventory.length mustEqual 12
reply2.inventory.head.obj.Definition mustEqual GlobalDefinitions.bullet_20mm
reply2.inventory(1).obj.Definition mustEqual GlobalDefinitions.bullet_20mm
reply2.inventory(2).obj.Definition mustEqual GlobalDefinitions.bullet_20mm
reply2.inventory(3).obj.Definition mustEqual GlobalDefinitions.bullet_20mm
reply2.inventory(4).obj.Definition mustEqual GlobalDefinitions.bullet_20mm
reply2.inventory(5).obj.Definition mustEqual GlobalDefinitions.bullet_20mm
reply2.inventory(6).obj.Definition mustEqual GlobalDefinitions.bullet_20mm
reply2.inventory(7).obj.Definition mustEqual GlobalDefinitions.bullet_20mm
reply2.inventory(8).obj.Definition mustEqual GlobalDefinitions.bullet_20mm
reply2.inventory(9).obj.Definition mustEqual GlobalDefinitions.bullet_20mm
reply2.inventory(10).obj.Definition mustEqual GlobalDefinitions.bullet_20mm
reply2.inventory(11).obj.Definition mustEqual GlobalDefinitions.bullet_20mm
}
"player can not buy a fake vehicle ('galaxy')" in {

View file

@ -24,7 +24,14 @@ class GroundVehicleTerminalTest extends Specification {
reply.isInstanceOf[Terminal.BuyVehicle] mustEqual true
val reply2 = reply.asInstanceOf[Terminal.BuyVehicle]
reply2.vehicle.Definition mustEqual GlobalDefinitions.two_man_assault_buggy
reply2.loadout mustEqual Nil //TODO
reply2.weapons mustEqual Nil
reply2.inventory.length mustEqual 6
reply2.inventory.head.obj.Definition mustEqual GlobalDefinitions.bullet_12mm
reply2.inventory(1).obj.Definition mustEqual GlobalDefinitions.bullet_12mm
reply2.inventory(2).obj.Definition mustEqual GlobalDefinitions.bullet_12mm
reply2.inventory(3).obj.Definition mustEqual GlobalDefinitions.bullet_12mm
reply2.inventory(4).obj.Definition mustEqual GlobalDefinitions.bullet_12mm
reply2.inventory(5).obj.Definition mustEqual GlobalDefinitions.bullet_12mm
}
"player can not buy a fake vehicle ('harasser')" in {

View file

@ -99,7 +99,14 @@ class VehicleTerminalControl1Test extends ActorTest() {
assert(reply2.response.isInstanceOf[Terminal.BuyVehicle])
val reply3 = reply2.response.asInstanceOf[Terminal.BuyVehicle]
assert(reply3.vehicle.Definition == GlobalDefinitions.two_man_assault_buggy)
assert(reply3.loadout == Nil) //TODO
assert(reply3.weapons == Nil)
assert(reply3.inventory.length == 6) //TODO
assert(reply3.inventory.head.obj.Definition == GlobalDefinitions.bullet_12mm)
assert(reply3.inventory(1).obj.Definition == GlobalDefinitions.bullet_12mm)
assert(reply3.inventory(2).obj.Definition == GlobalDefinitions.bullet_12mm)
assert(reply3.inventory(3).obj.Definition == GlobalDefinitions.bullet_12mm)
assert(reply3.inventory(4).obj.Definition == GlobalDefinitions.bullet_12mm)
assert(reply3.inventory(5).obj.Definition == GlobalDefinitions.bullet_12mm)
}
}

View file

@ -24,7 +24,14 @@ class VehicleTerminalCombinedTest extends Specification {
reply.isInstanceOf[Terminal.BuyVehicle] mustEqual true
val reply2 = reply.asInstanceOf[Terminal.BuyVehicle]
reply2.vehicle.Definition mustEqual GlobalDefinitions.two_man_assault_buggy
reply2.loadout mustEqual Nil //TODO
reply2.weapons mustEqual Nil
reply2.inventory.length mustEqual 6
reply2.inventory.head.obj.Definition mustEqual GlobalDefinitions.bullet_12mm
reply2.inventory(1).obj.Definition mustEqual GlobalDefinitions.bullet_12mm
reply2.inventory(2).obj.Definition mustEqual GlobalDefinitions.bullet_12mm
reply2.inventory(3).obj.Definition mustEqual GlobalDefinitions.bullet_12mm
reply2.inventory(4).obj.Definition mustEqual GlobalDefinitions.bullet_12mm
reply2.inventory(5).obj.Definition mustEqual GlobalDefinitions.bullet_12mm
}
"player can buy a flying vehicle, the reaver ('lightgunship')" in {
@ -34,7 +41,14 @@ class VehicleTerminalCombinedTest extends Specification {
reply.isInstanceOf[Terminal.BuyVehicle] mustEqual true
val reply2 = reply.asInstanceOf[Terminal.BuyVehicle]
reply2.vehicle.Definition mustEqual GlobalDefinitions.lightgunship
reply2.loadout mustEqual Nil //TODO
reply2.weapons mustEqual Nil
reply2.inventory.length mustEqual 6
reply2.inventory.head.obj.Definition mustEqual GlobalDefinitions.reaver_rocket
reply2.inventory(1).obj.Definition mustEqual GlobalDefinitions.reaver_rocket
reply2.inventory(2).obj.Definition mustEqual GlobalDefinitions.reaver_rocket
reply2.inventory(3).obj.Definition mustEqual GlobalDefinitions.reaver_rocket
reply2.inventory(4).obj.Definition mustEqual GlobalDefinitions.bullet_20mm
reply2.inventory(5).obj.Definition mustEqual GlobalDefinitions.bullet_20mm
}
"player can not buy a fake vehicle ('harasser')" in {