Skip to content

Commit febc0f9

Browse files
authored
More Resilient Grenades (space-wizards#34499)
* Inital commit * Balanced damage to explode instantly * Rebalanced based on suggestions * matched all grenade instant thresholds to 45 damage. Signed-off-by: Nox38 <nebulousnox38@gmail.com> * Redid files and values Signed-off-by: Nox38 <nebulousnox38@gmail.com> * Minor spelling mistake Signed-off-by: Nox38 <nebulousnox38@gmail.com> * Moved abstracts and fixed typo in comments Signed-off-by: Nox38 <nebulousnox38@gmail.com> --------- Signed-off-by: Nox38 <nebulousnox38@gmail.com>
1 parent 831c536 commit febc0f9

5 files changed

Lines changed: 216 additions & 206 deletions

File tree

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
- type: entity # Starts fuse after taking 10 damage.
2+
parent: BaseItem
3+
abstract: true
4+
id: GrenadeBase
5+
components:
6+
- type: Sprite
7+
sprite: Objects/Weapons/Grenades/grenade.rsi
8+
layers:
9+
- state: icon
10+
map: ["enum.TriggerVisualLayers.Base"]
11+
- type: Item
12+
size: Small
13+
- type: Clothing
14+
quickEquip: false
15+
slots:
16+
- Belt
17+
- type: TriggerOnUse
18+
- type: TimerTrigger
19+
delay: 3
20+
- type: Damageable
21+
damageContainer: Inorganic
22+
- type: Destructible
23+
thresholds:
24+
- trigger: # Start fuse
25+
!type:DamageTrigger
26+
damage: 10
27+
behaviors:
28+
- !type:TimerStartBehavior
29+
- type: Appearance
30+
- type: AnimationPlayer
31+
- type: GenericVisualizer
32+
visuals:
33+
enum.Trigger.TriggerVisuals.VisualState:
34+
enum.ConstructionVisuals.Layer:
35+
Primed: { state: primed }
36+
Unprimed: { state: icon }
37+
- type: Tag
38+
tags:
39+
- HandGrenade
40+
- type: Fixtures
41+
fixtures:
42+
fix1:
43+
shape: !type:PhysShapeCircle
44+
radius: 0.2
45+
density: 20 # derived from base_item
46+
mask:
47+
- ItemMask
48+
restitution: 0.3
49+
friction: 0.2
50+
51+
- type: entity # Starts fuse after taking 10 damage, instantly detonates/activates after taking 45 damage.
52+
abstract: true
53+
id: VolatileGrenadeBase
54+
components:
55+
- type: Destructible
56+
thresholds:
57+
- trigger:
58+
!type:DamageTrigger
59+
damage: 10
60+
behaviors:
61+
- !type:TimerStartBehavior
62+
- trigger: # immediately explode
63+
!type:DamageTrigger
64+
damage: 45
65+
behaviors:
66+
- !type:TriggerBehavior
67+
keyOut: timer
68+
- !type:DoActsBehavior
69+
acts: ["Destruction"]
70+
71+
- type: entity # Starts fuse after taking 10 damage, is destroyed without activating/detonating after taking 45 damage.
72+
abstract: true
73+
id: FragileGrenadeBase
74+
components:
75+
- type: Destructible
76+
thresholds:
77+
- trigger:
78+
!type:DamageTrigger
79+
damage: 10
80+
behaviors:
81+
- !type:TimerStartBehavior
82+
- trigger: # Disappear
83+
!type:DamageTrigger
84+
damage: 45
85+
behaviors:
86+
- !type:DoActsBehavior
87+
acts: ["Destruction"]
Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
- type: entity
2+
parent: [VolatileGrenadeBase, GrenadeBase, BaseSecurityContraband ]
3+
id: SmokeGrenade
4+
name: smoke grenade
5+
description: A tactical grenade that releases a large, long-lasting cloud of smoke when used.
6+
components:
7+
- type: Sprite
8+
sprite: Objects/Weapons/Grenades/smoke.rsi
9+
- type: SmokeOnTrigger
10+
keysIn:
11+
- timer
12+
duration: 30
13+
spreadAmount: 50
14+
- type: EmitSoundOnTrigger
15+
keysIn:
16+
- timer
17+
sound: /Audio/Items/smoke_grenade_smoke.ogg
18+
positional: true
19+
- type: DeleteOnTrigger
20+
keysIn:
21+
- timer
22+
- type: TimerTriggerVisuals
23+
primingSound:
24+
path: /Audio/Items/smoke_grenade_prime.ogg
25+
26+
- type: entity
27+
parent: [ BaseCivilianContraband, SmokeGrenade ]
28+
id: CleanerGrenade
29+
name: cleanade
30+
description: Special grenade for janitors, releasing large cloud of space cleaner foam.
31+
components:
32+
- type: Sprite
33+
sprite: Objects/Weapons/Grenades/janitor.rsi
34+
- type: SmokeOnTrigger
35+
keysIn:
36+
- timer
37+
duration: 15
38+
spreadAmount: 50
39+
smokePrototype: Foam
40+
solution:
41+
reagents:
42+
- ReagentId: SpaceCleaner
43+
Quantity: 30
44+
45+
- type: entity
46+
parent: SmokeGrenade
47+
id: TearGasGrenade
48+
name: tear gas grenade
49+
description: A riot control tear gas grenade. Causes irritation, pain and makes you cry your eyes out.
50+
components:
51+
- type: Sprite
52+
sprite: Objects/Weapons/Grenades/tear_gas.rsi
53+
- type: SmokeOnTrigger
54+
keysIn:
55+
- timer
56+
duration: 10
57+
spreadAmount: 30
58+
smokePrototype: TearGasSmokeWhite
59+
solution:
60+
reagents:
61+
- ReagentId: TearGas
62+
Quantity: 20
63+
64+
- type: entity
65+
parent: [ BaseEngineeringContraband, SmokeGrenade ]
66+
id: MetalFoamGrenade
67+
name: metal foam grenade
68+
description: An emergency tool used for patching hull breaches with special quick-set metal foam. Almost as good as real floors!
69+
components:
70+
- type: Sprite
71+
sprite: Objects/Weapons/Grenades/metalfoam.rsi
72+
- type: TimerTrigger
73+
delay: 5
74+
- type: SmokeOnTrigger
75+
keysIn:
76+
- timer
77+
duration: 10
78+
spreadAmount: 20
79+
smokePrototype: AluminiumMetalFoam
80+
- type: StaticPrice
81+
price: 350
82+
83+
- type: entity
84+
parent: [ BaseEngineeringContraband, VolatileGrenadeBase, GrenadeBase ] # Prevent inheriting DeleteOnTrigger from SmokeGrenade
85+
id: AirGrenade
86+
name: air grenade
87+
description: A special solid state chemical grenade used for quickly releasing standard air into a spaced area. Fills up to 30 tiles!
88+
components:
89+
- type: Sprite
90+
sprite: Objects/Weapons/Grenades/airboom.rsi
91+
- type: EmitSoundOnTrigger
92+
keysIn:
93+
- timer
94+
sound: /Audio/Items/smoke_grenade_smoke.ogg
95+
- type: TimerTriggerVisuals
96+
primingSound:
97+
path: /Audio/Items/smoke_grenade_prime.ogg
98+
- type: TimerTrigger
99+
delay: 3
100+
- type: ReleaseGasOnTrigger
101+
keysIn:
102+
- timer
103+
removeFraction: 0.25
104+
air:
105+
volume: 1000
106+
moles: # Target is 3117.84 mols total for filling 30 tiles (goal is 101.325 kPa @ 20C)
107+
Oxygen: 654.7464 # oxygen
108+
Nitrogen: 2463.0936 # nitrogen
109+
temperature: 293.15
110+
- type: StaticPrice
111+
price: 350
112+
- type: GenericVisualizer
113+
visuals:
114+
enum.ReleaseGasOnTriggerVisuals.Key:
115+
enabled:
116+
True: { state: active }
117+
False: { state: spent }

0 commit comments

Comments
 (0)