Lighters (#5836)
Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>
@@ -29,7 +29,8 @@ namespace Content.Server.Damage.Systems
|
||||
|
||||
if (component.WeldingDamage is {} weldingDamage
|
||||
&& EntityManager.TryGetComponent<WelderComponent?>(args.Used, out var welder)
|
||||
&& welder.Lit)
|
||||
&& welder.Lit
|
||||
&& !welder.TankSafe)
|
||||
{
|
||||
var dmg = _damageableSystem.TryChangeDamage(args.Target, weldingDamage);
|
||||
|
||||
|
||||
@@ -60,5 +60,12 @@ namespace Content.Server.Tools.Components
|
||||
/// </remarks>
|
||||
[DataField("litMeleeDamageBonus")]
|
||||
public DamageSpecifier LitMeleeDamageBonus = new();
|
||||
|
||||
/// <summary>
|
||||
/// Whether the item is safe to refill while lit without exploding the tank.
|
||||
/// </summary>
|
||||
[DataField("tankSafe")]
|
||||
public bool TankSafe = false; //I have no idea what I'm doing
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
BIN
Resources/Audio/Items/lighter3.ogg
Normal file
BIN
Resources/Audio/Items/lighter_off.ogg
Normal file
@@ -9,4 +9,4 @@ welder-component-suicide-lit-others-message = {$victim} welds their every orific
|
||||
welder-component-suicide-lit-message = You weld your every orifice closed!
|
||||
welder-component-suicide-unlit-others-message = {$victim} bashes themselves with the unlit welding torch!
|
||||
welder-component-suicide-unlit-message = You bash yourself with the unlit welding torch!
|
||||
welder-component-after-interact-refueled-message = Welder refueled
|
||||
welder-component-after-interact-refueled-message = Refueled!
|
||||
|
||||
@@ -11,3 +11,5 @@
|
||||
CigarCase: 1
|
||||
Matchbox: 5
|
||||
PackPaperRollingFilters: 3
|
||||
CheapLighter: 4
|
||||
Lighter: 1
|
||||
|
||||
95
Resources/Prototypes/Entities/Objects/Tools/lighters.yml
Normal file
@@ -0,0 +1,95 @@
|
||||
- type: entity
|
||||
name: basic lighter
|
||||
parent: BaseItem
|
||||
id: Lighter
|
||||
description: "A simple plastic cigarette lighter."
|
||||
components:
|
||||
- type: RandomSpriteState #this has to be before sprite component for the flame to toggle right because weldercomponent behaves weird (and i dont trust myself to fix it right)
|
||||
spriteStates:
|
||||
- basic_icon_base-1
|
||||
- basic_icon_base-2
|
||||
- basic_icon_base-3
|
||||
- basic_icon_base-4
|
||||
- basic_icon_base-5
|
||||
- basic_icon_base-6
|
||||
- basic_icon_base-7
|
||||
- basic_icon_base-8
|
||||
- basic_icon_base-9
|
||||
- basic_icon_base-10
|
||||
- basic_icon_base-11
|
||||
- type: Sprite
|
||||
sprite: Objects/Tools/lighters.rsi
|
||||
layers:
|
||||
- state: icon_map
|
||||
- state: lighter_flame
|
||||
shader: unshaded
|
||||
visible: false
|
||||
- state: basic_icon_top
|
||||
- type: Item
|
||||
size: 3
|
||||
sprite: Objects/Tools/lighters.rsi
|
||||
HeldPrefix: off
|
||||
- type: ItemCooldown
|
||||
- type: ItemStatus
|
||||
- type: RefillableSolution
|
||||
solution: Welder
|
||||
- type: SolutionContainerManager
|
||||
solutions:
|
||||
Welder:
|
||||
reagents:
|
||||
- ReagentId: WeldingFuel
|
||||
Quantity: 8
|
||||
maxVol: 8 #uses less fuel than a welder, so this isnt as bad as it looks
|
||||
- type: MeleeWeapon
|
||||
damage:
|
||||
types:
|
||||
Blunt: 0 #this feels hacky, but is needed for burn damage while active (i think)
|
||||
- type: Welder
|
||||
fuelConsumption: 0.01
|
||||
litMeleeDamageBonus:
|
||||
types:
|
||||
Heat: 1
|
||||
tankSafe: true
|
||||
welderOnSounds:
|
||||
collection: lighterOnSounds
|
||||
welderOffSounds:
|
||||
collection: lighterOffSounds
|
||||
- type: PointLight
|
||||
enabled: false
|
||||
radius: 1.1 #smallest possible
|
||||
color: orange
|
||||
|
||||
|
||||
- type: entity
|
||||
name: cheap lighter
|
||||
parent: Lighter
|
||||
id: CheapLighter
|
||||
description: "A dangerously inexpensive plastic lighter, don't burn your thumb!"
|
||||
components:
|
||||
- type: RandomSpriteColor
|
||||
state: cheap_icon_base
|
||||
colors:
|
||||
blue: "#1861d5"
|
||||
red: "#951710"
|
||||
pink: "#d5188d"
|
||||
brown: "#a05212"
|
||||
green: "#0e7f1b"
|
||||
cyan: "#18a2d5"
|
||||
yellow: "#d58c18" #all colours proudly stolen from wirecutters
|
||||
- type: Sprite
|
||||
sprite: Objects/Tools/lighters.rsi
|
||||
layers:
|
||||
- state: icon_map
|
||||
- state: lighter_flame
|
||||
shader: unshaded
|
||||
visible: false
|
||||
- state: cheap_icon_top
|
||||
- type: SolutionContainerManager
|
||||
solutions:
|
||||
Welder:
|
||||
reagents:
|
||||
- ReagentId: WeldingFuel
|
||||
Quantity: 4
|
||||
maxVol: 4 #uses less fuel than a welder, so this isnt as bad as it looks
|
||||
|
||||
#TODO: zippos
|
||||
11
Resources/Prototypes/SoundCollections/lighter_sounds.yml
Normal file
@@ -0,0 +1,11 @@
|
||||
- type: soundCollection
|
||||
id: lighterOnSounds
|
||||
files:
|
||||
- /Audio/Items/lighter1.ogg
|
||||
- /Audio/Items/lighter2.ogg
|
||||
- /Audio/Items/lighter3.ogg
|
||||
|
||||
- type: soundCollection
|
||||
id: lighterOffSounds
|
||||
files:
|
||||
- /Audio/Items/lighter_off.ogg
|
||||
|
After Width: | Height: | Size: 8.8 KiB |
|
After Width: | Height: | Size: 8.9 KiB |
|
After Width: | Height: | Size: 8.9 KiB |
|
After Width: | Height: | Size: 9.0 KiB |
|
After Width: | Height: | Size: 9.0 KiB |
|
After Width: | Height: | Size: 8.9 KiB |
|
After Width: | Height: | Size: 8.8 KiB |
|
After Width: | Height: | Size: 8.9 KiB |
|
After Width: | Height: | Size: 9.0 KiB |
|
After Width: | Height: | Size: 8.8 KiB |
|
After Width: | Height: | Size: 8.9 KiB |
BIN
Resources/Textures/Objects/Tools/lighters.rsi/basic_icon_top.png
Normal file
|
After Width: | Height: | Size: 8.8 KiB |
|
After Width: | Height: | Size: 4.5 KiB |
BIN
Resources/Textures/Objects/Tools/lighters.rsi/cheap_icon_top.png
Normal file
|
After Width: | Height: | Size: 4.5 KiB |
BIN
Resources/Textures/Objects/Tools/lighters.rsi/icon_map.png
Normal file
|
After Width: | Height: | Size: 4.5 KiB |
BIN
Resources/Textures/Objects/Tools/lighters.rsi/lighter_flame.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
91
Resources/Textures/Objects/Tools/lighters.rsi/meta.json
Normal file
@@ -0,0 +1,91 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/commit/a28b24f149702527f3eb22f5c686f06c836f2f99; sprite has been edited",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
},
|
||||
"states": [
|
||||
{
|
||||
"name": "icon_map"
|
||||
},
|
||||
{
|
||||
"name": "cheap_icon_base"
|
||||
},
|
||||
{
|
||||
"name": "lighter_flame",
|
||||
"delays": [
|
||||
[
|
||||
0.2,
|
||||
0.1
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "basic_icon_base-1"
|
||||
},
|
||||
{
|
||||
"name": "basic_icon_base-2"
|
||||
},
|
||||
{
|
||||
"name": "basic_icon_base-3"
|
||||
},
|
||||
{
|
||||
"name": "basic_icon_base-4"
|
||||
},
|
||||
{
|
||||
"name": "basic_icon_base-5"
|
||||
},
|
||||
{
|
||||
"name": "basic_icon_base-6"
|
||||
},
|
||||
{
|
||||
"name": "basic_icon_base-7"
|
||||
},
|
||||
{
|
||||
"name": "basic_icon_base-8"
|
||||
},
|
||||
{
|
||||
"name": "basic_icon_base-9"
|
||||
},
|
||||
{
|
||||
"name": "basic_icon_base-10"
|
||||
},
|
||||
{
|
||||
"name": "basic_icon_base-11"
|
||||
},
|
||||
{
|
||||
"name": "basic_icon_top"
|
||||
},
|
||||
{
|
||||
"name": "cheap_icon_top"
|
||||
},
|
||||
{
|
||||
"name": "zippo_icon_base"
|
||||
},
|
||||
{
|
||||
"name": "zippo_open"
|
||||
},
|
||||
{
|
||||
"name": "zippo_top"
|
||||
},
|
||||
{
|
||||
"name": "off-inhand-left",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "off-inhand-right",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "on-inhand-left",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "on-inhand-right",
|
||||
"directions": 4
|
||||
}
|
||||
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 5.0 KiB |
|
After Width: | Height: | Size: 5.3 KiB |
BIN
Resources/Textures/Objects/Tools/lighters.rsi/on-inhand-left.png
Normal file
|
After Width: | Height: | Size: 5.2 KiB |
|
After Width: | Height: | Size: 5.3 KiB |
|
After Width: | Height: | Size: 4.5 KiB |
BIN
Resources/Textures/Objects/Tools/lighters.rsi/zippo_open.png
Normal file
|
After Width: | Height: | Size: 4.5 KiB |
BIN
Resources/Textures/Objects/Tools/lighters.rsi/zippo_top.png
Normal file
|
After Width: | Height: | Size: 4.5 KiB |