]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Shield QoL + buff (#41326)
authorSir Warock <67167466+SirWarock@users.noreply.github.com>
Sat, 20 Dec 2025 01:37:11 +0000 (02:37 +0100)
committerGitHub <noreply@github.com>
Sat, 20 Dec 2025 01:37:11 +0000 (01:37 +0000)
* Add Damage Examine to Shields

* Make Repairs repeat when not fully repaired

* Make some Shields repairable

* Please the Grammar Gods

Resources/Locale/en-US/blocking/blocking-examine.ftl
Resources/Prototypes/Damage/examine_messages.yml
Resources/Prototypes/Entities/Objects/Shields/shields.yml

index 8afc0ef08f84378baceaeba45729bbe6fc8b7df9..19cf58d4c348433519234b546a16c67c2e60eb5b 100644 (file)
@@ -4,3 +4,17 @@ blocking-examinable-verb-message = Examine the protection values.
 blocking-fraction = It blocks [color=lightblue]{$value}%[/color] of incoming damage and:
 blocking-coefficient-value = - It takes [color=lightblue]{$value}%[/color] of [color=yellow]{$type}[/color] damage.
 blocking-reduction-value = - It takes [color=lightblue]{$value}[/color] less [color=yellow]{$type}[/color] damage.
+
+# Shown when examining the shield. Each entry represents the shield's health condition
+comp-shield-damaged-1 = It looks fully intact.
+comp-shield-damaged-2 = It has a few scratches.
+comp-shield-damaged-3 = It has a few small holes and divots.
+comp-shield-damaged-4 = [color=yellow]It has several holes and bent parts.[/color]
+comp-shield-damaged-5 = [color=orange]It has deep cracks, several holes and parts of it have broken off.[/color]
+comp-shield-damaged-6 = [color=red]It's been extremely brutalized and is nearly falling apart.[/color]
+
+# Shown when examining the e-shield. Each entry represents the e-shield's health condition
+comp-eshield-damaged-1 = It looks fully intact.
+comp-eshield-damaged-2 = [color=yellow]The battery light is yellow.[/color]
+comp-eshield-damaged-3 = [color=orange]The battery light is orange, the hardlight flickers.[/color]
+comp-eshield-damaged-4 = [color=red]The battery light is red, the hardlight can barely stay alight.[/color]
index 91f838a436ff705e4b9afa669ea7857f389bc3c7..fe551902b0d6aea9b4133489d1cc3e01d4c2bb39 100644 (file)
@@ -3,3 +3,15 @@
   values:
     prefix: comp-window-damaged-
     count: 6
+
+- type: localizedDataset
+  id: ShieldMessages
+  values:
+    prefix: comp-shield-damaged-
+    count: 6
+
+- type: localizedDataset
+  id: EnergyShieldMessages
+  values:
+    prefix: comp-eshield-damaged-
+    count: 4
index 188f4892b69cf6228244bdcb9bf6a93079506ba9..c82debbfc987de49bd10509921f9fa29bfe8b3cc 100644 (file)
@@ -32,6 +32,8 @@
           Heat: 1
     - type: Damageable
       damageContainer: Shield
+    - type: ExaminableDamage
+      messages: ShieldMessages
     - type: Destructible
       thresholds:
         - trigger:
     - type: StaticPrice
       price: 100
 
+- type: entity
+  name: base repairable shield
+  parent: BaseShield
+  id: BaseRepairableShield
+  description: A repairable shield!
+  abstract: true
+  components:
+  - type: Repairable # Negative values represent healing
+    damage:
+      groups:
+        Brute: -60 # 20 of each Brute Type - 20% of a basic shield HP
+      types:
+        Heat: -20
+    fuelCost: 10 # 1/2 of a Welder for a full repair
+    doAfterDelay: 5
+    allowSelfRepair: false
+
 #Security Shields
 
 - type: entity
   name: riot shield
-  parent: [ BaseShield, BaseSecurityContraband ]
+  parent: [ BaseRepairableShield, BaseSecurityContraband ]
   id: RiotShield
   description: A large tower shield. Good for controlling crowds.
   components:
 
 - type: entity
   name: laser shield
-  parent: [ BaseShield, BaseSecurityContraband ]
+  parent: [ BaseRepairableShield, BaseSecurityContraband ]
   id: RiotLaserShield
   description: A shield built for withstanding lasers, but not much else.
   components:
 
 - type: entity
   name: ballistic shield
-  parent: [ BaseShield, BaseSecurityContraband ]
+  parent: [ BaseRepairableShield, BaseSecurityContraband ]
   id: RiotBulletShield
   description: A shield built for protecting against ballistics, but not much else.
   components:
 
 - type: entity
   name: makeshift shield
-  parent: BaseShield
+  parent: BaseRepairableShield
   id: MakeshiftShield
   description: A rundown looking shield, not good for much.
   components:
 
 - type: entity
   name: clockwork shield
-  parent: BaseShield
+  parent: BaseRepairableShield
   id: ClockworkShield
   description: Ratvar oyrffrf lbh jvgu uvf cebgrpgvba.
   components:
     - type: Appearance
     - type: Damageable
       damageContainer: Shield
+    - type: ExaminableDamage
+      messages: EnergyShieldMessages
     - type: Destructible
       thresholds:
         - trigger:
 
 - type: entity
   name: telescopic shield
-  parent: BaseShield
+  parent: BaseRepairableShield
   id: TelescopicShield
   description: An advanced riot shield made of lightweight materials that collapses for easy storage.
   components: