Commit graph

1081 commits

Author SHA1 Message Date
Jakob Gillich e0defe8240
Persistence #1 featuring quill (#508)
* Add .scalafmt.conf

* Adopt quill for database access

* Removed postgresql-async
* Refactored all instances of database access
* Creating duplicate characters of the same account is no longer possible
* Rewrote large parts of LoginSessionActor

* Implement migrations

* Move overrides into subdirectory

* Make usernames case insensitive

* Use LOWER(?) comparison instead of storing lowercased username

* import scala.util.{Success, Failure}

* Add config and joda-time dependencies

* Add sbt-scalafmt

* Use defaultWithAlign scalafmt preset

* Format all

* Add scalafix

* Remove unused imports

* Don't lowercase username when inserting

* Update readme

* Listen on worldserver.Hostname address

* Remove database test on startup

It could fail when the global thread pool is busy loading zone
maps. Migrations run on the main thread and also serve the
purpose of verifying the database configuration so it's fine to
remove the test altogether.

* Refactor chat message handlers, zones

What started as a small change to how zones are stored turned
into a pretty big effort of refactoring the chat message handler.
The !hack command was removed, the /capturebase commandwas added.

* Expose db ports in docker-compose.yml

* Silence property override log

* Rework configuration

* Unify configuration using the typesafe.config library
* Add configuration option for public address
* Configuration is now loaded from application.conf rather than worldserver.ini
* Refactor PsLogin and remove unnecessary logging
* Move pslogin into net.psforever.pslogin namespace

