Adding vox reagents, removing Vox Delight.

This commit is contained in:
MistakeNot4892
2022-11-09 22:12:59 +11:00
parent d6419bd9c0
commit 9fbb40e1e8
11 changed files with 228 additions and 30 deletions

View File

@@ -7,6 +7,21 @@
hierarchy_type = /decl/hierarchy/outfit/vox
flags = OUTFIT_HAS_BACKPACK
var/list/consumables = list(
/obj/item/reagent_containers/food/drinks/flask/vox/protoslurry,
/obj/item/reagent_containers/food/drinks/flask/vox/repairgel,
/obj/item/reagent_containers/food/drinks/flask/vox/riaak
)
/decl/hierarchy/outfit/vox/equip(mob/living/carbon/human/H, rank, assignment)
. = ..()
if(istype(H) && length(consumables))
for(var/consumable in consumables)
var/thing = new consumable
if(!H.equip_to_storage(thing))
qdel(thing)
break
/decl/hierarchy/outfit/vox/survivor
name = "Vox Survivor"
belt = /obj/item/gun/launcher/spikethrower/small

View File

@@ -419,3 +419,38 @@
icon_state = "vacuumflask"
volume = 60
center_of_mass = list("x"=15, "y"=4)
// Vox flasks.
/obj/item/reagent_containers/food/drinks/flask/vox
name = "vox canister"
desc = "A stubby airtight canister made from hammered plates of blue-green alloy."
icon_state = "voxflask"
volume = 30
var/initial_reagents
/obj/item/reagent_containers/food/drinks/flask/vox/Initialize()
. = ..()
var/largest_reagent
for(var/rid in initial_reagents)
var/amt = initial_reagents[rid]
reagents.add_reagent(rid, amt)
if(!largest_reagent || amt > initial_reagents[largest_reagent])
largest_reagent = rid
if(largest_reagent)
for(var/datum/reagent/R in reagents.reagent_list)
if(R.id == largest_reagent)
name = "[name] ([R.name])"
break
/obj/item/reagent_containers/food/drinks/flask/vox/protoslurry
initial_reagents = list("voxslurry" = 30)
/obj/item/reagent_containers/food/drinks/flask/vox/repairgel
initial_reagents = list("voxmeds" = 30)
/obj/item/reagent_containers/food/drinks/flask/vox/riaak
initial_reagents = list("voxbooze" = 30)
// This is mainly there for debugging as there's no other way to get it atm.
/obj/item/reagent_containers/food/drinks/flask/vox/alkahest
initial_reagents = list("voxenzyme" = 30)

View File

@@ -122,7 +122,7 @@ var/global/list/lunchables_ethanol_reagents_ = list(/datum/reagent/ethanol/acid_
/datum/reagent/ethanol/pwine,
/datum/reagent/ethanol/threemileisland,
/datum/reagent/ethanol/toxins_special,
/datum/reagent/ethanol/voxdelight,
/datum/reagent/ethanol/riaaak,
/datum/reagent/ethanol/soemmerfire,
/datum/reagent/ethanol/slimeshot)

View File

@@ -125,4 +125,4 @@
//obtains any special data that will be provided to the reaction products
//this is called just before reactants are removed.
/decl/chemical_reaction/proc/send_data(var/datum/reagents/holder, var/reaction_limit)
return null
return null

View File

@@ -997,13 +997,6 @@
required_reagents = list("tonic" = 1, "holywater" = 1, "honey" = 1)
result_amount = 3
/decl/chemical_reaction/instant/drinks/voxdelight
name = "Vox's Delight"
id = "voxdelight"
result = "voxdelight"
required_reagents = list("phoron" = 3, "fuel" = 1, "water" = 1)
result_amount = 4
/decl/chemical_reaction/instant/drinks/screamingviking
name = "Screaming Viking"
id = "screamingviking"

View File

