Alchemy + Guidebook initialization (#124)

* remove Guidebook

* water and blood

* localization things

* added vital extract

* some fixes

* added bloodgrass

* guidebook localization

* fixes icons and remove unnecesary fields

* added inhand cauldron

* fix wallmount board

* Update bonfire.yml

* Update bonfire.yml

* alchemy furnace + mist

* fixes

* Guidebook localization

* Update drinks.yml

* Revert "remove Guidebook"

This reverts commit 7924cf235f.

* fix filtering guidebook

* test fix

* Update heater.yml
This commit is contained in:
Ed
2024-05-02 20:41:11 +03:00
committed by GitHub
parent 2c34befbcb
commit 4c692d7d4a
128 changed files with 1949 additions and 154 deletions

View File

@@ -5,8 +5,8 @@
id: DummyMix
verbText: mixing-verb-default-mix
icon:
sprite: Objects/Specific/Chemistry/beaker_large.rsi
state: beakerlarge
sprite: _CP14/Structures/Specific/Alchemy/alchemy_vat.rsi
state: full
- type: mixingCategory
id: DummyGrind

View File

@@ -0,0 +1,33 @@
- type: entity
parent: BaseFoam
id: CP14Mist
name: mist
components:
- type: Sprite
sprite: _CP14/Effects/mist.rsi
state: chemmist
- type: TimedDespawn
lifetime: 20
- type: Tag
tags:
- HideContextMenu
- type: SolutionContainerManager
solutions:
solutionArea:
maxVol: 100
- type: entity
parent: CP14Mist
id: CP14MistVitalExtract
components:
- type: Sprite
sprite: _CP14/Effects/mist.rsi
layers:
- state: chemmist
color: "#db2a2a"
- type: SolutionContainerManager
solutions:
solutionArea:
reagents:
- ReagentId: CP14VitalExtract
Quantity: 10

View File

@@ -4,75 +4,73 @@
save: false
abstract: true
components:
- type: Sprite
layers:
- map: [ "enum.HumanoidVisualLayers.Chest" ]
- map: [ "enum.HumanoidVisualLayers.Head" ]
- map: [ "enum.HumanoidVisualLayers.Snout" ]
- map: [ "enum.HumanoidVisualLayers.Eyes" ]
- map: [ "enum.HumanoidVisualLayers.RArm" ]
- map: [ "enum.HumanoidVisualLayers.LArm" ]
- map: [ "enum.HumanoidVisualLayers.RLeg" ]
- map: [ "enum.HumanoidVisualLayers.LLeg" ]
- shader: StencilClear
sprite: Mobs/Species/Human/parts.rsi #PJB on stencil clear being on the left leg: "...this is 'fine'" -https://github.com/space-wizards/space-station-14/pull/12217#issuecomment-1291677115
# its fine, but its still very stupid that it has to be done like this instead of allowing sprites to just directly insert a stencil clear.
# sprite refactor when
state: l_leg
- shader: StencilMask
map: [ "enum.HumanoidVisualLayers.StencilMask" ]
sprite: Mobs/Customization/masking_helpers.rsi
state: unisex_full
visible: false
- map: [ "jumpsuit" ]
- map: [ "pants" ]
- map: [ "shirt" ]
- map: [ "enum.HumanoidVisualLayers.LFoot" ]
- map: [ "enum.HumanoidVisualLayers.RFoot" ]
- map: [ "enum.HumanoidVisualLayers.LHand" ]
- map: [ "enum.HumanoidVisualLayers.RHand" ]
- map: [ "gloves" ]
- map: [ "shoes" ]
- map: [ "ears" ]
- map: [ "outerClothing" ]
- map: [ "eyes" ]
- map: [ "belt" ]
- map: [ "id" ]
- map: [ "neck" ]
- map: [ "cloak" ]
- map: [ "back" ]
- map: [ "enum.HumanoidVisualLayers.FacialHair" ]
- map: [ "enum.HumanoidVisualLayers.Hair" ]
- map: [ "enum.HumanoidVisualLayers.HeadSide" ]
- map: [ "enum.HumanoidVisualLayers.HeadTop" ]
- map: [ "enum.HumanoidVisualLayers.Tail" ]
- map: [ "mask" ]
- map: [ "head" ]
- map: [ "pocket1" ]
- map: [ "pocket2" ]
- map: ["enum.HumanoidVisualLayers.Handcuffs"]
color: "#ffffff"
sprite: Objects/Misc/handcuffs.rsi
state: body-overlay-2
visible: false
- map: [ "clownedon" ] # Dynamically generated
sprite: "Effects/creampie.rsi"
state: "creampie_human"
visible: false
- type: HumanoidAppearance
species: CP14Human
- type: Body
prototype: CP14Human
requiredLegs: 2
- type: Sprite
layers:
- map: [ "enum.HumanoidVisualLayers.Chest" ]
- map: [ "enum.HumanoidVisualLayers.Head" ]
- map: [ "enum.HumanoidVisualLayers.Snout" ]
- map: [ "enum.HumanoidVisualLayers.Eyes" ]
- map: [ "enum.HumanoidVisualLayers.RArm" ]
- map: [ "enum.HumanoidVisualLayers.LArm" ]
- map: [ "enum.HumanoidVisualLayers.RLeg" ]
- map: [ "enum.HumanoidVisualLayers.LLeg" ]
- shader: StencilClear
sprite: Mobs/Species/Human/parts.rsi
state: l_leg
- shader: StencilMask
map: [ "enum.HumanoidVisualLayers.StencilMask" ]
sprite: Mobs/Customization/masking_helpers.rsi
state: unisex_full
visible: false
- map: [ "pants" ]
- map: [ "shirt" ]
- map: [ "enum.HumanoidVisualLayers.LFoot" ]
- map: [ "enum.HumanoidVisualLayers.RFoot" ]
- map: [ "enum.HumanoidVisualLayers.LHand" ]
- map: [ "enum.HumanoidVisualLayers.RHand" ]
- map: [ "gloves" ]
- map: [ "shoes" ]
- map: [ "ears" ]
- map: [ "eyes" ]
- map: [ "belt1" ]
- map: [ "belt2" ]
- map: [ "neck" ]
- map: [ "cloak" ]
- map: [ "back" ]
- map: [ "enum.HumanoidVisualLayers.FacialHair" ]
- map: [ "enum.HumanoidVisualLayers.Hair" ]
- map: [ "enum.HumanoidVisualLayers.HeadSide" ]
- map: [ "enum.HumanoidVisualLayers.HeadTop" ]
- map: [ "enum.HumanoidVisualLayers.Tail" ]
- map: [ "mask" ]
- map: [ "head" ]
- map: [ "pocket1" ]
- map: [ "pocket2" ]
- map: ["enum.HumanoidVisualLayers.Handcuffs"]
color: "#ffffff"
sprite: Objects/Misc/handcuffs.rsi
state: body-overlay-2
visible: false
- map: [ "clownedon" ] # Dynamically generated
sprite: "Effects/creampie.rsi"
state: "creampie_human"
visible: false
- type: HumanoidAppearance
species: CP14Human
- type: Body
prototype: CP14Human
requiredLegs: 2
- type: entity
parent: BaseMobSpeciesOrganic
id: CP14BaseMobSpeciesOrganic
save: false
abstract: true
#components:
# - type: FireVisuals
# alternateState: Standing #TO DO - custom visual
components:
- type: Bloodstream
bloodReagent: CP14Blood
# - type: FireVisuals
# alternateState: Standing #TO DO - custom visual
- type: entity
save: false
@@ -105,7 +103,6 @@
sprite: Mobs/Customization/masking_helpers.rsi
state: unisex_full
visible: false
- map: ["jumpsuit"]
- map: ["enum.HumanoidVisualLayers.LFoot"]
- map: ["enum.HumanoidVisualLayers.RFoot"]
- map: ["enum.HumanoidVisualLayers.LHand"]
@@ -120,11 +117,9 @@
- map: [ "ring2" ]
- map: [ "shoes" ]
- map: [ "ears" ]
- map: [ "outerClothing" ]
- map: [ "eyes" ]
- map: [ "belt1" ]
- map: [ "belt2" ]
- map: [ "id" ]
- map: [ "keys" ]
- map: [ "neck" ]
- map: [ "back" ]

View File

@@ -0,0 +1,70 @@
- type: entity
parent: BaseItem
id: CP14Cauldron
name: cauldron
description: A heavy cauldron. It is not as bulky as a vat, but can be carried in your hands.
components:
- type: Item
size: Ginormous
- type: MultiHandedItem
- type: ClothingSpeedModifier
walkModifier: 0.6
sprintModifier: 0.6
- type: HeldSpeedModifier
- type: Sprite
sprite: _CP14/Objects/Specific/Alchemy/cauldron.rsi
layers:
- state: icon
- state: liq-1
map: ["enum.SolutionContainerLayers.Fill"]
visible: false
- type: SolutionContainerManager
solutions:
vat:
maxVol: 100
- type: Spillable
solution: vat
- type: DrainableSolution
solution: vat
- type: ExaminableSolution
solution: vat
- type: MixableSolution
solution: vat
- type: RefillableSolution
solution: vat
- type: DrawableSolution
solution: vat
- type: DumpableSolution
solution: vat
- type: SolutionItemStatus
solution: vat
- type: Drink
solution: vat
- type: Injector
solutionName: vat
injectOnly: false
ignoreMobs: true
minTransferAmount: 10
maxTransferAmount: 100
transferAmount: 50
toggleState: 1 # draw
- type: UserInterface
interfaces:
enum.TransferAmountUiKey.Key:
type: TransferAmountBoundUserInterface
- type: Appearance
- type: SolutionContainerVisuals
maxFillLevels: 5
fillBaseName: liq-
inHandsMaxFillLevels: 5
inHandsFillBaseName: -fill
- type: DamageOtherOnHit
damage:
types:
Blunt: 5
- type: DamageOnHighSpeedImpact
minimumSpeed: 2
damage:
types:
Blunt: 5

View File

@@ -0,0 +1,37 @@
- type: entity
id: CP14BloodGrass
parent: FoodProduceBase
name: bloodgrass
description: The dullest and most common plant to be found in the wild is the dark brown grass.
components:
- type: Item
size: Tiny
- type: Produce
- type: Sprite
sprite: _CP14/Objects/Specific/Alchemy/Herbal/bloodgrass.rsi
layers:
- state: base1
map: ["random"]
- type: RandomSprite
available:
- random:
base1: ""
base2: ""
base3: ""
base4: ""
base5: ""
- type: FlavorProfile
flavors:
- CP14Metallic
- type: Extractable
juiceSolution:
reagents:
- ReagentId: CP14BloodGrassSap
Quantity: 5
- type: SolutionContainerManager
solutions:
food:
maxVol: 20
reagents:
- ReagentId: CP14BloodGrassSap
Quantity: 5

View File

@@ -134,4 +134,19 @@
maxVol: 10
- type: SolutionContainerVisuals
maxFillLevels: 5
fillBaseName: liq-
fillBaseName: liq-
# Filled
- type: entity
id: CP14VialSmallVitalExtract
parent: CP14VialSmall
suffix: Vital extract
components:
- type: SolutionContainerManager
solutions:
vial:
reagents:
- ReagentId: CP14VitalExtract
Quantity: 10

View File

@@ -3,7 +3,7 @@
id: CP14Bucket
name: bucket
description: It's a boring old bucket.
suffix: CP14
suffix: CP14, need resprite
components:
- type: Drink
solution: bucket

View File

@@ -75,10 +75,8 @@
barrel:
maxVol: 300
- type: SolutionContainerVisuals
maxFillLevels: 7
maxFillLevels: 5
fillBaseName: liq
- type: Spillable
solution: barrel
- type: DrainableSolution
solution: barrel
- type: ExaminableSolution
@@ -103,17 +101,17 @@
solutions:
barrel:
reagents:
- ReagentId: Water
- ReagentId: CP14Water
Quantity: 300
- type: entity
id: CP14BarrelBeer
parent: CP14BaseBarrel
suffix: Beer
suffix: Blood
components:
- type: SolutionContainerManager
solutions:
barrel:
reagents:
- ReagentId: Beer
- ReagentId: CP14Blood
Quantity: 300

View File

@@ -1,6 +1,6 @@
- type: entity
id: CP14Bonfire
parent: BaseStructure
parent: CP14BaseFireplace
name: bonfire
description: A pile of logs stacked together, ready to burst into flames at the slightest spark.
components:
@@ -15,20 +15,6 @@
- type: Construction
graph: CP14Bonfire
node: CP14Bonfire
- type: Fixtures
fixtures:
fix1:
shape:
!type:PhysShapeAabb
bounds: "-0.45,-0.45,0.45,0.45"
density: 55
mask:
- TabletopMachineMask
layer:
- Impassable
- MidImpassable
- LowImpassable
hard: false
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Wood
@@ -36,25 +22,10 @@
thresholds:
- trigger:
!type:DamageTrigger
damage: 80
damage: 20
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- trigger:
!type:DamageTypeTrigger
damageType: Heat
damage: 50
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: CP14FlammableAmbientSound
- type: AmbientSound
enabled: false
volume: -5
range: 5
sound:
path: /Audio/Ambience/Objects/fireplace.ogg
- type: Appearance
- type: GenericVisualizer
visuals:
enum.FireplaceFuelVisuals.Status:
@@ -62,30 +33,13 @@
Empty: { visible: false }
Medium: { visible: true, state: full1 }
Full: { visible: true, state: full2 }
- type: Reactive
groups:
Flammable: [ Touch ]
Extinguish: [ Touch ]
- type: Flammable
fireSpread: true
canResistFire: false
alwaysCombustible: true
canExtinguish: true
firestacksOnIgnite: 0.5
damage:
types:
Heat: 0
- type: FireVisuals
sprite: _CP14/Structures/Furniture/bonfire.rsi
normalState: burning
- type: ItemPlacer
maxEntities: 4
- type: CP14FlammableEntityHeater
- type: CP14Fireplace
- type: entity
id: CP14Stick
parent: CP14Bucket
name: Stick!!!
components:
- type: CP14FireplaceFuel
- type: CP14FireplaceFuel

View File

@@ -0,0 +1,113 @@
- type: entity
id: CP14BaseFireplace
parent: BaseStructure
abstract: true
components:
- type: Fixtures
fixtures:
fix1:
shape:
!type:PhysShapeAabb
bounds: "-0.45,-0.45,0.45,0.45"
density: 55
mask:
- TabletopMachineMask
layer:
- Impassable
- MidImpassable
- LowImpassable
hard: false
- type: CP14FlammableAmbientSound
- type: AmbientSound
enabled: false
volume: -5
range: 5
sound:
path: /Audio/Ambience/Objects/fireplace.ogg
- type: Appearance
- type: Reactive
groups:
Flammable: [ Touch ]
Extinguish: [ Touch ]
- type: Flammable
fireSpread: true
canResistFire: false
alwaysCombustible: true
canExtinguish: true
firestacksOnIgnite: 0.5
damage:
types:
Heat: 0
- type: ItemPlacer
maxEntities: 4
- type: CP14FlammableEntityHeater
- type: CP14FlammableSolutionHeater
- type: CP14Fireplace
- type: entity
id: CP14AlchemyFurnaceDebug
parent: CP14AlchemyFurnace
suffix: DEBUG
components:
- type: CP14Fireplace
currentFuel: 100
fuelDrainingPerUpdate: 0
- type: entity
id: CP14AlchemyFurnace
name: alchemy furnace
parent: CP14BaseFireplace
description: A furnace fueled by wood, coal, or any other burning material. Handy for heating your alchemical potions.
components:
- type: Sprite
sprite: _CP14/Structures/Specific/Alchemy/alchemy_furnace.rsi
layers:
- state: base
- state: fuel1
visible: false
map: ["fuel"]
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Metallic
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 80
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: GenericVisualizer
visuals:
enum.FireplaceFuelVisuals.Status:
fuel:
Empty: { visible: false }
Medium: { visible: true, state: fuel1 }
Full: { visible: true, state: fuel2 }
- type: FireVisuals
sprite: _CP14/Structures/Specific/Alchemy/alchemy_furnace.rsi
normalState: burning
- type: Climbable
- type: Fixtures
fixtures:
fix1:
shape:
!type:PhysShapeAabb
bounds: "-0.45,-0.45,0.45,0.45"
density: 55
mask:
- TabletopMachineMask
layer:
- Impassable
- MidImpassable
- LowImpassable
hard: false
fix2:
shape:
!type:PhysShapeAabb
bounds: "-0.45,-0.45,0.45,0.45"
density: 55
mask:
- TableMask
layer:
- TableLayer

View File

@@ -2,8 +2,8 @@
id: CP14BaseVat
parent:
- BaseStructureDynamic
name: vat
description: VATVATVAT
name: big vat
description: A very large vat for storing huge amounts of liquid. Heavy, uncomfortable to carry.
placement:
mode: PlaceFree
components:
@@ -18,7 +18,7 @@
shape:
!type:PhysShapeAabb
bounds: "-0.3,-0.3,0.3,0.3"
density: 155
density: 666 # >:)
mask:
- MachineMask
layer:
@@ -67,8 +67,6 @@
solution: vat
- type: DumpableSolution
solution: vat
- type: Spillable
solution: vat
- type: Drink
solution: vat
- type: UserInterface
@@ -81,6 +79,7 @@
- type: ThrowInsertContainer
containerId: storagebase
- type: Storage
cP14CanStorageSolutionManagers: false
grid:
- 0,0,4,3
blacklist:

View File

@@ -0,0 +1,18 @@
# Basic
- type: flavor
id: CP14Metallic
flavorType: Base
description: cp14-flavor-base-metallic
- type: flavor
id: CP14Invigorating
flavorType: Base
description: cp14-flavor-base-invigorating
# Complex
- type: flavor
id: CP14Water
flavorType: Complex
description: cp14-flavor-complex-water

View File

@@ -0,0 +1,23 @@
- type: guideEntry
crystallPunkAllowed: true
id: CP14_EN_Alchemy
name: cp14-guide-entry-alchemy
text: "/ServerInfo/_CP14/Guidebook_EN/Alchemy.xml"
children:
- CP14_EN_BasicAlchemy
- CP14_EN_Biological
filterEnabled: True
- type: guideEntry
crystallPunkAllowed: true
id: CP14_EN_BasicAlchemy
name: cp14-guide-entry-basic-alchemy
text: "/ServerInfo/_CP14/Guidebook_EN/AlchemyTabs/BasicAlchemy.xml"
filterEnabled: True
- type: guideEntry
crystallPunkAllowed: true
id: CP14_EN_Biological
name: cp14-guide-entry-biological
text: "/ServerInfo/_CP14/Guidebook_EN/AlchemyTabs/Biological.xml"
filterEnabled: True

View File

@@ -0,0 +1,23 @@
- type: guideEntry
crystallPunkAllowed: true
id: CP14_RU_Alchemy
name: cp14-guide-entry-alchemy
text: "/ServerInfo/_CP14/Guidebook_RU/Alchemy.xml"
children:
- CP14_RU_BasicAlchemy
- CP14_RU_Biological
filterEnabled: True
- type: guideEntry
crystallPunkAllowed: true
id: CP14_RU_BasicAlchemy
name: cp14-guide-entry-basic-alchemy
text: "/ServerInfo/_CP14/Guidebook_RU/AlchemyTabs/BasicAlchemy.xml"
filterEnabled: True
- type: guideEntry
crystallPunkAllowed: true
id: CP14_RU_Biological
name: cp14-guide-entry-biological
text: "/ServerInfo/_CP14/Guidebook_RU/AlchemyTabs/Biological.xml"
filterEnabled: True

View File

@@ -0,0 +1,15 @@
- type: guideEntry
crystallPunkAllowed: true
id: CP14_EN
name: cp14-guide-entry-english
text: "/ServerInfo/_CP14/Guidebook_EN/Welcome.xml"
children:
- CP14_EN_Alchemy
- type: guideEntry
crystallPunkAllowed: true
id: CP14_RU
name: cp14-guide-entry-russian
text: "/ServerInfo/_CP14/Guidebook_RU/Welcome.xml"
children:
- CP14_RU_Alchemy

View File

@@ -0,0 +1,7 @@
- type: reagent
parent: Water
id: CP14Water
name: cp14-reagent-name-water
desc: cp14-reagent-desc-water
flavor: CP14Water
color: "#75b1f0"

View File

@@ -0,0 +1,65 @@
# 13-1 rule
# There should be 12 basic alchemical extracts, and 1 forbidden one, for antagonists only
# 1) Vital extract
# 2) Death extract
# 3) Fire extract
# 4) Ice extract
# 5) Light extract
# 6) Void/Dark extract
# 7) Air extract
# 8) Earth extract
# 9) Lightning extract
# 10)
# 11)
# 12)
# 13)
- type: reagent
id: CP14VitalExtract
group: CP14BasicAlchemy
name: cp14-reagent-name-vital-extract
desc: cp14-reagent-desc-vital-extract
flavor: CP14Invigorating
color: "#db2a2a"
physicalDesc: cp14-reagent-physical-desc-scarlet
footstepSound:
collection: FootstepBlood
params:
volume: 6
metabolisms:
Medicine:
effects:
- !type:HealthChange
conditions:
- !type:ReagentThreshold
min: 0
max: 7
damage:
groups:
Burn: -0.1
Toxin: -0.1
Brute: -0.1
- !type:HealthChange
conditions:
- !type:ReagentThreshold
min: 7
damage:
groups:
Burn: -0.2
Toxin: -0.2
Brute: -0.2
types:
Cellular: 0.25
- !type:PopupMessage
conditions:
- !type:ReagentThreshold
min: 10
visualType: Medium
messages:
- cp14-reagent-vital-extract-feeling-1
- cp14-reagent-vital-extract-feeling-2
- cp14-reagent-vital-extract-feeling-3
- cp14-reagent-vital-extract-feeling-4
- cp14-reagent-vital-extract-feeling-5
type: Local
probability: 0.05

View File

@@ -0,0 +1,64 @@
- type: reagent
id: CP14Blood
group: CP14Biological
name: cp14-reagent-name-blood
desc: cp14-reagent-desc-blood
flavor: CP14Metallic
color: "#800000"
recognizable: true
physicalDesc: cp14-reagent-physical-desc-ferrous
slippery: false
footstepSound:
collection: FootstepBlood
params:
volume: 6
# metabolisms:
# Drink:
# effects:
# - !type:SatiateThirst
# factor: 1.5
# conditions:
# - !type:OrganType
# type: Human
# shouldHave: false
# Food:
# effects:
# - !type:AdjustReagent
# reagent: UncookedAnimalProteins
# amount: 0.5
# Medicine:
# effects:
# - !type:HealthChange
# conditions:
# - !type:OrganType
# type: Bloodsucker
# damage:
# groups:
# Brute: -3
# Burn: -1.25
- type: reagent
id: CP14BloodGrassSap
group: CP14Biological
name: cp14-reagent-name-bloodgrasssap
desc: cp14-reagent-desc-bloodgrasssap
flavor: CP14Metallic
color: "#5c1f0a"
physicalDesc: cp14-reagent-physical-desc-ferrous
slippery: false
footstepSound:
collection: FootstepBlood
params:
volume: 6
metabolisms:
Food:
effects:
- !type:SatiateHunger
factor: 0.5
Medicine:
effects:
- !type:HealthChange
damage:
types:
Poison: 0.25

View File

@@ -0,0 +1,23 @@
- type: reaction
id: CP14VitalExtract
minTemp: 350
reactants:
CP14Blood:
amount: 1
CP14BloodGrassSap:
amount: 2
products:
CP14VitalExtract: 3
- type: reaction
id: CP14VitalExtractOverheating
minTemp: 450
reactants:
CP14VitalExtract:
amount: 1
effects:
- !type:AreaReactionEffect
duration: 20
prototypeId: CP14MistVitalExtract
sound:
path: /Audio/Effects/smoke.ogg