Merge branch 'origin/HEAD'

This commit is contained in:
DynaJ0ule
2023-02-06 12:31:43 -05:00
parent 8da38160f3
commit 5209413204
106 changed files with 4743 additions and 757 deletions
+3 -3
View File
@@ -1023,9 +1023,9 @@ structure_check() searches for nearby cultist structures required for the invoca
var/datum/round_event_control/mice_migration/M = new()
D.runEvent()
M.runEvent()
if(11 to 20)
var/datum/round_event_control/radiation_storm/RS = new()
RS.runEvent()
// if(11 to 20)
// var/datum/round_event_control/radiation_storm/RS = new()
// RS.runEvent()
if(21 to 30)
var/datum/round_event_control/brand_intelligence/BI = new()
BI.runEvent()
@@ -37,6 +37,7 @@ GLOBAL_LIST_INIT(disease_ability_singletons, list(
new /datum/disease_ability/symptom/powerful/flesh_eating,
// new /datum/disease_ability/symptom/powerful/genetic_mutation,
new /datum/disease_ability/symptom/powerful/inorganic_adaptation,
new /datum/disease_ability/symptom/medium/undead_adaptation,
new /datum/disease_ability/symptom/powerful/heal/starlight,
new /datum/disease_ability/symptom/powerful/heal/oxygen,
new /datum/disease_ability/symptom/powerful/heal/chem,
@@ -47,7 +48,8 @@ GLOBAL_LIST_INIT(disease_ability_singletons, list(
new /datum/disease_ability/symptom/powerful/heal/radiation,
new /datum/disease_ability/symptom/powerful/heal/coma,
new /datum/disease_ability/symptom/powerful/youth,
new /datum/disease_ability/symptom/medium/heal/weight_gain
new /datum/disease_ability/symptom/medium/heal/weight_gain, //GS13
new /datum/disease_ability/symptom/medium/robotic_adaptation //GS13
))
/datum/disease_ability
@@ -411,6 +413,13 @@ GLOBAL_LIST_INIT(disease_ability_singletons, list(
/datum/disease_ability/symptom/powerful/inorganic_adaptation
symptoms = list(/datum/symptom/inorganic_adaptation)
short_desc = "Allows to infect inorganic races."
long_desc = "Allows to infect inorganic races. Includes plasmamen and golems."
/datum/disease_ability/symptom/medium/undead_adaptation
symptoms = list(/datum/symptom/undead_adaptation)
short_desc = "Allows to infect undead races."
long_desc = "Allows to infect undead races. Includes skeletons, zombies, and vampires."
/datum/disease_ability/symptom/powerful/narcolepsy
symptoms = list(/datum/symptom/narcolepsy)
@@ -420,11 +429,18 @@ GLOBAL_LIST_INIT(disease_ability_singletons, list(
short_desc = "Cause victims to become eternally young."
long_desc = "Cause victims to become eternally young. Provides boosts to all stats except transmissibility."
//GS13 additions
/datum/disease_ability/symptom/medium/heal/weight_gain
symptoms = list(/datum/symptom/weight_gain)
short_desc = "Cause victims to gain weight."
long_desc = "Cause victims to gain weight. Boosts stage speed, but weakens all other stats."
/datum/disease_ability/symptom/medium/robotic_adaptation
symptoms = list(/datum/symptom/robotic_adaptation)
short_desc = "Allows to infect robotic races."
long_desc = "Allows to infect robotic races. Includes synthetic lizards and ipcs."
//--end here
/****HEALING SUBTYPE****/
/datum/disease_ability/symptom/powerful/heal/starlight
@@ -1,6 +1,6 @@
#define CHALLENGE_TELECRYSTALS 280
#define PLAYER_SCALING 1.5
#define CHALLENGE_TIME_LIMIT 3000
#define CHALLENGE_TIME_LIMIT 10000
#define CHALLENGE_PLAYERS_TARGET 50 //target players population. anything below is a malus to the challenge tc bonus.
#define TELECRYSTALS_MALUS_SCALING 1 //the higher the value, the bigger the malus.
#define CHALLENGE_SHUTTLE_DELAY 15000 // 25 minutes, so the ops have at least 5 minutes before the shuttle is callable.
@@ -662,8 +662,8 @@ This is here to make the tiles around the station mininuke change when it's arme
var/datum/round_event_control/operative/loneop = locate(/datum/round_event_control/operative) in SSevents.control
if(istype(loneop))
loneop.weight += 1
if(loneop.weight % 5 == 0)
message_admins("[src] is stationary in [ADMIN_VERBOSEJMP(newturf)]. The weight of Lone Operative is now [loneop.weight].")
// if(loneop.weight % 5 == 0)
// message_admins("[src] is stationary in [ADMIN_VERBOSEJMP(newturf)]. The weight of Lone Operative is now [loneop.weight].") // Commenting this out because it's a fucking pain for the admins - Sono
log_game("[src] is stationary for too long in [loc_name(newturf)], and has increased the weight of the Lone Operative event to [loneop.weight].")
else
lastlocation = newturf
+137
View File
@@ -614,3 +614,140 @@
shoes = /obj/item/clothing/shoes/sneakers/black
suit = /obj/item/clothing/suit/armor/vest
glasses = /obj/item/clothing/glasses/sunglasses/reagent
// GS13 stuff!
// Restaurant Worker: Basically just a bunch of wagies who are supposed to lure people into their restaurant
/obj/effect/mob_spawn/human/fastfood
name = "Corporate cryostasis pod"
desc = "Through the grease-stained cryopod glass, you can see someone sleeping inside..."
mob_name = "fastfood worker"
job_description = "Restaurant Worker"
icon = 'icons/obj/machines/sleeper.dmi'
icon_state = "sleeper"
death = FALSE
roundstart = FALSE
mob_species = /datum/species/human
short_desc = "It's the grand opening day!"
flavour_text = "After you've sold your soul to corporate overlords, your contract obliged you to enter cryostasis. \
Finally, after God knows how long, the cryopod system have awakened you with only a single sentence of information - welcome and lure in new guests into the freshly opened restaurant!"
assignedrole = "Restaurant worker"
mirrorcanloadappearance = TRUE
/obj/effect/mob_spawn/human/fastfood/Initialize(mapload)
. = ..()
var/arrpee = rand(1,3)
switch(arrpee)
if(1)
flavour_text += "You are this restaurant's manager, taking care of all the necessary paperwork, overseeing all the workers...\
But most importantly, you always have to make sure that the restaurant prospers and remains in good shape! "
outfit.glasses = /obj/item/clothing/glasses/sunglasses/reagent
outfit.uniform = /obj/item/clothing/under/suit_jacket/burgundy
outfit.shoes = /obj/item/clothing/shoes/sneakers/black
outfit.back = /obj/item/storage/backpack/satchel/leather
if(2)
flavour_text += "You are this restaurant's cook, using up the plethora of ingredients to cook up deliciously greasy and caloric foods.\
The kitchen and the bar is your turf! Make sure the guests stay fed."
outfit.glasses = /obj/item/clothing/glasses/sunglasses/reagent
outfit.head = /obj/item/clothing/head/soft/black
outfit.uniform = /obj/item/clothing/under/bb_sweater/purple
outfit.suit = /obj/item/clothing/suit/apron/chef
outfit.shoes = /obj/item/clothing/shoes/sneakers/black
outfit.back = /obj/item/storage/backpack
if(3)
flavour_text += "You are this restaurant's waiter, responsible not only for tending to the guests, but also fixing and taking care of station's shape, power and looks.\
Make sure everything looks squeaky clean and that the restaurant remains powered!"
outfit.head = /obj/item/clothing/head/soft/black
outfit.uniform = /obj/item/clothing/under/waiter
outfit.shoes = /obj/item/clothing/shoes/sneakers/black
outfit.back = /obj/item/storage/backpack
/obj/effect/mob_spawn/human/fastfood/special(mob/living/carbon/human/new_spawn)
ADD_TRAIT(new_spawn,TRAIT_EXEMPT_HEALTH_EVENTS,GHOSTROLE_TRAIT)
/obj/effect/mob_spawn/human/fastfood/Destroy()
new/obj/structure/fluff/empty_sleeper(get_turf(src))
return ..()
// Feeder's Den - fanatic (GS13)
/obj/effect/mob_spawn/human/feeders_den/fanatic
name = "Sleeper pod"
desc = "Through the red glass, you can see someone sleeping inside..."
mob_name = "fanatical feeder"
job_description = "Fanatical degenerate"
short_desc = "You are a member of a niche branch of Syndicate with... strange goals."
flavour_text = "After months of construction and gathering equipment, your den is finished - a monument to gluttony, equipped with every tool to turn any sharp body into a quivering mound of lard..."
important_info = "Keep your den in one piece and away from curious eyes! YOU AREN'T ALLOWED TO CAPTURE / FATTEN UP PEOPLE WHO DON'T DO NON-CON OR DIDN'T AGREE TO IT!!"
outfit = /datum/outfit/feeders_den/fanatic
mirrorcanloadappearance = TRUE
assignedrole = "Space fanatic"
icon = 'icons/obj/machines/sleeper.dmi'
icon_state = "sleeper_s"
death = FALSE
roundstart = FALSE
mob_species = /datum/species/human
/datum/outfit/feeders_den/fanatic
name = "Feeder Fanatic"
uniform = /obj/item/clothing/under/syndicate
suit = /obj/item/clothing/suit/armor/vest
shoes = /obj/item/clothing/shoes/combat
gloves = /obj/item/clothing/gloves/combat
ears = /obj/item/radio/headset/syndicate/alt
back = /obj/item/storage/backpack
r_hand = /obj/item/melee/transforming/energy/sword/saber
r_pocket = /obj/item/gun/ballistic/automatic/pistol
id = /obj/item/card/id/syndicate/anyone
implants = list(/obj/item/implant/weapons_auth)
/datum/outfit/feeders_den/fanatic/Destroy()
new/obj/structure/fluff/empty_sleeper/syndicate(get_turf(src))
..()
/obj/effect/mob_spawn/human/feeders_den/fanatic/special(mob/living/carbon/human/new_spawn)
ADD_TRAIT(new_spawn,TRAIT_EXEMPT_HEALTH_EVENTS,GHOSTROLE_TRAIT)
// Feeder's Den - victim (GS13)
/obj/effect/mob_spawn/human/feeders_den/victim
name = "Grease stained cryopod"
mob_name = "feeder victim"
desc = "Through the grease-stained cryopod glass, you can see someone obese sleeping inside..."
job_description = "Den Victim"
short_desc = "You don't remember how you even got here."
flavour_text = "It's been a while since you've been stuck here. Each day passes by with non-stop feeding, lazing around and the pain of a stretched, creaking stomach... Is there any hope for you to get out of here before things get truly hopeless?"
important_info = "Keep your behaviour appropriate and fitting for your role, at least loosely."
outfit = /datum/outfit/feeders_den/victim
mirrorcanloadappearance = TRUE
assignedrole = "Imprisoned victim"
icon = 'icons/obj/machines/sleeper.dmi'
icon_state = "sleeper_s"
death = FALSE
roundstart = FALSE
mob_species = /datum/species/human
/datum/outfit/feeders_den/victim
name = "Den Victim"
uniform = /obj/item/clothing/under/polychromic/shortpants
/datum/outfit/feeders_den/victim/Destroy()
new/obj/structure/fluff/empty_sleeper/syndicate(get_turf(src))
..()
/obj/effect/mob_spawn/human/feeders_den/victim/startfat(mob/living/carbon/human/new_spawn)
new_spawn.fatness = 1000
return ..()
/obj/effect/mob_spawn/human/feeders_den/victim/special(mob/living/carbon/human/new_spawn)
ADD_TRAIT(new_spawn,TRAIT_EXEMPT_HEALTH_EVENTS,GHOSTROLE_TRAIT)
/obj/effect/mob_spawn/proc/startfat(mob/M) //move this somewhere else later when we're cleaning up our content - Sono
return
@@ -274,6 +274,11 @@
unit_name = "Clown statue"
export_types = list(/obj/structure/statue/bananium/clown)
/datum/export/large/fattystatue //GS13
cost = 2000
unit_name = "Fatty statue"
export_types = list(/obj/structure/statue/calorite/fatty)
/datum/export/large/sandstatue
cost = 90 //Big cash
unit_name = "sandstone statue"
+2
View File
@@ -398,6 +398,8 @@
/obj/item/stack/tile/carpet/red/fifty,
/obj/item/stack/tile/carpet/royalblue/fifty,
/obj/item/stack/tile/carpet/royalblue/fifty,
/obj/item/stack/tile/carpet/gato/fifty,
/obj/item/stack/tile/carpet/gato/fifty,
/obj/item/stack/tile/carpet/royalblack/fifty,
/obj/item/stack/tile/carpet/royalblack/fifty,
/obj/item/stack/tile/carpet/blackred/fifty,
+7 -1
View File
@@ -29,7 +29,7 @@
resistance_flags = NONE
/*
* Posshim's Corpus atire
* Posshim's Corpus atire
*/
/obj/item/clothing/suit/hooded/corpus/
name = "Standard Voidsuit"
@@ -517,6 +517,12 @@
icon_state = "letterman_s"
item_state = "letterman_s"
/obj/item/clothing/suit/jacket/letterman_gato
name = "Gato letterman jacket"
desc = "A GATO themed letterman jacket. Perfect for repping your pride in the company as you violently murder russian mobsters"
icon_state = "letterman_gato"
item_state = "letterman_gato"
/obj/item/clothing/suit/jacket/letterman_nanotrasen
name = "blue letterman jacket"
desc = "A blue letterman jacket with a proud Nanotrasen N on the back. The tag says that it was made in Space China."
+1 -1
View File
@@ -22,7 +22,7 @@
/datum/round_event/disease_outbreak/start()
var/advanced_virus = FALSE
max_severity = 3 + max(FLOOR((world.time - control.earliest_start)/6000, 1),0) //3 symptoms at 20 minutes, plus 1 per 10 minutes
max_severity = 3 + CLAMP(FLOOR((world.time - control.earliest_start)/6000, 1),0, 5) //3 symptoms at 20 minutes, plus 1 per 10 minutes, maximum 8 to prevent it getting all symptoms
if(prob(20 + (10 * max_severity)))
advanced_virus = TRUE
+4 -2
View File
@@ -2,8 +2,10 @@
name = "Random Heart Attack"
typepath = /datum/round_event/heart_attack
weight = 20
max_occurrences = 2
min_players = 40 // To avoid shafting lowpop
max_occurrences = 0
min_players = 400 // To avoid shafting lowpop
// Made the event impossible to come across to bolster server's RP quality a bit - Sono
/datum/round_event/heart_attack/start()
var/list/heart_attack_contestants = list()
+14 -14
View File
@@ -1,19 +1,19 @@
/datum/round_event_control/radiation_storm
name = "Radiation Storm"
typepath = /datum/round_event/radiation_storm
max_occurrences = 1
// /datum/round_event_control/radiation_storm
// name = "Radiation Storm"
// typepath = /datum/round_event/radiation_storm
// max_occurrences = 1
/datum/round_event/radiation_storm
// /datum/round_event/radiation_storm
/datum/round_event/radiation_storm/setup()
startWhen = 3
endWhen = startWhen + 1
announceWhen = 1
// /datum/round_event/radiation_storm/setup()
// startWhen = 3
// endWhen = startWhen + 1
// announceWhen = 1
/datum/round_event/radiation_storm/announce(fake)
priority_announce("High levels of radiation detected near the station. Maintenance is best shielded from radiation.", "Anomaly Alert", 'sound/ai/radiation.ogg')
//sound not longer matches the text, but an audible warning is probably good
// /datum/round_event/radiation_storm/announce(fake)
// priority_announce("High levels of radiation detected near the station. Maintenance is best shielded from radiation.", "Anomaly Alert", 'sound/ai/radiation.ogg')
// //sound not longer matches the text, but an audible warning is probably good
/datum/round_event/radiation_storm/start()
SSweather.run_weather(/datum/weather/rad_storm)
// /datum/round_event/radiation_storm/start()
// SSweather.run_weather(/datum/weather/rad_storm)
@@ -2,9 +2,11 @@
name = "Spontaneous Appendicitis"
typepath = /datum/round_event/spontaneous_appendicitis
weight = 20
max_occurrences = 4
earliest_start = 10 MINUTES
min_players = 5 // To make your chance of getting help a bit higher.
max_occurrences = 0
earliest_start = 900 MINUTES
min_players = 100
// I made the event practically impossible, as an RP tweak - Sono
/datum/round_event/spontaneous_appendicitis
fakeable = FALSE
@@ -751,7 +751,7 @@
tastes = list("pastry" = 1, "sweetness" = 1)
foodtype = GRAIN | SUGAR
#define PANCAKE_MAX_STACK 10
#define PANCAKE_MAX_STACK 20 //Doubled the stacking size. Snack away, snacksters! - Sono
/obj/item/reagent_containers/food/snacks/pancakes
name = "pancake"
@@ -1087,7 +1087,8 @@
"Solid Plasma" = IC_PINTYPE_NUMBER,
"Uranium" = IC_PINTYPE_NUMBER,
"Bananium" = IC_PINTYPE_NUMBER,
"Titanium" = IC_PINTYPE_NUMBER,
"Calorite" = IC_PINTYPE_NUMBER,
"Titanium" = IC_PINTYPE_NUMBER,
"Bluespace Mesh" = IC_PINTYPE_NUMBER,
"Biomass" = IC_PINTYPE_NUMBER,
)
@@ -1098,7 +1099,7 @@
)
spawn_flags = IC_SPAWN_RESEARCH
power_draw_per_use = 40
var/list/mtypes = list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TITANIUM, MAT_BLUESPACE, MAT_BIOMASS)
var/list/mtypes = list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_CALORITE, MAT_TITANIUM, MAT_BLUESPACE, MAT_BIOMASS)
/obj/item/integrated_circuit/input/matscan/do_work()
@@ -1340,4 +1341,4 @@
set_pin_data(IC_OUTPUT, 3, L.max_arousal)
set_pin_data(IC_OUTPUT, 4, L.canbearoused)
push_data()
activate_pin(2)
activate_pin(2)
@@ -372,6 +372,7 @@
"Solid Plasma" = IC_PINTYPE_NUMBER,
"Bluespace Mesh" = IC_PINTYPE_NUMBER,
"Bananium" = IC_PINTYPE_NUMBER,
"Calorite" = IC_PINTYPE_NUMBER,
"Titanium" = IC_PINTYPE_NUMBER,
)
outputs = list(
@@ -386,6 +387,7 @@
"Solid Plasma" = IC_PINTYPE_NUMBER,
"Bluespace Mesh" = IC_PINTYPE_NUMBER,
"Bananium" = IC_PINTYPE_NUMBER,
"Calorite" = IC_PINTYPE_NUMBER,
"Titanium" = IC_PINTYPE_NUMBER
)
activators = list(
@@ -400,11 +402,11 @@
power_draw_per_use = 40
ext_cooldown = 1
cooldown_per_use = 10
var/list/mtypes = list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TITANIUM, MAT_BLUESPACE)
var/list/mtypes = list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_CALORITE, MAT_TITANIUM, MAT_BLUESPACE)
/obj/item/integrated_circuit/manipulation/matman/Initialize()
var/datum/component/material_container/materials = AddComponent(/datum/component/material_container,
list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TITANIUM, MAT_BLUESPACE), 0,
list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_CALORITE, MAT_TITANIUM, MAT_BLUESPACE), 0,
FALSE, /obj/item/stack, CALLBACK(src, .proc/is_insertion_ready), CALLBACK(src, .proc/AfterMaterialInsert))
materials.max_amount =100000
materials.precise_insertion = TRUE
+1 -1
View File
@@ -82,7 +82,7 @@
/obj/machinery/mineral/processing_unit/Initialize()
. = ..()
proximity_monitor = new(src, 1)
AddComponent(/datum/component/material_container, list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TITANIUM, MAT_BLUESPACE), INFINITY, TRUE, /obj/item/stack)
AddComponent(/datum/component/material_container, list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_CALORITE, MAT_TITANIUM, MAT_BLUESPACE), INFINITY, TRUE, /obj/item/stack)
stored_research = new /datum/techweb/specialized/autounlocking/smelter
/obj/machinery/mineral/processing_unit/Destroy()
+1 -1
View File
@@ -17,7 +17,7 @@
var/ore_pickup_rate = 15
var/sheet_per_ore = 1
var/point_upgrade = 1
var/list/ore_values = list(MAT_GLASS = 1, MAT_METAL = 1, MAT_PLASMA = 15, MAT_SILVER = 16, MAT_GOLD = 18, MAT_TITANIUM = 30, MAT_URANIUM = 30, MAT_DIAMOND = 50, MAT_BLUESPACE = 50, MAT_BANANIUM = 60)
var/list/ore_values = list(MAT_GLASS = 1, MAT_METAL = 1, MAT_PLASMA = 15, MAT_SILVER = 16, MAT_GOLD = 18, MAT_TITANIUM = 30, MAT_URANIUM = 30, MAT_DIAMOND = 50, MAT_BLUESPACE = 50, MAT_BANANIUM = 60, MAT_CALORITE = 40)
var/message_sent = FALSE
var/list/ore_buffer = list()
var/datum/techweb/stored_research
+1 -1
View File
@@ -16,7 +16,7 @@ GLOBAL_LIST_EMPTY(silo_access_logs)
/obj/machinery/ore_silo/Initialize(mapload)
. = ..()
AddComponent(/datum/component/material_container,
list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TITANIUM, MAT_BLUESPACE, MAT_PLASTIC),
list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_CALORITE, MAT_TITANIUM, MAT_BLUESPACE, MAT_PLASTIC),
INFINITY,
FALSE,
/obj/item/stack,
+1 -1
View File
@@ -30,7 +30,7 @@
speak_emote = list("states")
wanted_objects = list(/obj/item/stack/ore/diamond, /obj/item/stack/ore/gold, /obj/item/stack/ore/silver,
/obj/item/stack/ore/plasma, /obj/item/stack/ore/uranium, /obj/item/stack/ore/iron,
/obj/item/stack/ore/bananium, /obj/item/stack/ore/titanium)
/obj/item/stack/ore/bananium, /obj/item/stack/ore/calorite, /obj/item/stack/ore/titanium)
healable = 0
loot = list(/obj/effect/decal/cleanable/robot_debris)
del_on_death = TRUE
+1 -1
View File
@@ -15,7 +15,7 @@
/obj/machinery/mineral/mint/Initialize()
. = ..()
AddComponent(/datum/component/material_container, list(MAT_METAL, MAT_PLASMA, MAT_SILVER, MAT_GOLD, MAT_URANIUM, MAT_DIAMOND, MAT_BANANIUM), MINERAL_MATERIAL_AMOUNT * 50, FALSE, /obj/item/stack)
AddComponent(/datum/component/material_container, list(MAT_METAL, MAT_PLASMA, MAT_SILVER, MAT_GOLD, MAT_URANIUM, MAT_DIAMOND, MAT_BANANIUM, MAT_CALORITE), MINERAL_MATERIAL_AMOUNT * 50, FALSE, /obj/item/stack)
/obj/machinery/mineral/mint/process()
var/turf/T = get_step(src, input_dir)
+9
View File
@@ -179,6 +179,15 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
materials = list(MAT_BANANIUM=MINERAL_MATERIAL_AMOUNT)
refined_type = /obj/item/stack/sheet/mineral/bananium
/obj/item/stack/ore/calorite //GS13
name = "calorite ore"
icon_state = "calorite ore"
item_state = "calorite ore"
singular_name = "Calorite ore chunk"
points = 40
materials = list(MAT_CALORITE=MINERAL_MATERIAL_AMOUNT)
refined_type = /obj/item/stack/sheet/mineral/calorite
/obj/item/stack/ore/titanium
name = "titanium ore"
icon_state = "Titanium ore"
+300 -8
View File
@@ -1227,11 +1227,11 @@ GLOBAL_LIST_EMPTY(roundstart_races)
//LIFE//
////////
/datum/species/proc/handle_digestion(mob/living/carbon/human/H)
if(HAS_TRAIT(src, TRAIT_NOHUNGER))
return //hunger is for BABIES
///datum/species/proc/handle_digestion(mob/living/carbon/human/H)
// if(HAS_TRAIT(src, TRAIT_NOHUNGER))
// return //hunger is for BABIES
//The fucking TRAIT_FAT mutation is the dumbest shit ever. It makes the code so difficult to work with
/* //The fucking TRAIT_FAT mutation is the dumbest shit ever. It makes the code so difficult to work with
if(HAS_TRAIT(H, TRAIT_FAT))//I share your pain, past coder.
if(H.fatness < FATNESS_LEVEL_FAT)//this is a mess, indeed.
to_chat(H, "<span class='notice'>You feel fit again!</span>")//GS13 Added a whole bunch of new fatness traits. Truly I am a masochist
@@ -1275,7 +1275,7 @@ GLOBAL_LIST_EMPTY(roundstart_races)
ADD_TRAIT(H, TRAIT_IMMOBILE, OBESITY)
H.update_body()
H.update_inv_w_uniform()
H.update_inv_wear_suit()
H.update_inv_wear_suit()
else if(HAS_TRAIT(H, TRAIT_IMMOBILE))
if(H.fatness < FATNESS_LEVEL_IMMOBILE)
to_chat(H, "<span class='notice'>You feel less restrained by your fat!</span>")
@@ -1306,6 +1306,276 @@ GLOBAL_LIST_EMPTY(roundstart_races)
H.update_body()
H.update_inv_w_uniform()
H.update_inv_wear_suit()
*/
/datum/species/proc/handle_digestion(mob/living/carbon/human/H)
var/obj/item/organ/genital/anus/B = H.getorganslot("anus")
var/obj/item/organ/genital/belly/C = H.getorganslot("belly")
var/obj/item/organ/genital/breasts/D = H.getorganslot("breasts")
if(HAS_TRAIT(src, TRAIT_NOHUNGER))
return //hunger is for BABIES
//The fucking TRAIT_FAT mutation is the dumbest shit ever. It makes the code so difficult to work with
if(HAS_TRAIT(H, TRAIT_FAT))//I share your pain, past coder.
if(H.fatness < FATNESS_LEVEL_FAT)//this is a mess, indeed.
to_chat(H, "<span class='notice'>You feel fit again!</span>")//GS13 Added a whole bunch of new fatness traits. Truly I am a masochist
REMOVE_TRAIT(H, TRAIT_FAT, OBESITY)
B.size = B.size - 1
B.update()
C.size = 0
C.update()
D.cached_size = D.cached_size - 1
D.update()
H.genital_override = TRUE
H.update_body()
H.update_inv_w_uniform()
H.update_inv_wear_suit()
else if(H.fatness >= FATNESS_LEVEL_FATTER)
to_chat(H, "<span class='danger'>You feel even plumper!</span>")
REMOVE_TRAIT(H, TRAIT_FAT, OBESITY)
ADD_TRAIT(H, TRAIT_FATTER, OBESITY)
B.size = B.size + 1
B.update()
C.size = C.size + 1
C.update()
D.cached_size = D.cached_size + 1
D.update()
H.genital_override = TRUE
H.update_body()
H.update_inv_w_uniform()
H.update_inv_wear_suit()
else if(HAS_TRAIT(H, TRAIT_FATTER))
if(H.fatness < FATNESS_LEVEL_FATTER)
to_chat(H, "<span class='notice'>You feel like you've lost weight!</span>")
REMOVE_TRAIT(H, TRAIT_FATTER, OBESITY)
ADD_TRAIT(H, TRAIT_FAT, OBESITY)
B.size = B.size - 1
B.update()
C.size = C.size - 1
C.update()
D.cached_size = D.cached_size - 1
D.update()
H.genital_override = TRUE
H.update_body()
H.update_inv_w_uniform()
H.update_inv_wear_suit()
else if(H.fatness >= FATNESS_LEVEL_VERYFAT)
to_chat(H, "<span class='danger'>Your clothes creak quietly!</span>")
REMOVE_TRAIT(H, TRAIT_FATTER, OBESITY)
ADD_TRAIT(H, TRAIT_VERYFAT, OBESITY)
B.size = B.size + 1
B.update()
C.size = C.size + 1
C.update()
D.cached_size = D.cached_size + 1
D.update()
H.genital_override = TRUE
H.update_body()
H.update_inv_w_uniform()
H.update_inv_wear_suit()
else if(HAS_TRAIT(H, TRAIT_VERYFAT))
if(H.fatness < FATNESS_LEVEL_VERYFAT)
to_chat(H, "<span class='notice'>You feel like you've lost weight!</span>")
REMOVE_TRAIT(H, TRAIT_VERYFAT, OBESITY)
ADD_TRAIT(H, TRAIT_FATTER, OBESITY)
B.size = B.size - 1
B.update()
C.size = C.size - 1
C.update()
D.cached_size = D.cached_size - 1
D.update()
H.genital_override = TRUE
H.update_body()
H.update_inv_w_uniform()
H.update_inv_wear_suit()
else if(H.fatness >= FATNESS_LEVEL_OBESE)
to_chat(H, "<span class='danger'>You feel like you're starting to get really heavy.</span>")
REMOVE_TRAIT(H, TRAIT_VERYFAT, OBESITY)
ADD_TRAIT(H, TRAIT_OBESE, OBESITY)
B.size = B.size + 1
B.update()
C.size = C.size + 1
C.update()
D.cached_size = D.cached_size + 1
D.update()
H.genital_override = TRUE
H.update_body()
H.update_inv_w_uniform()
H.update_inv_wear_suit()
else if(HAS_TRAIT(H, TRAIT_OBESE))
if(H.fatness < FATNESS_LEVEL_OBESE)
to_chat(H, "<span class='notice'>You feel like you've lost weight!</span>")
REMOVE_TRAIT(H, TRAIT_OBESE, OBESITY)
ADD_TRAIT(H, TRAIT_VERYFAT, OBESITY)
B.size = B.size - 1
B.update()
C.size = C.size - 1
C.update()
D.cached_size = D.cached_size - 1
D.update()
H.genital_override = TRUE
H.update_body()
H.update_inv_w_uniform()
H.update_inv_wear_suit()
else if(H.fatness >= FATNESS_LEVEL_MORBIDLY_OBESE)
to_chat(H, "<span class='danger'>Your thighs begin to rub against each other.</span>")
REMOVE_TRAIT(H, TRAIT_OBESE, OBESITY)
ADD_TRAIT(H, TRAIT_MORBIDLYOBESE, OBESITY)
B.size = B.size + 1
B.update()
C.size = C.size + 1
C.update()
D.cached_size = D.cached_size + 1
D.update()
H.genital_override = TRUE
H.update_body()
H.update_inv_w_uniform()
H.update_inv_wear_suit()
else if(HAS_TRAIT(H, TRAIT_MORBIDLYOBESE))
if(H.fatness < FATNESS_LEVEL_MORBIDLY_OBESE)
to_chat(H, "<span class='notice'>You feel a bit less fat!</span>")
REMOVE_TRAIT(H, TRAIT_MORBIDLYOBESE, OBESITY)
ADD_TRAIT(H, TRAIT_OBESE, OBESITY)
B.size = B.size - 1
B.update()
C.size = C.size - 1
C.update()
D.cached_size = D.cached_size - 1
D.update()
H.genital_override = TRUE
H.update_body()
H.update_inv_w_uniform()
H.update_inv_wear_suit()
else if(H.fatness >= FATNESS_LEVEL_EXTREMELY_OBESE)
to_chat(H, "<span class='danger'>You feel your belly rest heavily on your lap!</span>")
REMOVE_TRAIT(H, TRAIT_MORBIDLYOBESE, OBESITY)
ADD_TRAIT(H, TRAIT_EXTREMELYOBESE, OBESITY)
B.size = B.size + 1
B.update()
C.size = C.size + 1
C.update()
D.cached_size = D.cached_size + 1
D.update()
H.genital_override = TRUE
H.update_body()
H.update_inv_w_uniform()
H.update_inv_wear_suit()
else if(HAS_TRAIT(H, TRAIT_EXTREMELYOBESE))
if(H.fatness < FATNESS_LEVEL_EXTREMELY_OBESE)
to_chat(H, "<span class='notice'>You feel less restrained by your fat!</span>")
REMOVE_TRAIT(H, TRAIT_EXTREMELYOBESE, OBESITY)
ADD_TRAIT(H, TRAIT_MORBIDLYOBESE, OBESITY)
B.size = B.size - 1
B.update()
C.size = C.size - 1
C.update()
D.cached_size = D.cached_size - 1
D.update()
H.genital_override = TRUE
H.update_body()
H.update_inv_w_uniform()
H.update_inv_wear_suit()
else if(H.fatness >= FATNESS_LEVEL_BARELYMOBILE)
to_chat(H, "<span class='danger'>You feel like you can barely move!</span>")
REMOVE_TRAIT(H, TRAIT_EXTREMELYOBESE, OBESITY)
ADD_TRAIT(H, TRAIT_BARELYMOBILE, OBESITY)
B.size = B.size + 1
B.update()
C.size = C.size + 1
C.update()
D.cached_size = D.cached_size + 1
D.update()
H.genital_override = TRUE
H.update_body()
H.update_inv_w_uniform()
H.update_inv_wear_suit()
else if(HAS_TRAIT(H, TRAIT_BARELYMOBILE))
if(H.fatness < FATNESS_LEVEL_BARELYMOBILE)
to_chat(H, "<span class='notice'>You feel less restrained by your fat!</span>")
REMOVE_TRAIT(H, TRAIT_BARELYMOBILE, OBESITY)
ADD_TRAIT(H, TRAIT_EXTREMELYOBESE, OBESITY)
B.size = B.size - 1
B.update()
C.size = C.size - 1
C.update()
D.cached_size = D.cached_size - 1
D.update()
H.genital_override = TRUE
H.update_body()
H.update_inv_w_uniform()
H.update_inv_wear_suit()
else if(H.fatness >= FATNESS_LEVEL_IMMOBILE)
to_chat(H, "<span class='danger'>You feel belly smush against the floor!</span>")
REMOVE_TRAIT(H, TRAIT_BARELYMOBILE, OBESITY)
ADD_TRAIT(H, TRAIT_IMMOBILE, OBESITY)
B.size = B.size + 1
B.update()
C.size = C.size + 1
C.update()
D.cached_size = D.cached_size + 1
D.update()
H.genital_override = TRUE
H.update_body()
H.update_inv_w_uniform()
H.update_inv_wear_suit()
else if(HAS_TRAIT(H, TRAIT_IMMOBILE))
if(H.fatness < FATNESS_LEVEL_IMMOBILE)
to_chat(H, "<span class='notice'>You feel less restrained by your fat!</span>")
REMOVE_TRAIT(H, TRAIT_IMMOBILE, OBESITY)
ADD_TRAIT(H, TRAIT_BARELYMOBILE, OBESITY)
B.size = B.size - 1
B.update()
C.size = C.size - 1
C.update()
D.cached_size = D.cached_size - 1
D.update()
H.genital_override = TRUE
H.update_body()
H.update_inv_w_uniform()
H.update_inv_wear_suit()
else if(H.fatness > FATNESS_LEVEL_BLOB)
to_chat(H, "<span class='danger'>You feel like you've become a mountain of fat!</span>")
REMOVE_TRAIT(H, TRAIT_IMMOBILE, OBESITY)
ADD_TRAIT(H, TRAIT_BLOB, OBESITY)
B.size = B.size + 1
B.update()
C.size = C.size + 1
C.update()
D.cached_size = D.cached_size + 1
D.update()
H.genital_override = TRUE
H.update_body()
H.update_inv_w_uniform()
H.update_inv_wear_suit()
else if(HAS_TRAIT(H, TRAIT_BLOB))
if(H.fatness < FATNESS_LEVEL_BLOB)
to_chat(H, "<span class='notice'>You feel like you've regained some mobility!</span>")
REMOVE_TRAIT(H, TRAIT_BLOB, OBESITY)
ADD_TRAIT(H, TRAIT_IMMOBILE, OBESITY)
B.size = B.size - 1
B.update()
C.size = C.size - 1
C.update()
D.cached_size = D.cached_size - 1
D.update()
H.genital_override = TRUE
H.update_body()
H.update_inv_w_uniform()
H.update_inv_wear_suit()
else
if(H.fatness >= FATNESS_LEVEL_FAT)
to_chat(H, "<span class='danger'>You suddenly feel blubbery!</span>")
ADD_TRAIT(H, TRAIT_FAT, OBESITY)
B.size = B.size + 1
B.update()
C.size = C.size + 1
C.update()
D.cached_size = D.cached_size + 1
D.update()
H.genital_override = TRUE
H.update_body()
H.update_inv_w_uniform()
H.update_inv_wear_suit()
// nutrition decrease and satiety
if (H.nutrition > 0 && H.stat != DEAD && !HAS_TRAIT(H, TRAIT_NOHUNGER))
@@ -1370,7 +1640,7 @@ GLOBAL_LIST_EMPTY(roundstart_races)
H.throw_alert("nutrition", /obj/screen/alert/hungry)
if(0 to NUTRITION_LEVEL_STARVING)
H.throw_alert("nutrition", /obj/screen/alert/starving)
switch(H.fullness)
if(0 to FULLNESS_LEVEL_BLOATED)
H.clear_alert("fullness")
@@ -1396,6 +1666,7 @@ GLOBAL_LIST_EMPTY(roundstart_races)
if(0 to FATNESS_LEVEL_FAT)
H.clear_alert("fatness")
/datum/species/proc/handle_thirst(mob/living/carbon/human/H)
if(HAS_TRAIT(src, TRAIT_NOTHIRST))
return
@@ -1533,7 +1804,7 @@ GLOBAL_LIST_EMPTY(roundstart_races)
if(SANITY_UNSTABLE to SANITY_DISTURBED)
. += 0.5
*/
if(HAS_TRAIT(H, TRAIT_FAT))
/* if(HAS_TRAIT(H, TRAIT_FAT))
. += (1 - flight)
if(HAS_TRAIT(H, TRAIT_OBESE))//GS13 fat levels move speed decrease
. += (1.5 - flight)
@@ -1546,7 +1817,28 @@ GLOBAL_LIST_EMPTY(roundstart_races)
if(H.bodytemperature < BODYTEMP_COLD_DAMAGE_LIMIT && !HAS_TRAIT(H, TRAIT_RESISTCOLD))
. += (BODYTEMP_COLD_DAMAGE_LIMIT - H.bodytemperature) / COLD_SLOWDOWN_FACTOR
return .
*/
if(HAS_TRAIT(H, TRAIT_FAT))
. += (1 - flight)
if(HAS_TRAIT(H, TRAIT_FATTER))
. += (1.1 - flight)
if(HAS_TRAIT(H, TRAIT_VERYFAT))
. += (1.25 - flight)
if(HAS_TRAIT(H, TRAIT_OBESE))//GS13 fat levels move speed decrease
. += (1.5 - flight)
if(HAS_TRAIT(H, TRAIT_MORBIDLYOBESE))
. += (2 - flight)
if(HAS_TRAIT(H, TRAIT_EXTREMELYOBESE))
. += (2.5 - flight)
if(HAS_TRAIT(H, TRAIT_BARELYMOBILE))
. += 2.7
if(HAS_TRAIT(H, TRAIT_IMMOBILE))
. += 3 // No wings are going to lift that much off the ground
if(HAS_TRAIT(H, TRAIT_BLOB))
. += 4
if(H.bodytemperature < BODYTEMP_COLD_DAMAGE_LIMIT && !HAS_TRAIT(H, TRAIT_RESISTCOLD))
. += (BODYTEMP_COLD_DAMAGE_LIMIT - H.bodytemperature) / COLD_SLOWDOWN_FACTOR
return .
//////////////////
// ATTACK PROCS //
//////////////////
@@ -3,7 +3,10 @@
name = "Podperson"
id = "pod"
default_color = "59CE00"
species_traits = list(MUTCOLORS,EYECOLOR)
species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR,FACEHAIR,WINGCOLOR)
inherent_biotypes = MOB_ORGANIC|MOB_HUMANOID
mutant_bodyparts = list("mam_tail", "mam_ears", "mam_body_markings", "mam_snouts","mam_waggingtail","spines", "horns", "frills", "legs", "taur", "deco_wings")
default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "mam_snouts" = "None", "mam_tail" = "None", "mam_ears" = "None", "mam_body_markings" = "Husky", "taur" = "None", "legs" = "Normal Legs", "deco_wings" = "None", "horns" = "None", "frills" = "None", "spines" = "None")
attack_verb = "slash"
attack_sound = 'sound/weapons/slice.ogg'
miss_sound = 'sound/weapons/slashmiss.ogg'
@@ -28,6 +31,10 @@
C.faction -= "plants"
C.faction -= "vines"
/datum/species/pod/qualifies_for_rank(rank, list/features)
return TRUE
/datum/species/pod/spec_life(mob/living/carbon/human/H)
if(H.stat == DEAD)
return
@@ -68,6 +75,33 @@
if(/obj/item/projectile/energy/florayield)
H.nutrition = min(H.nutrition+30, NUTRITION_LEVEL_FULL)
/datum/species/pod/spec_death(gibbed, mob/living/carbon/human/H)
if(H)
stop_wagging_tail(H)
/datum/species/pod/spec_stun(mob/living/carbon/human/H,amount)
if(H)
stop_wagging_tail(H)
. = ..()
/datum/species/pod/can_wag_tail(mob/living/carbon/human/H)
return ("mam_tail" in mutant_bodyparts) || ("mam_waggingtail" in mutant_bodyparts)
/datum/species/pod/is_wagging_tail(mob/living/carbon/human/H)
return ("mam_waggingtail" in mutant_bodyparts)
/datum/species/pod/start_wagging_tail(mob/living/carbon/human/H)
if("mam_tail" in mutant_bodyparts)
mutant_bodyparts -= "mam_tail"
mutant_bodyparts |= "mam_waggingtail"
H.update_body()
/datum/species/pod/stop_wagging_tail(mob/living/carbon/human/H)
if("mam_waggingtail" in mutant_bodyparts)
mutant_bodyparts -= "mam_waggingtail"
mutant_bodyparts |= "mam_tail"
H.update_body()
/datum/species/pod/pseudo_weak
id = "podweak"
limbs_id = "pod"
+1 -1
View File
@@ -28,7 +28,7 @@
/obj/item/paper/contract/employment/update_text()
name = "paper- [target] employment contract"
info = "<center>Conditions of Employment</center><BR><BR><BR><BR>This Agreement is made and entered into as of the date of last signature below, by and between [target] (hereafter referred to as SLAVE), and GATO (hereafter referred to as the omnipresent and helpful watcher of humanity).<BR>WITNESSETH:<BR>WHEREAS, SLAVE is a natural born human or humanoid, possessing skills upon which he can aid the omnipresent and helpful watcher of humanity, who seeks employment in the omnipresent and helpful watcher of humanity.<BR>WHEREAS, the omnipresent and helpful watcher of humanity agrees to sporadically provide payment to SLAVE, in exchange for permanent servitude.<BR>NOW THEREFORE in consideration of the mutual covenants herein contained, and other good and valuable consideration, the parties hereto mutually agree as follows:<BR>In exchange for paltry payments, SLAVE agrees to work for the omnipresent and helpful watcher of humanity, for the remainder of his or her current and future lives.<BR>Further, SLAVE agrees to transfer ownership of his or her soul to the loyalty department of the omnipresent and helpful watcher of humanity.<BR>Should transfership of a soul not be possible, a lien shall be placed instead.<BR>Signed,<BR><i>[target]</i>"
info = "<center>Conditions of Employment</center><BR><BR><BR><BR>This Agreement is made and entered into as of the date of last signature below, by and between [target] (hereafter referred to as SLAVE), and GATO (hereafter referred to as the omnipresent and helpful watcher of this galactic sector).<BR>WITNESSETH:<BR>WHEREAS, SLAVE is a natural born human or humanoid, possessing skills upon which he can aid the omnipresent and helpful watcher of this galactic sector, who seeks employment in the omnipresent and helpful watcher of this galactic sector.<BR>WHEREAS, the omnipresent and helpful watcher of this galactic sector agrees to regularly provide payment to SLAVE, in exchange for permanent servitude.<BR>NOW THEREFORE in consideration of the mutual covenants herein contained, and other good and valuable consideration, the parties hereto mutually agree as follows:<BR>In exchange for payments, SLAVE agrees to work for the omnipresent and helpful watcher of this galactic sector, for the remainder of his or her current and future lives.<BR>Further, SLAVE agrees to transfer ownership of his or her soul to the loyalty department of the omnipresent and helpful watcher of this galactic sector.<BR>Should transfership of a soul not be possible, a lien shall be placed instead. The contract may only be unbound by supervision of proper Central Command officials, under strict terms previously discussed between SLAVE and the omnipresent and helpful watcher of this galactic sector. <BR>Signed,<BR><i>[target]</i>"
/obj/item/paper/contract/employment/attack(mob/living/M, mob/living/carbon/human/user)
@@ -1895,6 +1895,18 @@
F.PlaceOnTop(/turf/open/floor/carpet/purple)
..()
/datum/reagent/carpet/purple //GS13
name = "Liquid GATO-style Carpet"
color = "#6d3392"
/datum/reagent/carpet/gato/reaction_turf(turf/T, reac_volume)
if(isplatingturf(T) || istype(T, /turf/open/floor/plasteel))
var/turf/open/floor/F = T
F.PlaceOnTop(/turf/open/floor/carpet/gato)
..()
/datum/reagent/carpet/red
name = "Liquid Red Carpet"
color = "#871515"
@@ -696,6 +696,13 @@
results = list(/datum/reagent/carpet/purple = 2)
required_reagents = list(/datum/reagent/carpet = 1, /datum/reagent/stable_plasma = 1)
/datum/chemical_reaction/carpet/purple //GS13
name = "liquid gato carpet"
id = /datum/reagent/carpet/gato
results = list(/datum/reagent/carpet/gato = 2)
required_reagents = list(/datum/reagent/carpet = 1, /datum/reagent/consumable/sugar = 1)
/datum/chemical_reaction/carpet/red
name = "liquid red carpet"
id = /datum/reagent/carpet/red
@@ -728,4 +735,4 @@
results = list(/datum/reagent/hellwater = 1)
required_reagents = list(/datum/reagent/water/holywater = 1)
required_temp = 666
mob_react = FALSE
mob_react = FALSE
@@ -0,0 +1,21 @@
//////// feeder den, GS13
/obj/item/paper/fluff/ruins/feeder_den/hidden
name = "hastily scribbled note"
info = "It took so long for me to make this hideout, but it might all be in vain. In the short breaks when I'm not observed, I'm trying to fix this radio I managed to sneak by... but judging by how I can barely squeeze my ass past this stupid hole less and less each day, I might not fix it in time..."
/obj/item/paper/fluff/ruins/feeder_den/report1
name = "Captive report No 1"
info = "We've managed to obtain two captives - one woman, and one lizard. They seem promising so far... already quite chunky and eager to scarf down whatever we give them. It might be even easier to turn them into proper beds once we're past the chemical treatment."
/obj/item/paper/fluff/ruins/feeder_den/report2
name = "Captive report No 2"
info = "The woman seems to be showing great progress, we'll be moving her into the larger cell soon. The lizard guy is still a bit reluctant about eating himself into immobility... but no matter, we'll just double his portions. Perhaps a painfully overstuffed stomach will change his mind."
/obj/item/paper/fluff/ruins/feeder_den/report3
name = "Captive report No 3"
info = "We've captured another one! A curious space explorer, snooping near our entrance. Fierce bastard, even managed to cut my arm open! A short treatment of a room full of lipoifier smoke ensured that they won't be able to fit back into their hardsuit."
/obj/item/paper/fluff/ruins/feeder_den/report4
name = "Captive report No 4"
info = "(the page seems to be full of food stains, making the writing unreadable.)"
+1
View File
@@ -8,6 +8,7 @@
vend_reply = "Thank you for using the ClothesMate!"
products = list(/obj/item/clothing/head/that = 4,
/obj/item/clothing/head/fedora = 3,
/obj/item/clothing/suit/jacket/letterman_gato = 5,
/obj/item/clothing/glasses/monocle = 3,
/obj/item/clothing/suit/jacket = 4,
/obj/item/clothing/suit/jacket/flannel = 4,