fish-station/Content.Shared
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 Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
ActionBlocker Remove IActionBlocker.CanMove (#4449) 2021-08-09 17:34:01 -07:00
Actions Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Acts Slight trigger refactor (#4320) 2021-07-25 12:09:08 +02:00
Administration Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
AI Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Alert Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
AME Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
APC Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Arcade Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Atmos GasFilter appearance, EnabledAtmosDeviceVisualizer improvements. 2021-08-02 13:20:31 +02:00
Audio Call SoundSystem instead 2021-08-11 19:29:06 +10:00
Body Damageable Refactor 3: Revenge of the Instamerge (#4524) 2021-08-24 11:06:27 -06:00
Botany Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Buckle Remove IActionBlocker.CanMove (#4449) 2021-08-09 17:34:01 -07:00
Cabinet Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Camera Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Cargo Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
CCVar Offset station on roundstart again 2021-08-07 00:19:10 +10:00
CharacterAppearance Losing a head doesn't mean you lose your eyes #3956 #4061 (#4225) 2021-08-07 14:18:42 -07:00
CharacterInfo Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Chat Chat improvements. (#4283) 2021-07-20 10:29:09 +02:00
Chemistry Merge branch 'master' into replace-sounds-with-sound-specifier 2021-08-10 15:05:49 -07:00
Climbing Remove IActionBlocker.CanMove (#4449) 2021-08-09 17:34:01 -07:00
Cloning Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Clothing Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Collections Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
CombatMode Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Communications Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Computer Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Configurable Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Construction Make Saltern driveable (#4257) 2021-07-21 21:15:12 +10:00
Conveyor Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Cooldown Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Coordinates Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Crayon Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Cuffs Remove IActionBlocker.CanMove (#4449) 2021-08-09 17:34:01 -07:00
Damage Damageable Refactor 3: Revenge of the Instamerge (#4524) 2021-08-24 11:06:27 -06:00
Dataset Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Directions Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Disposal Refactor disposals to ECS (#4418) 2021-08-12 13:40:38 +10:00
DoAfter Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Doors Refactor IDoorCheck into entity events (#4366) 2021-08-02 21:57:06 +10:00
DragDrop Improve hands & pulling (#4389) 2021-07-31 03:14:00 +02:00
DrawDepth Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
EffectBlocker Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Emoting Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
EntityList Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
Entry Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Eui Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Examine Make Saltern driveable (#4257) 2021-07-21 21:15:12 +10:00
Explosion Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Flash Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Fluids Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Foam Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Friction Update content for PhysicsMapComponent (#4462) 2021-08-23 15:02:03 +10:00
GameTicking Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
GameWindow Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Ghost Revert "Refactor Damage to use Protoypes (#4262)" 2021-08-24 01:06:32 -06:00
Gravity Merge branch 'master' into replace-sounds-with-sound-specifier 2021-07-25 14:12:00 +02:00
Hands Add Alt-click functionality (#4497) 2021-08-21 10:20:18 -07:00
HUD Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
Input Add Alt-click functionality (#4497) 2021-08-21 10:20:18 -07:00
Instruments Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Interaction Add Alt-click functionality (#4497) 2021-08-21 10:20:18 -07:00
Inventory Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
IoC Move some files out of Content.Shared root because I forgot (#4182) 2021-06-13 22:52:40 +10:00
Item Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Kitchen Merge branch 'master' into replace-sounds-with-sound-specifier 2021-07-30 20:26:22 +02:00
Lathe Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Light Fix missing sounds (#4466) 2021-08-13 21:31:37 -07:00
Localizations Removed old Loc.GetString() use instances (#4155) 2021-06-21 02:13:54 +02:00
MachineLinking Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Maps removed TryGetSound + made some SoundSpecifier datafields required 2021-07-31 19:52:33 +02:00
Markers Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Materials Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Maths Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
MedicalScanner Damageable Refactor 3: Revenge of the Instamerge (#4524) 2021-08-24 11:06:27 -06:00
Mining Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
MobState Remove IActionBlocker.CanMove (#4449) 2021-08-09 17:34:01 -07:00
Module Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Morgue Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Movement Increase MoverController performance (#4448) 2021-08-15 14:03:08 +10:00
NodeContainer Pow3r: stage 1 (#4208) 2021-07-04 18:11:52 +02:00
Notification/Managers Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Nutrition Refactors throw events, makes cream pies ECS (#4500) 2021-08-21 09:18:23 +02:00
Objectives Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Paper Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
PDA Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Physics Improve hands & pulling (#4389) 2021-07-31 03:14:00 +02:00
Placeable Makes PlaceableSurface ECS 2021-08-20 10:21:39 +02:00
Pointing/Components Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Power Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
PowerCell Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Preferences Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Projectiles Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Prototypes Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Pulling Subscribe TransformComponent events by-ref (#4478) 2021-08-21 11:49:31 +02:00
Radiation Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Random/Helpers Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Recycling Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Research Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Roles Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Rotatable Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Rotation Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Rounding Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Sandbox Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07: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 Merge branch 'master' into replace-sounds-with-sound-specifier 2021-07-25 14:12:00 +02:00
SMES Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Smoking Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Solar Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Sound removed TryGetSound + made some SoundSpecifier datafields required 2021-07-31 19:52:33 +02:00
Spawning Random offset for DefaultGrid every round (#4411) 2021-08-03 18:49:25 +10:00
Speech Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Stacks Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Standing removed TryGetSound + made some SoundSpecifier datafields required 2021-07-31 19:52:33 +02:00
StationEvents Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Storage Makes PlaceableSurface ECS 2021-08-20 10:21:39 +02:00
Strip/Components Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Stunnable Remove IActionBlocker.CanMove (#4449) 2021-08-09 17:34:01 -07:00
SubFloor Subscribe TransformComponent events by-ref (#4478) 2021-08-21 11:49:31 +02:00
Suspicion Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Tag Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Targeting Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Temperature Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Throwing Revert "Refactor Damage to use Protoypes (#4262)" 2021-08-24 01:06:32 -06:00
Toilet Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Tool Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Transform Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Trigger Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Vapor Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
VendingMachines Removes vending inventory desc and adds missing vending machine descriptions (#4493) 2021-08-20 05:23:02 +00:00
Verbs Add Alt-click functionality (#4497) 2021-08-21 10:20:18 -07:00
Voting Vote type delay, code comments. 2021-07-21 19:03:10 +02:00
Wall Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Weapons Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Whitelist Fix EntityWhitelist not taking into account ignored components 2021-07-24 15:46:44 -07:00
Window Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Wires Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
app.config Updates submodule (#56) 2018-04-12 23:56:43 +02:00
Content.Shared.csproj Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
Content.Shared.csproj.DotSettings Moved interaction interfaces from Server to Shared. 2020-07-18 22:51:56 -07:00