@@ -0,0 +1,68 @@
/decl/chemical_reaction/instant/vox_protoslurry
name = "Vox Protoslurry"
id = "voxslurry"
result = "protoslurry"
result_amount = 4
required_reagents = list(
"iron" = 1,
"carbon" = 1,
"protein" = 2
)
catalysts = list("voxenzyme" = 5)
/decl/chemical_reaction/instant/vox_medication
name = "Vox Medication"
id = "vox_medication"
result = "voxmeds"
result_amount = 2
required_reagents = list(
"voxslurry" = 2,
"protein" = 2,
"silicon" = 1
)
/decl/chemical_reaction/instant/vox_dissolve
result_amount = 1
catalysts = list("voxenzyme" = 1)
/decl/chemical_reaction/instant/vox_dissolve/egg
name = "Vox Egg Dissolution"
id = "vox_dissolve_egg"
result = "protein"
required_reagents = list("egg" = 1)
/decl/chemical_reaction/instant/vox_dissolve/woodpulp
name = "Vox Wood Pulp Dissolution"
id = "vox_dissolve_woodpulp"
result = "carbon"
required_reagents = list("woodpulp" = 1)
/decl/chemical_reaction/instant/vox_dissolve/plasticide
name = "Vox Plasticide Dissolution"
id = "vox_dissolve_plasticide"
result = "carbon"
required_reagents = list("plasticide" = 1)
/decl/chemical_reaction/instant/vox_dissolve/blood
name = "Vox Blood Dissolution"
id = "vox_dissolve_blood"
result = "iron"
result_amount = 0.5
required_reagents = list("blood" = 1)
/decl/chemical_reaction/instant/vox_dissolve/blood/on_reaction(var/datum/reagents/holder, var/created_volume)
. = ..()
if(created_volume)
holder.add_reagent("protein", created_volume)
/decl/chemical_reaction/instant/vox_booze
name = "Riaaak"
id = "voxbooze"
result = "voxbooze"
required_reagents = list(
"voxslurry" = 5,
"fuel" = 5,
"hydrogen" = 5
)
catalysts = list("voxenzyme" = 5)
result_amount = 15

View File

@@ -263,4 +263,3 @@
..()
if(istype(L))
L.adjust_fire_stacks(amount / 10) // Splashing people with welding fuel to make them easy to ignite!

View File

@@ -4031,26 +4031,6 @@
allergen_type = ALLERGEN_GRAINS|ALLERGEN_STIMULANT //Made from whiskey(grains), cola (caffeine) and vodka(grains)
/datum/reagent/ethanol/voxdelight
name = "Vox's Delight"
id = "voxdelight"
description = "A dangerous combination of all things flammable. Why would you drink this?"
taste_description = "corrosive death"
color = "#7c003a" // rgb(124, 0, 58)
strength = 10
glass_name = "Vox's Delight"
glass_desc = "Not recommended if you enjoy having organs."
/datum/reagent/drink/voxdelight/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
..()
if(alien == IS_DIONA)
return
if(alien == IS_VOX)
M.adjustToxLoss(-0.5 * removed)
return
M.adjustToxLoss(3 * removed)
/datum/reagent/ethanol/screamingviking
name = "Screaming Viking"
id = "screamingviking"

View File

