Commit graph

715 commits

Author SHA1 Message Date
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
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
Mazo
9d67029238 Feature/caverns (#331)
* Typo fix

* Expand building hack info match to include vanu_control_console

* Fix cavern crystal animations by allowing Amenities without an Owner to be ZoneAware, allowing them to direct to the correct Zone's LocalEvents

* Add logging for when an invalid object reference gets deleted from a client

* Show zipline teleporter animation (locally, at least)

Co-authored-by: Fate-JH <Jason_DiDonato@yahoo.com>
2020-01-19 21:55:55 -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
Mazo
80af2e84a9 Ziplines, teleporters and caverns (#323)
* GlobalDefinitions for cave objects and a few fixes for cave functionality

* Fixes for Ziplines, and by extension new functionality to allow for zipline teleporters

* Generated map files for caves

* Add SOI radius for cavern facilities

* Make ziplines bi-directional

* Fix useradius on crystals_health_b

* Reduce cavern CC hack time from 15m to 10m

* Fix /fly /speed and /spectator for GM accounts

* GOSM / PSAM Documentation

* Allow players to be in multiple overlapping SOIs

* Add some extra logging to startup procedure

* Fix orders from zone-owned terminals (non-facility buildings in caverns)

* Fix Extinction map checksum

* Add checksums for cave maps (Special thanks to Chord)

* Initialize ZoneMaps in parallel to reduce server startup delay

* Update SphereOfInfluenceActor.scala

Just line breaks spacing the update `foreach`.  That mistake was on me.

Co-authored-by: Fate-JH <Jason_DiDonato@yahoo.com>
2020-01-17 13:36:15 -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
Fate-JH
eebd5174a0
Player Control (#329)
* basic non-mounted avatar damage and death on the control actor

* deferred passenger death to hand off control from mountable control to player control; removed event-focused messaging path from vehicle control to avatar-appropraiet WSA

* extending manipulation of jammering secondary effects, such as stamina and implants
2020-01-17 13:22:14 -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
Fate-JH
db82b9f01f
Generator (#328)
* established foundations for generator object

* established foundations for generator terminal

* sparse comments added
2020-01-17 13:19:07 -05:00
pschord
d08911d07c Account and Character Database and Config Improvements (#317)
* Create Account/DB abstraction

* Fix crash when removing boomers from deconstructed player

* Extend config to include database and worldserver info

* Improve ConfigParser tests

* Add database setup documentation

* Add xTriad to THANKS file

**

* Increase bcrypt rounds and fix readme link
2020-01-10 11:13:37 -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
Mazo
50df2bace0 Basic functionality for capitol force domes (#315) 2020-01-08 08:31:02 -05:00
Mazo
ddf702eea9 Vehicle fixes (#313)
* Send shield + capacitor state to players mounting a vehicle

* Allow players to dismount vehicles that are slightly moving (e.g. rotating magrider, deployed vehicle with phantom velocity from pre-deployment), or vehicles in a deployed state

* Add vehicle ntu capacitor, keeping old capacitor for EMP functionality when implemented, send capacitor / ntu values on vehicle mount if definition has a maximum set
2020-01-08 08:24:14 -05:00
Mazo
ebd8170de4 NTU Related fixes/changes (#308)
* Send map updates when NTU bar changes

* Make bases turn neutral when NTU hits 0

* Fix sync of low NTU warning light to players joining zone

* Swap IFF Lock logic around to allow for more efficient short circuiting of checks

* Small fix to stop player disconnect when hacking an object that no longer has a GUID
2020-01-04 22:58:48 -05:00
FateJH
d7ee2be46b condition to restrict soi selection if no soi information was constructed 2020-01-04 00:39:59 -05:00
FateJH
6e678373d2 removed developer messages for soi management 2020-01-03 23:01:31 -05:00
FateJH
837e9cb2ff how painbox doors work; moved constant chat system subscriptions; swapped around medical terminal coordinates on home3 2020-01-03 20:37:11 -05:00
FateJH
d2ef5a76a4 added painbox damage history event 2020-01-03 20:37:11 -05:00
FateJH
4261693ae1 sphere of influence is now activated by zone denizens; painboxes are activated by sphere of influence denizens 2020-01-03 20:31:39 -05:00
FateJH
9d972351cf commentary; adjusting the GOAM used to cause mines to explode in accordance with the change in field bitsize 2020-01-01 22:41:43 -05:00
FateJH
50b0aa16af grenade_grenade_projectile_enh was missing an important target validation 2020-01-01 09:21:17 -05:00
FateJH
9c0738e864 made all jammable objects have the same duration for the jamming effect and the jamming sound, except for Infantry which have a longer sound time 2020-01-01 09:21:17 -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
879be93863 converted explosive-type and sensor-type deployables into complex deployables that have integrated control actors 2020-01-01 09:21:17 -05:00
FateJH
036f00f119 proper jammering behavior for boomers 2020-01-01 09:20:20 -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
a568e52590 moved common jammering behavior into a mixin trait and redundant code out of the specific object control actors; created placeholder PlayerControl actor but am not ready to move damage/jammering functionality out from WSA; common jammering behavior modified for WSA use 2020-01-01 09:20:20 -05:00
FateJH
fa2123f253 proper jamming behavior for facility turrets; moved certain facility turret operations onto FacilityTurretControl actor; corrected issue with revisiting jammed status 2020-01-01 09:20:20 -05:00
FateJH
bb26c5d56e proper jammering behavior for both infantry and vehicles; moved certain vehicle operations onto the VehicleControl actor 2020-01-01 09:20:20 -05:00
FateJH
cf8faa207d test jammering of avatars 2020-01-01 09:19:05 -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
375edbbf94 adding EMP-related fields to projectile definitions; adjusting target validation funcs for generic application 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
Mazo
73298a2e06 Painfield fix (#305)
* 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
2019-12-27 11:48:55 -05:00
Chord
83ac66a3bf Increase SessionReaper timeouts and add to config file
This should fix issues disconnecting at loading screens/zone changes as
no packets are being transmitted during this window. If the
WorldSessionsActor is also slightly overloaded, the session reaper can
drop the session mistakenly due to no outbound traffic.

Also fix-up WorldConfig.Get with better error messages along with more
tests.
2019-12-21 15:20:07 -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
38a077744a resolutions 4; unmerged local branch changes of inheritance to ZoneAware, AmenityOwner, etc. 2019-12-12 00:52:33 -05:00
FateJH
a782e7bc46 resolutions 3; exo-suit conventions 2019-12-11 10:18:25 -05:00