Commit graph

461 commits

Author SHA1 Message Date
Fate-JH 3f2240947b
Let's Move Item, Together (#429)
* mix-in code for akka messaging move item, currently testing on infantry only

* adjusted structure of COntainable so callbacks are separate from message-producing functions, are separate from message-sending functionality; massaged LockerContainer until it could support control agency and created a wrapper for its Equipment interfacing; the control structure starts and stops when PlayerControl starts and stops, and it converts whenever necessary

* added failsafe conditions to Containable, such as blocking certain messages while completing a MoveItem call, or blocking all messages to reset disruptive MoveItem calls; depiction message callbacks for Player, Locker, and Vehicle, to properly depict the manipulation of items; eliminated the old code from WSA

* added useful comments to Containable; moved functionality for deployables, and for container'ing, and dropping logic out from WSA and distributed it appropriately

* handling terminal operations - buying an exosuit and selecting an infantry loadout; starting work on support for more persistent equipment timers local to the avatar (that were removed in this update; see wsa changes)

* linked terminal page/message with routing policy

* tuning vehicle loadout management and display

* separated use time from purchase time and applied a system that limits either if that same event would recur too soon; tuning exosuit and loadout changes

* some ask timeout handling and comments

* normalizing item on ground interactions

* rearranging the project structure

* merged with master; commas removed

* fixing tests

* added description strings to Tasks; adjusted the completion conditions for some Tasks

* a failed purchase will not block future purchases; increased timeout on move-item tasks

* corpses, even one's own, should have properly moveable inventories

* for better persistence, until GlobalDefinitions is renovated, moved the object id->name map onto the avatar object, for the purpose of timers; replaced a use of values in GridInventory for a map conversion

