diff --git a/Content.Shared/Nutrition/Components/HungerComponent.cs b/Content.Shared/Nutrition/Components/HungerComponent.cs index d5db991b1a..380c4d1bd8 100644 --- a/Content.Shared/Nutrition/Components/HungerComponent.cs +++ b/Content.Shared/Nutrition/Components/HungerComponent.cs @@ -34,7 +34,7 @@ public sealed partial class HungerComponent : Component /// /// Any time this is modified, should be called. [DataField("baseDecayRate"), ViewVariables(VVAccess.ReadWrite)] - public float BaseDecayRate = 0.01666666666f; + public float BaseDecayRate = 0.5f; // Sunrise-Edit /// /// The actual amount at which decays. diff --git a/Content.Shared/Nutrition/Components/ThirstComponent.cs b/Content.Shared/Nutrition/Components/ThirstComponent.cs index 5c32b4af28..09a58dac0f 100644 --- a/Content.Shared/Nutrition/Components/ThirstComponent.cs +++ b/Content.Shared/Nutrition/Components/ThirstComponent.cs @@ -1,4 +1,5 @@ using Content.Shared.Alert; +using Content.Shared.Damage; using Content.Shared.Nutrition.EntitySystems; using Robust.Shared.GameStates; using Robust.Shared.Prototypes; @@ -14,7 +15,7 @@ public sealed partial class ThirstComponent : Component [ViewVariables(VVAccess.ReadWrite)] [DataField("baseDecayRate")] [AutoNetworkedField] - public float BaseDecayRate = 0.1f; + public float BaseDecayRate = 0.5f; // Sunrise-Edit [ViewVariables(VVAccess.ReadWrite)] [AutoNetworkedField] @@ -46,6 +47,11 @@ public sealed partial class ThirstComponent : Component [DataField, AutoNetworkedField] public TimeSpan UpdateRate = TimeSpan.FromSeconds(1); + // Sunrise-Start + [DataField] + public DamageSpecifier? DehydrationDamage; + // Sunrise-End + [DataField("thresholds")] [AutoNetworkedField] public Dictionary ThirstThresholds = new() diff --git a/Content.Shared/Nutrition/EntitySystems/HungerSystem.cs b/Content.Shared/Nutrition/EntitySystems/HungerSystem.cs index 51443ed1a0..aba189cc13 100644 --- a/Content.Shared/Nutrition/EntitySystems/HungerSystem.cs +++ b/Content.Shared/Nutrition/EntitySystems/HungerSystem.cs @@ -281,7 +281,7 @@ public sealed class HungerSystem : EntitySystem var query = EntityQueryEnumerator(); while (query.MoveNext(out var uid, out var hunger)) { - if (_timing.CurTime < hunger.NextThresholdUpdateTime) + if (_timing.CurTime < hunger.NextThresholdUpdateTime || _mobState.IsDead(uid)) // Sunrise-Edit continue; hunger.NextThresholdUpdateTime = _timing.CurTime + hunger.ThresholdUpdateRate; diff --git a/Content.Shared/Nutrition/EntitySystems/ThirstSystem.cs b/Content.Shared/Nutrition/EntitySystems/ThirstSystem.cs index 979eb99392..c0ee02c997 100644 --- a/Content.Shared/Nutrition/EntitySystems/ThirstSystem.cs +++ b/Content.Shared/Nutrition/EntitySystems/ThirstSystem.cs @@ -14,6 +14,8 @@ using Robust.Shared.Timing; using Robust.Shared.Utility; using System.Diagnostics.CodeAnalysis; using Content.Shared._Sunrise.SunriseCCVars; +using Content.Shared.Damage; +using Content.Shared.Mobs.Systems; namespace Content.Shared.Nutrition.EntitySystems; @@ -27,6 +29,8 @@ public sealed class ThirstSystem : EntitySystem [Dependency] private readonly MovementSpeedModifierSystem _movement = default!; [Dependency] private readonly SharedJetpackSystem _jetpack = default!; [Dependency] private readonly IConfigurationManager _config = default!; + [Dependency] private readonly MobStateSystem _mobState = default!; + [Dependency] private readonly DamageableSystem _damageable = default!; [ValidatePrototypeId] private const string ThirstIconOverhydratedId = "ThirstIconOverhydrated"; @@ -152,6 +156,19 @@ public sealed class ThirstSystem : EntitySystem return prototype != null; } + private void DoContinuousHungerEffects(EntityUid uid, ThirstComponent? component = null) + { + if (!Resolve(uid, ref component)) + return; + + if (component.CurrentThirstThreshold <= ThirstThreshold.Parched && + component.DehydrationDamage is { } damage && + !_mobState.IsDead(uid)) + { + _damageable.TryChangeDamage(uid, damage, true, false); + } + } + private void UpdateEffects(EntityUid uid, ThirstComponent component) { if (!_config.GetCVar(SunriseCCVars.MoodEnabled) @@ -213,12 +230,13 @@ public sealed class ThirstSystem : EntitySystem var query = EntityQueryEnumerator(); while (query.MoveNext(out var uid, out var thirst)) { - if (_timing.CurTime < thirst.NextUpdateTime) + if (_timing.CurTime < thirst.NextUpdateTime || _mobState.IsDead(uid)) // Sunrise-Edit continue; thirst.NextUpdateTime += thirst.UpdateRate; ModifyThirst(uid, thirst, -thirst.ActualDecayRate); + DoContinuousHungerEffects(uid, thirst); var calculatedThirstThreshold = GetThirstThreshold(thirst, thirst.CurrentThirst); if (calculatedThirstThreshold == thirst.CurrentThirstThreshold) diff --git a/Resources/Changelog/ChangelogSunrise.yml b/Resources/Changelog/ChangelogSunrise.yml index 727102902b..c7b89d5bf7 100644 --- a/Resources/Changelog/ChangelogSunrise.yml +++ b/Resources/Changelog/ChangelogSunrise.yml @@ -12435,3 +12435,36 @@ type: Fix id: 860 time: '2025-02-13T21:48:16.591470+00:00' +- author: VigersRay + changes: + - message: "\u0416\u0430\u0436\u0434\u0430 \u0442\u0435\u043F\u0435\u0440\u044C\ + \ \u043C\u043E\u0436\u0435\u0442 \u0443\u0431\u0438\u0442\u044C \u0432\u0430\ + \u0441." + type: Tweak + - message: "\u0414\u0432\u043E\u0440\u0444\u044B \u0442\u0435\u043F\u0435\u0440\u044C\ + \ \u043C\u043E\u0433\u0443\u0442 \u0443\u0442\u043E\u043B\u0438\u0442\u044C\ + \ \u0436\u0430\u0436\u0434\u0443 \u0438\u0441\u043A\u043B\u044E\u0447\u0438\u0442\ + \u0435\u043B\u044C\u043D\u043E \u0430\u043B\u043A\u043E\u0433\u043E\u043B\u0435\ + \u043C." + type: Tweak + - message: "\u0423 \u0434\u0432\u043E\u0440\u0444\u043E\u0432 \u0432 \u0430\u0432\ + \u0430\u0440\u0438\u0439\u043A\u043E\u043C \u043D\u0430\u0431\u043E\u0440\u0435\ + \ \u0442\u0435\u043F\u0435\u0440\u044C \u0441\u043E\u0434\u0435\u0440\u0436\u0438\ + \u0442\u0441\u044F \u043F\u0438\u0432\u043E." + type: Tweak + - message: "\u0412\u043A\u0443\u0441 \u043F\u0438\u0432\u0430 \u0442\u0435\u043F\ + \u0435\u0440\u044C \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u0442\ + \u0441\u044F \u043A\u0430\u043A \"\u043F\u0438\u0432\u043E\" \u0430 \u043D\u0435\ + \ \"\u043C\u043E\u0447\u0430\"." + type: Fix + - message: "\u0422\u0440\u043E\u0442\u0442\u0438\u043D\u044B \u043F\u043E\u043B\u0443\ + \u0447\u0438\u043B\u0438 \u0431\u043E\u043B\u044C\u0448\u0438\u0435 \u0440\u0435\ + \u0437\u0438\u0441\u0442\u044B \u043A \u0443\u0440\u043E\u043D\u0443." + type: Tweak + - message: "\u0418\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D \u043E\u0442\u0441\ + \u0443\u0442\u0441\u0432\u0443\u044E\u0449\u0438\u0439 \u043D\u0430\u0431\u043E\ + \u0440 \u043C\u0438\u043C\u0430 \u0443 \u043A\u0441\u0435\u043D\u043E\u0441\u043E\ + \u0432." + type: Fix + id: 861 + time: '2025-02-14T00:18:07.814007+00:00' diff --git a/Resources/Locale/ru-RU/_strings/flavors/flavor-profiles.ftl b/Resources/Locale/ru-RU/_strings/flavors/flavor-profiles.ftl index 0652d3949f..b9056b3bb2 100644 --- a/Resources/Locale/ru-RU/_strings/flavors/flavor-profiles.ftl +++ b/Resources/Locale/ru-RU/_strings/flavors/flavor-profiles.ftl @@ -193,7 +193,7 @@ flavor-complex-juice = как сок flavor-complex-rocksandstones = как скалы и камни flavor-complex-water = как вода -flavor-complex-beer = как моча +flavor-complex-beer = как пиво flavor-complex-ale = как хлеб flavor-complex-cola = как кола flavor-complex-cognac = как сухой пряный алкоголь @@ -247,7 +247,7 @@ flavor-complex-white-russian = как подслащённый алкоголь flavor-complex-moonshine = как чистый алкоголь flavor-complex-tequila-sunrise = как мексиканское утро flavor-complex-irish-coffee = как пробуждение алкоголика -flavor-complex-iced-beer = как ледяная моча +flavor-complex-iced-beer = как ледяная пиво flavor-complex-gargle-blaster = как будто кто-то ударил вас по голове золотым слитком, покрытым лимоном. flavor-complex-bloody-mary = как тяжёлое похмелье flavor-complex-beepsky = как нефть и виски diff --git a/Resources/Prototypes/Catalog/Fills/Boxes/emergency.yml b/Resources/Prototypes/Catalog/Fills/Boxes/emergency.yml index 63b2f14eb8..2bd2fc1b9e 100644 --- a/Resources/Prototypes/Catalog/Fills/Boxes/emergency.yml +++ b/Resources/Prototypes/Catalog/Fills/Boxes/emergency.yml @@ -279,7 +279,14 @@ - id: ClothingMaskBreath - id: EmergencyOxygenTankFilled - id: EmergencyMedipen - - id: Flare + - id: GlowstickRed + orGroup: Glowstick + - id: GlowstickPurple + orGroup: Glowstick + - id: GlowstickYellow + orGroup: Glowstick + - id: GlowstickBlue + orGroup: Glowstick - id: FoodBreadBaguette - id: DrinkWaterBottleFull @@ -293,7 +300,14 @@ - id: ClothingMaskBreath - id: EmergencyNitrogenTankFilled - id: EmergencyMedipen - - id: Flare + - id: GlowstickRed + orGroup: Glowstick + - id: GlowstickPurple + orGroup: Glowstick + - id: GlowstickYellow + orGroup: Glowstick + - id: GlowstickBlue + orGroup: Glowstick - id: FoodBreadBaguette - id: DrinkWaterBottleFull - type: Sprite diff --git a/Resources/Prototypes/Entities/Mobs/Species/arachnid.yml b/Resources/Prototypes/Entities/Mobs/Species/arachnid.yml index ffc6cc4110..2e89f44f3e 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/arachnid.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/arachnid.yml @@ -13,6 +13,10 @@ species: Arachnid - type: Hunger - type: Thirst + dehydrationDamage: + types: + Bloodloss: 2 + Asphyxiation: 2 - type: Sericulture action: ActionSericulture productionLength: 2 diff --git a/Resources/Prototypes/Entities/Mobs/Species/diona.yml b/Resources/Prototypes/Entities/Mobs/Species/diona.yml index 847af26150..7474c778ea 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/diona.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/diona.yml @@ -9,9 +9,13 @@ - type: HumanoidAppearance species: Diona - type: Hunger - baseDecayRate: 0.0083 + baseDecayRate: 0.3 - type: Thirst - baseDecayRate: 0.0083 + baseDecayRate: 0.3 + dehydrationDamage: + types: + Bloodloss: 2 + Asphyxiation: 2 - type: Icon sprite: Mobs/Species/Diona/parts.rsi state: full diff --git a/Resources/Prototypes/Entities/Mobs/Species/dwarf.yml b/Resources/Prototypes/Entities/Mobs/Species/dwarf.yml index 562f15c5df..d202c37b74 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/dwarf.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/dwarf.yml @@ -8,6 +8,10 @@ - type: Absorbable - type: Hunger - type: Thirst + dehydrationDamage: + types: + Bloodloss: 2 + Asphyxiation: 2 - type: Icon sprite: Mobs/Species/Slime/parts.rsi # It was like this beforehand, no idea why. state: full diff --git a/Resources/Prototypes/Entities/Mobs/Species/human.yml b/Resources/Prototypes/Entities/Mobs/Species/human.yml index 0afddea68b..4b1540b944 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/human.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/human.yml @@ -11,6 +11,10 @@ sprite: Mobs/Species/Human/parts.rsi state: full - type: Thirst + dehydrationDamage: + types: + Bloodloss: 2 + Asphyxiation: 2 - type: Butcherable butcheringType: Spike spawned: diff --git a/Resources/Prototypes/Entities/Mobs/Species/moth.yml b/Resources/Prototypes/Entities/Mobs/Species/moth.yml index d0c90c3aaf..9fe28982d3 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/moth.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/moth.yml @@ -12,6 +12,10 @@ - HeadTop - type: Hunger - type: Thirst + dehydrationDamage: + types: + Bloodloss: 2 + Asphyxiation: 2 - type: Icon sprite: Mobs/Species/Moth/parts.rsi state: full diff --git a/Resources/Prototypes/Entities/Mobs/Species/reptilian.yml b/Resources/Prototypes/Entities/Mobs/Species/reptilian.yml index f679a3423c..f7cc92b13b 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/reptilian.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/reptilian.yml @@ -16,6 +16,10 @@ - type: Puller needsHands: false - type: Thirst + dehydrationDamage: + types: + Bloodloss: 2 + Asphyxiation: 2 - type: Icon sprite: Mobs/Species/Reptilian/parts.rsi state: full diff --git a/Resources/Prototypes/Entities/Mobs/Species/slime.yml b/Resources/Prototypes/Entities/Mobs/Species/slime.yml index d5e6c95231..60c1e9224f 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/slime.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/slime.yml @@ -7,6 +7,10 @@ - type: Absorbable - type: Hunger - type: Thirst + dehydrationDamage: + types: + Bloodloss: 2 + Asphyxiation: 2 - type: Icon sprite: Mobs/Species/Slime/parts.rsi state: full diff --git a/Resources/Prototypes/Entities/Mobs/Species/vox.yml b/Resources/Prototypes/Entities/Mobs/Species/vox.yml index 60ae04ea40..fb2cbc0f06 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/vox.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/vox.yml @@ -6,6 +6,10 @@ - type: Absorbable - type: Hunger - type: Thirst + dehydrationDamage: + types: + Bloodloss: 2 + Asphyxiation: 2 - type: Icon sprite: Mobs/Species/Vox/parts.rsi state: vox_m diff --git a/Resources/Prototypes/Loadouts/Miscellaneous/survival.yml b/Resources/Prototypes/Loadouts/Miscellaneous/survival.yml index f2e4741893..525b3f77c8 100644 --- a/Resources/Prototypes/Loadouts/Miscellaneous/survival.yml +++ b/Resources/Prototypes/Loadouts/Miscellaneous/survival.yml @@ -14,7 +14,6 @@ species: - Arachnid - Diona - - Dwarf - Human - Moth - Reptilian diff --git a/Resources/Prototypes/Loadouts/loadout_groups.yml b/Resources/Prototypes/Loadouts/loadout_groups.yml index 252f9dd8b4..53f7555f54 100644 --- a/Resources/Prototypes/Loadouts/loadout_groups.yml +++ b/Resources/Prototypes/Loadouts/loadout_groups.yml @@ -85,8 +85,9 @@ loadouts: - EmergencyNitrogen - EmergencyOxygen - - EmergencyWithoutGas # Sunrise-Edit - LoadoutSpeciesVoxNitrogen + - EmergencyWithoutGas # Sunrise-Edit + - EmergencyDwarf # Sunrise-Edit - type: loadoutGroup id: GroupEVATank @@ -488,6 +489,7 @@ - EmergencyOxygenClown - LoadoutSpeciesVoxNitrogen - EmergencyWithoutGasClown # Sunrise-Edit + - EmergencyDwarfClown # Sunrise-Edit - type: loadoutGroup id: MimeHead @@ -544,6 +546,8 @@ - EmergencyNitrogenMime - EmergencyOxygenMime - LoadoutSpeciesVoxNitrogen + - EmergencyWithoutGasMime # Sunrise-Edit + - EmergencyDwarfMime # Sunrise-Edit - type: loadoutGroup id: MusicianJumpsuit @@ -683,7 +687,7 @@ minLimit: 0 loadouts: - CargoTechnicianHead -#Sunrise-start +#Sunrise-start - Sunrise-BandOrange - Sunrise-BandYellow - Sunrise-BandBrown @@ -797,7 +801,7 @@ - Sunrise-ScarfOrange - Sunrise-ScarfYellow - Sunrise-ScarfCyan - - Sunrise-ScarfLightBlue + - Sunrise-ScarfLightBlue - Sunrise-TieRed #Sunrise-end @@ -948,6 +952,7 @@ - EmergencyOxygenExtended - LoadoutSpeciesVoxNitrogen - EmergencyWithoutGasExtended # Sunrise-Edit + - EmergencyDwarfExtended # Sunrise-Edit # Science - type: loadoutGroup @@ -1193,6 +1198,7 @@ - EmergencyOxygenSecurity - LoadoutSpeciesVoxNitrogen - EmergencyWithoutGasSecurity # Sunrise-Edit + - EmergencyDwarfSecurity # Sunrise-Edit - type: loadoutGroup id: SecurityStar @@ -1275,7 +1281,7 @@ - Sunrise-ScarfRed - Sunrise-ScarfOrange - Sunrise-ScarfGreen - - Sunrise-ScarfLightBlue + - Sunrise-ScarfLightBlue - Sunrise-ScarfCyan - Sunrise-ScarfBlue - Sunrise-Stethoscope @@ -1504,6 +1510,7 @@ - EmergencyOxygenMedical - LoadoutSpeciesVoxNitrogen - EmergencyWithoutGasMedical # Sunrise-Edit + - EmergencyDwarfMedical # Sunrise-Edit # Wildcards - type: loadoutGroup @@ -1547,6 +1554,7 @@ - EmergencyOxygenSyndicate - LoadoutSpeciesVoxNitrogen - EmergencyWithoutGasSyndicate # Sunrise-Edit + - EmergencyDwarfSyndicate # Sunrise-Edit - type: loadoutGroup id: GroupSpeciesBreathTool diff --git a/Resources/Prototypes/Reagents/Consumable/Drink/base_drink.yml b/Resources/Prototypes/Reagents/Consumable/Drink/base_drink.yml index 19a5e1bf8f..c73f85d622 100644 --- a/Resources/Prototypes/Reagents/Consumable/Drink/base_drink.yml +++ b/Resources/Prototypes/Reagents/Consumable/Drink/base_drink.yml @@ -8,6 +8,10 @@ effects: - !type:SatiateThirst factor: 3 + conditions: + - !type:OrganType + type: Dwarf + shouldHave: false reactiveEffects: Extinguish: methods: [ Touch ] @@ -29,6 +33,10 @@ effects: - !type:SatiateThirst factor: 2 + conditions: + - !type:OrganType + type: Dwarf + shouldHave: false plantMetabolism: - !type:PlantAdjustNutrition amount: 0.1 diff --git a/Resources/Prototypes/Reagents/Consumable/Drink/drinks.yml b/Resources/Prototypes/Reagents/Consumable/Drink/drinks.yml index 3f9fb7b53d..a707dd31f6 100644 --- a/Resources/Prototypes/Reagents/Consumable/Drink/drinks.yml +++ b/Resources/Prototypes/Reagents/Consumable/Drink/drinks.yml @@ -12,6 +12,10 @@ effects: - !type:SatiateThirst factor: 2 + conditions: + - !type:OrganType + type: Dwarf + shouldHave: false - !type:GenericStatusEffect key: Drowsiness time: 2.0 @@ -40,6 +44,10 @@ effects: - !type:SatiateThirst factor: 2 + conditions: + - !type:OrganType + type: Dwarf + shouldHave: false - !type:AdjustReagent reagent: Theobromine amount: 0.05 @@ -57,6 +65,10 @@ effects: - !type:SatiateThirst factor: 1 + conditions: + - !type:OrganType + type: Dwarf + shouldHave: false - type: reagent id: CoconutWater @@ -71,6 +83,10 @@ effects: - !type:SatiateThirst factor: 4 # Coconut water is 94% water + conditions: + - !type:OrganType + type: Dwarf + shouldHave: false - type: reagent id: CreamOfCoconut @@ -85,6 +101,10 @@ effects: - !type:SatiateThirst factor: 2 + conditions: + - !type:OrganType + type: Dwarf + shouldHave: false - type: reagent id: CafeLatte @@ -105,6 +125,10 @@ effects: - !type:SatiateThirst factor: 2 + conditions: + - !type:OrganType + type: Dwarf + shouldHave: false - !type:GenericStatusEffect key: Drowsiness time: 2.0 @@ -163,6 +187,10 @@ effects: - !type:SatiateThirst factor: 2 + conditions: + - !type:OrganType + type: Dwarf + shouldHave: false - !type:GenericStatusEffect key: Drowsiness time: 2.0 @@ -202,6 +230,10 @@ effects: - !type:SatiateThirst factor: 2 + conditions: + - !type:OrganType + type: Dwarf + shouldHave: false - !type:AdjustReagent reagent: Theobromine amount: 0.05 @@ -219,6 +251,10 @@ Drink: effects: - !type:SatiateThirst + conditions: + - !type:OrganType + type: Dwarf + shouldHave: false Poison: effects: - !type:HealthChange @@ -246,6 +282,10 @@ effects: - !type:SatiateThirst factor: 2 + conditions: + - !type:OrganType + type: Dwarf + shouldHave: false - type: reagent id: Milk @@ -266,6 +306,10 @@ effects: - !type:SatiateThirst factor: 4 + conditions: + - !type:OrganType + type: Dwarf + shouldHave: false - type: reagent id: MilkGoat @@ -287,6 +331,10 @@ effects: - !type:SatiateThirst factor: 4 + conditions: + - !type:OrganType + type: Dwarf + shouldHave: false - type: reagent id: MilkSoy @@ -322,6 +370,10 @@ effects: - !type:SatiateThirst factor: 2 + conditions: + - !type:OrganType + type: Dwarf + shouldHave: false # TODO heal mimes - type: reagent @@ -344,6 +396,10 @@ effects: - !type:SatiateThirst factor: 6 + conditions: + - !type:OrganType + type: Dwarf + shouldHave: false - !type:GenericStatusEffect key: Drowsiness time: 3.0 @@ -385,6 +441,10 @@ effects: - !type:SatiateThirst factor: 2 + conditions: + - !type:OrganType + type: Dwarf + shouldHave: false - !type:GenericStatusEffect key: Drowsiness time: 2.0 @@ -404,6 +464,10 @@ effects: - !type:SatiateThirst factor: 2 + conditions: + - !type:OrganType + type: Dwarf + shouldHave: false - !type:AdjustReagent reagent: Theobromine amount: 0.05 @@ -447,6 +511,10 @@ effects: - !type:SatiateThirst factor: 4 + conditions: + - !type:OrganType + type: Dwarf + shouldHave: false - type: reagent id: Ice @@ -512,6 +580,10 @@ effects: - !type:SatiateThirst factor: 4 + conditions: + - !type:OrganType + type: Dwarf + shouldHave: false - !type:AdjustReagent reagent: Theobromine amount: 0.05 @@ -529,6 +601,10 @@ effects: - !type:SatiateThirst factor: 1 + conditions: + - !type:OrganType + type: Dwarf + shouldHave: false fizziness: 0.3 - type: reagent @@ -585,3 +661,7 @@ effects: - !type:SatiateThirst factor: 0.6 + conditions: + - !type:OrganType + type: Dwarf + shouldHave: false diff --git a/Resources/Prototypes/Reagents/Consumable/Drink/juice.yml b/Resources/Prototypes/Reagents/Consumable/Drink/juice.yml index ff07c341d8..259a1e83ae 100644 --- a/Resources/Prototypes/Reagents/Consumable/Drink/juice.yml +++ b/Resources/Prototypes/Reagents/Consumable/Drink/juice.yml @@ -57,6 +57,10 @@ effects: - !type:SatiateThirst factor: 2 + conditions: + - !type:OrganType + type: Dwarf + shouldHave: false - !type:AdjustReagent reagent: Oculine amount: 0.5 diff --git a/Resources/Prototypes/Reagents/Consumable/Drink/soda.yml b/Resources/Prototypes/Reagents/Consumable/Drink/soda.yml index 7ddf19c14e..e58ce6fb8c 100644 --- a/Resources/Prototypes/Reagents/Consumable/Drink/soda.yml +++ b/Resources/Prototypes/Reagents/Consumable/Drink/soda.yml @@ -18,6 +18,10 @@ effects: - !type:SatiateThirst factor: 2 + conditions: + - !type:OrganType + type: Dwarf + shouldHave: false - !type:GenericStatusEffect key: Drowsiness time: 1.0 @@ -39,6 +43,10 @@ effects: - !type:SatiateThirst factor: 4 + conditions: + - !type:OrganType + type: Dwarf + shouldHave: false - type: reagent id: ChangelingSting @@ -77,6 +85,10 @@ effects: - !type:SatiateThirst factor: 2 + conditions: + - !type:OrganType + type: Dwarf + shouldHave: false - !type:GenericStatusEffect key: Drowsiness time: 2.0 @@ -199,6 +211,10 @@ effects: - !type:SatiateThirst factor: 4 + conditions: + - !type:OrganType + type: Dwarf + shouldHave: false - type: reagent id: SpaceMountainWind @@ -252,6 +268,10 @@ effects: - !type:SatiateThirst factor: 2 + conditions: + - !type:OrganType + type: Dwarf + shouldHave: false - !type:AdjustReagent reagent: Theobromine amount: 0.1 diff --git a/Resources/Prototypes/Reagents/biological.yml b/Resources/Prototypes/Reagents/biological.yml index ad1a4e1bd9..eac27d8f18 100644 --- a/Resources/Prototypes/Reagents/biological.yml +++ b/Resources/Prototypes/Reagents/biological.yml @@ -103,6 +103,10 @@ factor: 1 - !type:SatiateThirst factor: 1 + conditions: + - !type:OrganType + type: Dwarf + shouldHave: false footstepSound: collection: FootstepBlood params: @@ -170,6 +174,10 @@ effects: - !type:SatiateThirst factor: 1.5 + conditions: + - !type:OrganType + type: Dwarf + shouldHave: false # Dragon doesn't require airloss healing, so omnizine is still best for humans. Medicine: effects: @@ -222,6 +230,10 @@ effects: - !type:SatiateThirst factor: 0.5 + conditions: + - !type:OrganType + type: Dwarf + shouldHave: false - !type:AdjustReagent reagent: Nutriment amount: 0.1 @@ -277,4 +289,4 @@ maxIntensity: 2 intensityPerUnit: 0.5 intensitySlope: 4 - maxTotalIntensity: 1 \ No newline at end of file + maxTotalIntensity: 1 diff --git a/Resources/Prototypes/Reagents/medicine.yml b/Resources/Prototypes/Reagents/medicine.yml index aaf0566715..473989b1ec 100644 --- a/Resources/Prototypes/Reagents/medicine.yml +++ b/Resources/Prototypes/Reagents/medicine.yml @@ -656,6 +656,10 @@ effects: - !type:SatiateThirst factor: 6 + conditions: + - !type:OrganType + type: Dwarf + shouldHave: false - !type:ModifyBloodLevel amount: 6 @@ -1057,6 +1061,10 @@ effects: - !type:SatiateThirst factor: 3 + conditions: + - !type:OrganType + type: Dwarf + shouldHave: false Medicine: effects: #If vampire @@ -1196,7 +1204,7 @@ conditions: - !type:ReagentThreshold min: 12 - + - type: reagent id: Opporozidone #Name based of an altered version of the startreck chem "Opporozine" name: reagent-name-opporozidone diff --git a/Resources/Prototypes/Reagents/narcotics.yml b/Resources/Prototypes/Reagents/narcotics.yml index 2da62cd414..727caf2db9 100644 --- a/Resources/Prototypes/Reagents/narcotics.yml +++ b/Resources/Prototypes/Reagents/narcotics.yml @@ -172,6 +172,10 @@ factor: 1 - !type:SatiateThirst factor: 1 + conditions: + - !type:OrganType + type: Dwarf + shouldHave: false - !type:HealthChange conditions: - !type:TotalDamage diff --git a/Resources/Prototypes/_Sunrise/Catalog/Fills/Boxes/emergency.yml b/Resources/Prototypes/_Sunrise/Catalog/Fills/Boxes/emergency.yml index 313e6790c6..a5cdd95bc9 100644 --- a/Resources/Prototypes/_Sunrise/Catalog/Fills/Boxes/emergency.yml +++ b/Resources/Prototypes/_Sunrise/Catalog/Fills/Boxes/emergency.yml @@ -126,7 +126,7 @@ id: BoxHugWithoutGas name: box of hugs description: A special box for sensitive people. - suffix: Emergency + suffix: Emergency, Without gas components: - type: Sprite layers: @@ -151,6 +151,25 @@ tags: - BoxHug +- type: entity + parent: BoxSurvival + id: BoxMimeWithoutGas + suffix: Mime, Emergency, Without gas + components: + - type: StorageFill + contents: + - id: EmergencyMedipen + - id: GlowstickRed + orGroup: Glowstick + - id: GlowstickPurple + orGroup: Glowstick + - id: GlowstickYellow + orGroup: Glowstick + - id: GlowstickBlue + orGroup: Glowstick + - id: FoodBreadBaguette + - id: DrinkBeerBottleFull + - type: entity parent: BoxCardboard id: BoxSurvivalSecurityWithoutGas @@ -197,6 +216,189 @@ - id: GlowstickBlue orGroup: Glowstick - id: FoodSnackNutribrick + - id: DrinkWaterBottleFull + - type: Sprite + layers: + - state: internals + - state: extendedtank + +# With Beer + +- type: entity + parent: BoxSurvival + id: BoxSurvivalWithBeer + name: survival box + suffix: With beer + components: + - type: StorageFill + contents: + - id: EmergencyMedipen + - id: GlowstickRed + orGroup: Glowstick + - id: GlowstickPurple + orGroup: Glowstick + - id: GlowstickYellow + orGroup: Glowstick + - id: GlowstickBlue + orGroup: Glowstick + - id: FoodSnackNutribrick + - id: DrinkBeerBottleFull + - type: Label + currentLabel: без балона + +- type: entity + parent: BoxCardboard + id: BoxSurvivalEngineeringWithBeer + name: extended-capacity survival box + description: It's a box with basic internals inside. This one is labelled to contain an extended-capacity tank. + suffix: Extended, With beer + components: + - type: StorageFill + contents: + - id: ClothingMaskBreath + - id: ExtendedEmergencyOxygenTankFilled + - id: EmergencyMedipen + - id: GlowstickRed + orGroup: Glowstick + - id: GlowstickPurple + orGroup: Glowstick + - id: GlowstickYellow + orGroup: Glowstick + - id: GlowstickBlue + orGroup: Glowstick + - id: FoodSnackNutribrick + - id: DrinkBeerBottleFull + - type: Sprite + layers: + - state: internals + - state: extendedtank + + +- type: entity + parent: BoxCardboard + id: BoxSurvivalMedicalWithBeer + name: survival box + description: It's a box with basic internals inside. + suffix: Medical, With beer + components: + - type: StorageFill + contents: + - id: ClothingMaskBreathMedical + - id: EmergencyOxygenTankFilled + - id: EmergencyMedipen + - id: GlowstickRed + orGroup: Glowstick + - id: GlowstickPurple + orGroup: Glowstick + - id: GlowstickYellow + orGroup: Glowstick + - id: GlowstickBlue + orGroup: Glowstick + - id: FoodSnackNutribrick + - id: DrinkBeerBottleFull + - type: Sprite + layers: + - state: internals + - state: emergencytank + +- type: entity + parent: BoxCardboard + id: BoxHugWithBeer + name: box of hugs + description: A special box for sensitive people. + suffix: Emergency, With beer + components: + - type: Sprite + layers: + - state: box_hug + - state: heart + - type: Item + heldPrefix: hug + - type: StorageFill + contents: + - id: EmergencyMedipen + - id: GlowstickRed + orGroup: Glowstick + - id: GlowstickPurple + orGroup: Glowstick + - id: GlowstickYellow + orGroup: Glowstick + - id: GlowstickBlue + orGroup: Glowstick + - id: FoodSnackNutribrick + - id: DrinkBeerBottleFull + - type: Tag + tags: + - BoxHug + +- type: entity + parent: BoxSurvival + id: BoxMimeWithBeer + suffix: Mime, Emergency, With beer + components: + - type: StorageFill + contents: + - id: ClothingMaskBreath + - id: EmergencyOxygenTankFilled + - id: EmergencyMedipen + - id: GlowstickRed + orGroup: Glowstick + - id: GlowstickPurple + orGroup: Glowstick + - id: GlowstickYellow + orGroup: Glowstick + - id: GlowstickBlue + orGroup: Glowstick + - id: FoodBreadBaguette + - id: DrinkBeerBottleFull + +- type: entity + parent: BoxCardboard + id: BoxSurvivalSecurityWithBeer + name: survival box + description: It's a box with basic internals inside. + suffix: Security, With beer + components: + - type: StorageFill + contents: + - id: ClothingMaskGasSecurity + - id: EmergencyMedipen + - id: GlowstickRed + orGroup: Glowstick + - id: GlowstickPurple + orGroup: Glowstick + - id: GlowstickYellow + orGroup: Glowstick + - id: GlowstickBlue + orGroup: Glowstick + - id: FoodSnackNutribrick + - id: DrinkBeerBottleFull + - type: Sprite + layers: + - state: internals + - state: emergencytank + +- type: entity + parent: BoxCardboard + id: BoxSurvivalSyndicateWithBeer + name: extended-capacity survival box + description: It's a box with basic internals inside. This one is labelled to contain an extended-capacity tank. + suffix: Syndicate, With beer + components: + - type: StorageFill + contents: + - id: ClothingMaskGasSyndicate + - id: EmergencyMedipen + - id: GlowstickRed + orGroup: Glowstick + - id: GlowstickPurple + orGroup: Glowstick + - id: GlowstickYellow + orGroup: Glowstick + - id: GlowstickBlue + orGroup: Glowstick + - id: FoodSnackNutribrick + - id: DrinkBeerBottleFull - type: Sprite layers: - state: internals diff --git a/Resources/Prototypes/_Sunrise/Damage/modifier_sets.yml b/Resources/Prototypes/_Sunrise/Damage/modifier_sets.yml index 8cfcb5e0f7..775eb68b83 100644 --- a/Resources/Prototypes/_Sunrise/Damage/modifier_sets.yml +++ b/Resources/Prototypes/_Sunrise/Damage/modifier_sets.yml @@ -10,11 +10,11 @@ - type: damageModifierSet id: Swine coefficients: - Blunt: 0.9 - Slash: 0.9 - Piercing: 0.9 - Cold: 0.8 - Heat: 0.8 + Blunt: 0.5 + Slash: 0.7 + Piercing: 0.7 + Cold: 0.5 + Heat: 0.5 - type: damageModifierSet id: Predator diff --git a/Resources/Prototypes/_Sunrise/Entities/Mobs/Species/demon.yml b/Resources/Prototypes/_Sunrise/Entities/Mobs/Species/demon.yml index a4466e07a0..19b7f2727a 100644 --- a/Resources/Prototypes/_Sunrise/Entities/Mobs/Species/demon.yml +++ b/Resources/Prototypes/_Sunrise/Entities/Mobs/Species/demon.yml @@ -10,6 +10,10 @@ species: Demon - type: Hunger - type: Thirst + dehydrationDamage: + types: + Bloodloss: 2 + Asphyxiation: 2 - type: Icon sprite: _Sunrise/Mobs/Species/Demon/parts.rsi state: full_m diff --git a/Resources/Prototypes/_Sunrise/Entities/Mobs/Species/felinid.yml b/Resources/Prototypes/_Sunrise/Entities/Mobs/Species/felinid.yml index 46ab55e9d0..9f1554af35 100644 --- a/Resources/Prototypes/_Sunrise/Entities/Mobs/Species/felinid.yml +++ b/Resources/Prototypes/_Sunrise/Entities/Mobs/Species/felinid.yml @@ -16,6 +16,10 @@ sprite: Mobs/Species/Human/parts.rsi state: full - type: Thirst + dehydrationDamage: + types: + Bloodloss: 2 + Asphyxiation: 2 - type: Hunger - type: Butcherable butcheringType: Spike diff --git a/Resources/Prototypes/_Sunrise/Entities/Mobs/Species/humanoid_xeno.yml b/Resources/Prototypes/_Sunrise/Entities/Mobs/Species/humanoid_xeno.yml index a2707a5bf1..ae08fad2d4 100644 --- a/Resources/Prototypes/_Sunrise/Entities/Mobs/Species/humanoid_xeno.yml +++ b/Resources/Prototypes/_Sunrise/Entities/Mobs/Species/humanoid_xeno.yml @@ -101,8 +101,13 @@ state: body-overlay-2 visible: false - type: Hunger - baseDecayRate: 0.05 + baseDecayRate: 0.07 - type: Thirst + baseDecayRate: 0.07 + dehydrationDamage: + types: + Bloodloss: 2 + Asphyxiation: 2 - type: Icon # It will not have an icon in the adminspawn menu without this. Body parts seem fine for whatever reason. sprite: _Sunrise/Mobs/Species/HumanoidXeno/parts.rsi state: full diff --git a/Resources/Prototypes/_Sunrise/Entities/Mobs/Species/predator.yml b/Resources/Prototypes/_Sunrise/Entities/Mobs/Species/predator.yml index 75324c8143..51dae311b3 100644 --- a/Resources/Prototypes/_Sunrise/Entities/Mobs/Species/predator.yml +++ b/Resources/Prototypes/_Sunrise/Entities/Mobs/Species/predator.yml @@ -11,6 +11,10 @@ sprite: _Sunrise/Mobs/Species/Predator/parts.rsi state: full - type: Thirst + dehydrationDamage: + types: + Bloodloss: 2 + Asphyxiation: 2 - type: Perishable - type: HumanoidAppearance species: Predator diff --git a/Resources/Prototypes/_Sunrise/Entities/Mobs/Species/swine.yml b/Resources/Prototypes/_Sunrise/Entities/Mobs/Species/swine.yml index 3181f6171e..740006e432 100644 --- a/Resources/Prototypes/_Sunrise/Entities/Mobs/Species/swine.yml +++ b/Resources/Prototypes/_Sunrise/Entities/Mobs/Species/swine.yml @@ -8,8 +8,12 @@ - type: HumanoidAppearance species: Swine - type: Hunger - baseDecayRate: 0.03 + baseDecayRate: 0.07 - type: Thirst + dehydrationDamage: + types: + Bloodloss: 2 + Asphyxiation: 2 - type: Icon sprite: _Sunrise/Mobs/Species/Swine/parts.rsi state: full diff --git a/Resources/Prototypes/_Sunrise/Entities/Mobs/Species/tajaran.yml b/Resources/Prototypes/_Sunrise/Entities/Mobs/Species/tajaran.yml index 6006bf22da..551539c0c7 100644 --- a/Resources/Prototypes/_Sunrise/Entities/Mobs/Species/tajaran.yml +++ b/Resources/Prototypes/_Sunrise/Entities/Mobs/Species/tajaran.yml @@ -20,6 +20,10 @@ speechVerb: Felinid allowedEmotes: ['Mew', 'Meow', 'Hisses', 'Purr'] - type: Thirst + dehydrationDamage: + types: + Bloodloss: 2 + Asphyxiation: 2 - type: Icon sprite: _Sunrise/Mobs/Species/Tajaran/parts.rsi state: tajaran_m diff --git a/Resources/Prototypes/_Sunrise/Loadouts/Miscellaneous/survival.yml b/Resources/Prototypes/_Sunrise/Loadouts/Miscellaneous/survival.yml index c0b5919fe8..698c875ac6 100644 --- a/Resources/Prototypes/_Sunrise/Loadouts/Miscellaneous/survival.yml +++ b/Resources/Prototypes/_Sunrise/Loadouts/Miscellaneous/survival.yml @@ -10,13 +10,9 @@ # Basic - type: loadout id: EmergencyWithoutGas - startingGear: EmergencyWithoutGas effects: - !type:GroupLoadoutEffect proto: NoBreather - -- type: startingGear - id: EmergencyWithoutGas storage: back: - BoxSurvivalWithoutGas @@ -24,27 +20,29 @@ # Clown - type: loadout id: EmergencyWithoutGasClown - startingGear: EmergencyWithoutGasClown effects: - !type:GroupLoadoutEffect proto: NoBreather - -- type: startingGear - id: EmergencyWithoutGasClown storage: back: - BoxHugWithoutGas -# Engineering / Extended +# Mime - type: loadout - id: EmergencyWithoutGasExtended - startingGear: EmergencyWithoutGasExtended + id: EmergencyWithoutGasMime effects: - !type:GroupLoadoutEffect proto: NoBreather + storage: + back: + - BoxMimeWithoutGas -- type: startingGear +# Engineering / Extended +- type: loadout id: EmergencyWithoutGasExtended + effects: + - !type:GroupLoadoutEffect + proto: NoBreather storage: back: - BoxSurvivalWithoutGas @@ -52,27 +50,22 @@ # Medical - type: loadout id: EmergencyWithoutGasMedical - startingGear: EmergencyWithoutGasMedical effects: - !type:GroupLoadoutEffect proto: NoBreather - -- type: startingGear - id: EmergencyWithoutGasMedical storage: back: - BoxSurvivalWithoutGas +- type: startingGear + id: EmergencyWithoutGasMedical + # Security - type: loadout id: EmergencyWithoutGasSecurity - startingGear: EmergencyWithoutGasSecurity effects: - !type:GroupLoadoutEffect proto: NoBreather - -- type: startingGear - id: EmergencyWithoutGasSecurity storage: back: - BoxSurvivalSecurityWithoutGas @@ -80,13 +73,88 @@ # Syndicate - type: loadout id: EmergencyWithoutGasSyndicate - startingGear: EmergencyWithoutGasSyndicate effects: - !type:GroupLoadoutEffect proto: NoBreather - -- type: startingGear - id: EmergencyWithoutGasSyndicate storage: back: - BoxSurvivalSyndicateWithoutGas + +# Dwarf + +- type: loadoutEffectGroup + id: Dwarf + effects: + - !type:SpeciesLoadoutEffect + species: + - Dwarf + +# Basic +- type: loadout + id: EmergencyDwarf + effects: + - !type:GroupLoadoutEffect + proto: Dwarf + storage: + back: + - BoxSurvivalWithBeer + +# Clown +- type: loadout + id: EmergencyDwarfClown + effects: + - !type:GroupLoadoutEffect + proto: Dwarf + storage: + back: + - BoxHugWithBeer + +# Mime +- type: loadout + id: EmergencyDwarfMime + effects: + - !type:GroupLoadoutEffect + proto: Dwarf + storage: + back: + - BoxMimeWithBeer + +# Engineering / Extended +- type: loadout + id: EmergencyDwarfExtended + effects: + - !type:GroupLoadoutEffect + proto: Dwarf + storage: + back: + - BoxSurvivalEngineeringWithBeer + +# Medical +- type: loadout + id: EmergencyDwarfMedical + effects: + - !type:GroupLoadoutEffect + proto: Dwarf + storage: + back: + - BoxSurvivalMedicalWithBeer + +# Security +- type: loadout + id: EmergencyDwarfSecurity + effects: + - !type:GroupLoadoutEffect + proto: Dwarf + storage: + back: + - BoxSurvivalSecurityWithBeer + +# Syndicate +- type: loadout + id: EmergencyDwarfSyndicate + effects: + - !type:GroupLoadoutEffect + proto: Dwarf + storage: + back: + - BoxSurvivalSyndicateWithBeer diff --git a/Resources/Prototypes/_Sunrise/Reagents/Consumable/Drink/drinks.yml b/Resources/Prototypes/_Sunrise/Reagents/Consumable/Drink/drinks.yml index b9c50975ed..e95cac309d 100644 --- a/Resources/Prototypes/_Sunrise/Reagents/Consumable/Drink/drinks.yml +++ b/Resources/Prototypes/_Sunrise/Reagents/Consumable/Drink/drinks.yml @@ -25,6 +25,10 @@ effects: - !type:SatiateThirst factor: 4 + conditions: + - !type:OrganType + type: Dwarf + shouldHave: false Medicine: effects: - !type:HealthChange @@ -48,6 +52,10 @@ effects: - !type:SatiateThirst factor: 2 + conditions: + - !type:OrganType + type: Dwarf + shouldHave: false - !type:GenericStatusEffect key: Drowsiness time: 2.0 diff --git a/Resources/Prototypes/_Sunrise/Reagents/Consumable/Drink/soda.yml b/Resources/Prototypes/_Sunrise/Reagents/Consumable/Drink/soda.yml index c97453ffc4..9e04d36d66 100644 --- a/Resources/Prototypes/_Sunrise/Reagents/Consumable/Drink/soda.yml +++ b/Resources/Prototypes/_Sunrise/Reagents/Consumable/Drink/soda.yml @@ -11,6 +11,10 @@ effects: - !type:SatiateThirst factor: 2 + conditions: + - !type:OrganType + type: Dwarf + shouldHave: false Narcotic: effects: - !type:MovespeedModifier