new stuff for player server classes; this update is not yet complete
adjusted sample Reload code and added insertion and removal functions for inventory
more work on player classes; moving PacketResolution to another branch
decoupling GUIDs from objects; introduced Ammo enum; minor adjustments to inventory system; different object/class hierarchy
transferring basic files from another branch
converted from get/set to accessor/mutator; resolved conflict from name changes
refactored basic components such as GUID and location/orientation
utilities kludge; more fields are given accessor and mutators; create package for vehicle-specific classes
GUID assurance, now with less object creation
test files; changes to how AmmoBox initializes
sorry, a little bit of everything, so much I forgot to write it all down
switched to a unified fire mode object internal to a Tool
importing a heavily modified version of my GUID manager objects from the laternate branch; not finished or tested yet
created a Trait to make Key private, sources and selectors to allow NumberPools to exist independent of a NumberSource; placed Ascending into a misc folder
swapped the Return methods for selectors so that the more primitive logic is the one that needs to be overriden; renamed a selector to be more common; had to update some copyright messages
fixed major logic issue with NumberPool; added comments to NumberSource files
NumberSource tests
simplified and made more consistent the method naming convention of NumberSources
comments for NumberSelectors
starting on NumberSelector tests
modifications that should better support number pools; added a pool hub that acts on a predefined source
adjustment to how Tools and FireModeDefintion keep track of ammunition and ammunition slots; I don't think this is sufficient
small additions to Tools; filled out simple tests for other three Selectors
added object lookup notation for the pool hub
added more NumberSelector tests; removed the word 'Number' from subclass names
re-named classes, re-packaged classes, re-named packages; created new Selector, split pools to create a fallback for the NumberPoolHub
changes to NumberPool classes; tests on NumberPool classes
changes to NumberPool classes; tests on NumberPool classes2
some robust testing for NumberPoolHub, plus necessary modifications to other files
register and unregister functions now use Success and Failure conditions, save for one true thrown Exception
reduced the flow of certain algorithm chains, mainly by adding match statements and removing Exceptions
error message text
the same thing as the last commit, but with NumberPools rather than NumberPoolHub
various types of freeform registration
added sorting functions to Selectors to allow for hotswapping for number pools, especially to and from SpecificSelector; tests for NumberPoolHub
get numbers from an Array of indices, not the list of Numbers, in SimplePool
added a class to represent the four types of recovery kits
comments on Kit files
created package for supporting equipment classes; renamed /definition/ package
adding class for items that construct deployables, the router telepad included
added SimpleItem, classes for game Equipment that do not have internal state; re-organized ObjectDefinition files and the game objects they create to more naturally move around EquipmentSize and InventoryTile (size)
added SimpleItem tests (what they are...); removed example code that has hogging an import from AmmoBox
auto-sort for loading and fitting former inventory content back into the inventory
method of finding first available position to fit an certain size block in the inventory
changed CheckCollision return type to provide Try[List[Int]; fixed all existing references and tests
wrote comments for GridInventory methods; changed insertion param to be of form 'key -> element'
adding features to Player; created definitions for Player class; re-grouped ConstructionItem enumerations
initial work on implants; shuffled classes to better accommodate the new implant system, I think
wrote some tests for Implants; fixing Implant logic
wrote tests for Player class and made adjustments where necessary
basic initialization during Player creation based on exo-suit type
three wrapper Actors for the normal classes
comments on code
modified tests to improve accountability; added Resolver class to deal with multiple tasks that contribute to a larger task
changed Tools to an internal AmmoBox; don't have to def -= symbol if I def _= symbol
LivePlayerList -> MasterPlayerList, and added a Fit def for Player that checks holsters as well as inventory
example of packet conversion can be found with AmmoBoxDefinition
added conversion for ToolDefinition
added all Equipment packet conversion functionality; started working on Avatar-related conversions
continued effort towards a working Player packet conversion test
subclasses of Equipment apparently do not need to overide the type of the PacketConverter for generics
the logical conclusion: it doesn't matter what generics Packet returns so long as it returns an ObjectCreateConverter[] type
separated converters from definitions into files
changed some configuration information to final; added a bunch of converters, not fully tested though
changed function names in converters
replaced WSA packet-driven OCDM with Player object OCDM; upgrade to Float angular data
added partial support for LockerContainer; changed Equipment defaults to a common value
changes to AvatarConverter to include 5th slot; changes to VehicleConverter to make work; implementation of Fury in Vehicle->packet example in WSA
added a seat definition and renovated how the weapon controlled from a seat can be found
comments to files mainly; non-essential functionality to some classes, mostly access determination
moved converter tests to their own test file
write more of this test
added ServiceManager, as it is useful
pool range changes
added AvatarService, as it is useful
straightened out the GUID actors; added the static method for adding AmmoBoxes (to be converted later)
chnages to task resolution operation
complicated Task and TaskResolver logic is now possible; for example, you can schedule giving an AmmoBox a GUID, before giving a Tool a GUID, before placing the Tool in a player's hand; see Suppressor example in WSA
separated the Task trait and the TaskResolver actor into their own classes, moving the former RegistrationTaskResolver class into the /misc/ folder; deleted old backup copy of HubActor; modifications for PoC and supported tests
added better support and protection against putting things in the wrong hand when using inventories and the Player.Slot(n) function
GlobalDefinitions file; added laze pointer as an SItem, and gave it the command detonater management code; additionally fixed spelling of 'detonat[o]r' in Codec; early Terminal class work
updated tests to GlobalDefinitions entries; Terminal works but I don't like it
played with GUID pooling workflow, though to little avail; modifications to Terminal purchasing workflow, but still very volatile
modified NumberPoolActor and NumberPoolAccessor to make them more straightforward and not use akka ask as a go-between
fixed recovery options so that they do not cause more messages
trailing newline
InventoryItem (packet data) renamed InventoryItemData to remove ambiguity; Terminal functionality improved, allowing for swapping of exo-suits and the restoration of equipment positions
remove yet-unsupported Terminal messaging
made Terminal message more specific; can now put equipment into empty slot on exo-suit change; should report changes better
re-organized function calls to preserved items removed from holster slots on exo-suit change
moved predicate to the end of the list of params for recoverInventory so that repetition can be eliminated and a default value can be assigned
issues with making Tool; committing changes before revert of NumberPoolActor and NumberPoolAccessorActor to see if those broke it
a necessary evil, the reverting of these two Actors; subtask resolution does not work unless I do so, for now
restored the registration portion of tasking back to where it previously was (and better?)
NumberPoolActor and the ...AccessorActor are back to a comfortable place (and better?)
re-draw object in hand when switching exo-suits; build AmmoBoxes for Tool during Terminal-controlled creation, not Tool-controlled creation
order of task cleanup reversed to avoid index mismatch; added itsm to TerminalDefinition
common 5x5 AmmoBox size; added vehicle weapon ammo boxes to terminal
added error catching messages; stopped odd double-registering issue early
resolved issue where multiple subtasks started their main task multiple times; added checks that an object does not register a new GUID when it already has one
wrote unregistration code for Selling items back through the Terminal, repairing logic along the way; also, wrote a top-level GUID find for the Player for use of MoveItem
added framework for starting on Loadouts; managed issue with parent tasks starting before being summoned by child subtasks, often resulting in the complete skip of the execution phase of the parent; refactored registration tasks in WSA
modified Tool structure, exposing the AmmoSlot list a bit more
stuff stuff Tool ammo slot changes to default and comments
basic loadout framework for Infantry; need to integrate
initial work on FavoritesRequest packet
tests for FavoritesRequest packet
increased size of number pool for testing; wrote an algorithm that translates to and from the simplified version of objects stored in loadouts
refactored the tasking for adding Equipment and removing Equipment
updated the inventory so the Map of items does not have to rely on the GUID of an item being set before the item is inserted
untested routine for registering a player character; pushing all changes before making significant changes to the client init code structure
added to comments of BeginZoningMessage; transitioned player through and initial step of a more proper login GUID association
the current avatar is properly registered and there is something of a workflow with the messages and packets
corrected another bit of logic where inventories used to be indexed by object GUID in AvatarConverter; reversed unregister-remove task sequence such that GUID-less object is not allowed to exist in a stable object hierarchy
working Loadout loading
added identification functions to GlobalDefinitions; echo ObjectDelete back to client
accidentally got rid of something in WSA, but now restored; adding extra details to Terminal operations
separated Terminal into separate files and moved files into their own package under \objects\ for now; can delete loadouts now in WSA
better handling of ReloadMessage and MoveItemMessage
framework for better support involving dropping and picking up items
code comments and small modifications, such as the location and structure of the Terminal Equipment definitions
wrote comments in GlobalDefinitions; modified code so that a primitive form of player synchronization now occurs for future testing
added code to display already-dropped Equipment on the ground; limitations are explained; moved TaskResolver to more a global location, though I don't know if that helps
modified avatar unregister logic to ensure vacating player is deleted from other clients 'properly'
more comments; improved checks for MoveItemMessage; squared distances as necessary
subtle changes to login scripting so that test character is always offered
re-organizing the functions in WSA so that only the local objects separate the two message processing blocks
2017-05-30 18:46:01 -04:00
|
|
|
// 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._
|
2018-01-17 07:51:42 -05:00
|
|
|
import net.psforever.objects.definition._
|
new stuff for player server classes; this update is not yet complete
adjusted sample Reload code and added insertion and removal functions for inventory
more work on player classes; moving PacketResolution to another branch
decoupling GUIDs from objects; introduced Ammo enum; minor adjustments to inventory system; different object/class hierarchy
transferring basic files from another branch
converted from get/set to accessor/mutator; resolved conflict from name changes
refactored basic components such as GUID and location/orientation
utilities kludge; more fields are given accessor and mutators; create package for vehicle-specific classes
GUID assurance, now with less object creation
test files; changes to how AmmoBox initializes
sorry, a little bit of everything, so much I forgot to write it all down
switched to a unified fire mode object internal to a Tool
importing a heavily modified version of my GUID manager objects from the laternate branch; not finished or tested yet
created a Trait to make Key private, sources and selectors to allow NumberPools to exist independent of a NumberSource; placed Ascending into a misc folder
swapped the Return methods for selectors so that the more primitive logic is the one that needs to be overriden; renamed a selector to be more common; had to update some copyright messages
fixed major logic issue with NumberPool; added comments to NumberSource files
NumberSource tests
simplified and made more consistent the method naming convention of NumberSources
comments for NumberSelectors
starting on NumberSelector tests
modifications that should better support number pools; added a pool hub that acts on a predefined source
adjustment to how Tools and FireModeDefintion keep track of ammunition and ammunition slots; I don't think this is sufficient
small additions to Tools; filled out simple tests for other three Selectors
added object lookup notation for the pool hub
added more NumberSelector tests; removed the word 'Number' from subclass names
re-named classes, re-packaged classes, re-named packages; created new Selector, split pools to create a fallback for the NumberPoolHub
changes to NumberPool classes; tests on NumberPool classes
changes to NumberPool classes; tests on NumberPool classes2
some robust testing for NumberPoolHub, plus necessary modifications to other files
register and unregister functions now use Success and Failure conditions, save for one true thrown Exception
reduced the flow of certain algorithm chains, mainly by adding match statements and removing Exceptions
error message text
the same thing as the last commit, but with NumberPools rather than NumberPoolHub
various types of freeform registration
added sorting functions to Selectors to allow for hotswapping for number pools, especially to and from SpecificSelector; tests for NumberPoolHub
get numbers from an Array of indices, not the list of Numbers, in SimplePool
added a class to represent the four types of recovery kits
comments on Kit files
created package for supporting equipment classes; renamed /definition/ package
adding class for items that construct deployables, the router telepad included
added SimpleItem, classes for game Equipment that do not have internal state; re-organized ObjectDefinition files and the game objects they create to more naturally move around EquipmentSize and InventoryTile (size)
added SimpleItem tests (what they are...); removed example code that has hogging an import from AmmoBox
auto-sort for loading and fitting former inventory content back into the inventory
method of finding first available position to fit an certain size block in the inventory
changed CheckCollision return type to provide Try[List[Int]; fixed all existing references and tests
wrote comments for GridInventory methods; changed insertion param to be of form 'key -> element'
adding features to Player; created definitions for Player class; re-grouped ConstructionItem enumerations
initial work on implants; shuffled classes to better accommodate the new implant system, I think
wrote some tests for Implants; fixing Implant logic
wrote tests for Player class and made adjustments where necessary
basic initialization during Player creation based on exo-suit type
three wrapper Actors for the normal classes
comments on code
modified tests to improve accountability; added Resolver class to deal with multiple tasks that contribute to a larger task
changed Tools to an internal AmmoBox; don't have to def -= symbol if I def _= symbol
LivePlayerList -> MasterPlayerList, and added a Fit def for Player that checks holsters as well as inventory
example of packet conversion can be found with AmmoBoxDefinition
added conversion for ToolDefinition
added all Equipment packet conversion functionality; started working on Avatar-related conversions
continued effort towards a working Player packet conversion test
subclasses of Equipment apparently do not need to overide the type of the PacketConverter for generics
the logical conclusion: it doesn't matter what generics Packet returns so long as it returns an ObjectCreateConverter[] type
separated converters from definitions into files
changed some configuration information to final; added a bunch of converters, not fully tested though
changed function names in converters
replaced WSA packet-driven OCDM with Player object OCDM; upgrade to Float angular data
added partial support for LockerContainer; changed Equipment defaults to a common value
changes to AvatarConverter to include 5th slot; changes to VehicleConverter to make work; implementation of Fury in Vehicle->packet example in WSA
added a seat definition and renovated how the weapon controlled from a seat can be found
comments to files mainly; non-essential functionality to some classes, mostly access determination
moved converter tests to their own test file
write more of this test
added ServiceManager, as it is useful
pool range changes
added AvatarService, as it is useful
straightened out the GUID actors; added the static method for adding AmmoBoxes (to be converted later)
chnages to task resolution operation
complicated Task and TaskResolver logic is now possible; for example, you can schedule giving an AmmoBox a GUID, before giving a Tool a GUID, before placing the Tool in a player's hand; see Suppressor example in WSA
separated the Task trait and the TaskResolver actor into their own classes, moving the former RegistrationTaskResolver class into the /misc/ folder; deleted old backup copy of HubActor; modifications for PoC and supported tests
added better support and protection against putting things in the wrong hand when using inventories and the Player.Slot(n) function
GlobalDefinitions file; added laze pointer as an SItem, and gave it the command detonater management code; additionally fixed spelling of 'detonat[o]r' in Codec; early Terminal class work
updated tests to GlobalDefinitions entries; Terminal works but I don't like it
played with GUID pooling workflow, though to little avail; modifications to Terminal purchasing workflow, but still very volatile
modified NumberPoolActor and NumberPoolAccessor to make them more straightforward and not use akka ask as a go-between
fixed recovery options so that they do not cause more messages
trailing newline
InventoryItem (packet data) renamed InventoryItemData to remove ambiguity; Terminal functionality improved, allowing for swapping of exo-suits and the restoration of equipment positions
remove yet-unsupported Terminal messaging
made Terminal message more specific; can now put equipment into empty slot on exo-suit change; should report changes better
re-organized function calls to preserved items removed from holster slots on exo-suit change
moved predicate to the end of the list of params for recoverInventory so that repetition can be eliminated and a default value can be assigned
issues with making Tool; committing changes before revert of NumberPoolActor and NumberPoolAccessorActor to see if those broke it
a necessary evil, the reverting of these two Actors; subtask resolution does not work unless I do so, for now
restored the registration portion of tasking back to where it previously was (and better?)
NumberPoolActor and the ...AccessorActor are back to a comfortable place (and better?)
re-draw object in hand when switching exo-suits; build AmmoBoxes for Tool during Terminal-controlled creation, not Tool-controlled creation
order of task cleanup reversed to avoid index mismatch; added itsm to TerminalDefinition
common 5x5 AmmoBox size; added vehicle weapon ammo boxes to terminal
added error catching messages; stopped odd double-registering issue early
resolved issue where multiple subtasks started their main task multiple times; added checks that an object does not register a new GUID when it already has one
wrote unregistration code for Selling items back through the Terminal, repairing logic along the way; also, wrote a top-level GUID find for the Player for use of MoveItem
added framework for starting on Loadouts; managed issue with parent tasks starting before being summoned by child subtasks, often resulting in the complete skip of the execution phase of the parent; refactored registration tasks in WSA
modified Tool structure, exposing the AmmoSlot list a bit more
stuff stuff Tool ammo slot changes to default and comments
basic loadout framework for Infantry; need to integrate
initial work on FavoritesRequest packet
tests for FavoritesRequest packet
increased size of number pool for testing; wrote an algorithm that translates to and from the simplified version of objects stored in loadouts
refactored the tasking for adding Equipment and removing Equipment
updated the inventory so the Map of items does not have to rely on the GUID of an item being set before the item is inserted
untested routine for registering a player character; pushing all changes before making significant changes to the client init code structure
added to comments of BeginZoningMessage; transitioned player through and initial step of a more proper login GUID association
the current avatar is properly registered and there is something of a workflow with the messages and packets
corrected another bit of logic where inventories used to be indexed by object GUID in AvatarConverter; reversed unregister-remove task sequence such that GUID-less object is not allowed to exist in a stable object hierarchy
working Loadout loading
added identification functions to GlobalDefinitions; echo ObjectDelete back to client
accidentally got rid of something in WSA, but now restored; adding extra details to Terminal operations
separated Terminal into separate files and moved files into their own package under \objects\ for now; can delete loadouts now in WSA
better handling of ReloadMessage and MoveItemMessage
framework for better support involving dropping and picking up items
code comments and small modifications, such as the location and structure of the Terminal Equipment definitions
wrote comments in GlobalDefinitions; modified code so that a primitive form of player synchronization now occurs for future testing
added code to display already-dropped Equipment on the ground; limitations are explained; moved TaskResolver to more a global location, though I don't know if that helps
modified avatar unregister logic to ensure vacating player is deleted from other clients 'properly'
more comments; improved checks for MoveItemMessage; squared distances as necessary
subtle changes to login scripting so that test character is always offered
re-organizing the functions in WSA so that only the local objects separate the two message processing blocks
2017-05-30 18:46:01 -04:00
|
|
|
import org.specs2.mutable._
|
|
|
|
|
|
|
|
|
|
class EquipmentTest extends Specification {
|
2017-12-05 00:37:24 -05:00
|
|
|
"EquipmentSize" should {
|
|
|
|
|
"equal" in {
|
|
|
|
|
//basic equality
|
|
|
|
|
EquipmentSize.isEqual(EquipmentSize.Pistol, EquipmentSize.Pistol) mustEqual true
|
|
|
|
|
EquipmentSize.isEqual(EquipmentSize.Pistol, EquipmentSize.Rifle) mustEqual false
|
|
|
|
|
//Inventory is always allowed
|
|
|
|
|
EquipmentSize.isEqual(EquipmentSize.Inventory, EquipmentSize.Rifle) mustEqual true
|
|
|
|
|
EquipmentSize.isEqual(EquipmentSize.Pistol, EquipmentSize.Inventory) mustEqual true
|
|
|
|
|
//Blocked is never allowed
|
|
|
|
|
EquipmentSize.isEqual(EquipmentSize.Blocked, EquipmentSize.Rifle) mustEqual false
|
|
|
|
|
EquipmentSize.isEqual(EquipmentSize.Pistol, EquipmentSize.Blocked) mustEqual false
|
|
|
|
|
EquipmentSize.isEqual(EquipmentSize.Blocked, EquipmentSize.Inventory) mustEqual false
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
new stuff for player server classes; this update is not yet complete
adjusted sample Reload code and added insertion and removal functions for inventory
more work on player classes; moving PacketResolution to another branch
decoupling GUIDs from objects; introduced Ammo enum; minor adjustments to inventory system; different object/class hierarchy
transferring basic files from another branch
converted from get/set to accessor/mutator; resolved conflict from name changes
refactored basic components such as GUID and location/orientation
utilities kludge; more fields are given accessor and mutators; create package for vehicle-specific classes
GUID assurance, now with less object creation
test files; changes to how AmmoBox initializes
sorry, a little bit of everything, so much I forgot to write it all down
switched to a unified fire mode object internal to a Tool
importing a heavily modified version of my GUID manager objects from the laternate branch; not finished or tested yet
created a Trait to make Key private, sources and selectors to allow NumberPools to exist independent of a NumberSource; placed Ascending into a misc folder
swapped the Return methods for selectors so that the more primitive logic is the one that needs to be overriden; renamed a selector to be more common; had to update some copyright messages
fixed major logic issue with NumberPool; added comments to NumberSource files
NumberSource tests
simplified and made more consistent the method naming convention of NumberSources
comments for NumberSelectors
starting on NumberSelector tests
modifications that should better support number pools; added a pool hub that acts on a predefined source
adjustment to how Tools and FireModeDefintion keep track of ammunition and ammunition slots; I don't think this is sufficient
small additions to Tools; filled out simple tests for other three Selectors
added object lookup notation for the pool hub
added more NumberSelector tests; removed the word 'Number' from subclass names
re-named classes, re-packaged classes, re-named packages; created new Selector, split pools to create a fallback for the NumberPoolHub
changes to NumberPool classes; tests on NumberPool classes
changes to NumberPool classes; tests on NumberPool classes2
some robust testing for NumberPoolHub, plus necessary modifications to other files
register and unregister functions now use Success and Failure conditions, save for one true thrown Exception
reduced the flow of certain algorithm chains, mainly by adding match statements and removing Exceptions
error message text
the same thing as the last commit, but with NumberPools rather than NumberPoolHub
various types of freeform registration
added sorting functions to Selectors to allow for hotswapping for number pools, especially to and from SpecificSelector; tests for NumberPoolHub
get numbers from an Array of indices, not the list of Numbers, in SimplePool
added a class to represent the four types of recovery kits
comments on Kit files
created package for supporting equipment classes; renamed /definition/ package
adding class for items that construct deployables, the router telepad included
added SimpleItem, classes for game Equipment that do not have internal state; re-organized ObjectDefinition files and the game objects they create to more naturally move around EquipmentSize and InventoryTile (size)
added SimpleItem tests (what they are...); removed example code that has hogging an import from AmmoBox
auto-sort for loading and fitting former inventory content back into the inventory
method of finding first available position to fit an certain size block in the inventory
changed CheckCollision return type to provide Try[List[Int]; fixed all existing references and tests
wrote comments for GridInventory methods; changed insertion param to be of form 'key -> element'
adding features to Player; created definitions for Player class; re-grouped ConstructionItem enumerations
initial work on implants; shuffled classes to better accommodate the new implant system, I think
wrote some tests for Implants; fixing Implant logic
wrote tests for Player class and made adjustments where necessary
basic initialization during Player creation based on exo-suit type
three wrapper Actors for the normal classes
comments on code
modified tests to improve accountability; added Resolver class to deal with multiple tasks that contribute to a larger task
changed Tools to an internal AmmoBox; don't have to def -= symbol if I def _= symbol
LivePlayerList -> MasterPlayerList, and added a Fit def for Player that checks holsters as well as inventory
example of packet conversion can be found with AmmoBoxDefinition
added conversion for ToolDefinition
added all Equipment packet conversion functionality; started working on Avatar-related conversions
continued effort towards a working Player packet conversion test
subclasses of Equipment apparently do not need to overide the type of the PacketConverter for generics
the logical conclusion: it doesn't matter what generics Packet returns so long as it returns an ObjectCreateConverter[] type
separated converters from definitions into files
changed some configuration information to final; added a bunch of converters, not fully tested though
changed function names in converters
replaced WSA packet-driven OCDM with Player object OCDM; upgrade to Float angular data
added partial support for LockerContainer; changed Equipment defaults to a common value
changes to AvatarConverter to include 5th slot; changes to VehicleConverter to make work; implementation of Fury in Vehicle->packet example in WSA
added a seat definition and renovated how the weapon controlled from a seat can be found
comments to files mainly; non-essential functionality to some classes, mostly access determination
moved converter tests to their own test file
write more of this test
added ServiceManager, as it is useful
pool range changes
added AvatarService, as it is useful
straightened out the GUID actors; added the static method for adding AmmoBoxes (to be converted later)
chnages to task resolution operation
complicated Task and TaskResolver logic is now possible; for example, you can schedule giving an AmmoBox a GUID, before giving a Tool a GUID, before placing the Tool in a player's hand; see Suppressor example in WSA
separated the Task trait and the TaskResolver actor into their own classes, moving the former RegistrationTaskResolver class into the /misc/ folder; deleted old backup copy of HubActor; modifications for PoC and supported tests
added better support and protection against putting things in the wrong hand when using inventories and the Player.Slot(n) function
GlobalDefinitions file; added laze pointer as an SItem, and gave it the command detonater management code; additionally fixed spelling of 'detonat[o]r' in Codec; early Terminal class work
updated tests to GlobalDefinitions entries; Terminal works but I don't like it
played with GUID pooling workflow, though to little avail; modifications to Terminal purchasing workflow, but still very volatile
modified NumberPoolActor and NumberPoolAccessor to make them more straightforward and not use akka ask as a go-between
fixed recovery options so that they do not cause more messages
trailing newline
InventoryItem (packet data) renamed InventoryItemData to remove ambiguity; Terminal functionality improved, allowing for swapping of exo-suits and the restoration of equipment positions
remove yet-unsupported Terminal messaging
made Terminal message more specific; can now put equipment into empty slot on exo-suit change; should report changes better
re-organized function calls to preserved items removed from holster slots on exo-suit change
moved predicate to the end of the list of params for recoverInventory so that repetition can be eliminated and a default value can be assigned
issues with making Tool; committing changes before revert of NumberPoolActor and NumberPoolAccessorActor to see if those broke it
a necessary evil, the reverting of these two Actors; subtask resolution does not work unless I do so, for now
restored the registration portion of tasking back to where it previously was (and better?)
NumberPoolActor and the ...AccessorActor are back to a comfortable place (and better?)
re-draw object in hand when switching exo-suits; build AmmoBoxes for Tool during Terminal-controlled creation, not Tool-controlled creation
order of task cleanup reversed to avoid index mismatch; added itsm to TerminalDefinition
common 5x5 AmmoBox size; added vehicle weapon ammo boxes to terminal
added error catching messages; stopped odd double-registering issue early
resolved issue where multiple subtasks started their main task multiple times; added checks that an object does not register a new GUID when it already has one
wrote unregistration code for Selling items back through the Terminal, repairing logic along the way; also, wrote a top-level GUID find for the Player for use of MoveItem
added framework for starting on Loadouts; managed issue with parent tasks starting before being summoned by child subtasks, often resulting in the complete skip of the execution phase of the parent; refactored registration tasks in WSA
modified Tool structure, exposing the AmmoSlot list a bit more
stuff stuff Tool ammo slot changes to default and comments
basic loadout framework for Infantry; need to integrate
initial work on FavoritesRequest packet
tests for FavoritesRequest packet
increased size of number pool for testing; wrote an algorithm that translates to and from the simplified version of objects stored in loadouts
refactored the tasking for adding Equipment and removing Equipment
updated the inventory so the Map of items does not have to rely on the GUID of an item being set before the item is inserted
untested routine for registering a player character; pushing all changes before making significant changes to the client init code structure
added to comments of BeginZoningMessage; transitioned player through and initial step of a more proper login GUID association
the current avatar is properly registered and there is something of a workflow with the messages and packets
corrected another bit of logic where inventories used to be indexed by object GUID in AvatarConverter; reversed unregister-remove task sequence such that GUID-less object is not allowed to exist in a stable object hierarchy
working Loadout loading
added identification functions to GlobalDefinitions; echo ObjectDelete back to client
accidentally got rid of something in WSA, but now restored; adding extra details to Terminal operations
separated Terminal into separate files and moved files into their own package under \objects\ for now; can delete loadouts now in WSA
better handling of ReloadMessage and MoveItemMessage
framework for better support involving dropping and picking up items
code comments and small modifications, such as the location and structure of the Terminal Equipment definitions
wrote comments in GlobalDefinitions; modified code so that a primitive form of player synchronization now occurs for future testing
added code to display already-dropped Equipment on the ground; limitations are explained; moved TaskResolver to more a global location, though I don't know if that helps
modified avatar unregister logic to ensure vacating player is deleted from other clients 'properly'
more comments; improved checks for MoveItemMessage; squared distances as necessary
subtle changes to login scripting so that test character is always offered
re-organizing the functions in WSA so that only the local objects separate the two message processing blocks
2017-05-30 18:46:01 -04:00
|
|
|
"AmmoBox" should {
|
|
|
|
|
"define" in {
|
|
|
|
|
val obj = AmmoBoxDefinition(86)
|
|
|
|
|
obj.Capacity = 300
|
|
|
|
|
obj.Tile = InventoryTile.Tile44
|
|
|
|
|
|
|
|
|
|
obj.AmmoType mustEqual Ammo.aphelion_immolation_cannon_ammo
|
|
|
|
|
obj.Capacity mustEqual 300
|
2017-11-08 21:00:46 -05:00
|
|
|
obj.Tile.Width mustEqual InventoryTile.Tile44.Width
|
|
|
|
|
obj.Tile.Height mustEqual InventoryTile.Tile44.Height
|
new stuff for player server classes; this update is not yet complete
adjusted sample Reload code and added insertion and removal functions for inventory
more work on player classes; moving PacketResolution to another branch
decoupling GUIDs from objects; introduced Ammo enum; minor adjustments to inventory system; different object/class hierarchy
transferring basic files from another branch
converted from get/set to accessor/mutator; resolved conflict from name changes
refactored basic components such as GUID and location/orientation
utilities kludge; more fields are given accessor and mutators; create package for vehicle-specific classes
GUID assurance, now with less object creation
test files; changes to how AmmoBox initializes
sorry, a little bit of everything, so much I forgot to write it all down
switched to a unified fire mode object internal to a Tool
importing a heavily modified version of my GUID manager objects from the laternate branch; not finished or tested yet
created a Trait to make Key private, sources and selectors to allow NumberPools to exist independent of a NumberSource; placed Ascending into a misc folder
swapped the Return methods for selectors so that the more primitive logic is the one that needs to be overriden; renamed a selector to be more common; had to update some copyright messages
fixed major logic issue with NumberPool; added comments to NumberSource files
NumberSource tests
simplified and made more consistent the method naming convention of NumberSources
comments for NumberSelectors
starting on NumberSelector tests
modifications that should better support number pools; added a pool hub that acts on a predefined source
adjustment to how Tools and FireModeDefintion keep track of ammunition and ammunition slots; I don't think this is sufficient
small additions to Tools; filled out simple tests for other three Selectors
added object lookup notation for the pool hub
added more NumberSelector tests; removed the word 'Number' from subclass names
re-named classes, re-packaged classes, re-named packages; created new Selector, split pools to create a fallback for the NumberPoolHub
changes to NumberPool classes; tests on NumberPool classes
changes to NumberPool classes; tests on NumberPool classes2
some robust testing for NumberPoolHub, plus necessary modifications to other files
register and unregister functions now use Success and Failure conditions, save for one true thrown Exception
reduced the flow of certain algorithm chains, mainly by adding match statements and removing Exceptions
error message text
the same thing as the last commit, but with NumberPools rather than NumberPoolHub
various types of freeform registration
added sorting functions to Selectors to allow for hotswapping for number pools, especially to and from SpecificSelector; tests for NumberPoolHub
get numbers from an Array of indices, not the list of Numbers, in SimplePool
added a class to represent the four types of recovery kits
comments on Kit files
created package for supporting equipment classes; renamed /definition/ package
adding class for items that construct deployables, the router telepad included
added SimpleItem, classes for game Equipment that do not have internal state; re-organized ObjectDefinition files and the game objects they create to more naturally move around EquipmentSize and InventoryTile (size)
added SimpleItem tests (what they are...); removed example code that has hogging an import from AmmoBox
auto-sort for loading and fitting former inventory content back into the inventory
method of finding first available position to fit an certain size block in the inventory
changed CheckCollision return type to provide Try[List[Int]; fixed all existing references and tests
wrote comments for GridInventory methods; changed insertion param to be of form 'key -> element'
adding features to Player; created definitions for Player class; re-grouped ConstructionItem enumerations
initial work on implants; shuffled classes to better accommodate the new implant system, I think
wrote some tests for Implants; fixing Implant logic
wrote tests for Player class and made adjustments where necessary
basic initialization during Player creation based on exo-suit type
three wrapper Actors for the normal classes
comments on code
modified tests to improve accountability; added Resolver class to deal with multiple tasks that contribute to a larger task
changed Tools to an internal AmmoBox; don't have to def -= symbol if I def _= symbol
LivePlayerList -> MasterPlayerList, and added a Fit def for Player that checks holsters as well as inventory
example of packet conversion can be found with AmmoBoxDefinition
added conversion for ToolDefinition
added all Equipment packet conversion functionality; started working on Avatar-related conversions
continued effort towards a working Player packet conversion test
subclasses of Equipment apparently do not need to overide the type of the PacketConverter for generics
the logical conclusion: it doesn't matter what generics Packet returns so long as it returns an ObjectCreateConverter[] type
separated converters from definitions into files
changed some configuration information to final; added a bunch of converters, not fully tested though
changed function names in converters
replaced WSA packet-driven OCDM with Player object OCDM; upgrade to Float angular data
added partial support for LockerContainer; changed Equipment defaults to a common value
changes to AvatarConverter to include 5th slot; changes to VehicleConverter to make work; implementation of Fury in Vehicle->packet example in WSA
added a seat definition and renovated how the weapon controlled from a seat can be found
comments to files mainly; non-essential functionality to some classes, mostly access determination
moved converter tests to their own test file
write more of this test
added ServiceManager, as it is useful
pool range changes
added AvatarService, as it is useful
straightened out the GUID actors; added the static method for adding AmmoBoxes (to be converted later)
chnages to task resolution operation
complicated Task and TaskResolver logic is now possible; for example, you can schedule giving an AmmoBox a GUID, before giving a Tool a GUID, before placing the Tool in a player's hand; see Suppressor example in WSA
separated the Task trait and the TaskResolver actor into their own classes, moving the former RegistrationTaskResolver class into the /misc/ folder; deleted old backup copy of HubActor; modifications for PoC and supported tests
added better support and protection against putting things in the wrong hand when using inventories and the Player.Slot(n) function
GlobalDefinitions file; added laze pointer as an SItem, and gave it the command detonater management code; additionally fixed spelling of 'detonat[o]r' in Codec; early Terminal class work
updated tests to GlobalDefinitions entries; Terminal works but I don't like it
played with GUID pooling workflow, though to little avail; modifications to Terminal purchasing workflow, but still very volatile
modified NumberPoolActor and NumberPoolAccessor to make them more straightforward and not use akka ask as a go-between
fixed recovery options so that they do not cause more messages
trailing newline
InventoryItem (packet data) renamed InventoryItemData to remove ambiguity; Terminal functionality improved, allowing for swapping of exo-suits and the restoration of equipment positions
remove yet-unsupported Terminal messaging
made Terminal message more specific; can now put equipment into empty slot on exo-suit change; should report changes better
re-organized function calls to preserved items removed from holster slots on exo-suit change
moved predicate to the end of the list of params for recoverInventory so that repetition can be eliminated and a default value can be assigned
issues with making Tool; committing changes before revert of NumberPoolActor and NumberPoolAccessorActor to see if those broke it
a necessary evil, the reverting of these two Actors; subtask resolution does not work unless I do so, for now
restored the registration portion of tasking back to where it previously was (and better?)
NumberPoolActor and the ...AccessorActor are back to a comfortable place (and better?)
re-draw object in hand when switching exo-suits; build AmmoBoxes for Tool during Terminal-controlled creation, not Tool-controlled creation
order of task cleanup reversed to avoid index mismatch; added itsm to TerminalDefinition
common 5x5 AmmoBox size; added vehicle weapon ammo boxes to terminal
added error catching messages; stopped odd double-registering issue early
resolved issue where multiple subtasks started their main task multiple times; added checks that an object does not register a new GUID when it already has one
wrote unregistration code for Selling items back through the Terminal, repairing logic along the way; also, wrote a top-level GUID find for the Player for use of MoveItem
added framework for starting on Loadouts; managed issue with parent tasks starting before being summoned by child subtasks, often resulting in the complete skip of the execution phase of the parent; refactored registration tasks in WSA
modified Tool structure, exposing the AmmoSlot list a bit more
stuff stuff Tool ammo slot changes to default and comments
basic loadout framework for Infantry; need to integrate
initial work on FavoritesRequest packet
tests for FavoritesRequest packet
increased size of number pool for testing; wrote an algorithm that translates to and from the simplified version of objects stored in loadouts
refactored the tasking for adding Equipment and removing Equipment
updated the inventory so the Map of items does not have to rely on the GUID of an item being set before the item is inserted
untested routine for registering a player character; pushing all changes before making significant changes to the client init code structure
added to comments of BeginZoningMessage; transitioned player through and initial step of a more proper login GUID association
the current avatar is properly registered and there is something of a workflow with the messages and packets
corrected another bit of logic where inventories used to be indexed by object GUID in AvatarConverter; reversed unregister-remove task sequence such that GUID-less object is not allowed to exist in a stable object hierarchy
working Loadout loading
added identification functions to GlobalDefinitions; echo ObjectDelete back to client
accidentally got rid of something in WSA, but now restored; adding extra details to Terminal operations
separated Terminal into separate files and moved files into their own package under \objects\ for now; can delete loadouts now in WSA
better handling of ReloadMessage and MoveItemMessage
framework for better support involving dropping and picking up items
code comments and small modifications, such as the location and structure of the Terminal Equipment definitions
wrote comments in GlobalDefinitions; modified code so that a primitive form of player synchronization now occurs for future testing
added code to display already-dropped Equipment on the ground; limitations are explained; moved TaskResolver to more a global location, though I don't know if that helps
modified avatar unregister logic to ensure vacating player is deleted from other clients 'properly'
more comments; improved checks for MoveItemMessage; squared distances as necessary
subtle changes to login scripting so that test character is always offered
re-organizing the functions in WSA so that only the local objects separate the two message processing blocks
2017-05-30 18:46:01 -04:00
|
|
|
obj.ObjectId mustEqual 86
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
"construct" in {
|
|
|
|
|
val obj = AmmoBox(bullet_9mm)
|
|
|
|
|
obj.AmmoType mustEqual Ammo.bullet_9mm
|
|
|
|
|
obj.Capacity mustEqual 50
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
"construct (2)" in {
|
|
|
|
|
val obj = AmmoBox(bullet_9mm, 150)
|
|
|
|
|
obj.AmmoType mustEqual Ammo.bullet_9mm
|
|
|
|
|
obj.Capacity mustEqual 150
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
"vary capacity" in {
|
|
|
|
|
val obj = AmmoBox(bullet_9mm, 0)
|
|
|
|
|
obj.Capacity mustEqual 1 //can not be initialized to 0
|
|
|
|
|
obj.Capacity = 75
|
|
|
|
|
obj.Capacity mustEqual 75
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
"limit capacity" in {
|
|
|
|
|
val obj = AmmoBox(bullet_9mm)
|
|
|
|
|
obj.Capacity mustEqual 50
|
|
|
|
|
obj.Capacity = -1
|
|
|
|
|
obj.Capacity mustEqual 0
|
|
|
|
|
obj.Capacity = 65536
|
|
|
|
|
obj.Capacity mustEqual 65535
|
|
|
|
|
}
|
2018-01-09 20:28:36 -05:00
|
|
|
|
|
|
|
|
"split (0)" in {
|
|
|
|
|
val obj = AmmoBox(bullet_9mm)
|
|
|
|
|
obj.Capacity = 0
|
|
|
|
|
val list = AmmoBox.Split(obj)
|
|
|
|
|
list.size mustEqual 0
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
"split (1)" in {
|
|
|
|
|
val obj = AmmoBox(bullet_9mm)
|
|
|
|
|
obj.Capacity = 50
|
|
|
|
|
val list = AmmoBox.Split(obj)
|
|
|
|
|
list.size mustEqual 1
|
|
|
|
|
list.head.Capacity mustEqual 50
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
"split (2)" in {
|
|
|
|
|
val obj = AmmoBox(bullet_9mm)
|
|
|
|
|
obj.Capacity = 75
|
|
|
|
|
val list = AmmoBox.Split(obj)
|
|
|
|
|
list.size mustEqual 2
|
|
|
|
|
list.head.Capacity mustEqual 50
|
|
|
|
|
list(1).Capacity mustEqual 25
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
"split (4)" in {
|
|
|
|
|
val obj = AmmoBox(bullet_9mm)
|
|
|
|
|
obj.Capacity = 165
|
|
|
|
|
val list = AmmoBox.Split(obj)
|
|
|
|
|
list.size mustEqual 4
|
|
|
|
|
list.head.Capacity mustEqual 50
|
|
|
|
|
list(1).Capacity mustEqual 50
|
|
|
|
|
list(2).Capacity mustEqual 50
|
|
|
|
|
list(3).Capacity mustEqual 15
|
|
|
|
|
}
|
new stuff for player server classes; this update is not yet complete
adjusted sample Reload code and added insertion and removal functions for inventory
more work on player classes; moving PacketResolution to another branch
decoupling GUIDs from objects; introduced Ammo enum; minor adjustments to inventory system; different object/class hierarchy
transferring basic files from another branch
converted from get/set to accessor/mutator; resolved conflict from name changes
refactored basic components such as GUID and location/orientation
utilities kludge; more fields are given accessor and mutators; create package for vehicle-specific classes
GUID assurance, now with less object creation
test files; changes to how AmmoBox initializes
sorry, a little bit of everything, so much I forgot to write it all down
switched to a unified fire mode object internal to a Tool
importing a heavily modified version of my GUID manager objects from the laternate branch; not finished or tested yet
created a Trait to make Key private, sources and selectors to allow NumberPools to exist independent of a NumberSource; placed Ascending into a misc folder
swapped the Return methods for selectors so that the more primitive logic is the one that needs to be overriden; renamed a selector to be more common; had to update some copyright messages
fixed major logic issue with NumberPool; added comments to NumberSource files
NumberSource tests
simplified and made more consistent the method naming convention of NumberSources
comments for NumberSelectors
starting on NumberSelector tests
modifications that should better support number pools; added a pool hub that acts on a predefined source
adjustment to how Tools and FireModeDefintion keep track of ammunition and ammunition slots; I don't think this is sufficient
small additions to Tools; filled out simple tests for other three Selectors
added object lookup notation for the pool hub
added more NumberSelector tests; removed the word 'Number' from subclass names
re-named classes, re-packaged classes, re-named packages; created new Selector, split pools to create a fallback for the NumberPoolHub
changes to NumberPool classes; tests on NumberPool classes
changes to NumberPool classes; tests on NumberPool classes2
some robust testing for NumberPoolHub, plus necessary modifications to other files
register and unregister functions now use Success and Failure conditions, save for one true thrown Exception
reduced the flow of certain algorithm chains, mainly by adding match statements and removing Exceptions
error message text
the same thing as the last commit, but with NumberPools rather than NumberPoolHub
various types of freeform registration
added sorting functions to Selectors to allow for hotswapping for number pools, especially to and from SpecificSelector; tests for NumberPoolHub
get numbers from an Array of indices, not the list of Numbers, in SimplePool
added a class to represent the four types of recovery kits
comments on Kit files
created package for supporting equipment classes; renamed /definition/ package
adding class for items that construct deployables, the router telepad included
added SimpleItem, classes for game Equipment that do not have internal state; re-organized ObjectDefinition files and the game objects they create to more naturally move around EquipmentSize and InventoryTile (size)
added SimpleItem tests (what they are...); removed example code that has hogging an import from AmmoBox
auto-sort for loading and fitting former inventory content back into the inventory
method of finding first available position to fit an certain size block in the inventory
changed CheckCollision return type to provide Try[List[Int]; fixed all existing references and tests
wrote comments for GridInventory methods; changed insertion param to be of form 'key -> element'
adding features to Player; created definitions for Player class; re-grouped ConstructionItem enumerations
initial work on implants; shuffled classes to better accommodate the new implant system, I think
wrote some tests for Implants; fixing Implant logic
wrote tests for Player class and made adjustments where necessary
basic initialization during Player creation based on exo-suit type
three wrapper Actors for the normal classes
comments on code
modified tests to improve accountability; added Resolver class to deal with multiple tasks that contribute to a larger task
changed Tools to an internal AmmoBox; don't have to def -= symbol if I def _= symbol
LivePlayerList -> MasterPlayerList, and added a Fit def for Player that checks holsters as well as inventory
example of packet conversion can be found with AmmoBoxDefinition
added conversion for ToolDefinition
added all Equipment packet conversion functionality; started working on Avatar-related conversions
continued effort towards a working Player packet conversion test
subclasses of Equipment apparently do not need to overide the type of the PacketConverter for generics
the logical conclusion: it doesn't matter what generics Packet returns so long as it returns an ObjectCreateConverter[] type
separated converters from definitions into files
changed some configuration information to final; added a bunch of converters, not fully tested though
changed function names in converters
replaced WSA packet-driven OCDM with Player object OCDM; upgrade to Float angular data
added partial support for LockerContainer; changed Equipment defaults to a common value
changes to AvatarConverter to include 5th slot; changes to VehicleConverter to make work; implementation of Fury in Vehicle->packet example in WSA
added a seat definition and renovated how the weapon controlled from a seat can be found
comments to files mainly; non-essential functionality to some classes, mostly access determination
moved converter tests to their own test file
write more of this test
added ServiceManager, as it is useful
pool range changes
added AvatarService, as it is useful
straightened out the GUID actors; added the static method for adding AmmoBoxes (to be converted later)
chnages to task resolution operation
complicated Task and TaskResolver logic is now possible; for example, you can schedule giving an AmmoBox a GUID, before giving a Tool a GUID, before placing the Tool in a player's hand; see Suppressor example in WSA
separated the Task trait and the TaskResolver actor into their own classes, moving the former RegistrationTaskResolver class into the /misc/ folder; deleted old backup copy of HubActor; modifications for PoC and supported tests
added better support and protection against putting things in the wrong hand when using inventories and the Player.Slot(n) function
GlobalDefinitions file; added laze pointer as an SItem, and gave it the command detonater management code; additionally fixed spelling of 'detonat[o]r' in Codec; early Terminal class work
updated tests to GlobalDefinitions entries; Terminal works but I don't like it
played with GUID pooling workflow, though to little avail; modifications to Terminal purchasing workflow, but still very volatile
modified NumberPoolActor and NumberPoolAccessor to make them more straightforward and not use akka ask as a go-between
fixed recovery options so that they do not cause more messages
trailing newline
InventoryItem (packet data) renamed InventoryItemData to remove ambiguity; Terminal functionality improved, allowing for swapping of exo-suits and the restoration of equipment positions
remove yet-unsupported Terminal messaging
made Terminal message more specific; can now put equipment into empty slot on exo-suit change; should report changes better
re-organized function calls to preserved items removed from holster slots on exo-suit change
moved predicate to the end of the list of params for recoverInventory so that repetition can be eliminated and a default value can be assigned
issues with making Tool; committing changes before revert of NumberPoolActor and NumberPoolAccessorActor to see if those broke it
a necessary evil, the reverting of these two Actors; subtask resolution does not work unless I do so, for now
restored the registration portion of tasking back to where it previously was (and better?)
NumberPoolActor and the ...AccessorActor are back to a comfortable place (and better?)
re-draw object in hand when switching exo-suits; build AmmoBoxes for Tool during Terminal-controlled creation, not Tool-controlled creation
order of task cleanup reversed to avoid index mismatch; added itsm to TerminalDefinition
common 5x5 AmmoBox size; added vehicle weapon ammo boxes to terminal
added error catching messages; stopped odd double-registering issue early
resolved issue where multiple subtasks started their main task multiple times; added checks that an object does not register a new GUID when it already has one
wrote unregistration code for Selling items back through the Terminal, repairing logic along the way; also, wrote a top-level GUID find for the Player for use of MoveItem
added framework for starting on Loadouts; managed issue with parent tasks starting before being summoned by child subtasks, often resulting in the complete skip of the execution phase of the parent; refactored registration tasks in WSA
modified Tool structure, exposing the AmmoSlot list a bit more
stuff stuff Tool ammo slot changes to default and comments
basic loadout framework for Infantry; need to integrate
initial work on FavoritesRequest packet
tests for FavoritesRequest packet
increased size of number pool for testing; wrote an algorithm that translates to and from the simplified version of objects stored in loadouts
refactored the tasking for adding Equipment and removing Equipment
updated the inventory so the Map of items does not have to rely on the GUID of an item being set before the item is inserted
untested routine for registering a player character; pushing all changes before making significant changes to the client init code structure
added to comments of BeginZoningMessage; transitioned player through and initial step of a more proper login GUID association
the current avatar is properly registered and there is something of a workflow with the messages and packets
corrected another bit of logic where inventories used to be indexed by object GUID in AvatarConverter; reversed unregister-remove task sequence such that GUID-less object is not allowed to exist in a stable object hierarchy
working Loadout loading
added identification functions to GlobalDefinitions; echo ObjectDelete back to client
accidentally got rid of something in WSA, but now restored; adding extra details to Terminal operations
separated Terminal into separate files and moved files into their own package under \objects\ for now; can delete loadouts now in WSA
better handling of ReloadMessage and MoveItemMessage
framework for better support involving dropping and picking up items
code comments and small modifications, such as the location and structure of the Terminal Equipment definitions
wrote comments in GlobalDefinitions; modified code so that a primitive form of player synchronization now occurs for future testing
added code to display already-dropped Equipment on the ground; limitations are explained; moved TaskResolver to more a global location, though I don't know if that helps
modified avatar unregister logic to ensure vacating player is deleted from other clients 'properly'
more comments; improved checks for MoveItemMessage; squared distances as necessary
subtle changes to login scripting so that test character is always offered
re-organizing the functions in WSA so that only the local objects separate the two message processing blocks
2017-05-30 18:46:01 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
"Tool" should {
|
|
|
|
|
"define" in {
|
|
|
|
|
val obj = ToolDefinition(1076)
|
|
|
|
|
obj.Name = "sample_weapon"
|
|
|
|
|
obj.Size = EquipmentSize.Rifle
|
2017-11-08 21:00:46 -05:00
|
|
|
obj.AmmoTypes += GlobalDefinitions.shotgun_shell
|
|
|
|
|
obj.AmmoTypes += GlobalDefinitions.shotgun_shell_AP
|
2018-01-17 07:51:42 -05:00
|
|
|
obj.FireModes += new FireModeDefinition
|
new stuff for player server classes; this update is not yet complete
adjusted sample Reload code and added insertion and removal functions for inventory
more work on player classes; moving PacketResolution to another branch
decoupling GUIDs from objects; introduced Ammo enum; minor adjustments to inventory system; different object/class hierarchy
transferring basic files from another branch
converted from get/set to accessor/mutator; resolved conflict from name changes
refactored basic components such as GUID and location/orientation
utilities kludge; more fields are given accessor and mutators; create package for vehicle-specific classes
GUID assurance, now with less object creation
test files; changes to how AmmoBox initializes
sorry, a little bit of everything, so much I forgot to write it all down
switched to a unified fire mode object internal to a Tool
importing a heavily modified version of my GUID manager objects from the laternate branch; not finished or tested yet
created a Trait to make Key private, sources and selectors to allow NumberPools to exist independent of a NumberSource; placed Ascending into a misc folder
swapped the Return methods for selectors so that the more primitive logic is the one that needs to be overriden; renamed a selector to be more common; had to update some copyright messages
fixed major logic issue with NumberPool; added comments to NumberSource files
NumberSource tests
simplified and made more consistent the method naming convention of NumberSources
comments for NumberSelectors
starting on NumberSelector tests
modifications that should better support number pools; added a pool hub that acts on a predefined source
adjustment to how Tools and FireModeDefintion keep track of ammunition and ammunition slots; I don't think this is sufficient
small additions to Tools; filled out simple tests for other three Selectors
added object lookup notation for the pool hub
added more NumberSelector tests; removed the word 'Number' from subclass names
re-named classes, re-packaged classes, re-named packages; created new Selector, split pools to create a fallback for the NumberPoolHub
changes to NumberPool classes; tests on NumberPool classes
changes to NumberPool classes; tests on NumberPool classes2
some robust testing for NumberPoolHub, plus necessary modifications to other files
register and unregister functions now use Success and Failure conditions, save for one true thrown Exception
reduced the flow of certain algorithm chains, mainly by adding match statements and removing Exceptions
error message text
the same thing as the last commit, but with NumberPools rather than NumberPoolHub
various types of freeform registration
added sorting functions to Selectors to allow for hotswapping for number pools, especially to and from SpecificSelector; tests for NumberPoolHub
get numbers from an Array of indices, not the list of Numbers, in SimplePool
added a class to represent the four types of recovery kits
comments on Kit files
created package for supporting equipment classes; renamed /definition/ package
adding class for items that construct deployables, the router telepad included
added SimpleItem, classes for game Equipment that do not have internal state; re-organized ObjectDefinition files and the game objects they create to more naturally move around EquipmentSize and InventoryTile (size)
added SimpleItem tests (what they are...); removed example code that has hogging an import from AmmoBox
auto-sort for loading and fitting former inventory content back into the inventory
method of finding first available position to fit an certain size block in the inventory
changed CheckCollision return type to provide Try[List[Int]; fixed all existing references and tests
wrote comments for GridInventory methods; changed insertion param to be of form 'key -> element'
adding features to Player; created definitions for Player class; re-grouped ConstructionItem enumerations
initial work on implants; shuffled classes to better accommodate the new implant system, I think
wrote some tests for Implants; fixing Implant logic
wrote tests for Player class and made adjustments where necessary
basic initialization during Player creation based on exo-suit type
three wrapper Actors for the normal classes
comments on code
modified tests to improve accountability; added Resolver class to deal with multiple tasks that contribute to a larger task
changed Tools to an internal AmmoBox; don't have to def -= symbol if I def _= symbol
LivePlayerList -> MasterPlayerList, and added a Fit def for Player that checks holsters as well as inventory
example of packet conversion can be found with AmmoBoxDefinition
added conversion for ToolDefinition
added all Equipment packet conversion functionality; started working on Avatar-related conversions
continued effort towards a working Player packet conversion test
subclasses of Equipment apparently do not need to overide the type of the PacketConverter for generics
the logical conclusion: it doesn't matter what generics Packet returns so long as it returns an ObjectCreateConverter[] type
separated converters from definitions into files
changed some configuration information to final; added a bunch of converters, not fully tested though
changed function names in converters
replaced WSA packet-driven OCDM with Player object OCDM; upgrade to Float angular data
added partial support for LockerContainer; changed Equipment defaults to a common value
changes to AvatarConverter to include 5th slot; changes to VehicleConverter to make work; implementation of Fury in Vehicle->packet example in WSA
added a seat definition and renovated how the weapon controlled from a seat can be found
comments to files mainly; non-essential functionality to some classes, mostly access determination
moved converter tests to their own test file
write more of this test
added ServiceManager, as it is useful
pool range changes
added AvatarService, as it is useful
straightened out the GUID actors; added the static method for adding AmmoBoxes (to be converted later)
chnages to task resolution operation
complicated Task and TaskResolver logic is now possible; for example, you can schedule giving an AmmoBox a GUID, before giving a Tool a GUID, before placing the Tool in a player's hand; see Suppressor example in WSA
separated the Task trait and the TaskResolver actor into their own classes, moving the former RegistrationTaskResolver class into the /misc/ folder; deleted old backup copy of HubActor; modifications for PoC and supported tests
added better support and protection against putting things in the wrong hand when using inventories and the Player.Slot(n) function
GlobalDefinitions file; added laze pointer as an SItem, and gave it the command detonater management code; additionally fixed spelling of 'detonat[o]r' in Codec; early Terminal class work
updated tests to GlobalDefinitions entries; Terminal works but I don't like it
played with GUID pooling workflow, though to little avail; modifications to Terminal purchasing workflow, but still very volatile
modified NumberPoolActor and NumberPoolAccessor to make them more straightforward and not use akka ask as a go-between
fixed recovery options so that they do not cause more messages
trailing newline
InventoryItem (packet data) renamed InventoryItemData to remove ambiguity; Terminal functionality improved, allowing for swapping of exo-suits and the restoration of equipment positions
remove yet-unsupported Terminal messaging
made Terminal message more specific; can now put equipment into empty slot on exo-suit change; should report changes better
re-organized function calls to preserved items removed from holster slots on exo-suit change
moved predicate to the end of the list of params for recoverInventory so that repetition can be eliminated and a default value can be assigned
issues with making Tool; committing changes before revert of NumberPoolActor and NumberPoolAccessorActor to see if those broke it
a necessary evil, the reverting of these two Actors; subtask resolution does not work unless I do so, for now
restored the registration portion of tasking back to where it previously was (and better?)
NumberPoolActor and the ...AccessorActor are back to a comfortable place (and better?)
re-draw object in hand when switching exo-suits; build AmmoBoxes for Tool during Terminal-controlled creation, not Tool-controlled creation
order of task cleanup reversed to avoid index mismatch; added itsm to TerminalDefinition
common 5x5 AmmoBox size; added vehicle weapon ammo boxes to terminal
added error catching messages; stopped odd double-registering issue early
resolved issue where multiple subtasks started their main task multiple times; added checks that an object does not register a new GUID when it already has one
wrote unregistration code for Selling items back through the Terminal, repairing logic along the way; also, wrote a top-level GUID find for the Player for use of MoveItem
added framework for starting on Loadouts; managed issue with parent tasks starting before being summoned by child subtasks, often resulting in the complete skip of the execution phase of the parent; refactored registration tasks in WSA
modified Tool structure, exposing the AmmoSlot list a bit more
stuff stuff Tool ammo slot changes to default and comments
basic loadout framework for Infantry; need to integrate
initial work on FavoritesRequest packet
tests for FavoritesRequest packet
increased size of number pool for testing; wrote an algorithm that translates to and from the simplified version of objects stored in loadouts
refactored the tasking for adding Equipment and removing Equipment
updated the inventory so the Map of items does not have to rely on the GUID of an item being set before the item is inserted
untested routine for registering a player character; pushing all changes before making significant changes to the client init code structure
added to comments of BeginZoningMessage; transitioned player through and initial step of a more proper login GUID association
the current avatar is properly registered and there is something of a workflow with the messages and packets
corrected another bit of logic where inventories used to be indexed by object GUID in AvatarConverter; reversed unregister-remove task sequence such that GUID-less object is not allowed to exist in a stable object hierarchy
working Loadout loading
added identification functions to GlobalDefinitions; echo ObjectDelete back to client
accidentally got rid of something in WSA, but now restored; adding extra details to Terminal operations
separated Terminal into separate files and moved files into their own package under \objects\ for now; can delete loadouts now in WSA
better handling of ReloadMessage and MoveItemMessage
framework for better support involving dropping and picking up items
code comments and small modifications, such as the location and structure of the Terminal Equipment definitions
wrote comments in GlobalDefinitions; modified code so that a primitive form of player synchronization now occurs for future testing
added code to display already-dropped Equipment on the ground; limitations are explained; moved TaskResolver to more a global location, though I don't know if that helps
modified avatar unregister logic to ensure vacating player is deleted from other clients 'properly'
more comments; improved checks for MoveItemMessage; squared distances as necessary
subtle changes to login scripting so that test character is always offered
re-organizing the functions in WSA so that only the local objects separate the two message processing blocks
2017-05-30 18:46:01 -04:00
|
|
|
obj.FireModes.head.AmmoTypeIndices += 0
|
|
|
|
|
obj.FireModes.head.AmmoTypeIndices += 1
|
|
|
|
|
obj.FireModes.head.AmmoSlotIndex = 0
|
|
|
|
|
obj.FireModes.head.Magazine = 18
|
2018-01-17 07:51:42 -05:00
|
|
|
obj.FireModes += new FireModeDefinition
|
new stuff for player server classes; this update is not yet complete
adjusted sample Reload code and added insertion and removal functions for inventory
more work on player classes; moving PacketResolution to another branch
decoupling GUIDs from objects; introduced Ammo enum; minor adjustments to inventory system; different object/class hierarchy
transferring basic files from another branch
converted from get/set to accessor/mutator; resolved conflict from name changes
refactored basic components such as GUID and location/orientation
utilities kludge; more fields are given accessor and mutators; create package for vehicle-specific classes
GUID assurance, now with less object creation
test files; changes to how AmmoBox initializes
sorry, a little bit of everything, so much I forgot to write it all down
switched to a unified fire mode object internal to a Tool
importing a heavily modified version of my GUID manager objects from the laternate branch; not finished or tested yet
created a Trait to make Key private, sources and selectors to allow NumberPools to exist independent of a NumberSource; placed Ascending into a misc folder
swapped the Return methods for selectors so that the more primitive logic is the one that needs to be overriden; renamed a selector to be more common; had to update some copyright messages
fixed major logic issue with NumberPool; added comments to NumberSource files
NumberSource tests
simplified and made more consistent the method naming convention of NumberSources
comments for NumberSelectors
starting on NumberSelector tests
modifications that should better support number pools; added a pool hub that acts on a predefined source
adjustment to how Tools and FireModeDefintion keep track of ammunition and ammunition slots; I don't think this is sufficient
small additions to Tools; filled out simple tests for other three Selectors
added object lookup notation for the pool hub
added more NumberSelector tests; removed the word 'Number' from subclass names
re-named classes, re-packaged classes, re-named packages; created new Selector, split pools to create a fallback for the NumberPoolHub
changes to NumberPool classes; tests on NumberPool classes
changes to NumberPool classes; tests on NumberPool classes2
some robust testing for NumberPoolHub, plus necessary modifications to other files
register and unregister functions now use Success and Failure conditions, save for one true thrown Exception
reduced the flow of certain algorithm chains, mainly by adding match statements and removing Exceptions
error message text
the same thing as the last commit, but with NumberPools rather than NumberPoolHub
various types of freeform registration
added sorting functions to Selectors to allow for hotswapping for number pools, especially to and from SpecificSelector; tests for NumberPoolHub
get numbers from an Array of indices, not the list of Numbers, in SimplePool
added a class to represent the four types of recovery kits
comments on Kit files
created package for supporting equipment classes; renamed /definition/ package
adding class for items that construct deployables, the router telepad included
added SimpleItem, classes for game Equipment that do not have internal state; re-organized ObjectDefinition files and the game objects they create to more naturally move around EquipmentSize and InventoryTile (size)
added SimpleItem tests (what they are...); removed example code that has hogging an import from AmmoBox
auto-sort for loading and fitting former inventory content back into the inventory
method of finding first available position to fit an certain size block in the inventory
changed CheckCollision return type to provide Try[List[Int]; fixed all existing references and tests
wrote comments for GridInventory methods; changed insertion param to be of form 'key -> element'
adding features to Player; created definitions for Player class; re-grouped ConstructionItem enumerations
initial work on implants; shuffled classes to better accommodate the new implant system, I think
wrote some tests for Implants; fixing Implant logic
wrote tests for Player class and made adjustments where necessary
basic initialization during Player creation based on exo-suit type
three wrapper Actors for the normal classes
comments on code
modified tests to improve accountability; added Resolver class to deal with multiple tasks that contribute to a larger task
changed Tools to an internal AmmoBox; don't have to def -= symbol if I def _= symbol
LivePlayerList -> MasterPlayerList, and added a Fit def for Player that checks holsters as well as inventory
example of packet conversion can be found with AmmoBoxDefinition
added conversion for ToolDefinition
added all Equipment packet conversion functionality; started working on Avatar-related conversions
continued effort towards a working Player packet conversion test
subclasses of Equipment apparently do not need to overide the type of the PacketConverter for generics
the logical conclusion: it doesn't matter what generics Packet returns so long as it returns an ObjectCreateConverter[] type
separated converters from definitions into files
changed some configuration information to final; added a bunch of converters, not fully tested though
changed function names in converters
replaced WSA packet-driven OCDM with Player object OCDM; upgrade to Float angular data
added partial support for LockerContainer; changed Equipment defaults to a common value
changes to AvatarConverter to include 5th slot; changes to VehicleConverter to make work; implementation of Fury in Vehicle->packet example in WSA
added a seat definition and renovated how the weapon controlled from a seat can be found
comments to files mainly; non-essential functionality to some classes, mostly access determination
moved converter tests to their own test file
write more of this test
added ServiceManager, as it is useful
pool range changes
added AvatarService, as it is useful
straightened out the GUID actors; added the static method for adding AmmoBoxes (to be converted later)
chnages to task resolution operation
complicated Task and TaskResolver logic is now possible; for example, you can schedule giving an AmmoBox a GUID, before giving a Tool a GUID, before placing the Tool in a player's hand; see Suppressor example in WSA
separated the Task trait and the TaskResolver actor into their own classes, moving the former RegistrationTaskResolver class into the /misc/ folder; deleted old backup copy of HubActor; modifications for PoC and supported tests
added better support and protection against putting things in the wrong hand when using inventories and the Player.Slot(n) function
GlobalDefinitions file; added laze pointer as an SItem, and gave it the command detonater management code; additionally fixed spelling of 'detonat[o]r' in Codec; early Terminal class work
updated tests to GlobalDefinitions entries; Terminal works but I don't like it
played with GUID pooling workflow, though to little avail; modifications to Terminal purchasing workflow, but still very volatile
modified NumberPoolActor and NumberPoolAccessor to make them more straightforward and not use akka ask as a go-between
fixed recovery options so that they do not cause more messages
trailing newline
InventoryItem (packet data) renamed InventoryItemData to remove ambiguity; Terminal functionality improved, allowing for swapping of exo-suits and the restoration of equipment positions
remove yet-unsupported Terminal messaging
made Terminal message more specific; can now put equipment into empty slot on exo-suit change; should report changes better
re-organized function calls to preserved items removed from holster slots on exo-suit change
moved predicate to the end of the list of params for recoverInventory so that repetition can be eliminated and a default value can be assigned
issues with making Tool; committing changes before revert of NumberPoolActor and NumberPoolAccessorActor to see if those broke it
a necessary evil, the reverting of these two Actors; subtask resolution does not work unless I do so, for now
restored the registration portion of tasking back to where it previously was (and better?)
NumberPoolActor and the ...AccessorActor are back to a comfortable place (and better?)
re-draw object in hand when switching exo-suits; build AmmoBoxes for Tool during Terminal-controlled creation, not Tool-controlled creation
order of task cleanup reversed to avoid index mismatch; added itsm to TerminalDefinition
common 5x5 AmmoBox size; added vehicle weapon ammo boxes to terminal
added error catching messages; stopped odd double-registering issue early
resolved issue where multiple subtasks started their main task multiple times; added checks that an object does not register a new GUID when it already has one
wrote unregistration code for Selling items back through the Terminal, repairing logic along the way; also, wrote a top-level GUID find for the Player for use of MoveItem
added framework for starting on Loadouts; managed issue with parent tasks starting before being summoned by child subtasks, often resulting in the complete skip of the execution phase of the parent; refactored registration tasks in WSA
modified Tool structure, exposing the AmmoSlot list a bit more
stuff stuff Tool ammo slot changes to default and comments
basic loadout framework for Infantry; need to integrate
initial work on FavoritesRequest packet
tests for FavoritesRequest packet
increased size of number pool for testing; wrote an algorithm that translates to and from the simplified version of objects stored in loadouts
refactored the tasking for adding Equipment and removing Equipment
updated the inventory so the Map of items does not have to rely on the GUID of an item being set before the item is inserted
untested routine for registering a player character; pushing all changes before making significant changes to the client init code structure
added to comments of BeginZoningMessage; transitioned player through and initial step of a more proper login GUID association
the current avatar is properly registered and there is something of a workflow with the messages and packets
corrected another bit of logic where inventories used to be indexed by object GUID in AvatarConverter; reversed unregister-remove task sequence such that GUID-less object is not allowed to exist in a stable object hierarchy
working Loadout loading
added identification functions to GlobalDefinitions; echo ObjectDelete back to client
accidentally got rid of something in WSA, but now restored; adding extra details to Terminal operations
separated Terminal into separate files and moved files into their own package under \objects\ for now; can delete loadouts now in WSA
better handling of ReloadMessage and MoveItemMessage
framework for better support involving dropping and picking up items
code comments and small modifications, such as the location and structure of the Terminal Equipment definitions
wrote comments in GlobalDefinitions; modified code so that a primitive form of player synchronization now occurs for future testing
added code to display already-dropped Equipment on the ground; limitations are explained; moved TaskResolver to more a global location, though I don't know if that helps
modified avatar unregister logic to ensure vacating player is deleted from other clients 'properly'
more comments; improved checks for MoveItemMessage; squared distances as necessary
subtle changes to login scripting so that test character is always offered
re-organizing the functions in WSA so that only the local objects separate the two message processing blocks
2017-05-30 18:46:01 -04:00
|
|
|
obj.FireModes(1).AmmoTypeIndices += 0
|
|
|
|
|
obj.FireModes(1).AmmoTypeIndices += 1
|
|
|
|
|
obj.FireModes(1).AmmoSlotIndex = 1
|
|
|
|
|
obj.FireModes(1).Chamber = 3
|
|
|
|
|
obj.FireModes(1).Magazine = 18
|
|
|
|
|
obj.Tile = InventoryTile.Tile93
|
|
|
|
|
obj.ObjectId mustEqual 1076
|
2017-11-08 21:00:46 -05:00
|
|
|
|
new stuff for player server classes; this update is not yet complete
adjusted sample Reload code and added insertion and removal functions for inventory
more work on player classes; moving PacketResolution to another branch
decoupling GUIDs from objects; introduced Ammo enum; minor adjustments to inventory system; different object/class hierarchy
transferring basic files from another branch
converted from get/set to accessor/mutator; resolved conflict from name changes
refactored basic components such as GUID and location/orientation
utilities kludge; more fields are given accessor and mutators; create package for vehicle-specific classes
GUID assurance, now with less object creation
test files; changes to how AmmoBox initializes
sorry, a little bit of everything, so much I forgot to write it all down
switched to a unified fire mode object internal to a Tool
importing a heavily modified version of my GUID manager objects from the laternate branch; not finished or tested yet
created a Trait to make Key private, sources and selectors to allow NumberPools to exist independent of a NumberSource; placed Ascending into a misc folder
swapped the Return methods for selectors so that the more primitive logic is the one that needs to be overriden; renamed a selector to be more common; had to update some copyright messages
fixed major logic issue with NumberPool; added comments to NumberSource files
NumberSource tests
simplified and made more consistent the method naming convention of NumberSources
comments for NumberSelectors
starting on NumberSelector tests
modifications that should better support number pools; added a pool hub that acts on a predefined source
adjustment to how Tools and FireModeDefintion keep track of ammunition and ammunition slots; I don't think this is sufficient
small additions to Tools; filled out simple tests for other three Selectors
added object lookup notation for the pool hub
added more NumberSelector tests; removed the word 'Number' from subclass names
re-named classes, re-packaged classes, re-named packages; created new Selector, split pools to create a fallback for the NumberPoolHub
changes to NumberPool classes; tests on NumberPool classes
changes to NumberPool classes; tests on NumberPool classes2
some robust testing for NumberPoolHub, plus necessary modifications to other files
register and unregister functions now use Success and Failure conditions, save for one true thrown Exception
reduced the flow of certain algorithm chains, mainly by adding match statements and removing Exceptions
error message text
the same thing as the last commit, but with NumberPools rather than NumberPoolHub
various types of freeform registration
added sorting functions to Selectors to allow for hotswapping for number pools, especially to and from SpecificSelector; tests for NumberPoolHub
get numbers from an Array of indices, not the list of Numbers, in SimplePool
added a class to represent the four types of recovery kits
comments on Kit files
created package for supporting equipment classes; renamed /definition/ package
adding class for items that construct deployables, the router telepad included
added SimpleItem, classes for game Equipment that do not have internal state; re-organized ObjectDefinition files and the game objects they create to more naturally move around EquipmentSize and InventoryTile (size)
added SimpleItem tests (what they are...); removed example code that has hogging an import from AmmoBox
auto-sort for loading and fitting former inventory content back into the inventory
method of finding first available position to fit an certain size block in the inventory
changed CheckCollision return type to provide Try[List[Int]; fixed all existing references and tests
wrote comments for GridInventory methods; changed insertion param to be of form 'key -> element'
adding features to Player; created definitions for Player class; re-grouped ConstructionItem enumerations
initial work on implants; shuffled classes to better accommodate the new implant system, I think
wrote some tests for Implants; fixing Implant logic
wrote tests for Player class and made adjustments where necessary
basic initialization during Player creation based on exo-suit type
three wrapper Actors for the normal classes
comments on code
modified tests to improve accountability; added Resolver class to deal with multiple tasks that contribute to a larger task
changed Tools to an internal AmmoBox; don't have to def -= symbol if I def _= symbol
LivePlayerList -> MasterPlayerList, and added a Fit def for Player that checks holsters as well as inventory
example of packet conversion can be found with AmmoBoxDefinition
added conversion for ToolDefinition
added all Equipment packet conversion functionality; started working on Avatar-related conversions
continued effort towards a working Player packet conversion test
subclasses of Equipment apparently do not need to overide the type of the PacketConverter for generics
the logical conclusion: it doesn't matter what generics Packet returns so long as it returns an ObjectCreateConverter[] type
separated converters from definitions into files
changed some configuration information to final; added a bunch of converters, not fully tested though
changed function names in converters
replaced WSA packet-driven OCDM with Player object OCDM; upgrade to Float angular data
added partial support for LockerContainer; changed Equipment defaults to a common value
changes to AvatarConverter to include 5th slot; changes to VehicleConverter to make work; implementation of Fury in Vehicle->packet example in WSA
added a seat definition and renovated how the weapon controlled from a seat can be found
comments to files mainly; non-essential functionality to some classes, mostly access determination
moved converter tests to their own test file
write more of this test
added ServiceManager, as it is useful
pool range changes
added AvatarService, as it is useful
straightened out the GUID actors; added the static method for adding AmmoBoxes (to be converted later)
chnages to task resolution operation
complicated Task and TaskResolver logic is now possible; for example, you can schedule giving an AmmoBox a GUID, before giving a Tool a GUID, before placing the Tool in a player's hand; see Suppressor example in WSA
separated the Task trait and the TaskResolver actor into their own classes, moving the former RegistrationTaskResolver class into the /misc/ folder; deleted old backup copy of HubActor; modifications for PoC and supported tests
added better support and protection against putting things in the wrong hand when using inventories and the Player.Slot(n) function
GlobalDefinitions file; added laze pointer as an SItem, and gave it the command detonater management code; additionally fixed spelling of 'detonat[o]r' in Codec; early Terminal class work
updated tests to GlobalDefinitions entries; Terminal works but I don't like it
played with GUID pooling workflow, though to little avail; modifications to Terminal purchasing workflow, but still very volatile
modified NumberPoolActor and NumberPoolAccessor to make them more straightforward and not use akka ask as a go-between
fixed recovery options so that they do not cause more messages
trailing newline
InventoryItem (packet data) renamed InventoryItemData to remove ambiguity; Terminal functionality improved, allowing for swapping of exo-suits and the restoration of equipment positions
remove yet-unsupported Terminal messaging
made Terminal message more specific; can now put equipment into empty slot on exo-suit change; should report changes better
re-organized function calls to preserved items removed from holster slots on exo-suit change
moved predicate to the end of the list of params for recoverInventory so that repetition can be eliminated and a default value can be assigned
issues with making Tool; committing changes before revert of NumberPoolActor and NumberPoolAccessorActor to see if those broke it
a necessary evil, the reverting of these two Actors; subtask resolution does not work unless I do so, for now
restored the registration portion of tasking back to where it previously was (and better?)
NumberPoolActor and the ...AccessorActor are back to a comfortable place (and better?)
re-draw object in hand when switching exo-suits; build AmmoBoxes for Tool during Terminal-controlled creation, not Tool-controlled creation
order of task cleanup reversed to avoid index mismatch; added itsm to TerminalDefinition
common 5x5 AmmoBox size; added vehicle weapon ammo boxes to terminal
added error catching messages; stopped odd double-registering issue early
resolved issue where multiple subtasks started their main task multiple times; added checks that an object does not register a new GUID when it already has one
wrote unregistration code for Selling items back through the Terminal, repairing logic along the way; also, wrote a top-level GUID find for the Player for use of MoveItem
added framework for starting on Loadouts; managed issue with parent tasks starting before being summoned by child subtasks, often resulting in the complete skip of the execution phase of the parent; refactored registration tasks in WSA
modified Tool structure, exposing the AmmoSlot list a bit more
stuff stuff Tool ammo slot changes to default and comments
basic loadout framework for Infantry; need to integrate
initial work on FavoritesRequest packet
tests for FavoritesRequest packet
increased size of number pool for testing; wrote an algorithm that translates to and from the simplified version of objects stored in loadouts
refactored the tasking for adding Equipment and removing Equipment
updated the inventory so the Map of items does not have to rely on the GUID of an item being set before the item is inserted
untested routine for registering a player character; pushing all changes before making significant changes to the client init code structure
added to comments of BeginZoningMessage; transitioned player through and initial step of a more proper login GUID association
the current avatar is properly registered and there is something of a workflow with the messages and packets
corrected another bit of logic where inventories used to be indexed by object GUID in AvatarConverter; reversed unregister-remove task sequence such that GUID-less object is not allowed to exist in a stable object hierarchy
working Loadout loading
added identification functions to GlobalDefinitions; echo ObjectDelete back to client
accidentally got rid of something in WSA, but now restored; adding extra details to Terminal operations
separated Terminal into separate files and moved files into their own package under \objects\ for now; can delete loadouts now in WSA
better handling of ReloadMessage and MoveItemMessage
framework for better support involving dropping and picking up items
code comments and small modifications, such as the location and structure of the Terminal Equipment definitions
wrote comments in GlobalDefinitions; modified code so that a primitive form of player synchronization now occurs for future testing
added code to display already-dropped Equipment on the ground; limitations are explained; moved TaskResolver to more a global location, though I don't know if that helps
modified avatar unregister logic to ensure vacating player is deleted from other clients 'properly'
more comments; improved checks for MoveItemMessage; squared distances as necessary
subtle changes to login scripting so that test character is always offered
re-organizing the functions in WSA so that only the local objects separate the two message processing blocks
2017-05-30 18:46:01 -04:00
|
|
|
obj.Name mustEqual "sample_weapon"
|
2017-11-08 21:00:46 -05:00
|
|
|
obj.AmmoTypes.head mustEqual GlobalDefinitions.shotgun_shell
|
|
|
|
|
obj.AmmoTypes(1) mustEqual GlobalDefinitions.shotgun_shell_AP
|
new stuff for player server classes; this update is not yet complete
adjusted sample Reload code and added insertion and removal functions for inventory
more work on player classes; moving PacketResolution to another branch
decoupling GUIDs from objects; introduced Ammo enum; minor adjustments to inventory system; different object/class hierarchy
transferring basic files from another branch
converted from get/set to accessor/mutator; resolved conflict from name changes
refactored basic components such as GUID and location/orientation
utilities kludge; more fields are given accessor and mutators; create package for vehicle-specific classes
GUID assurance, now with less object creation
test files; changes to how AmmoBox initializes
sorry, a little bit of everything, so much I forgot to write it all down
switched to a unified fire mode object internal to a Tool
importing a heavily modified version of my GUID manager objects from the laternate branch; not finished or tested yet
created a Trait to make Key private, sources and selectors to allow NumberPools to exist independent of a NumberSource; placed Ascending into a misc folder
swapped the Return methods for selectors so that the more primitive logic is the one that needs to be overriden; renamed a selector to be more common; had to update some copyright messages
fixed major logic issue with NumberPool; added comments to NumberSource files
NumberSource tests
simplified and made more consistent the method naming convention of NumberSources
comments for NumberSelectors
starting on NumberSelector tests
modifications that should better support number pools; added a pool hub that acts on a predefined source
adjustment to how Tools and FireModeDefintion keep track of ammunition and ammunition slots; I don't think this is sufficient
small additions to Tools; filled out simple tests for other three Selectors
added object lookup notation for the pool hub
added more NumberSelector tests; removed the word 'Number' from subclass names
re-named classes, re-packaged classes, re-named packages; created new Selector, split pools to create a fallback for the NumberPoolHub
changes to NumberPool classes; tests on NumberPool classes
changes to NumberPool classes; tests on NumberPool classes2
some robust testing for NumberPoolHub, plus necessary modifications to other files
register and unregister functions now use Success and Failure conditions, save for one true thrown Exception
reduced the flow of certain algorithm chains, mainly by adding match statements and removing Exceptions
error message text
the same thing as the last commit, but with NumberPools rather than NumberPoolHub
various types of freeform registration
added sorting functions to Selectors to allow for hotswapping for number pools, especially to and from SpecificSelector; tests for NumberPoolHub
get numbers from an Array of indices, not the list of Numbers, in SimplePool
added a class to represent the four types of recovery kits
comments on Kit files
created package for supporting equipment classes; renamed /definition/ package
adding class for items that construct deployables, the router telepad included
added SimpleItem, classes for game Equipment that do not have internal state; re-organized ObjectDefinition files and the game objects they create to more naturally move around EquipmentSize and InventoryTile (size)
added SimpleItem tests (what they are...); removed example code that has hogging an import from AmmoBox
auto-sort for loading and fitting former inventory content back into the inventory
method of finding first available position to fit an certain size block in the inventory
changed CheckCollision return type to provide Try[List[Int]; fixed all existing references and tests
wrote comments for GridInventory methods; changed insertion param to be of form 'key -> element'
adding features to Player; created definitions for Player class; re-grouped ConstructionItem enumerations
initial work on implants; shuffled classes to better accommodate the new implant system, I think
wrote some tests for Implants; fixing Implant logic
wrote tests for Player class and made adjustments where necessary
basic initialization during Player creation based on exo-suit type
three wrapper Actors for the normal classes
comments on code
modified tests to improve accountability; added Resolver class to deal with multiple tasks that contribute to a larger task
changed Tools to an internal AmmoBox; don't have to def -= symbol if I def _= symbol
LivePlayerList -> MasterPlayerList, and added a Fit def for Player that checks holsters as well as inventory
example of packet conversion can be found with AmmoBoxDefinition
added conversion for ToolDefinition
added all Equipment packet conversion functionality; started working on Avatar-related conversions
continued effort towards a working Player packet conversion test
subclasses of Equipment apparently do not need to overide the type of the PacketConverter for generics
the logical conclusion: it doesn't matter what generics Packet returns so long as it returns an ObjectCreateConverter[] type
separated converters from definitions into files
changed some configuration information to final; added a bunch of converters, not fully tested though
changed function names in converters
replaced WSA packet-driven OCDM with Player object OCDM; upgrade to Float angular data
added partial support for LockerContainer; changed Equipment defaults to a common value
changes to AvatarConverter to include 5th slot; changes to VehicleConverter to make work; implementation of Fury in Vehicle->packet example in WSA
added a seat definition and renovated how the weapon controlled from a seat can be found
comments to files mainly; non-essential functionality to some classes, mostly access determination
moved converter tests to their own test file
write more of this test
added ServiceManager, as it is useful
pool range changes
added AvatarService, as it is useful
straightened out the GUID actors; added the static method for adding AmmoBoxes (to be converted later)
chnages to task resolution operation
complicated Task and TaskResolver logic is now possible; for example, you can schedule giving an AmmoBox a GUID, before giving a Tool a GUID, before placing the Tool in a player's hand; see Suppressor example in WSA
separated the Task trait and the TaskResolver actor into their own classes, moving the former RegistrationTaskResolver class into the /misc/ folder; deleted old backup copy of HubActor; modifications for PoC and supported tests
added better support and protection against putting things in the wrong hand when using inventories and the Player.Slot(n) function
GlobalDefinitions file; added laze pointer as an SItem, and gave it the command detonater management code; additionally fixed spelling of 'detonat[o]r' in Codec; early Terminal class work
updated tests to GlobalDefinitions entries; Terminal works but I don't like it
played with GUID pooling workflow, though to little avail; modifications to Terminal purchasing workflow, but still very volatile
modified NumberPoolActor and NumberPoolAccessor to make them more straightforward and not use akka ask as a go-between
fixed recovery options so that they do not cause more messages
trailing newline
InventoryItem (packet data) renamed InventoryItemData to remove ambiguity; Terminal functionality improved, allowing for swapping of exo-suits and the restoration of equipment positions
remove yet-unsupported Terminal messaging
made Terminal message more specific; can now put equipment into empty slot on exo-suit change; should report changes better
re-organized function calls to preserved items removed from holster slots on exo-suit change
moved predicate to the end of the list of params for recoverInventory so that repetition can be eliminated and a default value can be assigned
issues with making Tool; committing changes before revert of NumberPoolActor and NumberPoolAccessorActor to see if those broke it
a necessary evil, the reverting of these two Actors; subtask resolution does not work unless I do so, for now
restored the registration portion of tasking back to where it previously was (and better?)
NumberPoolActor and the ...AccessorActor are back to a comfortable place (and better?)
re-draw object in hand when switching exo-suits; build AmmoBoxes for Tool during Terminal-controlled creation, not Tool-controlled creation
order of task cleanup reversed to avoid index mismatch; added itsm to TerminalDefinition
common 5x5 AmmoBox size; added vehicle weapon ammo boxes to terminal
added error catching messages; stopped odd double-registering issue early
resolved issue where multiple subtasks started their main task multiple times; added checks that an object does not register a new GUID when it already has one
wrote unregistration code for Selling items back through the Terminal, repairing logic along the way; also, wrote a top-level GUID find for the Player for use of MoveItem
added framework for starting on Loadouts; managed issue with parent tasks starting before being summoned by child subtasks, often resulting in the complete skip of the execution phase of the parent; refactored registration tasks in WSA
modified Tool structure, exposing the AmmoSlot list a bit more
stuff stuff Tool ammo slot changes to default and comments
basic loadout framework for Infantry; need to integrate
initial work on FavoritesRequest packet
tests for FavoritesRequest packet
increased size of number pool for testing; wrote an algorithm that translates to and from the simplified version of objects stored in loadouts
refactored the tasking for adding Equipment and removing Equipment
updated the inventory so the Map of items does not have to rely on the GUID of an item being set before the item is inserted
untested routine for registering a player character; pushing all changes before making significant changes to the client init code structure
added to comments of BeginZoningMessage; transitioned player through and initial step of a more proper login GUID association
the current avatar is properly registered and there is something of a workflow with the messages and packets
corrected another bit of logic where inventories used to be indexed by object GUID in AvatarConverter; reversed unregister-remove task sequence such that GUID-less object is not allowed to exist in a stable object hierarchy
working Loadout loading
added identification functions to GlobalDefinitions; echo ObjectDelete back to client
accidentally got rid of something in WSA, but now restored; adding extra details to Terminal operations
separated Terminal into separate files and moved files into their own package under \objects\ for now; can delete loadouts now in WSA
better handling of ReloadMessage and MoveItemMessage
framework for better support involving dropping and picking up items
code comments and small modifications, such as the location and structure of the Terminal Equipment definitions
wrote comments in GlobalDefinitions; modified code so that a primitive form of player synchronization now occurs for future testing
added code to display already-dropped Equipment on the ground; limitations are explained; moved TaskResolver to more a global location, though I don't know if that helps
modified avatar unregister logic to ensure vacating player is deleted from other clients 'properly'
more comments; improved checks for MoveItemMessage; squared distances as necessary
subtle changes to login scripting so that test character is always offered
re-organizing the functions in WSA so that only the local objects separate the two message processing blocks
2017-05-30 18:46:01 -04:00
|
|
|
obj.FireModes.head.AmmoTypeIndices.head mustEqual 0
|
|
|
|
|
obj.FireModes.head.AmmoTypeIndices(1) mustEqual 1
|
|
|
|
|
obj.FireModes.head.AmmoSlotIndex mustEqual 0
|
|
|
|
|
obj.FireModes.head.Chamber mustEqual 1
|
|
|
|
|
obj.FireModes.head.Magazine mustEqual 18
|
|
|
|
|
obj.FireModes(1).AmmoTypeIndices.head mustEqual 0
|
|
|
|
|
obj.FireModes(1).AmmoTypeIndices(1) mustEqual 1
|
|
|
|
|
obj.FireModes(1).AmmoSlotIndex mustEqual 1
|
|
|
|
|
obj.FireModes(1).Chamber mustEqual 3
|
|
|
|
|
obj.FireModes(1).Magazine mustEqual 18
|
2017-11-08 21:00:46 -05:00
|
|
|
obj.Tile.Width mustEqual InventoryTile.Tile93.Width
|
|
|
|
|
obj.Tile.Height mustEqual InventoryTile.Tile93.Height
|
new stuff for player server classes; this update is not yet complete
adjusted sample Reload code and added insertion and removal functions for inventory
more work on player classes; moving PacketResolution to another branch
decoupling GUIDs from objects; introduced Ammo enum; minor adjustments to inventory system; different object/class hierarchy
transferring basic files from another branch
converted from get/set to accessor/mutator; resolved conflict from name changes
refactored basic components such as GUID and location/orientation
utilities kludge; more fields are given accessor and mutators; create package for vehicle-specific classes
GUID assurance, now with less object creation
test files; changes to how AmmoBox initializes
sorry, a little bit of everything, so much I forgot to write it all down
switched to a unified fire mode object internal to a Tool
importing a heavily modified version of my GUID manager objects from the laternate branch; not finished or tested yet
created a Trait to make Key private, sources and selectors to allow NumberPools to exist independent of a NumberSource; placed Ascending into a misc folder
swapped the Return methods for selectors so that the more primitive logic is the one that needs to be overriden; renamed a selector to be more common; had to update some copyright messages
fixed major logic issue with NumberPool; added comments to NumberSource files
NumberSource tests
simplified and made more consistent the method naming convention of NumberSources
comments for NumberSelectors
starting on NumberSelector tests
modifications that should better support number pools; added a pool hub that acts on a predefined source
adjustment to how Tools and FireModeDefintion keep track of ammunition and ammunition slots; I don't think this is sufficient
small additions to Tools; filled out simple tests for other three Selectors
added object lookup notation for the pool hub
added more NumberSelector tests; removed the word 'Number' from subclass names
re-named classes, re-packaged classes, re-named packages; created new Selector, split pools to create a fallback for the NumberPoolHub
changes to NumberPool classes; tests on NumberPool classes
changes to NumberPool classes; tests on NumberPool classes2
some robust testing for NumberPoolHub, plus necessary modifications to other files
register and unregister functions now use Success and Failure conditions, save for one true thrown Exception
reduced the flow of certain algorithm chains, mainly by adding match statements and removing Exceptions
error message text
the same thing as the last commit, but with NumberPools rather than NumberPoolHub
various types of freeform registration
added sorting functions to Selectors to allow for hotswapping for number pools, especially to and from SpecificSelector; tests for NumberPoolHub
get numbers from an Array of indices, not the list of Numbers, in SimplePool
added a class to represent the four types of recovery kits
comments on Kit files
created package for supporting equipment classes; renamed /definition/ package
adding class for items that construct deployables, the router telepad included
added SimpleItem, classes for game Equipment that do not have internal state; re-organized ObjectDefinition files and the game objects they create to more naturally move around EquipmentSize and InventoryTile (size)
added SimpleItem tests (what they are...); removed example code that has hogging an import from AmmoBox
auto-sort for loading and fitting former inventory content back into the inventory
method of finding first available position to fit an certain size block in the inventory
changed CheckCollision return type to provide Try[List[Int]; fixed all existing references and tests
wrote comments for GridInventory methods; changed insertion param to be of form 'key -> element'
adding features to Player; created definitions for Player class; re-grouped ConstructionItem enumerations
initial work on implants; shuffled classes to better accommodate the new implant system, I think
wrote some tests for Implants; fixing Implant logic
wrote tests for Player class and made adjustments where necessary
basic initialization during Player creation based on exo-suit type
three wrapper Actors for the normal classes
comments on code
modified tests to improve accountability; added Resolver class to deal with multiple tasks that contribute to a larger task
changed Tools to an internal AmmoBox; don't have to def -= symbol if I def _= symbol
LivePlayerList -> MasterPlayerList, and added a Fit def for Player that checks holsters as well as inventory
example of packet conversion can be found with AmmoBoxDefinition
added conversion for ToolDefinition
added all Equipment packet conversion functionality; started working on Avatar-related conversions
continued effort towards a working Player packet conversion test
subclasses of Equipment apparently do not need to overide the type of the PacketConverter for generics
the logical conclusion: it doesn't matter what generics Packet returns so long as it returns an ObjectCreateConverter[] type
separated converters from definitions into files
changed some configuration information to final; added a bunch of converters, not fully tested though
changed function names in converters
replaced WSA packet-driven OCDM with Player object OCDM; upgrade to Float angular data
added partial support for LockerContainer; changed Equipment defaults to a common value
changes to AvatarConverter to include 5th slot; changes to VehicleConverter to make work; implementation of Fury in Vehicle->packet example in WSA
added a seat definition and renovated how the weapon controlled from a seat can be found
comments to files mainly; non-essential functionality to some classes, mostly access determination
moved converter tests to their own test file
write more of this test
added ServiceManager, as it is useful
pool range changes
added AvatarService, as it is useful
straightened out the GUID actors; added the static method for adding AmmoBoxes (to be converted later)
chnages to task resolution operation
complicated Task and TaskResolver logic is now possible; for example, you can schedule giving an AmmoBox a GUID, before giving a Tool a GUID, before placing the Tool in a player's hand; see Suppressor example in WSA
separated the Task trait and the TaskResolver actor into their own classes, moving the former RegistrationTaskResolver class into the /misc/ folder; deleted old backup copy of HubActor; modifications for PoC and supported tests
added better support and protection against putting things in the wrong hand when using inventories and the Player.Slot(n) function
GlobalDefinitions file; added laze pointer as an SItem, and gave it the command detonater management code; additionally fixed spelling of 'detonat[o]r' in Codec; early Terminal class work
updated tests to GlobalDefinitions entries; Terminal works but I don't like it
played with GUID pooling workflow, though to little avail; modifications to Terminal purchasing workflow, but still very volatile
modified NumberPoolActor and NumberPoolAccessor to make them more straightforward and not use akka ask as a go-between
fixed recovery options so that they do not cause more messages
trailing newline
InventoryItem (packet data) renamed InventoryItemData to remove ambiguity; Terminal functionality improved, allowing for swapping of exo-suits and the restoration of equipment positions
remove yet-unsupported Terminal messaging
made Terminal message more specific; can now put equipment into empty slot on exo-suit change; should report changes better
re-organized function calls to preserved items removed from holster slots on exo-suit change
moved predicate to the end of the list of params for recoverInventory so that repetition can be eliminated and a default value can be assigned
issues with making Tool; committing changes before revert of NumberPoolActor and NumberPoolAccessorActor to see if those broke it
a necessary evil, the reverting of these two Actors; subtask resolution does not work unless I do so, for now
restored the registration portion of tasking back to where it previously was (and better?)
NumberPoolActor and the ...AccessorActor are back to a comfortable place (and better?)
re-draw object in hand when switching exo-suits; build AmmoBoxes for Tool during Terminal-controlled creation, not Tool-controlled creation
order of task cleanup reversed to avoid index mismatch; added itsm to TerminalDefinition
common 5x5 AmmoBox size; added vehicle weapon ammo boxes to terminal
added error catching messages; stopped odd double-registering issue early
resolved issue where multiple subtasks started their main task multiple times; added checks that an object does not register a new GUID when it already has one
wrote unregistration code for Selling items back through the Terminal, repairing logic along the way; also, wrote a top-level GUID find for the Player for use of MoveItem
added framework for starting on Loadouts; managed issue with parent tasks starting before being summoned by child subtasks, often resulting in the complete skip of the execution phase of the parent; refactored registration tasks in WSA
modified Tool structure, exposing the AmmoSlot list a bit more
stuff stuff Tool ammo slot changes to default and comments
basic loadout framework for Infantry; need to integrate
initial work on FavoritesRequest packet
tests for FavoritesRequest packet
increased size of number pool for testing; wrote an algorithm that translates to and from the simplified version of objects stored in loadouts
refactored the tasking for adding Equipment and removing Equipment
updated the inventory so the Map of items does not have to rely on the GUID of an item being set before the item is inserted
untested routine for registering a player character; pushing all changes before making significant changes to the client init code structure
added to comments of BeginZoningMessage; transitioned player through and initial step of a more proper login GUID association
the current avatar is properly registered and there is something of a workflow with the messages and packets
corrected another bit of logic where inventories used to be indexed by object GUID in AvatarConverter; reversed unregister-remove task sequence such that GUID-less object is not allowed to exist in a stable object hierarchy
working Loadout loading
added identification functions to GlobalDefinitions; echo ObjectDelete back to client
accidentally got rid of something in WSA, but now restored; adding extra details to Terminal operations
separated Terminal into separate files and moved files into their own package under \objects\ for now; can delete loadouts now in WSA
better handling of ReloadMessage and MoveItemMessage
framework for better support involving dropping and picking up items
code comments and small modifications, such as the location and structure of the Terminal Equipment definitions
wrote comments in GlobalDefinitions; modified code so that a primitive form of player synchronization now occurs for future testing
added code to display already-dropped Equipment on the ground; limitations are explained; moved TaskResolver to more a global location, though I don't know if that helps
modified avatar unregister logic to ensure vacating player is deleted from other clients 'properly'
more comments; improved checks for MoveItemMessage; squared distances as necessary
subtle changes to login scripting so that test character is always offered
re-organizing the functions in WSA so that only the local objects separate the two message processing blocks
2017-05-30 18:46:01 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
"construct" in {
|
|
|
|
|
val obj : Tool = Tool(fury_weapon_systema)
|
|
|
|
|
obj.Definition.ObjectId mustEqual fury_weapon_systema.ObjectId
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
"fire mode" in {
|
|
|
|
|
//explanation: fury_weapon_systema has one fire mode and that fire mode is our only option
|
|
|
|
|
val obj : Tool = Tool(fury_weapon_systema)
|
|
|
|
|
obj.Magazine = obj.MaxMagazine
|
|
|
|
|
obj.Magazine mustEqual obj.Definition.FireModes.head.Magazine
|
|
|
|
|
//fmode = 0
|
|
|
|
|
obj.FireModeIndex mustEqual 0
|
|
|
|
|
obj.FireMode.Magazine mustEqual 2
|
|
|
|
|
obj.AmmoType mustEqual Ammo.hellfire_ammo
|
|
|
|
|
//fmode -> 1 (0)
|
|
|
|
|
obj.FireModeIndex = 1
|
|
|
|
|
obj.FireModeIndex mustEqual 0
|
|
|
|
|
obj.FireMode.Magazine mustEqual 2
|
|
|
|
|
obj.AmmoType mustEqual Ammo.hellfire_ammo
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
"multiple fire modes" in {
|
2018-01-17 07:51:42 -05:00
|
|
|
//explanation: sample_weapon has two fire modes; each fire mode has a different ammunition type
|
|
|
|
|
val obj : Tool = Tool(punisher)
|
new stuff for player server classes; this update is not yet complete
adjusted sample Reload code and added insertion and removal functions for inventory
more work on player classes; moving PacketResolution to another branch
decoupling GUIDs from objects; introduced Ammo enum; minor adjustments to inventory system; different object/class hierarchy
transferring basic files from another branch
converted from get/set to accessor/mutator; resolved conflict from name changes
refactored basic components such as GUID and location/orientation
utilities kludge; more fields are given accessor and mutators; create package for vehicle-specific classes
GUID assurance, now with less object creation
test files; changes to how AmmoBox initializes
sorry, a little bit of everything, so much I forgot to write it all down
switched to a unified fire mode object internal to a Tool
importing a heavily modified version of my GUID manager objects from the laternate branch; not finished or tested yet
created a Trait to make Key private, sources and selectors to allow NumberPools to exist independent of a NumberSource; placed Ascending into a misc folder
swapped the Return methods for selectors so that the more primitive logic is the one that needs to be overriden; renamed a selector to be more common; had to update some copyright messages
fixed major logic issue with NumberPool; added comments to NumberSource files
NumberSource tests
simplified and made more consistent the method naming convention of NumberSources
comments for NumberSelectors
starting on NumberSelector tests
modifications that should better support number pools; added a pool hub that acts on a predefined source
adjustment to how Tools and FireModeDefintion keep track of ammunition and ammunition slots; I don't think this is sufficient
small additions to Tools; filled out simple tests for other three Selectors
added object lookup notation for the pool hub
added more NumberSelector tests; removed the word 'Number' from subclass names
re-named classes, re-packaged classes, re-named packages; created new Selector, split pools to create a fallback for the NumberPoolHub
changes to NumberPool classes; tests on NumberPool classes
changes to NumberPool classes; tests on NumberPool classes2
some robust testing for NumberPoolHub, plus necessary modifications to other files
register and unregister functions now use Success and Failure conditions, save for one true thrown Exception
reduced the flow of certain algorithm chains, mainly by adding match statements and removing Exceptions
error message text
the same thing as the last commit, but with NumberPools rather than NumberPoolHub
various types of freeform registration
added sorting functions to Selectors to allow for hotswapping for number pools, especially to and from SpecificSelector; tests for NumberPoolHub
get numbers from an Array of indices, not the list of Numbers, in SimplePool
added a class to represent the four types of recovery kits
comments on Kit files
created package for supporting equipment classes; renamed /definition/ package
adding class for items that construct deployables, the router telepad included
added SimpleItem, classes for game Equipment that do not have internal state; re-organized ObjectDefinition files and the game objects they create to more naturally move around EquipmentSize and InventoryTile (size)
added SimpleItem tests (what they are...); removed example code that has hogging an import from AmmoBox
auto-sort for loading and fitting former inventory content back into the inventory
method of finding first available position to fit an certain size block in the inventory
changed CheckCollision return type to provide Try[List[Int]; fixed all existing references and tests
wrote comments for GridInventory methods; changed insertion param to be of form 'key -> element'
adding features to Player; created definitions for Player class; re-grouped ConstructionItem enumerations
initial work on implants; shuffled classes to better accommodate the new implant system, I think
wrote some tests for Implants; fixing Implant logic
wrote tests for Player class and made adjustments where necessary
basic initialization during Player creation based on exo-suit type
three wrapper Actors for the normal classes
comments on code
modified tests to improve accountability; added Resolver class to deal with multiple tasks that contribute to a larger task
changed Tools to an internal AmmoBox; don't have to def -= symbol if I def _= symbol
LivePlayerList -> MasterPlayerList, and added a Fit def for Player that checks holsters as well as inventory
example of packet conversion can be found with AmmoBoxDefinition
added conversion for ToolDefinition
added all Equipment packet conversion functionality; started working on Avatar-related conversions
continued effort towards a working Player packet conversion test
subclasses of Equipment apparently do not need to overide the type of the PacketConverter for generics
the logical conclusion: it doesn't matter what generics Packet returns so long as it returns an ObjectCreateConverter[] type
separated converters from definitions into files
changed some configuration information to final; added a bunch of converters, not fully tested though
changed function names in converters
replaced WSA packet-driven OCDM with Player object OCDM; upgrade to Float angular data
added partial support for LockerContainer; changed Equipment defaults to a common value
changes to AvatarConverter to include 5th slot; changes to VehicleConverter to make work; implementation of Fury in Vehicle->packet example in WSA
added a seat definition and renovated how the weapon controlled from a seat can be found
comments to files mainly; non-essential functionality to some classes, mostly access determination
moved converter tests to their own test file
write more of this test
added ServiceManager, as it is useful
pool range changes
added AvatarService, as it is useful
straightened out the GUID actors; added the static method for adding AmmoBoxes (to be converted later)
chnages to task resolution operation
complicated Task and TaskResolver logic is now possible; for example, you can schedule giving an AmmoBox a GUID, before giving a Tool a GUID, before placing the Tool in a player's hand; see Suppressor example in WSA
separated the Task trait and the TaskResolver actor into their own classes, moving the former RegistrationTaskResolver class into the /misc/ folder; deleted old backup copy of HubActor; modifications for PoC and supported tests
added better support and protection against putting things in the wrong hand when using inventories and the Player.Slot(n) function
GlobalDefinitions file; added laze pointer as an SItem, and gave it the command detonater management code; additionally fixed spelling of 'detonat[o]r' in Codec; early Terminal class work
updated tests to GlobalDefinitions entries; Terminal works but I don't like it
played with GUID pooling workflow, though to little avail; modifications to Terminal purchasing workflow, but still very volatile
modified NumberPoolActor and NumberPoolAccessor to make them more straightforward and not use akka ask as a go-between
fixed recovery options so that they do not cause more messages
trailing newline
InventoryItem (packet data) renamed InventoryItemData to remove ambiguity; Terminal functionality improved, allowing for swapping of exo-suits and the restoration of equipment positions
remove yet-unsupported Terminal messaging
made Terminal message more specific; can now put equipment into empty slot on exo-suit change; should report changes better
re-organized function calls to preserved items removed from holster slots on exo-suit change
moved predicate to the end of the list of params for recoverInventory so that repetition can be eliminated and a default value can be assigned
issues with making Tool; committing changes before revert of NumberPoolActor and NumberPoolAccessorActor to see if those broke it
a necessary evil, the reverting of these two Actors; subtask resolution does not work unless I do so, for now
restored the registration portion of tasking back to where it previously was (and better?)
NumberPoolActor and the ...AccessorActor are back to a comfortable place (and better?)
re-draw object in hand when switching exo-suits; build AmmoBoxes for Tool during Terminal-controlled creation, not Tool-controlled creation
order of task cleanup reversed to avoid index mismatch; added itsm to TerminalDefinition
common 5x5 AmmoBox size; added vehicle weapon ammo boxes to terminal
added error catching messages; stopped odd double-registering issue early
resolved issue where multiple subtasks started their main task multiple times; added checks that an object does not register a new GUID when it already has one
wrote unregistration code for Selling items back through the Terminal, repairing logic along the way; also, wrote a top-level GUID find for the Player for use of MoveItem
added framework for starting on Loadouts; managed issue with parent tasks starting before being summoned by child subtasks, often resulting in the complete skip of the execution phase of the parent; refactored registration tasks in WSA
modified Tool structure, exposing the AmmoSlot list a bit more
stuff stuff Tool ammo slot changes to default and comments
basic loadout framework for Infantry; need to integrate
initial work on FavoritesRequest packet
tests for FavoritesRequest packet
increased size of number pool for testing; wrote an algorithm that translates to and from the simplified version of objects stored in loadouts
refactored the tasking for adding Equipment and removing Equipment
updated the inventory so the Map of items does not have to rely on the GUID of an item being set before the item is inserted
untested routine for registering a player character; pushing all changes before making significant changes to the client init code structure
added to comments of BeginZoningMessage; transitioned player through and initial step of a more proper login GUID association
the current avatar is properly registered and there is something of a workflow with the messages and packets
corrected another bit of logic where inventories used to be indexed by object GUID in AvatarConverter; reversed unregister-remove task sequence such that GUID-less object is not allowed to exist in a stable object hierarchy
working Loadout loading
added identification functions to GlobalDefinitions; echo ObjectDelete back to client
accidentally got rid of something in WSA, but now restored; adding extra details to Terminal operations
separated Terminal into separate files and moved files into their own package under \objects\ for now; can delete loadouts now in WSA
better handling of ReloadMessage and MoveItemMessage
framework for better support involving dropping and picking up items
code comments and small modifications, such as the location and structure of the Terminal Equipment definitions
wrote comments in GlobalDefinitions; modified code so that a primitive form of player synchronization now occurs for future testing
added code to display already-dropped Equipment on the ground; limitations are explained; moved TaskResolver to more a global location, though I don't know if that helps
modified avatar unregister logic to ensure vacating player is deleted from other clients 'properly'
more comments; improved checks for MoveItemMessage; squared distances as necessary
subtle changes to login scripting so that test character is always offered
re-organizing the functions in WSA so that only the local objects separate the two message processing blocks
2017-05-30 18:46:01 -04:00
|
|
|
//fmode = 0
|
|
|
|
|
obj.FireModeIndex mustEqual 0
|
2018-01-17 07:51:42 -05:00
|
|
|
obj.FireMode.Magazine mustEqual 30
|
|
|
|
|
obj.AmmoType mustEqual Ammo.bullet_9mm
|
new stuff for player server classes; this update is not yet complete
adjusted sample Reload code and added insertion and removal functions for inventory
more work on player classes; moving PacketResolution to another branch
decoupling GUIDs from objects; introduced Ammo enum; minor adjustments to inventory system; different object/class hierarchy
transferring basic files from another branch
converted from get/set to accessor/mutator; resolved conflict from name changes
refactored basic components such as GUID and location/orientation
utilities kludge; more fields are given accessor and mutators; create package for vehicle-specific classes
GUID assurance, now with less object creation
test files; changes to how AmmoBox initializes
sorry, a little bit of everything, so much I forgot to write it all down
switched to a unified fire mode object internal to a Tool
importing a heavily modified version of my GUID manager objects from the laternate branch; not finished or tested yet
created a Trait to make Key private, sources and selectors to allow NumberPools to exist independent of a NumberSource; placed Ascending into a misc folder
swapped the Return methods for selectors so that the more primitive logic is the one that needs to be overriden; renamed a selector to be more common; had to update some copyright messages
fixed major logic issue with NumberPool; added comments to NumberSource files
NumberSource tests
simplified and made more consistent the method naming convention of NumberSources
comments for NumberSelectors
starting on NumberSelector tests
modifications that should better support number pools; added a pool hub that acts on a predefined source
adjustment to how Tools and FireModeDefintion keep track of ammunition and ammunition slots; I don't think this is sufficient
small additions to Tools; filled out simple tests for other three Selectors
added object lookup notation for the pool hub
added more NumberSelector tests; removed the word 'Number' from subclass names
re-named classes, re-packaged classes, re-named packages; created new Selector, split pools to create a fallback for the NumberPoolHub
changes to NumberPool classes; tests on NumberPool classes
changes to NumberPool classes; tests on NumberPool classes2
some robust testing for NumberPoolHub, plus necessary modifications to other files
register and unregister functions now use Success and Failure conditions, save for one true thrown Exception
reduced the flow of certain algorithm chains, mainly by adding match statements and removing Exceptions
error message text
the same thing as the last commit, but with NumberPools rather than NumberPoolHub
various types of freeform registration
added sorting functions to Selectors to allow for hotswapping for number pools, especially to and from SpecificSelector; tests for NumberPoolHub
get numbers from an Array of indices, not the list of Numbers, in SimplePool
added a class to represent the four types of recovery kits
comments on Kit files
created package for supporting equipment classes; renamed /definition/ package
adding class for items that construct deployables, the router telepad included
added SimpleItem, classes for game Equipment that do not have internal state; re-organized ObjectDefinition files and the game objects they create to more naturally move around EquipmentSize and InventoryTile (size)
added SimpleItem tests (what they are...); removed example code that has hogging an import from AmmoBox
auto-sort for loading and fitting former inventory content back into the inventory
method of finding first available position to fit an certain size block in the inventory
changed CheckCollision return type to provide Try[List[Int]; fixed all existing references and tests
wrote comments for GridInventory methods; changed insertion param to be of form 'key -> element'
adding features to Player; created definitions for Player class; re-grouped ConstructionItem enumerations
initial work on implants; shuffled classes to better accommodate the new implant system, I think
wrote some tests for Implants; fixing Implant logic
wrote tests for Player class and made adjustments where necessary
basic initialization during Player creation based on exo-suit type
three wrapper Actors for the normal classes
comments on code
modified tests to improve accountability; added Resolver class to deal with multiple tasks that contribute to a larger task
changed Tools to an internal AmmoBox; don't have to def -= symbol if I def _= symbol
LivePlayerList -> MasterPlayerList, and added a Fit def for Player that checks holsters as well as inventory
example of packet conversion can be found with AmmoBoxDefinition
added conversion for ToolDefinition
added all Equipment packet conversion functionality; started working on Avatar-related conversions
continued effort towards a working Player packet conversion test
subclasses of Equipment apparently do not need to overide the type of the PacketConverter for generics
the logical conclusion: it doesn't matter what generics Packet returns so long as it returns an ObjectCreateConverter[] type
separated converters from definitions into files
changed some configuration information to final; added a bunch of converters, not fully tested though
changed function names in converters
replaced WSA packet-driven OCDM with Player object OCDM; upgrade to Float angular data
added partial support for LockerContainer; changed Equipment defaults to a common value
changes to AvatarConverter to include 5th slot; changes to VehicleConverter to make work; implementation of Fury in Vehicle->packet example in WSA
added a seat definition and renovated how the weapon controlled from a seat can be found
comments to files mainly; non-essential functionality to some classes, mostly access determination
moved converter tests to their own test file
write more of this test
added ServiceManager, as it is useful
pool range changes
added AvatarService, as it is useful
straightened out the GUID actors; added the static method for adding AmmoBoxes (to be converted later)
chnages to task resolution operation
complicated Task and TaskResolver logic is now possible; for example, you can schedule giving an AmmoBox a GUID, before giving a Tool a GUID, before placing the Tool in a player's hand; see Suppressor example in WSA
separated the Task trait and the TaskResolver actor into their own classes, moving the former RegistrationTaskResolver class into the /misc/ folder; deleted old backup copy of HubActor; modifications for PoC and supported tests
added better support and protection against putting things in the wrong hand when using inventories and the Player.Slot(n) function
GlobalDefinitions file; added laze pointer as an SItem, and gave it the command detonater management code; additionally fixed spelling of 'detonat[o]r' in Codec; early Terminal class work
updated tests to GlobalDefinitions entries; Terminal works but I don't like it
played with GUID pooling workflow, though to little avail; modifications to Terminal purchasing workflow, but still very volatile
modified NumberPoolActor and NumberPoolAccessor to make them more straightforward and not use akka ask as a go-between
fixed recovery options so that they do not cause more messages
trailing newline
InventoryItem (packet data) renamed InventoryItemData to remove ambiguity; Terminal functionality improved, allowing for swapping of exo-suits and the restoration of equipment positions
remove yet-unsupported Terminal messaging
made Terminal message more specific; can now put equipment into empty slot on exo-suit change; should report changes better
re-organized function calls to preserved items removed from holster slots on exo-suit change
moved predicate to the end of the list of params for recoverInventory so that repetition can be eliminated and a default value can be assigned
issues with making Tool; committing changes before revert of NumberPoolActor and NumberPoolAccessorActor to see if those broke it
a necessary evil, the reverting of these two Actors; subtask resolution does not work unless I do so, for now
restored the registration portion of tasking back to where it previously was (and better?)
NumberPoolActor and the ...AccessorActor are back to a comfortable place (and better?)
re-draw object in hand when switching exo-suits; build AmmoBoxes for Tool during Terminal-controlled creation, not Tool-controlled creation
order of task cleanup reversed to avoid index mismatch; added itsm to TerminalDefinition
common 5x5 AmmoBox size; added vehicle weapon ammo boxes to terminal
added error catching messages; stopped odd double-registering issue early
resolved issue where multiple subtasks started their main task multiple times; added checks that an object does not register a new GUID when it already has one
wrote unregistration code for Selling items back through the Terminal, repairing logic along the way; also, wrote a top-level GUID find for the Player for use of MoveItem
added framework for starting on Loadouts; managed issue with parent tasks starting before being summoned by child subtasks, often resulting in the complete skip of the execution phase of the parent; refactored registration tasks in WSA
modified Tool structure, exposing the AmmoSlot list a bit more
stuff stuff Tool ammo slot changes to default and comments
basic loadout framework for Infantry; need to integrate
initial work on FavoritesRequest packet
tests for FavoritesRequest packet
increased size of number pool for testing; wrote an algorithm that translates to and from the simplified version of objects stored in loadouts
refactored the tasking for adding Equipment and removing Equipment
updated the inventory so the Map of items does not have to rely on the GUID of an item being set before the item is inserted
untested routine for registering a player character; pushing all changes before making significant changes to the client init code structure
added to comments of BeginZoningMessage; transitioned player through and initial step of a more proper login GUID association
the current avatar is properly registered and there is something of a workflow with the messages and packets
corrected another bit of logic where inventories used to be indexed by object GUID in AvatarConverter; reversed unregister-remove task sequence such that GUID-less object is not allowed to exist in a stable object hierarchy
working Loadout loading
added identification functions to GlobalDefinitions; echo ObjectDelete back to client
accidentally got rid of something in WSA, but now restored; adding extra details to Terminal operations
separated Terminal into separate files and moved files into their own package under \objects\ for now; can delete loadouts now in WSA
better handling of ReloadMessage and MoveItemMessage
framework for better support involving dropping and picking up items
code comments and small modifications, such as the location and structure of the Terminal Equipment definitions
wrote comments in GlobalDefinitions; modified code so that a primitive form of player synchronization now occurs for future testing
added code to display already-dropped Equipment on the ground; limitations are explained; moved TaskResolver to more a global location, though I don't know if that helps
modified avatar unregister logic to ensure vacating player is deleted from other clients 'properly'
more comments; improved checks for MoveItemMessage; squared distances as necessary
subtle changes to login scripting so that test character is always offered
re-organizing the functions in WSA so that only the local objects separate the two message processing blocks
2017-05-30 18:46:01 -04:00
|
|
|
//fmode -> 1
|
|
|
|
|
obj.NextFireMode
|
|
|
|
|
obj.FireModeIndex mustEqual 1
|
2018-01-17 07:51:42 -05:00
|
|
|
obj.FireMode.Magazine mustEqual 1
|
|
|
|
|
obj.AmmoType mustEqual Ammo.rocket
|
new stuff for player server classes; this update is not yet complete
adjusted sample Reload code and added insertion and removal functions for inventory
more work on player classes; moving PacketResolution to another branch
decoupling GUIDs from objects; introduced Ammo enum; minor adjustments to inventory system; different object/class hierarchy
transferring basic files from another branch
converted from get/set to accessor/mutator; resolved conflict from name changes
refactored basic components such as GUID and location/orientation
utilities kludge; more fields are given accessor and mutators; create package for vehicle-specific classes
GUID assurance, now with less object creation
test files; changes to how AmmoBox initializes
sorry, a little bit of everything, so much I forgot to write it all down
switched to a unified fire mode object internal to a Tool
importing a heavily modified version of my GUID manager objects from the laternate branch; not finished or tested yet
created a Trait to make Key private, sources and selectors to allow NumberPools to exist independent of a NumberSource; placed Ascending into a misc folder
swapped the Return methods for selectors so that the more primitive logic is the one that needs to be overriden; renamed a selector to be more common; had to update some copyright messages
fixed major logic issue with NumberPool; added comments to NumberSource files
NumberSource tests
simplified and made more consistent the method naming convention of NumberSources
comments for NumberSelectors
starting on NumberSelector tests
modifications that should better support number pools; added a pool hub that acts on a predefined source
adjustment to how Tools and FireModeDefintion keep track of ammunition and ammunition slots; I don't think this is sufficient
small additions to Tools; filled out simple tests for other three Selectors
added object lookup notation for the pool hub
added more NumberSelector tests; removed the word 'Number' from subclass names
re-named classes, re-packaged classes, re-named packages; created new Selector, split pools to create a fallback for the NumberPoolHub
changes to NumberPool classes; tests on NumberPool classes
changes to NumberPool classes; tests on NumberPool classes2
some robust testing for NumberPoolHub, plus necessary modifications to other files
register and unregister functions now use Success and Failure conditions, save for one true thrown Exception
reduced the flow of certain algorithm chains, mainly by adding match statements and removing Exceptions
error message text
the same thing as the last commit, but with NumberPools rather than NumberPoolHub
various types of freeform registration
added sorting functions to Selectors to allow for hotswapping for number pools, especially to and from SpecificSelector; tests for NumberPoolHub
get numbers from an Array of indices, not the list of Numbers, in SimplePool
added a class to represent the four types of recovery kits
comments on Kit files
created package for supporting equipment classes; renamed /definition/ package
adding class for items that construct deployables, the router telepad included
added SimpleItem, classes for game Equipment that do not have internal state; re-organized ObjectDefinition files and the game objects they create to more naturally move around EquipmentSize and InventoryTile (size)
added SimpleItem tests (what they are...); removed example code that has hogging an import from AmmoBox
auto-sort for loading and fitting former inventory content back into the inventory
method of finding first available position to fit an certain size block in the inventory
changed CheckCollision return type to provide Try[List[Int]; fixed all existing references and tests
wrote comments for GridInventory methods; changed insertion param to be of form 'key -> element'
adding features to Player; created definitions for Player class; re-grouped ConstructionItem enumerations
initial work on implants; shuffled classes to better accommodate the new implant system, I think
wrote some tests for Implants; fixing Implant logic
wrote tests for Player class and made adjustments where necessary
basic initialization during Player creation based on exo-suit type
three wrapper Actors for the normal classes
comments on code
modified tests to improve accountability; added Resolver class to deal with multiple tasks that contribute to a larger task
changed Tools to an internal AmmoBox; don't have to def -= symbol if I def _= symbol
LivePlayerList -> MasterPlayerList, and added a Fit def for Player that checks holsters as well as inventory
example of packet conversion can be found with AmmoBoxDefinition
added conversion for ToolDefinition
added all Equipment packet conversion functionality; started working on Avatar-related conversions
continued effort towards a working Player packet conversion test
subclasses of Equipment apparently do not need to overide the type of the PacketConverter for generics
the logical conclusion: it doesn't matter what generics Packet returns so long as it returns an ObjectCreateConverter[] type
separated converters from definitions into files
changed some configuration information to final; added a bunch of converters, not fully tested though
changed function names in converters
replaced WSA packet-driven OCDM with Player object OCDM; upgrade to Float angular data
added partial support for LockerContainer; changed Equipment defaults to a common value
changes to AvatarConverter to include 5th slot; changes to VehicleConverter to make work; implementation of Fury in Vehicle->packet example in WSA
added a seat definition and renovated how the weapon controlled from a seat can be found
comments to files mainly; non-essential functionality to some classes, mostly access determination
moved converter tests to their own test file
write more of this test
added ServiceManager, as it is useful
pool range changes
added AvatarService, as it is useful
straightened out the GUID actors; added the static method for adding AmmoBoxes (to be converted later)
chnages to task resolution operation
complicated Task and TaskResolver logic is now possible; for example, you can schedule giving an AmmoBox a GUID, before giving a Tool a GUID, before placing the Tool in a player's hand; see Suppressor example in WSA
separated the Task trait and the TaskResolver actor into their own classes, moving the former RegistrationTaskResolver class into the /misc/ folder; deleted old backup copy of HubActor; modifications for PoC and supported tests
added better support and protection against putting things in the wrong hand when using inventories and the Player.Slot(n) function
GlobalDefinitions file; added laze pointer as an SItem, and gave it the command detonater management code; additionally fixed spelling of 'detonat[o]r' in Codec; early Terminal class work
updated tests to GlobalDefinitions entries; Terminal works but I don't like it
played with GUID pooling workflow, though to little avail; modifications to Terminal purchasing workflow, but still very volatile
modified NumberPoolActor and NumberPoolAccessor to make them more straightforward and not use akka ask as a go-between
fixed recovery options so that they do not cause more messages
trailing newline
InventoryItem (packet data) renamed InventoryItemData to remove ambiguity; Terminal functionality improved, allowing for swapping of exo-suits and the restoration of equipment positions
remove yet-unsupported Terminal messaging
made Terminal message more specific; can now put equipment into empty slot on exo-suit change; should report changes better
re-organized function calls to preserved items removed from holster slots on exo-suit change
moved predicate to the end of the list of params for recoverInventory so that repetition can be eliminated and a default value can be assigned
issues with making Tool; committing changes before revert of NumberPoolActor and NumberPoolAccessorActor to see if those broke it
a necessary evil, the reverting of these two Actors; subtask resolution does not work unless I do so, for now
restored the registration portion of tasking back to where it previously was (and better?)
NumberPoolActor and the ...AccessorActor are back to a comfortable place (and better?)
re-draw object in hand when switching exo-suits; build AmmoBoxes for Tool during Terminal-controlled creation, not Tool-controlled creation
order of task cleanup reversed to avoid index mismatch; added itsm to TerminalDefinition
common 5x5 AmmoBox size; added vehicle weapon ammo boxes to terminal
added error catching messages; stopped odd double-registering issue early
resolved issue where multiple subtasks started their main task multiple times; added checks that an object does not register a new GUID when it already has one
wrote unregistration code for Selling items back through the Terminal, repairing logic along the way; also, wrote a top-level GUID find for the Player for use of MoveItem
added framework for starting on Loadouts; managed issue with parent tasks starting before being summoned by child subtasks, often resulting in the complete skip of the execution phase of the parent; refactored registration tasks in WSA
modified Tool structure, exposing the AmmoSlot list a bit more
stuff stuff Tool ammo slot changes to default and comments
basic loadout framework for Infantry; need to integrate
initial work on FavoritesRequest packet
tests for FavoritesRequest packet
increased size of number pool for testing; wrote an algorithm that translates to and from the simplified version of objects stored in loadouts
refactored the tasking for adding Equipment and removing Equipment
updated the inventory so the Map of items does not have to rely on the GUID of an item being set before the item is inserted
untested routine for registering a player character; pushing all changes before making significant changes to the client init code structure
added to comments of BeginZoningMessage; transitioned player through and initial step of a more proper login GUID association
the current avatar is properly registered and there is something of a workflow with the messages and packets
corrected another bit of logic where inventories used to be indexed by object GUID in AvatarConverter; reversed unregister-remove task sequence such that GUID-less object is not allowed to exist in a stable object hierarchy
working Loadout loading
added identification functions to GlobalDefinitions; echo ObjectDelete back to client
accidentally got rid of something in WSA, but now restored; adding extra details to Terminal operations
separated Terminal into separate files and moved files into their own package under \objects\ for now; can delete loadouts now in WSA
better handling of ReloadMessage and MoveItemMessage
framework for better support involving dropping and picking up items
code comments and small modifications, such as the location and structure of the Terminal Equipment definitions
wrote comments in GlobalDefinitions; modified code so that a primitive form of player synchronization now occurs for future testing
added code to display already-dropped Equipment on the ground; limitations are explained; moved TaskResolver to more a global location, though I don't know if that helps
modified avatar unregister logic to ensure vacating player is deleted from other clients 'properly'
more comments; improved checks for MoveItemMessage; squared distances as necessary
subtle changes to login scripting so that test character is always offered
re-organizing the functions in WSA so that only the local objects separate the two message processing blocks
2017-05-30 18:46:01 -04:00
|
|
|
//fmode -> 0
|
|
|
|
|
obj.NextFireMode
|
|
|
|
|
obj.FireModeIndex mustEqual 0
|
2018-01-17 07:51:42 -05:00
|
|
|
obj.FireMode.Magazine mustEqual 30
|
|
|
|
|
obj.AmmoType mustEqual Ammo.bullet_9mm
|
new stuff for player server classes; this update is not yet complete
adjusted sample Reload code and added insertion and removal functions for inventory
more work on player classes; moving PacketResolution to another branch
decoupling GUIDs from objects; introduced Ammo enum; minor adjustments to inventory system; different object/class hierarchy
transferring basic files from another branch
converted from get/set to accessor/mutator; resolved conflict from name changes
refactored basic components such as GUID and location/orientation
utilities kludge; more fields are given accessor and mutators; create package for vehicle-specific classes
GUID assurance, now with less object creation
test files; changes to how AmmoBox initializes
sorry, a little bit of everything, so much I forgot to write it all down
switched to a unified fire mode object internal to a Tool
importing a heavily modified version of my GUID manager objects from the laternate branch; not finished or tested yet
created a Trait to make Key private, sources and selectors to allow NumberPools to exist independent of a NumberSource; placed Ascending into a misc folder
swapped the Return methods for selectors so that the more primitive logic is the one that needs to be overriden; renamed a selector to be more common; had to update some copyright messages
fixed major logic issue with NumberPool; added comments to NumberSource files
NumberSource tests
simplified and made more consistent the method naming convention of NumberSources
comments for NumberSelectors
starting on NumberSelector tests
modifications that should better support number pools; added a pool hub that acts on a predefined source
adjustment to how Tools and FireModeDefintion keep track of ammunition and ammunition slots; I don't think this is sufficient
small additions to Tools; filled out simple tests for other three Selectors
added object lookup notation for the pool hub
added more NumberSelector tests; removed the word 'Number' from subclass names
re-named classes, re-packaged classes, re-named packages; created new Selector, split pools to create a fallback for the NumberPoolHub
changes to NumberPool classes; tests on NumberPool classes
changes to NumberPool classes; tests on NumberPool classes2
some robust testing for NumberPoolHub, plus necessary modifications to other files
register and unregister functions now use Success and Failure conditions, save for one true thrown Exception
reduced the flow of certain algorithm chains, mainly by adding match statements and removing Exceptions
error message text
the same thing as the last commit, but with NumberPools rather than NumberPoolHub
various types of freeform registration
added sorting functions to Selectors to allow for hotswapping for number pools, especially to and from SpecificSelector; tests for NumberPoolHub
get numbers from an Array of indices, not the list of Numbers, in SimplePool
added a class to represent the four types of recovery kits
comments on Kit files
created package for supporting equipment classes; renamed /definition/ package
adding class for items that construct deployables, the router telepad included
added SimpleItem, classes for game Equipment that do not have internal state; re-organized ObjectDefinition files and the game objects they create to more naturally move around EquipmentSize and InventoryTile (size)
added SimpleItem tests (what they are...); removed example code that has hogging an import from AmmoBox
auto-sort for loading and fitting former inventory content back into the inventory
method of finding first available position to fit an certain size block in the inventory
changed CheckCollision return type to provide Try[List[Int]; fixed all existing references and tests
wrote comments for GridInventory methods; changed insertion param to be of form 'key -> element'
adding features to Player; created definitions for Player class; re-grouped ConstructionItem enumerations
initial work on implants; shuffled classes to better accommodate the new implant system, I think
wrote some tests for Implants; fixing Implant logic
wrote tests for Player class and made adjustments where necessary
basic initialization during Player creation based on exo-suit type
three wrapper Actors for the normal classes
comments on code
modified tests to improve accountability; added Resolver class to deal with multiple tasks that contribute to a larger task
changed Tools to an internal AmmoBox; don't have to def -= symbol if I def _= symbol
LivePlayerList -> MasterPlayerList, and added a Fit def for Player that checks holsters as well as inventory
example of packet conversion can be found with AmmoBoxDefinition
added conversion for ToolDefinition
added all Equipment packet conversion functionality; started working on Avatar-related conversions
continued effort towards a working Player packet conversion test
subclasses of Equipment apparently do not need to overide the type of the PacketConverter for generics
the logical conclusion: it doesn't matter what generics Packet returns so long as it returns an ObjectCreateConverter[] type
separated converters from definitions into files
changed some configuration information to final; added a bunch of converters, not fully tested though
changed function names in converters
replaced WSA packet-driven OCDM with Player object OCDM; upgrade to Float angular data
added partial support for LockerContainer; changed Equipment defaults to a common value
changes to AvatarConverter to include 5th slot; changes to VehicleConverter to make work; implementation of Fury in Vehicle->packet example in WSA
added a seat definition and renovated how the weapon controlled from a seat can be found
comments to files mainly; non-essential functionality to some classes, mostly access determination
moved converter tests to their own test file
write more of this test
added ServiceManager, as it is useful
pool range changes
added AvatarService, as it is useful
straightened out the GUID actors; added the static method for adding AmmoBoxes (to be converted later)
chnages to task resolution operation
complicated Task and TaskResolver logic is now possible; for example, you can schedule giving an AmmoBox a GUID, before giving a Tool a GUID, before placing the Tool in a player's hand; see Suppressor example in WSA
separated the Task trait and the TaskResolver actor into their own classes, moving the former RegistrationTaskResolver class into the /misc/ folder; deleted old backup copy of HubActor; modifications for PoC and supported tests
added better support and protection against putting things in the wrong hand when using inventories and the Player.Slot(n) function
GlobalDefinitions file; added laze pointer as an SItem, and gave it the command detonater management code; additionally fixed spelling of 'detonat[o]r' in Codec; early Terminal class work
updated tests to GlobalDefinitions entries; Terminal works but I don't like it
played with GUID pooling workflow, though to little avail; modifications to Terminal purchasing workflow, but still very volatile
modified NumberPoolActor and NumberPoolAccessor to make them more straightforward and not use akka ask as a go-between
fixed recovery options so that they do not cause more messages
trailing newline
InventoryItem (packet data) renamed InventoryItemData to remove ambiguity; Terminal functionality improved, allowing for swapping of exo-suits and the restoration of equipment positions
remove yet-unsupported Terminal messaging
made Terminal message more specific; can now put equipment into empty slot on exo-suit change; should report changes better
re-organized function calls to preserved items removed from holster slots on exo-suit change
moved predicate to the end of the list of params for recoverInventory so that repetition can be eliminated and a default value can be assigned
issues with making Tool; committing changes before revert of NumberPoolActor and NumberPoolAccessorActor to see if those broke it
a necessary evil, the reverting of these two Actors; subtask resolution does not work unless I do so, for now
restored the registration portion of tasking back to where it previously was (and better?)
NumberPoolActor and the ...AccessorActor are back to a comfortable place (and better?)
re-draw object in hand when switching exo-suits; build AmmoBoxes for Tool during Terminal-controlled creation, not Tool-controlled creation
order of task cleanup reversed to avoid index mismatch; added itsm to TerminalDefinition
common 5x5 AmmoBox size; added vehicle weapon ammo boxes to terminal
added error catching messages; stopped odd double-registering issue early
resolved issue where multiple subtasks started their main task multiple times; added checks that an object does not register a new GUID when it already has one
wrote unregistration code for Selling items back through the Terminal, repairing logic along the way; also, wrote a top-level GUID find for the Player for use of MoveItem
added framework for starting on Loadouts; managed issue with parent tasks starting before being summoned by child subtasks, often resulting in the complete skip of the execution phase of the parent; refactored registration tasks in WSA
modified Tool structure, exposing the AmmoSlot list a bit more
stuff stuff Tool ammo slot changes to default and comments
basic loadout framework for Infantry; need to integrate
initial work on FavoritesRequest packet
tests for FavoritesRequest packet
increased size of number pool for testing; wrote an algorithm that translates to and from the simplified version of objects stored in loadouts
refactored the tasking for adding Equipment and removing Equipment
updated the inventory so the Map of items does not have to rely on the GUID of an item being set before the item is inserted
untested routine for registering a player character; pushing all changes before making significant changes to the client init code structure
added to comments of BeginZoningMessage; transitioned player through and initial step of a more proper login GUID association
the current avatar is properly registered and there is something of a workflow with the messages and packets
corrected another bit of logic where inventories used to be indexed by object GUID in AvatarConverter; reversed unregister-remove task sequence such that GUID-less object is not allowed to exist in a stable object hierarchy
working Loadout loading
added identification functions to GlobalDefinitions; echo ObjectDelete back to client
accidentally got rid of something in WSA, but now restored; adding extra details to Terminal operations
separated Terminal into separate files and moved files into their own package under \objects\ for now; can delete loadouts now in WSA
better handling of ReloadMessage and MoveItemMessage
framework for better support involving dropping and picking up items
code comments and small modifications, such as the location and structure of the Terminal Equipment definitions
wrote comments in GlobalDefinitions; modified code so that a primitive form of player synchronization now occurs for future testing
added code to display already-dropped Equipment on the ground; limitations are explained; moved TaskResolver to more a global location, though I don't know if that helps
modified avatar unregister logic to ensure vacating player is deleted from other clients 'properly'
more comments; improved checks for MoveItemMessage; squared distances as necessary
subtle changes to login scripting so that test character is always offered
re-organizing the functions in WSA so that only the local objects separate the two message processing blocks
2017-05-30 18:46:01 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
"multiple types of ammunition" in {
|
|
|
|
|
//explanation: obj has one fire mode and two ammunitions; adjusting the AmmoType changes between them
|
2018-01-17 07:51:42 -05:00
|
|
|
val obj : Tool = Tool(flechette)
|
new stuff for player server classes; this update is not yet complete
adjusted sample Reload code and added insertion and removal functions for inventory
more work on player classes; moving PacketResolution to another branch
decoupling GUIDs from objects; introduced Ammo enum; minor adjustments to inventory system; different object/class hierarchy
transferring basic files from another branch
converted from get/set to accessor/mutator; resolved conflict from name changes
refactored basic components such as GUID and location/orientation
utilities kludge; more fields are given accessor and mutators; create package for vehicle-specific classes
GUID assurance, now with less object creation
test files; changes to how AmmoBox initializes
sorry, a little bit of everything, so much I forgot to write it all down
switched to a unified fire mode object internal to a Tool
importing a heavily modified version of my GUID manager objects from the laternate branch; not finished or tested yet
created a Trait to make Key private, sources and selectors to allow NumberPools to exist independent of a NumberSource; placed Ascending into a misc folder
swapped the Return methods for selectors so that the more primitive logic is the one that needs to be overriden; renamed a selector to be more common; had to update some copyright messages
fixed major logic issue with NumberPool; added comments to NumberSource files
NumberSource tests
simplified and made more consistent the method naming convention of NumberSources
comments for NumberSelectors
starting on NumberSelector tests
modifications that should better support number pools; added a pool hub that acts on a predefined source
adjustment to how Tools and FireModeDefintion keep track of ammunition and ammunition slots; I don't think this is sufficient
small additions to Tools; filled out simple tests for other three Selectors
added object lookup notation for the pool hub
added more NumberSelector tests; removed the word 'Number' from subclass names
re-named classes, re-packaged classes, re-named packages; created new Selector, split pools to create a fallback for the NumberPoolHub
changes to NumberPool classes; tests on NumberPool classes
changes to NumberPool classes; tests on NumberPool classes2
some robust testing for NumberPoolHub, plus necessary modifications to other files
register and unregister functions now use Success and Failure conditions, save for one true thrown Exception
reduced the flow of certain algorithm chains, mainly by adding match statements and removing Exceptions
error message text
the same thing as the last commit, but with NumberPools rather than NumberPoolHub
various types of freeform registration
added sorting functions to Selectors to allow for hotswapping for number pools, especially to and from SpecificSelector; tests for NumberPoolHub
get numbers from an Array of indices, not the list of Numbers, in SimplePool
added a class to represent the four types of recovery kits
comments on Kit files
created package for supporting equipment classes; renamed /definition/ package
adding class for items that construct deployables, the router telepad included
added SimpleItem, classes for game Equipment that do not have internal state; re-organized ObjectDefinition files and the game objects they create to more naturally move around EquipmentSize and InventoryTile (size)
added SimpleItem tests (what they are...); removed example code that has hogging an import from AmmoBox
auto-sort for loading and fitting former inventory content back into the inventory
method of finding first available position to fit an certain size block in the inventory
changed CheckCollision return type to provide Try[List[Int]; fixed all existing references and tests
wrote comments for GridInventory methods; changed insertion param to be of form 'key -> element'
adding features to Player; created definitions for Player class; re-grouped ConstructionItem enumerations
initial work on implants; shuffled classes to better accommodate the new implant system, I think
wrote some tests for Implants; fixing Implant logic
wrote tests for Player class and made adjustments where necessary
basic initialization during Player creation based on exo-suit type
three wrapper Actors for the normal classes
comments on code
modified tests to improve accountability; added Resolver class to deal with multiple tasks that contribute to a larger task
changed Tools to an internal AmmoBox; don't have to def -= symbol if I def _= symbol
LivePlayerList -> MasterPlayerList, and added a Fit def for Player that checks holsters as well as inventory
example of packet conversion can be found with AmmoBoxDefinition
added conversion for ToolDefinition
added all Equipment packet conversion functionality; started working on Avatar-related conversions
continued effort towards a working Player packet conversion test
subclasses of Equipment apparently do not need to overide the type of the PacketConverter for generics
the logical conclusion: it doesn't matter what generics Packet returns so long as it returns an ObjectCreateConverter[] type
separated converters from definitions into files
changed some configuration information to final; added a bunch of converters, not fully tested though
changed function names in converters
replaced WSA packet-driven OCDM with Player object OCDM; upgrade to Float angular data
added partial support for LockerContainer; changed Equipment defaults to a common value
changes to AvatarConverter to include 5th slot; changes to VehicleConverter to make work; implementation of Fury in Vehicle->packet example in WSA
added a seat definition and renovated how the weapon controlled from a seat can be found
comments to files mainly; non-essential functionality to some classes, mostly access determination
moved converter tests to their own test file
write more of this test
added ServiceManager, as it is useful
pool range changes
added AvatarService, as it is useful
straightened out the GUID actors; added the static method for adding AmmoBoxes (to be converted later)
chnages to task resolution operation
complicated Task and TaskResolver logic is now possible; for example, you can schedule giving an AmmoBox a GUID, before giving a Tool a GUID, before placing the Tool in a player's hand; see Suppressor example in WSA
separated the Task trait and the TaskResolver actor into their own classes, moving the former RegistrationTaskResolver class into the /misc/ folder; deleted old backup copy of HubActor; modifications for PoC and supported tests
added better support and protection against putting things in the wrong hand when using inventories and the Player.Slot(n) function
GlobalDefinitions file; added laze pointer as an SItem, and gave it the command detonater management code; additionally fixed spelling of 'detonat[o]r' in Codec; early Terminal class work
updated tests to GlobalDefinitions entries; Terminal works but I don't like it
played with GUID pooling workflow, though to little avail; modifications to Terminal purchasing workflow, but still very volatile
modified NumberPoolActor and NumberPoolAccessor to make them more straightforward and not use akka ask as a go-between
fixed recovery options so that they do not cause more messages
trailing newline
InventoryItem (packet data) renamed InventoryItemData to remove ambiguity; Terminal functionality improved, allowing for swapping of exo-suits and the restoration of equipment positions
remove yet-unsupported Terminal messaging
made Terminal message more specific; can now put equipment into empty slot on exo-suit change; should report changes better
re-organized function calls to preserved items removed from holster slots on exo-suit change
moved predicate to the end of the list of params for recoverInventory so that repetition can be eliminated and a default value can be assigned
issues with making Tool; committing changes before revert of NumberPoolActor and NumberPoolAccessorActor to see if those broke it
a necessary evil, the reverting of these two Actors; subtask resolution does not work unless I do so, for now
restored the registration portion of tasking back to where it previously was (and better?)
NumberPoolActor and the ...AccessorActor are back to a comfortable place (and better?)
re-draw object in hand when switching exo-suits; build AmmoBoxes for Tool during Terminal-controlled creation, not Tool-controlled creation
order of task cleanup reversed to avoid index mismatch; added itsm to TerminalDefinition
common 5x5 AmmoBox size; added vehicle weapon ammo boxes to terminal
added error catching messages; stopped odd double-registering issue early
resolved issue where multiple subtasks started their main task multiple times; added checks that an object does not register a new GUID when it already has one
wrote unregistration code for Selling items back through the Terminal, repairing logic along the way; also, wrote a top-level GUID find for the Player for use of MoveItem
added framework for starting on Loadouts; managed issue with parent tasks starting before being summoned by child subtasks, often resulting in the complete skip of the execution phase of the parent; refactored registration tasks in WSA
modified Tool structure, exposing the AmmoSlot list a bit more
stuff stuff Tool ammo slot changes to default and comments
basic loadout framework for Infantry; need to integrate
initial work on FavoritesRequest packet
tests for FavoritesRequest packet
increased size of number pool for testing; wrote an algorithm that translates to and from the simplified version of objects stored in loadouts
refactored the tasking for adding Equipment and removing Equipment
updated the inventory so the Map of items does not have to rely on the GUID of an item being set before the item is inserted
untested routine for registering a player character; pushing all changes before making significant changes to the client init code structure
added to comments of BeginZoningMessage; transitioned player through and initial step of a more proper login GUID association
the current avatar is properly registered and there is something of a workflow with the messages and packets
corrected another bit of logic where inventories used to be indexed by object GUID in AvatarConverter; reversed unregister-remove task sequence such that GUID-less object is not allowed to exist in a stable object hierarchy
working Loadout loading
added identification functions to GlobalDefinitions; echo ObjectDelete back to client
accidentally got rid of something in WSA, but now restored; adding extra details to Terminal operations
separated Terminal into separate files and moved files into their own package under \objects\ for now; can delete loadouts now in WSA
better handling of ReloadMessage and MoveItemMessage
framework for better support involving dropping and picking up items
code comments and small modifications, such as the location and structure of the Terminal Equipment definitions
wrote comments in GlobalDefinitions; modified code so that a primitive form of player synchronization now occurs for future testing
added code to display already-dropped Equipment on the ground; limitations are explained; moved TaskResolver to more a global location, though I don't know if that helps
modified avatar unregister logic to ensure vacating player is deleted from other clients 'properly'
more comments; improved checks for MoveItemMessage; squared distances as necessary
subtle changes to login scripting so that test character is always offered
re-organizing the functions in WSA so that only the local objects separate the two message processing blocks
2017-05-30 18:46:01 -04:00
|
|
|
//ammo = 0
|
|
|
|
|
obj.AmmoTypeIndex mustEqual 0
|
|
|
|
|
obj.AmmoType mustEqual Ammo.shotgun_shell
|
|
|
|
|
//ammo -> 1
|
|
|
|
|
obj.NextAmmoType
|
|
|
|
|
obj.AmmoTypeIndex mustEqual 1
|
|
|
|
|
obj.AmmoType mustEqual Ammo.shotgun_shell_AP
|
|
|
|
|
//ammo -> 2 (0)
|
|
|
|
|
obj.NextAmmoType
|
|
|
|
|
obj.AmmoTypeIndex mustEqual 0
|
|
|
|
|
obj.AmmoType mustEqual Ammo.shotgun_shell
|
|
|
|
|
}
|
2017-11-08 21:00:46 -05:00
|
|
|
|
|
|
|
|
"multiple ammo types and multiple fire modes, split (Punisher)" in {
|
|
|
|
|
val obj = Tool(GlobalDefinitions.punisher)
|
|
|
|
|
//ammo = 0, fmode = 0
|
|
|
|
|
obj.FireModeIndex mustEqual 0
|
|
|
|
|
obj.AmmoTypeIndex mustEqual 0
|
|
|
|
|
obj.AmmoType mustEqual Ammo.bullet_9mm
|
|
|
|
|
//ammo = 2, fmode = 1
|
|
|
|
|
obj.NextFireMode
|
|
|
|
|
obj.FireModeIndex mustEqual 1
|
|
|
|
|
obj.AmmoTypeIndex mustEqual 2
|
|
|
|
|
obj.AmmoType mustEqual Ammo.rocket
|
|
|
|
|
//ammo = 3, fmode = 1
|
|
|
|
|
obj.NextAmmoType
|
|
|
|
|
obj.AmmoTypeIndex mustEqual 3
|
|
|
|
|
obj.AmmoType mustEqual Ammo.frag_cartridge
|
|
|
|
|
//ammo = 4, fmode = 1
|
|
|
|
|
obj.NextAmmoType
|
|
|
|
|
obj.AmmoTypeIndex mustEqual 4
|
|
|
|
|
obj.AmmoType mustEqual Ammo.jammer_cartridge
|
|
|
|
|
//ammo = 0, fmode = 0
|
|
|
|
|
obj.NextFireMode
|
|
|
|
|
obj.FireModeIndex mustEqual 0
|
|
|
|
|
obj.AmmoTypeIndex mustEqual 0
|
|
|
|
|
obj.AmmoType mustEqual Ammo.bullet_9mm
|
|
|
|
|
//ammo = 1, fmode = 0
|
|
|
|
|
obj.NextAmmoType
|
|
|
|
|
obj.AmmoTypeIndex mustEqual 1
|
|
|
|
|
obj.AmmoType mustEqual Ammo.bullet_9mm_AP
|
|
|
|
|
//ammo = 5, fmode = 1
|
|
|
|
|
obj.NextFireMode
|
|
|
|
|
obj.NextAmmoType
|
|
|
|
|
obj.FireModeIndex mustEqual 1
|
|
|
|
|
obj.AmmoTypeIndex mustEqual 5
|
|
|
|
|
obj.AmmoType mustEqual Ammo.plasma_cartridge
|
|
|
|
|
//ammo = 2, fmode = 1
|
|
|
|
|
obj.NextAmmoType
|
|
|
|
|
obj.AmmoTypeIndex mustEqual 2
|
|
|
|
|
obj.AmmoType mustEqual Ammo.rocket
|
|
|
|
|
}
|
2018-01-17 07:51:42 -05:00
|
|
|
|
|
|
|
|
"discharge (1)" in {
|
|
|
|
|
val obj = Tool(GlobalDefinitions.punisher)
|
|
|
|
|
obj.Magazine mustEqual 30
|
|
|
|
|
obj.Discharge
|
|
|
|
|
obj.Magazine mustEqual 29
|
|
|
|
|
obj.Discharge
|
|
|
|
|
obj.Discharge
|
|
|
|
|
obj.Magazine mustEqual 27
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
"chamber" in {
|
|
|
|
|
val obj = Tool(GlobalDefinitions.flechette)
|
|
|
|
|
obj.Magazine mustEqual 12
|
|
|
|
|
obj.AmmoSlot.Chamber mustEqual 8
|
|
|
|
|
|
|
|
|
|
obj.Discharge
|
|
|
|
|
obj.Magazine mustEqual 12
|
|
|
|
|
obj.AmmoSlot.Chamber mustEqual 7
|
|
|
|
|
obj.Discharge
|
|
|
|
|
obj.Discharge
|
|
|
|
|
obj.Magazine mustEqual 12
|
|
|
|
|
obj.AmmoSlot.Chamber mustEqual 5
|
|
|
|
|
obj.Discharge
|
|
|
|
|
obj.Discharge
|
|
|
|
|
obj.Discharge
|
|
|
|
|
obj.Discharge
|
|
|
|
|
obj.Magazine mustEqual 12
|
|
|
|
|
obj.AmmoSlot.Chamber mustEqual 1
|
|
|
|
|
obj.Discharge
|
|
|
|
|
obj.Magazine mustEqual 11
|
|
|
|
|
obj.AmmoSlot.Chamber mustEqual 8
|
|
|
|
|
}
|
new stuff for player server classes; this update is not yet complete
adjusted sample Reload code and added insertion and removal functions for inventory
more work on player classes; moving PacketResolution to another branch
decoupling GUIDs from objects; introduced Ammo enum; minor adjustments to inventory system; different object/class hierarchy
transferring basic files from another branch
converted from get/set to accessor/mutator; resolved conflict from name changes
refactored basic components such as GUID and location/orientation
utilities kludge; more fields are given accessor and mutators; create package for vehicle-specific classes
GUID assurance, now with less object creation
test files; changes to how AmmoBox initializes
sorry, a little bit of everything, so much I forgot to write it all down
switched to a unified fire mode object internal to a Tool
importing a heavily modified version of my GUID manager objects from the laternate branch; not finished or tested yet
created a Trait to make Key private, sources and selectors to allow NumberPools to exist independent of a NumberSource; placed Ascending into a misc folder
swapped the Return methods for selectors so that the more primitive logic is the one that needs to be overriden; renamed a selector to be more common; had to update some copyright messages
fixed major logic issue with NumberPool; added comments to NumberSource files
NumberSource tests
simplified and made more consistent the method naming convention of NumberSources
comments for NumberSelectors
starting on NumberSelector tests
modifications that should better support number pools; added a pool hub that acts on a predefined source
adjustment to how Tools and FireModeDefintion keep track of ammunition and ammunition slots; I don't think this is sufficient
small additions to Tools; filled out simple tests for other three Selectors
added object lookup notation for the pool hub
added more NumberSelector tests; removed the word 'Number' from subclass names
re-named classes, re-packaged classes, re-named packages; created new Selector, split pools to create a fallback for the NumberPoolHub
changes to NumberPool classes; tests on NumberPool classes
changes to NumberPool classes; tests on NumberPool classes2
some robust testing for NumberPoolHub, plus necessary modifications to other files
register and unregister functions now use Success and Failure conditions, save for one true thrown Exception
reduced the flow of certain algorithm chains, mainly by adding match statements and removing Exceptions
error message text
the same thing as the last commit, but with NumberPools rather than NumberPoolHub
various types of freeform registration
added sorting functions to Selectors to allow for hotswapping for number pools, especially to and from SpecificSelector; tests for NumberPoolHub
get numbers from an Array of indices, not the list of Numbers, in SimplePool
added a class to represent the four types of recovery kits
comments on Kit files
created package for supporting equipment classes; renamed /definition/ package
adding class for items that construct deployables, the router telepad included
added SimpleItem, classes for game Equipment that do not have internal state; re-organized ObjectDefinition files and the game objects they create to more naturally move around EquipmentSize and InventoryTile (size)
added SimpleItem tests (what they are...); removed example code that has hogging an import from AmmoBox
auto-sort for loading and fitting former inventory content back into the inventory
method of finding first available position to fit an certain size block in the inventory
changed CheckCollision return type to provide Try[List[Int]; fixed all existing references and tests
wrote comments for GridInventory methods; changed insertion param to be of form 'key -> element'
adding features to Player; created definitions for Player class; re-grouped ConstructionItem enumerations
initial work on implants; shuffled classes to better accommodate the new implant system, I think
wrote some tests for Implants; fixing Implant logic
wrote tests for Player class and made adjustments where necessary
basic initialization during Player creation based on exo-suit type
three wrapper Actors for the normal classes
comments on code
modified tests to improve accountability; added Resolver class to deal with multiple tasks that contribute to a larger task
changed Tools to an internal AmmoBox; don't have to def -= symbol if I def _= symbol
LivePlayerList -> MasterPlayerList, and added a Fit def for Player that checks holsters as well as inventory
example of packet conversion can be found with AmmoBoxDefinition
added conversion for ToolDefinition
added all Equipment packet conversion functionality; started working on Avatar-related conversions
continued effort towards a working Player packet conversion test
subclasses of Equipment apparently do not need to overide the type of the PacketConverter for generics
the logical conclusion: it doesn't matter what generics Packet returns so long as it returns an ObjectCreateConverter[] type
separated converters from definitions into files
changed some configuration information to final; added a bunch of converters, not fully tested though
changed function names in converters
replaced WSA packet-driven OCDM with Player object OCDM; upgrade to Float angular data
added partial support for LockerContainer; changed Equipment defaults to a common value
changes to AvatarConverter to include 5th slot; changes to VehicleConverter to make work; implementation of Fury in Vehicle->packet example in WSA
added a seat definition and renovated how the weapon controlled from a seat can be found
comments to files mainly; non-essential functionality to some classes, mostly access determination
moved converter tests to their own test file
write more of this test
added ServiceManager, as it is useful
pool range changes
added AvatarService, as it is useful
straightened out the GUID actors; added the static method for adding AmmoBoxes (to be converted later)
chnages to task resolution operation
complicated Task and TaskResolver logic is now possible; for example, you can schedule giving an AmmoBox a GUID, before giving a Tool a GUID, before placing the Tool in a player's hand; see Suppressor example in WSA
separated the Task trait and the TaskResolver actor into their own classes, moving the former RegistrationTaskResolver class into the /misc/ folder; deleted old backup copy of HubActor; modifications for PoC and supported tests
added better support and protection against putting things in the wrong hand when using inventories and the Player.Slot(n) function
GlobalDefinitions file; added laze pointer as an SItem, and gave it the command detonater management code; additionally fixed spelling of 'detonat[o]r' in Codec; early Terminal class work
updated tests to GlobalDefinitions entries; Terminal works but I don't like it
played with GUID pooling workflow, though to little avail; modifications to Terminal purchasing workflow, but still very volatile
modified NumberPoolActor and NumberPoolAccessor to make them more straightforward and not use akka ask as a go-between
fixed recovery options so that they do not cause more messages
trailing newline
InventoryItem (packet data) renamed InventoryItemData to remove ambiguity; Terminal functionality improved, allowing for swapping of exo-suits and the restoration of equipment positions
remove yet-unsupported Terminal messaging
made Terminal message more specific; can now put equipment into empty slot on exo-suit change; should report changes better
re-organized function calls to preserved items removed from holster slots on exo-suit change
moved predicate to the end of the list of params for recoverInventory so that repetition can be eliminated and a default value can be assigned
issues with making Tool; committing changes before revert of NumberPoolActor and NumberPoolAccessorActor to see if those broke it
a necessary evil, the reverting of these two Actors; subtask resolution does not work unless I do so, for now
restored the registration portion of tasking back to where it previously was (and better?)
NumberPoolActor and the ...AccessorActor are back to a comfortable place (and better?)
re-draw object in hand when switching exo-suits; build AmmoBoxes for Tool during Terminal-controlled creation, not Tool-controlled creation
order of task cleanup reversed to avoid index mismatch; added itsm to TerminalDefinition
common 5x5 AmmoBox size; added vehicle weapon ammo boxes to terminal
added error catching messages; stopped odd double-registering issue early
resolved issue where multiple subtasks started their main task multiple times; added checks that an object does not register a new GUID when it already has one
wrote unregistration code for Selling items back through the Terminal, repairing logic along the way; also, wrote a top-level GUID find for the Player for use of MoveItem
added framework for starting on Loadouts; managed issue with parent tasks starting before being summoned by child subtasks, often resulting in the complete skip of the execution phase of the parent; refactored registration tasks in WSA
modified Tool structure, exposing the AmmoSlot list a bit more
stuff stuff Tool ammo slot changes to default and comments
basic loadout framework for Infantry; need to integrate
initial work on FavoritesRequest packet
tests for FavoritesRequest packet
increased size of number pool for testing; wrote an algorithm that translates to and from the simplified version of objects stored in loadouts
refactored the tasking for adding Equipment and removing Equipment
updated the inventory so the Map of items does not have to rely on the GUID of an item being set before the item is inserted
untested routine for registering a player character; pushing all changes before making significant changes to the client init code structure
added to comments of BeginZoningMessage; transitioned player through and initial step of a more proper login GUID association
the current avatar is properly registered and there is something of a workflow with the messages and packets
corrected another bit of logic where inventories used to be indexed by object GUID in AvatarConverter; reversed unregister-remove task sequence such that GUID-less object is not allowed to exist in a stable object hierarchy
working Loadout loading
added identification functions to GlobalDefinitions; echo ObjectDelete back to client
accidentally got rid of something in WSA, but now restored; adding extra details to Terminal operations
separated Terminal into separate files and moved files into their own package under \objects\ for now; can delete loadouts now in WSA
better handling of ReloadMessage and MoveItemMessage
framework for better support involving dropping and picking up items
code comments and small modifications, such as the location and structure of the Terminal Equipment definitions
wrote comments in GlobalDefinitions; modified code so that a primitive form of player synchronization now occurs for future testing
added code to display already-dropped Equipment on the ground; limitations are explained; moved TaskResolver to more a global location, though I don't know if that helps
modified avatar unregister logic to ensure vacating player is deleted from other clients 'properly'
more comments; improved checks for MoveItemMessage; squared distances as necessary
subtle changes to login scripting so that test character is always offered
re-organizing the functions in WSA so that only the local objects separate the two message processing blocks
2017-05-30 18:46:01 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
"Kit" should {
|
|
|
|
|
"define" in {
|
|
|
|
|
val sample = KitDefinition(Kits.medkit)
|
|
|
|
|
sample.ObjectId mustEqual medkit.ObjectId
|
2017-11-08 21:00:46 -05:00
|
|
|
sample.Tile.Width mustEqual medkit.Tile.Width
|
|
|
|
|
sample.Tile.Height mustEqual medkit.Tile.Height
|
new stuff for player server classes; this update is not yet complete
adjusted sample Reload code and added insertion and removal functions for inventory
more work on player classes; moving PacketResolution to another branch
decoupling GUIDs from objects; introduced Ammo enum; minor adjustments to inventory system; different object/class hierarchy
transferring basic files from another branch
converted from get/set to accessor/mutator; resolved conflict from name changes
refactored basic components such as GUID and location/orientation
utilities kludge; more fields are given accessor and mutators; create package for vehicle-specific classes
GUID assurance, now with less object creation
test files; changes to how AmmoBox initializes
sorry, a little bit of everything, so much I forgot to write it all down
switched to a unified fire mode object internal to a Tool
importing a heavily modified version of my GUID manager objects from the laternate branch; not finished or tested yet
created a Trait to make Key private, sources and selectors to allow NumberPools to exist independent of a NumberSource; placed Ascending into a misc folder
swapped the Return methods for selectors so that the more primitive logic is the one that needs to be overriden; renamed a selector to be more common; had to update some copyright messages
fixed major logic issue with NumberPool; added comments to NumberSource files
NumberSource tests
simplified and made more consistent the method naming convention of NumberSources
comments for NumberSelectors
starting on NumberSelector tests
modifications that should better support number pools; added a pool hub that acts on a predefined source
adjustment to how Tools and FireModeDefintion keep track of ammunition and ammunition slots; I don't think this is sufficient
small additions to Tools; filled out simple tests for other three Selectors
added object lookup notation for the pool hub
added more NumberSelector tests; removed the word 'Number' from subclass names
re-named classes, re-packaged classes, re-named packages; created new Selector, split pools to create a fallback for the NumberPoolHub
changes to NumberPool classes; tests on NumberPool classes
changes to NumberPool classes; tests on NumberPool classes2
some robust testing for NumberPoolHub, plus necessary modifications to other files
register and unregister functions now use Success and Failure conditions, save for one true thrown Exception
reduced the flow of certain algorithm chains, mainly by adding match statements and removing Exceptions
error message text
the same thing as the last commit, but with NumberPools rather than NumberPoolHub
various types of freeform registration
added sorting functions to Selectors to allow for hotswapping for number pools, especially to and from SpecificSelector; tests for NumberPoolHub
get numbers from an Array of indices, not the list of Numbers, in SimplePool
added a class to represent the four types of recovery kits
comments on Kit files
created package for supporting equipment classes; renamed /definition/ package
adding class for items that construct deployables, the router telepad included
added SimpleItem, classes for game Equipment that do not have internal state; re-organized ObjectDefinition files and the game objects they create to more naturally move around EquipmentSize and InventoryTile (size)
added SimpleItem tests (what they are...); removed example code that has hogging an import from AmmoBox
auto-sort for loading and fitting former inventory content back into the inventory
method of finding first available position to fit an certain size block in the inventory
changed CheckCollision return type to provide Try[List[Int]; fixed all existing references and tests
wrote comments for GridInventory methods; changed insertion param to be of form 'key -> element'
adding features to Player; created definitions for Player class; re-grouped ConstructionItem enumerations
initial work on implants; shuffled classes to better accommodate the new implant system, I think
wrote some tests for Implants; fixing Implant logic
wrote tests for Player class and made adjustments where necessary
basic initialization during Player creation based on exo-suit type
three wrapper Actors for the normal classes
comments on code
modified tests to improve accountability; added Resolver class to deal with multiple tasks that contribute to a larger task
changed Tools to an internal AmmoBox; don't have to def -= symbol if I def _= symbol
LivePlayerList -> MasterPlayerList, and added a Fit def for Player that checks holsters as well as inventory
example of packet conversion can be found with AmmoBoxDefinition
added conversion for ToolDefinition
added all Equipment packet conversion functionality; started working on Avatar-related conversions
continued effort towards a working Player packet conversion test
subclasses of Equipment apparently do not need to overide the type of the PacketConverter for generics
the logical conclusion: it doesn't matter what generics Packet returns so long as it returns an ObjectCreateConverter[] type
separated converters from definitions into files
changed some configuration information to final; added a bunch of converters, not fully tested though
changed function names in converters
replaced WSA packet-driven OCDM with Player object OCDM; upgrade to Float angular data
added partial support for LockerContainer; changed Equipment defaults to a common value
changes to AvatarConverter to include 5th slot; changes to VehicleConverter to make work; implementation of Fury in Vehicle->packet example in WSA
added a seat definition and renovated how the weapon controlled from a seat can be found
comments to files mainly; non-essential functionality to some classes, mostly access determination
moved converter tests to their own test file
write more of this test
added ServiceManager, as it is useful
pool range changes
added AvatarService, as it is useful
straightened out the GUID actors; added the static method for adding AmmoBoxes (to be converted later)
chnages to task resolution operation
complicated Task and TaskResolver logic is now possible; for example, you can schedule giving an AmmoBox a GUID, before giving a Tool a GUID, before placing the Tool in a player's hand; see Suppressor example in WSA
separated the Task trait and the TaskResolver actor into their own classes, moving the former RegistrationTaskResolver class into the /misc/ folder; deleted old backup copy of HubActor; modifications for PoC and supported tests
added better support and protection against putting things in the wrong hand when using inventories and the Player.Slot(n) function
GlobalDefinitions file; added laze pointer as an SItem, and gave it the command detonater management code; additionally fixed spelling of 'detonat[o]r' in Codec; early Terminal class work
updated tests to GlobalDefinitions entries; Terminal works but I don't like it
played with GUID pooling workflow, though to little avail; modifications to Terminal purchasing workflow, but still very volatile
modified NumberPoolActor and NumberPoolAccessor to make them more straightforward and not use akka ask as a go-between
fixed recovery options so that they do not cause more messages
trailing newline
InventoryItem (packet data) renamed InventoryItemData to remove ambiguity; Terminal functionality improved, allowing for swapping of exo-suits and the restoration of equipment positions
remove yet-unsupported Terminal messaging
made Terminal message more specific; can now put equipment into empty slot on exo-suit change; should report changes better
re-organized function calls to preserved items removed from holster slots on exo-suit change
moved predicate to the end of the list of params for recoverInventory so that repetition can be eliminated and a default value can be assigned
issues with making Tool; committing changes before revert of NumberPoolActor and NumberPoolAccessorActor to see if those broke it
a necessary evil, the reverting of these two Actors; subtask resolution does not work unless I do so, for now
restored the registration portion of tasking back to where it previously was (and better?)
NumberPoolActor and the ...AccessorActor are back to a comfortable place (and better?)
re-draw object in hand when switching exo-suits; build AmmoBoxes for Tool during Terminal-controlled creation, not Tool-controlled creation
order of task cleanup reversed to avoid index mismatch; added itsm to TerminalDefinition
common 5x5 AmmoBox size; added vehicle weapon ammo boxes to terminal
added error catching messages; stopped odd double-registering issue early
resolved issue where multiple subtasks started their main task multiple times; added checks that an object does not register a new GUID when it already has one
wrote unregistration code for Selling items back through the Terminal, repairing logic along the way; also, wrote a top-level GUID find for the Player for use of MoveItem
added framework for starting on Loadouts; managed issue with parent tasks starting before being summoned by child subtasks, often resulting in the complete skip of the execution phase of the parent; refactored registration tasks in WSA
modified Tool structure, exposing the AmmoSlot list a bit more
stuff stuff Tool ammo slot changes to default and comments
basic loadout framework for Infantry; need to integrate
initial work on FavoritesRequest packet
tests for FavoritesRequest packet
increased size of number pool for testing; wrote an algorithm that translates to and from the simplified version of objects stored in loadouts
refactored the tasking for adding Equipment and removing Equipment
updated the inventory so the Map of items does not have to rely on the GUID of an item being set before the item is inserted
untested routine for registering a player character; pushing all changes before making significant changes to the client init code structure
added to comments of BeginZoningMessage; transitioned player through and initial step of a more proper login GUID association
the current avatar is properly registered and there is something of a workflow with the messages and packets
corrected another bit of logic where inventories used to be indexed by object GUID in AvatarConverter; reversed unregister-remove task sequence such that GUID-less object is not allowed to exist in a stable object hierarchy
working Loadout loading
added identification functions to GlobalDefinitions; echo ObjectDelete back to client
accidentally got rid of something in WSA, but now restored; adding extra details to Terminal operations
separated Terminal into separate files and moved files into their own package under \objects\ for now; can delete loadouts now in WSA
better handling of ReloadMessage and MoveItemMessage
framework for better support involving dropping and picking up items
code comments and small modifications, such as the location and structure of the Terminal Equipment definitions
wrote comments in GlobalDefinitions; modified code so that a primitive form of player synchronization now occurs for future testing
added code to display already-dropped Equipment on the ground; limitations are explained; moved TaskResolver to more a global location, though I don't know if that helps
modified avatar unregister logic to ensure vacating player is deleted from other clients 'properly'
more comments; improved checks for MoveItemMessage; squared distances as necessary
subtle changes to login scripting so that test character is always offered
re-organizing the functions in WSA so that only the local objects separate the two message processing blocks
2017-05-30 18:46:01 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
"construct" in {
|
|
|
|
|
val obj : Kit = Kit(medkit)
|
|
|
|
|
obj.Definition.ObjectId mustEqual medkit.ObjectId
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
"ConstructionItem" should {
|
|
|
|
|
val advanced_ace_tr = ConstructionItemDefinition(39)
|
|
|
|
|
advanced_ace_tr.Modes += DeployedItem.tank_traps
|
|
|
|
|
advanced_ace_tr.Modes += DeployedItem.portable_manned_turret_tr
|
|
|
|
|
advanced_ace_tr.Modes += DeployedItem.deployable_shield_generator
|
|
|
|
|
advanced_ace_tr.Tile = InventoryTile.Tile63
|
|
|
|
|
|
|
|
|
|
"define" in {
|
|
|
|
|
val sample = ConstructionItemDefinition(Unit.advanced_ace)
|
|
|
|
|
sample.Modes += DeployedItem.tank_traps
|
|
|
|
|
sample.Modes += DeployedItem.portable_manned_turret_tr
|
|
|
|
|
sample.Modes += DeployedItem.deployable_shield_generator
|
|
|
|
|
sample.Tile = InventoryTile.Tile63
|
|
|
|
|
sample.Modes.head mustEqual DeployedItem.tank_traps
|
|
|
|
|
sample.Modes(1) mustEqual DeployedItem.portable_manned_turret_tr
|
|
|
|
|
sample.Modes(2) mustEqual DeployedItem.deployable_shield_generator
|
2017-11-08 21:00:46 -05:00
|
|
|
sample.Tile.Width mustEqual InventoryTile.Tile63.Width
|
|
|
|
|
sample.Tile.Height mustEqual InventoryTile.Tile63.Height
|
new stuff for player server classes; this update is not yet complete
adjusted sample Reload code and added insertion and removal functions for inventory
more work on player classes; moving PacketResolution to another branch
decoupling GUIDs from objects; introduced Ammo enum; minor adjustments to inventory system; different object/class hierarchy
transferring basic files from another branch
converted from get/set to accessor/mutator; resolved conflict from name changes
refactored basic components such as GUID and location/orientation
utilities kludge; more fields are given accessor and mutators; create package for vehicle-specific classes
GUID assurance, now with less object creation
test files; changes to how AmmoBox initializes
sorry, a little bit of everything, so much I forgot to write it all down
switched to a unified fire mode object internal to a Tool
importing a heavily modified version of my GUID manager objects from the laternate branch; not finished or tested yet
created a Trait to make Key private, sources and selectors to allow NumberPools to exist independent of a NumberSource; placed Ascending into a misc folder
swapped the Return methods for selectors so that the more primitive logic is the one that needs to be overriden; renamed a selector to be more common; had to update some copyright messages
fixed major logic issue with NumberPool; added comments to NumberSource files
NumberSource tests
simplified and made more consistent the method naming convention of NumberSources
comments for NumberSelectors
starting on NumberSelector tests
modifications that should better support number pools; added a pool hub that acts on a predefined source
adjustment to how Tools and FireModeDefintion keep track of ammunition and ammunition slots; I don't think this is sufficient
small additions to Tools; filled out simple tests for other three Selectors
added object lookup notation for the pool hub
added more NumberSelector tests; removed the word 'Number' from subclass names
re-named classes, re-packaged classes, re-named packages; created new Selector, split pools to create a fallback for the NumberPoolHub
changes to NumberPool classes; tests on NumberPool classes
changes to NumberPool classes; tests on NumberPool classes2
some robust testing for NumberPoolHub, plus necessary modifications to other files
register and unregister functions now use Success and Failure conditions, save for one true thrown Exception
reduced the flow of certain algorithm chains, mainly by adding match statements and removing Exceptions
error message text
the same thing as the last commit, but with NumberPools rather than NumberPoolHub
various types of freeform registration
added sorting functions to Selectors to allow for hotswapping for number pools, especially to and from SpecificSelector; tests for NumberPoolHub
get numbers from an Array of indices, not the list of Numbers, in SimplePool
added a class to represent the four types of recovery kits
comments on Kit files
created package for supporting equipment classes; renamed /definition/ package
adding class for items that construct deployables, the router telepad included
added SimpleItem, classes for game Equipment that do not have internal state; re-organized ObjectDefinition files and the game objects they create to more naturally move around EquipmentSize and InventoryTile (size)
added SimpleItem tests (what they are...); removed example code that has hogging an import from AmmoBox
auto-sort for loading and fitting former inventory content back into the inventory
method of finding first available position to fit an certain size block in the inventory
changed CheckCollision return type to provide Try[List[Int]; fixed all existing references and tests
wrote comments for GridInventory methods; changed insertion param to be of form 'key -> element'
adding features to Player; created definitions for Player class; re-grouped ConstructionItem enumerations
initial work on implants; shuffled classes to better accommodate the new implant system, I think
wrote some tests for Implants; fixing Implant logic
wrote tests for Player class and made adjustments where necessary
basic initialization during Player creation based on exo-suit type
three wrapper Actors for the normal classes
comments on code
modified tests to improve accountability; added Resolver class to deal with multiple tasks that contribute to a larger task
changed Tools to an internal AmmoBox; don't have to def -= symbol if I def _= symbol
LivePlayerList -> MasterPlayerList, and added a Fit def for Player that checks holsters as well as inventory
example of packet conversion can be found with AmmoBoxDefinition
added conversion for ToolDefinition
added all Equipment packet conversion functionality; started working on Avatar-related conversions
continued effort towards a working Player packet conversion test
subclasses of Equipment apparently do not need to overide the type of the PacketConverter for generics
the logical conclusion: it doesn't matter what generics Packet returns so long as it returns an ObjectCreateConverter[] type
separated converters from definitions into files
changed some configuration information to final; added a bunch of converters, not fully tested though
changed function names in converters
replaced WSA packet-driven OCDM with Player object OCDM; upgrade to Float angular data
added partial support for LockerContainer; changed Equipment defaults to a common value
changes to AvatarConverter to include 5th slot; changes to VehicleConverter to make work; implementation of Fury in Vehicle->packet example in WSA
added a seat definition and renovated how the weapon controlled from a seat can be found
comments to files mainly; non-essential functionality to some classes, mostly access determination
moved converter tests to their own test file
write more of this test
added ServiceManager, as it is useful
pool range changes
added AvatarService, as it is useful
straightened out the GUID actors; added the static method for adding AmmoBoxes (to be converted later)
chnages to task resolution operation
complicated Task and TaskResolver logic is now possible; for example, you can schedule giving an AmmoBox a GUID, before giving a Tool a GUID, before placing the Tool in a player's hand; see Suppressor example in WSA
separated the Task trait and the TaskResolver actor into their own classes, moving the former RegistrationTaskResolver class into the /misc/ folder; deleted old backup copy of HubActor; modifications for PoC and supported tests
added better support and protection against putting things in the wrong hand when using inventories and the Player.Slot(n) function
GlobalDefinitions file; added laze pointer as an SItem, and gave it the command detonater management code; additionally fixed spelling of 'detonat[o]r' in Codec; early Terminal class work
updated tests to GlobalDefinitions entries; Terminal works but I don't like it
played with GUID pooling workflow, though to little avail; modifications to Terminal purchasing workflow, but still very volatile
modified NumberPoolActor and NumberPoolAccessor to make them more straightforward and not use akka ask as a go-between
fixed recovery options so that they do not cause more messages
trailing newline
InventoryItem (packet data) renamed InventoryItemData to remove ambiguity; Terminal functionality improved, allowing for swapping of exo-suits and the restoration of equipment positions
remove yet-unsupported Terminal messaging
made Terminal message more specific; can now put equipment into empty slot on exo-suit change; should report changes better
re-organized function calls to preserved items removed from holster slots on exo-suit change
moved predicate to the end of the list of params for recoverInventory so that repetition can be eliminated and a default value can be assigned
issues with making Tool; committing changes before revert of NumberPoolActor and NumberPoolAccessorActor to see if those broke it
a necessary evil, the reverting of these two Actors; subtask resolution does not work unless I do so, for now
restored the registration portion of tasking back to where it previously was (and better?)
NumberPoolActor and the ...AccessorActor are back to a comfortable place (and better?)
re-draw object in hand when switching exo-suits; build AmmoBoxes for Tool during Terminal-controlled creation, not Tool-controlled creation
order of task cleanup reversed to avoid index mismatch; added itsm to TerminalDefinition
common 5x5 AmmoBox size; added vehicle weapon ammo boxes to terminal
added error catching messages; stopped odd double-registering issue early
resolved issue where multiple subtasks started their main task multiple times; added checks that an object does not register a new GUID when it already has one
wrote unregistration code for Selling items back through the Terminal, repairing logic along the way; also, wrote a top-level GUID find for the Player for use of MoveItem
added framework for starting on Loadouts; managed issue with parent tasks starting before being summoned by child subtasks, often resulting in the complete skip of the execution phase of the parent; refactored registration tasks in WSA
modified Tool structure, exposing the AmmoSlot list a bit more
stuff stuff Tool ammo slot changes to default and comments
basic loadout framework for Infantry; need to integrate
initial work on FavoritesRequest packet
tests for FavoritesRequest packet
increased size of number pool for testing; wrote an algorithm that translates to and from the simplified version of objects stored in loadouts
refactored the tasking for adding Equipment and removing Equipment
updated the inventory so the Map of items does not have to rely on the GUID of an item being set before the item is inserted
untested routine for registering a player character; pushing all changes before making significant changes to the client init code structure
added to comments of BeginZoningMessage; transitioned player through and initial step of a more proper login GUID association
the current avatar is properly registered and there is something of a workflow with the messages and packets
corrected another bit of logic where inventories used to be indexed by object GUID in AvatarConverter; reversed unregister-remove task sequence such that GUID-less object is not allowed to exist in a stable object hierarchy
working Loadout loading
added identification functions to GlobalDefinitions; echo ObjectDelete back to client
accidentally got rid of something in WSA, but now restored; adding extra details to Terminal operations
separated Terminal into separate files and moved files into their own package under \objects\ for now; can delete loadouts now in WSA
better handling of ReloadMessage and MoveItemMessage
framework for better support involving dropping and picking up items
code comments and small modifications, such as the location and structure of the Terminal Equipment definitions
wrote comments in GlobalDefinitions; modified code so that a primitive form of player synchronization now occurs for future testing
added code to display already-dropped Equipment on the ground; limitations are explained; moved TaskResolver to more a global location, though I don't know if that helps
modified avatar unregister logic to ensure vacating player is deleted from other clients 'properly'
more comments; improved checks for MoveItemMessage; squared distances as necessary
subtle changes to login scripting so that test character is always offered
re-organizing the functions in WSA so that only the local objects separate the two message processing blocks
2017-05-30 18:46:01 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
"construct" in {
|
|
|
|
|
val obj : ConstructionItem = ConstructionItem(advanced_ace_tr)
|
|
|
|
|
obj.Definition.ObjectId mustEqual advanced_ace_tr.ObjectId
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
"fire mode" in {
|
|
|
|
|
//explanation: router_telepad has one fire mode and that fire mode is our only option
|
|
|
|
|
val router_telepad : ConstructionItemDefinition = ConstructionItemDefinition(Unit.router_telepad)
|
|
|
|
|
router_telepad.Modes += DeployedItem.router_telepad_deployable
|
|
|
|
|
val obj : ConstructionItem = ConstructionItem(router_telepad)
|
|
|
|
|
//fmode = 0
|
|
|
|
|
obj.FireModeIndex mustEqual 0
|
|
|
|
|
obj.FireMode mustEqual DeployedItem.router_telepad_deployable
|
|
|
|
|
//fmode -> 1 (0)
|
|
|
|
|
obj.FireModeIndex = 1
|
|
|
|
|
obj.FireModeIndex mustEqual 0
|
|
|
|
|
obj.FireMode mustEqual DeployedItem.router_telepad_deployable
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
"multiple fire modes" in {
|
|
|
|
|
//explanation: advanced_ace_tr has three fire modes; adjusting the FireMode changes between them
|
|
|
|
|
val obj : ConstructionItem = ConstructionItem(advanced_ace_tr)
|
|
|
|
|
//fmode = 0
|
|
|
|
|
obj.FireModeIndex mustEqual 0
|
|
|
|
|
obj.FireMode mustEqual DeployedItem.tank_traps
|
|
|
|
|
//fmode -> 1
|
|
|
|
|
obj.NextFireMode
|
|
|
|
|
obj.FireModeIndex mustEqual 1
|
|
|
|
|
obj.FireMode mustEqual DeployedItem.portable_manned_turret_tr
|
|
|
|
|
//fmode -> 2
|
|
|
|
|
obj.NextFireMode
|
|
|
|
|
obj.FireModeIndex mustEqual 2
|
|
|
|
|
obj.FireMode mustEqual DeployedItem.deployable_shield_generator
|
|
|
|
|
//fmode -> 0
|
|
|
|
|
obj.NextFireMode
|
|
|
|
|
obj.FireModeIndex mustEqual 0
|
|
|
|
|
obj.FireMode mustEqual DeployedItem.tank_traps
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
"SimpleItem" should {
|
|
|
|
|
"define" in {
|
|
|
|
|
val sample = SimpleItemDefinition(SItem.remote_electronics_kit)
|
|
|
|
|
sample.ObjectId mustEqual remote_electronics_kit.ObjectId
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
"construct" in {
|
|
|
|
|
val obj : SimpleItem = SimpleItem(remote_electronics_kit)
|
|
|
|
|
obj.Definition.ObjectId mustEqual remote_electronics_kit.ObjectId
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|