Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| fe576df90d |
@@ -1,198 +0,0 @@
|
||||
/obj/item/clothing/neck/petcollar/locked/bluespace_collar_receiver
|
||||
name = "Bluespace collar receiver"
|
||||
desc = "A collar containing a miniaturized bluespace whitehole. Other bluespace transmitter collars can connect to this, causing the wearer to receive food from other transmitter collars directly into the stomach. "
|
||||
slot_flags = ITEM_SLOT_NECK
|
||||
var/mob/living/carbon/victim = 0
|
||||
|
||||
/obj/item/clothing/neck/petcollar/locked/bluespace_collar_receiver/equipped(mob/user, slot)
|
||||
. = ..()
|
||||
var/mob/living/carbon/wearer = user
|
||||
if(!iscarbon(wearer) || slot !=ITEM_SLOT_NECK || !wearer?.client?.prefs?.weight_gain_items)
|
||||
return FALSE
|
||||
victim = user;
|
||||
|
||||
/obj/item/clothing/neck/petcollar/locked/bluespace_collar_receiver/dropped(mob/user)
|
||||
. = ..()
|
||||
var/mob/living/carbon/wearer = user
|
||||
if(!iscarbon(wearer) || !(wearer.get_item_by_slot(ITEM_SLOT_NECK) == src) || !wearer?.client?.prefs?.weight_gain_items)
|
||||
return FALSE
|
||||
victim = 0
|
||||
|
||||
/obj/item/clothing/neck/petcollar/locked/bluespace_collar_receiver/proc/isworn()
|
||||
if(istype(victim, /mob/living/carbon))
|
||||
return TRUE
|
||||
else
|
||||
return FALSE
|
||||
|
||||
/obj/item/clothing/neck/petcollar/locked/bluespace_collar_receiver/attackby(obj/item/clothing/neck/petcollar/locked/bluespace_collar_transmitter/K, mob/user, params)
|
||||
if(istype(K, /obj/item/clothing/neck/petcollar/locked/bluespace_collar_transmitter))
|
||||
K.linked_receiver = src
|
||||
var/mob/living/carbon/U = user
|
||||
to_chat(U, "<span class='notice'>You link the bluespace collar with the other transmitter</span>")
|
||||
. = ..()
|
||||
return
|
||||
|
||||
|
||||
/obj/item/clothing/neck/petcollar/locked/bluespace_collar_transmitter
|
||||
name = "Bluespace collar transmitter"
|
||||
desc = "A collar containing a miniaturized bluespace blackhole. Can be connected to a bluespace collar receiver to transmit food to a linked receiver collar. "
|
||||
slot_flags = ITEM_SLOT_NECK
|
||||
var/obj/item/clothing/neck/petcollar/locked/bluespace_collar_receiver/linked_receiver = 0
|
||||
|
||||
/obj/item/clothing/neck/petcollar/locked/bluespace_collar_transmitter/equipped(mob/user, slot)
|
||||
. = ..()
|
||||
var/mob/living/carbon/wearer = user
|
||||
if(!iscarbon(wearer) || slot !=ITEM_SLOT_NECK || !wearer?.client?.prefs?.weight_gain_items)
|
||||
return FALSE
|
||||
|
||||
/obj/item/clothing/neck/petcollar/locked/bluespace_collar_transmitter/dropped(mob/user)
|
||||
. = ..()
|
||||
var/mob/living/carbon/wearer = user
|
||||
if(!iscarbon(wearer) || !(wearer.get_item_by_slot(ITEM_SLOT_NECK) == src) || !wearer?.client?.prefs?.weight_gain_items)
|
||||
return FALSE
|
||||
|
||||
/obj/item/clothing/neck/petcollar/locked/bluespace_collar_transmitter/attackby(obj/item/K, mob/user, params)
|
||||
if(istype(K, /obj/item/clothing/neck/petcollar/locked/bluespace_collar_receiver))
|
||||
linked_receiver = K
|
||||
var/mob/living/carbon/U = user
|
||||
to_chat(U, "<span class='notice'>You link the bluespace collar to the other receiver</span>")
|
||||
. = ..()
|
||||
return
|
||||
|
||||
/obj/item/clothing/neck/petcollar/locked/bluespace_collar_transmitter/proc/islinked()
|
||||
if (linked_receiver && linked_receiver.isworn())
|
||||
return TRUE
|
||||
else
|
||||
return FALSE
|
||||
// For food
|
||||
/obj/item/clothing/neck/petcollar/locked/bluespace_collar_transmitter/proc/transpose_food(obj/item/reagent_containers/food/snacks/owner, mob/living/original_eater, mob/living/feeder)
|
||||
if (!islinked())
|
||||
return FALSE
|
||||
|
||||
var/mob/living/carbon/human/eater = linked_receiver.victim
|
||||
if(owner.reagents)
|
||||
if(eater.satiety > -200)
|
||||
eater.satiety -= owner.junkiness
|
||||
playsound(eater.loc,'sound/items/eatfood.ogg', rand(10,50), 1)
|
||||
playsound(original_eater.loc,'sound/items/eatfood.ogg', rand(10,50), 1)
|
||||
eater.visible_message("<span class='warning'>[eater]'s belly seems to visibly distend a bit further'!</span>", "<span class='danger'>You feel your stomach get filled by food!</span>")
|
||||
var/bitevolume = 1
|
||||
if(HAS_TRAIT(original_eater, TRAIT_VORACIOUS))
|
||||
bitevolume = bitevolume * 0.67
|
||||
var/mob/living/carbon/human/human_eater = eater
|
||||
if(istype(human_eater))
|
||||
human_eater.fullness += bitevolume;
|
||||
|
||||
if(owner.reagents.total_volume)
|
||||
SEND_SIGNAL(owner, COMSIG_FOOD_EATEN, eater, feeder)
|
||||
var/fraction = min(owner.bitesize / owner.reagents.total_volume, 1)
|
||||
owner.reagents.reaction(eater, INGEST, fraction)
|
||||
owner.reagents.trans_to(eater, owner.bitesize, log = TRUE)
|
||||
owner.bitecount++
|
||||
owner.On_Consume(eater)
|
||||
owner.checkLiked(fraction, original_eater)
|
||||
return TRUE
|
||||
|
||||
// For the alternative edible functionality
|
||||
/obj/item/clothing/neck/petcollar/locked/bluespace_collar_transmitter/proc/transpose_edible(datum/component/edible/foodstuff, mob/living/original_eater, mob/living/feeder)
|
||||
if (!islinked())
|
||||
return FALSE
|
||||
|
||||
var/atom/owner = foodstuff.parent
|
||||
var/mob/living/carbon/human/eater = linked_receiver.victim
|
||||
|
||||
if(!owner?.reagents)
|
||||
return FALSE
|
||||
if(eater.satiety > -200)
|
||||
eater.satiety -= foodstuff.junkiness
|
||||
playsound(original_eater.loc,'sound/items/eatfood.ogg', rand(10,50), TRUE)
|
||||
playsound(eater.loc,'sound/items/eatfood.ogg', rand(10,50), TRUE)
|
||||
eater.visible_message("<span class='warning'>[eater]'s belly seems to visibly distend a bit further'!</span>", "<span class='danger'>You feel your stomach get filled by something!</span>")
|
||||
var/mob/living/carbon/human/human_eater = original_eater
|
||||
if(istype(human_eater))
|
||||
var/bitevolume = 1
|
||||
if(HAS_TRAIT(human_eater, TRAIT_VORACIOUS))
|
||||
bitevolume = bitevolume * 0.67
|
||||
if(istype(eater))
|
||||
eater.fullness += bitevolume;
|
||||
|
||||
if(owner.reagents.total_volume)
|
||||
SEND_SIGNAL(foodstuff.parent, COMSIG_FOOD_EATEN, eater, original_eater)
|
||||
var/fraction = min(foodstuff.bite_consumption / owner.reagents.total_volume, 1)
|
||||
owner.reagents.reaction(eater, INGEST, fraction)
|
||||
owner.reagents.trans_to(eater, foodstuff.bite_consumption)
|
||||
foodstuff.bitecount++
|
||||
foodstuff.On_Consume(eater)
|
||||
foodstuff.checkLiked(fraction, original_eater)
|
||||
|
||||
//Invoke our after eat callback if it is valid
|
||||
if(foodstuff.after_eat)
|
||||
foodstuff.after_eat.Invoke(eater, feeder)
|
||||
return TRUE
|
||||
|
||||
// For Drinks
|
||||
/obj/item/clothing/neck/petcollar/locked/bluespace_collar_transmitter/proc/transpose_drink(obj/item/reagent_containers/food/drinks/owner, mob/living/original_eater)
|
||||
if (!islinked())
|
||||
return FALSE
|
||||
|
||||
var/mob/living/carbon/human/eater = linked_receiver.victim
|
||||
var/fraction = min(owner.gulp_size/owner.reagents.total_volume, 1)
|
||||
owner.checkLiked(fraction, eater)
|
||||
owner.reagents.reaction(eater, INGEST, fraction)
|
||||
owner.reagents.trans_to(eater, owner.gulp_size, log = TRUE)
|
||||
//GS13 Port - Fullness
|
||||
if(iscarbon(eater))
|
||||
var/mob/living/carbon/human/human_eater = eater
|
||||
var/mob/living/carbon/human/human_original_eater = original_eater
|
||||
if(HAS_TRAIT(human_original_eater, TRAIT_VORACIOUS))
|
||||
human_eater.fullness += min(owner.gulp_size * 0.67, owner.reagents.total_volume * 0.67)
|
||||
else
|
||||
human_eater.fullness += min(owner.gulp_size, owner.reagents.total_volume) // GS13 drinks will fill your stomach
|
||||
playsound(original_eater.loc,'sound/items/drink.ogg', rand(10,50), 1)
|
||||
playsound(eater.loc,'sound/items/drink.ogg', rand(10,50), 1)
|
||||
eater.visible_message("<span class='warning'>[eater]'s belly seems to visibly distend a bit further, emitting an audible sloshing noise!</span>", "<span class='danger'>You feel your stomach get filled by liquid, hearing sloshing noises coming from within!</span>")
|
||||
return TRUE
|
||||
|
||||
// For containers
|
||||
/obj/item/clothing/neck/petcollar/locked/bluespace_collar_transmitter/proc/transpose_container(var/datum/reagents/reagents , fraction, mob/M, mob/user)
|
||||
if (!islinked())
|
||||
return FALSE
|
||||
|
||||
var/mob/living/carbon/human/eater = linked_receiver.victim
|
||||
var/self_fed = M == user
|
||||
reagents.reaction(eater, INGEST, fraction)
|
||||
addtimer(CALLBACK(reagents, TYPE_PROC_REF(/datum/reagents, trans_to), eater, 5, null, null, null, self_fed? "self swallowed" : "fed by [user]"), 5)
|
||||
eater.visible_message("<span class='warning'>[eater]'s belly seems to visibly distend a bit further, emitting an audible sloshing noise!</span>", "<span class='danger'>You feel your stomach get filled by liquid, hearing sloshing noises coming from within!</span>")
|
||||
return TRUE
|
||||
|
||||
// For industrial feeding tube
|
||||
/obj/item/clothing/neck/petcollar/locked/bluespace_collar_transmitter/proc/transpose_industrial_feeding(obj/item/reagent_containers/food/snacks/food, datum/reagents/food_reagents, mob/living/original_eater)
|
||||
if (!islinked())
|
||||
return FALSE
|
||||
var/mob/living/carbon/human/eater = linked_receiver.victim
|
||||
var/food_size = food_reagents.total_volume //We're cramming the Whole Thing down your throat~
|
||||
food_reagents.reaction(eater, INGEST, food_size)
|
||||
food_reagents.trans_to(eater, food_size)
|
||||
eater.fullness += food_size
|
||||
food.checkLiked(food_size, eater) //...Hopefully you like the taste.
|
||||
eater.visible_message("<span class='warning'>[eater]'s belly seems to greatly distend, as if it was being inflated with large amounts of food.</span>", "<span class='danger'>You feel an immense pressure in your stomach, as if large amounts of food were pumped directly into you.</span>")
|
||||
return TRUE
|
||||
|
||||
// For feeding tube
|
||||
/obj/item/clothing/neck/petcollar/locked/bluespace_collar_transmitter/proc/transpose_feeding(transfer_amount, var/obj/item/reagent_containers/beaker, mob/living/original_eater)
|
||||
if (!islinked())
|
||||
return FALSE
|
||||
var/mob/living/carbon/human/eater = linked_receiver.victim
|
||||
var/fraction = min(transfer_amount/beaker.reagents.total_volume, 1) //the fraction that is transfered of the total volume
|
||||
beaker.reagents.reaction(eater, INJECT, fraction, FALSE) //make reagents reacts, but don't spam messages
|
||||
beaker.reagents.trans_to(eater, transfer_amount)
|
||||
eater.fullness += transfer_amount //Added feeding tube's causing fullness (But ignores limits~)
|
||||
if(prob(10))
|
||||
eater.visible_message("<span class='warning'>[eater]'s belly seems to visibly distend, emitting an audible sloshing noise!</span>", "<span class='danger'>You feel your stomach get pumped full with liquid, hearing sloshing noises coming from within!</span>")
|
||||
return TRUE
|
||||
|
||||
/obj/item/clothing/neck/petcollar/locked/bluespace_collar_transmitter/attack_self(mob/user)
|
||||
linked_receiver = 0
|
||||
var/mob/living/carbon/U = user
|
||||
to_chat(U, "<span class='notice'>You remove the currently linked receiver collar from the buffer</span>")
|
||||
. = ..()
|
||||
@@ -2,11 +2,8 @@
|
||||
name = "drone mask"
|
||||
desc = "A mask that can be connected to an air supply. When seen from certain angles, an orange light is reflected by it."
|
||||
icon = 'GainStation13/icons/obj/clothing/fat_mask.dmi'
|
||||
mob_overlay_icon = 'GainStation13/icons/mob/mask.dmi'
|
||||
anthro_mob_worn_overlay = 'GainStation13/icons/mob/mask.dmi'
|
||||
icon_state = "fat_mask"
|
||||
item_state = "fat_mask"
|
||||
mutantrace_variation = STYLE_DIGITIGRADE|STYLE_NO_ANTHRO_ICON
|
||||
var/mob/living/carbon/C
|
||||
|
||||
/obj/item/clothing/mask/gas/fattening/equipped(mob/M, slot)
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
M.reagents.add_reagent(infection_reagent, max(A.totalStageSpeed(), 1))
|
||||
|
||||
/obj/item/reagent_containers/glass/attack(mob/M, mob/user, obj/target)
|
||||
if(M.reagents && M.reagents.get_reagent_amount(/datum/reagent/blueberry_juice) > 0 && (reagents.total_volume + min(amount_per_transfer_from_this, 10)) <= volume)
|
||||
if(M.reagents.get_reagent_amount(/datum/reagent/blueberry_juice) > 0 && (reagents.total_volume + min(amount_per_transfer_from_this, 10)) <= volume)
|
||||
reagents.add_reagent(/datum/reagent/blueberry_juice, min(10, amount_per_transfer_from_this))
|
||||
M.reagents.remove_reagent(/datum/reagent/blueberry_juice, min(10, amount_per_transfer_from_this))
|
||||
if(M != user)
|
||||
|
||||
@@ -3,16 +3,16 @@
|
||||
//item presets for donator items and other gunk
|
||||
//
|
||||
/obj/item/clothing/glasses/eyepatch/white
|
||||
icon ='GainStation13/icons/obj/clothing/glasses.dmi'
|
||||
mob_overlay_icon = 'GainStation13/icons/mob/eyes.dmi'
|
||||
name = "White eyepatch"
|
||||
desc = "Smells faintly of medicine and headaches."
|
||||
icon_state = "eyepatch_white"
|
||||
item_state = "eyepatch_white"
|
||||
|
||||
/obj/item/clothing/glasses/eyepatch/white/cabal
|
||||
/obj/item/clothing/glasses/eyepatch/cabal
|
||||
name = "Cabal's Eyepatch"
|
||||
desc = "Vulpine sluts only."
|
||||
icon_state = "eyepatch_white"
|
||||
item_state = "eyepatch_white"
|
||||
|
||||
/obj/item/toy/sword/chloesabre/halsey
|
||||
name = "Halsey's Sabre"
|
||||
@@ -50,4 +50,3 @@
|
||||
/obj/item/crowbar/bronze/glaug
|
||||
name = "Milwaukee Pocket Crowbar"
|
||||
desc = "Much more expensive. Still serves the same function."
|
||||
|
||||
|
||||
@@ -611,4 +611,4 @@
|
||||
|
||||
/obj/item/paper/fluff/ruins/gateway_fats/facility_report8
|
||||
name = "Report #192 A38 - Lipoifium"
|
||||
info = "Subject 2 - Male, Anthropomorphic Fox, blue fur. Name: Sam S. At the beginning of the testing, subject was recorded to have weight of 160lbs. After a day of exposure, their weight went into quadruple digits. Testing had to be concluded due to insufficient build of the test chamber. More detailed report found in the system."
|
||||
info = "Subject 2 - Male, Anthropomorphic Fox, blue fur. Name: Sam S. At the beginning of the testing, subject was recorded to have weight of 160lbs. After a day minutes of exposure, their weight went into quadruple digits. Testing had to be concluded due to insufficient build of the test chamber. More detailed report found in the system."
|
||||
|
||||
@@ -81,8 +81,3 @@
|
||||
desc = "A plush of a silly-eyed xeno seccie."
|
||||
icon_state = "crowbars"
|
||||
attack_verb = list("squished", "crowbared", "beno'd")
|
||||
|
||||
/obj/item/toy/plush/gs13/sharky
|
||||
desc = "A plush of a toothy, sharky creature."
|
||||
icon_state = "sharky"
|
||||
attack_verb = list("squished", "bit", "sharkied")
|
||||
|
||||
@@ -62,17 +62,10 @@
|
||||
if(beaker)
|
||||
if(mode)
|
||||
if(beaker.reagents.total_volume)
|
||||
// Check to see if the person is wearing a bluespace collar
|
||||
var/obj/item/clothing/neck/petcollar/locked/bluespace_collar_transmitter/K = 0
|
||||
if(istype(attached, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/human_eater = attached
|
||||
K = human_eater.wear_neck
|
||||
var/transfer_amount = 5
|
||||
if (!(istype(K, /obj/item/clothing/neck/petcollar/locked/bluespace_collar_transmitter) && K.transpose_feeding(transfer_amount, beaker, attached))) //If wearing a BS collar, use BS proc. If not, continue as normal
|
||||
var/fraction = min(transfer_amount/beaker.reagents.total_volume, 1) //the fraction that is transfered of the total volume
|
||||
beaker.reagents.reaction(attached, INJECT, fraction, FALSE) //make reagents reacts, but don't spam messages
|
||||
beaker.reagents.trans_to(attached, transfer_amount)
|
||||
attached.fullness += transfer_amount //Added feeding tube's causing fullness (But ignores limits~)
|
||||
var/fraction = min(transfer_amount/beaker.reagents.total_volume, 1) //the fraction that is transfered of the total volume
|
||||
beaker.reagents.reaction(attached, INJECT, fraction, FALSE) //make reagents reacts, but don't spam messages
|
||||
beaker.reagents.trans_to(attached, transfer_amount)
|
||||
update_icon()
|
||||
|
||||
else if(!beaker.reagents.total_volume && istype(beaker, /obj/item/reagent_containers/food))
|
||||
|
||||
@@ -260,18 +260,10 @@
|
||||
|
||||
SEND_SIGNAL(food, COMSIG_FOOD_EATEN, attached)
|
||||
|
||||
// Check to see if the person is wearing a bluespace collar
|
||||
var/obj/item/clothing/neck/petcollar/locked/bluespace_collar_transmitter/K = 0
|
||||
if(istype(attached, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/human_eater = attached
|
||||
K = human_eater.wear_neck
|
||||
if (!(istype(K, /obj/item/clothing/neck/petcollar/locked/bluespace_collar_transmitter) && K.transpose_industrial_feeding(food, food_reagents, attached))) //If wearing a BS collar, use BS proc. If not, continue as normal
|
||||
food_reagents.reaction(attached, INGEST, food_size)
|
||||
food_reagents.trans_to(attached, food_size)
|
||||
if(istype(attached, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/human_eater = attached
|
||||
human_eater.fullness += food_size //Added industrial feeding tube's causing fullness (But ignores limits~)
|
||||
food.checkLiked(food_size, attached) //...Hopefully you like the taste.
|
||||
food_reagents.reaction(attached, INGEST, food_size)
|
||||
food_reagents.trans_to(attached, food_size)
|
||||
|
||||
food.checkLiked(food_size, attached) //...Hopefully you like the taste.
|
||||
|
||||
|
||||
if(food.trash) //Lets make the trash the food's supposed to make, if it has any
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
GLOBAL_LIST_INIT(uncapped_resize_areas, list(/area/command/bridge, /area/maintenance, /area/security/prison, /area/holodeck, /area/commons/vacant_room/office, /area/space, /area/ruin, /area/lavaland, /area/awaymission, /area/centcom, /area/fatlab, /area/xenoarch))
|
||||
GLOBAL_LIST_INIT(uncapped_resize_areas, list(/area/command/bridge, /area/maintenance, /area/security/prison, /area/holodeck, /area/commons/vacant_room/office, /area/space, /area/ruin, /area/lavaland, /area/awaymission, /area/centcom, /area/fatlab))
|
||||
|
||||
/mob/living
|
||||
var/burpslurring = 0 //GS13 - necessary due to "say" being defined by mob/living
|
||||
|
||||
@@ -112,9 +112,6 @@
|
||||
see_in_dark = 10
|
||||
maxHealth = 20
|
||||
health = 20
|
||||
obj_damage = 0
|
||||
melee_damage_lower = 0.001
|
||||
melee_damage_upper = 0.001
|
||||
blood_volume = 0 //don't want it to bleed
|
||||
del_on_death = TRUE //it's an apparition, shouldn't have a body
|
||||
movement_type = FLYING
|
||||
|
||||
@@ -57,28 +57,6 @@
|
||||
category = list("Equipment", "Misc", "Medical Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ALL
|
||||
|
||||
/datum/design/bluespace_collar_receiver
|
||||
name = "Bluespace collar receiver"
|
||||
desc = "A collar containing a miniaturized bluespace whitehole. Other bluespace transmitter collars can connect to this, causing the wearer to receive food from other transmitter collars directly into the stomach."
|
||||
id = "bluespace_collar_receiver"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(/datum/material/iron = 1000, /datum/material/calorite = 2500, /datum/material/bluespace = 250)
|
||||
construction_time = 75
|
||||
build_path = /obj/item/clothing/neck/petcollar/locked/bluespace_collar_receiver
|
||||
category = list("Equipment", "Misc", "Medical Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ALL
|
||||
|
||||
/datum/design/bluespace_collar_transmitter
|
||||
name = "Bluespace collar transmitter"
|
||||
desc = "A collar containing a miniaturized bluespace blackhole. Can be connected to a bluespace collar receiver to transmit food to a linked receiver collar. "
|
||||
id = "bluespace_collar_transmitter"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(/datum/material/iron = 1000, /datum/material/calorite = 1000, /datum/material/bluespace = 500)
|
||||
construction_time = 75
|
||||
build_path = /obj/item/clothing/neck/petcollar/locked/bluespace_collar_transmitter
|
||||
category = list("Equipment", "Misc", "Medical Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ALL
|
||||
|
||||
/datum/design/cyberimp_nutriment_turbo
|
||||
name = "Nutriment Pump Implant TURBO"
|
||||
desc = "This implant was meant to prevent people from going hungry, but due to a flaw in its designs, it permanently produces a small amount of nutriment overtime."
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
display_name = "Nutri-Tech Tools"
|
||||
description = "Ending world hunger was never made easier!"
|
||||
prereq_ids = list("biotech", "adv_engi")
|
||||
design_ids = list("calorite_collar", "ci-nutrimentturbo", "bluespace_belt", "adipoelectric_transformer", "cookie_synthesizer", "borg_upgrade_cookiesynthesizer", "borg_upgrade_feedingtube", "ci-fatmobility","bluespace_collar_receiver","bluespace_collar_transmitter")
|
||||
design_ids = list("calorite_collar", "ci-nutrimentturbo", "bluespace_belt", "adipoelectric_transformer", "cookie_synthesizer", "borg_upgrade_cookiesynthesizer", "borg_upgrade_feedingtube", "ci-fatmobility")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
|
||||
boost_item_paths = list(/obj/item/gun/energy/fatoray, /obj/item/gun/energy/fatoray/cannon, /obj/item/trash/fatoray_scrap1, /obj/item/trash/fatoray_scrap2)
|
||||
hidden = TRUE
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 14 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 46 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 14 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 55 KiB |
@@ -25,22 +25,12 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/ruin/space/djstation)
|
||||
"ah" = (
|
||||
/obj/effect/turf_decal/loading_area{
|
||||
icon_state = "drain";
|
||||
name = "drain";
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/ruin/space/djstation)
|
||||
"ai" = (
|
||||
/obj/machinery/light{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/loading_area{
|
||||
icon_state = "drain";
|
||||
name = "drain";
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/ruin/space/djstation)
|
||||
"aj" = (
|
||||
@@ -56,20 +46,10 @@
|
||||
pixel_x = -2;
|
||||
pixel_y = -1
|
||||
},
|
||||
/obj/effect/turf_decal/loading_area{
|
||||
dir = 4;
|
||||
icon_state = "drain";
|
||||
name = "drain"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/ruin/space/djstation)
|
||||
"am" = (
|
||||
/obj/item/extinguisher,
|
||||
/obj/effect/turf_decal/loading_area{
|
||||
dir = 8;
|
||||
icon_state = "drain";
|
||||
name = "drain"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/ruin/space/djstation)
|
||||
"an" = (
|
||||
@@ -96,15 +76,6 @@
|
||||
name = "Worn-out APC";
|
||||
pixel_y = -24
|
||||
},
|
||||
/obj/effect/turf_decal/loading_area{
|
||||
icon_state = "drain";
|
||||
name = "drain"
|
||||
},
|
||||
/obj/effect/turf_decal/loading_area{
|
||||
dir = 8;
|
||||
icon_state = "drain";
|
||||
name = "drain"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/ruin/space/djstation)
|
||||
"aq" = (
|
||||
@@ -115,20 +86,12 @@
|
||||
/obj/structure/sign/warning/electricshock{
|
||||
pixel_y = -32
|
||||
},
|
||||
/obj/effect/turf_decal/loading_area{
|
||||
icon_state = "drain";
|
||||
name = "drain"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/ruin/space/djstation)
|
||||
"ar" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-8"
|
||||
},
|
||||
/obj/effect/turf_decal/loading_area{
|
||||
icon_state = "drain";
|
||||
name = "drain"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/ruin/space/djstation)
|
||||
"as" = (
|
||||
@@ -136,39 +99,21 @@
|
||||
/obj/item/clothing/suit/space/syndicate/orange,
|
||||
/obj/item/clothing/head/helmet/space/syndicate/orange,
|
||||
/obj/item/clothing/mask/breath,
|
||||
/obj/effect/turf_decal/loading_area{
|
||||
icon_state = "drain";
|
||||
name = "drain"
|
||||
},
|
||||
/obj/effect/turf_decal/loading_area{
|
||||
dir = 4;
|
||||
icon_state = "drain";
|
||||
name = "drain"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/ruin/space/djstation)
|
||||
"at" = (
|
||||
/obj/machinery/door/airlock/maintenance_hatch,
|
||||
/turf/open/floor/plasteel,
|
||||
/turf/open/floor/plating,
|
||||
/area/ruin/space/djstation)
|
||||
"au" = (
|
||||
/obj/structure/closet/emcloset,
|
||||
/obj/effect/turf_decal/loading_area{
|
||||
dir = 1;
|
||||
icon_state = "box_white";
|
||||
name = "drain"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/djstation)
|
||||
"av" = (
|
||||
/obj/machinery/vending/snack,
|
||||
/obj/machinery/light/small{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/loading_area{
|
||||
dir = 1;
|
||||
icon_state = "steel_decals_central1";
|
||||
name = "drain"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/djstation)
|
||||
"aw" = (
|
||||
@@ -180,83 +125,89 @@
|
||||
dir = 10;
|
||||
icon_state = "steel_decals10"
|
||||
},
|
||||
/obj/item/cigbutt{
|
||||
pixel_x = -16;
|
||||
pixel_y = -2
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/ruin/space/djstation)
|
||||
"ax" = (
|
||||
/obj/machinery/light_switch{
|
||||
pixel_y = 28
|
||||
},
|
||||
/obj/effect/turf_decal/loading_area{
|
||||
dir = 1;
|
||||
icon_state = "steel_decals_central1";
|
||||
name = "drain"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/djstation)
|
||||
"ay" = (
|
||||
/obj/machinery/newscaster{
|
||||
pixel_y = 32
|
||||
},
|
||||
/obj/structure/closet/firecloset,
|
||||
/obj/effect/turf_decal/loading_area{
|
||||
dir = 1;
|
||||
icon_state = "box_red";
|
||||
name = "drain"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/djstation)
|
||||
"az" = (
|
||||
/obj/structure/table,
|
||||
/obj/machinery/cell_charger,
|
||||
/obj/effect/turf_decal/tile/bar,
|
||||
/obj/effect/turf_decal/tile/bar{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/djstation)
|
||||
"aA" = (
|
||||
/obj/machinery/vending/snack,
|
||||
/obj/effect/turf_decal/tile/bar,
|
||||
/obj/effect/turf_decal/tile/bar{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/djstation)
|
||||
"aB" = (
|
||||
/obj/machinery/sleeper,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/obj/effect/spawner/lootdrop/crate_spawner,
|
||||
/turf/open/floor/plasteel/grimy,
|
||||
/area/ruin/space/djstation)
|
||||
"aC" = (
|
||||
/obj/machinery/light_switch{
|
||||
pixel_y = 28
|
||||
},
|
||||
/turf/open/floor/carpet/red,
|
||||
/turf/open/floor/plasteel/grimy,
|
||||
/area/ruin/space/djstation)
|
||||
"aD" = (
|
||||
/obj/structure/closet,
|
||||
/turf/open/floor/carpet/red,
|
||||
/obj/structure/bed,
|
||||
/obj/item/bedsheet,
|
||||
/turf/open/floor/plasteel/grimy,
|
||||
/area/ruin/space/djstation)
|
||||
"aE" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/flashlight/lamp,
|
||||
/turf/open/floor/carpet/red,
|
||||
/turf/open/floor/plasteel/grimy,
|
||||
/area/ruin/space/djstation)
|
||||
"aF" = (
|
||||
/obj/structure/table,
|
||||
/obj/machinery/microwave{
|
||||
pixel_y = 8
|
||||
},
|
||||
/obj/effect/turf_decal/tile/bar,
|
||||
/obj/effect/turf_decal/tile/bar{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/djstation)
|
||||
"aG" = (
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/djstation)
|
||||
"aH" = (
|
||||
/obj/structure/rack/shelf,
|
||||
/obj/item/storage/box/donkpockets/donkpocketspicy,
|
||||
/obj/item/reagent_containers/food/snacks/rationpack,
|
||||
/obj/item/reagent_containers/food/snacks/rationpack,
|
||||
/obj/item/reagent_containers/food/snacks/rationpack,
|
||||
/turf/open/floor/plasteel,
|
||||
/obj/structure/table,
|
||||
/obj/effect/turf_decal/loading_area{
|
||||
dir = 4;
|
||||
icon_state = "drain";
|
||||
name = "drain"
|
||||
},
|
||||
/obj/effect/turf_decal/loading_area{
|
||||
icon_state = "drain";
|
||||
name = "drain";
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/ruin/space/djstation)
|
||||
"aI" = (
|
||||
/obj/structure/chair/office/light,
|
||||
/obj/effect/turf_decal/loading_area{
|
||||
icon_state = "steel_decals_central6"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/djstation)
|
||||
"aJ" = (
|
||||
@@ -266,57 +217,74 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/djstation)
|
||||
"aK" = (
|
||||
/turf/open/floor/carpet/red,
|
||||
/turf/open/floor/plasteel/grimy,
|
||||
/area/ruin/space/djstation)
|
||||
"aL" = (
|
||||
/obj/structure/bed,
|
||||
/obj/item/bedsheet,
|
||||
/turf/open/floor/carpet/red,
|
||||
/obj/machinery/sleeper{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel/grimy,
|
||||
/area/ruin/space/djstation)
|
||||
"aM" = (
|
||||
/obj/machinery/disposal/bin,
|
||||
/obj/structure/disposalpipe/trunk,
|
||||
/obj/effect/turf_decal/tile/bar,
|
||||
/obj/effect/turf_decal/tile/bar{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/djstation)
|
||||
"aN" = (
|
||||
/obj/machinery/light/small,
|
||||
/obj/effect/turf_decal/tile/bar,
|
||||
/obj/effect/turf_decal/tile/bar{
|
||||
dir = 8
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/tile/bar{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/loading_area{
|
||||
dir = 9;
|
||||
icon_state = "steel_panel";
|
||||
name = "steel pannel"
|
||||
},
|
||||
/turf/open/floor/plasteel/checker,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/djstation)
|
||||
"aO" = (
|
||||
/obj/effect/turf_decal/tile/bar{
|
||||
dir = 8
|
||||
/obj/structure/chair{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/tile/bar,
|
||||
/obj/effect/turf_decal/tile/bar{
|
||||
dir = 4
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plasteel/checker,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/djstation)
|
||||
"aP" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/radio{
|
||||
pixel_x = -5;
|
||||
pixel_y = 9
|
||||
/obj/effect/turf_decal/loading_area{
|
||||
dir = 8;
|
||||
icon_state = "drain";
|
||||
name = "drain"
|
||||
},
|
||||
/obj/effect/turf_decal/loading_area{
|
||||
icon_state = "drain";
|
||||
name = "drain"
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/ruin/space/djstation)
|
||||
"aQ" = (
|
||||
/obj/structure/table,
|
||||
/obj/effect/turf_decal/loading_area{
|
||||
icon_state = "drain";
|
||||
name = "drain"
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/ruin/space/djstation)
|
||||
"aR" = (
|
||||
/obj/item/paper/fluff/ruins/djstation,
|
||||
/obj/structure/table,
|
||||
/obj/effect/turf_decal/loading_area{
|
||||
dir = 4;
|
||||
icon_state = "drain";
|
||||
name = "drain"
|
||||
},
|
||||
/obj/effect/turf_decal/loading_area{
|
||||
icon_state = "drain";
|
||||
name = "drain"
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/ruin/space/djstation)
|
||||
"aS" = (
|
||||
@@ -324,21 +292,21 @@
|
||||
anchored = 1;
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/turf/open/floor/plasteel/grimy,
|
||||
/area/ruin/space/djstation)
|
||||
"aT" = (
|
||||
/obj/structure/chair{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/turf/open/floor/plasteel/grimy,
|
||||
/area/ruin/space/djstation)
|
||||
"aU" = (
|
||||
/obj/machinery/light/small,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/turf/open/floor/plasteel/grimy,
|
||||
/area/ruin/space/djstation)
|
||||
"aV" = (
|
||||
/obj/effect/spawner/lootdrop/crate_spawner,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/obj/structure/closet,
|
||||
/turf/open/floor/plasteel/grimy,
|
||||
/area/ruin/space/djstation)
|
||||
"aW" = (
|
||||
/obj/structure/disposalpipe/segment,
|
||||
@@ -391,10 +359,6 @@
|
||||
dir = 10;
|
||||
icon_state = "steel_decals10"
|
||||
},
|
||||
/obj/item/cigbutt{
|
||||
pixel_x = 10;
|
||||
pixel_y = 6
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/ruin/space/djstation)
|
||||
"bc" = (
|
||||
@@ -498,42 +462,8 @@
|
||||
pixel_y = -14;
|
||||
pixel_x = 12
|
||||
},
|
||||
/obj/item/cigbutt{
|
||||
pixel_x = -10;
|
||||
pixel_y = -4
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/djstation)
|
||||
"dh" = (
|
||||
/obj/effect/turf_decal/loading_area{
|
||||
icon_state = "drain";
|
||||
name = "drain";
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/loading_area{
|
||||
dir = 4;
|
||||
icon_state = "drain";
|
||||
name = "drain"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/ruin/space/djstation)
|
||||
"ec" = (
|
||||
/obj/structure/chair,
|
||||
/obj/effect/turf_decal/loading_area{
|
||||
dir = 1;
|
||||
icon_state = "steel_decals_central1";
|
||||
name = "drain"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/djstation)
|
||||
"gt" = (
|
||||
/obj/effect/turf_decal/loading_area{
|
||||
dir = 8;
|
||||
icon_state = "drain";
|
||||
name = "drain"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/ruin/space/djstation)
|
||||
"gS" = (
|
||||
/obj/effect/turf_decal/loading_area{
|
||||
dir = 6;
|
||||
@@ -548,100 +478,10 @@
|
||||
"mU" = (
|
||||
/turf/open/floor/catwalk_floor,
|
||||
/area/ruin/space/djstation)
|
||||
"qQ" = (
|
||||
/obj/effect/turf_decal/loading_area{
|
||||
icon_state = "drain";
|
||||
name = "drain";
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/loading_area{
|
||||
dir = 8;
|
||||
icon_state = "drain";
|
||||
name = "drain"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/ruin/space/djstation)
|
||||
"rp" = (
|
||||
/obj/effect/turf_decal/loading_area{
|
||||
dir = 4;
|
||||
icon_state = "steel_decals_central5";
|
||||
name = "drain"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/djstation)
|
||||
"tY" = (
|
||||
/obj/effect/turf_decal/loading_area{
|
||||
dir = 6;
|
||||
icon_state = "steel_decals6"
|
||||
},
|
||||
/obj/effect/turf_decal/loading_area{
|
||||
dir = 5;
|
||||
icon_state = "steel_decals6"
|
||||
},
|
||||
/obj/item/cigbutt,
|
||||
/obj/item/cigbutt{
|
||||
pixel_x = -6;
|
||||
pixel_y = -23
|
||||
},
|
||||
/obj/item/cigbutt{
|
||||
pixel_x = -10;
|
||||
pixel_y = -15
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/djstation)
|
||||
"uB" = (
|
||||
/obj/effect/turf_decal/loading_area{
|
||||
dir = 1;
|
||||
icon_state = "steel_decals_central5";
|
||||
name = "drain"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/djstation)
|
||||
"vh" = (
|
||||
/obj/machinery/telecomms/relay/preset/ruskie,
|
||||
/turf/open/floor/catwalk_floor,
|
||||
/area/ruin/space/djstation)
|
||||
"xf" = (
|
||||
/obj/effect/turf_decal/tile/bar{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/tile/bar{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/loading_area{
|
||||
dir = 5;
|
||||
icon_state = "steel_panel";
|
||||
name = "steel pannel"
|
||||
},
|
||||
/turf/open/floor/plasteel/checker,
|
||||
/area/ruin/space/djstation)
|
||||
"xm" = (
|
||||
/obj/effect/turf_decal/loading_area{
|
||||
dir = 4;
|
||||
icon_state = "drain";
|
||||
name = "drain"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/ruin/space/djstation)
|
||||
"zi" = (
|
||||
/obj/effect/turf_decal/tile/bar{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/tile/bar{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/loading_area{
|
||||
dir = 9;
|
||||
icon_state = "steel_panel";
|
||||
name = "steel pannel"
|
||||
},
|
||||
/obj/effect/turf_decal/loading_area{
|
||||
dir = 4;
|
||||
icon_state = "steel_panel";
|
||||
name = "drain"
|
||||
},
|
||||
/turf/open/floor/plasteel/checker,
|
||||
/area/ruin/space/djstation)
|
||||
"zm" = (
|
||||
/obj/item/radio/intercom{
|
||||
broadcasting = 1;
|
||||
@@ -653,29 +493,6 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/djstation)
|
||||
"zw" = (
|
||||
/obj/effect/turf_decal/loading_area{
|
||||
dir = 6;
|
||||
icon_state = "steel_decals6"
|
||||
},
|
||||
/obj/effect/turf_decal/loading_area{
|
||||
dir = 5;
|
||||
icon_state = "steel_decals6"
|
||||
},
|
||||
/obj/item/cigbutt{
|
||||
pixel_x = 7;
|
||||
pixel_y = -18
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/djstation)
|
||||
"BX" = (
|
||||
/obj/effect/turf_decal/loading_area{
|
||||
dir = 8;
|
||||
icon_state = "steel_decals_central5";
|
||||
name = "drain"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/djstation)
|
||||
"Co" = (
|
||||
/obj/machinery/door/airlock/external{
|
||||
name = "Ruskie DJ Station"
|
||||
@@ -687,38 +504,17 @@
|
||||
/area/ruin/space/djstation)
|
||||
"Kw" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/export/bottle/vodka{
|
||||
pixel_x = -6;
|
||||
pixel_y = 10
|
||||
},
|
||||
/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{
|
||||
pixel_x = 6;
|
||||
pixel_y = -6
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/ruin/space/djstation)
|
||||
"MQ" = (
|
||||
/obj/effect/turf_decal/loading_area{
|
||||
dir = 1;
|
||||
icon_state = "caution_white";
|
||||
name = "drain"
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/ruin/space/djstation)
|
||||
"MS" = (
|
||||
/obj/effect/turf_decal/loading_area{
|
||||
dir = 8;
|
||||
icon_state = "drain";
|
||||
name = "drain"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/ruin/space/djstation)
|
||||
"OS" = (
|
||||
/obj/effect/turf_decal/loading_area{
|
||||
dir = 1;
|
||||
icon_state = "delivery";
|
||||
name = "drain"
|
||||
icon_state = "drain";
|
||||
name = "drain";
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/ruin/space/djstation)
|
||||
"To" = (
|
||||
/obj/item/radio/intercom{
|
||||
@@ -730,14 +526,6 @@
|
||||
pixel_y = -14;
|
||||
pixel_x = -12
|
||||
},
|
||||
/obj/item/cigbutt{
|
||||
pixel_x = 3;
|
||||
pixel_y = -6
|
||||
},
|
||||
/obj/item/cigbutt{
|
||||
pixel_x = -17;
|
||||
pixel_y = 8
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/djstation)
|
||||
"Xy" = (
|
||||
@@ -809,8 +597,8 @@ ac
|
||||
ab
|
||||
aa
|
||||
af
|
||||
ec
|
||||
zi
|
||||
aA
|
||||
aA
|
||||
aN
|
||||
af
|
||||
ae
|
||||
@@ -834,8 +622,8 @@ ac
|
||||
ab
|
||||
aa
|
||||
af
|
||||
aH
|
||||
xf
|
||||
aA
|
||||
aA
|
||||
aO
|
||||
af
|
||||
af
|
||||
@@ -860,8 +648,8 @@ ab
|
||||
aa
|
||||
af
|
||||
aA
|
||||
xf
|
||||
aO
|
||||
aA
|
||||
aA
|
||||
aX
|
||||
ba
|
||||
be
|
||||
@@ -901,16 +689,16 @@ ac
|
||||
ac
|
||||
ac
|
||||
ag
|
||||
qQ
|
||||
gt
|
||||
gt
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
am
|
||||
gt
|
||||
ah
|
||||
ap
|
||||
af
|
||||
au
|
||||
aG
|
||||
BX
|
||||
aG
|
||||
aG
|
||||
gS
|
||||
af
|
||||
@@ -937,7 +725,7 @@ av
|
||||
bZ
|
||||
Kw
|
||||
aP
|
||||
zw
|
||||
gS
|
||||
bb
|
||||
bg
|
||||
af
|
||||
@@ -958,11 +746,11 @@ an
|
||||
ao
|
||||
ar
|
||||
at
|
||||
uB
|
||||
aG
|
||||
zm
|
||||
aI
|
||||
aQ
|
||||
tY
|
||||
gS
|
||||
aw
|
||||
Xy
|
||||
af
|
||||
@@ -981,11 +769,11 @@ mU
|
||||
ak
|
||||
mU
|
||||
mU
|
||||
MS
|
||||
ah
|
||||
af
|
||||
ax
|
||||
To
|
||||
aQ
|
||||
aH
|
||||
aR
|
||||
gS
|
||||
bc
|
||||
@@ -1001,22 +789,22 @@ ac
|
||||
ac
|
||||
ac
|
||||
ag
|
||||
dh
|
||||
xm
|
||||
ah
|
||||
ah
|
||||
al
|
||||
xm
|
||||
xm
|
||||
ah
|
||||
ah
|
||||
as
|
||||
af
|
||||
ay
|
||||
aG
|
||||
rp
|
||||
aG
|
||||
aG
|
||||
aY
|
||||
bd
|
||||
MQ
|
||||
Xy
|
||||
bi
|
||||
OS
|
||||
ah
|
||||
Co
|
||||
"}
|
||||
(12,1,1) = {"
|
||||
@@ -1060,7 +848,7 @@ ab
|
||||
aa
|
||||
af
|
||||
aB
|
||||
Xy
|
||||
aK
|
||||
aS
|
||||
af
|
||||
aa
|
||||
|
||||
+28
-1
@@ -1,7 +1,7 @@
|
||||
// tgstation-server DMAPI
|
||||
// The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in IETF RFC 2119.
|
||||
|
||||
#define TGS_DMAPI_VERSION "7.3.0"
|
||||
#define TGS_DMAPI_VERSION "7.3.1"
|
||||
|
||||
// All functions and datums outside this document are subject to change with any version and should not be relied on.
|
||||
|
||||
@@ -58,6 +58,11 @@
|
||||
#define TGS_FILE2TEXT_NATIVE file2text
|
||||
#endif
|
||||
|
||||
// SpacemanDMM compatibility
|
||||
#ifndef CAN_BE_REDEFINED
|
||||
#define CAN_BE_REDEFINED(X)
|
||||
#endif
|
||||
|
||||
// EVENT CODES
|
||||
|
||||
/// Before a reboot mode change, extras parameters are the current and new reboot mode enums.
|
||||
@@ -160,6 +165,7 @@
|
||||
* * http_handler - Optional user defined [/datum/tgs_http_handler].
|
||||
*/
|
||||
/world/proc/TgsNew(datum/tgs_event_handler/event_handler, minimum_required_security_level = TGS_SECURITY_ULTRASAFE, datum/tgs_http_handler/http_handler)
|
||||
CAN_BE_REDEFINED(TRUE)
|
||||
return
|
||||
|
||||
/**
|
||||
@@ -170,6 +176,7 @@
|
||||
* This function should not be called before ..() in [/world/proc/New].
|
||||
*/
|
||||
/world/proc/TgsInitializationComplete()
|
||||
CAN_BE_REDEFINED(TRUE)
|
||||
return
|
||||
|
||||
/// Consumers MUST run this macro at the start of [/world/proc/Topic].
|
||||
@@ -177,6 +184,7 @@
|
||||
|
||||
/// Consumers MUST call this as late as possible in [world/proc/Reboot] (BEFORE ..()).
|
||||
/world/proc/TgsReboot()
|
||||
CAN_BE_REDEFINED(TRUE)
|
||||
return
|
||||
|
||||
// DATUM DEFINITIONS
|
||||
@@ -214,6 +222,7 @@
|
||||
* Returns [TRUE]/[FALSE] based on if the [/datum/tgs_version] contains wildcards.
|
||||
*/
|
||||
/datum/tgs_version/proc/Wildcard()
|
||||
CAN_BE_REDEFINED(TRUE)
|
||||
return
|
||||
|
||||
/**
|
||||
@@ -222,6 +231,7 @@
|
||||
* other_version - The [/datum/tgs_version] to compare against.
|
||||
*/
|
||||
/datum/tgs_version/proc/Equals(datum/tgs_version/other_version)
|
||||
CAN_BE_REDEFINED(TRUE)
|
||||
return
|
||||
|
||||
/// Represents a merge of a GitHub pull request.
|
||||
@@ -459,16 +469,19 @@
|
||||
|
||||
/// Returns the maximum supported [/datum/tgs_version] of the DMAPI.
|
||||
/world/proc/TgsMaximumApiVersion()
|
||||
CAN_BE_REDEFINED(TRUE)
|
||||
return
|
||||
|
||||
/// Returns the minimum supported [/datum/tgs_version] of the DMAPI.
|
||||
/world/proc/TgsMinimumApiVersion()
|
||||
CAN_BE_REDEFINED(TRUE)
|
||||
return
|
||||
|
||||
/**
|
||||
* Returns [TRUE] if DreamDaemon was launched under TGS, the API matches, and was properly initialized. [FALSE] will be returned otherwise.
|
||||
*/
|
||||
/world/proc/TgsAvailable()
|
||||
CAN_BE_REDEFINED(TRUE)
|
||||
return
|
||||
|
||||
// No function below this succeeds if it TgsAvailable() returns FALSE or if TgsNew() has yet to be called.
|
||||
@@ -480,6 +493,7 @@
|
||||
* If TGS has not requested a [TGS_REBOOT_MODE_SHUTDOWN] DreamDaemon will be launched again.
|
||||
*/
|
||||
/world/proc/TgsEndProcess()
|
||||
CAN_BE_REDEFINED(TRUE)
|
||||
return
|
||||
|
||||
/**
|
||||
@@ -490,6 +504,7 @@
|
||||
* admin_only: If [TRUE], message will be sent to admin connected chats. Vice-versa applies.
|
||||
*/
|
||||
/world/proc/TgsTargetedChatBroadcast(datum/tgs_message_content/message, admin_only = FALSE)
|
||||
CAN_BE_REDEFINED(TRUE)
|
||||
return
|
||||
|
||||
/**
|
||||
@@ -500,6 +515,7 @@
|
||||
* user: The [/datum/tgs_chat_user] to PM.
|
||||
*/
|
||||
/world/proc/TgsChatPrivateMessage(datum/tgs_message_content/message, datum/tgs_chat_user/user)
|
||||
CAN_BE_REDEFINED(TRUE)
|
||||
return
|
||||
|
||||
/**
|
||||
@@ -510,42 +526,52 @@
|
||||
* channels - Optional list of [/datum/tgs_chat_channel]s to restrict the message to.
|
||||
*/
|
||||
/world/proc/TgsChatBroadcast(datum/tgs_message_content/message, list/channels = null)
|
||||
CAN_BE_REDEFINED(TRUE)
|
||||
return
|
||||
|
||||
/// Returns the current [/datum/tgs_version] of TGS if it is running the server, null otherwise. This function may sleep if the call to [/world/proc/TgsNew] is sleeping!
|
||||
/world/proc/TgsVersion()
|
||||
CAN_BE_REDEFINED(TRUE)
|
||||
return
|
||||
|
||||
/// Returns the running engine type
|
||||
/world/proc/TgsEngine()
|
||||
CAN_BE_REDEFINED(TRUE)
|
||||
return
|
||||
|
||||
/// Returns the current [/datum/tgs_version] of the DMAPI being used if it was activated, null otherwise. This function may sleep if the call to [/world/proc/TgsNew] is sleeping!
|
||||
/world/proc/TgsApiVersion()
|
||||
CAN_BE_REDEFINED(TRUE)
|
||||
return
|
||||
|
||||
/// Returns the name of the TGS instance running the game if TGS is present, null otherwise. This function may sleep if the call to [/world/proc/TgsNew] is sleeping!
|
||||
/world/proc/TgsInstanceName()
|
||||
CAN_BE_REDEFINED(TRUE)
|
||||
return
|
||||
|
||||
/// Return the current [/datum/tgs_revision_information] of the running server if TGS is present, null otherwise. This function may sleep if the call to [/world/proc/TgsNew] is sleeping!
|
||||
/world/proc/TgsRevision()
|
||||
CAN_BE_REDEFINED(TRUE)
|
||||
return
|
||||
|
||||
/// Returns the current BYOND security level as a TGS_SECURITY_ define if TGS is present, null otherwise. This function may sleep if the call to [/world/proc/TgsNew] is sleeping!
|
||||
/world/proc/TgsSecurityLevel()
|
||||
CAN_BE_REDEFINED(TRUE)
|
||||
return
|
||||
|
||||
/// Returns the current BYOND visibility level as a TGS_VISIBILITY_ define if TGS is present, null otherwise. Requires TGS to be using interop API version 5 or higher otherwise the string "___unimplemented" wil be returned. This function may sleep if the call to [/world/proc/TgsNew] is sleeping!
|
||||
/world/proc/TgsVisibility()
|
||||
CAN_BE_REDEFINED(TRUE)
|
||||
return
|
||||
|
||||
/// Returns a list of active [/datum/tgs_revision_information/test_merge]s if TGS is present, null otherwise. This function may sleep if the call to [/world/proc/TgsNew] is sleeping!
|
||||
/world/proc/TgsTestMerges()
|
||||
CAN_BE_REDEFINED(TRUE)
|
||||
return
|
||||
|
||||
/// Returns a list of connected [/datum/tgs_chat_channel]s if TGS is present, null otherwise. This function may sleep if the call to [/world/proc/TgsNew] is sleeping!
|
||||
/world/proc/TgsChatChannelInfo()
|
||||
CAN_BE_REDEFINED(TRUE)
|
||||
return
|
||||
|
||||
/**
|
||||
@@ -556,6 +582,7 @@
|
||||
* wait_for_completion - If set, this function will not return until the event has run to completion.
|
||||
*/
|
||||
/world/proc/TgsTriggerEvent(event_name, list/parameters, wait_for_completion = FALSE)
|
||||
CAN_BE_REDEFINED(TRUE)
|
||||
return
|
||||
|
||||
/*
|
||||
|
||||
@@ -111,18 +111,12 @@ Behavior that's still missing from this component that original food items had t
|
||||
|
||||
. = COMPONENT_ITEM_NO_ATTACK //Point of no return I suppose
|
||||
|
||||
var/obj/item/clothing/neck/petcollar/locked/bluespace_collar_transmitter/K = human_eater.wear_neck //GS13 - Bluespace collar
|
||||
if(eater == feeder)//If you're eating it yourself.
|
||||
if(!do_mob(feeder, eater, eat_time)) //Gotta pass the minimal eat time
|
||||
return
|
||||
var/eatverb = pick(eatverbs)
|
||||
//GS13 - Bluespace collar addition
|
||||
if (istype(K, /obj/item/clothing/neck/petcollar/locked/bluespace_collar_transmitter) && K.islinked())
|
||||
eater.visible_message("<span class='notice'>[eater] effortlessly [eatverb]s \the [parent].</span>", "<span class='notice'>You effortlessly [eatverb] \the [parent], feeling as if you haven't eaten anything at all.</span>")
|
||||
//GS13 - End
|
||||
else if(junkiness && eater.satiety < -150 && eater.nutrition > NUTRITION_LEVEL_STARVING + 50 && !HAS_TRAIT(eater, TRAIT_VORACIOUS))
|
||||
if(junkiness && eater.satiety < -150 && eater.nutrition > NUTRITION_LEVEL_STARVING + 50 && !HAS_TRAIT(eater, TRAIT_VORACIOUS))
|
||||
to_chat(eater, "<span class='warning'>You don't feel like eating any more junk food at the moment!</span>")
|
||||
|
||||
return
|
||||
else if(fullness <= FULLNESS_LEVEL_HALF_FULL)
|
||||
eater.visible_message("<span class='notice'>[eater] hungrily [eatverb]s \the [parent], gobbling it down!</span>", "<span class='notice'>You hungrily [eatverb] \the [parent], gobbling it down!</span>")
|
||||
@@ -153,8 +147,7 @@ Behavior that's still missing from this component that original food items had t
|
||||
eater.visible_message("<span class='danger'>[feeder] forces [eater] to eat [parent]!</span>", \
|
||||
"<span class='userdanger'>[feeder] forces you to eat [parent]!</span>")
|
||||
|
||||
if (!(istype(K, /obj/item/clothing/neck/petcollar/locked/bluespace_collar_transmitter) && K.transpose_food(src, eater, feeder)))
|
||||
TakeBite(eater, feeder)
|
||||
TakeBite(eater, feeder)
|
||||
|
||||
///This function lets the eater take a bite and transfers the reagents to the eater.
|
||||
/datum/component/edible/proc/TakeBite(mob/living/eater, mob/living/feeder)
|
||||
|
||||
@@ -36,7 +36,7 @@ GLOBAL_LIST_EMPTY(blob_nodes)
|
||||
var/autoplace_max_time = 3600 //six minutes, as long as should be needed
|
||||
var/list/blobs_legit = list()
|
||||
var/max_count = 0 //The biggest it got before death
|
||||
var/blobwincount = 800 //GS13 - doubled the tile count from 400 to 800
|
||||
var/blobwincount = 400
|
||||
var/victory_in_progress = FALSE
|
||||
var/rerolling = FALSE
|
||||
|
||||
|
||||
@@ -30,17 +30,9 @@
|
||||
if (!is_drainable())
|
||||
to_chat(user, "<span class='warning'>[src]'s lid hasn't been opened!</span>")
|
||||
return FALSE
|
||||
//GS13 - Bluespace collar addition
|
||||
var/obj/item/clothing/neck/petcollar/locked/bluespace_collar_transmitter/K = 0
|
||||
if(istype(M, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/human_eater = M
|
||||
K = human_eater.wear_neck
|
||||
|
||||
if(M == user)
|
||||
if (istype(K, /obj/item/clothing/neck/petcollar/locked/bluespace_collar_transmitter) && K.islinked())
|
||||
user.visible_message("<span class='notice'>[user] effortlessly swallows a gulp of [src].</span>", "<span class='notice'>You effortlessly swallow a gulp of [src].</span>")
|
||||
//GS13 - End
|
||||
else
|
||||
user.visible_message("<span class='notice'>[user] swallows a gulp of [src].</span>", "<span class='notice'>You swallow a gulp of [src].</span>")
|
||||
user.visible_message("<span class='notice'>[user] swallows a gulp of [src].</span>", "<span class='notice'>You swallow a gulp of [src].</span>")
|
||||
else
|
||||
M.visible_message("<span class='danger'>[user] attempts to feed the contents of [src] to [M].</span>", "<span class='userdanger'>[user] attempts to feed the contents of [src] to [M].</span>")
|
||||
if(!do_mob(user, M))
|
||||
@@ -49,19 +41,19 @@
|
||||
return // The drink might be empty after the delay, such as by spam-feeding
|
||||
M.visible_message("<span class='danger'>[user] feeds the contents of [src] to [M].</span>", "<span class='userdanger'>[user] feeds the contents of [src] to [M].</span>")
|
||||
log_combat(user, M, "fed", reagents.log_list())
|
||||
if (!(istype(K, /obj/item/clothing/neck/petcollar/locked/bluespace_collar_transmitter) && K.transpose_drink(src, M))) //If wearing a BS collar, use BS proc. If not, continue as normal
|
||||
var/fraction = min(gulp_size/reagents.total_volume, 1)
|
||||
checkLiked(fraction, M)
|
||||
reagents.reaction(M, INGEST, fraction)
|
||||
reagents.trans_to(M, gulp_size, log = TRUE)
|
||||
//GS13 Port - Fullness
|
||||
if(iscarbon(M))
|
||||
var/mob/living/carbon/human/human_eater = M
|
||||
if(HAS_TRAIT(M, TRAIT_VORACIOUS))
|
||||
human_eater.fullness += min(gulp_size * 0.67, reagents.total_volume * 0.67)
|
||||
else
|
||||
human_eater.fullness += min(gulp_size, reagents.total_volume) // GS13 drinks will fill your stomach
|
||||
playsound(M.loc,'sound/items/drink.ogg', rand(10,50), 1)
|
||||
|
||||
var/fraction = min(gulp_size/reagents.total_volume, 1)
|
||||
checkLiked(fraction, M)
|
||||
reagents.reaction(M, INGEST, fraction)
|
||||
reagents.trans_to(M, gulp_size, log = TRUE)
|
||||
//GS13 Port - Fullness
|
||||
if(iscarbon(M))
|
||||
var/mob/living/carbon/human/human_eater = M
|
||||
if(HAS_TRAIT(M, TRAIT_VORACIOUS))
|
||||
human_eater.fullness += min(gulp_size * 0.67, reagents.total_volume * 0.67)
|
||||
else
|
||||
human_eater.fullness += min(gulp_size, reagents.total_volume) // GS13 drinks will fill your stomach
|
||||
playsound(M.loc,'sound/items/drink.ogg', rand(10,50), 1)
|
||||
return TRUE
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/CheckAttackCooldown(mob/user, atom/target)
|
||||
|
||||
@@ -122,13 +122,9 @@ All foods are distributed among various categories. Use common sense.
|
||||
var/mob/living/carbon/human/human_eater = M
|
||||
if(istype(human_eater))
|
||||
fullness = human_eater.fullness
|
||||
var/obj/item/clothing/neck/petcollar/locked/bluespace_collar_transmitter/K = human_eater.wear_neck //GS13 - Bluespace collar
|
||||
|
||||
if(M == user) //If you're eating it yourself.
|
||||
//GS13 - Bluespace collar addition
|
||||
if (istype(K, /obj/item/clothing/neck/petcollar/locked/bluespace_collar_transmitter) && K.islinked()) //Feeding with a collar ignores fullness or junkness
|
||||
user.visible_message("<span class='notice'>[user] effortlessly [eatverb]s \the [src].</span>", "<span class='notice'>You effortlessly [eatverb] \the [src], feeling as if you haven't eaten anything at all.</span>")
|
||||
//GS13 - End
|
||||
else if(junkiness && M.satiety < -150 && M.nutrition > NUTRITION_LEVEL_STARVING + 50 )
|
||||
if(junkiness && M.satiety < -150 && M.nutrition > NUTRITION_LEVEL_STARVING + 50 )
|
||||
to_chat(M, "<span class='notice'>You don't feel like eating any more junk food at the moment.</span>")
|
||||
return FALSE
|
||||
else if(fullness <= 50)
|
||||
@@ -146,12 +142,7 @@ All foods are distributed among various categories. Use common sense.
|
||||
M.SetNextAction(CLICK_CD_MELEE * 0.5) //nom nom nom
|
||||
else
|
||||
if(!isbrain(M)) //If you're feeding it to someone else.
|
||||
//GS13 - Bluespace collar addition
|
||||
if (istype(K, /obj/item/clothing/neck/petcollar/locked/bluespace_collar_transmitter) && K.islinked()) //Feeding with a collar ignores fullness
|
||||
M.visible_message("<span class='danger'>[user] attempts to feed [M] [src].</span>", \
|
||||
"<span class='userdanger'>[user] attempts to feed you [src].</span>")
|
||||
//GS13 - End
|
||||
else if(fullness <= (FULLNESS_LEVEL_BEEG * (1 + M.overeatduration / 1000)))
|
||||
if(fullness <= (FULLNESS_LEVEL_BEEG * (1 + M.overeatduration / 1000)))
|
||||
M.visible_message("<span class='danger'>[user] attempts to feed [M] [src].</span>", \
|
||||
"<span class='userdanger'>[user] attempts to feed [M] [src].</span>")
|
||||
else
|
||||
@@ -168,26 +159,27 @@ All foods are distributed among various categories. Use common sense.
|
||||
else
|
||||
to_chat(user, "<span class='warning'>[M] doesn't seem to have a mouth!</span>")
|
||||
return
|
||||
if (!(istype(K, /obj/item/clothing/neck/petcollar/locked/bluespace_collar_transmitter) && K.transpose_food(src, M, user))) //If wearing a BS collar, use BS proc. If not, continue as normal
|
||||
if(reagents) //Handle ingestion of the reagent.
|
||||
if(M.satiety > -200)
|
||||
M.satiety -= junkiness
|
||||
playsound(M.loc,'sound/items/eatfood.ogg', rand(10,50), 1)
|
||||
var/bitevolume = 1
|
||||
if(HAS_TRAIT(M, TRAIT_VORACIOUS))
|
||||
bitevolume = bitevolume * 0.67
|
||||
if(istype(human_eater))
|
||||
human_eater.fullness += bitevolume;
|
||||
|
||||
if(reagents.total_volume)
|
||||
SEND_SIGNAL(src, COMSIG_FOOD_EATEN, M, user)
|
||||
var/fraction = min(bitesize / reagents.total_volume, 1)
|
||||
reagents.reaction(M, INGEST, fraction)
|
||||
reagents.trans_to(M, bitesize, log = TRUE)
|
||||
bitecount++
|
||||
On_Consume(M)
|
||||
checkLiked(fraction, M)
|
||||
return TRUE
|
||||
if(reagents) //Handle ingestion of the reagent.
|
||||
if(M.satiety > -200)
|
||||
M.satiety -= junkiness
|
||||
playsound(M.loc,'sound/items/eatfood.ogg', rand(10,50), 1)
|
||||
var/bitevolume = 1
|
||||
if(HAS_TRAIT(M, TRAIT_VORACIOUS))
|
||||
bitevolume = bitevolume * 0.67
|
||||
human_eater.fullness += bitevolume;
|
||||
if(istype(human_eater))
|
||||
human_eater.fullness += bitevolume;
|
||||
|
||||
if(reagents.total_volume)
|
||||
SEND_SIGNAL(src, COMSIG_FOOD_EATEN, M, user)
|
||||
var/fraction = min(bitesize / reagents.total_volume, 1)
|
||||
reagents.reaction(M, INGEST, fraction)
|
||||
reagents.trans_to(M, bitesize, log = TRUE)
|
||||
bitecount++
|
||||
On_Consume(M)
|
||||
checkLiked(fraction, M)
|
||||
return TRUE
|
||||
|
||||
return FALSE
|
||||
|
||||
|
||||
@@ -298,7 +298,6 @@
|
||||
desc = "A cube of shining metal, four inches to a side and covered in shallow grooves. It has an IPC serial number engraved on the top. It is usually slotted into the head of synthetic crewmembers."
|
||||
icon = 'icons/obj/surgery.dmi'
|
||||
icon_state = "posibrain-ipc"
|
||||
organ_flags = ORGAN_SYNTHETIC // GS13 = Fixes IPC organs decaying, we hope.
|
||||
|
||||
/obj/item/organ/brain/slime
|
||||
name = "slime nucleus"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/mob/living/carbon/alien/humanoid/royal
|
||||
//Common stuffs for Praetorian and Queen
|
||||
icon = 'GainStation13/icons/mob/alienqueen.dmi' //GS13 - swapping out xeno queen sprites to be more in tune with Geiger's designs
|
||||
icon = 'icons/mob/alienqueen.dmi'
|
||||
status_flags = 0
|
||||
unique_name = 0
|
||||
pixel_x = -16
|
||||
|
||||
@@ -79,12 +79,6 @@
|
||||
|
||||
if(prob(chew_probability))
|
||||
var/turf/open/floor/F = get_turf(src)
|
||||
// GS13 - EDIT
|
||||
if(istype(F, /turf/open/floor/catwalk_floor))
|
||||
var/turf/open/floor/catwalk_floor/catwalk = F
|
||||
if(catwalk.covered)
|
||||
return
|
||||
// GS13 - END EDIT
|
||||
if(istype(F) && !F.intact)
|
||||
var/obj/structure/cable/C = locate() in F
|
||||
if(C && prob(15))
|
||||
|
||||
@@ -149,7 +149,7 @@ Borg Hypospray
|
||||
|
||||
/obj/item/reagent_containers/borghypo/hacked
|
||||
icon_state = "borghypo_s"
|
||||
reagent_ids = list (/datum/reagent/toxin/acid, /datum/reagent/toxin/mutetoxin, /datum/reagent/toxin/cyanide, /datum/reagent/toxin/sodium_thiopental, /datum/reagent/toxin/heparin, /datum/reagent/toxin/lexorin, /datum/reagent/consumable/lipoifier) //GS13 EDIT, Lipoifier
|
||||
reagent_ids = list (/datum/reagent/toxin/acid, /datum/reagent/toxin/mutetoxin, /datum/reagent/toxin/cyanide, /datum/reagent/toxin/sodium_thiopental, /datum/reagent/toxin/heparin, /datum/reagent/toxin/lexorin)
|
||||
accepts_reagent_upgrades = FALSE
|
||||
|
||||
/obj/item/reagent_containers/borghypo/clown
|
||||
@@ -248,7 +248,7 @@ Borg Shaker
|
||||
charge_cost = 20 //Lots of reagents all regenerating at once, so the charge cost is lower. They also regenerate faster.
|
||||
recharge_time = 3
|
||||
accepts_reagent_upgrades = FALSE
|
||||
reagent_ids = list(/datum/reagent/toxin/fakebeer, /datum/reagent/consumable/ethanol/fernet, /datum/reagent/consumable/lipoifier) //GS13 EDIT LIPOIFIER
|
||||
reagent_ids = list(/datum/reagent/toxin/fakebeer, /datum/reagent/consumable/ethanol/fernet)
|
||||
|
||||
/obj/item/reagent_containers/borghypo/peace
|
||||
name = "Peace Hypospray"
|
||||
@@ -261,7 +261,7 @@ Borg Shaker
|
||||
icon_state = "borghypo_s"
|
||||
reagent_ids = list(/datum/reagent/peaceborg_confuse, /datum/reagent/peaceborg_tire, /datum/reagent/pax/peaceborg,
|
||||
/datum/reagent/toxin/staminatoxin,/datum/reagent/toxin/sulfonal,/datum/reagent/toxin/sodium_thiopental,
|
||||
/datum/reagent/toxin/cyanide,/datum/reagent/toxin/fentanyl, /datum/reagent/consumable/lipoifier) //GS13 EDIT adds lipoifier
|
||||
/datum/reagent/toxin/cyanide,/datum/reagent/toxin/fentanyl)
|
||||
accepts_reagent_upgrades = FALSE
|
||||
|
||||
/obj/item/reagent_containers/borghypo/epi
|
||||
|
||||
@@ -23,11 +23,7 @@
|
||||
if(!reagents || !reagents.total_volume)
|
||||
to_chat(user, "<span class='warning'>[src] is empty!</span>")
|
||||
return
|
||||
//GS13 - Bluespace collar addition
|
||||
var/obj/item/clothing/neck/petcollar/locked/bluespace_collar_transmitter/K = 0
|
||||
if(istype(M, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/human_eater = M
|
||||
K = human_eater.wear_neck
|
||||
|
||||
if(istype(M))
|
||||
if(user.a_intent == INTENT_HARM)
|
||||
M.visible_message("<span class='danger'>[user] splashes the contents of [src] onto [M]!</span>", \
|
||||
@@ -61,15 +57,11 @@
|
||||
log_reagent("INGESTION: FED BY: [key_name(user)] (loc [user.loc] at [AREACOORD(UT)]) -> [key_name(M)] (loc [M.loc] at [AREACOORD(MT)]) - [reagents.log_list()]")
|
||||
else
|
||||
var/turf/T = get_turf(user)
|
||||
if (istype(K, /obj/item/clothing/neck/petcollar/locked/bluespace_collar_transmitter) && K.islinked())
|
||||
user.visible_message("<span class='notice'>[user] effortlessly swallows a gulp of [src].</span>", "<span class='notice'>You effortlessly swallow a gulp of [src].</span>")
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You swallow a gulp of [src].</span>")
|
||||
to_chat(user, "<span class='notice'>You swallow a gulp of [src].</span>")
|
||||
log_reagent("INGESTION: SELF: [key_name(user)] (loc [user.loc] at [AREACOORD(T)]) - [reagents.log_list()]")
|
||||
var/fraction = min(5/reagents.total_volume, 1)
|
||||
if (!(istype(K, /obj/item/clothing/neck/petcollar/locked/bluespace_collar_transmitter) && K.transpose_container(reagents, fraction, M, user))) //If wearing a BS collar, use BS proc. If not, continue as normal
|
||||
reagents.reaction(M, INGEST, fraction)
|
||||
addtimer(CALLBACK(reagents, TYPE_PROC_REF(/datum/reagents, trans_to), M, 5, null, null, null, self_fed? "self swallowed" : "fed by [user]"), 5)
|
||||
reagents.reaction(M, INGEST, fraction)
|
||||
addtimer(CALLBACK(reagents, TYPE_PROC_REF(/datum/reagents, trans_to), M, 5, null, null, null, self_fed? "self swallowed" : "fed by [user]"), 5)
|
||||
playsound(M.loc,'sound/items/drink.ogg', rand(10,50), 1)
|
||||
|
||||
/obj/item/reagent_containers/glass/afterattack(obj/target, mob/user, proximity)
|
||||
|
||||
@@ -428,7 +428,6 @@
|
||||
/obj/item/organ/eyes/ipc
|
||||
name = "ipc eyes"
|
||||
icon_state = "cybernetic_eyeballs"
|
||||
organ_flags = ORGAN_SYNTHETIC // GS13 = Fixes IPC organs decaying, we hope.
|
||||
|
||||
/obj/item/organ/eyes/ipc/emp_act(severity)
|
||||
. = ..()
|
||||
|
||||
@@ -263,7 +263,6 @@
|
||||
name = "IPC heart"
|
||||
desc = "An electronic pump that regulates hydraulic functions, the electronics have EMP shielding."
|
||||
icon_state = "heart-c"
|
||||
organ_flags = ORGAN_SYNTHETIC // GS13 = Fixes IPC organs decaying, we hope.
|
||||
|
||||
/obj/item/organ/heart/freedom
|
||||
name = "heart of freedom"
|
||||
|
||||
@@ -96,7 +96,6 @@
|
||||
/obj/item/organ/liver/ipc
|
||||
name = "reagent processing liver"
|
||||
icon_state = "liver-c"
|
||||
organ_flags = ORGAN_SYNTHETIC // GS13 = Fixes IPC organs decaying, we hope.
|
||||
|
||||
/obj/item/organ/liver/cybernetic
|
||||
name = "basic cybernetic liver"
|
||||
|
||||
@@ -130,7 +130,6 @@
|
||||
/obj/item/organ/stomach/ipc
|
||||
name = "ipc cell"
|
||||
icon_state = "stomach-ipc"
|
||||
organ_flags = ORGAN_SYNTHETIC // GS13 = Fixes IPC organs decaying, we hope.
|
||||
|
||||
/obj/item/organ/stomach/ipc/on_life()
|
||||
. = ..()
|
||||
|
||||
@@ -109,7 +109,7 @@
|
||||
/datum/gear/donator/white_eyepatch_cabal
|
||||
name = "Cabal's Eyepatch"
|
||||
category = LOADOUT_CATEGORY_DONATOR
|
||||
path = /obj/item/clothing/glasses/eyepatch/white/cabal
|
||||
path = /obj/item/clothing/glasses/eyepatch/cabal
|
||||
ckeywhitelist = list("spess_lizurd", "SPESS LIZURD", "spess lizurd", "SPESS_LIZURD", "spesslizurd", "sonoida")
|
||||
|
||||
/datum/gear/white_eyepatch //accessible to anyone, at donator's request
|
||||
@@ -135,19 +135,9 @@
|
||||
path = /obj/item/toy/plush/gs13/crowbars
|
||||
ckeywhitelist = list("M16nPregnant", "m16npregnant" )
|
||||
|
||||
/datum/gear/donator/sharky_plush
|
||||
name = "Sharky Plush"
|
||||
category = LOADOUT_CATEGORY_DONATOR
|
||||
path = /obj/item/toy/plush/gs13/sharky
|
||||
ckeywhitelist = list("drawntothicc", "Drawntothicc", "DrawnToThicc", "DRAWNTOTHICC")
|
||||
|
||||
/datum/gear/donator/sams_welder
|
||||
name = "Sam's Unlucky Welder"
|
||||
category = LOADOUT_CATEGORY_DONATOR
|
||||
path = /obj/item/weldingtool/bronze
|
||||
ckeywhitelist = list("almaniak", "Almaniak", "AlManiak")
|
||||
|
||||
/datum/gear/suit/labcoat
|
||||
name = "Labcoat"
|
||||
category = LOADOUT_CATEGORY_SUIT
|
||||
path = /obj/item/clothing/suit/toggle/labcoat
|
||||
|
||||
@@ -3927,7 +3927,6 @@
|
||||
#include "GainStation13\code\__HELPERS\transformation.dm"
|
||||
#include "GainStation13\code\clothing\accessory.dm"
|
||||
#include "GainStation13\code\clothing\backpacks.dm"
|
||||
#include "GainStation13\code\clothing\bluespace_collar.dm"
|
||||
#include "GainStation13\code\clothing\calorite_collar.dm"
|
||||
#include "GainStation13\code\clothing\fat_mask.dm"
|
||||
#include "GainStation13\code\clothing\gloves.dm"
|
||||
|
||||
Reference in New Issue
Block a user