Commit graph

996 commits

Author SHA1 Message Date
Chord a80e869fb9 Map performance critical actors to dedicated dispatchers
Using built-in akka configs, we are able to map Actors to dispatchers in
a fine-grained way. Now each session router, network listener, and zone
have a dedicated set of threads. Currently all WorldSessions are sharing
a single worker pool, which means that the server could still crash if
all worker threads are exhausted. To prevent conditions like these, the
amount of time spent on single actors based on time and number of
messages can be tuned.Threads when not receiving work exit to save
resources.

Also all .conf files are now included in the resource packing process.
Users should create user.conf to override these .conf files to avoid
losing edits when updating the server version.
2020-05-12 07:41:46 +02:00
Mazo fbca774a37
Merge pull request #425 from pschord/remote-admin
Create PsAdmin framework
2020-05-11 14:45:57 +01:00
Chord c5528ac6a4 Revert missing class loader strategy 2020-05-11 15:24:10 +02:00
Chord 82e8840176 Create PsAdmin framework
PsAdmin uses a dedicated TCP port to allow for remote queries and
command to be sent to the running World/Login server. Commands are a
single command followed by zero or more arguments.

Commands may require access to the ActorSystem, so they will get their
own dedicated actors to be able to handle the different messages
required that can be sent in response to a query. The return line is in
JSON to allow for easy parsing by applications, such as web servers.
An interactive client is easy as being able to parse json and buffer
command input.

Some basic commands are implemented for now:

* shutdown - kills the actor system
* list_players - gets a list of players on the interstellar cluster
* dump_config - get the running config
* thread_dump - dumps all thread backtraces (useful for prod debugging)

