* new paradigm for character creation detection of old characters by name; vehicle channel when seated in vehicle (ant); second wind activates as long as non-fatal damage n>=25; coordinated sequence of deployables whose UI is being updated
* the max timer will assert itself through death and respawn
* in theory, the tests are fixed; that may change from execution to execution, as is usual
* adjusted how the mechanized exo-suit timer asserts itself when in conjunction with prior exo-suit purchase orders
* players in seats have their mounted information shortened in a more straightforward, less fault-prone way; stamina recharge command shortened
* fixed vehicles not loading when player has no GUID; deactivated squad features (may cause trouble for the Router, but we'll manage); removed lingering, unnecessary radiation tick
* even if the player seems to be standing completely still, send an update packet once in a while (1500ms)
* removing an active router will always clean up an active router telepad with which it is paired
* better timing for refresh of the character select screen; potential to stop moving vehicles from anothers's perspectives
* block mounting while vehicle in motion, or in control; if ejected early, end control early
* block mounting while vehicle in motion, or in control (2)
* added extra checks to eliminate cosmetics from the packet transcoder where having them defined would be considered harmful to the data
* new uniform options; moved cosmetics class file
* assurance that the cosmetics settings are accurate during transitory points
* extensive modifications to source entry shorthand
* moving 11 files changes 55 other files
* added score card classes; upgraded packet classes
* I decided to import over everything
* proliferation of in-game activity messages, especially for spawning activity; removed defaults for activities; fixed (most?) building tests
* upkeep on the LLU's managing service, as well as the facility hack management service, in response to a potential bug
* a facility that changes faction affiliation while it is the destination of an LLU delivery will cancel that LLU delivery
* fixed crash due to boomer trigger overriding position of ace, without the ace being properly cleaned up on the client of the bomber; fixed issue with the boomer trigger going missing
* flipped the first two FDU deployable settings so they match the correct fire modes; corrected a stack overflow situation with the sourcing entities
* action, but no response
* condensed parameters on avatar class
* as always, fixing tests
* quickly, loose ends tied
* code style improvements for SessionData file
* refactored and simplified methods; added GenericAction case enum for smoother GenericActionMessage behavior; fixed timers for MAX unit
* 10 -> 11; suffixes for actions that are 'received' from the client
* Squad -> SquadFeatures from a common lookup
* refactor to SquadService, etc.; clarification of fields related to outfit ids
* thorough pass over squad functionality in regards to joining a squad or rejecting a squad invitation
* decorating squads in the squad list to indicate availability based on size/capacity or role requirements
* squad list decoration; rudimentary squad list searching
* renovations to squad joining, promotion, and certain invitation/cleanup procedures
* further renovations to squad joining, promotion, and certain invitation/cleanup procedures
* overhaul of squad joining and squad promotion
* separated the invitation system from the squad publishing and manipulating system
* separating stages of client interaction with the session's avatar; connection closing is caught to avoid unnecessary log messages; changed how ActionResultMessage views its parsing format
* fixed issue with relogging while persisting as dead (thanks Scrawny)
* almost forgot to turn this back on after I finished testing
* 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
* diversified building management by injecting behavior; allocated entries for the intercontinental lattice and have begun connecting warp gate entities along the intercontinental lattice; beginnings of warp gate broadcast operations; disabled free merit commendations
* allow transit across a predetermined warp gate path, i.e., proper zone-to-zone gating
* game variables for modifying warp gate behaviors; moved choice of building game logic into overloaded constructor; only handle the capitol fore dome in more realistic conditions; warp gate state restored primarily b y internal game logic; changes to which and how gates are declared inactive or broadcast at startup
* initial work on WarpgateLinkOverrideMessage, even if the packet doesn't seem to do anything; added basic service for rotating cavern zone locks via the galaxy messaging service; moved error checking for lattice connectedness
* cavern closing warning messages queued
* starting to set up ChatActor for /zlock command, and added /setbaseresources; conditions for correcting broadcast conditions of a locking warp gate pair; system for rotating through locking and unlocking cavern zones only uses two timers now and has an advance command that speeds to the next closing warning or cavern opening
* expedited cavern rotations available via '/zonerotate' and '!zonerotate [-list]'; '/zonelock' should work for caverns, though distorting the rotation order to accommodate the cavern being unlocked; configuration arguments exist for the setup of cavern rotations and for the rotation itself
* populated cavern lattice connections for a specific rotation order; warp gates will properly activate and deactivate and modify their neighborhood information based on which stage of the rotation; fed up with the blockmap going wrong; added a sanity test for the cavern lattice; Spiker damage calculation changes
* adjusted local variable requirements of BuildingActor to integrate retained actors more closely with the Behavior; on the other hand, another value is passed around the logic
* bug fixes observed from issues found in logs since 20220520; halved the spawn height when gating to a cavern warpgate
* cavern benefits are now represented by enumeration classes rather than additive binary numbers; when facilities change state, benefits are evaluated; when caverns rotate, benefits are evaluated; cavern facility logic added; attempted handling for inventory disarray conditions (untested)
* broke down tabs for easier navigation; added test to stop spawning of cavern equipment when not otherwise permitted
* code comments, everywhere; correcting issues with cavern rotation timing reports
* but is it flying?
* ability to swap merit commendation ribbons on shoulder and have other players see it
* ability to swap merit commendation ribbons on shoulder and have other players see it
* VehicleControlTest from elsewhere
* giver all non-Exclusive ribbons that would become available to faction/sex and allow modification of the ribbon bars
* awards only need to load during login activities; fixing a few awards that were not being allocated correctly
* wrong conditional for sex check
* preparations for deploying oicw little buddy projectiles
* oicw little buddy projectiles spawn and animate properly, but damage dealing is inconclusive
* radiator clouds cause damage to infantry health
* oicw little buddy projectiles do damage upon detonation; different descent pattern; projectile types given own Enumeration
* proximity terminals for vehicle actions no longer need to use the vehicle event system as a middleman for making changes
* redid the workflow of the proximity terminal resolution so that it avoids SessionActor as much as is possible; this may be a mistake, but my future self will pay the price instead
* changed the timing and the angles of the little buddy explosions; fixed proximity terminal tests
* restored control of bfr gunner weapon; attempted to restore shield functionality given unspecified problem statement; bfr's can drown like ground vehicles, not aircraft; siphons can not drain a facility when equal to or less than 40% ntu; corrected oversight with implant timers; accidentally got assertion for TradeMessage backwards
* fixed bfr shield charge display; phantasm driver seat is now bailable
* this test never passes, but the test based on this test passing passes
* correction to support bfr flight variant waterlog recovery
* preliminary elements needed to battle frame robotics; mostly from previous branch
* introduction of FrameVehicleStateMessage and anticipated event system paths for BFR's; spawning amenities for BFR's are parsed and built from the zonemap files, but their coordinates are currently incorrect, and the resulting entity will not function atm
* bfr's spawn correctly; default arm weapons will spawn correctly; bfr rearm terminal added but arm swap not working correctly; bfr shields charge if not full; proper separation of vehicle spawn pad types
* arm weapon swapping in bfr's; swapped weapons switch, contextually, to either *_left or to *_right depending on the mounting; partial support for entities that do not have an OCDM packet form
* crouching improves shield regeneration
* some projectiles damage the bfr regardless of its shield
* delay the final vehicle explosion; start of vehicle subsystems
* handling for bfr shield ui updates; more of vehicle subsystems; corrections to TradeMessage packet; clarifications for FrameVehicleStateMessage package; report on flight status of bfr's
* control agency support for vehicle subsystems for arm weapon fire control
* vehicle capacitor, for what it's worth; shield and capacitor are influenced by recharge freeze and drain
* initial packet and tests for AvatarAwardMessage; update the fields of FreindsResponse, DetailedCharacterData, and LoadoutType for FavoritesMessage; corrections to intiailization packets in SessionActor; players start as imprinted by default
* support for GOAM and GAM integration into vehicle control agencies using a basic actor superclass; addition of vehicle subsystems; modifications to bfr control agency to allow for weapon handiness and subsystem control; fixed Fit mapping for vehicle override; made mountable seat transcoders independent
* delayed explosions to accompany the delayed death for the bfr; bfr terminal window closes on successful purchase
* the bfr armor siphon works
* clarification for bfr inventory item manipulation; corrections to length of bfr transcoder for flight variants; everything else in in support of the various arm weapons that can be assigned to the bfr, including damage proxy support for causing/interacting with/cleaning up after radiation cloud projectiles
* fixed the apc emp burst; fixed bfr arm weapon manipulation for activated subsystem; armor and ntu siphon support
* battleframe loadouts available upon vehicle spawn (vs and tr only)
* adb values for siphons; subsystem update message; some repairs
* cargo vehicles are subject to radiation damage; damage for battleframes are different depending on shield evasion status; battleframe loadout deleting supported; bfr kill box; automatically wire bfr sheds, includeing the ones in sanctuary
* proper bfr spawn angles; bfr vehicle timers; projectiles are no longer radiation clouds by default; better remote projectile cleanup; resolving incorrect weapon arm enabled states for bfrs
* added tests for FrameVehicleState and GenericObjectActionAtPosition; pass around maximum sector for zone interactions
* changed the triggers for the stamina regeneration timer
* potential fix for issue related to finding arm weapon mounts
* modifications to how vehicle subsystems are automated; jammer field updates; support and passing around custom block map ranges; does include activated dev tests for battleframe PAM, which will need to be stripped out later
* commit while working on subsystems mk2
* subsystems fail when jammed; an unoccupied bfr does not have shields active; pulling a bfr of one variant should block the other variant too
* fix distance check with radiation clouds; blocked bfr weaponry from anywhere but bfr arm mounts and cursor; ammunition depletion of aphelion laser; bfr shields deactivates when unoccupied
* significant modifications to vehicle subsystem operations; disambiguation of weapon subsystems; debuffs to charge rate and use rate for the capacitor and shield of bfr; test for ComponentDamageMessage; somewhat proper jammering operations for bfr
* pattern for applying damage to player avatar and player-controlled vehicle collisions
* pattern for applying damage to targets due to collisions, falling damage and crashing damage individually; fields to support these calculations are provided
* modifiers to translate 'small step velocity' to real game velocity, as reported by the HUD; corrections for velocity; corrections for velocity in other packets
* fall damage calculations moved to function
* basic two-body collisions between GUID-identified game entities and a ward against too many collisions in a short amount of time
* bailing mechanics
* vssm for non-driven vehicles
* comment about vehicle state message field
* comments and minor refactoring for current collision damage calc; tank_traps modifier; potential fix for blockmap indexing issue
* fixed cargo/carrier vehicle ops
* corrections to initialization of ce construction items; adjustments to handling of modifiers for collision damage
* modifier change, protection against flight speed and spectator crashes; submerged status is once again known only to the actor
* appeasing the automated tests
* hopefully paced collisions better; re-did how Infantry collisions are calculated, incorporating mass and exo-suit data; kill feed reporting should be better
* adjusted damage values again, focusing on the lesser of or middling results; collision killfeed attribution attempt
* kicking offers bail protection; lowered the artificial modifier for one kind of collision damage calculation
* correction to the local reference map functions
* fixed tests; attempt to zero fall damage distance based on velocity; attempt to block mine damage when spectating
* propagation of the ask pattern into the unique number actor
* TaskWorkflow as a replacement for TaskResolver; includes working tests
* AvailabilityPolicy has been changed slightly; number source restriction mechanic has been completely removed
* TaskResolver is gone and done and TaskWorkflow replaces it
* number pool variety
* every zone gets a custom tailored 'environment' number pool, as well as all other number pools; uns involves many more static functions and hard-defined variables
* repairs to uns and guidtask tests; worked uns into unops, an actorless version, but did not integrate into server
* shuffled around files in the guid package, causing import threshing; wrote extensive comments; repaired tests; classes related to the old unique number system have been removed
* created straightforward tasks; simplified number pool actor calls; repaired tests due to modifications to generic pool
* bad merge recovery
* corrected flail deploy animation timing; added a working laze pointer terminal utility to the flail
* initial LongRangeProjectileInfoMessage packet and tests
* flail damages targets over a distance and damage dealt will increase with distance traveled
* flail laze pointer broadcasts a special waypoint to squad members and blanks position marker after a short time
* recharge terminal will remotely restore ammunition to ancient vehicle weaponry (like the flail) as weaponfire expends it
* laze waypoints do not double and are visible to all squad members; excessive squads do not form and stick around by accident
* broke vehicle control agency down into specific agencies for different types of vehicles
* moved shared cargo vehicle pain onto the carrier control agency; apc-type vehicles have charging capacitors and emit emp's
* comments and documentation; cargo learning about damage to carrier corrected; fixed tests and added tests
* adjustment to explosive deployable distance filtering; apc now uses this filter when determining valid emp targets by distance
* separating geometry classes
* 2d geometry; retirement of the *3D suffix
* makings of an early block map datastructure
* entities in a zone - players, corpses, vehicles, deployables, ground clutter, and buildings - divided between sectors of the zone upon creation, management, or mounting; superfluous messages to keep track of blockmap state, for now
* trait for entities to be added to the blockmap; internal entity data keeps track of current blockmap sector information; calls to add/remove/update functions changed
* modified pieces of environment into an entities that can be added to a block map and have a countable bounding region; fixes for vehicle control seat occcupant collection; fix for squad individual callback references (original issue still remains?)
* introduced the block map into various existijng game calculationa where target selection can be reduced by its probing
* he_mines and jammer_mines now trigger if a valid target is detected at the initial point of deploy; they also trigger later, after a valid target has moved into the arming range of the mine
* conversion of interactions with zone into a queued, periodic set of tasks
* explosive deployable control -> mine deployable control
* tests repaired and all tests working
* mostly comments and documentation
* amenities are now represented on the blockmap
* unifying the split code pathways that separated telepads from other deloyables; in other words, no more SimpleDeployables and ComplexDeployables, just Deployables
* moved some aspects of the build logic into a deployable control mixin; aspects governing the deplpoyable toolbox have been transferred into the player control agency
* moving aspects of teleportation system establishment and decomposition into specialized Telepad control agencies
* retiring deployable disposal code path that required a dedicated remover; each deployable now handles its own removal, and some do special things when being removed; process still has some rough edges and tests are probably thoroughly broken
* additional modifications to support boomers and telepads; consolidation of code for deployable acknowledgement by owner and during failure conditions; tests for behavior
* retooled a significant portion of the build sequence and deconstruct sequence to: eliminate duplicate messages, give the player more input to and control over the process, remove undue responsibility thrust on SessionActor
* messaging issue where player did not re-raise hand after exchanging a used construction tool for a new construction tool
* modification to deconstruct path to make certain deplayble is unregistered last; ridding requirement of AlertDestroyDeployable; fixing test
* create paths for unowned deployable building and (standard) owned deployable building; corrected activation and connection between telepad deployable and internal roouter telepad; wrote tests for connection between telepad deployable and internal telepad
* modifiying the conditions of a deployable construction item being moved into a visible player slot such that the construction item's initial output is valid given the player's current certifications
* by forcing the fire mode to revert briefly before the ammo type updates, the construction item can be made to remain consistent between fire mode shifts
* construction tools now keep track of fire mode ammo types for a period of time, allowing one mode's last setting to be retained
* greatly delayed rebase with master
* minor changes; test correction (?)
* router is go?
* repair capability is now reflected based on progression in the engineering certification tree; uses correct values and modifiers
* 12 works better than 12.5
* fixed tests
* comment out most of apply-cooldown-to... filter to find out which part of it causes issues with the PR
* fixed resource silo tests
* everything but starting the scheduled task
* shutdown now
* cleaning schedule managed by simple time check
* initial OrbitalShuttleTimeMsg packet and tests; new objects to support HART shuttle transport system
* master was stale
* grouped scheduling for timing orbital shuttle activity
* door lock controls for HART shuttle lifecycle, and specifically for the doors that lead into the shuttle boarding hallway
* separation of the door from the door unlocking logic, which now has to be provided if performed by an outside source; a door that is locked either by bolt, HART routine, or other reason, can now be shut immediately; message when HART is not docked with a corresponding entry hallway door
* better degree of door logic control; all shuttle-related messages have been moved to LocalService; careful managing of 'original state' for the shuttle's cycle
* modification of seat mounting and cargo mounting support entities to expand functionality
* absolutely very little to do with the feature of this branch and a lot to do with yak-shaving; long story short, class inheritance is greatly modified and mountable seats can now accept multiple players if initialized properly
* a lot has changed: distribution of MountableBehavior, mount point information is more complex, vehicles convert differently, the routine of the shuttle timer is initialized differently; you can now successfully utilize the HART shuttle to drop into a zone
* swap of shutle from pad to pad control; tests and comments
* eject players from HART gantry hallway as if passengers dismounting from seat when not boarding through the use of environmental geometry; HART system uses duration from config settings to set scheduler
* rebase to curious master; repairs to vector rotation calculations; regression of mountable changes involving seats with occupancy greater than 1; orbital shuttle as a unique vehicle and amenity; corrected dismount offsets and offset calculations; weird angle of nc hart a building has been properly accommodated; hart events have prerequisite animation states
* rebase with master; looks like rebase with merged_master, which is also a commit
* lots of tests (though not nearly enough); checking the permission group of a shuttle seat no longer creates that seat
* fixing explosions
* fixed the persistence monitor service potentially using non-printable unicode in actor names
* can not use a droppod to gain access to one's own sanctuary
* removed hart facility update that causing open bay doors and beeping
* PR review changes
* fix for aggravation issues
* difficulty modifiers for repair rate and drain in config
* changed autorepair request-repair pattern to wait until a repair is fulfilled before issuing the next request; moved integration tests for efficiency
* auto-repair accounts for delay between request-reply when schduling next request; base ntu drain is halved; auto-repair mending values adjusted based on wiki times
* moving config call into auto-repair mixin
* deleting the old integration testing code
* obligatory test fixes
* more of the same
* correcting exceptions with calculating subsequent auto-repair time and transfer messaging behavior with WarpGate objects; transfer animation and transfer delivery now have slightly different timing; wrote bunch of tests that don't work in the standard manner, but do pass
* planar classes to describe levels of water and other fluid parallel to the ground
* corrected purpose of field in OxygenStateMessage and adjusted the structure of the packet; the environment is now 'regions filled with stuff'; messaging pathways to facilitate drowning and drown recovery in SessionActor, WorldSession, and PlayerControl, as well as the avatar event system
* drowning height is now a featur - recommend going through GlobalDefinitions; fixed lava pool collision to work on pool entry rather than drown level; lava now burns; painbox damage now is directed towards players control agency first
* drowning timer works correctly for both player and vehicle targets; timing and dive depth information for targets defined, but currently originates from a generic location (ObjectDefinition); packet OSM has been modified for efficiency; classes for environment features previously exclusive to drowning mechanics have been pushed towards generic naming conventions
* added sea and pools for z4, z5, z8, and z10
* vehicles now take damage (to the point of destruction) when exposed to lava due the expansion of environmental damage reasons and environmental damage modifiers; modification of the environment exposure lingo; streamlining of vital activity record system
* added basic drown params to flying vehicle definitions; object trait and control mixin for environment interaction, code moved from SessionActor and WorldSession
* separated environmental classes; handled waterlogged flying vehicles, in properties and code; wrote comments and tests
* players mounting vehicles and players subjected to the vehicle transfer process should receive updated drown-state status of the vehicle; drowning should suspend while in the middle of vehicle transfer, in the case the process is long
* increased damage performed to vehicles by lava
* created base damage interaction classes and replaced various projectile-based damage that utilized ResolvedProjectile; not refined, maintains redundancy and overloads, but should work
* continuing to reduce the exposure of ResolvedProjectile and replacing it with applications of DamageInteraction, DamageResult, and DamageReason
* removed ResolvedProjectile from the project; adjusted remaining code paths to work around it
* vitals.test became vital.base; no one liked this
* lots of inheritance, polymorphism, and other chicanery; moved around files, so it also looks like more files have changed when they have not (even if they did)
* codecov file correction
* master rebase; vital directory structure changed, so file imports have been modified in several other files; ResolutionSelection has been removed, requiring direct function literal assignment; tests repaired, where necessary; no actual functional change
* code comments
* DamageResult is its own case class now, wrapping around a before/after target and the interaction used in its calaculations; tests have been corrected
* adjusted Player.Die() to demonstrate a damage-based suicide approach
* resolved circular inheritance in projectile damage modifiers; better employed explosion reason, damages players around exploding vehicle as example
* expanded explosions to other object types; exploding is now a flag and the damage is an innate property of the object type; removed advanced references to properties on the damage source, since the damage source is easily accessible; wrote comments; fixed tests
* overhaul to painbox damage to align with normal player damage handling, thus assimilating it properly into the damage system
* future development; normal vector from euler angles; custom proximity test
* where 'innateDamage' should have not replaced 'explosion'
* moved the hitPos for the generator test; attempting to imrpove the reliability of the auto-repair integration tests (didn't ...)
* spelling and private val