* MinSolution and SolutionEmpty construction conditions

* make ied sprites

* add ied

* ied crafting stuff

* deconstruct give cable yes

* fix

* tags

* tag

* 3x3

* sharing is caring

* buff damage

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>
This commit is contained in:
deltanedas
2023-11-06 03:04:47 +00:00
committed by GitHub
parent 8302bef3e2
commit 96e27810cf
14 changed files with 385 additions and 0 deletions

View File

@@ -59,6 +59,9 @@
- type: PhysicalComposition
materialComposition:
Steel: 50 #reduce, reuse, recycle
- type: Tag
tags:
- DrinkCan
- type: entity
parent: DrinkCanBaseFull
@@ -76,12 +79,38 @@
- type: Tag
tags:
- Cola
- DrinkCan
- Recyclable
- type: Sprite
sprite: Objects/Consumable/Drinks/cola.rsi
- type: Item
sprite: Objects/Consumable/Drinks/cola.rsi
# created when taking apart an ied
- type: entity
parent: DrinkColaCan
id: DrinkColaCanEmpty
suffix: empty
components:
- type: SolutionContainerManager
solutions:
drink:
maxVol: 30
- type: Openable
opened: true
- type: Sprite
sprite: Objects/Consumable/Drinks/cola.rsi
layers:
- state: icon_open
- type: Item
sprite: Objects/Consumable/Drinks/cola.rsi
- type: Tag
tags:
- Cola
- DrinkCan
- Recyclable
- Trash
- type: entity
parent: DrinkCanBaseFull
id: DrinkIcedTeaCan
@@ -317,6 +346,7 @@
Quantity: 5
- type: Tag
tags:
- DrinkCan
- Recyclable
- type: Sprite
sprite: Objects/Consumable/Drinks/robustnukie.rsi

View File

@@ -0,0 +1,101 @@
# ied crafted from random stuff
# ideally it would be dynamic and work by actually sparking the solution but that doesnt exist yet :(
# 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
description: A weak, improvised incendiary device.
components:
- type: Sprite
sprite: Objects/Weapons/Bombs/ied.rsi
layers:
- state: base
- state: fuel
- state: wires
- type: Item
sprite: Objects/Consumable/Drinks/cola.rsi
- type: OnUseTimerTrigger
delay: 5
examinable: false
initialBeepDelay: 0
beepSound: /Audio/Effects/lightburn.ogg
# TODO: random timer when crafted
- type: TriggerOnSignal
- type: DeviceLinkSink
ports:
- Trigger
- type: Explosive # Weak explosion in a very small radius. Doesn't break underplating.
explosionType: Default
totalIntensity: 50
intensitySlope: 5
maxIntensity: 6
canCreateVacuum: false
- type: ExplodeOnTrigger
- type: Damageable
damageContainer: Inorganic
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 50
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- !type:ExplodeBehavior
- type: Construction
graph: ImprovisedExplosive
node: ied
# has igniter but no fuel or wires
- type: entity
parent: DrinkColaCanEmpty
id: ImprovisedExplosiveEmpty
name: improvised explosive device
suffix: empty
description: A weak, improvised incendiary device. This one has no fuel.
components:
- type: Sprite
sprite: Objects/Weapons/Bombs/ied.rsi
layers:
- state: base
map: ["enum.OpenableVisuals.Layer"]
# bad dog
- type: GenericVisualizer
visuals:
enum.OpenableVisuals.Opened:
enum.OpenableVisuals.Layer:
True: {state: "base"}
False: {state: "base"}
- type: Construction
graph: ImprovisedExplosive
node: empty
defaultTarget: ied
- type: Tag
tags:
- Trash
# no DrinkCan, prevent using it to make another ied
- type: entity
parent: ImprovisedExplosiveEmpty
id: ImprovisedExplosiveFuel
suffix: fuel
description: A weak, improvised incendiary device. This one is missing wires.
components:
- type: Sprite
layers:
- state: base
map: ["enum.OpenableVisuals.Layer"]
- state: fuel
- type: SolutionContainerManager
solutions:
drink:
maxVol: 30
reagents:
- ReagentId: WeldingFuel
Quantity: 30
- type: Construction
node: fuel
defaultTarget: ied
- type: Tag
tags: []

View File

@@ -0,0 +1,75 @@
- type: constructionGraph
id: ImprovisedExplosive
start: start
graph:
- node: start
edges:
- to: empty
steps:
- tag: DrinkCan
name: an empty can
icon:
sprite: Objects/Consumable/Drinks/cola.rsi
state: icon_open
doAfter: 1
- tag: Igniter
name: an igniter
icon:
sprite: Objects/Devices/igniter.rsi
state: icon
doAfter: 1
- node: empty
entity: ImprovisedExplosiveEmpty
edges:
- to: start
completed:
- !type:SpawnPrototype
prototype: DrinkColaCanEmpty
- !type:SpawnPrototype
prototype: Igniter
- !type:DeleteEntity {}
steps:
- tool: Prying
doAfter: 1
- to: fuel
conditions:
- !type:MinSolution
solution: drink
reagent:
ReagentId: WeldingFuel
quantity: 30
steps:
- tool: Screwing
doAfter: 1
- node: fuel
entity: ImprovisedExplosiveFuel
edges:
- to: empty
conditions:
- !type:SolutionEmpty
solution: drink
steps:
- tool: Screwing
doAfter: 1
- to: ied
conditions: # no dumping out 29u of the fuel then adding wires :)
- !type:MinSolution
solution: drink
reagent:
ReagentId: WeldingFuel
quantity: 30
steps:
- material: Cable
amount: 5
doAfter: 2
- node: ied
entity: ImprovisedExplosive
edges:
- to: fuel
completed:
- !type:SpawnPrototype
prototype: CableApcStack1
amount: 5
steps:
- tool: Cutting
doAfter: 2

View File

@@ -162,3 +162,16 @@
icon:
sprite: Objects/Misc/rifle_stock.rsi
state: icon
- type: construction
name: improvised explosive device
id: improvisedexplosive
graph: ImprovisedExplosive
startNode: start
targetNode: ied
category: construction-category-weapons
objectType: Item
description: A weak, improvised incendiary device.
icon:
sprite: Objects/Weapons/Bombs/ied.rsi
state: icon

View File

@@ -407,6 +407,9 @@
- type: Tag
id: Donut
- type: Tag
id: DrinkCan
- type: Tag
id: DrinkSpaceGlue