Commit graph

80 commits

Author SHA1 Message Date
Mazo
7fcbf7bf41 Full map configs for all above ground continents including battle islands and oshur prime (#245)
* Move door orientation logic from the door itself to the IFF lock, as the lock has the correct orientation in the UBR files, whereas the door does not.

* Remove ModelID from buildings (is now GUID) and change "ID" to be "MapId". A building can also be constructed with both a GUID and MapID.

* Update Maps.scala and Zones.scala to (for the moment) only have Ishundar configured with Sounours V3 playtest base ownership. Default starting zone is also moved to Ishundar for now.

* Fix oopsie with West Zaqar Tower

* Add proximity terminal positions to constructors

* Offset vehicle spawning by the correct amount from game_objects.adb.lst

* Orient players correctly when spawning at a respawn tube

* Apply a 90 degree offset to tech plant garage locks, as these are the only locks where the orientation does not match the orientation of the door

* Add missing spawn terminals, repair/rearm terminals for both ground and air.

* Additional documentation for GOAM / PAM packets

* Add extra arguments to building LocalObjects to make it a bit more DRY and reduce line count for map files

* Split maps configuration into separate files and add every above ground map (including battle islands and oshur prime)

* Fix ZoneTest typo

* Update vehicle spawn pads to use the correct object types, Z offsets and Z orient offsets

* Update ZoneMaps with the new vehicle spawn pad definitions and fix a few issues with sanctuary GUIDs (special thanks to the one person that used capitals in the .lst files when no other object uses them)

* Comment out duplicate instance of ObjectDetachMessage being sent

* Apparently TR sanc has an extra 6 repair silos, now accounted for.
2019-04-04 14:44:57 -04:00
Mazo
3738feec12 IFF/Door orientation - Building MapID/GUID changes - Ishundar full config (#244)
* Move door orientation logic from the door itself to the IFF lock, as the lock has the correct orientation in the UBR files, whereas the door does not.

* Remove ModelID from buildings (is now GUID) and change "ID" to be "MapId". A building can also be constructed with both a GUID and MapID.

* Update Maps.scala and Zones.scala to (for the moment) only have Ishundar configured with Sounours V3 playtest base ownership. Default starting zone is also moved to Ishundar for now.

* Fix oopsie with West Zaqar Tower

* Add proximity terminal positions to constructors

* Offset vehicle spawning by the correct amount from game_objects.adb.lst

* Orient players correctly when spawning at a respawn tube

* Apply a 90 degree offset to tech plant garage locks, as these are the only locks where the orientation does not match the orientation of the door

* Add missing spawn terminals, repair/rearm terminals for both ground and air.

* Additional documentation for GOAM / PAM packets
2019-04-04 14:32:28 -04:00
Fate-JH
337cfbe5d2
ObjectCreateMessage Alterations, Class Object Adjustments (#243)
* power outage failure resulting in the destruction of the original ocm-fixes branch; the git branch refs were corrupted during commit, but the up-to-date changed files remained intact

* eliminating the need for CommonFieldData2 and CommonFieldData2WithPlacement

* in the middle of integrating CommonFieldData into DetailedLockerContainerData (but not standard LockerContainerData); added field for final boolean in WeaponData

* adding faction affinity to Equipment (to match functionality; not becuase I know what ends ...)

* in the middle of integrating CommonFieldData into DetailedCommandDetonaterData

* applying faction affinity to objects at time of terminal production (but to what ends?); required BoomerTrigger and AmmoBox to always report as NEUTRAL internally

* completed the transition from using the old class-based order terminal system to the page-based order terminal system; unused terminal classes have been eliminated

* more closely aligned TelepadDeployableData and InternalTelepadDeployableData

* modifying TelepadDeployableData make it generic and eliminate the need for InternalTelepadDeployableData after fixing a packet converter to utilize DroppedItemData

* modified Terminal operation to branch further outwards from Terminal.Request to the TerminalDefinition's Request method; modified tests to reflect update

* loosening up matrix terminal definition limitations

* modified ProximityTerminal to support a custom defintition class

* rendered the message passing system for Terminals general (Any) in the full scale so it can be specific in instance cases

* refactored and moved both EquipmentSlot and ExoSuitDefinition

* (re)load Favorites each time player (re)spawns
2019-03-03 08:23:30 -05:00
Fate-JH
961ae1b93b
Proximity Terminal Fix (#241)
* modifications to ProximityUnit and related classes to internalize the effect control for the terminal, removing the flywheel functiuonality from WSA

* proximity operations for medical terminals (the one in the Anguta lobby, specifically) is functional; some entities besides Player now keep track of the continent they possess, a necessary compromise for proximity ops

* repair rearm silos (Anguta courtyard East) demonstrate operational behavior when lattice benefits are active

* proximity terminals may now juggle multiple targets that move in and out of range and change validity over time

* previous rebase; preparing for special location + offset calculations for utilities

* working location-based proximity repair terminals for the lodestar, utilizing new fields in the vehicle definition, new configuration method in the utilities, and new calculations for Vector3 entities; some comments and tests

* separated ProximityTarget; updated existing terminals; restored defaults; preparing to fix tests

* tests involving the proximity unit workflow

* dismantling a portion of the proximity terminal machinery that is no longer necessary and only poses risk to the system; removing temporary code used to quickly test vehicle silo repairs
2018-12-23 21:09:12 -05:00
Fate-JH
4eca226b5b
Damage Fix, and Stuff (#235)
* redid splash damage radial degrade calculations; lasher damage fixed to 6/0 or 2/4 depending on armor; fixed direct hit distance for weapons that act like slash weapons; gave Falcon a valid projectile

* delayed resource silo startup to avoid crash; discovered issue with MAX armor resulting from incorrect manipulation of inventory items during suit transfer

* modifications to consider a specific modifier that exists on some vehicles and armored equipment called Subtract, a DamageProfile that reduces damage due to a set flag; manually controlling damage tick marks rather than relying only on HitHint (from client)

* Tools now have default firemodes (temporary?); ammo gotten from loadouts is always full; loadouts and exo-suits juggle armor values differently on being changed; log messages for damage to players and vehicles

* weapons with one (last) shot need support communicating that one (last) shot

* fixing tests

* correcting the codec for BindPlayerMessage

* changed wording that identifies the damage log entries

* switching exosuit no longer causes butterfingers

* extending exosuit swap armor value changes to infantry loadout changes

* ranges removed from non-vehicle containers

* enabled partial damage functionality to facility turrets

* BindPlayerMessage replacing BattleplanMessage for purposes of depicting the closest AMS spawn point; specific enums in relation to spawning in BPM and SpawnRequestMessage

* rewrote exo-suit switching and loadout switching code, paying extra-special attention for the needs of MAX's

* quick amendment for previous commit

* switching from mount point check to seat checks in VehicleRemover; started refactoring of Cargo functions before realizing how complicated the full effort would be, so these changes are merely wrapping object identification by GUID

* adding a minor server delay to terminal operations
2018-11-21 20:31:51 -05:00
Fate-JH
9340777c00
Router and Telepad (#232)
* added short and detailed codecs for Telepad, and converter for switching between Telepad and packets; modified Utility to construct a formal TeleportPadTerminal that associates the Telepad with a Router; can now pull telepad Equipment from Router terminal utilities

* this code supports operation of the deployable-side telepad

* basic teleportation between the Router and the remote telepad is functional; an ever-present internal telepad utility was added to the Router to facilitate this teleportation

* breakdown of Router teleportation code for the purposes of client synchronization; supports Router being set up first or Telepad being set up first, either order; background timer for eventual activation of Router

* refactored the router telepad system to remove unecessary function diversions; telepads now are properly linked where appropriate and links are properly broken in appropriate situations; message passing has been simplified

* fixed inventory size of the telepad; transferred router telepad activation systems from VehicleService to LocalService, and from the Ruoter to the TelepadDeployable; cleaned up code that handled the TelepadDeployable the Router relationship in WSA

* tests, mostly; no-router conditions for certain telepad-related converters

* adjusted (made constant) quantities for owned telepads

* resolved issue with router and telepad crashes; properly handles deployment states of AMS and Router upon zone entry; changed ownership/decon requirements to ownerless only
2018-10-17 12:36:43 -04:00
Fate-JH
5f3e7e5df8
Deployables (#230)
* functions for certifcation ui updates (that don't work)

* initialization of combat engineering deployables ui on load and certification change

* representation classes for ACE and FDU; ability to pull ACE and FDU from equipment terminals

* ammo change functionality and fire mode change functionality for ConstructionItems refactored from Tool operations and supported properly (switch between deployable options)

* zone-specific structure for keeping track of deployables; abaility to dismiss deployables from the map screen (previous functionality); local client creation of explosive-type deployables

* refactored MannedTurret into FacilityTurret and lesser traits to be used in the deployable spitfires and the OMFT's; all ACE deployables are available for placement; partial management of the construction items after the deployable is placed; boomers create boomer triggers

* Avatar-specific storage for deployables and for updating UI elements

* refactored quite a bit of code in WSA for the benefit of deployable management; refinements to deployable creation; server messages about deployable quantities; corrected the FDU encoding pattern; lots of work dedicated just to synchronizing BoomerTrigger objects

* added RemoverActor for deployables and redistributed deconstruction functionality away from WSA to new DeployableRemover; added events to facilitate activities not inheritable with this model

* refactored and distributed Deployables classes; copious amounts of testing and document-writing

* boomers now explode from trigger; support for deployables being destroyed by weapon discharge, including individual health, soure identification, and damage model; shuffled deployable classes to build different hierarchy

* sensor_shield was skipped by accident

* identified stray object in Hanish, Ishundar, and added Irkalla, Ishundar's capture console; fixed issue with Warp command and 'Irkalla'; modified building amenity setup and setup testing in Zone; players load and die properly when seated in an omft; reserve ammunition in omft properly registered

* added local service channel, capture consoles, fixed tests as much as posible

* fixed LocalService tests by booting the ServiceManager; added avatar and local tests

* a simple attempt to refactor Actor messages in a way that is acceptable to Travis CI

* making the explosive deployables vanish upon explosion; sensor health bars are now supported
2018-09-23 08:00:58 -04:00
Fate-JH
6cd18c5623
Merge pull request #229 from Fate-JH/guid-test
GUID Fix
2018-08-20 19:00:18 -04:00
FateJH
fbb3946857 resolution of issue with registering a specific number as a GUID 2018-08-12 20:03:38 -04:00
Mazo
abdebf09ba Timed capture consoles & towers / hacking improvements (#228)
* Add capture terminal definitions

* Logging / documentation

* Functionality for timed base hacks

* Disable IFF locks while base is hacked

* Hacking speed based on player's hacking certification level (and hack effect duration data - currently not functional)

* Hack effect duration functionality

* Sync hack states with clients joining the zone

* Whitespace / comments

* Allow IFF locks to be resecured by the owning faction if it has been hacked

* Fix bases with no NTU silo failing to capture

* Reset CC properly on hack that expires with no NTU in silo

* Capture towers instantly and improve handling of hacked objects queue

* Fix handling of neutral IFF Locks and remove unnecessary casting

* Move HackCaptureActor to correct location

* Re-enable Anguta door locks for air pad now hacking/resecuring IFF locks work
Add capture terminals (timed CC only for now) for a few bases & a tower
Add a few missed locks/doors
Add a resource silo to Girru

* Fix merge issues & missing documentation
2018-08-10 18:21:15 -04:00
Fate-JH
8b5073dcbc
accounted for collapsing cert trees, exclusive certifications, and a method of keeping track of certification costs (#227) 2018-07-30 10:20:23 -04:00
Fate-JH
7901f66324
Damages (#225)
* refactored WSA code handling HitMessage, handling SplashMessage, and handling LashMessage; modified projectiles for future functionality

* players can die from being shot now; the damage model is simplistic since main goal was to write around the potential for negative damage ('healed from getting shot'); HitHint works correctly; dedicated AvatarService channel for each avatar helps reduce message spam

* vehicle destruction, and replacement with lightweight wreckage objects upon continent join; made flushing vehicle terminal more accessible

* simple work on vehicle shield charging (amp station benefit) (that's my commit story and I'm sticking with it)

* a flexible calculation workflow that can be applied, grabbing damage information, resistance information, and then combining it with a resolution function; players and vehicles have resistance values; removed redundant damage calculations from WSA

* broke up DamageCalculations, ResistanceCalculations, and ResolutionCalculations into packages under vital; fixed an error with exo-suit calculation resistances; events for dealing with synchronized player and vehicle damage calculations and building the papertrail of those damages; updating codecov.yml file for ignore classes

* added tests for various components (damage model, destroyed vehicle converter, vitality, etc..) and some functionality improvements

* added a field to keep track of how projectiles will be attributed at the time of target death
2018-07-30 09:28:45 -04:00
Mazo
fc78d53ecb Fix NTU warning flag having the wrong data type (#224)
Fix LowNtuWarning having the wrong data type
2018-07-18 08:41:28 -04:00
Fate-JH
b81ff2bbf4
Facility Turrets (#223)
* object class, actor class, and definitions for base turrets; untested

* wired base turrets into existence, with hoop jumping; created interface for objects with mounted weapons (vehicles and turrets); working example phalanx_sgl_hevgatcan in Anguta, Ceryshen

* re-wiring manned turrets so that the turreted weapon itself never changes externally but merely identifies different and changes internally; workflow for upgrading wall turrets in place (30s); clarifications and documentation for HackMessage and UseItemMessage; getting rid of orphaned packages from previous location of services

* added a simple task that reverts upgraded manned turrets to their None state after a certain amount of time has passed; it works but need improvement

* turret weapon upgrades now last for a duration of 30 minutes before reverting; created a service support actor base actor that underlies all current support actors; nano-dispenser now properly loads 1 unit of upgrade canister, rather than 100 units; all canister types have appropriate 2x3 inventory size

* forgot to hurry; moved over the Services tests from main/test folder into the common/test folder and needed to change the location of ActorTest to accommodate it; test and documentation for MannedTurret; codecov ignore update

* wired facility turrets in Anguta, Ceryshen; Akna tower, Ceryshen; and S.Villa tower, home3 (Anguta tower is a watchtower); attempted workaround for Travis CI issues with receiveN; re-introduced RemoveActorTest, at least the first test; expanded how ZoneActor performs tests on MannedTurret setup

* getting rid of useless commented-out code; making common operations for mounting and dismounting

* removed outdated comment; added ResourceSilo tests; added extra test for Zone
2018-07-14 21:25:44 -04:00
FateJH
41f0cdc0a0 repairing tests 2018-06-16 20:09:25 -04:00
FateJH
20a4fdfe45 documentation for projectiles; moved LocalProjectile construction intoMaps.scala; extensive test corrections 2018-06-16 17:31:49 -04:00
FateJH
000652c969 documentation and tests; added projectile names; changed logging level for ActorTests to OFF to remove the majority of log clutter; issue with number pool hub re-assignment and the existence of fixed objects (LocalProjectile) that requires unrelated tests be modified 2018-06-16 17:31:49 -04:00
FateJH
1bceb35226 importing the basics of the projectile/damage system from the Sounours Play-Live branch (51200); only modified how damage numbers and modifiers are interacted with and how a projectile's characteristics is accessed from the Tool that emits it; GlobalDefinitions could be imported over almost entirely, fortunately 2018-06-16 17:29:03 -04:00
Fate-JH
3eb49e6b55
Merge pull request #220 from Fate-JH/inventory-items
Minor Inventory Modifications
2018-06-11 19:28:09 -04:00
FateJH
44741b2898 modification to GridInventory to avoid unnecessary leaking of internal support value and unnecessary complication of item access 2018-06-10 00:23:59 -04:00
FateJH
ffd8c02de9 some code clean-up; tests for VehicleControl mount behavior override 2018-06-09 01:09:34 -04:00
FateJH
a20e75d07c added an enumeration for character voices, which prompoted a massive file update; separated BasicCharacterData from CharacterAppearanceData; added some yet unimplemented support to WSA and VehicleData; completely commented out RemoveActorTests for later repairs so they do not break in Travis CI 2018-06-08 21:07:47 -04:00
FateJH
c664f96bd4 a little bit of vehicles everything; work on the endocder/decoder for vehicles and seated players and bitstream size; vehicle ownership is extremely passable right now; seat restrictionsfor getting into vehicles is now in place; tests repaired; adjustment to vehicle spawn pad (again) to hopefully increase tolerance and recovery 2018-06-06 19:13:39 -04:00
FateJH
9e75fd1191 even more generosity with the tests 2018-05-28 09:04:09 -04:00
FateJH
d26e8834c6 hopefully more generous timing for the tests 2018-05-28 08:24:57 -04:00
FateJH
c7641fc117 modified zone ground actor operation to include no-callback item removal message; adjusted tests for Zone and wrote tests for RemoverActor 2018-05-27 02:24:20 -04:00
FateJH
f6f7ad5617 unified code paths for dropping an item, and reinforced code path for picking an item back up; LocalService will handle some of the work now; ActionResultMessage embraces its simplistic nature (we don't have enough error messages) 2018-05-22 19:13:59 -04:00
FateJH
cd91080c9a Worked ams spawning rules into normal SpawnRequestMessage workflow using the (reliable) spawn group number of 2 2018-05-21 10:58:18 -04:00
FateJH
848929fd01 test fix 2018-05-21 10:48:32 -04:00
FateJH
a3f50cc8a4 fixing Infiltration Suit issues as well as streamlining the process of exo-suit switching 2018-05-21 10:16:20 -04:00
FateJH
cf3bf19d4d tests for prior MAX changes; correcting a 13mm problem with the Lightning's chaingun ammunition type 2018-05-21 10:16:20 -04:00
FateJH
e9aac5514a more tests for the proximity amenities; added the other silo in Anguta, Ceryshen and the terminal-facing silo in home3; initial work on FacilityBenefitShieldCharge packet and tests 2018-05-16 19:24:50 -04:00
FateJH
a513f4996e working vehicle loadouts from repair/rearm silos; code documentation and expanded tests 2018-05-16 00:27:25 -04:00
FateJH
2a4fe4865e partially-working vehicle favorites system; modifications to existing favorites system, identification of packet parameters 2018-05-15 08:05:33 -04:00
FateJH
9d7d1b0456 split previous Loadout into separate InfantryLoadout and VehicleLoadout classes; moved new Loadout code into its own package and corrected import statements; corrected Terminal code and tests 2018-05-13 23:06:01 -04:00
FateJH
1d956c834c improved object name exposure for log messages; removed 'init with GUID' constructors that were no longer necessary 2018-05-10 23:03:34 -04:00
FateJH
526ab7d5ec Removed duplicate code by moving the logic of Container around; removed duplicate code by producing a functional inventory search algorithm that handles both ammunition and weapon magazine options; corrected tests 2018-05-09 16:26:33 -04:00
FateJH
68422401e5 Another revamp to vehicle spawn process. Wrote tests. 2018-04-29 00:16:55 -04:00
FateJH
5d5c609a2f Reorganized vehicle spawning process and wrote tests for process. 2018-04-29 00:13:15 -04:00
FateJH
fde49773cd Splitting single vehicle spawn control process into several subtasks. Vehicle event bus attached to zone objects, especially for interacting with VehicleSpawnControl. Importing SouNourS copy of ServerVehicleOverrideMessage packet and tests. 2018-04-29 00:13:15 -04:00
FateJH
a31207322b accomodations for tests; adjusting conditions for proximity terminal operations; adding the medical terminals in Anguta 2018-04-19 19:51:04 -04:00
FateJH
35ed000ccc code documentation and tests 2018-04-19 08:03:06 -04:00
FateJH
f444a35785 Changes to AvatarService packets and support actors in regards to corpse management and tests regarding corpse management. Seriously, those tests. 2018-03-31 20:03:40 -04:00
FateJH
ddc2450541 Buildings now have simple type distinctions to work using the known output of a SpawnRequestMessage packet. Support for cross-continental respawning (actually a failure case for being unable to spawn). Corpse tuning and testing. 2018-03-31 19:59:11 -04:00
FateJH
8a21df429b The former Player class (former-former PlaterAvatar class) has been split into a persisting Avatar class and a transitory Player class. 2018-03-31 19:54:37 -04:00
FateJH
001f9a40e9 Anguta, Ceryshen, the Anguta Watchower, and Anguta's two bunkers have had their amenities wired together, excluding the door locks being connected to doors. Modified how things like spectator status, fly status and speed persist. 2018-03-31 19:51:01 -04:00
FateJH
33a7636f5e changing continent id and building id to normal data types in BroadcastWarpgateUpdate and BuildingInfoUpdate; implementing warp gates and branched logic for warp gate initialization in WSA; updating tests 2018-03-05 23:26:38 -05:00
FateJH
eea01c8072 additional matrix terminal tests and error message correction 2018-03-01 11:09:17 -05:00
FateJH
72b7c35b3f tests and corrections 2018-03-01 10:39:34 -05:00
FateJH
74863858f7 adding tests for utilities and fixing tests for AMS; adding information to PAMessage; scaling back modifications to WSA 2018-03-01 10:24:56 -05:00