Skip to content

Commit

Permalink
Adding vox reagents, removing Vox Delight.
Browse files Browse the repository at this point in the history
  • Loading branch information
MistakeNot4892 committed Nov 11, 2022
1 parent d6419bd commit 9fbb40e
Show file tree
Hide file tree
Showing 11 changed files with 228 additions and 30 deletions.
15 changes: 15 additions & 0 deletions code/datums/outfits/vox.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
35 changes: 35 additions & 0 deletions code/modules/food/food/drinks.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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)
2 changes: 1 addition & 1 deletion code/modules/food/food/lunch.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Expand Down
2 changes: 1 addition & 1 deletion code/modules/reagents/reactions/_reactions.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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
7 changes: 0 additions & 7 deletions code/modules/reagents/reactions/instant/drinks.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
68 changes: 68 additions & 0 deletions code/modules/reagents/reactions/instant/vox.dm
Original file line number Diff line number Diff line change
@@ -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
1 change: 0 additions & 1 deletion code/modules/reagents/reagents/core.dm
Original file line number Diff line number Diff line change
Expand Up @@ -263,4 +263,3 @@
..()
if(istype(L))
L.adjust_fire_stacks(amount / 10) // Splashing people with welding fuel to make them easy to ignite!

20 changes: 0 additions & 20 deletions code/modules/reagents/reagents/food_drinks.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
106 changes: 106 additions & 0 deletions code/modules/reagents/reagents/vox.dm
Original file line number Diff line number Diff line change
@@ -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 modified icons/obj/drinks.dmi
Binary file not shown.
2 changes: 2 additions & 0 deletions polaris.dme
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand All @@ -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"
Expand Down

0 comments on commit 9fbb40e

Please sign in to comment.