mirror of
https://github.com/2revoemag/PSF-BotServer.git
synced 2026-07-15 16:34:39 +00:00
split previous Loadout into separate InfantryLoadout and VehicleLoadout classes; moved new Loadout code into its own package and corrected import statements; corrected Terminal code and tests
This commit is contained in:
parent
7673c8941b
commit
9d7d1b0456
12 changed files with 166 additions and 113 deletions
|
|
@ -3,6 +3,7 @@ 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.types.{CertificationType, CharacterGender, ImplantType, PlanetSideEmpire}
|
import net.psforever.types.{CertificationType, CharacterGender, ImplantType, PlanetSideEmpire}
|
||||||
|
|
||||||
import scala.annotation.tailrec
|
import scala.annotation.tailrec
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ package net.psforever.objects
|
||||||
import net.psforever.objects.definition.AvatarDefinition
|
import net.psforever.objects.definition.AvatarDefinition
|
||||||
import net.psforever.objects.equipment.{Equipment, EquipmentSize}
|
import net.psforever.objects.equipment.{Equipment, EquipmentSize}
|
||||||
import net.psforever.objects.inventory.{Container, GridInventory, InventoryItem}
|
import net.psforever.objects.inventory.{Container, GridInventory, InventoryItem}
|
||||||
|
import net.psforever.objects.loadouts.Loadout
|
||||||
import net.psforever.objects.serverobject.affinity.FactionAffinity
|
import net.psforever.objects.serverobject.affinity.FactionAffinity
|
||||||
import net.psforever.packet.game.PlanetSideGUID
|
import net.psforever.packet.game.PlanetSideGUID
|
||||||
import net.psforever.types._
|
import net.psforever.types._
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,28 @@
|
||||||
|
// Copyright (c) 2017 PSForever
|
||||||
|
package net.psforever.objects.loadouts
|
||||||
|
|
||||||
|
import net.psforever.types.ExoSuitType
|
||||||
|
|
||||||
|
final case class InfantryLoadout(label : String,
|
||||||
|
visible_slots : List[Loadout.SimplifiedEntry],
|
||||||
|
inventory : List[Loadout.SimplifiedEntry],
|
||||||
|
exosuit : ExoSuitType.Value,
|
||||||
|
subtype : Int) extends Loadout(label, visible_slots, inventory) {
|
||||||
|
/**
|
||||||
|
* The exo-suit in which the avatar will be dressed.
|
||||||
|
* Might be restricted and, thus, restrict the rest of the `Equipment` from being constructed and given.
|
||||||
|
* @return the exo-suit
|
||||||
|
*/
|
||||||
|
def ExoSuit : ExoSuitType.Value = exosuit
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The mechanized assault exo-suit specialization number that indicates whether the MAX performs:
|
||||||
|
* anti-infantry (1),
|
||||||
|
* anti-vehicular (2),
|
||||||
|
* or anti-air work (3).
|
||||||
|
* The major distinction is the type of arm weapons that MAX is equipped.
|
||||||
|
* When the blueprint doesn't call for a MAX, the number will be 0.
|
||||||
|
* @return the specialization number
|
||||||
|
*/
|
||||||
|
def Subtype : Int = subtype
|
||||||
|
}
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
// Copyright (c) 2017 PSForever
|
// Copyright (c) 2017 PSForever
|
||||||
package net.psforever.objects
|
package net.psforever.objects.loadouts
|
||||||
|
|
||||||
|
import net.psforever.objects._
|
||||||
import net.psforever.objects.definition._
|
import net.psforever.objects.definition._
|
||||||
import net.psforever.objects.equipment.Equipment
|
import net.psforever.objects.equipment.Equipment
|
||||||
import net.psforever.objects.inventory.InventoryItem
|
import net.psforever.objects.inventory.InventoryItem
|
||||||
|
|
@ -34,38 +35,16 @@ import scala.annotation.tailrec
|
||||||
* @param label the name by which this inventory will be known when displayed in a Favorites list
|
* @param label the name by which this inventory will be known when displayed in a Favorites list
|
||||||
* @param visible_slots simplified representation of the `Equipment` that can see "seen" on the target
|
* @param visible_slots simplified representation of the `Equipment` that can see "seen" on the target
|
||||||
* @param inventory simplified representation of the `Equipment` in the target's inventory or trunk
|
* @param inventory simplified representation of the `Equipment` in the target's inventory or trunk
|
||||||
* @param exosuit na
|
|
||||||
* @param subtype na
|
|
||||||
*/
|
*/
|
||||||
final case class Loadout(private val label : String,
|
abstract class Loadout(label : String,
|
||||||
private val visible_slots : List[Loadout.SimplifiedEntry],
|
visible_slots : List[Loadout.SimplifiedEntry],
|
||||||
private val inventory : List[Loadout.SimplifiedEntry],
|
inventory : List[Loadout.SimplifiedEntry]) {
|
||||||
private val exosuit : ExoSuitType.Value,
|
|
||||||
private val subtype : Int) {
|
|
||||||
/**
|
/**
|
||||||
* The label by which this `Loadout` is called.
|
* The label by which this `Loadout` is called.
|
||||||
* @return the label
|
* @return the label
|
||||||
*/
|
*/
|
||||||
def Label : String = label
|
def Label : String = label
|
||||||
|
|
||||||
/**
|
|
||||||
* The exo-suit in which the avatar will be dressed.
|
|
||||||
* Might be restricted and, thus, restrict the rest of the `Equipment` from being constructed and given.
|
|
||||||
* @return the exo-suit
|
|
||||||
*/
|
|
||||||
def ExoSuit : ExoSuitType.Value = exosuit
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The mechanized assault exo-suit specialization number that indicates whether the MAX performs:
|
|
||||||
* anti-infantry (1),
|
|
||||||
* anti-vehicular (2),
|
|
||||||
* or anti-air work (3).
|
|
||||||
* The major distinction is the type of arm weapons that MAX is equipped.
|
|
||||||
* When the blueprint doesn't call for a MAX, the number will be 0.
|
|
||||||
* @return the specialization number
|
|
||||||
*/
|
|
||||||
def Subtype : Int = subtype
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The `Equipment` in the `Player`'s holster slots when this `Loadout` is created.
|
* The `Equipment` in the `Player`'s holster slots when this `Loadout` is created.
|
||||||
* @return a `List` of the holster item blueprints
|
* @return a `List` of the holster item blueprints
|
||||||
|
|
@ -80,12 +59,8 @@ final case class Loadout(private val label : String,
|
||||||
}
|
}
|
||||||
|
|
||||||
object Loadout {
|
object Loadout {
|
||||||
def apply(label : String, visible : List[SimplifiedEntry], inventory : List[SimplifiedEntry]) : Loadout = {
|
|
||||||
new Loadout(label, visible, inventory, ExoSuitType.Standard, 0)
|
|
||||||
}
|
|
||||||
|
|
||||||
def Create(player : Player, label : String) : Loadout = {
|
def Create(player : Player, label : String) : Loadout = {
|
||||||
new Loadout(
|
InfantryLoadout(
|
||||||
label,
|
label,
|
||||||
packageSimplifications(player.Holsters()),
|
packageSimplifications(player.Holsters()),
|
||||||
packageSimplifications(player.Inventory.Items.values.toList),
|
packageSimplifications(player.Inventory.Items.values.toList),
|
||||||
|
|
@ -95,10 +70,11 @@ object Loadout {
|
||||||
}
|
}
|
||||||
|
|
||||||
def Create(vehicle : Vehicle, label : String) : Loadout = {
|
def Create(vehicle : Vehicle, label : String) : Loadout = {
|
||||||
Loadout(
|
VehicleLoadout(
|
||||||
label,
|
label,
|
||||||
packageSimplifications(vehicle.Weapons.map({ case ((index, weapon)) => InventoryItem(weapon.Equipment.get, index) }).toList),
|
packageSimplifications(vehicle.Weapons.map({ case ((index, weapon)) => InventoryItem(weapon.Equipment.get, index) }).toList),
|
||||||
packageSimplifications(vehicle.Trunk.Items.values.toList)
|
packageSimplifications(vehicle.Trunk.Items.values.toList),
|
||||||
|
vehicle.Definition
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -153,8 +129,12 @@ object Loadout {
|
||||||
final case class ShorthandKit(definition : KitDefinition) extends Simplification
|
final case class ShorthandKit(definition : KitDefinition) extends Simplification
|
||||||
|
|
||||||
def DetermineSubtype(player : Player) : Int = {
|
def DetermineSubtype(player : Player) : Int = {
|
||||||
if(player.ExoSuit == ExoSuitType.MAX) {
|
DetermineSubtype(player.ExoSuit, player.Slot(0).Equipment)
|
||||||
player.Slot(0).Equipment match {
|
}
|
||||||
|
|
||||||
|
def DetermineSubtype(suit : ExoSuitType.Value, weapon : Option[Equipment]) : Int = {
|
||||||
|
if(suit == ExoSuitType.MAX) {
|
||||||
|
weapon match {
|
||||||
case Some(item) =>
|
case Some(item) =>
|
||||||
item.Definition match {
|
item.Definition match {
|
||||||
case GlobalDefinitions.trhev_dualcycler | GlobalDefinitions.nchev_scattercannon | GlobalDefinitions.vshev_quasar =>
|
case GlobalDefinitions.trhev_dualcycler | GlobalDefinitions.nchev_scattercannon | GlobalDefinitions.vshev_quasar =>
|
||||||
|
|
@ -180,7 +160,7 @@ object Loadout {
|
||||||
* @param equipment the holster slots
|
* @param equipment the holster slots
|
||||||
* @return a `List` of simplified `Equipment`
|
* @return a `List` of simplified `Equipment`
|
||||||
*/
|
*/
|
||||||
private def packageSimplifications(equipment : Array[EquipmentSlot]) : List[SimplifiedEntry] = {
|
protected def packageSimplifications(equipment : Array[EquipmentSlot]) : List[SimplifiedEntry] = {
|
||||||
recursiveHolsterSimplifications(equipment.iterator)
|
recursiveHolsterSimplifications(equipment.iterator)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -189,7 +169,7 @@ object Loadout {
|
||||||
* @param equipment the enumerated contents of the inventory
|
* @param equipment the enumerated contents of the inventory
|
||||||
* @return a `List` of simplified `Equipment`
|
* @return a `List` of simplified `Equipment`
|
||||||
*/
|
*/
|
||||||
private def packageSimplifications(equipment : List[InventoryItem]) : List[SimplifiedEntry] = {
|
protected def packageSimplifications(equipment : List[InventoryItem]) : List[SimplifiedEntry] = {
|
||||||
equipment.map(entry => { SimplifiedEntry(buildSimplification(entry.obj), entry.start) })
|
equipment.map(entry => { SimplifiedEntry(buildSimplification(entry.obj), entry.start) })
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
// Copyright (c) 2017 PSForever
|
||||||
|
package net.psforever.objects.loadouts
|
||||||
|
|
||||||
|
import net.psforever.objects.definition._
|
||||||
|
|
||||||
|
final case class VehicleLoadout(label : String,
|
||||||
|
visible_slots : List[Loadout.SimplifiedEntry],
|
||||||
|
inventory : List[Loadout.SimplifiedEntry],
|
||||||
|
vehicle_definition : VehicleDefinition) extends Loadout(label, visible_slots, inventory) {
|
||||||
|
def Definition : VehicleDefinition = vehicle_definition
|
||||||
|
}
|
||||||
|
|
@ -4,6 +4,7 @@ package net.psforever.objects.serverobject.terminals
|
||||||
import net.psforever.objects._
|
import net.psforever.objects._
|
||||||
import net.psforever.objects.definition._
|
import net.psforever.objects.definition._
|
||||||
import net.psforever.objects.equipment.Equipment
|
import net.psforever.objects.equipment.Equipment
|
||||||
|
import net.psforever.objects.loadouts.Loadout
|
||||||
import net.psforever.packet.game.ItemTransactionMessage
|
import net.psforever.packet.game.ItemTransactionMessage
|
||||||
import net.psforever.types.ExoSuitType
|
import net.psforever.types.ExoSuitType
|
||||||
|
|
||||||
|
|
@ -336,7 +337,7 @@ object EquipmentTerminalDefinition {
|
||||||
* `TerminalDefinition.MakeKit`
|
* `TerminalDefinition.MakeKit`
|
||||||
*/
|
*/
|
||||||
def BuildSimplifiedPattern(entry : Loadout.Simplification) : Equipment = {
|
def BuildSimplifiedPattern(entry : Loadout.Simplification) : Equipment = {
|
||||||
import net.psforever.objects.Loadout._
|
import net.psforever.objects.loadouts.Loadout._
|
||||||
entry match {
|
entry match {
|
||||||
case obj : ShorthandTool =>
|
case obj : ShorthandTool =>
|
||||||
val ammo : List[AmmoBoxDefinition] = obj.ammo.map(fmode => { fmode.ammo.definition })
|
val ammo : List[AmmoBoxDefinition] = obj.ammo.map(fmode => { fmode.ammo.definition })
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ package net.psforever.objects.serverobject.terminals
|
||||||
|
|
||||||
import akka.actor.ActorContext
|
import akka.actor.ActorContext
|
||||||
import net.psforever.objects.Player
|
import net.psforever.objects.Player
|
||||||
|
import net.psforever.objects.loadouts.InfantryLoadout
|
||||||
import net.psforever.objects.inventory.InventoryItem
|
import net.psforever.objects.inventory.InventoryItem
|
||||||
import net.psforever.objects.serverobject.structures.Amenity
|
import net.psforever.objects.serverobject.structures.Amenity
|
||||||
import net.psforever.packet.game.ItemTransactionMessage
|
import net.psforever.packet.game.ItemTransactionMessage
|
||||||
|
|
@ -52,7 +53,7 @@ class OrderTerminalABDefinition(object_id : Int) extends EquipmentTerminalDefini
|
||||||
override def Loadout(player : Player, msg : ItemTransactionMessage) : Terminal.Exchange = {
|
override def Loadout(player : Player, msg : ItemTransactionMessage) : Terminal.Exchange = {
|
||||||
if(msg.item_page == 4) { //Favorites tab
|
if(msg.item_page == 4) { //Favorites tab
|
||||||
player.LoadLoadout(msg.unk1) match {
|
player.LoadLoadout(msg.unk1) match {
|
||||||
case Some(loadout) =>
|
case Some(loadout : InfantryLoadout) =>
|
||||||
if(loadout.ExoSuit != ExoSuitType.MAX) {
|
if(loadout.ExoSuit != ExoSuitType.MAX) {
|
||||||
val holsters = loadout.VisibleSlots.map(entry => { InventoryItem(BuildSimplifiedPattern(entry.item), entry.index) })
|
val holsters = loadout.VisibleSlots.map(entry => { InventoryItem(BuildSimplifiedPattern(entry.item), entry.index) })
|
||||||
val inventory = loadout.Inventory.map(entry => { InventoryItem(BuildSimplifiedPattern(entry.item), entry.index) })
|
val inventory = loadout.Inventory.map(entry => { InventoryItem(BuildSimplifiedPattern(entry.item), entry.index) })
|
||||||
|
|
@ -61,7 +62,7 @@ class OrderTerminalABDefinition(object_id : Int) extends EquipmentTerminalDefini
|
||||||
else {
|
else {
|
||||||
Terminal.NoDeal()
|
Terminal.NoDeal()
|
||||||
}
|
}
|
||||||
case None =>
|
case Some(_) | None =>
|
||||||
Terminal.NoDeal()
|
Terminal.NoDeal()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
package net.psforever.objects.serverobject.terminals
|
package net.psforever.objects.serverobject.terminals
|
||||||
|
|
||||||
import net.psforever.objects.Player
|
import net.psforever.objects.Player
|
||||||
|
import net.psforever.objects.loadouts.InfantryLoadout
|
||||||
import net.psforever.objects.inventory.InventoryItem
|
import net.psforever.objects.inventory.InventoryItem
|
||||||
import net.psforever.packet.game.ItemTransactionMessage
|
import net.psforever.packet.game.ItemTransactionMessage
|
||||||
import net.psforever.objects.serverobject.terminals.EquipmentTerminalDefinition._
|
import net.psforever.objects.serverobject.terminals.EquipmentTerminalDefinition._
|
||||||
|
|
@ -37,11 +38,11 @@ class OrderTerminalDefinition extends EquipmentTerminalDefinition(612) {
|
||||||
override def Loadout(player : Player, msg : ItemTransactionMessage) : Terminal.Exchange = {
|
override def Loadout(player : Player, msg : ItemTransactionMessage) : Terminal.Exchange = {
|
||||||
if(msg.item_page == 4) { //Favorites tab
|
if(msg.item_page == 4) { //Favorites tab
|
||||||
player.LoadLoadout(msg.unk1) match {
|
player.LoadLoadout(msg.unk1) match {
|
||||||
case Some(loadout) =>
|
case Some(loadout : InfantryLoadout) =>
|
||||||
val holsters = loadout.VisibleSlots.map(entry => { InventoryItem(BuildSimplifiedPattern(entry.item), entry.index) })
|
val holsters = loadout.VisibleSlots.map(entry => { InventoryItem(BuildSimplifiedPattern(entry.item), entry.index) })
|
||||||
val inventory = loadout.Inventory.map(entry => { InventoryItem(BuildSimplifiedPattern(entry.item), entry.index) })
|
val inventory = loadout.Inventory.map(entry => { InventoryItem(BuildSimplifiedPattern(entry.item), entry.index) })
|
||||||
Terminal.InfantryLoadout(loadout.ExoSuit, loadout.Subtype, holsters, inventory)
|
Terminal.InfantryLoadout(loadout.ExoSuit, loadout.Subtype, holsters, inventory)
|
||||||
case None =>
|
case Some(_) | None =>
|
||||||
Terminal.NoDeal()
|
Terminal.NoDeal()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ package net.psforever.objects.serverobject.terminals
|
||||||
|
|
||||||
import net.psforever.objects.definition.VehicleDefinition
|
import net.psforever.objects.definition.VehicleDefinition
|
||||||
import net.psforever.objects.{Player, Vehicle}
|
import net.psforever.objects.{Player, Vehicle}
|
||||||
|
import net.psforever.objects.loadouts.VehicleLoadout
|
||||||
import net.psforever.objects.inventory.InventoryItem
|
import net.psforever.objects.inventory.InventoryItem
|
||||||
import net.psforever.packet.game.ItemTransactionMessage
|
import net.psforever.packet.game.ItemTransactionMessage
|
||||||
|
|
||||||
|
|
@ -83,7 +84,7 @@ abstract class VehicleTerminalDefinition(objId : Int) extends TerminalDefinition
|
||||||
// "aphelion_flight" -> (()=>Unit)
|
// "aphelion_flight" -> (()=>Unit)
|
||||||
)
|
)
|
||||||
|
|
||||||
import net.psforever.objects.{Loadout => _Loadout} //distinguish from Terminal.Loadout message
|
import net.psforever.objects.loadouts.{Loadout => _Loadout} //distinguish from Terminal.Loadout message
|
||||||
import _Loadout._
|
import _Loadout._
|
||||||
/**
|
/**
|
||||||
* A `Map` of the default contents of a `Vehicle` inventory, called the trunk.
|
* A `Map` of the default contents of a `Vehicle` inventory, called the trunk.
|
||||||
|
|
@ -101,29 +102,31 @@ abstract class VehicleTerminalDefinition(objId : Int) extends TerminalDefinition
|
||||||
val ammo_flux = ShorthandAmmoBox(flux_cannon_thresher_battery, flux_cannon_thresher_battery.Capacity)
|
val ammo_flux = ShorthandAmmoBox(flux_cannon_thresher_battery, flux_cannon_thresher_battery.Capacity)
|
||||||
val ammo_bomb = ShorthandAmmoBox(liberator_bomb, liberator_bomb.Capacity)
|
val ammo_bomb = ShorthandAmmoBox(liberator_bomb, liberator_bomb.Capacity)
|
||||||
Map(
|
Map(
|
||||||
//"quadstealth" -> _Loadout("default_quadstealth", List(), List()),
|
//"quadstealth" -> VehicleLoadout("default_quadstealth", List(), List(), quadstealth),
|
||||||
"quadassault" -> _Loadout("default_quadassault", List(),
|
"quadassault" -> VehicleLoadout("default_quadassault", List(),
|
||||||
List(
|
List(
|
||||||
SimplifiedEntry(ammo_12mm, 30),
|
SimplifiedEntry(ammo_12mm, 30),
|
||||||
SimplifiedEntry(ammo_12mm, 34),
|
SimplifiedEntry(ammo_12mm, 34),
|
||||||
SimplifiedEntry(ammo_12mm, 74),
|
SimplifiedEntry(ammo_12mm, 74),
|
||||||
SimplifiedEntry(ammo_12mm, 78)
|
SimplifiedEntry(ammo_12mm, 78)
|
||||||
)
|
),
|
||||||
|
quadassault
|
||||||
),
|
),
|
||||||
{
|
{
|
||||||
val ammo = ShorthandAmmoBox(hellfire_ammo, hellfire_ammo.Capacity)
|
val ammo = ShorthandAmmoBox(hellfire_ammo, hellfire_ammo.Capacity)
|
||||||
"fury" -> _Loadout("default_fury", List(),
|
"fury" -> VehicleLoadout("default_fury", List(),
|
||||||
List(
|
List(
|
||||||
SimplifiedEntry(ammo, 30),
|
SimplifiedEntry(ammo, 30),
|
||||||
SimplifiedEntry(ammo, 34),
|
SimplifiedEntry(ammo, 34),
|
||||||
SimplifiedEntry(ammo, 74),
|
SimplifiedEntry(ammo, 74),
|
||||||
SimplifiedEntry(ammo, 78)
|
SimplifiedEntry(ammo, 78)
|
||||||
)
|
),
|
||||||
|
fury
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
//"ant" -> _Loadout("default_ant", List(), List()),
|
//"ant" -> VehicleLoadout("default_ant", List(), List(), ant),
|
||||||
//"ams" -> _Loadout("default_ams", List(), List()),
|
//"ams" -> VehicleLoadout("default_ams", List(), List(), ams),
|
||||||
"two_man_assault_buggy" -> _Loadout("default_two_man_assault_buggy", List(),
|
"two_man_assault_buggy" -> VehicleLoadout("default_two_man_assault_buggy", List(),
|
||||||
List(
|
List(
|
||||||
SimplifiedEntry(ammo_12mm, 30),
|
SimplifiedEntry(ammo_12mm, 30),
|
||||||
SimplifiedEntry(ammo_12mm, 34),
|
SimplifiedEntry(ammo_12mm, 34),
|
||||||
|
|
@ -131,11 +134,12 @@ abstract class VehicleTerminalDefinition(objId : Int) extends TerminalDefinition
|
||||||
SimplifiedEntry(ammo_12mm, 90),
|
SimplifiedEntry(ammo_12mm, 90),
|
||||||
SimplifiedEntry(ammo_12mm, 94),
|
SimplifiedEntry(ammo_12mm, 94),
|
||||||
SimplifiedEntry(ammo_12mm, 98)
|
SimplifiedEntry(ammo_12mm, 98)
|
||||||
)
|
),
|
||||||
|
two_man_assault_buggy
|
||||||
),
|
),
|
||||||
{
|
{
|
||||||
val ammo = ShorthandAmmoBox(skyguard_flak_cannon_ammo, skyguard_flak_cannon_ammo.Capacity)
|
val ammo = ShorthandAmmoBox(skyguard_flak_cannon_ammo, skyguard_flak_cannon_ammo.Capacity)
|
||||||
"skyguard" -> _Loadout("default_skyguard", List(),
|
"skyguard" -> VehicleLoadout("default_skyguard", List(),
|
||||||
List(
|
List(
|
||||||
SimplifiedEntry(ammo_12mm, 30),
|
SimplifiedEntry(ammo_12mm, 30),
|
||||||
SimplifiedEntry(ammo_12mm, 34),
|
SimplifiedEntry(ammo_12mm, 34),
|
||||||
|
|
@ -143,10 +147,11 @@ abstract class VehicleTerminalDefinition(objId : Int) extends TerminalDefinition
|
||||||
SimplifiedEntry(ammo, 90),
|
SimplifiedEntry(ammo, 90),
|
||||||
SimplifiedEntry(ammo, 94),
|
SimplifiedEntry(ammo, 94),
|
||||||
SimplifiedEntry(ammo, 98)
|
SimplifiedEntry(ammo, 98)
|
||||||
)
|
),
|
||||||
|
skyguard
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
"threemanheavybuggy" -> _Loadout("default_threemanheavybuggy", List(),
|
"threemanheavybuggy" -> VehicleLoadout("default_threemanheavybuggy", List(),
|
||||||
List(
|
List(
|
||||||
SimplifiedEntry(ammo_12mm, 30),
|
SimplifiedEntry(ammo_12mm, 30),
|
||||||
SimplifiedEntry(ammo_12mm, 34),
|
SimplifiedEntry(ammo_12mm, 34),
|
||||||
|
|
@ -154,11 +159,12 @@ abstract class VehicleTerminalDefinition(objId : Int) extends TerminalDefinition
|
||||||
SimplifiedEntry(ammo_mortar, 90),
|
SimplifiedEntry(ammo_mortar, 90),
|
||||||
SimplifiedEntry(ammo_mortar, 94),
|
SimplifiedEntry(ammo_mortar, 94),
|
||||||
SimplifiedEntry(ammo_mortar, 98)
|
SimplifiedEntry(ammo_mortar, 98)
|
||||||
)
|
),
|
||||||
|
threemanheavybuggy
|
||||||
),
|
),
|
||||||
{
|
{
|
||||||
val ammo = ShorthandAmmoBox(firebird_missile, firebird_missile.Capacity)
|
val ammo = ShorthandAmmoBox(firebird_missile, firebird_missile.Capacity)
|
||||||
"twomanheavybuggy" -> _Loadout("default_twomanheavybuggy", List(),
|
"twomanheavybuggy" -> VehicleLoadout("default_twomanheavybuggy", List(),
|
||||||
List(
|
List(
|
||||||
SimplifiedEntry(ammo, 30),
|
SimplifiedEntry(ammo, 30),
|
||||||
SimplifiedEntry(ammo, 34),
|
SimplifiedEntry(ammo, 34),
|
||||||
|
|
@ -166,10 +172,11 @@ abstract class VehicleTerminalDefinition(objId : Int) extends TerminalDefinition
|
||||||
SimplifiedEntry(ammo, 90),
|
SimplifiedEntry(ammo, 90),
|
||||||
SimplifiedEntry(ammo, 94),
|
SimplifiedEntry(ammo, 94),
|
||||||
SimplifiedEntry(ammo, 98)
|
SimplifiedEntry(ammo, 98)
|
||||||
)
|
),
|
||||||
|
twomanheavybuggy
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
"twomanhoverbuggy" -> _Loadout("default_twomanhoverbuggy", List(),
|
"twomanhoverbuggy" -> VehicleLoadout("default_twomanhoverbuggy", List(),
|
||||||
List(
|
List(
|
||||||
SimplifiedEntry(ammo_flux, 30),
|
SimplifiedEntry(ammo_flux, 30),
|
||||||
SimplifiedEntry(ammo_flux, 34),
|
SimplifiedEntry(ammo_flux, 34),
|
||||||
|
|
@ -177,9 +184,10 @@ abstract class VehicleTerminalDefinition(objId : Int) extends TerminalDefinition
|
||||||
SimplifiedEntry(ammo_flux, 90),
|
SimplifiedEntry(ammo_flux, 90),
|
||||||
SimplifiedEntry(ammo_flux, 94),
|
SimplifiedEntry(ammo_flux, 94),
|
||||||
SimplifiedEntry(ammo_flux, 98)
|
SimplifiedEntry(ammo_flux, 98)
|
||||||
)
|
),
|
||||||
|
twomanhoverbuggy
|
||||||
),
|
),
|
||||||
"mediumtransport" -> _Loadout("default_mediumtransport", List(),
|
"mediumtransport" -> VehicleLoadout("default_mediumtransport", List(),
|
||||||
List(
|
List(
|
||||||
SimplifiedEntry(ammo_20mm, 30),
|
SimplifiedEntry(ammo_20mm, 30),
|
||||||
SimplifiedEntry(ammo_20mm, 34),
|
SimplifiedEntry(ammo_20mm, 34),
|
||||||
|
|
@ -190,9 +198,10 @@ abstract class VehicleTerminalDefinition(objId : Int) extends TerminalDefinition
|
||||||
SimplifiedEntry(ammo_20mm, 150),
|
SimplifiedEntry(ammo_20mm, 150),
|
||||||
SimplifiedEntry(ammo_20mm, 154),
|
SimplifiedEntry(ammo_20mm, 154),
|
||||||
SimplifiedEntry(ammo_20mm, 158)
|
SimplifiedEntry(ammo_20mm, 158)
|
||||||
)
|
),
|
||||||
|
mediumtransport
|
||||||
),
|
),
|
||||||
"battlewagon" -> _Loadout("default_battlewagon", List(),
|
"battlewagon" -> VehicleLoadout("default_battlewagon", List(),
|
||||||
List(
|
List(
|
||||||
SimplifiedEntry(ammo_15mm, 30),
|
SimplifiedEntry(ammo_15mm, 30),
|
||||||
SimplifiedEntry(ammo_15mm, 34),
|
SimplifiedEntry(ammo_15mm, 34),
|
||||||
|
|
@ -203,11 +212,12 @@ abstract class VehicleTerminalDefinition(objId : Int) extends TerminalDefinition
|
||||||
SimplifiedEntry(ammo_15mm, 150),
|
SimplifiedEntry(ammo_15mm, 150),
|
||||||
SimplifiedEntry(ammo_15mm, 154),
|
SimplifiedEntry(ammo_15mm, 154),
|
||||||
SimplifiedEntry(ammo_15mm, 158)
|
SimplifiedEntry(ammo_15mm, 158)
|
||||||
)
|
),
|
||||||
|
battlewagon
|
||||||
),
|
),
|
||||||
{
|
{
|
||||||
val ammo = ShorthandAmmoBox(gauss_cannon_ammo, gauss_cannon_ammo.Capacity)
|
val ammo = ShorthandAmmoBox(gauss_cannon_ammo, gauss_cannon_ammo.Capacity)
|
||||||
"thunderer" -> _Loadout("default_thunderer", List(),
|
"thunderer" -> VehicleLoadout("default_thunderer", List(),
|
||||||
List(
|
List(
|
||||||
SimplifiedEntry(ammo, 30),
|
SimplifiedEntry(ammo, 30),
|
||||||
SimplifiedEntry(ammo, 34),
|
SimplifiedEntry(ammo, 34),
|
||||||
|
|
@ -218,12 +228,13 @@ abstract class VehicleTerminalDefinition(objId : Int) extends TerminalDefinition
|
||||||
SimplifiedEntry(ammo, 150),
|
SimplifiedEntry(ammo, 150),
|
||||||
SimplifiedEntry(ammo, 154),
|
SimplifiedEntry(ammo, 154),
|
||||||
SimplifiedEntry(ammo, 158)
|
SimplifiedEntry(ammo, 158)
|
||||||
)
|
),
|
||||||
|
thunderer
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
val ammo = ShorthandAmmoBox(fluxpod_ammo, fluxpod_ammo.Capacity)
|
val ammo = ShorthandAmmoBox(fluxpod_ammo, fluxpod_ammo.Capacity)
|
||||||
"aurora" -> _Loadout("default_aurora", List(),
|
"aurora" -> VehicleLoadout("default_aurora", List(),
|
||||||
List(
|
List(
|
||||||
SimplifiedEntry(ammo, 30),
|
SimplifiedEntry(ammo, 30),
|
||||||
SimplifiedEntry(ammo, 34),
|
SimplifiedEntry(ammo, 34),
|
||||||
|
|
@ -234,10 +245,11 @@ abstract class VehicleTerminalDefinition(objId : Int) extends TerminalDefinition
|
||||||
SimplifiedEntry(ammo, 150),
|
SimplifiedEntry(ammo, 150),
|
||||||
SimplifiedEntry(ammo, 154),
|
SimplifiedEntry(ammo, 154),
|
||||||
SimplifiedEntry(ammo, 158)
|
SimplifiedEntry(ammo, 158)
|
||||||
)
|
),
|
||||||
|
aurora
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
"apc_tr" -> _Loadout("default_apc_tr", List(),
|
"apc_tr" -> VehicleLoadout("default_apc_tr", List(),
|
||||||
List(
|
List(
|
||||||
SimplifiedEntry(ammo_75mm, 30),
|
SimplifiedEntry(ammo_75mm, 30),
|
||||||
SimplifiedEntry(ammo_75mm, 34),
|
SimplifiedEntry(ammo_75mm, 34),
|
||||||
|
|
@ -259,9 +271,10 @@ abstract class VehicleTerminalDefinition(objId : Int) extends TerminalDefinition
|
||||||
SimplifiedEntry(ammo_15mm, 278),
|
SimplifiedEntry(ammo_15mm, 278),
|
||||||
SimplifiedEntry(ammo_15mm, 282),
|
SimplifiedEntry(ammo_15mm, 282),
|
||||||
SimplifiedEntry(ammo_15mm, 286)
|
SimplifiedEntry(ammo_15mm, 286)
|
||||||
)
|
),
|
||||||
|
apc_tr
|
||||||
),
|
),
|
||||||
"apc_nc" -> _Loadout("default_apc_nc", List(),
|
"apc_nc" -> VehicleLoadout("default_apc_nc", List(),
|
||||||
List(
|
List(
|
||||||
SimplifiedEntry(ammo_75mm, 30),
|
SimplifiedEntry(ammo_75mm, 30),
|
||||||
SimplifiedEntry(ammo_75mm, 34),
|
SimplifiedEntry(ammo_75mm, 34),
|
||||||
|
|
@ -283,9 +296,10 @@ abstract class VehicleTerminalDefinition(objId : Int) extends TerminalDefinition
|
||||||
SimplifiedEntry(ammo_20mm, 278),
|
SimplifiedEntry(ammo_20mm, 278),
|
||||||
SimplifiedEntry(ammo_20mm, 282),
|
SimplifiedEntry(ammo_20mm, 282),
|
||||||
SimplifiedEntry(ammo_20mm, 286)
|
SimplifiedEntry(ammo_20mm, 286)
|
||||||
)
|
),
|
||||||
|
apc_nc
|
||||||
),
|
),
|
||||||
"apc_vs" -> _Loadout("default_apc_vs", List(),
|
"apc_vs" -> VehicleLoadout("default_apc_vs", List(),
|
||||||
List(
|
List(
|
||||||
SimplifiedEntry(ammo_75mm, 30),
|
SimplifiedEntry(ammo_75mm, 30),
|
||||||
SimplifiedEntry(ammo_75mm, 34),
|
SimplifiedEntry(ammo_75mm, 34),
|
||||||
|
|
@ -307,9 +321,10 @@ abstract class VehicleTerminalDefinition(objId : Int) extends TerminalDefinition
|
||||||
SimplifiedEntry(ammo_flux, 278),
|
SimplifiedEntry(ammo_flux, 278),
|
||||||
SimplifiedEntry(ammo_flux, 282),
|
SimplifiedEntry(ammo_flux, 282),
|
||||||
SimplifiedEntry(ammo_flux, 286)
|
SimplifiedEntry(ammo_flux, 286)
|
||||||
)
|
),
|
||||||
|
apc_vs
|
||||||
),
|
),
|
||||||
"lightning" -> _Loadout("default_lightning", List(),
|
"lightning" -> VehicleLoadout("default_lightning", List(),
|
||||||
List(
|
List(
|
||||||
SimplifiedEntry(ammo_25mm, 30),
|
SimplifiedEntry(ammo_25mm, 30),
|
||||||
SimplifiedEntry(ammo_25mm, 34),
|
SimplifiedEntry(ammo_25mm, 34),
|
||||||
|
|
@ -317,11 +332,12 @@ abstract class VehicleTerminalDefinition(objId : Int) extends TerminalDefinition
|
||||||
SimplifiedEntry(ammo_75mm, 90),
|
SimplifiedEntry(ammo_75mm, 90),
|
||||||
SimplifiedEntry(ammo_75mm, 94),
|
SimplifiedEntry(ammo_75mm, 94),
|
||||||
SimplifiedEntry(ammo_75mm, 98)
|
SimplifiedEntry(ammo_75mm, 98)
|
||||||
)
|
),
|
||||||
|
lightning
|
||||||
),
|
),
|
||||||
{
|
{
|
||||||
val ammo = ShorthandAmmoBox(bullet_105mm, bullet_105mm.Capacity)
|
val ammo = ShorthandAmmoBox(bullet_105mm, bullet_105mm.Capacity)
|
||||||
"prowler" -> _Loadout("default_prowler", List(),
|
"prowler" -> VehicleLoadout("default_prowler", List(),
|
||||||
List(
|
List(
|
||||||
SimplifiedEntry(ammo_15mm, 30),
|
SimplifiedEntry(ammo_15mm, 30),
|
||||||
SimplifiedEntry(ammo_15mm, 34),
|
SimplifiedEntry(ammo_15mm, 34),
|
||||||
|
|
@ -329,12 +345,13 @@ abstract class VehicleTerminalDefinition(objId : Int) extends TerminalDefinition
|
||||||
SimplifiedEntry(ammo, 90),
|
SimplifiedEntry(ammo, 90),
|
||||||
SimplifiedEntry(ammo, 94),
|
SimplifiedEntry(ammo, 94),
|
||||||
SimplifiedEntry(ammo, 98)
|
SimplifiedEntry(ammo, 98)
|
||||||
)
|
),
|
||||||
|
prowler
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
val ammo = ShorthandAmmoBox(bullet_150mm, bullet_150mm.Capacity)
|
val ammo = ShorthandAmmoBox(bullet_150mm, bullet_150mm.Capacity)
|
||||||
"vanguard" -> _Loadout("default_vanguard", List(),
|
"vanguard" -> VehicleLoadout("default_vanguard", List(),
|
||||||
List(
|
List(
|
||||||
SimplifiedEntry(ammo_20mm, 30),
|
SimplifiedEntry(ammo_20mm, 30),
|
||||||
SimplifiedEntry(ammo_20mm, 34),
|
SimplifiedEntry(ammo_20mm, 34),
|
||||||
|
|
@ -342,13 +359,14 @@ abstract class VehicleTerminalDefinition(objId : Int) extends TerminalDefinition
|
||||||
SimplifiedEntry(ammo, 90),
|
SimplifiedEntry(ammo, 90),
|
||||||
SimplifiedEntry(ammo, 94),
|
SimplifiedEntry(ammo, 94),
|
||||||
SimplifiedEntry(ammo, 98)
|
SimplifiedEntry(ammo, 98)
|
||||||
)
|
),
|
||||||
|
vanguard
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
val ammo1 = ShorthandAmmoBox(pulse_battery, pulse_battery.Capacity)
|
val ammo1 = ShorthandAmmoBox(pulse_battery, pulse_battery.Capacity)
|
||||||
val ammo2 = ShorthandAmmoBox(heavy_rail_beam_battery, heavy_rail_beam_battery.Capacity)
|
val ammo2 = ShorthandAmmoBox(heavy_rail_beam_battery, heavy_rail_beam_battery.Capacity)
|
||||||
"magrider" -> _Loadout("default_magrider", List(),
|
"magrider" -> VehicleLoadout("default_magrider", List(),
|
||||||
List(
|
List(
|
||||||
SimplifiedEntry(ammo1, 30),
|
SimplifiedEntry(ammo1, 30),
|
||||||
SimplifiedEntry(ammo1, 34),
|
SimplifiedEntry(ammo1, 34),
|
||||||
|
|
@ -356,23 +374,25 @@ abstract class VehicleTerminalDefinition(objId : Int) extends TerminalDefinition
|
||||||
SimplifiedEntry(ammo2, 90),
|
SimplifiedEntry(ammo2, 90),
|
||||||
SimplifiedEntry(ammo2, 94),
|
SimplifiedEntry(ammo2, 94),
|
||||||
SimplifiedEntry(ammo2, 98)
|
SimplifiedEntry(ammo2, 98)
|
||||||
)
|
),
|
||||||
|
magrider
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
//"flail" -> _Loadout("default_flail", List(), List()),
|
//"flail" -> VehicleLoadout("default_flail", List(), List(), flail),
|
||||||
//"switchblade" -> _Loadout("default_switchblade", List(), List()),
|
//"switchblade" -> VehicleLoadout("default_switchblade", List(), List(), switchblade),
|
||||||
//"router" -> _Loadout("default_router", List(), List()),
|
//"router" -> VehicleLoadout("default_router", List(), List(), router),
|
||||||
"mosquito" -> _Loadout("default_mosquito", List(),
|
"mosquito" -> VehicleLoadout("default_mosquito", List(),
|
||||||
List(
|
List(
|
||||||
SimplifiedEntry(ammo_12mm, 30),
|
SimplifiedEntry(ammo_12mm, 30),
|
||||||
SimplifiedEntry(ammo_12mm, 34),
|
SimplifiedEntry(ammo_12mm, 34),
|
||||||
SimplifiedEntry(ammo_12mm, 74),
|
SimplifiedEntry(ammo_12mm, 74),
|
||||||
SimplifiedEntry(ammo_12mm, 78)
|
SimplifiedEntry(ammo_12mm, 78)
|
||||||
)
|
),
|
||||||
|
mosquito
|
||||||
),
|
),
|
||||||
{
|
{
|
||||||
val ammo = ShorthandAmmoBox(reaver_rocket, reaver_rocket.Capacity)
|
val ammo = ShorthandAmmoBox(reaver_rocket, reaver_rocket.Capacity)
|
||||||
"lightgunship" -> _Loadout("default_lightgunship", List(),
|
"lightgunship" -> VehicleLoadout("default_lightgunship", List(),
|
||||||
List(
|
List(
|
||||||
SimplifiedEntry(ammo, 30),
|
SimplifiedEntry(ammo, 30),
|
||||||
SimplifiedEntry(ammo, 34),
|
SimplifiedEntry(ammo, 34),
|
||||||
|
|
@ -380,22 +400,24 @@ abstract class VehicleTerminalDefinition(objId : Int) extends TerminalDefinition
|
||||||
SimplifiedEntry(ammo, 90),
|
SimplifiedEntry(ammo, 90),
|
||||||
SimplifiedEntry(ammo_20mm, 94),
|
SimplifiedEntry(ammo_20mm, 94),
|
||||||
SimplifiedEntry(ammo_20mm, 98)
|
SimplifiedEntry(ammo_20mm, 98)
|
||||||
)
|
),
|
||||||
|
lightgunship
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
val ammo1 = ShorthandAmmoBox(wasp_rocket_ammo, wasp_rocket_ammo.Capacity)
|
val ammo1 = ShorthandAmmoBox(wasp_rocket_ammo, wasp_rocket_ammo.Capacity)
|
||||||
val ammo2 = ShorthandAmmoBox(wasp_gun_ammo, wasp_gun_ammo.Capacity)
|
val ammo2 = ShorthandAmmoBox(wasp_gun_ammo, wasp_gun_ammo.Capacity)
|
||||||
"wasp" -> _Loadout("default_wasp", List(),
|
"wasp" -> VehicleLoadout("default_wasp", List(),
|
||||||
List(
|
List(
|
||||||
SimplifiedEntry(ammo1, 30),
|
SimplifiedEntry(ammo1, 30),
|
||||||
SimplifiedEntry(ammo1, 34),
|
SimplifiedEntry(ammo1, 34),
|
||||||
SimplifiedEntry(ammo2, 74),
|
SimplifiedEntry(ammo2, 74),
|
||||||
SimplifiedEntry(ammo2, 78)
|
SimplifiedEntry(ammo2, 78)
|
||||||
)
|
),
|
||||||
|
wasp
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
"liberator" -> _Loadout("default_liberator", List(),
|
"liberator" -> VehicleLoadout("default_liberator", List(),
|
||||||
List(
|
List(
|
||||||
SimplifiedEntry(ammo_35mm, 30),
|
SimplifiedEntry(ammo_35mm, 30),
|
||||||
SimplifiedEntry(ammo_35mm, 34),
|
SimplifiedEntry(ammo_35mm, 34),
|
||||||
|
|
@ -406,9 +428,10 @@ abstract class VehicleTerminalDefinition(objId : Int) extends TerminalDefinition
|
||||||
SimplifiedEntry(ammo_bomb, 150),
|
SimplifiedEntry(ammo_bomb, 150),
|
||||||
SimplifiedEntry(ammo_bomb, 154),
|
SimplifiedEntry(ammo_bomb, 154),
|
||||||
SimplifiedEntry(ammo_bomb, 158)
|
SimplifiedEntry(ammo_bomb, 158)
|
||||||
)
|
),
|
||||||
|
liberator
|
||||||
),
|
),
|
||||||
"vulture" -> _Loadout("default_vulture", List(),
|
"vulture" -> VehicleLoadout("default_vulture", List(),
|
||||||
List(
|
List(
|
||||||
SimplifiedEntry(ammo_35mm, 30),
|
SimplifiedEntry(ammo_35mm, 30),
|
||||||
SimplifiedEntry(ammo_35mm, 34),
|
SimplifiedEntry(ammo_35mm, 34),
|
||||||
|
|
@ -418,9 +441,10 @@ abstract class VehicleTerminalDefinition(objId : Int) extends TerminalDefinition
|
||||||
SimplifiedEntry(ammo_bomb, 98),
|
SimplifiedEntry(ammo_bomb, 98),
|
||||||
SimplifiedEntry(ammo_bomb, 102),
|
SimplifiedEntry(ammo_bomb, 102),
|
||||||
SimplifiedEntry(ammo_bomb, 106)
|
SimplifiedEntry(ammo_bomb, 106)
|
||||||
) //TODO confirm
|
), //TODO confirm
|
||||||
|
vulture
|
||||||
),
|
),
|
||||||
"dropship" -> _Loadout("default_dropship", List(),
|
"dropship" -> VehicleLoadout("default_dropship", List(),
|
||||||
List(
|
List(
|
||||||
SimplifiedEntry(ammo_20mm, 30),
|
SimplifiedEntry(ammo_20mm, 30),
|
||||||
SimplifiedEntry(ammo_20mm, 34),
|
SimplifiedEntry(ammo_20mm, 34),
|
||||||
|
|
@ -434,9 +458,10 @@ abstract class VehicleTerminalDefinition(objId : Int) extends TerminalDefinition
|
||||||
SimplifiedEntry(ammo_20mm, 162),
|
SimplifiedEntry(ammo_20mm, 162),
|
||||||
SimplifiedEntry(ammo_20mm, 166),
|
SimplifiedEntry(ammo_20mm, 166),
|
||||||
SimplifiedEntry(ammo_20mm, 170)
|
SimplifiedEntry(ammo_20mm, 170)
|
||||||
)
|
),
|
||||||
|
dropship
|
||||||
),
|
),
|
||||||
"galaxy_gunship" -> _Loadout("galaxy_gunship", List(),
|
"galaxy_gunship" -> VehicleLoadout("galaxy_gunship", List(),
|
||||||
List(
|
List(
|
||||||
SimplifiedEntry(ammo_35mm, 30),
|
SimplifiedEntry(ammo_35mm, 30),
|
||||||
SimplifiedEntry(ammo_35mm, 34),
|
SimplifiedEntry(ammo_35mm, 34),
|
||||||
|
|
@ -450,10 +475,11 @@ abstract class VehicleTerminalDefinition(objId : Int) extends TerminalDefinition
|
||||||
SimplifiedEntry(ammo_mortar, 178),
|
SimplifiedEntry(ammo_mortar, 178),
|
||||||
SimplifiedEntry(ammo_mortar, 182),
|
SimplifiedEntry(ammo_mortar, 182),
|
||||||
SimplifiedEntry(ammo_mortar, 186)
|
SimplifiedEntry(ammo_mortar, 186)
|
||||||
)
|
),
|
||||||
|
galaxy_gunship
|
||||||
)
|
)
|
||||||
//"phantasm" -> _Loadout("default_phantasm", List(), List()),
|
//"phantasm" -> VehicleLoadout("default_phantasm", List(), List(), phantasm),
|
||||||
//"lodestar" -> _Loadout("default_lodestar", List(), List()),
|
//"lodestar" -> VehicleLoadout("default_lodestar", List(), List(), lodestar),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ package objects
|
||||||
|
|
||||||
import net.psforever.objects.GlobalDefinitions._
|
import net.psforever.objects.GlobalDefinitions._
|
||||||
import net.psforever.objects._
|
import net.psforever.objects._
|
||||||
|
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, ImplantType, PlanetSideEmpire}
|
||||||
import org.specs2.mutable._
|
import org.specs2.mutable._
|
||||||
|
|
@ -291,7 +292,7 @@ class AvatarTest extends Specification {
|
||||||
avatar.SaveLoadout(obj, "test", 0)
|
avatar.SaveLoadout(obj, "test", 0)
|
||||||
|
|
||||||
avatar.LoadLoadout(0) match {
|
avatar.LoadLoadout(0) match {
|
||||||
case Some(items) =>
|
case Some(items : InfantryLoadout) =>
|
||||||
items.Label mustEqual "test"
|
items.Label mustEqual "test"
|
||||||
items.ExoSuit mustEqual obj.ExoSuit
|
items.ExoSuit mustEqual obj.ExoSuit
|
||||||
items.Subtype mustEqual 0
|
items.Subtype mustEqual 0
|
||||||
|
|
@ -321,7 +322,7 @@ class AvatarTest extends Specification {
|
||||||
inventory(4).item.asInstanceOf[Loadout.ShorthandAmmoBox].definition mustEqual energy_cell
|
inventory(4).item.asInstanceOf[Loadout.ShorthandAmmoBox].definition mustEqual energy_cell
|
||||||
inventory(5).index mustEqual 39
|
inventory(5).index mustEqual 39
|
||||||
inventory(5).item.asInstanceOf[Loadout.ShorthandSimpleItem].definition mustEqual remote_electronics_kit
|
inventory(5).item.asInstanceOf[Loadout.ShorthandSimpleItem].definition mustEqual remote_electronics_kit
|
||||||
case None =>
|
case _ =>
|
||||||
ko
|
ko
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -347,13 +348,13 @@ class AvatarTest extends Specification {
|
||||||
avatar.SaveLoadout(obj, "test", 0)
|
avatar.SaveLoadout(obj, "test", 0)
|
||||||
|
|
||||||
avatar.LoadLoadout(0) match {
|
avatar.LoadLoadout(0) match {
|
||||||
case Some(items) =>
|
case Some(items : InfantryLoadout) =>
|
||||||
items.Label mustEqual "test"
|
items.Label mustEqual "test"
|
||||||
items.ExoSuit mustEqual obj.ExoSuit
|
items.ExoSuit mustEqual obj.ExoSuit
|
||||||
items.Subtype mustEqual 0
|
items.Subtype mustEqual 0
|
||||||
items.VisibleSlots.length mustEqual 3
|
items.VisibleSlots.length mustEqual 3
|
||||||
items.Inventory.length mustEqual 0 //empty
|
items.Inventory.length mustEqual 0 //empty
|
||||||
case None =>
|
case _ =>
|
||||||
ko
|
ko
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -366,13 +367,13 @@ class AvatarTest extends Specification {
|
||||||
avatar.SaveLoadout(obj, "test", 0)
|
avatar.SaveLoadout(obj, "test", 0)
|
||||||
|
|
||||||
avatar.LoadLoadout(0) match {
|
avatar.LoadLoadout(0) match {
|
||||||
case Some(items) =>
|
case Some(items : InfantryLoadout) =>
|
||||||
items.Label mustEqual "test"
|
items.Label mustEqual "test"
|
||||||
items.ExoSuit mustEqual obj.ExoSuit
|
items.ExoSuit mustEqual obj.ExoSuit
|
||||||
items.Subtype mustEqual 0
|
items.Subtype mustEqual 0
|
||||||
items.VisibleSlots.length mustEqual 0 //empty
|
items.VisibleSlots.length mustEqual 0 //empty
|
||||||
items.Inventory.length mustEqual 6
|
items.Inventory.length mustEqual 6
|
||||||
case None =>
|
case _ =>
|
||||||
ko
|
ko
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
package objects
|
package objects
|
||||||
|
|
||||||
import net.psforever.objects._
|
import net.psforever.objects._
|
||||||
|
import net.psforever.objects.loadouts._
|
||||||
import net.psforever.types.{CharacterGender, ExoSuitType, PlanetSideEmpire}
|
import net.psforever.types.{CharacterGender, ExoSuitType, PlanetSideEmpire}
|
||||||
import net.psforever.objects.GlobalDefinitions._
|
import net.psforever.objects.GlobalDefinitions._
|
||||||
import org.specs2.mutable._
|
import org.specs2.mutable._
|
||||||
|
|
@ -36,7 +37,7 @@ class LoadoutTest extends Specification {
|
||||||
|
|
||||||
"create a loadout that contains a player's inventory" in {
|
"create a loadout that contains a player's inventory" in {
|
||||||
val player = CreatePlayer()
|
val player = CreatePlayer()
|
||||||
val obj = Loadout.Create(player, "test")
|
val obj = Loadout.Create(player, "test").asInstanceOf[InfantryLoadout]
|
||||||
|
|
||||||
obj.Label mustEqual "test"
|
obj.Label mustEqual "test"
|
||||||
obj.ExoSuit mustEqual obj.ExoSuit
|
obj.ExoSuit mustEqual obj.ExoSuit
|
||||||
|
|
@ -71,16 +72,16 @@ class LoadoutTest extends Specification {
|
||||||
slot.Equipment = None //only an unequipped slot can have its Equipment Size changed (Rifle -> Max)
|
slot.Equipment = None //only an unequipped slot can have its Equipment Size changed (Rifle -> Max)
|
||||||
Player.SuitSetup(player, ExoSuitType.MAX)
|
Player.SuitSetup(player, ExoSuitType.MAX)
|
||||||
|
|
||||||
val ldout1 = Loadout.Create(player, "weaponless")
|
val ldout1 = Loadout.Create(player, "weaponless").asInstanceOf[InfantryLoadout]
|
||||||
slot.Equipment = None
|
slot.Equipment = None
|
||||||
slot.Equipment = Tool(trhev_dualcycler)
|
slot.Equipment = Tool(trhev_dualcycler)
|
||||||
val ldout2 = Loadout.Create(player, "cycler")
|
val ldout2 = Loadout.Create(player, "cycler").asInstanceOf[InfantryLoadout]
|
||||||
slot.Equipment = None
|
slot.Equipment = None
|
||||||
slot.Equipment = Tool(trhev_pounder)
|
slot.Equipment = Tool(trhev_pounder)
|
||||||
val ldout3 = Loadout.Create(player, "pounder")
|
val ldout3 = Loadout.Create(player, "pounder").asInstanceOf[InfantryLoadout]
|
||||||
slot.Equipment = None
|
slot.Equipment = None
|
||||||
slot.Equipment = Tool(trhev_burster)
|
slot.Equipment = Tool(trhev_burster)
|
||||||
val ldout4 = Loadout.Create(player, "burster")
|
val ldout4 = Loadout.Create(player, "burster").asInstanceOf[InfantryLoadout]
|
||||||
|
|
||||||
ldout1.Subtype mustEqual 0
|
ldout1.Subtype mustEqual 0
|
||||||
ldout2.Subtype mustEqual 1
|
ldout2.Subtype mustEqual 1
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,7 @@ import net.psforever.objects._
|
||||||
import net.psforever.objects.definition.ToolDefinition
|
import net.psforever.objects.definition.ToolDefinition
|
||||||
import net.psforever.objects.definition.converter.CorpseConverter
|
import net.psforever.objects.definition.converter.CorpseConverter
|
||||||
import net.psforever.objects.equipment._
|
import net.psforever.objects.equipment._
|
||||||
|
import net.psforever.objects.loadouts._
|
||||||
import net.psforever.objects.guid.{GUIDTask, Task, TaskResolver}
|
import net.psforever.objects.guid.{GUIDTask, Task, TaskResolver}
|
||||||
import net.psforever.objects.inventory.{Container, GridInventory, InventoryItem}
|
import net.psforever.objects.inventory.{Container, GridInventory, InventoryItem}
|
||||||
import net.psforever.objects.serverobject.mount.Mountable
|
import net.psforever.objects.serverobject.mount.Mountable
|
||||||
|
|
@ -2360,6 +2361,7 @@ class WorldSessionActor extends Actor with MDCContextAware {
|
||||||
}
|
}
|
||||||
|
|
||||||
case msg @ FavoritesRequest(player_guid, unk, action, line, label) =>
|
case msg @ FavoritesRequest(player_guid, unk, action, line, label) =>
|
||||||
|
log.info(s"FavoritesRequest: $msg")
|
||||||
if(player.GUID == player_guid) {
|
if(player.GUID == player_guid) {
|
||||||
val name = label.getOrElse("missing_loadout_name")
|
val name = label.getOrElse("missing_loadout_name")
|
||||||
action match {
|
action match {
|
||||||
|
|
@ -2372,7 +2374,6 @@ class WorldSessionActor extends Actor with MDCContextAware {
|
||||||
sendResponse(FavoritesMessage(0, player_guid, line, ""))
|
sendResponse(FavoritesMessage(0, player_guid, line, ""))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
log.info("FavoritesRequest: " + msg)
|
|
||||||
|
|
||||||
case msg @ WeaponDelayFireMessage(seq_time, weapon_guid) =>
|
case msg @ WeaponDelayFireMessage(seq_time, weapon_guid) =>
|
||||||
log.info("WeaponDelayFire: " + msg)
|
log.info("WeaponDelayFire: " + msg)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue