mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-13 03:33:21 +00:00
Merge branch 'master' into protean-rework
This commit is contained in:
19
modular_chomp/code/modules/clothing/clothing.dm
Normal file
19
modular_chomp/code/modules/clothing/clothing.dm
Normal file
@@ -0,0 +1,19 @@
|
||||
/obj/item/clothing/shoes/MouseDrop_T(mob/living/target, mob/living/user)
|
||||
if(!istype(user)) return ..() // If the user passed in isn't a living mob, exit
|
||||
if(target != user) return ..() // If the user didn't drag themselves, exit
|
||||
if(user.incapacitated() || user.buckled) return ..() // If user is incapacitated or buckled, exit
|
||||
if(get_holder_of_type(src, /mob/living/carbon/human) == user) return ..() // No jumping into your own equipment
|
||||
if(ishuman(user) && user.get_effective_size() > 0.25) return ..() // Only micro characters
|
||||
|
||||
var/full = 0
|
||||
for(var/mob/M in src)
|
||||
if(istype(M,/mob/living/voice)) //Don't count voices as people!
|
||||
continue
|
||||
full++
|
||||
if(full >= 2)
|
||||
to_chat(user, "<span class='warning'>It doesn't seem like there is room in \the [src]!</span>")
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You crawl into \the [src]!</span>")
|
||||
user.forceMove(src)
|
||||
|
||||
return ..()
|
||||
16
modular_chomp/code/modules/datums/supplypacks/contraband.dm
Normal file
16
modular_chomp/code/modules/datums/supplypacks/contraband.dm
Normal file
@@ -0,0 +1,16 @@
|
||||
/datum/supply_pack/supply/capcrystal
|
||||
name = "Capture Crystal crate"
|
||||
contains = list(/obj/item/capture_crystal)
|
||||
cost = 500
|
||||
containertype = /obj/structure/closet/crate
|
||||
containername = "Capture Crystal crate"
|
||||
contraband = 1
|
||||
|
||||
/datum/supply_pack/supply/chemistrykitbundle
|
||||
name = "gender and size chemistry bundle kit"
|
||||
contains = list(/obj/item/selectable_item/chemistrykit/size = 3,
|
||||
/obj/item/selectable_item/chemistrykit/gender = 3)
|
||||
cost = 100
|
||||
containertype = /obj/structure/closet/crate
|
||||
containername = "gender and size chemistry bundle crate"
|
||||
contraband = 1
|
||||
@@ -0,0 +1,6 @@
|
||||
/datum/supply_pack/eng/engine/rotary_wheel
|
||||
contains = list(/obj/item/weapon/circuitboard/machine/reg_c)
|
||||
name = "c-type rotary electric generator board"
|
||||
containertype = /obj/structure/closet/crate/focalpoint
|
||||
containername = "c-type rotary board crate"
|
||||
access = access_engine
|
||||
18
modular_chomp/code/modules/datums/supplypacks/hydrophonic.dm
Normal file
18
modular_chomp/code/modules/datums/supplypacks/hydrophonic.dm
Normal file
@@ -0,0 +1,18 @@
|
||||
/datum/supply_pack/hydro/teppi
|
||||
name = "Teppi crate"
|
||||
cost = 60 //considering a corgi crate is 50, and you get two fennecs
|
||||
containertype = /obj/structure/largecrate/animal/teppi
|
||||
containername = "Teppi crate"
|
||||
|
||||
/datum/supply_pack/hydro/sheep
|
||||
name = "Sheep crate"
|
||||
cost = 25
|
||||
containertype = /obj/structure/largecrate/animal/sheep
|
||||
containername = "Goat crate"
|
||||
access = access_hydroponics
|
||||
|
||||
/datum/supply_pack/hydro/woofdog
|
||||
name = "Dog crate"
|
||||
cost = 50
|
||||
containertype = /obj/structure/largecrate/animal/woofdog
|
||||
containername = "Dog carrier"
|
||||
@@ -3,4 +3,11 @@
|
||||
contains = list(/obj/item/weapon/backup_implanter = 4)
|
||||
cost = 50
|
||||
containertype = /obj/structure/closet/crate/medical
|
||||
containername = "Spare backup implanters"
|
||||
containername = "Spare backup implanters"
|
||||
|
||||
/datum/supply_pack/med/decrotizer
|
||||
name = "Commercial Denecrotizer "
|
||||
contains = list(/obj/item/device/denecrotizer/medical)
|
||||
cost = 40
|
||||
containertype = /obj/structure/closet/crate/secure
|
||||
containername = "commercial denecrotizer crate"
|
||||
|
||||
7
modular_chomp/code/modules/datums/supplypacks/science.dm
Normal file
7
modular_chomp/code/modules/datums/supplypacks/science.dm
Normal file
@@ -0,0 +1,7 @@
|
||||
/datum/supply_pack/sci/pred_sect
|
||||
name = "EXTREMELY Dangerous Bug"
|
||||
cost = 200
|
||||
containertype = /obj/structure/largecrate/animal/bugsect
|
||||
containername = "EXTREMELY Dangerous Bug crate"
|
||||
contraband = 1
|
||||
access = access_xenobiology
|
||||
296
modular_chomp/code/modules/food/drinkgglass/metaglass.dm
Normal file
296
modular_chomp/code/modules/food/drinkgglass/metaglass.dm
Normal file
@@ -0,0 +1,296 @@
|
||||
//////////////////CHOMP//////////////////////////
|
||||
|
||||
/datum/reagent/ethanol/cloverclub
|
||||
glass_icon_state = "cloverclub"
|
||||
glass_icon_source = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
glass_center_of_mass = list("x"=16, "y"=8)
|
||||
|
||||
/datum/reagent/ethanol/spiderdrink
|
||||
glass_icon_state = "glassofspiders"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/drink/tea/minttea
|
||||
glass_icon_state = "bigteacup"
|
||||
|
||||
/datum/reagent/drink/tea/lemontea
|
||||
glass_icon_state = "bigteacup"
|
||||
|
||||
/datum/reagent/drink/tea/limetea
|
||||
glass_icon_state = "bigteacup"
|
||||
|
||||
/datum/reagent/drink/tea/orangetea
|
||||
glass_icon_state = "bigteacup"
|
||||
|
||||
/datum/reagent/drink/tea/berrytea
|
||||
glass_icon_state = "bigteacup"
|
||||
|
||||
/datum/reagent/drink/tea/cherrytea
|
||||
glass_icon_state = "bigteacup"
|
||||
|
||||
/datum/reagent/drink/tea/watermelontea
|
||||
glass_icon_state = "bigteacup"
|
||||
|
||||
/datum/reagent/drink/bubbleteawatermelon
|
||||
glass_icon_state = "bubbleteawatermelonglass"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
glass_center_of_mass = list("x"=16, "y"=9)
|
||||
|
||||
/datum/reagent/drink/bubbleteastrawberry
|
||||
glass_icon_state = "bubbleteastrawberryglass"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
glass_center_of_mass = list("x"=16, "y"=9)
|
||||
|
||||
/datum/reagent/drink/bubbleteacherry
|
||||
glass_icon_state = "bubbleteacherryglass"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
glass_center_of_mass = list("x"=16, "y"=9)
|
||||
|
||||
/datum/reagent/drink/bubbleteacoffee
|
||||
glass_icon_state = "bubbleteacoffeeglass"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
glass_center_of_mass = list("x"=16, "y"=9)
|
||||
|
||||
/datum/reagent/drink/bubbleteabanana
|
||||
glass_icon_state = "bubbleteabananaglass"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
glass_center_of_mass = list("x"=16, "y"=9)
|
||||
|
||||
/datum/reagent/drink/tea/matcha_latte
|
||||
glass_icon_state = "bigteacup"
|
||||
|
||||
/datum/reagent/drink/horchata
|
||||
glass_icon_state = "horchata"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
glass_center_of_mass = list("x"=16, "y"=7)
|
||||
|
||||
/datum/reagent/toxin/bluetrain
|
||||
glass_icon_state = "bluetrain"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
glass_center_of_mass = list("x"=16, "y"=8)
|
||||
|
||||
/datum/reagent/drink/lovepotion
|
||||
glass_icon_state = "lovepotion"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/drink/lowpower
|
||||
glass_icon_state = "lowpower"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/ethanol/coffee/jackbrew
|
||||
glass_icon_state = "jackbrew"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/ethanol/bookwyrm
|
||||
glass_icon_state = "bookwyrm"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/drink/highpower
|
||||
glass_icon_state = "highpower"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/ethanol/flapper
|
||||
glass_icon_state = "flapper"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/toxin/oilslide
|
||||
glass_icon_state = "oilslide"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/ethanol/sitonmyface
|
||||
glass_icon_state = "sitonmyface"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/ethanol/hachi
|
||||
glass_icon_state = "hachi"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/ethanol/mojito
|
||||
glass_icon_state = "mojito"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/slimedrink
|
||||
glass_icon_state = "slimedrink"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/ethanol/arachnidslammer
|
||||
glass_icon_state = "arachnidslammer"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/drink/pilk
|
||||
glass_icon_state = "whiskeyglass"
|
||||
|
||||
//Visual Updates of existing drinks
|
||||
|
||||
/datum/reagent/ethanol/gintonic
|
||||
glass_icon_state = "gintonicglass"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/ethanol/coffee/kahlua
|
||||
glass_icon_state = "kahluaglass"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/ethanol/wine
|
||||
glass_icon_state = "wineglass"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/ethanol/cognac
|
||||
glass_icon_state = "cognacglass"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/ethanol/cuba_libre
|
||||
glass_icon_state = "cubalibreglass"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/ethanol/manly_dorf
|
||||
glass_icon_state = "manlydorfglass"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/ethanol/tequilla_sunrise
|
||||
glass_icon_state = "tequilasunriseglass"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/ethanol/screwdrivercocktail
|
||||
glass_icon_state = "screwdriverglass"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/ethanol/bloody_mary
|
||||
glass_icon_state = "bloodymaryglass"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/ethanol/coffee/brave_bull
|
||||
glass_icon_state = "bravebullglass"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/drink/doctor_delight
|
||||
glass_icon_state = "doctorsdelightglass"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/drink/soda/space_up
|
||||
glass_icon_state = "space-up_glass"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/ethanol/vodkatonic
|
||||
glass_icon_state = "vodkatonicglass"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/ethanol/manhattan
|
||||
glass_icon_state = "manhattanglass"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/ethanol/manhattan_proj
|
||||
glass_icon_state = "proj_manhattanglass"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/ethanol/ginfizz
|
||||
glass_icon_state = "ginfizzglass"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/ethanol/longislandicedtea
|
||||
glass_icon_state = "longislandicedteaglass"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/ethanol/threemileisland
|
||||
glass_icon_state = "threemileislandglass"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/ethanol/margarita
|
||||
glass_icon_state = "margaritaglass"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/drink/soda/spacemountainwind
|
||||
glass_icon_state = "Space_mountain_wind_glass"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/ethanol/thirteenloko
|
||||
glass_icon_state = "thirteen_loko_glass"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/drink/soda/dr_gibb
|
||||
glass_icon_state = "dr_gibb_glass"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/adminordrazine
|
||||
glass_icon_state = "golden_cup"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/ethanol/singulo
|
||||
glass_icon_state = "singulo"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/ethanol/silencer
|
||||
glass_icon_state = "silencerglass"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/ethanol/snowwhite
|
||||
glass_icon_state = "snowwhite"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/ethanol/antifreeze
|
||||
glass_icon_state = "antifreeze"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/ethanol/barefoot
|
||||
glass_icon_state = "b&p"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/ethanol/booger
|
||||
glass_icon_state = "booger"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/ethanol/devilskiss
|
||||
glass_icon_state = "devilskiss"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/ethanol/syndicatebomb
|
||||
glass_icon_state = "syndicatebomb"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/ethanol/narsour
|
||||
glass_icon_state = "narsour"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/ethanol/cogchamp
|
||||
glass_icon_state = "cogchamp"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/ethanol/alliescocktail
|
||||
glass_icon_state = "alliescocktail"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/ethanol/erikasurprise
|
||||
glass_icon_state = "erikasurprise"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
//Ported drinks
|
||||
|
||||
/datum/reagent/ethanol/fetching_fizz
|
||||
glass_icon_state = "fetching_fizz"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/ethanol/hearty_punch
|
||||
glass_icon_state = "hearty_punch"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/ethanol/squirt_cider
|
||||
glass_icon_state = "squirt_cider"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/ethanol/fringe_weaver
|
||||
glass_icon_state = "fringe_weaver"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/ethanol/crevice_spike
|
||||
glass_icon_state = "crevice_spike"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/ethanol/duplex
|
||||
glass_icon_state = "duplex"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/ethanol/mauna_loa
|
||||
glass_icon_state = "mauna_loa"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
|
||||
/datum/reagent/ethanol/hiveminderaser
|
||||
glass_icon_state = "hiveminderaser"
|
||||
glass_icon_file = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
10
modular_chomp/code/modules/food/food/drinks/bottle.dm
Normal file
10
modular_chomp/code/modules/food/food/drinks/bottle.dm
Normal file
@@ -0,0 +1,10 @@
|
||||
/obj/item/weapon/reagent_containers/food/drinks/bottle/snaps
|
||||
name = "Akvavit"
|
||||
desc = "This could go well with lunch."
|
||||
icon = 'modular_chomp/icons/obj/drinks.dmi'
|
||||
icon_state = "snapsbottle"
|
||||
center_of_mass = list("x"=17, "y"=3)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/bottle/snaps/Initialize()
|
||||
. = ..()
|
||||
reagents.add_reagent("snaps", 100)
|
||||
125
modular_chomp/code/modules/mining/shelter_atoms_ch.dm
Normal file
125
modular_chomp/code/modules/mining/shelter_atoms_ch.dm
Normal file
@@ -0,0 +1,125 @@
|
||||
// Unique areas were requested for each superpose map for future use. The plain superpose area is for future varedits to all superpose submaps.
|
||||
/area/survivalpod/superpose
|
||||
|
||||
/area/survivalpod/superpose/CrashedInfestedShip
|
||||
|
||||
/area/survivalpod/superpose/CrashedQurantineShip
|
||||
|
||||
/area/survivalpod/superpose/CultShip
|
||||
|
||||
/area/survivalpod/superpose/DemonPool
|
||||
|
||||
/area/survivalpod/superpose/Dinner
|
||||
|
||||
/area/survivalpod/superpose/ExplorerHome
|
||||
|
||||
/area/survivalpod/superpose/Farm
|
||||
|
||||
/area/survivalpod/superpose/FieldLab
|
||||
|
||||
/area/survivalpod/superpose/HellCave
|
||||
|
||||
/area/survivalpod/superpose/HydroCave
|
||||
|
||||
/area/survivalpod/superpose/LargeAlienShip
|
||||
|
||||
/area/survivalpod/superpose/LoneHome
|
||||
|
||||
/area/survivalpod/superpose/MechFabShip
|
||||
|
||||
/area/survivalpod/superpose/MechStorageFab
|
||||
|
||||
/area/survivalpod/superpose/MercShip
|
||||
|
||||
/area/survivalpod/superpose/MethLab
|
||||
|
||||
/area/survivalpod/superpose/OldHotel
|
||||
|
||||
/area/survivalpod/superpose/ScienceShip
|
||||
|
||||
/area/survivalpod/superpose/SmallCombatShip
|
||||
|
||||
/area/survivalpod/superpose/SurvivalBarracks
|
||||
|
||||
/area/survivalpod/superpose/SurvivalCargo
|
||||
|
||||
/area/survivalpod/superpose/SurvivalDIY_11x11
|
||||
|
||||
/area/survivalpod/superpose/SurvivalDIY_7x7
|
||||
|
||||
/area/survivalpod/superpose/SurvivalDIY_9x9
|
||||
|
||||
/area/survivalpod/superpose/SurvivalDinner
|
||||
|
||||
/area/survivalpod/superpose/SurvivalEngineering
|
||||
|
||||
/area/survivalpod/superpose/SurvivalHome
|
||||
|
||||
/area/survivalpod/superpose/SurvivalHydro
|
||||
|
||||
/area/survivalpod/superpose/SurvivalJanitor
|
||||
|
||||
/area/survivalpod/superpose/SurvivalLeisure
|
||||
|
||||
/area/survivalpod/superpose/SurvivalLuxuryBar
|
||||
|
||||
/area/survivalpod/superpose/SurvivalLuxuryHome
|
||||
|
||||
/area/survivalpod/superpose/SurvivalMedical
|
||||
|
||||
/area/survivalpod/superpose/SurvivalPool
|
||||
|
||||
/area/survivalpod/superpose/SurvivalQuarters
|
||||
|
||||
/area/survivalpod/superpose/SurvivalScience
|
||||
|
||||
/area/survivalpod/superpose/SurvivalSecurity
|
||||
|
||||
/area/survivalpod/superpose/TinyCombatShip
|
||||
|
||||
/area/survivalpod/superpose/TradingShip
|
||||
|
||||
/area/survivalpod/superpose/WoodenCamp
|
||||
|
||||
/obj/item/device/survivalcapsule/superpose
|
||||
name = "superposed surfluid shelter capsule"
|
||||
desc = "A proprietary hyperstructure of many three-dimensional spaces superposed around a supermatter nano crystal; use a pen to reach the reset button. There's a license for use printed on the bottom."
|
||||
description_info = "The capsule contains pockets of compressed space in a super position stabilized by a miniscule supermatter crystal. \
|
||||
NanoTrasen stresses the safety of this model over previous prototypes but assumes no liability for sub-kiloton explosions."
|
||||
template_id = null
|
||||
var/list/template_ids = list()
|
||||
var/pod_initialized = FALSE
|
||||
|
||||
// Override since the parent proc has a sanity check to delete the capsule if no template is found, which doesn't exactly work with this item considering examining calls this proc.
|
||||
/obj/item/device/survivalcapsule/superpose/get_template()
|
||||
if(template)
|
||||
return
|
||||
template = SSmapping.shelter_templates[template_id]
|
||||
if(!template)
|
||||
template = null
|
||||
|
||||
/obj/item/device/survivalcapsule/superpose/attack_self()
|
||||
if(!pod_initialized) // Populate list after round start as map templates might not exist when this item is created.
|
||||
for(var/datum/map_template/shelter/superpose/shelter_type as anything in subtypesof(/datum/map_template/shelter))
|
||||
if(!(initial(shelter_type.mappath)) || !(initial(shelter_type.superpose))) // Limits map templates to those marked for the superpose capsule.
|
||||
continue
|
||||
template_ids += initial(shelter_type.shelter_id)
|
||||
pod_initialized = TRUE
|
||||
if(!template_id)
|
||||
var/answer = tgui_input_list(usr, "Which template would you like to load?","Available Templates", template_ids)
|
||||
if(!answer)
|
||||
return
|
||||
else
|
||||
src.template_id = answer
|
||||
return // Return here or the pod will activate as soon as a selection is made.
|
||||
|
||||
// Now we call super to run the rest of the parent proc since the choice has been handled.
|
||||
..()
|
||||
|
||||
// Allows resetting the capsule if the wrong template is chosen.
|
||||
/obj/item/device/survivalcapsule/superpose/attackby(obj/item/W, mob/user)
|
||||
if(istype(W, /obj/item/weapon/pen) && !used)
|
||||
template_id = null
|
||||
template = null // Important to reset both, otherwise the template cannot be reset once the pod has been deployed.
|
||||
to_chat(user, "<span class='notice'>You reset the pod's selection.</span>")
|
||||
..()
|
||||
249
modular_chomp/code/modules/mining/shelters_ch.dm
Normal file
249
modular_chomp/code/modules/mining/shelters_ch.dm
Normal file
@@ -0,0 +1,249 @@
|
||||
/datum/map_template/shelter
|
||||
var/superpose = FALSE
|
||||
|
||||
// Subtype to mark maps for use with the superpose capsule. This is mostly to prevent automatic additions from upstream changes.
|
||||
/datum/map_template/shelter/superpose
|
||||
superpose = TRUE
|
||||
name = "ERROR: string 'name' cannot be null!"
|
||||
description = "ERROR: string 'description' cannot be null!"
|
||||
mappath = null
|
||||
|
||||
/datum/map_template/shelter/superpose/CrashedInfestedShip
|
||||
shelter_id = "CrashedInfestedShip"
|
||||
mappath = "modular_chomp/maps/submaps/shelters/CrashedInfestedShip-60x29.dmm"
|
||||
name = "Crashed infested ship."
|
||||
description = "A large alien ship that is heavily damaged, there is signs of xeno infestation."
|
||||
|
||||
/datum/map_template/shelter/superpose/CrashedQurantineShip
|
||||
shelter_id = "CrashedQurantineShip"
|
||||
mappath = "modular_chomp/maps/submaps/shelters/CrashedQurantineShip-25x25.dmm"
|
||||
name = "Crashed Qurantine Ship."
|
||||
description = "A white medical ship that is heavily damaged, there is signs of a viral outbreak."
|
||||
|
||||
/datum/map_template/shelter/superpose/CultShip
|
||||
shelter_id = "CultShip"
|
||||
mappath = "modular_chomp/maps/submaps/shelters/CultShip-28x17.dmm"
|
||||
name = "Cultist ship."
|
||||
description = "A medium size cult themed ship, it has some basic cultist gear."
|
||||
|
||||
/datum/map_template/shelter/superpose/DemonPool
|
||||
shelter_id = "DemonPool"
|
||||
mappath = "modular_chomp/maps/submaps/shelters/DemonPool-21x21.dmm"
|
||||
name = "Demon pool."
|
||||
description = "A large redspace corruption with lava, flesh tiles and a small cultist room in the middle."
|
||||
|
||||
/datum/map_template/shelter/superpose/Dinner
|
||||
shelter_id = "Dinner"
|
||||
mappath = "modular_chomp/maps/submaps/shelters/Dinner-25x25.dmm"
|
||||
name = "Local diner."
|
||||
description = "A medium size diner with all kitchen appliances and food."
|
||||
|
||||
/datum/map_template/shelter/superpose/ExplorerHome
|
||||
shelter_id = "ExplorerHome"
|
||||
mappath = "modular_chomp/maps/submaps/shelters/ExplorerHome-17x20.dmm"
|
||||
name = "Explorer home."
|
||||
description = "A small wooden home with various hunting prizes and the basics to survive in the wilderness."
|
||||
|
||||
/datum/map_template/shelter/superpose/Farm
|
||||
shelter_id = "Farm"
|
||||
mappath = "modular_chomp/maps/submaps/shelters/Farm-32x32.dmm"
|
||||
name = "Farm."
|
||||
description = "A medium size farm with all the needs to grow food!"
|
||||
|
||||
/datum/map_template/shelter/superpose/FieldLab
|
||||
shelter_id = "FieldLab"
|
||||
mappath = "modular_chomp/maps/submaps/shelters/FieldLab-20x20.dmm"
|
||||
name = "Field laboratory."
|
||||
description = "A compact laboratory with various science machines and equipment."
|
||||
|
||||
/datum/map_template/shelter/superpose/HellCave
|
||||
shelter_id = "HellCave"
|
||||
mappath = "modular_chomp/maps/submaps/shelters/HellCave-40x25.dmm"
|
||||
name = "Hell cave."
|
||||
description = "A small cave corrupted by redspace, filled with various cultist items."
|
||||
|
||||
/datum/map_template/shelter/superpose/HydroCave
|
||||
shelter_id = "HydroCave"
|
||||
mappath = "modular_chomp/maps/submaps/shelters/HydroCave-40x40.dmm"
|
||||
name = "Hydroponics cave."
|
||||
description = "A burried hydroponics facility with various living quarters needs and equipment."
|
||||
|
||||
/datum/map_template/shelter/superpose/LargeAlienShip
|
||||
shelter_id = "LargeAlienShip"
|
||||
mappath = "modular_chomp/maps/submaps/shelters/LargeAlienShip-60x29.dmm"
|
||||
name = "Large alien ship."
|
||||
description = "A large alien ship filled with various alien machines and items."
|
||||
|
||||
/datum/map_template/shelter/superpose/LoneHome
|
||||
shelter_id = "LoneHome"
|
||||
mappath = "modular_chomp/maps/submaps/shelters/LoneHome-20x25.dmm"
|
||||
name = "Lonely home."
|
||||
description = "An old very worn down wooden house, with enough materials and tools to refurnish and repair it."
|
||||
|
||||
/datum/map_template/shelter/superpose/MechFabShip
|
||||
shelter_id = "MechFabShip"
|
||||
mappath = "modular_chomp/maps/submaps/shelters/MechFabShip-27x24.dmm"
|
||||
name = "Mech fabrication ship."
|
||||
description = "A medium size ship equiped with mech fabrication machines."
|
||||
|
||||
/datum/map_template/shelter/superpose/MechStorageFab
|
||||
shelter_id = "MechStorageFab"
|
||||
mappath = "modular_chomp/maps/submaps/shelters/MechStorageFab-32x24.dmm"
|
||||
name = "Mech storage facility."
|
||||
description = "An old abandoned mech fabrication facility, most of the facility seems functional."
|
||||
|
||||
/datum/map_template/shelter/superpose/MercShip
|
||||
shelter_id = "MercShip"
|
||||
mappath = "modular_chomp/maps/submaps/shelters/MercShip-60x29.dmm"
|
||||
name = "Mercenary ship."
|
||||
description = "A old mercenery ship filled with various trading goods."
|
||||
|
||||
/datum/map_template/shelter/superpose/MethLab
|
||||
shelter_id = "MethLab"
|
||||
mappath = "modular_chomp/maps/submaps/shelters/MethLab-20x20.dmm"
|
||||
name = "Meth laboratory."
|
||||
description = "A old worn down chemical lab used to produce illegal goods."
|
||||
|
||||
/datum/map_template/shelter/superpose/OldHotel
|
||||
shelter_id = "OldHotel"
|
||||
mappath = "modular_chomp/maps/submaps/shelters/OldHotel-25x25.dmm"
|
||||
name = "Old hotel."
|
||||
description = "An old worn down wooden hotel, heavily damaged but with enough materials to patch it up."
|
||||
|
||||
/datum/map_template/shelter/superpose/ScienceShip
|
||||
shelter_id = "ScienceShip"
|
||||
mappath = "modular_chomp/maps/submaps/shelters/ScienceShip-25x33.dmm"
|
||||
name = "Science ship."
|
||||
description = "An expedition science ship with all the needs to host a small team."
|
||||
|
||||
/datum/map_template/shelter/superpose/SmallCombatShip
|
||||
shelter_id = "SmallCombatShip"
|
||||
mappath = "modular_chomp/maps/submaps/shelters/SmallCombatShip-9x11.dmm"
|
||||
name = "Small combat ship."
|
||||
description = "A small combat ship with the bear minimum needs for survival."
|
||||
|
||||
/datum/map_template/shelter/superpose/SurvivalBarracks
|
||||
shelter_id = "SurvivalBarracks"
|
||||
mappath = "modular_chomp/maps/submaps/shelters/SurvivalBarracks-11x11.dmm"
|
||||
name = "Survival barracks."
|
||||
description = "NT pantented living quarters survival pod, all the needs to host 4 crew-mates."
|
||||
|
||||
/datum/map_template/shelter/superpose/SurvivalCargo
|
||||
shelter_id = "SurvivalCargo"
|
||||
mappath = "modular_chomp/maps/submaps/shelters/SurvivalCargo-11x11.dmm"
|
||||
name = "Survival cargo dep."
|
||||
description = "NT pantented cargo department survival pod, loaded with mining, crates and cargo gear."
|
||||
|
||||
/datum/map_template/shelter/superpose/SurvivalDIY_11x11
|
||||
shelter_id = "SurvivalDIY_11x11"
|
||||
mappath = "modular_chomp/maps/submaps/shelters/SurvivalDIY-11x11.dmm"
|
||||
name = "Survival DIY large."
|
||||
description = "NT pantented Do-it-yourself survival pod, a large inflatable building filled with building materials. It even has a RCD and a cargo vehicle."
|
||||
|
||||
/datum/map_template/shelter/superpose/SurvivalDIY_7x7
|
||||
shelter_id = "SurvivalDIY_7x7"
|
||||
mappath = "modular_chomp/maps/submaps/shelters/SurvivalDIY-7x7.dmm"
|
||||
name = "Survival DIY medium."
|
||||
description = "NT pantented Do-it-yourself survival pod, a medium inflatable building filled with building materials. It even has a RCD and a quad-bike."
|
||||
|
||||
/datum/map_template/shelter/superpose/SurvivalDIY_9x9
|
||||
shelter_id = "SurvivalDIY_9x9"
|
||||
mappath = "modular_chomp/maps/submaps/shelters/SurvivalDIY-9x9.dmm"
|
||||
name = "Survival DIY small."
|
||||
description = "NT pantented Do-it-yourself survival pod, a small inflatable building filled with building materials. It even has a RCD."
|
||||
|
||||
/datum/map_template/shelter/superpose/SurvivalDinner
|
||||
shelter_id = "SurvivalDinner"
|
||||
mappath = "modular_chomp/maps/submaps/shelters/SurvivalDinner-11x11.dmm"
|
||||
name = "Survival mess hall."
|
||||
description = "NT pantented mess hall and kitchen survival pod, it has all a kitchen requires to cook food. Bathroom included!"
|
||||
|
||||
/datum/map_template/shelter/superpose/SurvivalEngineering
|
||||
shelter_id = "SurvivalEngineering"
|
||||
mappath = "modular_chomp/maps/submaps/shelters/SurvivalEngineering-9x9.dmm"
|
||||
name = "Survival engineering dep."
|
||||
description = "NT pantented engineering survival pod, loaded with tools, machines and materials to patch and fix any facility."
|
||||
|
||||
/datum/map_template/shelter/superpose/SurvivalHome
|
||||
shelter_id = "SurvivalHome"
|
||||
mappath = "modular_chomp/maps/submaps/shelters/SurvivalHome-9x9.dmm"
|
||||
name = "Survival home pod."
|
||||
description = "A medium survival pod that can host a small team, has some basic survival gear."
|
||||
|
||||
/datum/map_template/shelter/superpose/SurvivalHydro
|
||||
shelter_id = "SurvivalHydro"
|
||||
mappath = "modular_chomp/maps/submaps/shelters/SurvivalHydro-9x9.dmm"
|
||||
name = "Survival hydroponics bay. "
|
||||
description = "NT pantented hydroponics survival pod, loaded with everything you need to start growing food."
|
||||
|
||||
/datum/map_template/shelter/superpose/SurvivalJanitor
|
||||
shelter_id = "SurvivalJanitor"
|
||||
mappath = "modular_chomp/maps/submaps/shelters/SurvivalJanitor-7x7.dmm"
|
||||
name = "Survival janitor pod."
|
||||
description = "NT pantented janitor survival pod, loaded with enough cleaning supplies to clean any mess."
|
||||
|
||||
/datum/map_template/shelter/superpose/SurvivalLeisure
|
||||
shelter_id = "SurvivalLeisure"
|
||||
mappath = "modular_chomp/maps/submaps/shelters/SurvivalLeisure-9x9.dmm"
|
||||
name = "Survival leisure pod."
|
||||
description = "NT pantented leisure survival pod, loaded with various recreational goods to stave off boredom."
|
||||
|
||||
/datum/map_template/shelter/superpose/SurvivalLuxuryBar
|
||||
shelter_id = "SurvivalLuxuryBar"
|
||||
mappath = "modular_chomp/maps/submaps/shelters/SurvivalLuxuryBar-11x11.dmm"
|
||||
name = "Survival luxury bar."
|
||||
description = "A luxurious bar pod, includes a large selection of liquors, bathroom and even a strip room!"
|
||||
|
||||
/datum/map_template/shelter/superpose/SurvivalLuxuryHome
|
||||
shelter_id = "SurvivalLuxuryHome"
|
||||
mappath = "modular_chomp/maps/submaps/shelters/SurvivalLuxuryHome-11x11.dmm"
|
||||
name = "Survival luxury home."
|
||||
description = "A luxurious pod filled with various home amenities, is a home away from home!"
|
||||
|
||||
/datum/map_template/shelter/superpose/SurvivalMedical
|
||||
shelter_id = "SurvivalMedical"
|
||||
mappath = "modular_chomp/maps/submaps/shelters/SurvivalMedical-9x9.dmm"
|
||||
name = "Survival medical dep."
|
||||
description = "NT pantented medical survival pod, loaded with medical equipment, scanner, sleeper and a surgery table."
|
||||
|
||||
/datum/map_template/shelter/superpose/SurvivalPool
|
||||
shelter_id = "SurvivalPool"
|
||||
mappath = "modular_chomp/maps/submaps/shelters/SurvivalPool-11x11.dmm"
|
||||
name = "Survival pool pod."
|
||||
description = "NT pantented leisure pool survival pod, a leisure structure for crew to workout and relax."
|
||||
|
||||
/datum/map_template/shelter/superpose/SurvivalQuarters
|
||||
shelter_id = "SurvivalQuarters"
|
||||
mappath = "modular_chomp/maps/submaps/shelters/SurvivalQuarters-9x9.dmm"
|
||||
name = "Survival living quarters."
|
||||
description = "NT pantented survival quarters pod, loaded with survival equipment and enough beds for 4 crewmates."
|
||||
|
||||
/datum/map_template/shelter/superpose/SurvivalScience
|
||||
shelter_id = "SurvivalScience"
|
||||
mappath = "modular_chomp/maps/submaps/shelters/SurvivalScience-9x9.dmm"
|
||||
name = "Survival science dep."
|
||||
description = "NT pantented science survival pod, loaded with research terminals, mech fabricator, autolathe and everything to do field research."
|
||||
|
||||
/datum/map_template/shelter/superpose/SurvivalSecurity
|
||||
shelter_id = "SurvivalSecurity"
|
||||
mappath = "modular_chomp/maps/submaps/shelters/SurvivalSecurity-9x9.dmm"
|
||||
name = "Survival security dep."
|
||||
description = "NT pantented security survival pod, a high security brig with and some security equipment."
|
||||
|
||||
/datum/map_template/shelter/superpose/TinyCombatShip
|
||||
shelter_id = "TinyCombatShip"
|
||||
mappath = "modular_chomp/maps/submaps/shelters/TinyCombatShip-9x7.dmm"
|
||||
name = "Tiny combat ship."
|
||||
description = "A very small combat ship with the bare minimum of survival gear."
|
||||
|
||||
/datum/map_template/shelter/superpose/TradingShip
|
||||
shelter_id = "TradingShip"
|
||||
mappath = "modular_chomp/maps/submaps/shelters/TradingShip-40x22.dmm"
|
||||
name = "Trading ship."
|
||||
description = "A trading ship stocked with various goods."
|
||||
|
||||
/datum/map_template/shelter/superpose/WoodenCamp
|
||||
shelter_id = "WoodenCamp"
|
||||
mappath = "modular_chomp/maps/submaps/shelters/WoodenCamp-10x10.dmm"
|
||||
name = "Wooden camp."
|
||||
description = "A very small camping lodge, a quick emergency hut to stave off the planets weather."
|
||||
@@ -1,9 +1,10 @@
|
||||
// Expand shoe layer to allow changing the icon for digi legs
|
||||
// For some reason, suit and uniform already has this funcitonality, but shoes do not.
|
||||
|
||||
#define SHOES_LAYER_ALT 8 //Shoe-slot item (when set to be under uniform via verb)
|
||||
#define SHOES_LAYER 11 //Shoe-slot item
|
||||
#define VORE_BELLY_LAYER 31 //Should be the same that it is in update_icons.dm
|
||||
//Duplicate defines so the code below can compile. See non-modular update_icons.dm for proper placement.
|
||||
#define SHOES_LAYER_ALT 9 //Shoe-slot item (when set to be under uniform via verb)
|
||||
#define SHOES_LAYER 12 //Shoe-slot item
|
||||
#define VORE_BELLY_LAYER 32 //Should be the same that it is in update_icons.dm
|
||||
|
||||
/mob/living/carbon/human/update_inv_shoes()
|
||||
//. = ..()
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
/mob/living/simple_mob/vore/alienanimals/teppi/baby
|
||||
mob_size = MOB_MEDIUM
|
||||
@@ -0,0 +1,148 @@
|
||||
/datum/sprite_accessory/marking
|
||||
var/hide_body_parts = list()
|
||||
|
||||
/datum/sprite_accessory/marking/ch/anthrovirus_ra
|
||||
name = "Anthro Virus (Right Arm)"
|
||||
icon_state = "anthrovirus"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_R_ARM,BP_R_HAND)
|
||||
hide_body_parts = list(BP_R_ARM,BP_R_HAND)
|
||||
|
||||
/datum/sprite_accessory/marking/ch/anthrovirus_la
|
||||
name = "Anthro Virus (Left Arm)"
|
||||
icon_state = "anthrovirus"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_ARM,BP_L_HAND)
|
||||
hide_body_parts = list(BP_L_ARM,BP_L_HAND)
|
||||
|
||||
/datum/sprite_accessory/marking/ch/anthrovirus_rl
|
||||
name = "Anthro Virus (Right Leg)"
|
||||
icon_state = "anthrovirus"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_R_LEG)
|
||||
hide_body_parts = list(BP_R_LEG)
|
||||
|
||||
/datum/sprite_accessory/marking/ch/anthrovirus_ll
|
||||
name = "Anthro Virus (Left Leg)"
|
||||
icon_state = "anthrovirus"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_LEG)
|
||||
hide_body_parts = list(BP_L_LEG)
|
||||
|
||||
/datum/sprite_accessory/marking/ch/anthrovirus_rf
|
||||
name = "Anthro Virus (Right Foot)"
|
||||
icon_state = "anthrovirus"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_R_FOOT)
|
||||
hide_body_parts = list(BP_R_FOOT)
|
||||
|
||||
/datum/sprite_accessory/marking/ch/anthrovirus_lf
|
||||
name = "Anthro Virus (Left Foot)"
|
||||
icon_state = "anthrovirus"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT)
|
||||
hide_body_parts = list(BP_L_FOOT)
|
||||
|
||||
/datum/sprite_accessory/marking/ch/anthrovirus_t
|
||||
name = "Anthro Virus (Torso)"
|
||||
icon_state = "anthrovirus"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_TORSO,BP_GROIN)
|
||||
hide_body_parts = list(BP_TORSO,BP_GROIN)
|
||||
|
||||
/datum/sprite_accessory/marking/ch/anthrovirus_h
|
||||
name = "Anthro Virus (Head)"
|
||||
icon_state = "anthrovirus"
|
||||
body_parts = list(BP_HEAD)
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
hide_body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/ch/virus_ra
|
||||
name = "Bacteriophage (Right Arm)"
|
||||
icon_state = "virus"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_R_ARM,BP_R_HAND)
|
||||
hide_body_parts = list(BP_R_ARM,BP_R_HAND)
|
||||
|
||||
/datum/sprite_accessory/marking/ch/virus_la
|
||||
name = "Bacteriophage (Left Arm)"
|
||||
icon_state = "virus"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_ARM,BP_L_HAND)
|
||||
hide_body_parts = list(BP_L_ARM,BP_L_HAND)
|
||||
|
||||
/datum/sprite_accessory/marking/ch/virus_rl
|
||||
name = "Bacteriophage (Right Leg)"
|
||||
icon_state = "virus"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_R_LEG,BP_R_FOOT)
|
||||
hide_body_parts = list(BP_R_LEG,BP_R_FOOT)
|
||||
|
||||
/datum/sprite_accessory/marking/ch/virus_ll
|
||||
name = "Bacteriophage (Left Leg)"
|
||||
icon_state = "virus"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_LEG,BP_L_FOOT)
|
||||
hide_body_parts = list(BP_L_LEG,BP_L_FOOT)
|
||||
|
||||
/datum/sprite_accessory/marking/ch/virus_t
|
||||
name = "Bacteriophage (Torso)"
|
||||
icon_state = "virus"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_TORSO,BP_GROIN)
|
||||
hide_body_parts = list(BP_TORSO,BP_GROIN)
|
||||
|
||||
/datum/sprite_accessory/marking/ch/virus_g
|
||||
name = "Bacteriophage (Groin)"
|
||||
icon_state = "virusgroin" //this is separate so that the groin region can be hidden by the torso.
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_GROIN)
|
||||
//hide_body_parts = list(BP_GROIN) this IS pretty low, even for the groin body part.
|
||||
|
||||
/datum/sprite_accessory/marking/ch/virus_h
|
||||
name = "Bacteriophage (Head)"
|
||||
icon_state = "virus"
|
||||
body_parts = list(BP_HEAD)
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
hide_body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/ch/tyranid
|
||||
name = "Tyranid Bodytype (Use with Armor)"
|
||||
icon_state = "tyranid"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
hide_body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO,BP_HEAD)
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO,BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/ch/tyranid_armor
|
||||
name = "Tyranid Bodytype (Armor)"
|
||||
icon_state = "tyranidarmor"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
hide_body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO,BP_HEAD)
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO,BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/ch/tyranid_legs
|
||||
name = "Tyranid Legs (Use with Armor)"
|
||||
icon_state = "tyranid"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
hide_body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG)
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_GROIN)
|
||||
|
||||
/datum/sprite_accessory/marking/ch/tyranid_legs_armor
|
||||
name = "Tyranid Legs (Armor)"
|
||||
icon_state = "tyranidarmor"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
hide_body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG)
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_GROIN)
|
||||
|
||||
/datum/sprite_accessory/marking/ch/sect_drone
|
||||
name = "Sect Drone Bodytype"
|
||||
icon_state = "sectdrone"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
hide_body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO,BP_HEAD)
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO,BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/ch/sect_drone_eyes
|
||||
name = "Sect Drone Eyes"
|
||||
icon_state = "sectdrone_eyes"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
@@ -0,0 +1,22 @@
|
||||
/datum/sprite_accessory/tail/anthrovirus_tail
|
||||
name = "Anthro Virus Tail"
|
||||
icon = 'icons/mob/vore/tails_ch.dmi'
|
||||
icon_state = "anthrovirustail_mark"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "anthrovirustail"
|
||||
|
||||
/datum/sprite_accessory/tail/tyranid_tail
|
||||
name = "Tyranid"
|
||||
icon = 'icons/mob/vore/tails_ch.dmi'
|
||||
icon_state = "tyranid"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/sectdrone_tail
|
||||
name = "Sect Drone Tail (To use with bodytype-marking)"
|
||||
icon = 'icons/mob/vore/tails_ch.dmi'
|
||||
icon_state = "sectdrone_tail"
|
||||
extra_overlay = "sectdrone_tail_mark"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
@@ -4,3 +4,10 @@
|
||||
|
||||
/datum/sprite_accessory/tail/taur/wolf
|
||||
vore_tail_sprite_variant = "N"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/ch/longvirus
|
||||
name = "Long Virus (Taur)"
|
||||
icon_state = "longvirus_s"
|
||||
extra_overlay = "longvirus_markings"
|
||||
icon_sprite_tag = "virus"
|
||||
//suit_sprites = 'icons/mob/taursuits_noodle.dmi' Aye, I've gotta sprite that shit.
|
||||
@@ -0,0 +1,7 @@
|
||||
/datum/sprite_accessory/wing/sect_drone //We should some day make a variable to make some wings not be able to fly
|
||||
name = "Sect drone wings (To use with bodytype marking)"
|
||||
desc = ""
|
||||
icon = 'icons/mob/vore/wings_ch.dmi'
|
||||
icon_state = "sectdrone_wing"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
14
modular_chomp/code/modules/organs/organ_external.dm
Normal file
14
modular_chomp/code/modules/organs/organ_external.dm
Normal file
@@ -0,0 +1,14 @@
|
||||
//new function to check for markings
|
||||
/obj/item/organ/external/proc/is_hidden_by_markings()
|
||||
//code that checked all limbs.
|
||||
/*
|
||||
for(var/obj/item/organ/external/organ in owner.organs)
|
||||
for(var/M in organ.markings)
|
||||
var/datum/sprite_accessory/marking/mark_style = organ.markings[M]["datum"]
|
||||
if (mark_style.hide_body_parts && (organ_tag in mark_style.hide_body_parts))
|
||||
return 1
|
||||
*/
|
||||
for(var/M in markings)
|
||||
var/datum/sprite_accessory/marking/mark_style = markings[M]["datum"]
|
||||
if(istype(mark_style,/datum/sprite_accessory/marking/ch) && (organ_tag in mark_style.hide_body_parts))
|
||||
return 1
|
||||
173
modular_chomp/code/modules/organs/organ_icon.dm
Normal file
173
modular_chomp/code/modules/organs/organ_icon.dm
Normal file
@@ -0,0 +1,173 @@
|
||||
/obj/item/organ/external/get_icon(var/skeletal)
|
||||
var/digitigrade = 0
|
||||
|
||||
// preferentially take digitigrade value from owner if available, THEN DNA.
|
||||
// this allows limbs to be set properly when being printed in the bioprinter without an owner
|
||||
// this also allows the preview mannequin to update properly because customisation topic calls don't call a DNA check
|
||||
if(owner)
|
||||
digitigrade = owner.digitigrade
|
||||
else if(dna)
|
||||
digitigrade = dna.digitigrade
|
||||
|
||||
if( !model && ( istype(src,/obj/item/organ/external/leg) || istype(src,/obj/item/organ/external/foot) ) ) //All leg icons go through here now.
|
||||
|
||||
var/gender = "m"
|
||||
if(owner && owner.gender == FEMALE)
|
||||
gender = "f"
|
||||
|
||||
if(!force_icon_key)
|
||||
icon_cache_key = "[icon_name]_[species ? species.get_bodytype() : SPECIES_HUMAN]" //VOREStation Edit
|
||||
else
|
||||
icon_cache_key = "[icon_name]_[force_icon_key]"
|
||||
|
||||
if(force_icon)
|
||||
mob_icon = new /icon(force_icon, "[icon_name][gendered_icon ? "_[gender]" : ""]")
|
||||
else
|
||||
if(!dna)
|
||||
mob_icon = new /icon('icons/mob/human_races/r_human.dmi', "[icon_name][gendered_icon ? "_[gender]" : ""]")
|
||||
else
|
||||
|
||||
if(!gendered_icon)
|
||||
gender = null
|
||||
else
|
||||
if(dna.GetUIState(DNA_UI_GENDER))
|
||||
gender = "f"
|
||||
else
|
||||
gender = "m"
|
||||
|
||||
if(skeletal)
|
||||
mob_icon = new /icon('icons/mob/human_races/r_skeleton.dmi', "[icon_name][gender ? "_[gender]" : ""]")
|
||||
else if (robotic >= ORGAN_ROBOT)
|
||||
mob_icon = new /icon('icons/mob/human_races/robotic.dmi', "[icon_name][gender ? "_[gender]" : ""]")
|
||||
apply_colouration(mob_icon)
|
||||
else
|
||||
if(is_hidden_by_markings())
|
||||
mob_icon = new /icon('icons/mob/human_races/r_blank.dmi', "[icon_name][gender ? "_[gender]" : ""]")
|
||||
else
|
||||
//Use digi icon if digitigrade, otherwise use regular icon. Ternary operator is based.
|
||||
mob_icon = new /icon(digitigrade ? species.icodigi : species.get_icobase(owner, (status & ORGAN_MUTATED)), "[icon_name][gender ? "_[gender]" : ""]")
|
||||
apply_colouration(mob_icon)
|
||||
|
||||
//Code here is copied from organ_icon.dm line 118 at time of writing (9/20/21), VOREStation edits are left in intentionally, because I think it's worth keeping track of the fact that the code is from Virgo's edits.
|
||||
//Body markings, actually does not include head this time. Done separately above.
|
||||
if(!istype(src,/obj/item/organ/external/head))
|
||||
for(var/M in markings)
|
||||
var/datum/sprite_accessory/marking/mark_style = markings[M]["datum"]
|
||||
var/isdigitype = istype(mark_style,/datum/sprite_accessory/marking/digi)
|
||||
if(!(digitigrade ^ isdigitype)) //Equivalent to XNOR; this code will only run if either both digitigrade and isdigitype are true, or if both are false.
|
||||
var/icon/mark_s = new/icon("icon" = mark_style.icon, "icon_state" = "[mark_style.icon_state]-[organ_tag]")
|
||||
mark_s.Blend(markings[M]["color"], mark_style.color_blend_mode) // VOREStation edit
|
||||
add_overlay(mark_s) //So when it's not on your body, it has icons
|
||||
mob_icon.Blend(mark_s, ICON_OVERLAY) //So when it's on your body, it has icons
|
||||
icon_cache_key += "[M][markings[M]["color"]]"
|
||||
if(body_hair && islist(h_col) && h_col.len >= 3)
|
||||
var/cache_key = "[body_hair]-[icon_name]-[h_col[1]][h_col[2]][h_col[3]]"
|
||||
if(!limb_icon_cache[cache_key])
|
||||
var/icon/I = icon(species.get_icobase(owner), "[icon_name]_[body_hair]")
|
||||
I.Blend(rgb(h_col[1],h_col[2],h_col[3]), ICON_MULTIPLY) //VOREStation edit
|
||||
limb_icon_cache[cache_key] = I
|
||||
mob_icon.Blend(limb_icon_cache[cache_key], ICON_OVERLAY)
|
||||
|
||||
// VOREStation edit start
|
||||
if(nail_polish)
|
||||
var/icon/I = new(nail_polish.icon, nail_polish.icon_state)
|
||||
I.Blend(nail_polish.color, ICON_MULTIPLY)
|
||||
add_overlay(I)
|
||||
mob_icon.Blend(I, ICON_OVERLAY)
|
||||
icon_cache_key += "_[nail_polish.icon]_[nail_polish.icon_state]_[nail_polish.color]"
|
||||
// VOREStation edit end
|
||||
dir = EAST
|
||||
icon = mob_icon
|
||||
return mob_icon
|
||||
|
||||
else
|
||||
//. = ..()
|
||||
//due to the wierd fact that this calls the old code, and defining it here makes a duplicate procedure error, i'm gonna have to bring the whole code here and modify it. if there is a more condensed way, it is appreciated.
|
||||
|
||||
var/gender = "m"
|
||||
if(owner && owner.gender == FEMALE)
|
||||
gender = "f"
|
||||
|
||||
if(!force_icon_key)
|
||||
icon_cache_key = "[icon_name]_[species ? species.get_bodytype() : SPECIES_HUMAN]" //VOREStation Edit
|
||||
else
|
||||
icon_cache_key = "[icon_name]_[force_icon_key]"
|
||||
|
||||
if(force_icon)
|
||||
mob_icon = new /icon(force_icon, "[icon_name][gendered_icon ? "_[gender]" : ""]")
|
||||
else
|
||||
if(!dna)
|
||||
mob_icon = new /icon('icons/mob/human_races/r_human.dmi', "[icon_name][gendered_icon ? "_[gender]" : ""]")
|
||||
else
|
||||
if(!gendered_icon)
|
||||
gender = null
|
||||
else
|
||||
if(dna.GetUIState(DNA_UI_GENDER))
|
||||
gender = "f"
|
||||
else
|
||||
gender = "m"
|
||||
|
||||
if(skeletal)
|
||||
mob_icon = new /icon('icons/mob/human_races/r_skeleton.dmi', "[icon_name][gender ? "_[gender]" : ""]")
|
||||
else if (robotic >= ORGAN_ROBOT)
|
||||
mob_icon = new /icon('icons/mob/human_races/robotic.dmi', "[icon_name][gender ? "_[gender]" : ""]")
|
||||
apply_colouration(mob_icon)
|
||||
else
|
||||
if(is_hidden_by_markings())
|
||||
mob_icon = new /icon('icons/mob/human_races/r_blank.dmi', "[icon_name][gender ? "_[gender]" : ""]")
|
||||
else
|
||||
//Use digi icon if digitigrade, otherwise use regular icon. Ternary operator is based.
|
||||
mob_icon = new /icon(species.get_icobase(owner, (status & ORGAN_MUTATED)), "[icon_name][gender ? "_[gender]" : ""]")
|
||||
apply_colouration(mob_icon)
|
||||
|
||||
//Body markings, actually does not include head this time. Done separately above.
|
||||
if(!istype(src,/obj/item/organ/external/head))
|
||||
for(var/M in markings)
|
||||
var/datum/sprite_accessory/marking/mark_style = markings[M]["datum"]
|
||||
var/icon/mark_s = new/icon("icon" = mark_style.icon, "icon_state" = "[mark_style.icon_state]-[organ_tag]")
|
||||
mark_s.Blend(markings[M]["color"], mark_style.color_blend_mode) // VOREStation edit
|
||||
add_overlay(mark_s) //So when it's not on your body, it has icons
|
||||
mob_icon.Blend(mark_s, ICON_OVERLAY) //So when it's on your body, it has icons
|
||||
icon_cache_key += "[M][markings[M]["color"]]"
|
||||
|
||||
if(body_hair && islist(h_col) && h_col.len >= 3)
|
||||
var/cache_key = "[body_hair]-[icon_name]-[h_col[1]][h_col[2]][h_col[3]]"
|
||||
if(!limb_icon_cache[cache_key])
|
||||
var/icon/I = icon(species.get_icobase(owner), "[icon_name]_[body_hair]")
|
||||
I.Blend(rgb(h_col[1],h_col[2],h_col[3]), ICON_MULTIPLY) //VOREStation edit
|
||||
limb_icon_cache[cache_key] = I
|
||||
mob_icon.Blend(limb_icon_cache[cache_key], ICON_OVERLAY)
|
||||
|
||||
// VOREStation edit start
|
||||
if(nail_polish)
|
||||
var/icon/I = new(nail_polish.icon, nail_polish.icon_state)
|
||||
I.Blend(nail_polish.color, ICON_MULTIPLY)
|
||||
add_overlay(I)
|
||||
mob_icon.Blend(I, ICON_OVERLAY)
|
||||
icon_cache_key += "_[nail_polish.icon]_[nail_polish.icon_state]_[nail_polish.color]"
|
||||
// VOREStation edit end
|
||||
|
||||
if(model)
|
||||
icon_cache_key += "_model_[model]"
|
||||
apply_colouration(mob_icon)
|
||||
if(owner && owner.synth_markings)
|
||||
for(var/M in markings)
|
||||
var/datum/sprite_accessory/marking/mark_style = markings[M]["datum"]
|
||||
var/icon/mark_s = new/icon("icon" = mark_style.icon, "icon_state" = "[mark_style.icon_state]-[organ_tag]")
|
||||
mark_s.Blend(markings[M]["color"], mark_style.color_blend_mode) // VOREStation edit
|
||||
add_overlay(mark_s) //So when it's not on your body, it has icons
|
||||
mob_icon.Blend(mark_s, ICON_OVERLAY) //So when it's on your body, it has icons
|
||||
icon_cache_key += "[M][markings[M]["color"]]"
|
||||
|
||||
if(body_hair && islist(h_col) && h_col.len >= 3)
|
||||
var/cache_key = "[body_hair]-[icon_name]-[h_col[1]][h_col[2]][h_col[3]]"
|
||||
if(!limb_icon_cache[cache_key])
|
||||
var/icon/I = icon(species.get_icobase(owner), "[icon_name]_[body_hair]")
|
||||
I.Blend(rgb(h_col[1],h_col[2],h_col[3]), ICON_MULTIPLY) //VOREStation edit
|
||||
limb_icon_cache[cache_key] = I
|
||||
mob_icon.Blend(limb_icon_cache[cache_key], ICON_OVERLAY)
|
||||
// VOREStation edit ends here
|
||||
|
||||
dir = EAST
|
||||
icon = mob_icon
|
||||
return mob_icon
|
||||
399
modular_chomp/code/modules/reagents/reactions/instant/drinks.dm
Normal file
399
modular_chomp/code/modules/reagents/reactions/instant/drinks.dm
Normal file
@@ -0,0 +1,399 @@
|
||||
/decl/chemical_reaction/instant/drinks/minttea
|
||||
name = "Mint Tea"
|
||||
id = "minttea"
|
||||
result = "minttea"
|
||||
required_reagents = list("tea" = 5, "mint" = 1)
|
||||
result_amount = 6
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/lemontea
|
||||
name = "Lemon Tea"
|
||||
id = "lemontea"
|
||||
result = "lemontea"
|
||||
required_reagents = list("tea" = 5, "lemonjuice" = 1)
|
||||
result_amount = 6
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/limetea
|
||||
name = "Lime Tea"
|
||||
id = "limetea"
|
||||
result = "limetea"
|
||||
required_reagents = list("tea" = 5, "limejuice" = 1)
|
||||
result_amount = 6
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/orangetea
|
||||
name = "Orange Tea"
|
||||
id = "orangetea"
|
||||
result = "orangetea"
|
||||
required_reagents = list("tea" = 5, "orangejuice" = 1)
|
||||
result_amount = 6
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/berrytea
|
||||
name = "Berry Tea"
|
||||
id = "berrytea"
|
||||
result = "berrytea"
|
||||
required_reagents = list("tea" = 5, "berryjuice" = 1)
|
||||
result_amount = 6
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/cherrytea
|
||||
name = "Cherry Tea"
|
||||
id = "cherrytea"
|
||||
result = "cherrytea"
|
||||
required_reagents = list("tea" = 5, "cherryjelly" = 1)
|
||||
result_amount = 6
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/watermelontea
|
||||
name = "Watermelon Tea"
|
||||
id = "watermelontea"
|
||||
result = "watermelontea"
|
||||
required_reagents = list("tea" = 5, "watermelonjuice" = 1)
|
||||
result_amount = 6
|
||||
|
||||
/decl/chemical_reaction/instant/tea/matcha_latte
|
||||
id = "matcha_latte"
|
||||
result = "matcha_latte"
|
||||
required_reagents = list ("matchapowder" = 1, "milk" = 5)
|
||||
result_amount = 5
|
||||
|
||||
/decl/chemical_reaction/instant/freshtea/green
|
||||
id = "freshteagreen"
|
||||
result = "freshteagreen"
|
||||
required_reagents = list ("tealeavesgreen" = 1, "hotwater" = 9)
|
||||
result_amount = 10
|
||||
|
||||
/decl/chemical_reaction/instant/instantteapowder/green
|
||||
id = "instantteapowdergreen"
|
||||
result = "instantteapowdergreen"
|
||||
required_reagents = list ("teamush" = 10, "frostoil" = 1)
|
||||
result_amount = 10
|
||||
|
||||
/decl/chemical_reaction/instant/instanttea/green
|
||||
id = "instantteagreen"
|
||||
result = "instantteagreen"
|
||||
required_reagents = list ("instantteapowdergreen" = 1, "water" = 9)
|
||||
result_amount = 10
|
||||
|
||||
/decl/chemical_reaction/instant/matcha
|
||||
id = "matcha"
|
||||
result = "matcha"
|
||||
required_reagents = list ("matchapowder" = 1, "hotwater" = 2)
|
||||
result_amount = 2
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/spiderdrink
|
||||
name = "Brimming glass of spiders"
|
||||
id = "spiderdrink"
|
||||
result = "spiderdrink"
|
||||
required_reagents = list("spidertoxin" = 1, "clonexadone" = 5, "absinthe" = 4)
|
||||
result_amount = 10
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/bubbleteawatermelon
|
||||
name = "Watermelon bubble tea"
|
||||
id = "bubbleteawatermelon"
|
||||
result = "bubbleteawatermelon"
|
||||
required_reagents = list("gelatin" = 2, "watermelontea" = 6, "milk" = 2)
|
||||
result_amount = 10
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/bubbleteastrawberry
|
||||
name = "Strawberry bubble tea"
|
||||
id = "bubbleteastrawberry"
|
||||
result = "bubbleteastrawberry"
|
||||
required_reagents = list("gelatin" = 2, "berrytea" = 6, "milk" = 2)
|
||||
result_amount = 10
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/bubbleteacherry
|
||||
name = "Cherry bubble tea"
|
||||
id = "bubbleteacherry"
|
||||
result = "bubbleteacherry"
|
||||
required_reagents = list("gelatin" = 2, "cherrytea" = 6, "milk" = 2)
|
||||
result_amount = 10
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/bubbleteacoffee
|
||||
name = "Coffee bubble tea"
|
||||
id = "bubbleteacoffee"
|
||||
result = "bubbleteacoffee"
|
||||
required_reagents = list("gelatin" = 2, "tea" = 5, "cafe_latte" = 3)
|
||||
result_amount = 10
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/bubbleteabanana
|
||||
name = "Banana bubble tea"
|
||||
id = "bubbleteabanana"
|
||||
result = "bubbleteabanana"
|
||||
required_reagents = list("gelatin" = 2, "tea" = 5, "banana" = 1, "milk" = 2)
|
||||
result_amount = 10
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/horchata
|
||||
name = "Horchata"
|
||||
id = "horchata"
|
||||
result = "horchata"
|
||||
required_reagents = list("milk" = 1, "sugar" = 2, "rice" = 2)
|
||||
result_amount = 5
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/bluetrain
|
||||
name = "Blue train"
|
||||
id = "bluetrain"
|
||||
result = "bluetrain"
|
||||
required_reagents = list("coolant" = 2, "ethanol" = 2, "nutriment" = 1)
|
||||
result_amount = 5
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/lowpower
|
||||
name = "The low power"
|
||||
id = "lowpower"
|
||||
result = "lowpower"
|
||||
required_reagents = list("lemonade" = 1, "cream" = 1, "limejuice" = 1)
|
||||
result_amount = 3
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/jackbrew
|
||||
name = "Jack's brew"
|
||||
id = "jackbrew"
|
||||
result = "jackbrew"
|
||||
required_reagents = list("irishcoffee" = 1, "hyperzine" = 1)
|
||||
result_amount = 2
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/bookwyrm
|
||||
name = "Bookwyrm's bite"
|
||||
id = "bookwyrm"
|
||||
result = "bookwyrm"
|
||||
required_reagents = list("coldfront" = 1, "limejuice" = 1, "stoxin" = 1)
|
||||
result_amount = 3
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/highpower
|
||||
name = "The high power"
|
||||
id = "highpower"
|
||||
result = "highpower"
|
||||
required_reagents = list("lowpower" = 1, "iron" = 1, "uranium" = 1)
|
||||
result_amount = 3
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/flapper
|
||||
name = "Flapper"
|
||||
id = "flapper"
|
||||
result = "flapper"
|
||||
required_reagents = list("whiskey" = 1, "blood" = 1, "ice" = 1)
|
||||
result_amount = 3
|
||||
|
||||
/decl/chemical_reaction/instant/toxin/oilslide
|
||||
name = "Oil slide"
|
||||
id = "oilslide"
|
||||
result = "oilslide"
|
||||
required_reagents = list("moonshine" = 1, "lube" = 1, "fuel" = 1)
|
||||
result_amount = 3
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/sitonmyface
|
||||
name = "Sit on my face"
|
||||
id = "sitonmyface"
|
||||
result = "sitonmyface"
|
||||
required_reagents = list("kahlua" = 1, "irishcream" = 1, "peanutbutter" = 1)
|
||||
result_amount = 3
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/hachi
|
||||
name = "Hachi"
|
||||
id = "hachi"
|
||||
result = "hachi"
|
||||
required_reagents = list("burbon" = 2, "sake" = 1, "lemonjuice" = 1, "mushroom" = 1) //Whoever coded this never made a mushroom reagent so this can't be created.
|
||||
result_amount = 5
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/narsour
|
||||
name = "Nar'sour"
|
||||
id = "narsour"
|
||||
result = "narsour"
|
||||
required_reagents = list("blood" = 1, "lemonjuice" = 1, "demonsblood" = 1)
|
||||
mix_message = "The mixture develops a sinister glow."
|
||||
reaction_sound = 'sound/effects/singlebeat.ogg'
|
||||
result_amount = 3
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/cogchamp
|
||||
name = "CogChamp"
|
||||
id = "cogchamp"
|
||||
result = "cogchamp"
|
||||
required_reagents = list("cognac" = 1, "fuel" = 1, "screwdrivercocktail" = 1)
|
||||
mix_message = "You hear faint sounds of gears turning as the mixture gives off virulent plumes of steam."
|
||||
reaction_sound = 'sound/machines/clockcult/steam_whoosh.ogg'
|
||||
result_amount = 3
|
||||
|
||||
//thirteen loko possible to make now, so easier to make arachnid slammer - Jack
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/thirteenloko
|
||||
name = "Thirteen Loko"
|
||||
id = "thirteenloko"
|
||||
result = "thirteenloko"
|
||||
required_reagents = list("beer" = 1, "tequilla" = 1, "coffee" = 1)
|
||||
result_amount = 3
|
||||
|
||||
//Arachnid slammer reactions - Jack
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/arachnidslammer
|
||||
name = "Arachnid Slammer"
|
||||
id = "arachnidslammer"
|
||||
result = "arachnidslammer"
|
||||
required_reagents = list("ale" = 1, "thirteenloko" = 1, "hyperzine" = 1)
|
||||
mix_message = "The concortion of ale, energy drink and stimulants starts to heavily foam and fizzle, even sparkle a little."
|
||||
result_amount = 3
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/enragedarachnidslammer
|
||||
name = "Enraged Arachnid Slammer"
|
||||
id = "enragedarachnidslammer"
|
||||
result = "enragedarachnidslammer"
|
||||
required_reagents = list("infusedarachnidslammer" = 1, "spidertoxin" = 1)
|
||||
mix_message = "The dormant Arachnid Slammer bubbles and fizzles loudly as it gets enraged by the spider toxin and breaks it down!"
|
||||
result_amount = 5
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/enragedarachnidslammer1
|
||||
name = "Enraged Arachnid Slammer"
|
||||
id = "enragedarachnidslammer"
|
||||
required_reagents = list("enragedarachnidslammer" = 1, "cyanide" = 1)
|
||||
result = "enragedarachnidslammer"
|
||||
result_amount = 0.1
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/enragedarachnidslammer2
|
||||
name = "Enraged Arachnid Slammer"
|
||||
id = "enragedarachnidslammer"
|
||||
required_reagents = list("enragedarachnidslammer" = 1, "chloralhydrate" = 1)
|
||||
result = "enragedarachnidslammer"
|
||||
result_amount = 0.1
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/enragedarachnidslammer3
|
||||
name = "Enraged Arachnid Slammer"
|
||||
id = "enragedarachnidslammer"
|
||||
required_reagents = list("enragedarachnidslammer" = 1, "stimm" = 1)
|
||||
result = "enragedarachnidslammer"
|
||||
result_amount = 0.1
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/enragedarachnidslammer4
|
||||
name = "Enraged Arachnid Slammer"
|
||||
id = "enragedarachnidslammer"
|
||||
required_reagents = list("enragedarachnidslammer" = 1, "cryotoxin" = 1)
|
||||
result = "enragedarachnidslammer"
|
||||
result_amount = 0.1
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/enragedarachnidslammer5
|
||||
name = "Enraged Arachnid Slammer"
|
||||
id = "enragedarachnidslammer"
|
||||
required_reagents = list("enragedarachnidslammer" = 1, "cryptobiolin" = 1)
|
||||
result = "enragedarachnidslammer"
|
||||
result_amount = 0.1
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/enragedarachnidslammer6
|
||||
name = "Enraged Arachnid Slammer"
|
||||
id = "enragedarachnidslammer"
|
||||
required_reagents = list("enragedarachnidslammer" = 1, "stoxin" = 1)
|
||||
result = "enragedarachnidslammer"
|
||||
result_amount = 0.1
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/enragedarachnidslammer7
|
||||
name = "Enraged Arachnid Slammer"
|
||||
id = "enragedarachnidslammer"
|
||||
required_reagents = list("enragedarachnidslammer" = 1, "condensedcapsaicin_v" = 1)
|
||||
result = "enragedarachnidslammer"
|
||||
result_amount = 0.1
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/enragedarachnidslammer8
|
||||
name = "Enraged Arachnid Slammer"
|
||||
id = "enragedarachnidslammer"
|
||||
required_reagents = list("enragedarachnidslammer" = 1, "phoron" = 1)
|
||||
result = "enragedarachnidslammer"
|
||||
result_amount = 0.1
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/enragedarachnidslammer9
|
||||
name = "Enraged Arachnid Slammer"
|
||||
id = "enragedarachnidslammer"
|
||||
required_reagents = list("enragedarachnidslammer" = 1, "thermite_v" = 1)
|
||||
result = "enragedarachnidslammer"
|
||||
result_amount = 0.1
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/enragedarachnidslammer10
|
||||
name = "Enraged Arachnid Slammer"
|
||||
id = "enragedarachnidslammer"
|
||||
required_reagents = list("enragedarachnidslammer" = 1, "serotrotium_v" = 1)
|
||||
result = "enragedarachnidslammer"
|
||||
result_amount = 0.1
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/pilk
|
||||
name = "Pilk"
|
||||
id = "pilk"
|
||||
result = "pilk"
|
||||
required_reagents = list("milk" = 1, "cola" = 1)
|
||||
result_amount = 2
|
||||
|
||||
// Drinks from Horizon
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/alliescocktail
|
||||
name = "Allies Cocktail"
|
||||
id = "alliescocktail"
|
||||
result = "alliescocktail"
|
||||
required_reagents = list("martini" = 1, "vodka" = 1)
|
||||
result_amount = 2
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/fetching_fizz
|
||||
name = "Fetching Fizz"
|
||||
id = "fetching_fizz"
|
||||
result = "fetching_fizz"
|
||||
required_reagents = list("nuka_cola" = 1, "iron" = 1)
|
||||
result_amount = 3
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/hearty_punch
|
||||
name = "Hearty Punch"
|
||||
id = "hearty_punch"
|
||||
result = "hearty_punch"
|
||||
required_reagents = list("bravebull" = 5, "syndicatebomb" = 5, "absinthe" = 5)
|
||||
result_amount = 1
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/squirt_cider
|
||||
name = "Squirt Cider"
|
||||
id = "squirt_cider"
|
||||
result = "squirt_cider"
|
||||
required_reagents = list("water" = 1, "tomatojuice" = 1, "nutriment" = 1)
|
||||
result_amount = 3
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/fringe_weaver
|
||||
name = "Fringe Weaver"
|
||||
id = "fringe_weaver"
|
||||
result = "fringe_weaver"
|
||||
required_reagents = list("ethanol" = 9, "sugar" = 1)
|
||||
result_amount = 10
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/crevice_spike
|
||||
name = "Crevice Spike"
|
||||
id = "crevice_spike"
|
||||
result = "crevice_spike"
|
||||
required_reagents = list("limejuice" = 2, "capsaicin" = 4)
|
||||
result_amount = 6
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/duplex
|
||||
name = "Duplex"
|
||||
id = "duplex"
|
||||
result = "duplex"
|
||||
required_reagents = list("cider" = 2, "applejuice" = 1, "berryjuice" = 1)
|
||||
result_amount = 4
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/mauna_loa
|
||||
name = "Mauna Loa"
|
||||
id = "mauna_loa"
|
||||
result = "mauna_loa"
|
||||
required_reagents = list("capsaicin" = 2, "kahlua" = 1, "bahama_mama" = 2)
|
||||
result_amount = 5
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/hiveminderaser
|
||||
name = "Hivemind Eraser"
|
||||
id = "hiveminderaser"
|
||||
result = "hiveminderaser"
|
||||
required_reagents = list("blackrussian" = 2, "thirteenloko" = 1, "grenadine" = 1)
|
||||
result_amount = 4
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/erikasurprise
|
||||
name = "Erika Surprise"
|
||||
id = "erikasurprise"
|
||||
result = "erikasurprise"
|
||||
required_reagents = list("ale" = 2, "limejuice" = 1, "whiskey" = 1, "banana" = 1, "ice" = 1)
|
||||
result_amount = 6
|
||||
|
||||
//YW drinks
|
||||
/decl/chemical_reaction/instant/drinks/lovepotion_yw
|
||||
name = "Strawberry Love Potion"
|
||||
id = "strawberrylovepotion"
|
||||
result = "strawberrylovepotion"
|
||||
required_reagents = list("cream" = 1, "berryjuice" = 1, "sugar" = 1)
|
||||
result_amount = 3
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/wormblood
|
||||
name = "Wormblood"
|
||||
id = "wormblood"
|
||||
result = "wormblood"
|
||||
required_reagents = list("booger" = 1, "psilocybin" = 1)
|
||||
result_amount = 2
|
||||
728
modular_chomp/code/modules/reagents/reagents/food_drinks.dm
Normal file
728
modular_chomp/code/modules/reagents/reagents/food_drinks.dm
Normal file
@@ -0,0 +1,728 @@
|
||||
////////////////////////////////////////////////
|
||||
/////////DRINKS////////////////////////////////
|
||||
//////////////////////////////////////////////
|
||||
|
||||
/datum/reagent/drink/tea/cherrytea
|
||||
name = "Cherry Tea"
|
||||
id = "cherrytea"
|
||||
description = "A tasty mixture of cherries and tea. It's apparently good for you!"
|
||||
color = "#c15962"
|
||||
taste_description = "black tea with lots of cherries"
|
||||
|
||||
glass_name = "cherry tea"
|
||||
glass_desc = "A tasty mixture of cherries and tea. It's apparently good for you!"
|
||||
|
||||
cup_name = "cup of cherry tea"
|
||||
cup_desc = "A tasty mixture of cherries and tea. It's apparently good for you!"
|
||||
|
||||
/datum/reagent/drink/tea/watermelontea
|
||||
name = "Watermelon Tea"
|
||||
id = "watermelontea"
|
||||
description = "A tasty mixture of watermelon and tea. It's apparently good for you!"
|
||||
color = "#9f2c2c"
|
||||
taste_description = "black tea with sweet watermelon for flavouring"
|
||||
|
||||
glass_name = "watermelon tea"
|
||||
glass_desc = "A tasty mixture of watermelon and tea. It's apparently good for you!"
|
||||
|
||||
cup_name = "cup of watermelon tea"
|
||||
cup_desc = "A tasty mixture of watermelon and tea. It's apparently good for you!"
|
||||
|
||||
/datum/reagent/drink/tea/matcha_latte //Putting this as tea to inherit tea variables. Should not have the same toxloss as matcha so it can be placed in a dispenser without breaking balance.
|
||||
name = "Matcha latte"
|
||||
id = "matcha_latte"
|
||||
description = "A nice and tasty beverage to enjoy while studying."
|
||||
taste_description = "creamy, vegetal sweetness"
|
||||
color = "#b1c48c"
|
||||
adj_temp = 5
|
||||
|
||||
glass_name = "matcha latte"
|
||||
glass_desc = "A nice and refreshing beverage while you are studying."
|
||||
|
||||
cup_icon_state = "cup_latte"
|
||||
cup_name = "cup of matcha latte"
|
||||
cup_desc = "A nice and refreshing beverage while you are studying."
|
||||
|
||||
/datum/reagent/drink/tea/dyloteane
|
||||
name = "The Anti-Irish"
|
||||
id = "dyloteane"
|
||||
glass_name = "Medicinal tea cup"
|
||||
glass_desc = "Goes perfectly with alcohol poisoning!"
|
||||
taste_description = "The sweet taste of multidepartment cooperation!"
|
||||
cup_desc = "Goes perfectly with alcohol poisoning!"
|
||||
cup_name = "Medicinal tea cup"
|
||||
color = "#00FF00"
|
||||
|
||||
/datum/reagent/drink/tea/dyloteane/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
if(alien == IS_DIONA)
|
||||
return
|
||||
if(M.ingested)
|
||||
for(var/datum/reagent/R in M.ingested.reagent_list)
|
||||
if(istype(R, /datum/reagent/ethanol))
|
||||
R.remove_self(removed * 3)
|
||||
if(M.bloodstr)
|
||||
for(var/datum/reagent/R in M.bloodstr.reagent_list)
|
||||
if(istype(R, /datum/reagent/ethanol))
|
||||
R.remove_self(removed * 10)
|
||||
|
||||
/datum/reagent/drink/tea/dyloteane/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
var/chem_effective = 1
|
||||
if(alien != IS_DIONA)
|
||||
M.drowsyness = max(0, M.drowsyness - 6 * removed * chem_effective)
|
||||
M.hallucination = max(0, M.hallucination - 9 * removed * chem_effective)
|
||||
M.adjustToxLoss(-1 * removed * chem_effective)
|
||||
|
||||
/datum/reagent/slimedrink
|
||||
name = "Slime"
|
||||
id = "slimedrink"
|
||||
description = "A gooey semi-liquid produced from your fellow slimey crew members."
|
||||
taste_description = "jiggly"
|
||||
taste_mult = 1.3
|
||||
reagent_state = LIQUID
|
||||
color = "#8bdce5"
|
||||
|
||||
glass_name = "Slime"
|
||||
glass_desc = "Slime thats safe to drink (relatively)"
|
||||
|
||||
/datum/reagent/drink/soda
|
||||
ingest_met = REM * 5 //Makes it so soda metabolizes faster, since without this increase, the nutrients it currently gives does nothing. Also, metabolises faster then normal nutrients due to being soda.
|
||||
|
||||
/datum/reagent/ethanol/spiderdrink
|
||||
name = "Brimming glass of spiders"
|
||||
id = "spiderdrink"
|
||||
description = "A fresh drink consisting of cloned spiderlings who are intoxicated by a healthy dose of absinthe."
|
||||
taste_description = "TOO MANY LEGS"
|
||||
color = "#526062" // rgb(82, 96, 98)
|
||||
strength = 15
|
||||
|
||||
glass_name = "Brimming glass of spiders"
|
||||
glass_desc = "A glass filled to the brim with tiny drunk spiderlings. Lets hope they dont escape."
|
||||
|
||||
/datum/reagent/ethanol/snaps
|
||||
name = "Akvavit"
|
||||
id = "snaps"
|
||||
description = "Burns the nose and throat and soothes it with a herby aftertaste...Barely."
|
||||
taste_description = "strong spirit and a little dill"
|
||||
color = "e6d670" // rgb: 230, 214, 112
|
||||
strength = 15
|
||||
|
||||
glass_name = "akvavit"
|
||||
glass_desc = "Burns the nose and throat, and soothes it with a herby aftertaste...Barely."
|
||||
|
||||
/datum/reagent/ethanol/bluetrain
|
||||
name = "blue train"
|
||||
id = "bluetrain"
|
||||
description = "A drink only a fool or a very desperate creature would consume."
|
||||
taste_description = "someone who decided to pour ice cold motor oil down your throat and finish it off with a large shot of burning pure alcohol."
|
||||
color = "#c8a5dc"
|
||||
adj_temp = -10
|
||||
targ_temp = 220
|
||||
strength = 10
|
||||
|
||||
glass_name = "blue train"
|
||||
glass_desc = "A glass of what can only be described as the bastard child between coolant and alcohol made by a madman."
|
||||
|
||||
/datum/reagent/drink/lowpower
|
||||
name = "The low power"
|
||||
id = "lowpower"
|
||||
description = "Smells, and tastes like lemon.. with a hint of Ozone, for whatever reason. It glows softly."
|
||||
taste_description = "creamy lemonade, with some zest"
|
||||
color = "#5d8d39"
|
||||
|
||||
glass_name = "lowpower"
|
||||
glass_desc = "Smells, and tastes like lemon.. with a hint of Ozone, for whatever reason. It glows softly."
|
||||
|
||||
/datum/reagent/drink/lowpower/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
..()
|
||||
if(alien == IS_DIONA)
|
||||
return
|
||||
M.adjustToxLoss(-0.5 * removed)
|
||||
|
||||
/datum/reagent/drink/highpower
|
||||
name = "The High power"
|
||||
id = "highpower"
|
||||
description = "A strange, softly crackling drink, smelling just like lightning's just struck, twice. It's rather difficult to make this without busting the lights."
|
||||
taste_description = "copper, ozone, and pain"
|
||||
color = "#a2f563"
|
||||
|
||||
glass_name = "highpower"
|
||||
glass_desc = "A strange, softly crackling drink, smelling just like lightning's just struck, twice. It's rather difficult to make this without busting the lights."
|
||||
|
||||
/datum/reagent/drink/highpower/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
if(alien == IS_DIONA)
|
||||
return
|
||||
if(prob(5))
|
||||
M.say("!skin's crackles with energy and seems to be in pain.")
|
||||
M.custom_pain("You feel painful electricity running through your body, like adrenaline, and like your blood's boiling!",30)
|
||||
M.AdjustWeakened(3) //Getting sapped makes the victim fall
|
||||
M.Stun(3)
|
||||
M.add_chemical_effect(CE_SPEEDBOOST, 1)
|
||||
|
||||
/datum/reagent/ethanol/coffee/jackbrew
|
||||
name = "Rush hour"
|
||||
id = "jackbrew"
|
||||
description = "Irish coffee, and hyperzine. A common mix for panicked drinkers, EMTS, Paramedics, and CMOs alone on the job."
|
||||
taste_description = "wishing you could give up on the day"
|
||||
color = "#4C3100"
|
||||
strength = 15
|
||||
|
||||
glass_name = "Rush hour"
|
||||
glass_desc = "Irish coffee, and hyperzine. A common mix for panicked drinkers, EMTS, Paramedics, and CMOs alone on the job."
|
||||
|
||||
/datum/reagent/ethanol/coffee/jackbrew/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
if(alien == IS_TAJARA)
|
||||
removed *= 1.25
|
||||
if(alien == IS_SLIME)
|
||||
M.make_jittery(4) //Hyperactive fluid pumping results in unstable 'skeleton', resulting in vibration.
|
||||
if(dose >= 5)
|
||||
M.nutrition = (M.nutrition - (removed * 2)) //Sadly this movement starts burning food in higher doses.
|
||||
..()
|
||||
if(prob(5))
|
||||
M.emote(pick("twitch", "blink_r", "shiver", "weh", "weh", "weh")) // weh - Jack
|
||||
M.add_chemical_effect(CE_SPEEDBOOST, 1)
|
||||
|
||||
/datum/reagent/ethanol/bookwyrm
|
||||
name = "Bookwyrm's bite"
|
||||
id = "bookwyrm"
|
||||
description = "You'd probably fancy a nice nap by the fireplace after drinking this."
|
||||
taste_description = "Mint, lime and a cold cozy nap"
|
||||
color = "#5678c3"
|
||||
strength = 20
|
||||
adj_temp = -10
|
||||
targ_temp = 273 //Dilluted cold front wont be the death of anyone who cant handle sipping liquid nitrogen.
|
||||
|
||||
glass_name = "Bookwyrm's bite"
|
||||
glass_desc = "A cold lime mint drink. Dont drink to much or you might fall asleep."
|
||||
|
||||
/datum/reagent/ethanol/bookwyrm/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
if(alien == IS_DIONA)
|
||||
return
|
||||
|
||||
var/threshold = 1
|
||||
if(alien == IS_SKRELL)
|
||||
threshold = 1.2
|
||||
|
||||
if(alien == IS_SLIME)
|
||||
threshold = 6 //Evens to 3 due to the fact they are considered 'small' for flaps.
|
||||
|
||||
var/effective_dose = dose
|
||||
if(issmall(M))
|
||||
effective_dose *= 2
|
||||
|
||||
if(effective_dose < 1 * threshold)
|
||||
if(effective_dose == metabolism * 2 || prob(5))
|
||||
M.emote("yawn")
|
||||
else if(effective_dose < 1.5 * threshold)
|
||||
M.eye_blurry = max(M.eye_blurry, 10)
|
||||
else if(effective_dose < 5 * threshold)
|
||||
if(prob(50))
|
||||
M.Weaken(2)
|
||||
M.drowsyness = max(M.drowsyness, 20)
|
||||
else
|
||||
if(alien == IS_SLIME) //They don't have eyes, and they don't really 'sleep'. Fumble their general senses.
|
||||
M.eye_blurry = max(M.eye_blurry, 30)
|
||||
if(prob(20))
|
||||
M.ear_deaf = max(M.ear_deaf, 4)
|
||||
M.Confuse(2)
|
||||
else
|
||||
M.Weaken(2)
|
||||
else
|
||||
M.sleeping = max(M.sleeping, 20)
|
||||
M.drowsyness = max(M.drowsyness, 60)
|
||||
|
||||
/datum/reagent/ethanol/flapper
|
||||
name = "Flapper"
|
||||
id = "flapper"
|
||||
description = "A common drink among blood-drinkers, and those who just wanna drink. Tinnibat be damned."
|
||||
taste_description = "a bloody good time"
|
||||
color = "#763424"
|
||||
strength = 15
|
||||
|
||||
glass_name = "flapper"
|
||||
glass_desc = "A common drink among blood-drinkers, and those who just wanna drink. Tinnibat be damned."
|
||||
|
||||
/datum/reagent/toxin/oilslide
|
||||
name = "Oil slide"
|
||||
id = "oilslide"
|
||||
description = "Tasty, if you're a synth, not so much for organics."
|
||||
taste_description = "oil, slime, and fuel! Tastes also like synthetic backwash"
|
||||
color = "#331a1a"
|
||||
|
||||
glass_name = "oilslide"
|
||||
glass_desc = "Tasty, if you're a synth, not so much for organics."
|
||||
|
||||
/datum/reagent/ethanol/sitonmyface
|
||||
name = "Sit on my face"
|
||||
id = "sitonmyface"
|
||||
description = "A drink made of irish coffee and nuts, mostly known for its vulgar name. Makes for a great pickup line though!"
|
||||
taste_description = "creamy coffee and alcohol, and nuts"
|
||||
color = "#896750"
|
||||
strength = 15
|
||||
|
||||
glass_name = "Sit on my face"
|
||||
glass_desc = "A drink made of irish coffee and nuts, mostly known for its vulgar name. Makes for a great pickup line though!"
|
||||
|
||||
/datum/reagent/ethanol/hachi
|
||||
name = "Hachi"
|
||||
id = "hachi"
|
||||
description = "An unusual fusion of bourbon and sake infused with lemon juice, and mushrooms. Sweet, savory, but mostly weird."
|
||||
taste_description = "sweet lemons, black pepper, and savory mushroom"
|
||||
color = "#DC971D"
|
||||
strength = 20
|
||||
|
||||
/datum/reagent/drink/freshtea
|
||||
name = "Green tea"
|
||||
id = "freshtea" //Not meant to be obtainable, this is to define effects for teas made from grown teas.
|
||||
description = "Tasty green tea, it has antioxidants, it's good for you! Fresh means it's even healthier!"
|
||||
taste_description = "green tea"
|
||||
color = "#cac162"
|
||||
adj_dizzy = -4
|
||||
adj_drowsy = -1
|
||||
adj_sleepy = -3
|
||||
adj_temp = 20
|
||||
|
||||
glass_name = "green tea"
|
||||
glass_desc = "Tasty green tea, it has antioxidants, it's good for you!"
|
||||
|
||||
cup_icon_state = "cup_tea"
|
||||
cup_name = "cup of tea"
|
||||
cup_desc = "Tasty green tea, it has antioxidants, it's good for you!"
|
||||
|
||||
/datum/reagent/drink/freshtea/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
..()
|
||||
if(alien == IS_DIONA)
|
||||
return
|
||||
M.adjustToxLoss(-2 * removed) //Higher toxin removal than other tea to reflect difficulty in preparing, still worse than dylovene.
|
||||
|
||||
/datum/reagent/drink/freshtea/green
|
||||
name = "Green tea"
|
||||
id = "freshteagreen"
|
||||
description = "Floral green tea, it has antioxidants, it's good for you! Fresh means it's even healthier!"
|
||||
taste_description = "floral with vegetal notes and a slightly bitter aftertaste"
|
||||
color = "#cac162"
|
||||
|
||||
glass_name = "green tea"
|
||||
glass_desc = "Floral green tea, it has antioxidants, it's fresh and good for you!"
|
||||
|
||||
cup_icon_state = "cup_tea"
|
||||
cup_name = "cup of tea"
|
||||
cup_desc = "Floral green tea, it has antioxidants, it's fresh and good for you!"
|
||||
|
||||
/datum/reagent/drink/tealeavesgreen
|
||||
name = "Green tea leaves"
|
||||
id = "tealeavesgreen"
|
||||
description = "Prepared green tea, just waiting for hot water."
|
||||
taste_description = "overwhelmingly bitter with faint floral notes"
|
||||
color = "#56761d"
|
||||
|
||||
glass_name = "tea leaves"
|
||||
glass_desc = "Dry tea leaves in a cup. Just add hot water!"
|
||||
|
||||
/datum/reagent/drink/teamush
|
||||
name = "Tea mush"
|
||||
id = "teamush"
|
||||
description = "Mashed tea leaves, a bit like grass clippings. You can't make proper tea out of this now."
|
||||
taste_description = "overwhelmingly bitter plant"
|
||||
color = "#7db72d"
|
||||
|
||||
glass_name = "blended plant"
|
||||
glass_desc = "Chunky, mashed up plant of some sort. Looks kinda gross."
|
||||
|
||||
/datum/reagent/drink/instantteapowdergreen
|
||||
name = "Instant green tea powder"
|
||||
id = "instantteapowdergreen"
|
||||
description = "Green tea powder missing all the goodness of green tea." //Heathen.
|
||||
taste_description = "strong bitterness with a subtle chemical aftertaste"
|
||||
color = "#56761d"
|
||||
|
||||
glass_name = "tea powder"
|
||||
glass_desc = "Instant green tea powder. Just add water for imitation green tea!"
|
||||
|
||||
/datum/reagent/drink/instantteagreen
|
||||
name = "Instant green tea"
|
||||
id = "instantteagreen"
|
||||
description = "Convenient green tea missing all the goodness of actual green tea." //It's not even hot.
|
||||
taste_description = "bitterness with a subtle chemical aftertaste"
|
||||
color = "#cac162"
|
||||
|
||||
glass_name = "green tea"
|
||||
glass_desc = "Green tea. It smells a bit off."
|
||||
|
||||
cup_icon_state = "cup_tea"
|
||||
cup_name = "cup of tea"
|
||||
cup_desc = "Green tea. It smells a bit off."
|
||||
|
||||
/datum/reagent/drink/matchapowder
|
||||
name = "Matcha powder"
|
||||
id = "matchapowder"
|
||||
description = "Finely ground green tea. This is about the highest quality matcha you can prepare without traditional methods."
|
||||
taste_description = "heavy bitterness"
|
||||
color = "#86a443"
|
||||
|
||||
glass_name = "matcha powder"
|
||||
glass_desc = "Matcha powder, waiting for brewing."
|
||||
|
||||
/datum/reagent/drink/matcha
|
||||
name = "Matcha"
|
||||
id = "matcha"
|
||||
description = "A form of green tea where the leaf is ground and suspended in water rather than steeped. This is considered cooking grade."
|
||||
taste_description = "floral, full-bodied bitterness with a subtle, earthy sweetness"
|
||||
color = "#9bc265"
|
||||
adj_dizzy = -4
|
||||
adj_drowsy = -1
|
||||
adj_sleepy = -3
|
||||
adj_temp = 20
|
||||
|
||||
glass_name = "matcha"
|
||||
glass_desc = "Heavenly matcha. Good for body and spirit."
|
||||
|
||||
cup_icon_state = "cup_tea"
|
||||
cup_name = "cup of matcha"
|
||||
cup_desc = "Heavenly matcha. Good for body and spirit."
|
||||
|
||||
/datum/reagent/drink/matcha/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
..()
|
||||
if(alien == IS_DIONA)
|
||||
return
|
||||
M.adjustToxLoss(-3 * removed) //Almost on par with dylovene despite being harder to obtain in bulk. Nerf if this causes problems.
|
||||
|
||||
/datum/reagent/drink/juice/gelatin
|
||||
name = "Gelatin"
|
||||
id = "gelatin"
|
||||
description = "It doesnt taste like anything."
|
||||
taste_description = "nothing"
|
||||
nutrition = 0
|
||||
color = "#aaabcf"
|
||||
|
||||
glass_name = "Gelatin"
|
||||
glass_desc = "It's like flavourless slime."
|
||||
|
||||
/datum/reagent/drink/bubbleteawatermelon
|
||||
name = "Watermelon bubble tea"
|
||||
id = "bubbleteawatermelon"
|
||||
description = "A tea with milk and watermelon in it and gelatin balls as well."
|
||||
taste_description = "creamy tea and watermelon"
|
||||
color = "#b83333"
|
||||
|
||||
glass_name = "watermelon bubble tea"
|
||||
glass_desc = "A sweet tea with tasty little flavoured gelatin balls in it, this one is with watermelon."
|
||||
|
||||
/datum/reagent/drink/bubbleteastrawberry
|
||||
name = "Strawberry bubble tea"
|
||||
id = "bubbleteastrawberry"
|
||||
description = "A tea with milk and strawberry in it and gelatin balls as well."
|
||||
taste_description = "creamy tea and strawberry"
|
||||
color = "#eb6c77"
|
||||
|
||||
glass_name = "strawberry bubble tea"
|
||||
glass_desc = "A sweet tea with tasty little flavoured gelatin balls in it, this one is with strawberry."
|
||||
|
||||
/datum/reagent/drink/bubbleteacherry
|
||||
name = "Cherry bubble tea"
|
||||
id = "bubbleteacherry"
|
||||
description = "A tea with milk and cherry in it and gelatin balls as well."
|
||||
taste_description = "creamy tea and cherry"
|
||||
color = "#801e28"
|
||||
|
||||
glass_name = "cherry bubble tea"
|
||||
glass_desc = "A sweet tea with tasty little flavoured gelatin balls in it, this one is with cherry."
|
||||
|
||||
/datum/reagent/drink/bubbleteacoffee
|
||||
name = "Coffee bubble tea"
|
||||
id = "bubbleteacoffee"
|
||||
description = "A tea with milk and coffee in it and gelatin balls as well."
|
||||
taste_description = "creamy tea and coffee"
|
||||
color = "#482910"
|
||||
|
||||
glass_name = "coffee bubble tea"
|
||||
glass_desc = "A sweet tea with tasty little flavoured gelatin balls in it, this one is with coffee."
|
||||
|
||||
/datum/reagent/drink/bubbleteabanana
|
||||
name = "Banana bubble tea"
|
||||
id = "bubbleteabanana"
|
||||
description = "A tea with milk and banana in it and gelatin balls as well."
|
||||
taste_description = "creamy tea and banana"
|
||||
color = "#c3af00"
|
||||
|
||||
glass_name = "banana bubble tea"
|
||||
glass_desc = "A sweet tea with tasty little flavoured gelatin balls in it, this one is with banana."
|
||||
|
||||
/datum/reagent/drink/horchata
|
||||
name = "Horchata"
|
||||
id = "horchata"
|
||||
description = "A sweet and cold rice milk beverage."
|
||||
taste_description = "sweet rice milk and cinnamon"
|
||||
color = "#ebcdc1"
|
||||
adj_temp = -5
|
||||
|
||||
glass_name = "horchata"
|
||||
glass_desc = "A sweet and cold rice milk beverage."
|
||||
|
||||
/datum/reagent/ethanol/snaps
|
||||
name = "Akvavit"
|
||||
id = "snaps"
|
||||
description = "Burns the nose and throat and soothes it with a herby aftertaste...Barely."
|
||||
taste_description = "strong spirit and a little dill"
|
||||
color = "e6d670" // rgb: 230, 214, 112
|
||||
strength = 15
|
||||
|
||||
glass_name = "akvavit"
|
||||
glass_desc = "Burns the nose and throat, and soothes it with a herby aftertaste...Barely."
|
||||
|
||||
/datum/reagent/ethanol/narsour
|
||||
name = "Nar'Sour"
|
||||
id = "narsour"
|
||||
description = "Side effects include self-mutilation and hoarding plasteel."
|
||||
taste_description = "blood and runes"
|
||||
color = "#7D1717"
|
||||
strength = 10
|
||||
|
||||
glass_icon_state = "narsour"
|
||||
glass_name = "Nar'Sour"
|
||||
glass_desc = "A new hit cocktail inspired by THE ARM Breweries will have you shouting Fuu ma'jin in no time!"
|
||||
|
||||
/datum/reagent/ethanol/cogchamp
|
||||
name = "CogChamp"
|
||||
id = "cogchamp"
|
||||
description = "Now you can fill yourself with the power of Ratvar!"
|
||||
taste_description = "brass taste with a hint of oil"
|
||||
color = rgb(255, 201, 49)
|
||||
strength = 10
|
||||
|
||||
glass_icon_state = "cogchamp"
|
||||
glass_name = "CogChamp"
|
||||
glass_desc = "Not even Ratvar's Four Generals could withstand this! Qevax Jryy!"
|
||||
|
||||
//Arachnid slammer states - Jack
|
||||
|
||||
/datum/reagent/ethanol/arachnidslammer
|
||||
name = "Arachnid Slammer"
|
||||
id = "arachnidslammer"
|
||||
description = "An adventurous mix of a cheap, powerful ale with an equally cheap, powerful energy drink and combat drugs. The result should have been undrikable, and yet it sure does put a spring in your step."
|
||||
taste_description = "hearty barley ale, almost illegal energy drink, combat stimulants, and the urge to go mine and wrestle a spider"
|
||||
color = "#594219"
|
||||
strength = 30
|
||||
nutriment_factor = 1
|
||||
|
||||
glass_name = "arachnid slammer"
|
||||
glass_desc = "A freezing pint of delicious Araching Slammer, it foams constantly with the air crisp around it."
|
||||
allergen_type = ALLERGEN_GRAINS //Barley is grain
|
||||
|
||||
/datum/reagent/ethanol/arachnidslammer/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
.=..()
|
||||
M.reagents.add_reagent("infusedarachnidslammer", removed * 5)
|
||||
/datum/reagent/ethanol/arachnidslammer/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
.=..()
|
||||
M.reagents.add_reagent("infusedarachnidslammer", removed * 5)
|
||||
|
||||
/datum/reagent/infusedarachnidslammer
|
||||
name = "Infused Arachnid Slammer"
|
||||
id = "infusedarachnidslammer"
|
||||
description = "When Arachnid Slammer is metabolized you get a concortion of chemicals that breaks down slower. While the alcohol is burned off, the new compounds seems dormant, like they're waiting for some malicious toxin.."
|
||||
taste_description = "flat watered down Arachnid Slammer and a brewing tempest"
|
||||
reagent_state = LIQUID
|
||||
color = "#8040FF"
|
||||
scannable = 1
|
||||
metabolism = REM
|
||||
ingest_met = REM
|
||||
|
||||
glass_name = "infused arachnid slammer"
|
||||
glass_desc = "A pint of metabolized Arachnid Slammer. Even if its flat it still somehow foams and sparkles as well as bubbles more actively when spiders are nearby."
|
||||
|
||||
/datum/reagent/infusedarachnidslammer/enragedarachnidslammer
|
||||
name = "Enraged Arachnid Slammer"
|
||||
id = "enragedarachnidslammer"
|
||||
description = "The best term to scientifically describe this concortion is that the compounds of the Arachnid Slammer are going into a raging frenzy from spider toxin. Its now functioning like a form of potent chemical-based white blood cells that aims to break down harmful compounds and repair the body."
|
||||
taste_description = "cold burning liquid rage and the urge to destroy any spider you see"
|
||||
|
||||
glass_name = "enraged arachnid slammer"
|
||||
glass_desc = "A pint of Enraged Arachnid Slammer. It bubbles and sparkles fiercly as if it was in a berserking state!"
|
||||
|
||||
/datum/reagent/infusedarachnidslammer/enragedarachnidslammer/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
var/chem_effective = 1 * M.species.chem_strength_heal
|
||||
|
||||
M.adjustOxyLoss(-1.5 * removed * chem_effective)
|
||||
M.adjustToxLoss(-1.5 * removed * chem_effective)
|
||||
M.heal_organ_damage(1.5 * removed, 1.5 * removed * chem_effective)
|
||||
M.add_chemical_effect(CE_PAINKILLER, 80 * chem_effective)
|
||||
M.add_chemical_effect(CE_SPEEDBOOST, 0)
|
||||
|
||||
/datum/reagent/drink/pilk
|
||||
name = "Pilk"
|
||||
id = "pilk"
|
||||
description = "A forbidden mixture that dates back to the early days of space civilization, its creation is known to have caused at least one or two massacres."
|
||||
taste_description = "heresy"
|
||||
color = "#4C3100"
|
||||
|
||||
glass_name = "Pilk"
|
||||
glass_desc = "Why would you do this to yourself?"
|
||||
|
||||
cup_name = "glass of Pilk"
|
||||
cup_desc = "A glass of regret."
|
||||
|
||||
//Ported Drinks
|
||||
/datum/reagent/ethanol/alliescocktail
|
||||
name = "Allies Cocktail"
|
||||
id = "alliescocktail"
|
||||
description = "A drink made from your allies. Not as sweet as those made from your enemies."
|
||||
taste_description = "bitter yet free"
|
||||
color = "#60f8f8" // rgb(96, 248, 248)
|
||||
strength = 45
|
||||
|
||||
glass_name = "Allies cocktail"
|
||||
glass_desc = "A drink made from your allies."
|
||||
|
||||
/datum/reagent/ethanol/fetching_fizz
|
||||
name = "Fetching Fizz"
|
||||
id = "fetching_fizz"
|
||||
description = "Cola/iron/uranium mixture resulting in a highly magnetic slurry. Mild alcohol content."
|
||||
taste_description = "charged metal"
|
||||
color = "#FF5B0F" // rgb(255, 91, 15)
|
||||
strength = 90
|
||||
|
||||
glass_name = "Fetching Fizz"
|
||||
glass_desc = "Induces magnetism in the imbiber. Started as a barroom prank but evolved to become popular with miners and scrappers. Metallic aftertaste."
|
||||
|
||||
/datum/reagent/ethanol/fetching_fizz/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
for(var/obj/item/weapon/ore/O in orange(3, M))
|
||||
step_towards(O, get_turf(M))
|
||||
|
||||
/datum/reagent/ethanol/hearty_punch
|
||||
name = "Hearty Punch"
|
||||
id = "hearty_punch"
|
||||
description = "Brave bull/syndicate bomb/absinthe mixture resulting in an energizing beverage. Mild alcohol content."
|
||||
taste_description = "bravado in the face of disaster"
|
||||
color = "#8C0000" // rgb(140, 0, 0)
|
||||
strength = 90
|
||||
glass_name = "Hearty Punch"
|
||||
glass_desc = "Aromatic beverage served piping hot. According to folk tales it can almost wake the dead."
|
||||
|
||||
/datum/reagent/ethanol/hearty_punch/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
if(M.health<=0)
|
||||
M.adjustBruteLoss(-3 * removed)
|
||||
M.adjustFireLoss(-3 * removed)
|
||||
M.adjustCloneLoss(-5 * removed)
|
||||
M.adjustOxyLoss(-4 * removed)
|
||||
M.adjustToxLoss(-3 * removed)
|
||||
|
||||
/datum/reagent/ethanol/squirt_cider
|
||||
name = "Squirt Cider"
|
||||
id = "squirt_cider"
|
||||
description = "Fermented squirt extract with a nose of stale bread and ocean water. Whatever a squirt is."
|
||||
taste_description = "stale bread with a staler aftertaste"
|
||||
color = "#FF0000" // rgb(255, 0, 0)
|
||||
strength = 40
|
||||
glass_name = "Squirt Cider"
|
||||
glass_desc = "Squirt cider will toughen you right up. Too bad about the musty aftertaste."
|
||||
nutriment_factor = 2
|
||||
|
||||
/datum/reagent/ethanol/fringe_weaver
|
||||
name = "Fringe Weaver"
|
||||
id = "fringe_weaver"
|
||||
description = "Bubbly, classy, and undoubtedly strong - a Glitch City classic."
|
||||
taste_description = "ethylic alcohol with a hint of sugar"
|
||||
color = "#FFEAC4" // rgb(255, 234, 197)
|
||||
strength = 10
|
||||
glass_name = "Fringe Weaver"
|
||||
glass_desc = "It's a wonder it doesn't spill out of the glass."
|
||||
|
||||
/datum/reagent/ethanol/crevice_spike
|
||||
name = "Crevice Spike"
|
||||
id = "crevice_spike"
|
||||
description = "Sour, bitter, and smashingly sobering."
|
||||
taste_description = "a bitter SPIKE with a sour aftertaste"
|
||||
color = "#5BD231" // rgb(91, 210, 49)
|
||||
strength = 200
|
||||
glass_name = "Crevice Spike"
|
||||
glass_desc = "It'll either knock the drunkenness out of you or knock you out cold. Both, probably."
|
||||
|
||||
/datum/reagent/ethanol/crevice_spike/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
M.adjustBruteLoss(50 * removed)
|
||||
for(var/datum/reagent/R in M.ingested.reagent_list)
|
||||
if(istype(R, /datum/reagent/ethanol))
|
||||
R.remove_self(50 * removed)
|
||||
|
||||
/datum/reagent/ethanol/duplex
|
||||
name = "Duplex"
|
||||
id = "duplex"
|
||||
description = "An inseparable combination of two fruity drinks."
|
||||
taste_description = "green apples and blue raspberries"
|
||||
color = "#50e5cf" // rgb(80, 229, 207)
|
||||
strength = 50
|
||||
glass_name = "Duplex"
|
||||
glass_desc = "To imbibe one component separately from the other is consider a great faux pas."
|
||||
|
||||
/datum/reagent/ethanol/mauna_loa
|
||||
name = "Mauna Loa"
|
||||
id = "mauna_loa"
|
||||
description = "Extremely hot; not for the faint of heart!"
|
||||
taste_description = "fiery, with an aftertaste of burnt flesh"
|
||||
color = "#fe8308" // rgb(254, 131, 8)
|
||||
strength = 50
|
||||
glass_name = "Mauna Loa"
|
||||
glass_desc = "Lava in a drink... mug... volcano... thing."
|
||||
|
||||
/datum/reagent/ethanol/mauna_loa/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
if(prob(10))
|
||||
M.adjust_fire_stacks(5*removed)
|
||||
M.IgniteMob()
|
||||
|
||||
/datum/reagent/ethanol/hiveminderaser
|
||||
name = "Hivemind Eraser"
|
||||
id = "hiveminderaser"
|
||||
description = "A vessel of pure flavor."
|
||||
taste_description = "psychic links"
|
||||
color = "#FF80FC" // rgb(255, 128, 252)
|
||||
strength = 50
|
||||
glass_name = "Hivemind Eraser"
|
||||
glass_desc = "For when even mindshields can't save you."
|
||||
|
||||
/datum/reagent/ethanol/erikasurprise
|
||||
name = "Erika Surprise"
|
||||
id = "erikasurprise"
|
||||
description = "The surprise is, it's green!"
|
||||
taste_description = "tartness and bananas"
|
||||
color = "#2E6671" // rgb(46, 102, 113)
|
||||
strength = 75
|
||||
glass_name = "Erika Surprise"
|
||||
glass_desc = "The surprise is, it's green!"
|
||||
|
||||
////////////////////////////////////////////////
|
||||
/////////FOODSTUFF/////////////////////////////
|
||||
//////////////////////////////////////////////
|
||||
|
||||
/datum/reagent/cinnamonpowder
|
||||
name = "ground cinnamon"
|
||||
id = "cinnamonpowder"
|
||||
description = "Cinnamon, a spice made from tree bark, ground into a fine powder. Probably not a good idea to eat on its own!"
|
||||
taste_description= "sweet spice with a hint of wood"
|
||||
color = "#a96622"
|
||||
|
||||
glass_name = "ground cinnamon"
|
||||
glass_desc = "A glass of ground cinnamon. Dare you take the challenge?"
|
||||
|
||||
//YW drinks
|
||||
/datum/reagent/drink/lovepotion_yw
|
||||
name = "Strawberry Love Potion"
|
||||
id = "strawberrylovepotion"
|
||||
description = "Creamy strawberries and sugar, simple and sweet."
|
||||
taste_description = "strawberries and cream"
|
||||
color = "#fc8a8a" // rgb(252, 138, 138)
|
||||
|
||||
glass_name = "Love Potion"
|
||||
glass_desc = "Love me tender, love me sweet."
|
||||
|
||||
/datum/reagent/ethanol/wormblood
|
||||
name = "Worm Blood"
|
||||
id = "wormblood"
|
||||
description = "Who had the grand idea to bottle THE BLOOD OF A WORM."
|
||||
taste_description = "Wriggly cave fungus"
|
||||
color = "#827A00"
|
||||
strength = 30
|
||||
druggy = 10
|
||||
|
||||
glass_name = "Worm blood"
|
||||
glass_desc = "Who had the grand idea to bottle THE BLOOD OF A WORM."
|
||||
glass_icon_state = "wormblood"
|
||||
glass_center_of_mass = list("x"=16, "y"=8)
|
||||
glass_icon_file = 'icons/obj/drinks_yw.dmi'
|
||||
264
modular_chomp/code/modules/vore/eating/exportpanel_ch.dm
Normal file
264
modular_chomp/code/modules/vore/eating/exportpanel_ch.dm
Normal file
@@ -0,0 +1,264 @@
|
||||
//
|
||||
// Belly Export Panel
|
||||
//
|
||||
|
||||
/datum/vore_look/export_panel/proc/open_export_panel(mob/user)
|
||||
tgui_interact(user)
|
||||
|
||||
/datum/vore_look/export_panel/tgui_interact(mob/user, datum/tgui/ui)
|
||||
ui = SStgui.try_update_ui(user, src, ui)
|
||||
if(!ui)
|
||||
ui = new(user, src, "VorePanelExport", "Vore Export Panel")
|
||||
ui.open()
|
||||
ui.set_autoupdate(FALSE)
|
||||
|
||||
/datum/vore_look/export_panel/tgui_fallback(payload)
|
||||
if(..())
|
||||
return TRUE
|
||||
|
||||
//var/mob/living/host = usr
|
||||
//host.vorebelly_printout(TRUE)
|
||||
|
||||
/datum/vore_look/export_panel/tgui_act(action, params)
|
||||
if(..())
|
||||
return TRUE
|
||||
|
||||
/datum/vore_look/export_panel/tgui_data(mob/user)
|
||||
var/list/data = list()
|
||||
var/mob/living/host = user
|
||||
|
||||
data["db_version"] = "0.1"
|
||||
data["db_repo"] = "chompstation"
|
||||
data["mob_name"] = host.real_name
|
||||
|
||||
for(var/belly in host.vore_organs)
|
||||
if(isbelly(belly))
|
||||
var/obj/belly/B = belly
|
||||
var/belly_data = list()
|
||||
|
||||
// General Information
|
||||
belly_data["name"] = B.name
|
||||
belly_data["desc"] = B.desc
|
||||
belly_data["absorbed_desc"] = B.absorbed_desc
|
||||
belly_data["vore_verb"] = B.vore_verb
|
||||
belly_data["release_verb"] = B.release_verb
|
||||
|
||||
// Controls
|
||||
belly_data["mode"] = B.digest_mode
|
||||
var/list/addons = list()
|
||||
for(var/flag_name in B.mode_flag_list)
|
||||
if(B.mode_flags & B.mode_flag_list[flag_name])
|
||||
addons.Add(flag_name)
|
||||
belly_data["addons"] = addons
|
||||
belly_data["item_mode"] = B.item_digest_mode
|
||||
|
||||
// Messages
|
||||
belly_data["struggle_messages_outside"] = list()
|
||||
for(var/msg in B.struggle_messages_outside)
|
||||
belly_data["struggle_messages_outside"] += msg
|
||||
|
||||
belly_data["struggle_messages_inside"] = list()
|
||||
for(var/msg in B.struggle_messages_inside)
|
||||
belly_data["struggle_messages_inside"] += msg
|
||||
|
||||
belly_data["absorbed_struggle_messages_outside"] = list()
|
||||
for(var/msg in B.absorbed_struggle_messages_outside)
|
||||
belly_data["absorbed_struggle_messages_outside"] += msg
|
||||
|
||||
belly_data["absorbed_struggle_messages_inside"] = list()
|
||||
for(var/msg in B.absorbed_struggle_messages_inside)
|
||||
belly_data["absorbed_struggle_messages_inside"] += msg
|
||||
|
||||
belly_data["digest_messages_owner"] = list()
|
||||
for(var/msg in B.digest_messages_owner)
|
||||
belly_data["digest_messages_owner"] += msg
|
||||
|
||||
belly_data["digest_messages_prey"] = list()
|
||||
for(var/msg in B.digest_messages_prey)
|
||||
belly_data["digest_messages_prey"] += msg
|
||||
|
||||
belly_data["absorb_messages_owner"] = list()
|
||||
for(var/msg in B.absorb_messages_owner)
|
||||
belly_data["absorb_messages_owner"] += msg
|
||||
|
||||
belly_data["absorb_messages_prey"] = list()
|
||||
for(var/msg in B.absorb_messages_prey)
|
||||
belly_data["absorb_messages_prey"] += msg
|
||||
|
||||
belly_data["unabsorb_messages_owner"] = list()
|
||||
for(var/msg in B.unabsorb_messages_owner)
|
||||
belly_data["unabsorb_messages_owner"] += msg
|
||||
|
||||
belly_data["unabsorb_messages_prey"] = list()
|
||||
for(var/msg in B.unabsorb_messages_prey)
|
||||
belly_data["unabsorb_messages_prey"] += msg
|
||||
|
||||
belly_data["examine_messages"] = list()
|
||||
for(var/msg in B.examine_messages)
|
||||
belly_data["examine_messages"] += msg
|
||||
|
||||
belly_data["examine_messages_absorbed"] = list()
|
||||
for(var/msg in B.examine_messages_absorbed)
|
||||
belly_data["examine_messages_absorbed"] += msg
|
||||
|
||||
//belly_data["emote_list"] = list()
|
||||
//for(var/EL in B.emote_lists)
|
||||
// for(var/msg in B.emote_lists[EL])
|
||||
// msg_list += msg
|
||||
//
|
||||
// belly_data["emote_lists"] += list(EL, msg_list)
|
||||
|
||||
// I will use this first before the code above gets fixed
|
||||
belly_data["emotes_digest"] = list()
|
||||
for(var/msg in B.emote_lists[DM_DIGEST])
|
||||
belly_data["emotes_digest"] += msg
|
||||
|
||||
belly_data["emotes_hold"] = list()
|
||||
for(var/msg in B.emote_lists[DM_HOLD])
|
||||
belly_data["emotes_hold"] += msg
|
||||
|
||||
belly_data["emotes_holdabsorbed"] = list()
|
||||
for(var/msg in B.emote_lists[DM_HOLD_ABSORBED])
|
||||
belly_data["emotes_holdabsorbed"] += msg
|
||||
|
||||
belly_data["emotes_absorb"] = list()
|
||||
for(var/msg in B.emote_lists[DM_ABSORB])
|
||||
belly_data["emotes_absorb"] += msg
|
||||
|
||||
belly_data["emotes_heal"] = list()
|
||||
for(var/msg in B.emote_lists[DM_HEAL])
|
||||
belly_data["emotes_heal"] += msg
|
||||
|
||||
belly_data["emotes_drain"] = list()
|
||||
for(var/msg in B.emote_lists[DM_DRAIN])
|
||||
belly_data["emotes_drain"] += msg
|
||||
|
||||
belly_data["emotes_steal"] = list()
|
||||
for(var/msg in B.emote_lists[DM_SIZE_STEAL])
|
||||
belly_data["emotes_steal"] += msg
|
||||
|
||||
belly_data["emotes_egg"] = list()
|
||||
for(var/msg in B.emote_lists[DM_EGG])
|
||||
belly_data["emotes_egg"] += msg
|
||||
|
||||
belly_data["emotes_shrink"] = list()
|
||||
for(var/msg in B.emote_lists[DM_SHRINK])
|
||||
belly_data["emotes_shrink"] += msg
|
||||
|
||||
belly_data["emotes_grow"] = list()
|
||||
for(var/msg in B.emote_lists[DM_GROW])
|
||||
belly_data["emotes_grow"] += msg
|
||||
|
||||
belly_data["emotes_unabsorb"] = list()
|
||||
for(var/msg in B.emote_lists[DM_UNABSORB])
|
||||
belly_data["emotes_unabsorb"] += msg
|
||||
|
||||
// Options
|
||||
belly_data["digest_brute"] = B.digest_brute
|
||||
belly_data["digest_burn"] = B.digest_burn
|
||||
belly_data["digest_oxy"] = B.digest_oxy
|
||||
|
||||
belly_data["can_taste"] = B.can_taste
|
||||
belly_data["contaminates"] = B.contaminates
|
||||
belly_data["contamination_flavor"] = B.contamination_flavor
|
||||
belly_data["contamination_color"] = B.contamination_color
|
||||
belly_data["nutrition_percent"] = B.nutrition_percent
|
||||
belly_data["bulge_size"] = B.bulge_size
|
||||
belly_data["display_absorbed_examine"] = B.display_absorbed_examine
|
||||
belly_data["save_digest_mode"] = B.save_digest_mode
|
||||
belly_data["emote_active"] = B.emote_active
|
||||
belly_data["emote_time"] = B.emote_time
|
||||
belly_data["shrink_grow_size"] = B.shrink_grow_size
|
||||
belly_data["vorespawn_blacklist"] = B.vorespawn_blacklist
|
||||
belly_data["egg_type"] = B.egg_type
|
||||
belly_data["selective_preference"] = B.selective_preference
|
||||
|
||||
// Sounds
|
||||
belly_data["is_wet"] = B.is_wet
|
||||
belly_data["wet_loop"] = B.wet_loop
|
||||
belly_data["fancy_vore"] = B.fancy_vore
|
||||
belly_data["vore_sound"] = B.vore_sound
|
||||
belly_data["release_sound"] = B.release_sound
|
||||
|
||||
// Visuals
|
||||
belly_data["affects_vore_sprites"] = B.affects_vore_sprites
|
||||
belly_data["count_absorbed_prey_for_sprite"] = B.count_absorbed_prey_for_sprite
|
||||
belly_data["resist_triggers_animation"] = B.resist_triggers_animation
|
||||
belly_data["size_factor_for_sprite"] = B.size_factor_for_sprite
|
||||
belly_data["belly_sprite_to_affect"] = B.belly_sprite_to_affect
|
||||
|
||||
// Visuals (Belly Fullscreens Preview and Coloring)
|
||||
belly_data["belly_fullscreen_color"] = B.belly_fullscreen_color
|
||||
|
||||
// Visuals (Vore FX)
|
||||
belly_data["disable_hud"] = B.disable_hud
|
||||
|
||||
// Interactions
|
||||
belly_data["escapable"] = B.escapable
|
||||
|
||||
belly_data["escapechance"] = B.escapechance
|
||||
belly_data["escapetime"] = B.escapetime
|
||||
|
||||
belly_data["transferchance"] = B.transferchance
|
||||
belly_data["transferlocation"] = B.transferlocation
|
||||
|
||||
belly_data["transferchance_secondary"] = B.transferchance_secondary
|
||||
belly_data["transferlocation_secondary"] = B.transferlocation_secondary
|
||||
|
||||
belly_data["absorbchance"] = B.absorbchance
|
||||
belly_data["digestchance"] = B.digestchance
|
||||
|
||||
// Interactions (Auto-Transfer)
|
||||
belly_data["autotransferchance"] = B.autotransferchance
|
||||
belly_data["autotransferwait"] = B.autotransferwait
|
||||
belly_data["autotransferlocation"] = B.autotransferlocation
|
||||
belly_data["autotransfer_enabled"] = B.autotransfer_enabled
|
||||
belly_data["autotransfer_min_amount"] = B.autotransfer_min_amount
|
||||
belly_data["autotransfer_max_amount"] = B.autotransfer_max_amount
|
||||
|
||||
// Liquid Options
|
||||
belly_data["show_liquids"] = B.show_liquids
|
||||
belly_data["reagentbellymode"] = B.reagentbellymode
|
||||
belly_data["reagent_chosen"] = B.reagent_chosen
|
||||
belly_data["reagent_name"] = B.reagent_name
|
||||
belly_data["reagent_transfer_verb"] = B.reagent_transfer_verb
|
||||
belly_data["gen_time_display"] = B.gen_time_display
|
||||
belly_data["custom_max_volume"] = B.custom_max_volume
|
||||
belly_data["vorefootsteps_sounds"] = B.vorefootsteps_sounds
|
||||
|
||||
var/list/reagent_flags = list()
|
||||
for(var/flag_name in B.reagent_mode_flag_list)
|
||||
if(B.reagent_mode_flags & B.reagent_mode_flag_list[flag_name])
|
||||
reagent_flags.Add(flag_name)
|
||||
belly_data["reagent_mode_flag_list"] = reagent_flags
|
||||
|
||||
data["bellies"] += list(belly_data)
|
||||
|
||||
// Liquid Messages
|
||||
belly_data["liquid_fullness1_messages"] = B.liquid_fullness1_messages
|
||||
belly_data["liquid_fullness2_messages"] = B.liquid_fullness2_messages
|
||||
belly_data["liquid_fullness3_messages"] = B.liquid_fullness3_messages
|
||||
belly_data["liquid_fullness4_messages"] = B.liquid_fullness4_messages
|
||||
belly_data["liquid_fullness5_messages"] = B.liquid_fullness5_messages
|
||||
|
||||
belly_data["fullness1_messages"] = list()
|
||||
for(var/msg in B.fullness1_messages)
|
||||
belly_data["fullness1_messages"] += msg
|
||||
|
||||
belly_data["fullness2_messages"] = list()
|
||||
for(var/msg in B.fullness2_messages)
|
||||
belly_data["fullness2_messages"] += msg
|
||||
|
||||
belly_data["fullness3_messages"] = list()
|
||||
for(var/msg in B.fullness3_messages)
|
||||
belly_data["fullness3_messages"] += msg
|
||||
|
||||
belly_data["fullness4_messages"] = list()
|
||||
for(var/msg in B.fullness4_messages)
|
||||
belly_data["fullness4_messages"] += msg
|
||||
|
||||
belly_data["fullness5_messages"] = list()
|
||||
for(var/msg in B.fullness5_messages)
|
||||
belly_data["fullness5_messages"] += msg
|
||||
|
||||
return data
|
||||
@@ -0,0 +1,49 @@
|
||||
//To help streamline virology work. Would be broken if put in Xenobio so maybe perhaps don't do that.
|
||||
//Or do. I'm just a dev, not your boss.
|
||||
|
||||
/obj/machinery/processor/monkey
|
||||
name = "monkey processor"
|
||||
desc = "An industrial grinder used to automate the process of monkey recycling."
|
||||
description_info = "Clickdrag dead monkeys to it to insert them. It will make a new monkey cube for every monkey it processes."
|
||||
|
||||
/obj/item/weapon/circuitboard/processor/monkey
|
||||
name = T_BOARD("monkey processor")
|
||||
build_path = /obj/machinery/processor/monkey
|
||||
origin_tech = list(TECH_DATA = 2, TECH_BIO = 2)
|
||||
|
||||
/obj/machinery/processor/monkey/begin_processing()
|
||||
if(processing)
|
||||
return // Already doing it.
|
||||
processing = TRUE
|
||||
playsound(src, 'sound/machines/juicer.ogg', 50, 1)
|
||||
for(var/atom/movable/AM in to_be_processed)
|
||||
extract(AM)
|
||||
sleep(1 SECONDS)
|
||||
|
||||
while(monkeys_recycled >= 1)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/monkeycube(get_turf(src))
|
||||
playsound(src, 'sound/effects/splat.ogg', 50, 1)
|
||||
monkeys_recycled -= 1
|
||||
sleep(1 SECOND)
|
||||
|
||||
processing = FALSE
|
||||
playsound(src, 'sound/machines/ding.ogg', 50, 1)
|
||||
|
||||
/obj/machinery/processor/monkey/extract(var/atom/movable/AM)
|
||||
if(istype(AM, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/M = AM
|
||||
playsound(src, 'sound/effects/splat.ogg', 50, 1)
|
||||
to_be_processed.Remove(M)
|
||||
qdel(M)
|
||||
monkeys_recycled++
|
||||
sleep(1 SECOND)
|
||||
|
||||
/obj/machinery/processor/monkey/can_insert(var/atom/movable/AM)
|
||||
if(istype(AM, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = AM
|
||||
if(!istype(H.species, /datum/species/monkey))
|
||||
return FALSE
|
||||
if(H.stat != DEAD)
|
||||
return FALSE
|
||||
return TRUE
|
||||
return FALSE
|
||||
Reference in New Issue
Block a user