Pipebombs and IED rework (#25705)

* inital

* 2-9

* add crafting function, rename ied to fire bomb

* add firebomb ignition

* fikss

* change damage values

* add note

* fix tests i think

* ok

* good

* Review

* warning

---------

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
This commit is contained in:
Mr. 27
2024-03-14 00:27:08 -04:00
committed by GitHub
parent 2f2cd4aab7
commit 3cb1c585c5
20 changed files with 291 additions and 44 deletions

View File

@@ -25,6 +25,7 @@ materials-meat = meat
materials-web = silk
materials-bones = bone
materials-coal = coal
materials-gunpowder = gunpowder
# Ores
materials-raw-iron = raw iron

View File

@@ -571,3 +571,22 @@
components:
- type: Stack
count: 1
- type: entity
parent: MaterialBase
id: MaterialGunpowder
name: gunpowder
description: An explosive compound.
components:
- type: Stack
stackType: Gunpowder
count: 1
- type: Sprite
sprite: Objects/Misc/reagent_fillings.rsi
state: powderpile
color: darkgray
- type: PhysicalComposition
materialComposition:
Gunpowder: 100
- type: Item
size: Tiny

View File

@@ -3,8 +3,8 @@
# with that you could make napalm ied instead of welding fuel with no additional complexity
- type: entity
parent: BaseItem
id: ImprovisedExplosive
name: improvised explosive device
id: FireBomb
name: fire bomb
description: A weak, improvised incendiary device.
components:
- type: Sprite
@@ -26,10 +26,10 @@
volume: 1
- type: RandomTimerTrigger
min: 0
max: 60
- type: Explosive # Weak explosion in a very small radius. Doesn't break underplating.
explosionType: Default
totalIntensity: 20
max: 15
- type: Explosive # Weak explosion in a very small radius. Ignites surrounding entities.
explosionType: FireBomb
totalIntensity: 25
intensitySlope: 5
maxIntensity: 3
canCreateVacuum: false
@@ -50,14 +50,14 @@
acts: ["Destruction"]
- !type:ExplodeBehavior
- type: Construction
graph: ImprovisedExplosive
node: ied
graph: FireBomb
node: firebomb
# has igniter but no fuel or wires
- type: entity
parent: DrinkColaCanEmpty
id: ImprovisedExplosiveEmpty
name: improvised explosive device
id: FireBombEmpty
name: fire bomb
suffix: empty
description: A weak, improvised incendiary device. This one has no fuel.
components:
@@ -74,17 +74,17 @@
True: {state: "base"}
False: {state: "base"}
- type: Construction
graph: ImprovisedExplosive
graph: FireBomb
node: empty
defaultTarget: ied
defaultTarget: firebomb
- type: Tag
tags:
- Trash
# no DrinkCan, prevent using it to make another ied
- type: entity
parent: ImprovisedExplosiveEmpty
id: ImprovisedExplosiveFuel
parent: FireBombEmpty
id: FireBombFuel
suffix: fuel
description: A weak, improvised incendiary device. This one is missing wires.
components:
@@ -102,6 +102,6 @@
Quantity: 30
- type: Construction
node: fuel
defaultTarget: ied
defaultTarget: firebomb
- type: Tag
tags: []

View File

@@ -0,0 +1,62 @@
- type: entity
parent: GrenadeBase
id: PipeBomb
name: pipe bomb
description: An improvised explosive made from pipes and wire.
components:
- type: Sprite
sprite: Objects/Weapons/Bombs/pipebomb.rsi
layers:
- state: base
map: ["enum.TriggerVisualLayers.Base"]
- state: wires
- type: OnUseTimerTrigger # todo: make it activate through welder/lighter/fire instead
delay: 5
examinable: false
initialBeepDelay: 0
beepSound: /Audio/Effects/lightburn.ogg
- type: RandomTimerTrigger
min: 1
max: 10
- type: ExplodeOnTrigger
- type: Explosive # Weak explosion in a very small radius. Doesn't break underplating.
explosionType: Default
totalIntensity: 50
intensitySlope: 5
maxIntensity: 6
canCreateVacuum: false
- type: Appearance
- type: TimerTriggerVisuals
- type: Construction
graph: PipeBomb
node: pipebomb
- type: entity
parent: BaseItem
id: PipeBombGunpowder
name: pipe bomb
description: An improvised explosive made from a pipe. This one has no gunpowder.
suffix: Gunpowder
components:
- type: Sprite
sprite: Objects/Weapons/Bombs/pipebomb.rsi
state: base
- type: Construction
graph: PipeBomb
node: gunpowder
defaultTarget: pipebomb
- type: entity
parent: BaseItem
id: PipeBombCable
name: pipe bomb
description: An improvised explosive made from a pipe. This one has no cable.
suffix: Cable
components:
- type: Sprite
sprite: Objects/Weapons/Bombs/pipebomb.rsi
state: base
- type: Construction
graph: PipeBomb
node: cable
defaultTarget: pipebomb

View File

@@ -116,3 +116,11 @@
icon: { sprite: Objects/Materials/ore.rsi, state: coal }
color: "#404040"
price: 0
- type: material
id: Gunpowder
name: materials-gunpowder
unit: materials-unit-piece
icon: { sprite: Objects/Misc/reagent_fillings.rsi, state: powderpile }
color: "#A9A9A9"
price: 0

View File

@@ -1,5 +1,5 @@
- type: constructionGraph
id: ImprovisedExplosive
id: FireBomb
start: start
graph:
- node: start
@@ -19,7 +19,7 @@
state: icon
doAfter: 1
- node: empty
entity: ImprovisedExplosiveEmpty
entity: FireBombEmpty
edges:
- to: start
completed:
@@ -42,7 +42,7 @@
- tool: Screwing
doAfter: 1
- node: fuel
entity: ImprovisedExplosiveFuel
entity: FireBombFuel
edges:
- to: empty
conditions:
@@ -51,7 +51,7 @@
steps:
- tool: Screwing
doAfter: 1
- to: ied
- to: firebomb
conditions: # no dumping out 29u of the fuel then adding wires :)
- !type:MinSolution
solution: drink
@@ -62,8 +62,8 @@
- material: Cable
amount: 5
doAfter: 2
- node: ied
entity: ImprovisedExplosive
- node: firebomb
entity: FireBomb
edges:
- to: fuel
completed:

View File

@@ -0,0 +1,43 @@
- type: constructionGraph
id: PipeBomb
start: start
graph:
- node: start
edges:
- to: gunpowder
steps:
- tag: Pipe
icon:
sprite: Structures/Piping/Atmospherics/pipe.rsi
state: pipeStraight
name: pipe
- material: Steel
amount: 1
doAfter: 3
- node: gunpowder
entity: PipeBombGunpowder
edges:
- to: cable
steps:
- material: Gunpowder
amount: 5
doAfter: 3
- node: cable
entity: PipeBombCable
edges:
- to: pipebomb
steps:
- material: Cable
amount: 5
doAfter: 2
- node: pipebomb
entity: PipeBomb
edges:
- to: cable
completed:
- !type:SpawnPrototype
prototype: CableApcStack1
amount: 5
steps:
- tool: Cutting
doAfter: 2

View File

@@ -190,11 +190,11 @@
state: icon
- type: construction
name: improvised explosive device
id: improvisedexplosive
graph: ImprovisedExplosive
name: fire bomb
id: firebomb
graph: FireBomb
startNode: start
targetNode: ied
targetNode: firebomb
category: construction-category-weapons
objectType: Item
description: A weak, improvised incendiary device.
@@ -227,3 +227,16 @@
sprite: Clothing/Head/Hats/straw_hat.rsi
state: icon
objectType: Item
- type: construction
name: pipe bomb
id: pipebomb
graph: PipeBomb
startNode: start
targetNode: pipebomb
category: construction-category-weapons
objectType: Item
description: An improvised explosive made from pipes and wire.
icon:
sprite: Objects/Weapons/Bombs/pipebomb.rsi
state: icon

View File

@@ -171,3 +171,18 @@
products:
Laughter: 2
- type: reaction
id: Gunpowder
impact: Low
quantized: true
minTemp: 374
reactants:
Potassium:
amount: 6
Sulfur:
amount: 2
Charcoal:
amount: 2
effects:
- !type:CreateEntityReactionEffect
entity: MaterialGunpowder

View File

@@ -85,3 +85,11 @@
spawn: MaterialBones1
maxCount: 30
itemSize: 1
- type: stack
id: Gunpowder
name: gunpowder
icon: { sprite: /Textures/Objects/Misc/reagent_fillings.rsi, state: powderpile }
spawn: MaterialGunpowder
maxCount: 60
itemSize: 1

View File

@@ -117,3 +117,19 @@
lightColor: Orange
texturePath: /Textures/Effects/fire.rsi
fireStates: 6
- type: explosion
id: FireBomb
damagePerIntensity:
types:
Heat: 1
Blunt: 2
Piercing: 3
lightColor: Orange
texturePath: /Textures/Effects/fire.rsi
fireStates: 6
fireStacks: 2
# STOP
# BEFORE YOU ADD MORE EXPLOSION TYPES CONSIDER IF AN EXISTING ONE IS SUITABLE
# ADDING NEW ONES IS PROHIBITIVELY EXPENSIVE

Binary file not shown.

After

Width:  |  Height:  |  Size: 338 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 350 B

View File

@@ -0,0 +1,31 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "Pipebomb sprites made by girthquake",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "icon"
},
{
"name": "base"
},
{
"name": "wires"
},
{
"name": "primed",
"delays": [
[
0.2,
0.2,
0.2,
0.2
]
]
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 494 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 B

View File

@@ -241,3 +241,8 @@ AirlockShuttleEasyPryLocked: AirlockExternalShuttleLocked
ClothingBackpackFilledDetective: ClothingBackpackSecurityFilledDetective
ClothingBackpackDuffelFilledDetective: ClothingBackpackDuffelSecurityFilledDetective
ClothingBackpackSatchelFilledDetective: ClothingBackpackSatchelSecurityFilledDetective
# 2024-03-11
ImprovisedExplosive: FireBomb
ImprovisedExplosiveEmpty: FireBombEmpty
ImprovisedExplosiveFuel: FireBombFuel