Rebase vials to DrinkBase, closeable vials, mini vials (#36132)
* .rsi * mini vial * try stop TryStopNukeOpsFromConstantlyFailing from failing * slight sprite change * mail and lathe recipe * real test fail * resolve arbitrage * cleanup * always forgetting something * always forgetting something * drink no more * remove integrated vial * initial port * Rename the rsi states * Rename the rsi states * up to standards * finish * testfail * minor touchup * arby * op * mix meta * small changes to the vials * commit * commit * style nit --------- Co-authored-by: iaada <iaada@users.noreply.github.com> Co-authored-by: Janet Blackquill <uhhadd@gmail.com>
|
|
@ -24,7 +24,7 @@
|
|||
sprite: Objects/Specific/Chemistry/vial.rsi
|
||||
state: vial
|
||||
product: CrateChemistryVials
|
||||
cost: 1000
|
||||
cost: 1100
|
||||
category: cargoproduct-category-name-medical
|
||||
group: market
|
||||
|
||||
|
|
|
|||
|
|
@ -122,12 +122,15 @@
|
|||
components:
|
||||
- type: Storage
|
||||
grid:
|
||||
- 0,0,2,1
|
||||
- 0,0,3,1
|
||||
- type: EntityTableContainerFill
|
||||
containers:
|
||||
storagebase:
|
||||
id: BaseChemistryEmptyVial
|
||||
amount: 6
|
||||
storagebase: !type:AllSelector
|
||||
children:
|
||||
- id: ChemistryEmptyVial
|
||||
amount: 3
|
||||
- id: ChemistryEmptyVialSmall
|
||||
rolls: 2 # group the small vials on the right column
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: box
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@
|
|||
- id: SyringeStimulants
|
||||
- id: VestineChemistryVial
|
||||
amount: 2
|
||||
- id: BaseChemistryEmptyVial
|
||||
- id: ChemistryEmptyVial
|
||||
|
||||
- type: entity
|
||||
parent: [BoxCardboard, BaseSyndicateContraband]
|
||||
|
|
|
|||
|
|
@ -60,7 +60,10 @@
|
|||
- id: Syringe
|
||||
amount: !type:RangeNumberSelector
|
||||
range: 1, 2
|
||||
- id: BaseChemistryEmptyVial
|
||||
- id: ChemistryEmptyVial
|
||||
amount: !type:RangeNumberSelector
|
||||
range: 0, 2
|
||||
- id: ChemistryEmptyVialSmall
|
||||
amount: !type:RangeNumberSelector
|
||||
range: 0, 2
|
||||
|
||||
|
|
|
|||
|
|
@ -1,170 +1,177 @@
|
|||
# TODO: Have a seperate lid state that can be popped on and off (not as a seperate item) that changes whether the vial can be spilled or not.
|
||||
|
||||
- type: entity
|
||||
name: vial
|
||||
parent: BaseItem
|
||||
id: BaseChemistryEmptyVial
|
||||
description: A small vial.
|
||||
abstract: true
|
||||
parent: [ DrinkBaseMaterialGlass, DrinkBase, DrinkBaseOpenable, DrinkBaseEmptyTrash, DrinkVisualsAll ]
|
||||
id: BaseChemistryVial
|
||||
components:
|
||||
- type: Item
|
||||
size: Tiny
|
||||
- type: Openable
|
||||
sound:
|
||||
collection: bottleCloseSounds # using closed here for the quieter sound
|
||||
closeable: true
|
||||
closeSound:
|
||||
collection: bottleCloseSounds
|
||||
- type: FitsInDispenser
|
||||
solution: drink
|
||||
- type: ExaminableSolution
|
||||
exactVolume: true # It's a chemistry tool
|
||||
- type: Tag
|
||||
tags:
|
||||
- Trash
|
||||
- CentrifugeCompatible
|
||||
- type: PhysicalComposition
|
||||
materialComposition:
|
||||
Glass: 25
|
||||
- type: FitsInDispenser
|
||||
solution: beaker
|
||||
- type: SpaceGarbage
|
||||
- CentrifugeCompatible # unique feature of vials
|
||||
|
||||
## Entities
|
||||
|
||||
- type: entity
|
||||
parent: BaseChemistryVial
|
||||
id: ChemistryEmptyVial
|
||||
name: vial
|
||||
description: A small vial.
|
||||
components:
|
||||
- type: Item
|
||||
sprite: Objects/Specific/Chemistry/vial.rsi
|
||||
- type: Sprite
|
||||
sprite: Objects/Specific/Chemistry/vial.rsi
|
||||
layers:
|
||||
- state: vial-1
|
||||
- state: vial-1-1
|
||||
map: ["enum.SolutionContainerLayers.Fill"]
|
||||
visible: false
|
||||
- type: Appearance
|
||||
- type: SolutionContainerVisuals
|
||||
maxFillLevels: 6
|
||||
fillBaseName: vial-1-
|
||||
inHandsMaxFillLevels: 4
|
||||
inHandsFillBaseName: -fill-
|
||||
- type: Edible
|
||||
edible: Drink
|
||||
solution: beaker
|
||||
destroyOnEmpty: false
|
||||
utensil: None
|
||||
- type: SolutionContainerManager
|
||||
solutions:
|
||||
beaker:
|
||||
drink:
|
||||
maxVol: 30
|
||||
- type: MixableSolution
|
||||
solution: beaker
|
||||
- type: RefillableSolution
|
||||
solution: beaker
|
||||
- type: DrainableSolution
|
||||
solution: beaker
|
||||
- type: ExaminableSolution
|
||||
solution: beaker
|
||||
exactVolume: true
|
||||
- type: DrawableSolution
|
||||
solution: beaker
|
||||
- type: SolutionTransfer
|
||||
maxTransferAmount: 30
|
||||
canChangeTransferAmount: true
|
||||
- type: SolutionItemStatus
|
||||
solution: beaker
|
||||
- type: UserInterface
|
||||
interfaces:
|
||||
enum.TransferAmountUiKey.Key:
|
||||
type: TransferAmountBoundUserInterface
|
||||
- type: Item
|
||||
size: Tiny
|
||||
sprite: Objects/Specific/Chemistry/vial.rsi
|
||||
shape:
|
||||
- 0,0,0,0
|
||||
- type: MeleeWeapon
|
||||
soundNoDamage:
|
||||
path: "/Audio/Effects/Fluids/splat.ogg"
|
||||
damage:
|
||||
types:
|
||||
Blunt: 0
|
||||
- type: TrashOnSolutionEmpty
|
||||
solution: beaker
|
||||
- type: StaticPrice
|
||||
price: 100
|
||||
- type: DamageOnLand
|
||||
damage:
|
||||
types:
|
||||
Blunt: 5
|
||||
- type: DamageOtherOnHit
|
||||
damage:
|
||||
types:
|
||||
Blunt: 2
|
||||
- type: Damageable
|
||||
damageContainer: Inorganic
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger: &DamageTrigger100
|
||||
!type:DamageTrigger
|
||||
damage: 100
|
||||
behaviors: &OverkillBehavior
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 15
|
||||
damage: 15 # stronger than base
|
||||
behaviors:
|
||||
- !type:PlaySoundBehavior
|
||||
- &SoundGlassBreak !type:PlaySoundBehavior
|
||||
sound:
|
||||
collection: GlassBreak
|
||||
params:
|
||||
volume: -4
|
||||
- !type:SpillBehavior { }
|
||||
- !type:SpawnEntitiesBehavior
|
||||
spawn:
|
||||
ShardGlass:
|
||||
ShardGlass: # less glass than base
|
||||
min: 0
|
||||
max: 1
|
||||
transferForensics: true
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
- type: Spillable
|
||||
solution: beaker
|
||||
- type: DnaSubstanceTrace
|
||||
|
||||
- type: entity
|
||||
parent: BaseChemistryVial
|
||||
id: ChemistryEmptyVialSmall
|
||||
name: mini vial
|
||||
description: A smaller vial.
|
||||
components:
|
||||
- type: Item
|
||||
sprite: Objects/Specific/Chemistry/vial_mini.rsi
|
||||
- type: Sprite
|
||||
sprite: Objects/Specific/Chemistry/vial_mini.rsi
|
||||
- type: SolutionContainerVisuals
|
||||
maxFillLevels: 5
|
||||
inHandsMaxFillLevels: 4
|
||||
- type: SolutionContainerManager
|
||||
solutions:
|
||||
drink:
|
||||
maxVol: 10
|
||||
- type: SolutionTransfer
|
||||
maxTransferAmount: 10
|
||||
- type: StaticPrice
|
||||
price: 50
|
||||
- type: PhysicalComposition
|
||||
materialComposition:
|
||||
Glass: 10
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger: *DamageTrigger100
|
||||
behaviors: *OverkillBehavior
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 5 # smaller so weaker
|
||||
behaviors: # remove glass shard spawn
|
||||
- *SoundGlassBreak
|
||||
- !type:SpillBehavior { }
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
|
||||
## Reagent filled
|
||||
|
||||
- type: entity
|
||||
parent: ChemistryEmptyVial
|
||||
id: VestineChemistryVial
|
||||
parent: BaseChemistryEmptyVial
|
||||
suffix: vestine
|
||||
components:
|
||||
- type: Label
|
||||
currentLabel: reagent-name-vestine
|
||||
- type: SolutionContainerManager
|
||||
solutions:
|
||||
beaker:
|
||||
drink:
|
||||
maxVol: 30
|
||||
reagents:
|
||||
- ReagentId: Vestine
|
||||
Quantity: 30
|
||||
- type: Tag
|
||||
tags: []
|
||||
tags: &TagVial # Remove trash tag when we have a filled solution
|
||||
- CentrifugeCompatible
|
||||
|
||||
- type: entity
|
||||
parent: ChemistryEmptyVialSmall
|
||||
id: RadiumChemistryVial
|
||||
parent: BaseChemistryEmptyVial
|
||||
suffix: radium
|
||||
components:
|
||||
- type: Label
|
||||
currentLabel: reagent-name-radium
|
||||
- type: SolutionContainerManager
|
||||
solutions:
|
||||
beaker:
|
||||
maxVol: 5
|
||||
drink:
|
||||
maxVol: 10
|
||||
reagents:
|
||||
- ReagentId: Radium
|
||||
Quantity: 5
|
||||
- type: Tag
|
||||
tags: *TagVial
|
||||
|
||||
- type: entity
|
||||
parent: ChemistryEmptyVialSmall
|
||||
id: ChlorineChemistryVial
|
||||
parent: BaseChemistryEmptyVial
|
||||
suffix: chlorine
|
||||
components:
|
||||
- type: Label
|
||||
currentLabel: reagent-name-chlorine
|
||||
- type: SolutionContainerManager
|
||||
solutions:
|
||||
beaker:
|
||||
maxVol: 5
|
||||
drink:
|
||||
maxVol: 10
|
||||
reagents:
|
||||
- ReagentId: Chlorine
|
||||
Quantity: 5
|
||||
- type: Tag
|
||||
tags: *TagVial
|
||||
|
||||
- type: entity
|
||||
parent: ChemistryEmptyVialSmall
|
||||
id: PlasmaChemistryVial
|
||||
parent: BaseChemistryEmptyVial
|
||||
suffix: plasma
|
||||
components:
|
||||
- type: Label
|
||||
currentLabel: reagent-name-plasma
|
||||
- type: SolutionContainerManager
|
||||
solutions:
|
||||
beaker:
|
||||
drink:
|
||||
maxVol: 10
|
||||
reagents:
|
||||
- ReagentId: Plasma
|
||||
Quantity: 10
|
||||
- type: Tag
|
||||
tags: *TagVial
|
||||
|
|
|
|||
|
|
@ -1023,10 +1023,10 @@
|
|||
- item: SprayBottle
|
||||
- item: GasAnalyzer
|
||||
- item: BorgDropper
|
||||
- item: BaseChemistryEmptyVial
|
||||
- item: ChemistryEmptyVial
|
||||
hand:
|
||||
emptyLabel: borg-slot-small-containers-empty
|
||||
emptyRepresentative: BaseChemistryEmptyVial
|
||||
emptyRepresentative: ChemistryEmptyVial
|
||||
whitelist:
|
||||
components:
|
||||
- FitsInDispenser
|
||||
|
|
|
|||
|
|
@ -77,6 +77,7 @@
|
|||
- type: Machine
|
||||
board: ElectrolysisUnitMachineCircuitboard
|
||||
|
||||
# TODO centrifuge should spill the vial if the lid is off
|
||||
- type: entity
|
||||
id: MachineCentrifuge
|
||||
parent: BaseTabletopChemicalMachine
|
||||
|
|
|
|||
|
|
@ -15,7 +15,8 @@
|
|||
- Syringe
|
||||
- PillCanister
|
||||
- HandLabeler
|
||||
- BaseChemistryEmptyVial
|
||||
- ChemistryEmptyVial
|
||||
- ChemistryEmptyVialSmall
|
||||
- Dropper
|
||||
|
||||
- type: latheRecipePack
|
||||
|
|
|
|||
|
|
@ -91,13 +91,21 @@
|
|||
Steel: 250
|
||||
|
||||
- type: latheRecipe
|
||||
id: BaseChemistryEmptyVial
|
||||
result: BaseChemistryEmptyVial
|
||||
id: ChemistryEmptyVial
|
||||
result: ChemistryEmptyVial
|
||||
completetime: 2
|
||||
materials:
|
||||
Glass: 100
|
||||
Wood: 20
|
||||
|
||||
- type: latheRecipe
|
||||
id: ChemistryEmptyVialSmall
|
||||
result: ChemistryEmptyVialSmall
|
||||
completetime: 2
|
||||
materials:
|
||||
Glass: 50
|
||||
Wood: 20
|
||||
|
||||
- type: latheRecipe
|
||||
id: ClothingEyesGlassesChemical
|
||||
result: ClothingEyesGlassesChemical
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 557 B |
|
|
@ -1,75 +1,78 @@
|
|||
{
|
||||
"version": 1,
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "Drawn by Ubaser, taken inspiration by /tg/'s vials",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
},
|
||||
"states": [
|
||||
{
|
||||
"name": "vial"
|
||||
"version": 1,
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "Drawn by Ubaser, taken inspiration by /tg/'s vials. icon_open edit by iaada(GitHub)",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
},
|
||||
{
|
||||
"name": "inhand-left",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-left-fill-1",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-left-fill-2",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-left-fill-3",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-left-fill-4",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-right",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-right-fill-1",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-right-fill-2",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-right-fill-3",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-right-fill-4",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "vial-1"
|
||||
},
|
||||
{
|
||||
"name": "vial-1-1"
|
||||
},
|
||||
{
|
||||
"name": "vial-1-2"
|
||||
},
|
||||
{
|
||||
"name": "vial-1-3"
|
||||
},
|
||||
{
|
||||
"name": "vial-1-4"
|
||||
},
|
||||
{
|
||||
"name": "vial-1-5"
|
||||
},
|
||||
{
|
||||
"name": "vial-1-6"
|
||||
}
|
||||
]
|
||||
"states": [
|
||||
{
|
||||
"name": "vial"
|
||||
},
|
||||
{
|
||||
"name": "inhand-left",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-left-fill-1",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-left-fill-2",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-left-fill-3",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-left-fill-4",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-right",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-right-fill-1",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-right-fill-2",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-right-fill-3",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-right-fill-4",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "icon_empty"
|
||||
},
|
||||
{
|
||||
"name": "icon_open"
|
||||
},
|
||||
{
|
||||
"name": "fill-1"
|
||||
},
|
||||
{
|
||||
"name": "fill-2"
|
||||
},
|
||||
{
|
||||
"name": "fill-3"
|
||||
},
|
||||
{
|
||||
"name": "fill-4"
|
||||
},
|
||||
{
|
||||
"name": "fill-5"
|
||||
},
|
||||
{
|
||||
"name": "fill-6"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
After Width: | Height: | Size: 108 B |
|
After Width: | Height: | Size: 126 B |
|
After Width: | Height: | Size: 136 B |
|
After Width: | Height: | Size: 146 B |
|
After Width: | Height: | Size: 140 B |
|
After Width: | Height: | Size: 464 B |
|
After Width: | Height: | Size: 472 B |
|
After Width: | Height: | Size: 122 B |
|
After Width: | Height: | Size: 130 B |
|
After Width: | Height: | Size: 138 B |
|
After Width: | Height: | Size: 142 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 126 B |
|
After Width: | Height: | Size: 134 B |
|
After Width: | Height: | Size: 142 B |
|
After Width: | Height: | Size: 144 B |
|
After Width: | Height: | Size: 1.2 KiB |
|
|
@ -0,0 +1,72 @@
|
|||
{
|
||||
"version": 1,
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "Drawn by Ubaser, taken inspiration by /tg/'s vials. Edited and shrunk by iaada(GitHub)",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
},
|
||||
"states": [
|
||||
{
|
||||
"name": "inhand-left",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-left-fill-1",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-left-fill-2",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-left-fill-3",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-left-fill-4",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-right",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-right-fill-1",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-right-fill-2",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-right-fill-3",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-right-fill-4",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "icon_empty"
|
||||
},
|
||||
{
|
||||
"name": "icon_open"
|
||||
},
|
||||
{
|
||||
"name": "fill-1"
|
||||
},
|
||||
{
|
||||
"name": "fill-2"
|
||||
},
|
||||
{
|
||||
"name": "fill-3"
|
||||
},
|
||||
{
|
||||
"name": "fill-4"
|
||||
},
|
||||
{
|
||||
"name": "fill-5"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -722,6 +722,9 @@ ClothingUniformJumpsuitParamedicNT: ClothingUniformJumpsuitParamedic
|
|||
# 2025-08-29
|
||||
PrefilledSyringe: Syringe
|
||||
|
||||
# 2025-09-12
|
||||
BaseChemistryEmptyVial: ChemistryEmptyVial
|
||||
|
||||
# 2025-10-6
|
||||
BibleTanakh: null
|
||||
BibleSatanic: null
|
||||
|
|
|
|||