* initial workings for a csr/gm player mode
* weird line removal after merge
* too many changes and refactors, but the code compiles properly; need to push these to the repo and sort out issues with it all later; hopefully, nothing has changed except for the csr stuff
* extensive changes to mode logic for refactoring and functionality improvements, especially for accommodating csr spectator mode
* csr's may now see players who are spectating, including csr's who are spectating, including a wide variety of their behavior such as location, weapon management, etc.; removes zoning cancel messages as a required log from certain use item actions
* corrected various issues identified in the comments of PR#1247
* restored killed->autorevive functionality; removed last traces of old door code from general operations
* knife stab corrected; spitfire turret corrected; blockmap interactivity using zone interaction allowance flag; visibility during resurgence code for csr; removing messages and experience gain for interactions with csr
* pruning imports and correcting the default spectator setting
* separated router/telepad activity from other vehicular activity, previously all considered a form of mounting/dismounting, and restored support experience rewards
* can not activate or deactive spectator of gm when dead; zoning while spectator removes spectator and defaults to sanctuary
* field turrets are neutral-neutral when constructed by a csr; custom bang command 'setempire' will adjust the faction affiliation of a variety of game objects
* fixed facility occupation recognition
* when transitioning between player modes, do not parse new messages about transitioning between player modes, until fully transitioned between player modes
* configuration for the game world server to connect to clients across a number of socket-port connections following a simple numerical load balancing policy
* combining port management into the sector pane
* mostly spelling issues
* defining all doors; moving around classes related to environment fields; separating global definitions into a main file and implementation files
* logic for declaring door occupants/users as inside or outside or within an open door using door declarations, geometry and environment fields, and math; divided the remaining object type definitions into their own files and removed those from the main global definitions file
* integrating inside/outside considerations into server-calculated damage; clarifying the sidedness comparison rules; extending inside outside considerations for deployables and vehicles
* projectiles that, by definition, are allowed to damage targets through walls (radiation_cloud, with DamageThroughWalls) regardless of sidedness; any unflagged radiation_cloud must be on the side as its target; fixed chat bang-commands not being executed
* added sidedness to different entities, both in general and depending on the zone where it matters
* removed three too-specific fields on the door's definition, resulting in nontrivial rewrites that resulted in all amenities being able to project an environment field onto the block map, to do with whatever it needs
* wrote WithEntrance interaction to be able to switch between normal / debug modes; telepad and router sidedness support; fixed bang-commands; fixed issue with proessing player mounted state; added zone entity discovery feature (unused)
* empty character literal is a digit somehow
* adding way to allow bang-commands that only a gm would have access to for everyone
* 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
* tighened up the iterative processing aspects of kill assist calculations; wrong database query for assists; assumption of flag being acquired when it really wasn't; assumption of facility capture start when no longer represented
* mainly, the spacing
* augmented the calculations for bep
* adjustment to calculations for the long life bonus experience and to the lifespan experience limits
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
* make the timer for outbound packet bundling a fallback option rather than a primary control for outbound timing
* better emergency timer determination
* eh
* master merge and light changes
* 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)
* an attempt to space out the player upstream
* some data sterilizing
* when a player is respawning, other players do not send their own update PSM's
* always display players in their proper locations when nearing their view, even if they have been stationary this whole time
* fixing configuration file and warnings
* modified the instant action algorithm; added configuration flags for ams instant actioning and crashing third party activity
* experimental droppod feature that was abandoned as too complicated
* 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
* 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?
* in forgetting an exo-suit certification, one must not be wearing that type of exo-suit afterwards
* making the conditional more straightforward
* fixed issue with purchase times; can now share max purchase cooldowns
* 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
* removed suspicious shadowing and clarified failure message; customized skipped bundling
* smp history is now a no-less-efficient circular array
* adjustment to bundle dispatch timing; adjustment to inbound sequence reorder queue
* adjustments to handling inbound packets with missing subslots
* unused PacketCoding features
* comments; delayed start of the queue processor task; turned sequence reorder task and subslot missing task into function literals
* optimizations to the inbound re-order by sequence routines by controlling execution flow
* the subslot request timer has been separated from the standard bundling processor; config values for bundling, sequence resolution, and subslot requests in the middleware actor have been included
* replacing func-array with conditional logic
* 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