* Fix coverage
2020-07-13 23:54:05 -04:00
Mazo 88b194fde2
Correctly show ANT capacitor on zoning (#504)
* Correctly show ANT capacitor on zoning

* Remove log

* Move vehicle shields / ntu capacitor packets to HandleSetCurrentAvatar
2020-07-02 20:16:56 -04:00
Fate-JH fa7342264e
Passenger interim (#501)
* properly handle interim and, thus, persistence for a pure passenger

* persistence maintained during relog; message handling case reset at death
2020-06-29 14:03:51 -04:00
Mazo 3003c8d490
Revert "Bundling Amenity Information (Again)" (#506) 2020-06-29 13:07:32 -04:00
Mazo 8174a3351c
Check that weapon magzine is empty before sending WeaponDryFireMessage (#507) 2020-06-29 13:06:28 -04:00
Mazo 5437b3f068
Reviving a player will drain 25 rounds after revival is complete, instead of on each progress tick (#505) 2020-06-29 13:01:16 -04:00
Mazo d1e7d8f8e0
Amenity positions + !hack refactor (#503)
* Add object positions for capture terminals and resource silos

* Small refactoring / renaming for !hack and capture terminals
2020-06-26 21:34:05 -04:00
Fate-JH e91e282d3a
Disconnect (#499)
* better kicking; a quitting that eliminates persistence

* GenericActionMessage comments; integer delay time

* TeardownConnection corresponds to closing the client directly

* messaging path for CMT_QUIT immediate logout that intersects zoning logic for IA and Recall

* slightly improved kicking, and the posibility of longer kicking

* restoring a turn counter instance

* player character will now clean up like normal; immediately turns into corpse; kick delay exists only on the persistence monitor
2020-06-24 23:08:22 -04:00
Mazo a5403298e3
Add trunk position calculations, reduce trunk access range to ~3 units and add a check that the vehicle isn't moving a significant amount (#497) 2020-06-24 23:07:05 -04:00
Mazo 8a5469f0c8
PlayerStateMessage update rate change (#496)
* Remove crazy PlayerStateMessage update rate logic in favour of a more simple slower update if outside of render range

* Remove redundant check
2020-06-24 23:04:15 -04:00
Mazo 7af8961864
Fix ugd03 GUIDs + Sanctuary repair silos (#500)
* Allow zone owned terminals to be used (e.g. repair silos in sanctuaries)

* Zone owned repair silos for Sanctuaries

* GUID fix for ugd03
2020-06-24 23:03:12 -04:00
Mazo 6aa8f627db
Merge pull request #495 from Fate-JH/bundle-zone
Bundling Amenity Information (Again)
2020-06-13 00:11:52 +01:00
FateJH d3626b1188 configuration for a given loaded zone was skipping the packet bundling process 2020-06-12 14:18:05 -04:00
Mazo 8990591833
Merge pull request #494 from Fate-JH/data-challenge
Data Challenge
2020-06-12 08:34:58 +01:00
FateJH 111fa1b574 initial packet work and tests for: DataChallengeMessage, DataChallengeMessageResp, SimDataChallenge, and SimDataChallengeResp 2020-06-12 00:18:35 -04:00
Fate-JH 181fdb9c84
Stamina / Implants (#485)
* removing stamina update business logic from the Player class

* I really need to sort this out

* implant changes: deactivate when changing armor or loadouts and when zoning; extra details for state management when being jammed or fatigued upon loading

* merge with master

* pull rebase on master; moved implant learning/forgetting to PlayerControl, but not yet completely tested

* unhandled case of no implant in a slot during avatar setup

* complete implant deactivation optional?

* moved reference to player control agency for matters concerning stamina updates on damage taken

* - > +

* crouching makes nothing better

* PlayerControl now handles stamina regeneration; handling a case where being fatigued because activation charge is too much leaves the drain timer running

* no more stamina drain message; moving functionality into the class (out of the object) for expediency; handling implant uninitialization differently upon death

* test repairs; redundant messages in player damage and player death logic

* no jumping; riders get a free pass

* making the code uglier
2020-06-10 09:27:12 -04:00
Fate-JH 3ea51d404e
Graverobbing (#490)
* added corpse control to manage (only) looting; swapping controls in ZonePopulationActor

* making test timing more forgiving; fixing case conditions for corpse addition
2020-06-10 09:23:52 -04:00
Mazo cf64a0ba7f
Merge pull request #492 from jgillich/xtools-v3
Xtools v3
2020-06-10 13:44:33 +01:00
Jakob Gillich 116860b3be
XTools V3
* Use command line interface instead of hard-coded paths
* Takes in both .gcap and parsed gcapy files
* Add pack config to allow system-wide installation
* Slightly change output format from [C|S] -> [C|s] to C [<<<|>>>] S
* Add some documentation to README
2020-06-10 14:26:32 +02:00
Mazo c290dca16b
Merge pull request #491 from Fate-JH/rep-distance
Reviving Players at a Distance
2020-06-10 10:24:48 +01:00
Jakob Gillich 170549982c
Use packed files to build docker image 2020-06-09 23:21:46 +02:00
FateJH 1d0d7500ec reviving players now has a distance check 2020-06-09 16:04:45 -04:00
Jakob Gillich 8424fcfe68
Ignore more project crap 2020-06-09 19:59:31 +02:00
Mazo d658f22f71
Merge pull request #484 from Mazo/cavern-guid-fix
Fix some cavern entities having the wrong GUIDs which was causing crash to desktop on zoning out of caves
2020-06-07 21:41:47 +01:00
Mazo e3fd5ff854
Merge pull request #483 from Mazo/xtoolsv2
XToolsV2
2020-06-07 21:41:22 +01:00
Mazo 73f4c45f93
Merge pull request #481 from Mazo/property-overrides
Zone specific property override config files
2020-06-07 21:41:02 +01:00
Mazo 87efa3acf9 Fix some cavern entities having the wrong GUIDs which was causing crash to desktop on zoning out of caves 2020-06-06 20:11:57 +01:00
Mazo e56f4dfd3b Remove unnecessary dependency 2020-06-05 21:51:47 +01:00
Mazo d58550dc3b Add missing dependency on common package 2020-06-05 21:12:08 +01:00
Mazo 46bd2aca50 Include a copy of the old xtoolspar for historical reference 2020-06-05 21:08:57 +01:00
Mazo 094cb3046f Move XToolsV2 into a new tools/decode-packets project 2020-06-05 21:08:54 +01:00
Mazo 663616ddf1 XTools V2 2020-06-05 21:08:23 +01:00
NickPSF 7ecce515c2
Update game_objects0.adb.lst
revert spiker test
2020-06-04 18:19:55 -05:00
NickPSF b6612699e8
Update game_objects0.adb.lst
spiker test pt2
2020-06-04 18:15:19 -05:00
NickPSF bab1af344e
Update game_objects0.adb.lst
spiker requirement test
2020-06-04 18:14:47 -05:00
NickPSF d11a53207d
Update game_objects31.adb.lst
purchase module fix
2020-06-04 18:02:56 -05:00
NickPSF f18318795e
Update game_objects29.adb.lst
Flail purchase module fix
2020-06-04 18:00:58 -05:00
NickPSF f4c8a46ed7
Update game_objects0.adb.lst
Removed waiving purchase module requirement, as they were non-functional.
Disallowed CUD.
2020-06-04 18:00:04 -05:00
NickPSF d11c05ace9
Update game_objects30.adb.lst
Fixed typo that allowed Wraiths to be spawned
2020-06-04 17:30:00 -05:00
NickPSF 5cb9a95af0
Update game_objects32.adb.lst
Added additional lines to properly disable MAXs
2020-06-04 17:27:06 -05:00
Mazo 64ba54b34f Add missing ObjectClass entries for property overrides 2020-06-04 22:56:33 +01:00
Mazo 3a750c1771 Property overrides from Nick 2020-06-04 22:32:45 +01:00
Fate-JH bd82d332fa
Let's Move Item, Together, Again (#445)
* 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

* manual merge-rebase of master with hand reconstruction of WorldSessionActor and PlayerControl, and variations for other files necessary to maintain both inventory operations and login reliability

* test fixes; MAX exo-suit cooldown is now five minutes again
2020-06-04 16:39:08 -04:00
Mazo 69e63827fa Added functionality to allow zone specific property override config files 2020-05-30 21:40:45 +01:00
Fate-JH d6397d54a1
Interim 2 (#477)
* changed DefaultCancellable.obj with Default.Cancellable and deleted the former (as unnecessary)

* changed ActorRef.noSender with Default.Actor for PlanetSideServerObject entities

* Actor.noSender -> ActorRef.noSender, for consistency

* player name in log messages; zoneLoaded and zoneReload flags; upstream message count

* Default object tests; expanded the set current avatar loop

* fallback cases for unsuccessful zone/avatar load process

* completing the trials of the god Travis

* forgot to reactivate kamon
2020-05-30 12:28:10 -04:00
Fate-JH 765816a4d2
original squad leader did not have health or armor properly scaled to the field; squad vehicle stats no longer override individual squad member stats in ui (#479) 2020-05-30 12:03:25 -04:00
Fate-JH 4da6f9d618
added away from keyboard field to player and ways to flag it (#480) 2020-05-30 12:02:46 -04:00
Mazo 634d57628a
Merge pull request #478 from Fate-JH/unidocs
SBT-Unidocs Plugin
2020-05-30 00:33:29 +01:00
FateJH 7162aa9c17 reactivating sbt-unidocs plugin 2020-05-29 19:12:07 -04:00
Mazo 6cdd44f119
Merge pull request #471 from Fate-JH/warnings
Warnings
2020-05-27 09:08:55 +01:00