* internalized the actions of the VehicleRemover into the vehicle control agency; this required modifications to vehicle deconstruction messaging, but also had implications for the vehicle spawn pad
* fixed tests; created a with-context ActorTest environment; hacked away the unnecessary aspects of VehicleRemover
* changes to tests; simplifications to terminated cargoing abilities
* removing unnecessary indirection from cargo handling at the end of a vehicle's life
* Fix resource silos not showing the correct charge levels after server startup
* Make all continents have broadcast warpgates, disable geowarps, common initialization functions for zones
* Make instant action respect spawn point overrides e.g. z offset
* /warp and /zone restrictions from PTSv3
* Allow players hit by EMPs to disable implants correctly to prevent infinite stamina drain
* Quick fix to stop VehicleRemover from crashing if the target vehicle has no Actor assigned
* refactored ZoneActor for external calls; earliest code for calculating Instant Action placement
* created a building definition so that SOI is no longer indeterminate; gave hot spots projector a longer-lasting backup for purposes of activity retention; instant action ramp-up works
* filled out instant action messages; refactored main method
* packet and initial tests for DroppodFreefallingMessage; drop pod definition, packet converter, and consideration in WSA and InterstellarCluster instant action functionality; droppods now work
* duplicated soi information; modified priority of instant action; assigned cavern status; added reset for instant action failure; implant interrupt condition; wrote comments
* no instant action droppods; added messages for cancelling instant action when certain conditions occur; wilderness instant action request
* made generic the entire instant action process to shoehorn the whole of the sanctuary recall process into it; I hope you're happy
* test fix; vehicle hacking fix; no more artificial NTU drain
* escape case for zoning last chance; descriptive mesages condense similar calls
* something of a merge repair
* bog-standard order_terminal amenities now take damage up to the point of destruction and can be repaired from destruction to functional to the point of being fully repaired; this is mostly proof fo concept
* restored proper destruction to FacilityTurrets; extended proper rrepairs to FacilityTurrets; co-opted terminal hacking into TerminalControl; started to expand on hacking protocol, but chose restraint
* changes made thus that a clear Definition hierarchy is established; all of this is in line with making future changes to repair/destroy variables, and making generic the repair code
* all meaningful facility amenities take damage and can be repaired; spawn tubes can be destroyed and the base will properly lose spawns (and show it on the map); some hack logic has been redistributed into the appropriate control objects, following in the wake of repair/damage logic
* deployables are repairable; the TRAP has been converted into a ComplexDeployable; changed the nature of the Repairable traits
* player bank repair and medapp heal has been moved out from WSA into PlayerControl
* overhaul of Progress callback system and the inclusion of player revival as a Progress activity
* begun relocating functionality for hacking outside of WSA; set up behavoir mixin for cargo operations, in order to move vehicle hack function, but did not yet integrate
* integration of the actor behavior mixin for vehicle cargo operations to support the integration of vehicle hacking finalization
* establishing inheritance/override potential of Damageable activity; Generator and SpawnTube map behavior behavior (currently inactive)
* ImplantTerminalMech objects now have a 'with-coordinates' constructor and a deprecated 'no-coordinates' constructor; implants mechs and interfaces are now damageable and repairable, and their damage state can also block mounting
* generators are destroyed and repaired properly, and even explode, killing a radius-worth of players
* destroy and repair pass on deployables, except for explosive types
* Damageable pass; client synchronization pass
* helpful comments
* some tests for damageable and repairable; refined output and repaired existing tests
* enabled friendly fire check and recovery
* handled friendly fire against allied mines; moved jammer code to common damageable behavior
* tweaks to damageability, infantry heal and repair, and sensor and explosive animations
* animations; framework for future vitals events; closing database connections
* adding some deployable tests; fixing a bunch of other tests; History is back
* testing for basic Damageable functions; removing a log message
* finicky animation stuff
* event messages to the Generator to represent health changes
* damage against BFR's is now only used against mythical creatures
* test fix
* building guid fixes for zone tests; spawn pad control allocates messaging targets more carefully; additional check for building registration in ZoneActor
* the nature of the amenity/zone interaction changed
* constructed service actor to handle persistence of player on server beyond the reaches of WSA from one login to the next; created in PSLogin, interfaced with and updated in WSA
* for what it's worth, players can be completely logged out of the world after 60s of inactivity, alive Infantry only right now; some code was removed from WSA to make it accessible to other classes but it's incomparable to the new code; broke, fixed, compromised on the code that handles loadouts, server login time, etc.
* moved another common vehicle function into global space; persistence object for players in vehicles during log-out or relogging in a vehicle
* support for relogging when dead/released/unfound; silenced implant slot setup during character select screen
* tested and commented code for managing player avatar persistence
* clarificaion of WSA postStop
* test fixed
* postStop change to account for WSA being cut short during initialization
* clarification of SquadService logout
* player died during setup; probably a relog
* kill the doppelganger WSA; die when you are actually dead
* created manifest to assist with vehicle gating; vehicle gating now accomodates the persistence model much better
* fixed the test
* fixed initial vehicle seat access permissions; moved a subscription to AvatarService to support persistence
* bug fixes: safer GridInventory collision checks, plus specific exceptions; SessionRouter waits for the account intermediary before allowing itself to be started; WSA - match error colution, and MAX without arm now creates the arm it expects
* adjusted insertion and removal code to make inventory management less prone to partoial insertions of removals; inventory integrity checking code writen, but no plans on implementing it yet
* Add functionality for cavern sentry turrets
* Add missing LastDischarge on Tool
* Fix BuildingControl GUID errors on server startup
* Fix instant REK access to terminals in a cavern facility with a hacked CC
* Simplify CC Amenity matching
* Modify warning to match disabled functionality
* fix AvatarService tests
* updated README section in regards to PSCrypto
* better wording, imho
* modifying the construction of Building entities so to properly register them with the zone GUID system
* fixed tests
* perform no damage if the target is already destroyed; correct destruction timer override on sensor-type deployables
* framing vehicle remover tasks differently; screening for valid objects at some places in WSA; fixed router's internal telepad utility
* corrected issue with unique control agent Actor names for Players; propagated change to all dynamic objects (not those instantiated at server time)
* test fix
* another test fix; this time, Travis is having trouble with it
* Revert back to using vehicle GUID for target gone check when jacking, as GUIDs are now retained when an object is removed from the world
* Don't allow dead vehicles to be repaired
* Don't show repair bar on dead vehicles
* Add IsDead flag to Vehicle
* Fix missing ObjectType on LocalBuildings, causing pain fields to stop working due to no SOI radius being set
* Fix damage logic for pain fields that don't rely on the nearest door
* Transfer base benefits via lattice
* Missed two Building.SendMapUpdate -> Building.TriggerZoneMapUpdate
* Fix Building tests
* fix isAnchored / isOverdrived faction check
* Faction specific MAX definitions
* GenericActionMessage documentation
* MAX Capacitor functionality and changes to damage resolution for NC MAX shield
* all matters related to vehicle events, including tests, adjusted so that the service actor internalizes a specific zone; major adjustments to the order fulfillment logic of vehicle spawn pads; removed a bunch of unnecessary things such as auto-drive guidance
* all matters related to local events, including tests, adjusted so that the service actor internalizes a specific zone; special consideration for proximity units and tests; muted some excessive logging
* all matters related to avatar events, including tests, adjusted so that the service actor internalizes a specific zone; special considerations for resource silos and painbox elements
* explicit trait that acts as an owner of Amenity objects (Building and Vehicle); generalization of <obj>.Owner.Zone statement
* reduced log spam from proximity terminal activity
* tightened vehicle spawn pad control protocol; finally made the player re-appear if the vehicle doesn't spawn/mount correctly; pad operates independent of the person who submitted the current order so less chances for crash
* adjusted workflow for vehicle spawn pad task management
* constrain angles on specialized yaw and pitch fields
* integrated new Angular Codec into OCM and OCDM of avatar; corrected tests; wrote shortcut for whether a unit is moving (under its own power)
* apply clamp
* Accessed containers while moving
Removed unintentional code duplication outside of conditional.
* resolved merge of multi-PR-merge master branch supporting gating branch
* making adjustments to the distinctions between building map id and building GUID, where necessary, to assist with the loading process
* custom spawn tube definitions for the sanctuary VT_building's
* Move door orientation logic from the door itself to the IFF lock, as the lock has the correct orientation in the UBR files, whereas the door does not.
* Remove ModelID from buildings (is now GUID) and change "ID" to be "MapId". A building can also be constructed with both a GUID and MapID.
* Update Maps.scala and Zones.scala to (for the moment) only have Ishundar configured with Sounours V3 playtest base ownership. Default starting zone is also moved to Ishundar for now.
* Fix oopsie with West Zaqar Tower
* Add proximity terminal positions to constructors
* Offset vehicle spawning by the correct amount from game_objects.adb.lst
* Orient players correctly when spawning at a respawn tube
* Apply a 90 degree offset to tech plant garage locks, as these are the only locks where the orientation does not match the orientation of the door
* Add missing spawn terminals, repair/rearm terminals for both ground and air.
* Additional documentation for GOAM / PAM packets
* Add extra arguments to building LocalObjects to make it a bit more DRY and reduce line count for map files
* Split maps configuration into separate files and add every above ground map (including battle islands and oshur prime)
* Fix ZoneTest typo
* Update vehicle spawn pads to use the correct object types, Z offsets and Z orient offsets
* Update ZoneMaps with the new vehicle spawn pad definitions and fix a few issues with sanctuary GUIDs (special thanks to the one person that used capitals in the .lst files when no other object uses them)
* Comment out duplicate instance of ObjectDetachMessage being sent
* Apparently TR sanc has an extra 6 repair silos, now accounted for.
* Move door orientation logic from the door itself to the IFF lock, as the lock has the correct orientation in the UBR files, whereas the door does not.
* Remove ModelID from buildings (is now GUID) and change "ID" to be "MapId". A building can also be constructed with both a GUID and MapID.
* Update Maps.scala and Zones.scala to (for the moment) only have Ishundar configured with Sounours V3 playtest base ownership. Default starting zone is also moved to Ishundar for now.
* Fix oopsie with West Zaqar Tower
* Add proximity terminal positions to constructors
* Offset vehicle spawning by the correct amount from game_objects.adb.lst
* Orient players correctly when spawning at a respawn tube
* Apply a 90 degree offset to tech plant garage locks, as these are the only locks where the orientation does not match the orientation of the door
* Add missing spawn terminals, repair/rearm terminals for both ground and air.
* Additional documentation for GOAM / PAM packets
* power outage failure resulting in the destruction of the original ocm-fixes branch; the git branch refs were corrupted during commit, but the up-to-date changed files remained intact
* eliminating the need for CommonFieldData2 and CommonFieldData2WithPlacement
* in the middle of integrating CommonFieldData into DetailedLockerContainerData (but not standard LockerContainerData); added field for final boolean in WeaponData
* adding faction affinity to Equipment (to match functionality; not becuase I know what ends ...)
* in the middle of integrating CommonFieldData into DetailedCommandDetonaterData
* applying faction affinity to objects at time of terminal production (but to what ends?); required BoomerTrigger and AmmoBox to always report as NEUTRAL internally
* completed the transition from using the old class-based order terminal system to the page-based order terminal system; unused terminal classes have been eliminated
* more closely aligned TelepadDeployableData and InternalTelepadDeployableData
* modifying TelepadDeployableData make it generic and eliminate the need for InternalTelepadDeployableData after fixing a packet converter to utilize DroppedItemData
* modified Terminal operation to branch further outwards from Terminal.Request to the TerminalDefinition's Request method; modified tests to reflect update
* loosening up matrix terminal definition limitations
* modified ProximityTerminal to support a custom defintition class
* rendered the message passing system for Terminals general (Any) in the full scale so it can be specific in instance cases
* refactored and moved both EquipmentSlot and ExoSuitDefinition
* (re)load Favorites each time player (re)spawns
* modifications to ProximityUnit and related classes to internalize the effect control for the terminal, removing the flywheel functiuonality from WSA
* proximity operations for medical terminals (the one in the Anguta lobby, specifically) is functional; some entities besides Player now keep track of the continent they possess, a necessary compromise for proximity ops
* repair rearm silos (Anguta courtyard East) demonstrate operational behavior when lattice benefits are active
* proximity terminals may now juggle multiple targets that move in and out of range and change validity over time
* previous rebase; preparing for special location + offset calculations for utilities
* working location-based proximity repair terminals for the lodestar, utilizing new fields in the vehicle definition, new configuration method in the utilities, and new calculations for Vector3 entities; some comments and tests
* separated ProximityTarget; updated existing terminals; restored defaults; preparing to fix tests
* tests involving the proximity unit workflow
* dismantling a portion of the proximity terminal machinery that is no longer necessary and only poses risk to the system; removing temporary code used to quickly test vehicle silo repairs
* redid splash damage radial degrade calculations; lasher damage fixed to 6/0 or 2/4 depending on armor; fixed direct hit distance for weapons that act like slash weapons; gave Falcon a valid projectile
* delayed resource silo startup to avoid crash; discovered issue with MAX armor resulting from incorrect manipulation of inventory items during suit transfer
* modifications to consider a specific modifier that exists on some vehicles and armored equipment called Subtract, a DamageProfile that reduces damage due to a set flag; manually controlling damage tick marks rather than relying only on HitHint (from client)
* Tools now have default firemodes (temporary?); ammo gotten from loadouts is always full; loadouts and exo-suits juggle armor values differently on being changed; log messages for damage to players and vehicles
* weapons with one (last) shot need support communicating that one (last) shot
* fixing tests
* correcting the codec for BindPlayerMessage
* changed wording that identifies the damage log entries
* switching exosuit no longer causes butterfingers
* extending exosuit swap armor value changes to infantry loadout changes
* ranges removed from non-vehicle containers
* enabled partial damage functionality to facility turrets
* BindPlayerMessage replacing BattleplanMessage for purposes of depicting the closest AMS spawn point; specific enums in relation to spawning in BPM and SpawnRequestMessage
* rewrote exo-suit switching and loadout switching code, paying extra-special attention for the needs of MAX's
* quick amendment for previous commit
* switching from mount point check to seat checks in VehicleRemover; started refactoring of Cargo functions before realizing how complicated the full effort would be, so these changes are merely wrapping object identification by GUID
* adding a minor server delay to terminal operations
* added short and detailed codecs for Telepad, and converter for switching between Telepad and packets; modified Utility to construct a formal TeleportPadTerminal that associates the Telepad with a Router; can now pull telepad Equipment from Router terminal utilities
* this code supports operation of the deployable-side telepad
* basic teleportation between the Router and the remote telepad is functional; an ever-present internal telepad utility was added to the Router to facilitate this teleportation
* breakdown of Router teleportation code for the purposes of client synchronization; supports Router being set up first or Telepad being set up first, either order; background timer for eventual activation of Router
* refactored the router telepad system to remove unecessary function diversions; telepads now are properly linked where appropriate and links are properly broken in appropriate situations; message passing has been simplified
* fixed inventory size of the telepad; transferred router telepad activation systems from VehicleService to LocalService, and from the Ruoter to the TelepadDeployable; cleaned up code that handled the TelepadDeployable the Router relationship in WSA
* tests, mostly; no-router conditions for certain telepad-related converters
* adjusted (made constant) quantities for owned telepads
* resolved issue with router and telepad crashes; properly handles deployment states of AMS and Router upon zone entry; changed ownership/decon requirements to ownerless only
* functions for certifcation ui updates (that don't work)
* initialization of combat engineering deployables ui on load and certification change
* representation classes for ACE and FDU; ability to pull ACE and FDU from equipment terminals
* ammo change functionality and fire mode change functionality for ConstructionItems refactored from Tool operations and supported properly (switch between deployable options)
* zone-specific structure for keeping track of deployables; abaility to dismiss deployables from the map screen (previous functionality); local client creation of explosive-type deployables
* refactored MannedTurret into FacilityTurret and lesser traits to be used in the deployable spitfires and the OMFT's; all ACE deployables are available for placement; partial management of the construction items after the deployable is placed; boomers create boomer triggers
* Avatar-specific storage for deployables and for updating UI elements
* refactored quite a bit of code in WSA for the benefit of deployable management; refinements to deployable creation; server messages about deployable quantities; corrected the FDU encoding pattern; lots of work dedicated just to synchronizing BoomerTrigger objects
* added RemoverActor for deployables and redistributed deconstruction functionality away from WSA to new DeployableRemover; added events to facilitate activities not inheritable with this model
* refactored and distributed Deployables classes; copious amounts of testing and document-writing
* boomers now explode from trigger; support for deployables being destroyed by weapon discharge, including individual health, soure identification, and damage model; shuffled deployable classes to build different hierarchy
* sensor_shield was skipped by accident
* identified stray object in Hanish, Ishundar, and added Irkalla, Ishundar's capture console; fixed issue with Warp command and 'Irkalla'; modified building amenity setup and setup testing in Zone; players load and die properly when seated in an omft; reserve ammunition in omft properly registered
* added local service channel, capture consoles, fixed tests as much as posible
* fixed LocalService tests by booting the ServiceManager; added avatar and local tests
* a simple attempt to refactor Actor messages in a way that is acceptable to Travis CI
* making the explosive deployables vanish upon explosion; sensor health bars are now supported
* Add capture terminal definitions
* Logging / documentation
* Functionality for timed base hacks
* Disable IFF locks while base is hacked
* Hacking speed based on player's hacking certification level (and hack effect duration data - currently not functional)
* Hack effect duration functionality
* Sync hack states with clients joining the zone
* Whitespace / comments
* Allow IFF locks to be resecured by the owning faction if it has been hacked
* Fix bases with no NTU silo failing to capture
* Reset CC properly on hack that expires with no NTU in silo
* Capture towers instantly and improve handling of hacked objects queue
* Fix handling of neutral IFF Locks and remove unnecessary casting
* Move HackCaptureActor to correct location
* Re-enable Anguta door locks for air pad now hacking/resecuring IFF locks work
Add capture terminals (timed CC only for now) for a few bases & a tower
Add a few missed locks/doors
Add a resource silo to Girru
* Fix merge issues & missing documentation
* refactored WSA code handling HitMessage, handling SplashMessage, and handling LashMessage; modified projectiles for future functionality
* players can die from being shot now; the damage model is simplistic since main goal was to write around the potential for negative damage ('healed from getting shot'); HitHint works correctly; dedicated AvatarService channel for each avatar helps reduce message spam
* vehicle destruction, and replacement with lightweight wreckage objects upon continent join; made flushing vehicle terminal more accessible
* simple work on vehicle shield charging (amp station benefit) (that's my commit story and I'm sticking with it)
* a flexible calculation workflow that can be applied, grabbing damage information, resistance information, and then combining it with a resolution function; players and vehicles have resistance values; removed redundant damage calculations from WSA
* broke up DamageCalculations, ResistanceCalculations, and ResolutionCalculations into packages under vital; fixed an error with exo-suit calculation resistances; events for dealing with synchronized player and vehicle damage calculations and building the papertrail of those damages; updating codecov.yml file for ignore classes
* added tests for various components (damage model, destroyed vehicle converter, vitality, etc..) and some functionality improvements
* added a field to keep track of how projectiles will be attributed at the time of target death