Commit graph

451 commits

Author SHA1 Message Date
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
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
FateJH
0c105f3826 repaired some broken tests; LoadoutManager respects length; squad ids attempt to reset only when no players are logged in 2019-10-17 16:27:19 -04:00
FateJH
5a1527ae10 small touch-up 2019-10-08 18:47:03 -04:00
FateJH
3e631657b8 significant refactoring in SquadService operations; properly force the player to leave any participating squad when WSA stops 2019-10-08 09:10:56 -04:00
FateJH
60d65e22d3 added a refactored squad joining entrypoint; initial work and test on SquadWaypointEvent packet; initial work on SquadWaypointRequest packet; squad waypoints up to #5 (squad experience) should be working 2019-10-08 09:10:56 -04:00
FateJH
e5b2efd381 better support for the various ways to join a squad, and the various ways to leave a squad; squad-based messages; jury-rigged 'player wants to join' operations 2019-10-08 09:10:56 -04:00
FateJH
24691ec239 initial work on SquadInvitationRequestMessage packet, originally by aphedox; initial work on packet and tests for CharacterKnowledgeMessage; re-organization of SquadService workflow; prototyping for SquadSwitchboard 2019-10-08 09:10:56 -04:00
FateJH
f81c87ce22 split original aphedox SquadRequestType's into two different enumerations, one for Request and the other for Response; added functionality for more squad interactions; squad favorites, excepting the ability to actually load them onto one's client; extensive comments about SquadResponseMessage events 2019-10-08 09:10:56 -04:00
FateJH
60a11b8c52 sufficient functionality that allows the UI for squads to display properly on squad joining and on squad leaving; clarification for SquadMemberEvent fields; QoL support functionality intergrated into SDDUM streams 2019-10-08 09:10:06 -04:00
FateJH
2a1b051710 completed form of SquadDetailDefinitionUpdate 2019-10-08 09:09:33 -04:00
FateJH
d9619e4185 conversion of variable field SquadDetailDefinitionUpdateMessage mostly complete, handling more than 99% of cases in our captures; modifications to existing test-important SSDUM packet in WSA 2019-10-08 09:09:33 -04:00