* max loadouts and max exosuit switch use same cooldown now; hopefully better clarifcation regarding held arm position
2020-05-16 12:18:08 -04:00
FateJH 8f339801cf max exo-suits did not look like one another; revert to Standard upon final clean-up 2020-05-13 22:59:01 -04:00
Fate-JH 9f12cfa625
Vehicles Must Be Destroyed (#390)
* 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
2020-04-27 21:22:59 -04:00
Mazo 140c2ccbc3
Milestone fixes (#376)
* 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
2020-04-20 18:19:50 -04:00
Fate-JH a23643b240
Instant Action / Recall to Sanctuary (#348)
* 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
2020-04-16 21:21:33 -04:00
Fate-JH 7f402ac171
Resource silo test fix (#354)
* isolated test fix from the inst-act branch

* getting rid of the hack for implant terminal mech coordinates
2020-04-16 17:46:00 -04:00
Mazo a50612dd99 Merge master 2020-04-14 21:54:22 +01:00
Fate-JH c2f6baf551
Destroy and repair (#346)
* 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
2020-04-14 15:17:32 -04:00
Mazo 4b25205c32 Fixes after rebasing on master - changed implant initialization from milliseconds to seconds and removed now unneeded implant initialization 2020-03-28 17:49:23 +00:00
Mazo 404e2579ef Implant definitions, stamina audit and initialization 2020-03-22 15:38:54 +00:00
Fate-JH 610f0b092f
Test Fixes (#344)
* 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
2020-02-14 21:11:40 -05:00
Fate-JH 53ecee566a
Persistence (#337)
* 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
2020-02-14 10:54:52 -05:00
Mazo 06ef3a08c5
More caverns work (#335)
* 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
2020-02-14 10:52:57 -05:00
Fate-JH e8fd09aad8
Test fix (#332)
* 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
2020-01-19 21:32:14 -05:00
Fate-JH 3869785591
Destruction (#330)
* 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
2020-01-17 13:25:35 -05:00
Mazo d0bd823e9e Few more small vehicle related tweaks (#320)
* 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
2020-01-17 13:20:33 -05:00
FateJH ae768e1e42 test fixes 2020-01-09 15:32:19 -05:00
FateJH ad2acc13c4 expanded NoGUIDException to include an assignment exception and a base to both exceptions; tests modified 2020-01-09 15:32:19 -05:00
FateJH d43d94377b fixed awkward types.PlanetSideGUID references 2020-01-09 15:32:19 -05:00
FateJH 0c1486dbcc revamped IdentifiableEntity to work with a revamped PlanetSideGUID; GUID's now have a characteristic that they can be valid or stale (this is a container-level distinction, now a value-level distinction); all appropriate behaviors should be roughly the same as before the changes 2020-01-09 15:32:19 -05:00
FateJH 03bc52f52d moved PlanetSideGUID from .packet.game to .types; project threw a hissy fit 2020-01-09 15:32:19 -05:00
FateJH f9414a6798 registered object retain their GUID after being unregistered 2020-01-09 15:32:19 -05:00
pschord ae7f8bf71d Enable quiet tests using SBT config (#318)
* Enable quiet tests using SBT config

* Add logback-test.xml config to reduce log messages

* Hide "resolving" messages in CI environment

* Improve ScalaTest options to reduce SuiteStart events

* Hide EVEN MORE Specs2 output
2020-01-08 08:33:25 -05:00
FateJH 6c76997675 adjusted CommonFieldData to support jammering effect flag; fixed tests; made jammering sound and status contingent on state, but made cancelling sound and status always call up 2020-01-01 09:21:17 -05:00
FateJH fee001596f correcting the inheritance of turrets (FacilityTurret and TurretDeployable) by untangling their definition structures; damage and jammering code for ComplexDeployable objects moved onto that object's control actor; setting up SimpleDeployable objects for jammering status; correcting an oversight with FacilityTurret jammering 2020-01-01 09:20:20 -05:00
FateJH 686676f9b9 jammering criteria selection and determination added; applying calculations to damage target (for projectiles) exposes the underlying cause of the damage 2020-01-01 09:19:05 -05:00
FateJH 515de6c507 transforming an 8u field into a 6u field; modifying all other values in code 2019-12-31 23:38:20 -05:00
Mazo 4d742e9fee Transfer base benefits via lattice (#307)
* 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
2019-12-27 11:50:34 -05:00
Chord d2732550e8 Add additional VNL worlds to test 2019-12-18 13:39:02 -05:00
Chord a54ee2f0b7 Refine VNL multi-world with new vector codec 2019-12-18 13:39:02 -05:00
Chord 37ad423820 Packet: Fix VNL packet to support multiple servers 2019-12-18 13:39:02 -05:00
Fate-JH e4d607533f
moving ActorTest-style tests from common to pslogin (#300) 2019-12-13 03:00:55 -05:00
FateJH c4bb0a77f6 resolutions 2; tests 2019-12-11 08:34:29 -05:00
Mazo 7b6063055a Basic lattice functionality (#296)
* Move isMoving check to outer block to fix scoping issues

* Initial basic lattice functionality

* Small tweaks to tests
2019-12-10 09:17:54 -05:00
Mazo 28beea4e30 MAX Capacitors (#297)
* fix isAnchored / isOverdrived faction check

* Faction specific MAX definitions

* GenericActionMessage documentation

* MAX Capacitor functionality and changes to damage resolution for NC MAX shield
2019-12-10 08:53:11 -05:00
Fate-JH 9ec97f279a
Zone-local Event Systems (#295)
* 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
2019-12-10 08:37:57 -05:00
Mazo 885387b734
Merge pull request #291 from Fate-JH/projectiles
Remote Projectiles
2019-12-09 11:21:37 +00:00
Mazo 2662be8778 Standardize constructors to have position as the first param and add positions to terminals (#294)
* Standardize constructors to have position as the first param and add positions to terminals

* Actually assign the position to the terminal object
2019-12-05 09:44:42 -05:00
Fate-JH b2ec9d2cb6
Merge branch 'master' into projectiles 2019-11-29 11:19:17 -05:00
Fate-JH a5a85e6cc3
Upper Body Angle (#292)
* 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.
2019-11-29 11:14:25 -05:00
FateJH ed7406f25f last minute minor corrections 2019-11-14 13:51:08 -05:00
FateJH 693a3a5d78 proper remote projectile handling; allowances for the Decimator alt-fire mode; initial DamageMessage packet and tests; initial DamageFeedbackMessage packet and tests 2019-11-14 13:06:58 -05:00
FateJH 043512d6a3 proper PSM encoding/decoding; normal and alternate projectile flight handling; auto lock field on projectiles, to indicate whether that projectile should produce a warning message on the target's side when weapon is pointed at the target; business logic in WSA 2019-11-04 09:21:36 -05:00
FateJH 8952ab86f6 events for future expansion; added custom projectile remote client data for OCM packet creation; initial projectile velocity calculation; (too many) details when it comes to Enumerations for projectiles; hooked up theoretical projectile creatiuon, management, and deletion 2019-10-30 22:54:45 -04:00
FateJH f1c73688f7 removed fire mode override for the Phoenix; added events for loading and manipulation of remote projectiles to AvatarService; ProjectileStateMessage handles projectile data in a simple way; remote projectiles can now be registered and unregistered 2019-10-30 22:53:16 -04:00
FateJH fa7365e8af modified TrackedProjectileData codec and tests; changed Projectile into a game object; added comments and entries missing from the basic ObjectClass lists; projectile packet converter added but untested 2019-10-30 22:51:26 -04:00
FateJH 56c7c4544e added flags to indicate the projectile must be handled using the server as an intermediary; eliminated obsolete enumeration data; added analysis for the oicw_little_buddy 2019-10-30 22:51:26 -04:00
Fate-JH ad29bfe16a Select Changes from My Original Securities Branch (#286)
* select changes from my original securities branch

* nanoTime -> currentTimeMillis
2019-10-23 17:21:16 -04:00
FateJH 93f2264f61 added enumeration for squad waypoints and changed field datatypes where appriopriate; added assertions to squad detail packet; removed old logic from squad request and squad response enumerations; WSA lfs -> lfsm 2019-10-20 15:34:01 -04:00
FateJH aa2e0089a4 stop player from inviting himself to own squad; periodic squad updates; fixed squad listing hangup; fixed damage calculation tests 2019-10-19 17:24:12 -04:00