* adjusted target selection to account for volumetric geometry, hopefully collecting more targets than before; additionally, utilize previously allocated local sector to reduce the target scope; combined mappings to reduce passing over those same results
* reactivating maelstrom availability; restore damage dealing potential to the maelstrom grenades; changing damage profile to 'no radial degrade'
* reactivating oicw availability; no more discrepancy checks on secondary projectiles; code for maelstrom chain lashing
* might have actually fixed oicw little buddies
* correctly clear the hack state of terminals when unpowered; turrets will no longer act like they have AI control if jammed when mounted; restore passive implants
* reload opened and closed doors upon zoning changes; rework ntu silo and ant interaction start; clear hack on proximity terminals; facility turrets stop indicating towards jamming cause when mounted
* radiator is turned off due to potential for server crashes; cerebus -> cerberus; turret kills name owner only when they are in the same zone; fewer chances for turrets to fire when they should not
* incorporating structural changes to hacking for future expansion
* an attempt at fixing tests was made
* fixed about half of the unworking tests, and commented out one
* stubborn tests that pass on their own but don't tend to pass in clusters; also, a certain test that terminates an actor when a mostly unrelated entity has its propertries changed from default, just weird
* reviewing logic and operations pairs to ensure that functionality should have been retained from parent structure; moving handling case from individual player modes to session actor, which makes it much closer to the pattern
* while it's still a dice roll, all tests currently implemented are capable of passing
* deployable vehicles should properly deploy again now that they don't have to fight with themselves for the ability to deploy
* boomers are no longer owned if the trigger is dropped (how long has this been not working?)
* redid DamageFeedbackMessage packet because I thought I could use it for something; didn't use it for anything; boomers are no longer responsive to explosive sympathy
* redid combat engineering explosive logic
* redid (cleaned-up) implant logic
* implant initialization timers now saved to the database; uninitialized implants will appear as uninitialized when the character loads; passive initialized implants will always start as activate
* renaming methods; progress bar calculations change
* accounting for implants that are in the act of being initialized
* reorganized files and methods for session actor in preparation for custom spectator implementation
* split existing code between data and functions, and entry points; parsing and logic management is now handled within the current game mode, which should reduce the need to ask explicits
* should fix players not performing damage after being broken for an unknown amount of time, maybe never working correctly
* functioning spectator mode logic swap; initial packets for UplinkRequest, UplinkResponse, and UplinkPositionEvent
* available chat prompts can now be different based on player mode without testing flags
* modified ChatActor to be replaced by a function-data logic pair, and modified ChatService to be able to accommodate the new chat channel; chat packet handling moved from general operations to the new chat operations
* resolved issues with spectator implants, at least enough that implants should be stable; created an exclusive permission for spectator mode; database changes to persist permissions for different modes
* command detonater is no longer allowed; spectators now hold a laze pointer
* for the purposes of testing, anyone can be a spectator
* spectator mode is important to confirm; removed deprecated chat actor; dismount quietly
* oops; allowed again
* restored commands setbr and setcr; deployables are erased from spectator map; projectiles destruction only just in case
* role only for those who are permitted
* revenge experience now rate down and capped; fixed issue with the tail of an empty list
* fixed column name difference between database and persistence objects
importing controlled implementation changes from original exp-for-kda branch; code for contributions from prior activity, but will be adjusting to new contribution methods
kill contributions should work; even if they don't, need to put this away for now
extensivwe changes to the way OwnableByPlayer manages owner user information due to uniqueness, that changes a lot of vehicle and deployable code; fleshing out experience calculation procedure for future testing
events for mounting and dismounting of both passenger and cargo; id'ing the installation of an amenity (vehicle or facility); separation of kill/assist experience and support experience calculations; retention of kill record which allows for the calculation of menace
support experience accumulates and is given to the user in gradual provisions
rewarding facility capture through cep; not fully tested yet; math sucks
sort of cep to bep consditions for squad facility capture; bep deposit for ntu silo activity
early reivision for v010; recording ongoing shots fired and landed
restored bep from ntu deposits into resource silos; updating statistics in the database regarding kills and related stats including weapons; updated history management; basic experience calculation changes
all rewarded support events are accounted for
command experience calculations upon facility capture or resecure
corrected database migrations
most of the code for the play or progress system
statistics window updates for exosuits to report kills; killing an llu runner gives cep; moving play or progress functionality to a bang command rather than piggybacking setbr; bep is no longer too high by error
Added code to LoginActor to handle client authentication via login token
Added code to LoginActor to generate the password used by the launcher to authenticate with the API
Changed code in LoginActor to replace deprecated bcrypt functions
Changed code in Account to add the field password, token and tokenCreated
Added database migration V009 containing table changes on account, new tables launcher and filehash and a trigger/function combo to update the tokenCreated column.
* routine that finds, equips, and draws a grenade if the user has it; moved handling of ObjectHeldMessage from SessionActor to PlayerControl; placed a arm movement restriction condition
* loading of, and adding and removing of shortcuts to/from both the database and the client hotbar
* player-driven sanity tests to reload otherwise unavailable hotbar shortcuts; revamp to CreateShortcutMessage
* database tables and persistence entities; attempt to retrieve values from database and apply them to the player avatar character; resolve spawn options in sanctuary in different manner
* minor database table field adjustments; saving to database when account persistence ends; properly loading from and initializing with data queried from the database; suicide better supported
* converting the zoning method/status tokens; better support of zoning handling of persistent locations; messages that explain the consequences of login-spawning into an invalid location
* adding triggers for the 'saved char' message, both those prompted by game activity and a 'reassurance' message; also, actually save the char data sometimes
* intervals for timing charsaved message set by configuration file now
* corrections to spawn tests and tables
* random sanctuary spawn in more places than one
* database, transfer objects and storage objects for lists of good friends, and of friends that you want to ignore
* friends and ignored players get added to lists, to the database, load in appropriate states, and update at basic appropriate times
* ignoring players and being ignored by players cuases loss of communication avenues, especially tells, and visibility
* modified the [friend list, ignored player list] x avatar query for better performance as the sizes of the results increases using joins and using targeted column selection
* obligatory fixes to tests that come with every update
* persisting vehicle loadouts in between sessions, saving to db and loading from db
* reusing refactored code for clob; initial loadout without empty entries; reverting method of stopping session child actors
The game uses a UDP-based protocol. Unlike TCP, UDP does not guarantee that
packets arrive, or that they arrive in the correct order. For this reason,
the game protocol implements those features using the following:
* All packets have a sequence number that is utilized for reordering
* Important packets are wrapped in a SlottedMetaPacket with a subslot number
* RelatedA packets ae used to request lost packets using the subslot number
* RelatedB packets are used to confirm received SlottedMetaPackets
All of these go both ways, server <-> client. We used to only partially
implement these features: Outgoing packet bundles used SMPs and could be
resent, but not all packets were bundled and there was no logic for requesting
lost packets from the client and there was no packet reordering, which resulted
in dire consequences in the case of packet loss (zoning failures, crashes and many
other odd bugs). This patch addresses all of these issues.
* Packet bundling: Packets are now automatically bundled and sent as
SlottedMetaPackets using a recurring timer. All manual bundling functionality
was removed.
* Packet reordering: Incoming packets, if received out of order, are stashed and
reordered. The maximum wait time for reordering is 20ms.
* Packet requesting: Missing SlottedMetaPackets are requested from the client.
* PacketCoding refactor: Dropped confusing packet container types. Fixes#5.
* Crypto rewrite: PSCrypto is based on a ancient buggy version of cryptopp.
Updating to a current version was not possible because it removed the
MD5-MAC algorithm. For more details, see Md5Mac.scala.
This patch replaces PSCrypto with native Scala code.
* Added two new actors:
* SocketActor: A simple typed UDP socket actor
* MiddlewareActor: The old session pipeline greatly simplified into a
typed actor that does most of the things mentioned above.
* Begun work on a headless client
* Fixed anniversary gun breaking stamina regen
* Resolved a few sentry errors