Fleshes out smoking content (#3295)

* RSIs sorted out

* Bookmark

* Updated packet RSIs for Stacks

* Cigs Packs done

* Cigarette Cartons

* fucking MANUALLY fixed the cigarette inhands, fuck you tgstation

* Pipes work

* Cigars/Cases

* Updates vending machine inventory

* tweaks count

* Adds a cigarette crate

* Fixes RSIs, working on rolling paper

* Adds Tobacco and Cannabis plants

* Cigarettes and Rollies are now craftable

* There

* Fixed crafting recipes

* Reset RobustToolbox

* Netsync'd

* Ready

Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
This commit is contained in:
Swept
2021-02-22 04:08:17 +00:00
committed by GitHub
parent 932ae78621
commit 4a67fc1d22
306 changed files with 2537 additions and 125 deletions

View File

@@ -31,3 +31,29 @@
amount: 1
- name: BoxLightbulb
amount: 1
- type: entity
id: CrateServiceSmokeables
name: smokeables crate
description: "Tired of a quick death on the station? Order this crate and chain-smoke your way to a coughy demise!"
parent: CrateGenericonimo
components:
- type: StorageFill
contents:
- name: CigCartonGreen
prob: 0.50
orGroup: CigCarton1
- name: CigCartonRed
orGroup: CigCarton1
- name: CigCartonBlue
prob: 0.50
orGroup: CigCarton2
- name: CigCartonBlack
orGroup: CigCarton2
- name: CigarGoldCase
prob: 0.05
orGroup: Cigars
- name: CigarCase
orGroup: Cigars
- name: Matchbox
amount: 2

View File

@@ -0,0 +1,21 @@
- type: entity
id: Rollie
parent: BaseSmokeable
name: blunt
description: "A roll of dried plant matter wrapped in thin paper."
components:
- type: Sprite
sprite: Objects/Consumable/Smokeables/Cigarettes/blunt.rsi
netsync: false
state: unlit-icon
- type: Tag
tags:
- Cigarette
- type: Clothing
sprite: Objects/Consumable/Smokeables/Cigarettes/blunt.rsi
Slots: [ mask ]
HeldPrefix: unlit
size: 1
- type: Construction
graph: smokeableRollie
node: rollie

View File

@@ -0,0 +1,73 @@
- type: entity
id: CigCartonGreen
parent: BoxBase
name: Spessman's Smokes carton
description: "A carton containing 6 packets of Spessman's Smokes."
components:
- type: Sprite
sprite: Objects/Consumable/Smokeables/Cigarettes/Cartons/green.rsi
layers:
- state: closed
- type: Storage
capacity: 36
- type: Item
sprite: Objects/Consumable/Smokeables/Cigarettes/Cartons/green.rsi
- type: StorageFill
contents:
- name: CigPackGreen
amount: 6
- type: Appearance
visuals:
- type: BagOpenCloseVisualizer
openIcon: open
- type: entity
id: CigCartonRed
parent: CigCartonGreen
name: Dromedaryco carton
description: "A carton containing 6 packets of Dromedarycos."
components:
- type: Sprite
sprite: Objects/Consumable/Smokeables/Cigarettes/Cartons/red.rsi
layers:
- state: closed
- type: Item
sprite: Objects/Consumable/Smokeables/Cigarettes/Cartons/red.rsi
- type: StorageFill
contents:
- name: CigPackRed
amount: 6
- type: entity
id: CigCartonBlue
parent: CigCartonGreen
name: AcmeCo carton
description: "A carton containing 6 packets of AcmeCo."
components:
- type: Sprite
sprite: Objects/Consumable/Smokeables/Cigarettes/Cartons/blue.rsi
layers:
- state: closed
- type: Item
sprite: Objects/Consumable/Smokeables/Cigarettes/Cartons/blue.rsi
- type: StorageFill
contents:
- name: CigPackBlue
amount: 6
- type: entity
id: CigCartonBlack
parent: CigCartonGreen
name: Nomads carton
description: "A carton containing 6 packets of Nomads."
components:
- type: Sprite
sprite: Objects/Consumable/Smokeables/Cigarettes/Cartons/black.rsi
layers:
- state: closed
- type: Item
sprite: Objects/Consumable/Smokeables/Cigarettes/Cartons/black.rsi
- type: StorageFill
contents:
- name: CigPackBlack
amount: 6

View File

@@ -0,0 +1,25 @@
- type: Tag
id: Cigarette
- type: entity
id: Cigarette
parent: BaseSmokeable
name: cigarette
description: "A roll of tobacco and nicotine."
components:
- type: Sprite
sprite: Objects/Consumable/Smokeables/Cigarettes/cigarette.rsi
netsync: false
state: unlit-icon
- type: Tag
tags:
- Cigarette
- type: Clothing
netsync: false
sprite: Objects/Consumable/Smokeables/Cigarettes/cigarette.rsi
Slots: [ mask ]
HeldPrefix: unlit
size: 1
- type: Construction
graph: smokeableCigarette
node: cigarette

View File

@@ -0,0 +1,88 @@
- type: entity
id: CigPackBase
parent: BaseItem
name: cigarette pack
abstract: true
components:
- type: Sprite
netsync: false
state: closed
- type: Storage
capacity: 6
- type: Item
size: 6
- type: StorageFill
contents:
- name: Cigarette
amount: 6
- type: StorageCounter
countTag: Cigarette
- type: Appearance
visuals:
- type: BagOpenCloseVisualizer
openIcon: open
- type: StackVisualizer
composite: true
stackLayers:
- cig1
- cig2
- cig3
- cig4
- cig5
- cig6
- type: entity
id: CigPackGreen
parent: CigPackBase
name: Spessman's Smokes packet
description: "A label on the packaging reads, 'Wouldn't a slow death make a change?'"
components:
- type: Sprite
sprite: Objects/Consumable/Smokeables/Cigarettes/Packs/green.rsi
layers:
- state: closed
- type: Item
sprite: Objects/Consumable/Smokeables/Cigarettes/Packs/green.rsi
size: 6
- type: entity
id: CigPackRed
parent: CigPackBase
name: DromedaryCo packet
description: "The most popular brand of Space Cigarettes, sponsors of the Space Olympics."
components:
- type: Sprite
sprite: Objects/Consumable/Smokeables/Cigarettes/Packs/red.rsi
layers:
- state: closed
- type: Item
sprite: Objects/Consumable/Smokeables/Cigarettes/Packs/red.rsi
size: 6
- type: entity
id: CigPackBlue
parent: CigPackBase
name: AcmeCo packet
description: "For those who somehow want to obtain the record for the most amount of cancerous tumors."
components:
- type: Sprite
sprite: Objects/Consumable/Smokeables/Cigarettes/Packs/blue.rsi
layers:
- state: closed
- type: Item
sprite: Objects/Consumable/Smokeables/Cigarettes/Packs/blue.rsi
size: 6
- type: entity
id: CigPackBlack
parent: CigPackBase
name: Nomads packet
description: "Nomads's extra strong, for when your life is more extra hard."
components:
- type: Sprite
sprite: Objects/Consumable/Smokeables/Cigarettes/Packs/black.rsi
layers:
- state: closed
- type: Item
sprite: Objects/Consumable/Smokeables/Cigarettes/Packs/black.rsi
size: 6

View File

@@ -0,0 +1,50 @@
- type: entity
parent: BaseItem
name: pack of rolling paper
id: PackPaperRolling
description: "A pack of thin pieces of paper used to make fine smokeables."
components:
# I know but it just works.
- type: FoodContainer
prototypes:
PaperRolling: 100
- type: Sprite
sprite: Objects/Consumable/Smokeables/Cigarettes/paper.rsi
state: cigpapers
- type: Item
sprite: Objects/Consumable/Smokeables/Cigarettes/paper.rsi
state: cigpapers
- type: entity
id: PaperRolling
name: rolling paper
description: "A thin piece of paper used to make fine smokeables."
parent: BaseItem
components:
- type: Stack
stacktype: enum.StackType.PaperRolling
max: 5
count: 1
- type: Sprite
sprite: Objects/Consumable/Smokeables/Cigarettes/paper.rsi
state: cigpaper
- type: Item
sprite: Objects/Consumable/Smokeables/Cigarettes/paper.rsi
state: cigpaper
- type: entity
id: CigaretteFilter
name: cigarette filter
description: "A strip of firm paper used as a filter for handmade cigarettes."
parent: BaseItem
components:
- type: Stack
stacktype: enum.StackType.CigaretteFilter
max: 5
count: 1
- type: Sprite
sprite: Objects/Consumable/Smokeables/Cigarettes/paper.rsi
state: cigfilter
- type: Item
sprite: Objects/Consumable/Smokeables/Cigarettes/paper.rsi
state: cigfilter

View File

@@ -0,0 +1,48 @@
- type: entity
id: CigarCase
parent: BaseItem
name: cigar case
description: "A case for holding your cigars when you are not smoking them."
components:
- type: Sprite
netsync: false
sprite: Objects/Consumable/Smokeables/Cigars/case.rsi
layers:
- state: closed
- type: Storage
capacity: 8
- type: Item
sprite: Objects/Consumable/Smokeables/Cigars/case.rsi
size: 8
- type: StorageFill
contents:
- name: Cigar
amount: 8
- type: StorageCounter
countTag: Cigar
- type: Appearance
visuals:
- type: BagOpenCloseVisualizer
openIcon: open
- type: StackVisualizer
composite: true
stackLayers:
- cigar1
- cigar2
- cigar3
- cigar4
- cigar5
- cigar6
- cigar7
- cigar8
- type: entity
id: CigarGoldCase
parent: CigarCase
name: premium cigar case
description: "A case of premium Havanian cigars. You'll only see heads with these."
components:
- type: StorageFill
contents:
- name: CigarGold
amount: 8

View File

@@ -0,0 +1,39 @@
- type: Tag
id: Cigar
- type: entity
id: Cigar
parent: BaseSmokeable
name: cigar
description: "A brown roll of tobacco and... well, you're not quite sure."
components:
- type: Smoking
duration: 70
- type: Sprite
sprite: Objects/Consumable/Smokeables/Cigars/cigar.rsi
netsync: false
state: unlit-icon
- type: Tag
tags:
- Cigar
- type: Clothing
sprite: Objects/Consumable/Smokeables/Cigars/cigar.rsi
Slots: [ mask ]
HeldPrefix: unlit
size: 1
- type: entity
id: CigarGold
parent: Cigar
name: premium Havanian cigar
description: "A cigar fit for only the best of the best."
components:
- type: Sprite
sprite: Objects/Consumable/Smokeables/Cigars/cigar-gold.rsi
netsync: false
state: unlit-icon
- type: Clothing
sprite: Objects/Consumable/Smokeables/Cigars/cigar-gold.rsi
Slots: [ mask ]
HeldPrefix: unlit
size: 1

View File

@@ -0,0 +1,11 @@
- type: entity
description: "If you want to get cancer, might as well do it in style."
id: BaseSmokeable
parent: BaseItem
abstract: true
components:
- type: Smoking
duration: 50
- type: Appearance
visuals:
- type: BurnStateVisualizer

View File

@@ -0,0 +1,17 @@
- type: entity
id: SmokingPipe
parent: BaseSmokeable
name: smoking pipe
description: "A pipe, for smoking. Probably made of meershaum or something."
components:
- type: Smoking
duration: 70
- type: Sprite
sprite: Objects/Consumable/Smokeables/Pipes/pipe.rsi
netsync: false
state: unlit-icon
- type: Clothing
sprite: Objects/Consumable/Smokeables/Pipes/pipe.rsi
Slots: [ mask ]
HeldPrefix: unlit
size: 1

View File

@@ -1,62 +0,0 @@
- type: Tag
id: Cigarette
- type: entity
name: "Base Cigarette"
id: BaseCigarette
parent: BaseItem
abstract: true
components:
- type: Sprite
sprite: Objects/Consumable/Fancy/mask_cig.rsi
netsync: false
state: icon
- type: Clothing
sprite: Objects/Consumable/Fancy/mask_cig.rsi
Slots: [ mask ]
HeldPrefix: unlit
size: 1
- type: Tag
tags:
- Cigarette
- type: Smoking
duration: 30
- type: Appearance
visuals:
- type: BurnStateVisualizer
- type: entity
id: Cigarette
parent: BaseCigarette
name: cigarette
description: "If you want to get cancer, might as well do it in style."
- type: entity
id: CigarettePack
parent: SmallboxItem
name: cigarette pack
description: "Pack of cigarettes"
components:
- type: Sprite
sprite: Objects/Consumable/Fancy/cigarettes.rsi
netsync: false
layers:
- state: cig
- type: StorageFill
contents:
- name: Cigarette
amount: 6
- type: StorageCounter
countTag: Cigarette
- type: Appearance
visuals:
- type: BagOpenCloseVisualizer
openIcon: cig_open
- type: StackVisualizer
composite: true
stackLayers:
- cigarette_1
- cigarette_2
- cigarette_3
- cigarette_4
- cigarette_5
- cigarette_6

View File

@@ -4,6 +4,7 @@
abstract: true
components:
- type: Sprite
netsync: false
sprite: Objects/Storage/boxes.rsi
- type: Item
sprite: Objects/Storage/boxes.rsi

View File

@@ -247,3 +247,117 @@
sprite: Objects/Specific/Hydroponics/chanterelle.rsi
- type: Produce
seed: chanterelle
# Leaves
- type: entity
name: cannabis leaves
parent: ProduceBase
id: LeavesCannabis
description: "Recently legalized in most galaxies."
components:
- type: Sprite
sprite: Objects/Specific/Hydroponics/cannabis.rsi
- type: Produce
seed: cannabis
- type: Food
- type: SolutionContainer
contents:
reagents:
- ReagentId: chem.THCOil
Quantity: 5
- type: entity
name: dried cannabis leaves
parent: BaseItem
id: LeavesCannabisDried
description: "Dried cannabis leaves, ready to be ground."
components:
- type: Stack
stacktype: enum.StackType.LeavesCannabisDried
max: 5
count: 1
- type: SolutionContainer
contents:
reagents:
- ReagentId: chem.THC
Quantity: 2
- type: Sprite
sprite: Objects/Specific/Hydroponics/tobacco.rsi
state: dried
- type: entity
name: ground cannabis
parent: BaseItem
id: GroundCannabis
description: "Ground cannabis, ready to take you on a trip."
components:
- type: Stack
stacktype: enum.StackType.GroundCannabis
max: 5
count: 1
- type: SolutionContainer
contents:
reagents:
- ReagentId: chem.THC
Quantity: 10
- type: Sprite
sprite: Objects/Misc/reageant_fillings.rsi
state: powderpile
color: darkgreen
- type: Construction
graph: smokeableGroundCannabis
node: ground
- type: entity
name: tobacco leaves
parent: ProduceBase
id: LeavesTobacco
description: "Dry them out to make some smokes."
components:
- type: Sprite
sprite: Objects/Specific/Hydroponics/tobacco.rsi
- type: Produce
seed: tobacco
- type: entity
name: dried tobacco leaves
parent: BaseItem
id: LeavesTobaccoDried
description: "Dried tobacco leaves, ready to be ground."
components:
- type: Stack
stacktype: enum.StackType.LeavesTobaccoDried
max: 5
count: 1
- type: SolutionContainer
contents:
reagents:
- ReagentId: chem.Nicotine
Quantity: 2
- type: Sprite
sprite: Objects/Specific/Hydroponics/tobacco.rsi
state: dried
- type: entity
name: ground tobacco
parent: BaseItem
id: GroundTobacco
description: "Ground tobacco, perfect for hand-rolled cigarettes."
components:
- type: Stack
stacktype: enum.StackType.GroundTobacco
max: 5
count: 1
- type: SolutionContainer
contents:
reagents:
- ReagentId: chem.Nicotine
Quantity: 10
- type: Sprite
sprite: Objects/Misc/reageant_fillings.rsi
state: powderpile
color: brown
- type: Construction
graph: smokeableGroundTobacco
node: ground

View File

@@ -140,3 +140,25 @@
seed: eggy
- type: Sprite
sprite: Objects/Specific/Hydroponics/eggy.rsi
- type: entity
parent: SeedBase
name: packet of tobacco seeds
description: "These seeds grow into tobacco plants."
id: TobaccoSeeds
components:
- type: Seed
seed: tobacco
- type: Sprite
sprite: Objects/Specific/Hydroponics/tobacco.rsi
- type: entity
parent: SeedBase
name: packet of cannabis seeds
description: "Taxable."
id: CannabisSeeds
components:
- type: Seed
seed: cannabis
- type: Sprite
sprite: Objects/Specific/Hydroponics/cannabis.rsi