mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2025-12-15 20:52:07 +00:00
Adding vox reagents, removing Vox Delight.
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
68
code/modules/reagents/reactions/instant/vox.dm
Normal file
68
code/modules/reagents/reactions/instant/vox.dm
Normal 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
|
||||
@@ -263,4 +263,3 @@
|
||||
..()
|
||||
if(istype(L))
|
||||
L.adjust_fire_stacks(amount / 10) // Splashing people with welding fuel to make them easy to ignite!
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
106
code/modules/reagents/reagents/vox.dm
Normal file
106
code/modules/reagents/reagents/vox.dm
Normal 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 |
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user