More advanced commands like kick/ban will require additional testing.
2020-05-11 04:18:29 +02:00
Mazo b80ca309f1
Merge pull request #424 from Fate-JH/fte1
First Time Events
2020-05-10 19:49:19 +01:00
FateJH bcf1d28f0c grouped first time event strings; gave Avatar and Player data structure supporting fte's; loaded basic fte's to suppress bangs 2020-05-09 17:41:57 -04:00
Mazo ceb58ed39a
No more pew pew in sanctuaries (#422) 2020-05-08 19:49:57 -04:00
Mazo 223236877f
Add some extra checks to ensure velocity is set to zero for deployed or undriven vehicles, to allow repairing/jacking when deployed on a slope as the client reports the last known velocity before deployment in VehicleStateMessage (#420) 2020-05-08 19:49:02 -04:00
Mazo de3188e5ef
Merge pull request #419 from Mazo/ptsv3-merge
Merge some parts of PTSv3
2020-05-07 22:06:22 +01:00
Mazo 58e64fd789 Merge some parts of PTSv3 2020-05-05 22:25:37 +01:00
Mazo 61360d97e0
Kamon tweaks (#401)
* Move application.conf to src/main/resources

* Change ClassLoaderLayeringStrategy for Kanela / Kamon to intiialize properly

* Attempt at reducing PTSv3 log spam

* Silence some more logspam

* Disable oshi logging entirely
2020-05-04 00:27:41 -04:00
Mazo a7cfcd3af7
Painbox v2 (#417)
* Add rotation to building constructor and map files

* Change non-radius based painfields to use a bounding box check based on nearby amenities (disabled in caves)

* Reduce pain field damage to 5
2020-05-04 00:26:26 -04:00
Mazo f9ba930007
Change aircraft deconstruction on bail to go through vehicle's actor instead of directly to VehicleEvents actor (#416) 2020-05-03 23:46:33 -04:00
Mazo 8046fbe0ba
Fix implant stamina draining permanently when the client tries to activate an already active implant (#415) 2020-05-03 23:45:45 -04:00
Mazo 70e59effec
Tweaks to !hack admin command to reduce the message storm it causes (#405) 2020-05-03 23:44:50 -04:00
Mazo 4c249bb358
Fix hacking speed returning an integer, not a float (#402) 2020-05-03 23:43:32 -04:00
Mazo 8301dbe855
Merge pull request #396 from Mazo/turret-spam-reduction
Vanu turret actor message spam reduction
2020-04-29 23:50:59 +01:00
Mazo 19fe779a4e Remove unneeded log spam when a splash weapon hits the world 2020-04-29 22:31:23 +01:00
Mazo 31440d341b Reduce the amount of actor message spam from vanu turrets recharging their ammo constantly 2020-04-29 22:31:07 +01:00
Mazo eabb952683
Add kamon.io metrics reporting (#395)
* Add kamon.io metrics reporting

* Line length + whitespace
2020-04-29 14:59:12 -04:00
Fate-JH 4e5bb3a252
Spawn Pad Fix (#394)
* reset pad order queueing system if the player forces a system fix; blocking dismounting of vehicle in certain situations, such as the vehicle just being spawned

* test fixes
2020-04-27 21:31:53 -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 58134e02fa
Merge pull request #392 from pschord/jvmopts
Increase default SBT memory limit for build OOMs
2020-04-23 08:37:46 +01:00
Chord 16fcee84ed Increase default SBT memory limit for build OOMs 2020-04-23 01:31:51 +02:00
Mazo 103c779d83
Merge pull request #391 from Fate-JH/gen-msg-timing
The Facility's Generator Is Currently under Attack!
2020-04-22 18:54:00 +01:00
FateJH 03ecad38a6 the facility's generator is currently under attack 2020-04-22 13:22:50 -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 484fcbf56d
tying up some quirky cases where the the wrong tools elicited unexpected reactions from amenities (#385) 2020-04-19 20:19:39 -04:00
Fate-JH 2f6af23207
It sucks. (#373)
* a short-term solutiojn to ensure new Player entities have control agencies, that also sucks

* it still sucks, but just a little less
2020-04-18 19:41:05 -04:00
Fate-JH 16fcb2b927
resume hacking and reviving and upgrading after interruption (#375) 2020-04-18 19:40:50 -04:00
Mazo 2800d4da0d
Swap surge into first implant slot and change darklight for audio amp (#374) 2020-04-18 19:40:35 -04:00
Fate-JH 39ae77d6f4
medkits, and med apps, and respawn tubes, oh my (#368) 2020-04-17 18:57:09 -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 c80bb2836f
created generic progress messages and moved their creation into the specific control agencies that would utilize them; this moves code out from WSA and restores the original purpose of CommonMessages.Hack (#349) 2020-04-16 18:52:31 -04:00
Mazo b1cc871467
Admin commands (#353)
* Remove !ams

* Admin commands from PTSv3
2020-04-16 18:36:02 -04:00
Mazo a479305e77
Allow EMPs to disable implants & force reinitialization, and fix a load of silly cases of packets going to the wrong clients. (#356) 2020-04-16 18:35:46 -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 9ac1047a9a
Merge pull request #345 from Mazo/feature/implants
First stage of implant work
2020-04-16 22:26:35 +01:00
Mazo 886f5b3787 Add missing match case 2020-04-16 22:25:38 +01:00
Mazo 09a21440f7 Merge branch 'master' into feature/implants 2020-04-16 22:06:19 +01:00
Mazo d2a04f57df
Generator + gen terminal positions, plus implant terminal mech positions (#352) 2020-04-16 17:05:42 -04:00
Mazo 632419dbc3 Revert "Retrigger CI pipeline"
This reverts commit a05cf09c2e.
2020-04-16 17:48:54 +01:00
Mazo a05cf09c2e Retrigger CI pipeline 2020-04-16 17:48:48 +01:00
Mazo d768b3d62c Restore stamina drain on taking health damage via ResolutionCalculations 2020-04-15 21:14:43 +01: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
Fate-JH 840006dca8
Priority Fixes (20200405) (#347)
* no longer assuming non-empty equipment slot; restructured the equipment CLOB to remove Option.get assumptions

* bundling move item packets
2020-04-13 00:43:17 -04:00
Mazo 95bd865d67 Stop implant activation/deactivation from affecting other players. 2020-03-31 17:33:57 +01:00
Mazo 9d3a163545 Overwrite shortcut slots 2/3/4 with installed implants, and allow active implants to be reactivated 2020-03-29 23:14:16 +01: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