fish-station/Content.Client
Leon Friedrich 32d99eaba9
Damageable Refactor 3: Revenge of the Instamerge (#4524)
* Add DamageType And DamageGroup Prototypes

* Remove DamageTypePrototype Field "name" as its redundant

* Change I/DamageableComponent to use prototypes

* Update DamageContainer, ReisistanceSet and DamageChangeData

* Change Barotrauma Component to use DamageType from DamageSystem

* Update AsteroidRockComponent

* update some more components

* update some more components

* Fix m o r e c o m p o n e n t s and their damageType

* all thats left is bug/missing node hunting then verification.

* push changes

* update submodule

* Merge fixes

* push DGP for example

* update damagecomponent across shared and server

* fix a few bugs

* Fix Merge issues

* Refactor damageablecomponent update (#4406)

* Fixing merge.

I messed up part of the merge. this should fix it?

* Barotrauma now uses prototypeManager

As System.Runtime.CompilerServices also has a [Dependency], I think I had to use the full path [Robust.Shared.IoC.Dependency]

* FlammableComponent now uses prototypeManager

* SuicideCommands now use prototypeManager

* Changed  many files to use prototypeManager to resolve damaege prototypes

Yeah.... prototype references would be very nice. maybe this was all a waste of time.

* Grouping prototypeManager.Index with datafield definitions

This will make it easier to eventually add prototype references

* removed unused variable

* Moved lines around.

Lines now consistent with other TODO PROTOTYPE blocks

* Grouping more prototypeManager.Index with datafield definitions

* Removed unnecessary code

* Added more prototypeManager indexing

These ones weren't pointed out by DrSmug. But I think this is all of them? That or my regex is shit.

* Remove redundant _damage field

* Remove redundant _currentTemperature

* Moved variables down

* Added prototypeManager indexing to TemperatureComponent

* WeaponComponent/System now use ProtptypeManager

And as far as I can tell damageType is required, and therefore should never have been null anyway?

* Make ranged weapon clumsy fire effects datafields

And yes, the order in which the clumsy effects occur is very important.

* Made damage on vital body part loss a datafield

* Renamed several damageGroup variables to group

* Capitalised DamageListToDamageGroup

* Make radiation and explosion damage types datafields

* Renamed _supportedDamageGroupIDs and _supportedDamageTypeIDs

* Fixed mistakes

Frogot to remove prototypeManager index DamageTypeTrigger, and wrong variable visibility in TemperatureComponent

* Added necessary code

Is something tragically wrong?

* MeleeWeapon damageType is not actually required

* Fixing someone else's mistakes

A search comes up with nothing in the yaml files, and its not a required field. So no one uses it? Hopefully?

* Changed and renamed damageTypeToDamageGroup

Previously would incorrectly return the total container damage for each group, not the total in the group

* renaming varitables

* Renamed variable DamageClasses

* Added dictionary converting functions

* Added ID-keyed dictionaries

* Making MedicalScanner use ID dictionaries, instead of prototype dictionaries

Oh oh no. I've been able to avoid UI & networking up until now. I have no Idea what I am doing.

* Fix Medical Scanner

* Summary (required)

The joke here is that this fixes the empty summary.

* Removed DamageableComponent.GetDamageGroup/Type

* Renamed "damage classes" to groups.

* Update ChangeDamage description

* Replaced Heal() with SettAllDamage()

Heal() was just a confusing name,

* More Class -> Group renaming

* Replace Class with Group in yaml files

DamageClassTrigger does not appear in any yaml? only in testing?
DamageTypeTrigger appears only in human.yaml?
HealthChangeMetabolism is Mostly in medicine.yml and one in soad.yaml

Why the hell is Cola metabolizable by plants? Who is pouring cola on their plants!?!?

* Fix _prototypeManager being null errors.

* Changing comments

Where are the prototype references

* MetabolismComponent doesn't give free heals anymore.

* Changes HungerComponent healing.

Previously I think it would actually damage you.  Only did this as I though it was causing the fast healing. Turns out that was just BREATHING.

* Generalised a function in DamageableComponent and moved it to DamageGroupPrototype

previously DamageTypesDictToDamageGroupDict was private to DamageableComponent, but was also quite general (nearly a static function). As this sort of function may be needed by other components using DamageGroupPrototypes in the future, I moved it there as a static function instead.

* modified DamageableComponent.ChangeDamage()

ignoreResistances was renamed to ignoreDamageResistances to make it clearer that it had no effect on healing.

Now uses default argument for ignoreDamageResistances, so when healing you are not forced to specify an argument that does nothing.

Also made some general changes to ignoreResistances()

* Changed class->group and added missing damage type functionality to DamageContainerPrototypes

* Added Comments to damage.yml

* Misc Changes to DamageableComponent

* Differentiated between group support and group applicability

So far, every damage type is a member of one, and only one, damage group. So this change has no real effect so far.

* Added proposed alternative to ChangeDamage()

* fixed error in DamageGroupPrototype

* Changes to DamageableComponent

Lots of changes to comments.
Some variables renamed in IDamageableComponent and DamageableComponent (also required renaming in other files)

Some minor logic changes, mostly for incorrect descirptions of boolean return values.

Also further differentiating between ApplicableGroups and SupportedGroups... if that will ever even matter

* Generalised MedicalScannerComponent

If needed, can print miscellaneous damage types now

* Fixed HealthChangeMetabolism bug

* Changing Comments around

* More questions

* Made Barotrauma default to blunt

* Fix RejuvenateTest.cs

* Comments

* Coments and variable names

* fix some master-merge issues

* Removed redundant fields

* Misc changes for readbility of PR diff

* Consistent naming

* Fixed atmos damage bug

* Removed Ranting

* Fixed Hunger after I broke it

* Fixing Bugs

* Removed stupid question

* Removed more stupid questions

* Fix potential null errors.

* Made boolean return values consistent

Also renamed several functions, to make it clear they return a bool. Docs were also updated.

* Removed IoCManager.InjectDependencies()

* Removed unnecessary 'suffocation' prefix

* Fixed Spelling

Also removed accidentally left in logger call

* Fixed Medical Scanner

* Apply suggestions from code review

Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>

* Changing comments and whitespaces

* Made damage thresholds trigger  datafields required

* So many typos

* Changes to DamageableComponents

Changed documentation in IDamageableComponent

Made testing code more readable.

Relabelled groups as 'Applicable' either 'Fully Supported'

* Removed function and degeneralised

* Update DamageableComponent.cs

Removed unused parameters
Fixed Networking

* Added IoCManager.Resolve

* Now using alternative TryChangeDamage()

* Removed function from DamageGroupPrototype

* Removing comments

* Remove bad if statement?

* Fix damageChanged ordering

* Fix hurt server command

* Changed //TODO PROTOTYPE blocks

Now use PrototypeManager differently. Wherever possible, only retrieve the prototype once.

Also added default damage types to some more datafields

* Update Content.Shared/Damage/Container/DamageContainerPrototype.cs

Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>

* renamed _accumulatedHealth -> _accumulatedDamage and added TODOs

* Another class-> group

* Fix bug in generalisation of damage container prototypes

* Addes Tests to make sure I dont keep adding bugs to my own code.

* Changed Return values when setting

* Removed unused class

* Added more tests, split tests into three files

* Made damage types public and VV read-write-able

* Minor changes to DamageableComponent

Replaced internal use of GetDamagePerType with _damageDict and removed some unnecessary fields

* Fix Suicide, by adding IoC Resolve()

* Fix DamageGroupTrigger bug

* Fix typos in tests

* Change comments./docstrings & spacing

* Merge tests, use test prototypes

Co-authored-by: Leon Friedrich <60421075+leonsfriedrich@users.noreply.github.com>
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>

* Fix merge issues

Co-authored-by: Silver <Silvertorch5@gmail.com>
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
Co-authored-by: Leon Friedrich <60421075+leonsfriedrich@users.noreply.github.com>
2021-08-24 11:06:27 -06:00
..
Access/UI XAMLify ID card computer, Alerts and AME window (#4322) 2021-07-27 20:09:12 +02:00
Actions Improve hands & pulling (#4389) 2021-07-31 03:14:00 +02:00
Administration fixes #4307 2021-07-24 01:38:10 +02:00
AI Replace most VBox/HBoxContainers with BoxContainers (#4274) 2021-07-18 18:39:31 +02:00
Alerts XAMLify ID card computer, Alerts and AME window (#4322) 2021-07-27 20:09:12 +02:00
AME Add ButtonHelpers and the SetButtonDisabledRecursive helper. 2021-07-29 12:55:37 +02:00
Animations Further pickup animation improvements. 2021-08-06 19:20:27 +02:00
Arcade Replace most VBox/HBoxContainers with BoxContainers (#4274) 2021-07-18 18:39:31 +02:00
Atmos Fix showatmos 2021-08-17 14:09:59 +10:00
Audio Call SoundSystem instead 2021-08-11 19:29:06 +10:00
Body Replace most VBox/HBoxContainers with BoxContainers (#4274) 2021-07-18 18:39:31 +02:00
Botany Reorganizes Resources/Constructible (#4252) 2021-07-15 18:30:50 +00:00
Buckle Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Cabinet ItemCabinetVisualizer uses layers (#4445) 2021-08-17 14:13:39 -07:00
Camera Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
Cargo Replace most VBox/HBoxContainers with BoxContainers (#4274) 2021-07-18 18:39:31 +02:00
Changelog Add Alt-click functionality (#4497) 2021-08-21 10:20:18 -07:00
CharacterAppearance Losing a head doesn't mean you lose your eyes #3956 #4061 (#4225) 2021-08-07 14:18:42 -07:00
CharacterInfo Replace most VBox/HBoxContainers with BoxContainers (#4274) 2021-07-18 18:39:31 +02:00
CharacterInterface Replace most VBox/HBoxContainers with BoxContainers (#4274) 2021-07-18 18:39:31 +02:00
Chat Chat improvements. (#4283) 2021-07-20 10:29:09 +02:00
Chemistry Add Alt-click functionality (#4497) 2021-08-21 10:20:18 -07:00
Clickable Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
Climbing Remove IActionBlocker.CanMove (#4449) 2021-08-09 17:34:01 -07:00
Cloning Moved MagbootsComponent.cs from Cloning to Clothing (#4399) 2021-07-31 01:05:07 +02:00
Clothing Moved MagbootsComponent.cs from Cloning to Clothing (#4399) 2021-07-31 01:05:07 +02:00
CombatMode Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Commands Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Communications/UI Replace most VBox/HBoxContainers with BoxContainers (#4274) 2021-07-18 18:39:31 +02:00
Computer Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
Configurable/UI Replace most VBox/HBoxContainers with BoxContainers (#4274) 2021-07-18 18:39:31 +02:00
Construction Replace most VBox/HBoxContainers with BoxContainers (#4274) 2021-07-18 18:39:31 +02:00
ContextMenu/UI Add Alt-click functionality (#4497) 2021-08-21 10:20:18 -07:00
Conveyor/Visualizers Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
Cooldown Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
Crayon Replace most VBox/HBoxContainers with BoxContainers (#4274) 2021-07-18 18:39:31 +02:00
Credits Replace most VBox/HBoxContainers with BoxContainers (#4274) 2021-07-18 18:39:31 +02:00
Cuffs/Components Engine Entity Anchoring Changes (#4195) 2021-06-19 19:41:26 -07:00
Disposal Refactor disposals to ECS (#4418) 2021-08-12 13:40:38 +10:00
DoAfter Engine Entity Anchoring Changes (#4195) 2021-06-19 19:41:26 -07:00
Doors Merge branch 'master' into replace-sounds-with-sound-specifier 2021-08-10 15:05:49 -07:00
DragDrop Use EntitySystem dependencies in a bunch of systems. 2021-07-26 13:01:47 +02:00
Entry Add security barriers (#4458) 2021-08-23 02:32:24 +10:00
EscapeMenu Add Alt-click functionality (#4497) 2021-08-21 10:20:18 -07:00
Eui Remove NetMessage deprecated boilerplate (#4196) 2021-06-21 07:43:54 +02:00
Examine Close examine tooltip when moving out of range (#4273) 2021-07-21 21:31:00 +10:00
Explosion Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
Flash Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Fluids Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
Friction Increase MoverController performance (#4448) 2021-08-15 14:03:08 +10:00
GameTicking/Managers Turns GameTicker into an EntitySystem. (#4197) 2021-06-20 10:09:24 +02:00
Ghost Admin ghosts can now interact with stuff (#4178) 2021-08-23 13:14:52 +10:00
Gravity Replace most VBox/HBoxContainers with BoxContainers (#4274) 2021-07-18 18:39:31 +02:00
Hands Admin ghosts can now interact with stuff (#4178) 2021-08-23 13:14:52 +10:00
HealthOverlay Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
HUD Admin ghosts can now interact with stuff (#4178) 2021-08-23 13:14:52 +10:00
IconSmoothing Subscribe TransformComponent events by-ref (#4478) 2021-08-21 11:49:31 +02:00
Info Replace most VBox/HBoxContainers with BoxContainers (#4274) 2021-07-18 18:39:31 +02:00
Input Admin ghosts can now interact with stuff (#4178) 2021-08-23 13:14:52 +10:00
Instruments Replace most VBox/HBoxContainers with BoxContainers (#4274) 2021-07-18 18:39:31 +02:00
Interactable Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
Inventory Add Alt-click functionality (#4497) 2021-08-21 10:20:18 -07:00
IoC Turns GameTicker into an EntitySystem. (#4197) 2021-06-20 10:09:24 +02:00
Items Add Alt-click functionality (#4497) 2021-08-21 10:20:18 -07:00
Jobs Holiday System (#3122) 2021-02-12 10:45:22 +01:00
Kitchen Removes LoopingSoundComponent. (#4396) 2021-07-31 12:41:59 +02:00
LateJoin Replace most VBox/HBoxContainers with BoxContainers (#4274) 2021-07-18 18:39:31 +02:00
Lathe Replace most VBox/HBoxContainers with BoxContainers (#4274) 2021-07-18 18:39:31 +02:00
Launcher Replace most VBox/HBoxContainers with BoxContainers (#4274) 2021-07-18 18:39:31 +02:00
Light Fix missing sounds (#4466) 2021-08-13 21:31:37 -07:00
Links Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
Lobby Chat improvements. (#4283) 2021-07-20 10:29:09 +02:00
MachineLinking Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
MainMenu Replace most VBox/HBoxContainers with BoxContainers (#4274) 2021-07-18 18:39:31 +02:00
Markers Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
MedicalScanner Damageable Refactor 3: Revenge of the Instamerge (#4524) 2021-08-24 11:06:27 -06:00
Message Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
Mining Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
MobState Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Module Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
Morgue/Visualizers Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Movement/Components Nuke portals (#4315) 2021-07-21 11:16:10 +02:00
NodeContainer Pow3r: stage 1 (#4208) 2021-07-04 18:11:52 +02:00
Notifications/Managers Remove NetMessage deprecated boilerplate (#4196) 2021-06-21 07:43:54 +02:00
Nutrition Refactors throw events, makes cream pies ECS (#4500) 2021-08-21 09:18:23 +02:00
Paper/UI Replace most VBox/HBoxContainers with BoxContainers (#4274) 2021-07-18 18:39:31 +02:00
Parallax Move some files out of Content.Shared root because I forgot (#4182) 2021-06-13 22:52:40 +10:00
ParticleAccelerator Replace most VBox/HBoxContainers with BoxContainers (#4274) 2021-07-18 18:39:31 +02:00
PDA removed TryGetSound + made some SoundSpecifier datafields required 2021-07-31 19:52:33 +02:00
Physics/Controllers Comment joint prediction 2021-08-04 01:16:42 +10:00
Placement/Modes Enable nullability in Content.Client (#3257) 2021-03-10 14:48:29 +01:00
Pointing Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
Power fixes the solarcontrolwindow 2021-07-22 20:02:18 +02:00
PowerCell Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
Preferences Replace most VBox/HBoxContainers with BoxContainers (#4274) 2021-07-18 18:39:31 +02:00
Projectiles Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
Pulling Remove obsolete system event unsubscriptions (#4190) 2021-06-16 23:54:00 +10:00
Recycling Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
Research Replace most VBox/HBoxContainers with BoxContainers (#4274) 2021-07-18 18:39:31 +02:00
Resources Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
Rotatable Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Rotation Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
RoundEnd Replace most VBox/HBoxContainers with BoxContainers (#4274) 2021-07-18 18:39:31 +02:00
Sandbox Replace most VBox/HBoxContainers with BoxContainers (#4274) 2021-07-18 18:39:31 +02:00
Screenshot Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
Security Add security barriers (#4458) 2021-08-23 02:32:24 +10:00
Shuttles Make Saltern driveable (#4257) 2021-07-21 21:15:12 +10:00
Singularity Singularity fixes (#4383) 2021-08-23 00:54:03 +10:00
Slippery Slipping, now with 20% more ecs (#4310) 2021-07-21 22:13:58 +10:00
Smoking Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
Spawners Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Stack Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
State Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
StationEvents Remove NetMessage deprecated boilerplate (#4196) 2021-06-21 07:43:54 +02:00
Storage Implement Entity List Display and rework StorageComponent window (#4140) 2021-08-12 10:05:02 -07:00
Strip Replace most VBox/HBoxContainers with BoxContainers (#4274) 2021-07-18 18:39:31 +02:00
Stunnable Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
Stylesheets Implement Entity List Display and rework StorageComponent window (#4140) 2021-08-12 10:05:02 -07:00
SubFloor Add subfloor appearance data, pipes correctly render subfloor. (#4393) 2021-07-31 19:50:36 -07:00
Suspicion Replace most VBox/HBoxContainers with BoxContainers (#4274) 2021-07-18 18:39:31 +02:00
Targeting Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
Toilet Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
Tools/Components Make Saltern driveable (#4257) 2021-07-21 21:15:12 +10:00
Trigger Fix missing sounds (#4466) 2021-08-13 21:31:37 -07:00
UserInterface Implement Entity List Display and rework StorageComponent window (#4140) 2021-08-12 10:05:02 -07:00
VendingMachines Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
Verbs Replace most VBox/HBoxContainers with BoxContainers (#4274) 2021-07-18 18:39:31 +02:00
Viewport Chat improvements. (#4283) 2021-07-20 10:29:09 +02:00
ViewVariables Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
Voting Vote type delay, code comments. 2021-07-21 19:03:10 +02:00
Wall Fix low wall overlay displaying incorrectly (#4138) 2021-07-12 21:10:03 -07:00
Weapons Use EntitySystem dependencies in a bunch of systems. 2021-07-26 13:01:47 +02:00
Window Subscribe TransformComponent events by-ref (#4478) 2021-08-21 11:49:31 +02:00
Wires Replace most VBox/HBoxContainers with BoxContainers (#4274) 2021-07-18 18:39:31 +02:00
app.config Updates submodule (#56) 2018-04-12 23:56:43 +02:00
AssemblyInfo.cs Visualize melee weapon cooldowns in HUD. 2019-11-12 01:43:11 +01:00
ComputerBoundUserInterface.cs Atmos pipe rework (#3833) 2021-06-19 13:25:05 +02:00
Content.Client.csproj Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
Content.Client.csproj.DotSettings Pow3r: stage 1 (#4208) 2021-07-04 18:11:52 +02:00
Program.cs Content.{Client,Server} are now Exes that can be ran. 2020-01-22 20:17:32 +01:00