@@ -0,0 +1,106 @@
// Solvent - used in vox chemistry and stomachs.
/datum/reagent/acid/voxenzyme
name = "alkahest"
id = "voxenzyme"
description = "A seething slurry of pseudo-living proteins, acids and enzymes, utterly alien in composition and capable of dissolving almost anything."
taste_description = "salt and burning"
reagent_state = LIQUID
color = COLOR_CYAN
power = 12
meltdose = 1
scannable = FALSE
// Vox slurry - used to fuel machines, feed vox and gear, and as an ingredient in the biofoundry
/datum/reagent/toxin/voxslurry
name = "protoslurry"
id = "voxslurry"
taste_description = "coppery slime"
description = "A complex slurry of lipids, proteins, metal particulate and long polymer chains. Ubiquitous to vox-inhabited stations and equipment."
strength = 6
scannable = FALSE
/datum/reagent/toxin/voxslurry/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
if(alien != IS_VOX)
return ..()
M.adjust_nutrition(12 * removed)
M.heal_organ_damage(0.5 * removed, 0.5 * removed)
M.add_chemical_effect(CE_BLOODRESTORE, 4 * removed)
/datum/reagent/toxin/voxslurry/affect_touch(var/mob/living/carbon/M, var/alien, var/removed)
affect_blood(M, alien, removed)
// General-purpose vox medication
/datum/reagent/toxin/voxmeds
name = "repair gel"
id = "voxmeds"
taste_description = "fizzing sweetness"
description = "A complex serum composed of vox-manufactured nanomachines, complex protein chains and microscopic bundles of metallic fibers."
strength = 8
scannable = FALSE
/datum/reagent/toxin/voxmeds/affect_touch(var/mob/living/carbon/M, var/alien, var/removed)
affect_blood(M, alien, removed)
/datum/reagent/toxin/voxmeds/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
if(alien != IS_VOX)
// Mostly copied from mutagen.
. = ..()
if(!M.dna)
return
if(prob(removed * 10))
randmuti(M)
if(prob(98))
randmutb(M)
else
randmutg(M)
domutcheck(M, null)
M.UpdateAppearance()
if(prob(removed * 40))
randmuti(M)
to_chat(M, SPAN_WARNING("You feel odd!"))
M.apply_effect(10 * removed, IRRADIATE, 0)
return
M.adjustOxyLoss(-3 * removed)
M.heal_organ_damage(1.5 * removed, 1.5 * removed)
M.adjustToxLoss(-1.5 * removed)
// Copied from peridaxon for the time being.
var/mob/living/carbon/human/H = M
for(var/obj/item/organ/I in H.internal_organs)
if(I.robotic >= ORGAN_ROBOT)
continue
if(I.damage > 0)
I.damage = max(I.damage - removed, 0)
H.Confuse(5)
if(I.damage <= 5 && I.organ_tag == O_EYES)
H.sdisabilities &= ~BLIND
/datum/reagent/ethanol/riaaak // Vox moonshine
name = "riaaak"
id = "voxbooze"
description = "Vox clades brew this noxious concoction in half-empty fuel tanks using whatever dregs come to hand."
taste_description = "burning, acrid foulness"
taste_mult = 2.5
color = "#22aa88"
strength = 7
glass_name = "riaaak"
glass_desc = "An oily green brew that will knock even a Vox on its tail."
/datum/reagent/ethanol/riaaak/affect_ingest(mob/living/carbon/M, alien, removed)
. = ..()
if(alien != IS_VOX && alien != IS_DIONA)
handle_nonvox_effects(M, removed, CHEM_INGEST)
/datum/reagent/ethanol/riaaak/affect_blood(mob/living/carbon/M, alien, removed)
. = ..()
if(alien != IS_VOX && alien != IS_DIONA)
handle_nonvox_effects(M, removed, CHEM_BLOOD)
/datum/reagent/ethanol/riaaak/proc/handle_nonvox_effects(var/mob/living/carbon/M, var/removed, var/method)
// todo: eye damage, stomach damage, poisoning?
var/dam = removed * 5 * M.species.chem_strength_tox // arbitrary
if(dam)
M.adjustToxLoss(dam)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

After

Width:  |  Height:  |  Size: 98 KiB

View File

@@ -2953,6 +2953,7 @@
#include "code\modules\reagents\reactions\instant\drinks.dm"
#include "code\modules\reagents\reactions\instant\food.dm"
#include "code\modules\reagents\reactions\instant\instant.dm"
#include "code\modules\reagents\reactions\instant\vox.dm"
#include "code\modules\reagents\reagent_containers\_reagent_containers.dm"
#include "code\modules\reagents\reagent_containers\blood_pack.dm"
#include "code\modules\reagents\reagent_containers\borghypo.dm"
@@ -2974,6 +2975,7 @@
#include "code\modules\reagents\reagents\modifiers.dm"
#include "code\modules\reagents\reagents\other.dm"
#include "code\modules\reagents\reagents\toxins.dm"
#include "code\modules\reagents\reagents\vox.dm"
#include "code\modules\recycling\conveyor2.dm"
#include "code\modules\recycling\disposal-construction.dm"
#include "code\modules\recycling\disposal.dm"