Early Polaris Ports

Ports Polaris PRs 6424, 6426, 6428, 6430, 6431, 6432, 6433, and 6434

No vorestation edit markings because they are polariscode ports.
This commit is contained in:
Unknown
2019-08-30 23:55:58 -04:00
parent b64b0faef4
commit 0d73c8ad76
32 changed files with 949 additions and 136 deletions

View File

@@ -156,3 +156,22 @@
/obj/machinery/atmospherics/unary/outlet_injector/hide(var/i)
update_underlays()
/obj/machinery/atmospherics/unary/outlet_injector/attack_hand(mob/user as mob)
to_chat(user, "<span class='notice'>You toggle \the [src].</span>")
injecting = !injecting
use_power = injecting
update_icon()
/obj/machinery/atmospherics/unary/outlet_injector/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
if (!W.is_wrench())
return ..()
playsound(src, W.usesound, 50, 1)
to_chat(user, "<span class='notice'>You begin to unfasten \the [src]...</span>")
if (do_after(user, 40 * W.toolspeed))
user.visible_message( \
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
"<span class='notice'>You have unfastened \the [src].</span>", \
"You hear a ratchet.")
deconstruct()

View File

@@ -144,3 +144,29 @@
cost = 25
containertype = /obj/structure/closet/crate
containername = "Glucose Hypo Crate"
/datum/supply_pack/misc/mre_rations
num_contained = 6
name = "Emergency - MREs"
contains = list(/obj/item/weapon/storage/mre,
/obj/item/weapon/storage/mre/menu2,
/obj/item/weapon/storage/mre/menu3,
/obj/item/weapon/storage/mre/menu4,
/obj/item/weapon/storage/mre/menu5,
/obj/item/weapon/storage/mre/menu6,
/obj/item/weapon/storage/mre/menu7,
/obj/item/weapon/storage/mre/menu8,
/obj/item/weapon/storage/mre/menu9,
/obj/item/weapon/storage/mre/menu10)
cost = 50
containertype = /obj/structure/closet/crate/freezer
containername = "ready to eat rations"
/datum/supply_pack/misc/paste_rations
name = "Emergency - Paste"
contains = list(
/obj/item/weapon/storage/mre/menu11 = 2
)
cost = 25
containertype = /obj/structure/closet/crate/freezer
containername = "emergency rations"

View File

@@ -13,24 +13,6 @@
containername = "Belt-miner gear crate"
access = access_mining
/datum/supply_pack/misc/rations
name = "Emergency rations"
contains = list(
/obj/item/weapon/reagent_containers/food/snacks/liquidfood = 4,
)
cost = 20
containertype = /obj/structure/closet/crate/freezer
containername = "emergency rations"
/datum/supply_pack/misc/proteinrations
name = "Emergency meat rations"
contains = list(
/obj/item/weapon/reagent_containers/food/snacks/liquidprotein = 4,
)
cost = 30
containertype = /obj/structure/closet/crate/freezer
containername = "emergency meat rations"
/datum/supply_pack/misc/eva_rig
name = "eva hardsuit (empty)"
contains = list(

View File

@@ -76,6 +76,10 @@
name = "\improper \"LiquidFood\" ration"
icon_state = "liquidfood"
/obj/item/trash/liquidprotein
name = "\improper \"LiquidProtein\" ration"
icon_state = "liquidprotein"
/obj/item/trash/tastybread
name = "bread tube"
icon_state = "tastybread"

View File

@@ -26,11 +26,6 @@
return
..()
/obj/item/trash/liquidprotein
name = "\improper \"LiquidProtein\" ration"
icon = 'icons/obj/trash_vr.dmi'
icon_state = "liquidprotein"
/obj/item/trash/fancyplate
name = "dirty fancy plate"
icon = 'icons/obj/trash_vr.dmi'

View File

@@ -67,6 +67,7 @@
item_state = "candlebox5"
throwforce = 2
slot_flags = SLOT_BELT
max_storage_space = ITEMSIZE_COST_SMALL * 5
starts_with = list(/obj/item/weapon/flame/candle = 5)
/obj/item/weapon/storage/fancy/whitecandle_box
@@ -78,6 +79,7 @@
item_state = "whitecandlebox5"
throwforce = 2
slot_flags = SLOT_BELT
max_storage_space = ITEMSIZE_COST_SMALL * 5
starts_with = list(/obj/item/weapon/flame/candle/white = 5)
/obj/item/weapon/storage/fancy/blackcandle_box
@@ -89,6 +91,7 @@
item_state = "blackcandlebox5"
throwforce = 2
slot_flags = SLOT_BELT
max_storage_space = ITEMSIZE_COST_SMALL * 5
starts_with = list(/obj/item/weapon/flame/candle/black = 5)
@@ -179,6 +182,21 @@
return
..()
/*
* Cracker Packet
*/
/obj/item/weapon/storage/fancy/crackers
name = "\improper Getmore Crackers"
icon = 'icons/obj/food.dmi'
icon_state = "crackerbox"
icon_type = "cracker"
max_storage_space = ITEMSIZE_COST_TINY * 6
max_w_class = ITEMSIZE_TINY
w_class = ITEMSIZE_SMALL
can_hold = list(/obj/item/weapon/reagent_containers/food/snacks/cracker)
starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/cracker = 6)
////////////
//CIG PACK//
////////////

View File

@@ -0,0 +1,276 @@
/*
MRE Stuff
*/
/obj/item/weapon/storage/mre
name = "standard MRE"
desc = "A vacuum-sealed bag containing a day's worth of nutrients for an adult in strenuous situations. There is no visible expiration date on the package."
icon = 'icons/obj/food.dmi'
icon_state = "mre"
max_storage_space = ITEMSIZE_COST_SMALL * 6
max_w_class = ITEMSIZE_SMALL
var/opened = FALSE
var/meal_desc = "This one is menu 1, meat pizza."
starts_with = list(
/obj/item/weapon/storage/mrebag,
/obj/item/weapon/storage/mrebag/side,
/obj/item/weapon/storage/mrebag/dessert,
/obj/item/weapon/storage/fancy/crackers,
/obj/random/mre/spread,
/obj/random/mre/drink,
/obj/random/mre/sauce,
/obj/item/weapon/material/kitchen/utensil/spoon/plastic
)
/obj/item/weapon/storage/mre/examine(mob/user)
. = ..()
to_chat(user, meal_desc)
/obj/item/weapon/storage/mre/update_icon()
if(opened)
icon_state = "[initial(icon_state)][opened]"
. = ..()
/obj/item/weapon/storage/mre/attack_self(mob/user)
open(user)
/obj/item/weapon/storage/mre/open(mob/user)
if(!opened)
to_chat(usr, "<span class='notice'>You tear open the bag, breaking the vacuum seal.</span>")
opened = 1
update_icon()
. = ..()
/obj/item/weapon/storage/mre/menu2
meal_desc = "This one is menu 2, margherita."
starts_with = list(
/obj/item/weapon/storage/mrebag/menu2,
/obj/item/weapon/storage/mrebag/side,
/obj/item/weapon/storage/mrebag/dessert,
/obj/item/weapon/storage/fancy/crackers,
/obj/random/mre/spread,
/obj/random/mre/drink,
/obj/random/mre/sauce,
/obj/item/weapon/material/kitchen/utensil/spoon/plastic
)
/obj/item/weapon/storage/mre/menu3
meal_desc = "This one is menu 3, vegetable pizza."
starts_with = list(
/obj/item/weapon/storage/mrebag/menu3,
/obj/item/weapon/storage/mrebag/side,
/obj/item/weapon/storage/mrebag/dessert,
/obj/item/weapon/storage/fancy/crackers,
/obj/random/mre/spread,
/obj/random/mre/drink,
/obj/random/mre/sauce,
/obj/item/weapon/material/kitchen/utensil/spoon/plastic
)
/obj/item/weapon/storage/mre/menu4
meal_desc = "This one is menu 4, hamburger."
starts_with = list(
/obj/item/weapon/storage/mrebag/menu4,
/obj/item/weapon/storage/mrebag/side,
/obj/item/weapon/storage/mrebag/dessert,
/obj/item/weapon/storage/fancy/crackers,
/obj/random/mre/spread,
/obj/random/mre/drink,
/obj/random/mre/sauce,
/obj/item/weapon/material/kitchen/utensil/spoon/plastic
)
/obj/item/weapon/storage/mre/menu5
meal_desc = "This one is menu 5, taco."
starts_with = list(
/obj/item/weapon/storage/mrebag/menu5,
/obj/item/weapon/storage/mrebag/side,
/obj/item/weapon/storage/mrebag/dessert,
/obj/item/weapon/storage/fancy/crackers,
/obj/random/mre/spread,
/obj/random/mre/drink,
/obj/random/mre/sauce,
/obj/item/weapon/material/kitchen/utensil/spoon/plastic
)
/obj/item/weapon/storage/mre/menu6
meal_desc = "This one is menu 6, meatbread."
starts_with = list(
/obj/item/weapon/storage/mrebag/menu6,
/obj/item/weapon/storage/mrebag/side,
/obj/item/weapon/storage/mrebag/dessert,
/obj/item/weapon/storage/fancy/crackers,
/obj/random/mre/spread,
/obj/random/mre/drink,
/obj/random/mre/sauce,
/obj/item/weapon/material/kitchen/utensil/spoon/plastic
)
/obj/item/weapon/storage/mre/menu7
meal_desc = "This one is menu 7, salad."
starts_with = list(
/obj/item/weapon/storage/mrebag/menu7,
/obj/item/weapon/storage/mrebag/side,
/obj/item/weapon/storage/mrebag/dessert,
/obj/item/weapon/storage/fancy/crackers,
/obj/random/mre/spread,
/obj/random/mre/drink,
/obj/random/mre/sauce,
/obj/item/weapon/material/kitchen/utensil/spoon/plastic
)
/obj/item/weapon/storage/mre/menu8
meal_desc = " This one is menu 8, hot chili."
starts_with = list(
/obj/item/weapon/storage/mrebag/menu8,
/obj/item/weapon/storage/mrebag/side,
/obj/item/weapon/storage/mrebag/dessert,
/obj/item/weapon/storage/fancy/crackers,
/obj/random/mre/spread,
/obj/random/mre/drink,
/obj/random/mre/sauce,
/obj/item/weapon/material/kitchen/utensil/spoon/plastic
)
/obj/item/weapon/storage/mre/menu9
name = "vegan MRE"
meal_desc = "This one is menu 9, boiled rice (skrell-safe)."
icon_state = "vegmre"
starts_with = list(
/obj/item/weapon/storage/mrebag/menu9,
/obj/item/weapon/storage/mrebag/side,
/obj/item/weapon/storage/mrebag/dessert/menu9,
/obj/item/weapon/storage/fancy/crackers,
/obj/random/mre/spread/vegan,
/obj/random/mre/drink,
/obj/random/mre/sauce/vegan,
/obj/item/weapon/material/kitchen/utensil/spoon/plastic
)
/obj/item/weapon/storage/mre/menu10
name = "protein MRE"
meal_desc = "This one is menu 10, protein."
icon_state = "meatmre"
starts_with = list(
/obj/item/weapon/storage/mrebag/menu10,
/obj/item/weapon/storage/mrebag/menu10,
/obj/item/weapon/reagent_containers/food/snacks/candy/proteinbar,
/obj/item/weapon/reagent_containers/food/condiment/small/packet/protein,
/obj/random/mre/sauce/sugarfree,
/obj/item/weapon/material/kitchen/utensil/spoon/plastic
)
/obj/item/weapon/storage/mre/menu11
name = "emergency MRE"
meal_desc = "This one is menu 11, nutriment paste. Only for emergencies."
icon_state = "crayonmre"
starts_with = list(
/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
/obj/item/weapon/reagent_containers/food/snacks/liquidprotein,
/obj/item/weapon/reagent_containers/food/snacks/liquidprotein,
)
/obj/item/weapon/storage/mre/menu12
name = "crayon MRE"
meal_desc = "This one doesn't have a menu listing. How very odd."
icon_state = "crayonmre"
starts_with = list(
/obj/item/weapon/storage/fancy/crayons,
/obj/item/weapon/storage/mrebag/dessert/menu11,
/obj/random/mre/sauce/crayon,
/obj/random/mre/sauce/crayon,
/obj/random/mre/sauce/crayon
)
/obj/item/weapon/storage/mre/random
meal_desc = "The menu label is faded out."
starts_with = list(
/obj/random/mre/main,
/obj/item/weapon/storage/mrebag/side,
/obj/item/weapon/storage/mrebag/dessert,
/obj/item/weapon/storage/fancy/crackers,
/obj/random/mre/spread,
/obj/random/mre/drink,
/obj/random/mre/sauce,
/obj/item/weapon/material/kitchen/utensil/spoon/plastic
)
/obj/item/weapon/storage/mrebag
name = "main course"
desc = "A vacuum-sealed bag containing the MRE's main course. Self-heats when opened."
icon = 'icons/obj/food.dmi'
icon_state = "pouch_medium"
storage_slots = 1
w_class = ITEMSIZE_SMALL
max_w_class = ITEMSIZE_SMALL
var/opened = FALSE
starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/slice/meatpizza/filled)
/obj/item/weapon/storage/mrebag/Initialize()
. = ..()
/obj/item/weapon/storage/mrebag/update_icon()
if(opened)
icon_state = "[initial(icon_state)][opened]"
. = ..()
/obj/item/weapon/storage/mrebag/attack_self(mob/user)
open(user)
/obj/item/weapon/storage/mrebag/open(mob/user)
if(!opened)
to_chat(usr, "<span class='notice'>The pouch heats up as you break the vaccum seal.</span>")
opened = 1
update_icon()
. = ..()
/obj/item/weapon/storage/mrebag/menu2
starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/slice/margherita/filled)
/obj/item/weapon/storage/mrebag/menu3
starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/slice/vegetablepizza/filled)
/obj/item/weapon/storage/mrebag/menu4
starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/monkeyburger)
/obj/item/weapon/storage/mrebag/menu5
starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/taco)
/obj/item/weapon/storage/mrebag/menu6
starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/slice/meatbread/filled)
/obj/item/weapon/storage/mrebag/menu7
starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/tossedsalad)
/obj/item/weapon/storage/mrebag/menu8
starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/hotchili)
/obj/item/weapon/storage/mrebag/menu9
starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/boiledrice)
/obj/item/weapon/storage/mrebag/menu10
starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/meatcube)
/obj/item/weapon/storage/mrebag/side
name = "side dish"
desc = "A vacuum-sealed bag containing the MRE's side dish. Self-heats when opened."
icon_state = "pouch_small"
starts_with = list(/obj/random/mre/side)
/obj/item/weapon/storage/mrebag/side/menu10
starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/meatcube)
/obj/item/weapon/storage/mrebag/dessert
name = "dessert"
desc = "A vacuum-sealed bag containing the MRE's dessert."
icon_state = "pouch_small"
starts_with = list(/obj/random/mre/dessert)
/obj/item/weapon/storage/mrebag/dessert/menu9
starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/plumphelmetbiscuit)
/obj/item/weapon/storage/mrebag/dessert/menu11
starts_with = list(/obj/item/weapon/pen/crayon/rainbow)

View File

@@ -540,3 +540,149 @@
var/possible_object_paths = list(/obj/item/weapon/paper/carbon/cursedform)
possible_object_paths |= subtypesof(/obj/item/clothing/head/psy_crown)
return pick(possible_object_paths)
//Random MRE stuff
/obj/random/mre
name = "random MRE"
desc = "This is a random single MRE."
icon = 'icons/obj/food.dmi'
icon_state = "mre"
/obj/random/mre/item_to_spawn()
return pick(/obj/item/weapon/storage/mre,
/obj/item/weapon/storage/mre/menu2,
/obj/item/weapon/storage/mre/menu3,
/obj/item/weapon/storage/mre/menu4,
/obj/item/weapon/storage/mre/menu5,
/obj/item/weapon/storage/mre/menu6,
/obj/item/weapon/storage/mre/menu7,
/obj/item/weapon/storage/mre/menu8,
/obj/item/weapon/storage/mre/menu9,
/obj/item/weapon/storage/mre/menu10)
/obj/random/mre/main
name = "random MRE main course"
desc = "This is a random main course for MREs."
icon_state = "pouch"
drop_get_turf = FALSE
/obj/random/mre/main/item_to_spawn()
return pick(/obj/item/weapon/storage/mrebag,
/obj/item/weapon/storage/mrebag/menu2,
/obj/item/weapon/storage/mrebag/menu3,
/obj/item/weapon/storage/mrebag/menu4,
/obj/item/weapon/storage/mrebag/menu5,
/obj/item/weapon/storage/mrebag/menu6,
/obj/item/weapon/storage/mrebag/menu7,
/obj/item/weapon/storage/mrebag/menu8)
/obj/random/mre/side
name = "random MRE side dish"
desc = "This is a random side dish for MREs."
icon_state = "pouch"
drop_get_turf = FALSE
/obj/random/mre/main/item_to_spawn()
return pick(/obj/item/weapon/reagent_containers/food/snacks/tossedsalad,
/obj/item/weapon/reagent_containers/food/snacks/boiledrice,
/obj/item/weapon/reagent_containers/food/snacks/poppypretzel,
/obj/item/weapon/reagent_containers/food/snacks/twobread,
/obj/item/weapon/reagent_containers/food/snacks/jelliedtoast)
/obj/random/mre/dessert
name = "random MRE dessert"
desc = "This is a random dessert for MREs."
icon_state = "pouch"
drop_get_turf = FALSE
/obj/random/mre/dessert/item_to_spawn()
return pick(/obj/item/weapon/reagent_containers/food/snacks/candy,
/obj/item/weapon/reagent_containers/food/snacks/candy/proteinbar,
/obj/item/weapon/reagent_containers/food/snacks/donut/normal,
/obj/item/weapon/reagent_containers/food/snacks/donut/cherryjelly,
/obj/item/weapon/reagent_containers/food/snacks/chocolatebar,
/obj/item/weapon/reagent_containers/food/snacks/cookie)
/obj/random/mre/dessert/vegan
name = "random vegan MRE dessert"
desc = "This is a random vegan dessert for MREs."
/obj/random/mre/dessert/vegan/item_to_spawn()
return pick(/obj/item/weapon/reagent_containers/food/snacks/candy,
/obj/item/weapon/reagent_containers/food/snacks/chocolatebar,
/obj/item/weapon/reagent_containers/food/snacks/donut/cherryjelly,
/obj/item/weapon/reagent_containers/food/snacks/plumphelmetbiscuit)
/obj/random/mre/drink
name = "random MRE drink"
desc = "This is a random drink for MREs."
icon_state = "packet"
drop_get_turf = FALSE
/obj/random/mre/drink/item_to_spawn()
return pick(/obj/item/weapon/reagent_containers/food/condiment/small/packet/coffee,
/obj/item/weapon/reagent_containers/food/condiment/small/packet/tea,
/obj/item/weapon/reagent_containers/food/condiment/small/packet/cocoa,
/obj/item/weapon/reagent_containers/food/condiment/small/packet/grape,
/obj/item/weapon/reagent_containers/food/condiment/small/packet/orange,
/obj/item/weapon/reagent_containers/food/condiment/small/packet/watermelon,
/obj/item/weapon/reagent_containers/food/condiment/small/packet/apple)
/obj/random/mre/spread
name = "random MRE spread"
desc = "This is a random spread packet for MREs."
icon_state = "packet"
drop_get_turf = FALSE
/obj/random/mre/spread/item_to_spawn()
return pick(/obj/item/weapon/reagent_containers/food/condiment/small/packet/jelly,
/obj/item/weapon/reagent_containers/food/condiment/small/packet/honey)
/obj/random/mre/spread/vegan
name = "random vegan MRE spread"
desc = "This is a random vegan spread packet for MREs"
/obj/random/mre/spread/vegan/item_to_spawn()
return pick(/obj/item/weapon/reagent_containers/food/condiment/small/packet/jelly)
/obj/random/mre/sauce
name = "random MRE sauce"
desc = "This is a random sauce packet for MREs."
icon_state = "packet"
drop_get_turf = FALSE
/obj/random/mre/sauce/item_to_spawn()
return pick(/obj/item/weapon/reagent_containers/food/condiment/small/packet/salt,
/obj/item/weapon/reagent_containers/food/condiment/small/packet/pepper,
/obj/item/weapon/reagent_containers/food/condiment/small/packet/sugar,
/obj/item/weapon/reagent_containers/food/condiment/small/packet/capsaicin,
/obj/item/weapon/reagent_containers/food/condiment/small/packet/ketchup,
/obj/item/weapon/reagent_containers/food/condiment/small/packet/mayo,
/obj/item/weapon/reagent_containers/food/condiment/small/packet/soy)
/obj/random/mre/sauce/vegan/item_to_spawn()
return pick(/obj/item/weapon/reagent_containers/food/condiment/small/packet/salt,
/obj/item/weapon/reagent_containers/food/condiment/small/packet/pepper,
/obj/item/weapon/reagent_containers/food/condiment/small/packet/sugar,
/obj/item/weapon/reagent_containers/food/condiment/small/packet/soy)
/obj/random/mre/sauce/sugarfree/item_to_spawn()
return pick(/obj/item/weapon/reagent_containers/food/condiment/small/packet/salt,
/obj/item/weapon/reagent_containers/food/condiment/small/packet/pepper,
/obj/item/weapon/reagent_containers/food/condiment/small/packet/capsaicin,
/obj/item/weapon/reagent_containers/food/condiment/small/packet/ketchup,
/obj/item/weapon/reagent_containers/food/condiment/small/packet/mayo,
/obj/item/weapon/reagent_containers/food/condiment/small/packet/soy)
/obj/random/mre/sauce/crayon/item_to_spawn()
return pick(/obj/item/weapon/reagent_containers/food/condiment/small/packet/crayon/generic,
/obj/item/weapon/reagent_containers/food/condiment/small/packet/crayon/red,
/obj/item/weapon/reagent_containers/food/condiment/small/packet/crayon/orange,
/obj/item/weapon/reagent_containers/food/condiment/small/packet/crayon/yellow,
/obj/item/weapon/reagent_containers/food/condiment/small/packet/crayon/green,
/obj/item/weapon/reagent_containers/food/condiment/small/packet/crayon/blue,
/obj/item/weapon/reagent_containers/food/condiment/small/packet/crayon/purple,
/obj/item/weapon/reagent_containers/food/condiment/small/packet/crayon/grey,
/obj/item/weapon/reagent_containers/food/condiment/small/packet/crayon/brown)

View File

@@ -97,6 +97,7 @@
/obj/item/clothing/glasses/meson,
/obj/item/weapon/cartridge/engineering,
/obj/item/taperoll/engineering,
/obj/item/clothing/head/hardhat,
/obj/item/clothing/suit/storage/hooded/wintercoat/engineering,
/obj/item/clothing/shoes/boots/winter/engineering,
/obj/item/weapon/tank/emergency/oxygen/engi,
@@ -125,6 +126,7 @@
starts_with = list(
/obj/item/clothing/accessory/storage/brown_vest,
/obj/item/clothing/suit/fire/firefighter,
/obj/item/clothing/head/hardhat/red,
/obj/item/device/flashlight,
/obj/item/weapon/extinguisher,
///obj/item/clamp, //VOREStation Removal: without leaks those are pointless,

View File

@@ -346,7 +346,7 @@
desc = "A crate of emergency rations."
starts_with = list(
/obj/item/weapon/reagent_containers/food/snacks/liquidfood = 4)
/obj/random/mre = 6)
/obj/structure/closet/crate/bin

View File

@@ -368,7 +368,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
return
var/location = alert(src,"Please specify where to spawn them.", "Location", "Right Here", "Arrivals", "Cancel")
if(!location)
if(location == "Cancel" || !location)
return
var/announce = alert(src,"Announce as if they had just arrived?", "Announce", "Yes", "No", "Cancel")

View File

@@ -293,6 +293,17 @@
punch_force = initial(punch_force)
wearer = null
/obj/item/clothing/gloves
var/datum/unarmed_attack/special_attack = null //do the gloves have a special unarmed attack?
var/special_attack_type = null
/obj/item/clothing/gloves/New()
..()
if(special_attack_type && ispath(special_attack_type))
special_attack = new special_attack_type
/////////////////////////////////////////////////////////////////////
//Rings

View File

@@ -18,6 +18,10 @@
var/mob/living/carbon/human/H = user
if(H.gloves)
gloves = H.gloves
if(!istype(gloves))
to_chat(user, "You are unable to wear \the [src] as \the [H.gloves] are in the way.")
gloves = null
return 0
if(gloves.overgloves)
to_chat(user, "You are unable to wear \the [src] as \the [H.gloves] are in the way.")
gloves = null

View File

@@ -182,6 +182,198 @@
. = ..()
reagents.add_reagent("sugar", 20)
//MRE condiments and drinks.
/obj/item/weapon/reagent_containers/food/condiment/small/packet
icon_state = "packet_small"
w_class = ITEMSIZE_TINY
possible_transfer_amounts = "1;5;10"
amount_per_transfer_from_this = 1
volume = 5
/obj/item/weapon/reagent_containers/food/condiment/small/packet/salt
name = "salt packet"
desc = "Contains 5u of table salt."
icon_state = "packet_small_white"
/obj/item/weapon/reagent_containers/food/condiment/small/packet/salt/Initialize()
. = ..()
reagents.add_reagent("sodiumchloride", 5)
/obj/item/weapon/reagent_containers/food/condiment/small/packet/pepper
name = "pepper packet"
desc = "Contains 5u of black pepper."
icon_state = "packet_small_black"
/obj/item/weapon/reagent_containers/food/condiment/small/packet/salt/Initialize()
. = ..()
reagents.add_reagent("blackpepper", 5)
/obj/item/weapon/reagent_containers/food/condiment/small/packet/sugar
name = "sugar packet"
desc = "Contains 5u of refined sugar."
icon_state = "packet_small_white"
/obj/item/weapon/reagent_containers/food/condiment/small/packet/salt/Initialize()
. = ..()
reagents.add_reagent("sugar", 5)
/obj/item/weapon/reagent_containers/food/condiment/small/packet/jelly
name = "jelly packet"
desc = "Contains 10u of cherry jelly. Best used for spreading on crackers."
icon_state = "packet_medium"
volume = 10
/obj/item/weapon/reagent_containers/food/condiment/small/packet/salt/Initialize()
. = ..()
reagents.add_reagent("cherryjelly", 10)
/obj/item/weapon/reagent_containers/food/condiment/small/packet/honey
name = "honey packet"
desc = "Contains 10u of honey."
icon_state = "packet_medium"
volume = 10
/obj/item/weapon/reagent_containers/food/condiment/small/packet/salt/Initialize()
. = ..()
reagents.add_reagent("honey", 10)
/obj/item/weapon/reagent_containers/food/condiment/small/packet/capsaicin
name = "hot sauce packet"
desc = "Contains 5u of hot sauce. Enjoy in moderation."
icon_state = "packet_small_red"
/obj/item/weapon/reagent_containers/food/condiment/small/packet/salt/Initialize()
. = ..()
reagents.add_reagent("capsaicin", 5)
/obj/item/weapon/reagent_containers/food/condiment/small/packet/ketchup
name = "ketchup packet"
desc = "Contains 5u of ketchup."
icon_state = "packet_small_red"
/obj/item/weapon/reagent_containers/food/condiment/small/packet/salt/Initialize()
. = ..()
reagents.add_reagent("ketchup", 5)
/obj/item/weapon/reagent_containers/food/condiment/small/packet/mayo
name = "mayonnaise packet"
desc = "Contains 5u of mayonnaise."
icon_state = "packet_small_white"
/obj/item/weapon/reagent_containers/food/condiment/small/packet/salt/Initialize()
. = ..()
reagents.add_reagent("mayo", 5)
/obj/item/weapon/reagent_containers/food/condiment/small/packet/soy
name = "soy sauce packet"
desc = "Contains 5u of soy sauce."
icon_state = "packet_small_black"
/obj/item/weapon/reagent_containers/food/condiment/small/packet/salt/Initialize()
. = ..()
reagents.add_reagent("soysauce", 5)
/obj/item/weapon/reagent_containers/food/condiment/small/packet/coffee
name = "coffee powder packet"
desc = "Contains 5u of coffee powder. Mix with 25u of water and heat."
/obj/item/weapon/reagent_containers/food/condiment/small/packet/salt/Initialize()
. = ..()
reagents.add_reagent("coffeepowder", 5)
/obj/item/weapon/reagent_containers/food/condiment/small/packet/tea
name = "tea powder packet"
desc = "Contains 5u of black tea powder. Mix with 25u of water and heat."
/obj/item/weapon/reagent_containers/food/condiment/small/packet/salt/Initialize()
. = ..()
reagents.add_reagent("tea", 5)
/obj/item/weapon/reagent_containers/food/condiment/small/packet/cocoa
name = "cocoa powder packet"
desc = "Contains 5u of cocoa powder. Mix with 25u of water and heat."
/obj/item/weapon/reagent_containers/food/condiment/small/packet/salt/Initialize()
. = ..()
reagents.add_reagent("coco", 5)
/obj/item/weapon/reagent_containers/food/condiment/small/packet/grape
name = "grape juice powder packet"
desc = "Contains 5u of powdered grape juice. Mix with 15u of water."
/obj/item/weapon/reagent_containers/food/condiment/small/packet/salt/Initialize()
. = ..()
reagents.add_reagent("instantgrape", 5)
/obj/item/weapon/reagent_containers/food/condiment/small/packet/orange
name = "orange juice powder packet"
desc = "Contains 5u of powdered orange juice. Mix with 15u of water."
/obj/item/weapon/reagent_containers/food/condiment/small/packet/salt/Initialize()
. = ..()
reagents.add_reagent("instantorange", 5)
/obj/item/weapon/reagent_containers/food/condiment/small/packet/watermelon
name = "watermelon juice powder packet"
desc = "Contains 5u of powdered watermelon juice. Mix with 15u of water."
/obj/item/weapon/reagent_containers/food/condiment/small/packet/salt/Initialize()
. = ..()
reagents.add_reagent("instantwatermelon", 5)
/obj/item/weapon/reagent_containers/food/condiment/small/packet/apple
name = "apple juice powder packet"
desc = "Contains 5u of powdered apple juice. Mix with 15u of water."
/obj/item/weapon/reagent_containers/food/condiment/small/packet/salt/Initialize()
. = ..()
reagents.add_reagent("instantapple", 5)
/obj/item/weapon/reagent_containers/food/condiment/small/packet/protein
name = "protein powder packet"
desc = "Contains 10u of powdered protein. Mix with 20u of water."
icon_state = "packet_medium"
volume = 10
/obj/item/weapon/reagent_containers/food/condiment/small/packet/protein/Initialize()
. = ..()
reagents.add_reagent("protein", 10)
/obj/item/weapon/reagent_containers/food/condiment/small/packet/crayon
name = "crayon powder packet"
desc = "Contains 10u of powdered crayon. Mix with 30u of water."
volume = 10
/obj/item/weapon/reagent_containers/food/condiment/small/packet/crayon/generic/Initialize()
. = ..()
reagents.add_reagent("crayon_dust", 10)
/obj/item/weapon/reagent_containers/food/condiment/small/packet/crayon/red/Initialize()
. = ..()
reagents.add_reagent("crayon_dust_red", 10)
/obj/item/weapon/reagent_containers/food/condiment/small/packet/crayon/orange/Initialize()
. = ..()
reagents.add_reagent("crayon_dust_orange", 10)
/obj/item/weapon/reagent_containers/food/condiment/small/packet/crayon/yellow/Initialize()
. = ..()
reagents.add_reagent("crayon_dust_yellow", 10)
/obj/item/weapon/reagent_containers/food/condiment/small/packet/crayon/green/Initialize()
. = ..()
reagents.add_reagent("crayon_dust_green", 10)
/obj/item/weapon/reagent_containers/food/condiment/small/packet/crayon/blue/Initialize()
. = ..()
reagents.add_reagent("crayon_dust_blue", 10)
/obj/item/weapon/reagent_containers/food/condiment/small/packet/crayon/purple/Initialize()
. = ..()
reagents.add_reagent("crayon_dust_purple", 10)
/obj/item/weapon/reagent_containers/food/condiment/small/packet/crayon/grey/Initialize()
. = ..()
reagents.add_reagent("crayon_dust_grey", 10)
/obj/item/weapon/reagent_containers/food/condiment/small/packet/crayon/brown/Initialize()
. = ..()
reagents.add_reagent("crayon_dust_brown", 10)
//End of MRE stuff.
/obj/item/weapon/reagent_containers/food/condiment/flour
name = "flour sack"
desc = "A big bag of flour. Good for baking!"

View File

@@ -21,12 +21,7 @@
/obj/item/weapon/reagent_containers/food/snacks/Initialize()
. = ..()
if(nutriment_amt)
reagents.add_reagent("nutriment",nutriment_amt,nutriment_desc)
/obj/item/weapon/reagent_containers/food/snacks/Initialize()
. = ..()
if(nutriment_amt)
reagents.add_reagent("nutriment", nutriment_amt)
reagents.add_reagent("nutriment",(nutriment_amt*2),nutriment_desc)
//Placeholder for effect that trigger on eating that aren't tied to reagents.
/obj/item/weapon/reagent_containers/food/snacks/proc/On_Consume(var/mob/M)
@@ -3088,6 +3083,7 @@
filling_color = "#F5DEB8"
center_of_mass = list("x"=16, "y"=6)
nutriment_desc = list("salt" = 1, "cracker" = 2)
w_class = ITEMSIZE_TINY
nutriment_amt = 1
@@ -3738,6 +3734,33 @@
reagents.add_reagent("iron", 3)
bitesize = 4
/obj/item/weapon/reagent_containers/food/snacks/liquidprotein
name = "\improper LiquidProtein Ration"
desc = "A variant of the liquidfood ration, designed for obligate carnivore species. Only barely more appealing than regular liquidfood. Should this be crunchy?"
icon_state = "liquidprotein"
trash = /obj/item/trash/liquidprotein
filling_color = "#A8A8A8"
survivalfood = TRUE
center_of_mass = list("x"=16, "y"=15)
/obj/item/weapon/reagent_containers/food/snacks/liquidprotein/Initialize()
..()
reagents.add_reagent("protein", 30)
reagents.add_reagent("iron", 3)
bitesize = 4
/obj/item/weapon/reagent_containers/food/snacks/meatcube
name = "cubed meat"
desc = "Fried, salted lean meat compressed into a cube. Not very appetizing."
icon_state = "meatcube"
filling_color = "#7a3d11"
center_of_mass = "x=16;y=16"
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/meatcube/Initialize()
. = ..()
reagents.add_reagent(/datum/reagent/nutriment/protein, 15)
/obj/item/weapon/reagent_containers/food/snacks/tastybread
name = "bread tube"
desc = "Bread in a tube. Chewy...and surprisingly tasty."

View File

@@ -126,6 +126,38 @@
slot_r_hand_str = 'icons/mob/items/righthand_gloves.dmi',
)
item_state = "boxing"
special_attack_type = /datum/unarmed_attack/holopugilism
datum/unarmed_attack/holopugilism
sparring_variant_type = /datum/unarmed_attack/holopugilism
datum/unarmed_attack/holopugilism/unarmed_override(var/mob/living/carbon/human/user,var/mob/living/carbon/human/target,var/zone)
user.do_attack_animation(src)
var/damage = rand(0, 9)
if(!damage)
playsound(target.loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1)
target.visible_message("<font color='red'><B>[user] has attempted to punch [target]!</B></font>")
return TRUE
var/obj/item/organ/external/affecting = target.get_organ(ran_zone(user.zone_sel.selecting))
var/armor_block = target.run_armor_check(affecting, "melee")
var/armor_soak = target.get_armor_soak(affecting, "melee")
if(HULK in user.mutations)
damage += 5
playsound(target.loc, "punch", 25, 1, -1)
target.visible_message("<font color='red'><B>[user] has punched [target]!</B></font>")
if(armor_soak >= damage)
return TRUE
target.apply_damage(damage, HALLOSS, affecting, armor_block, armor_soak)
if(damage >= 9)
target.visible_message("<font color='red'><B>[user] has weakened [target]!</B></font>")
target.apply_effect(4, WEAKEN, armor_block)
return TRUE
/obj/structure/window/reinforced/holowindow/attackby(obj/item/W as obj, mob/user as mob)
if(!istype(W))
@@ -262,8 +294,8 @@
spark_system.set_up(5, 0, user.loc)
spark_system.start()
playsound(user.loc, 'sound/weapons/blade1.ogg', 50, 1)
return 1
return 0
return TRUE
return FALSE
/obj/item/weapon/holo/esword/New()
item_color = pick("red","blue","green","purple")

View File

@@ -438,7 +438,7 @@ var/list/name_to_material
// Very rare alloy that is reflective, should be used sparingly.
/material/durasteel
name = "durasteel"
stack_type = /obj/item/stack/material/durasteel
stack_type = /obj/item/stack/material/durasteel/hull
integrity = 600
melting_point = 7000
icon_base = "metal"
@@ -460,6 +460,9 @@ var/list/name_to_material
explosion_resistance = 90
reflectivity = 0.9
/material/durasteel/hull/place_sheet(var/turf/target) //Deconstructed into normal durasteel sheets.
new /obj/item/stack/material/durasteel(target)
/material/plasteel/titanium
name = MAT_TITANIUM
stack_type = /obj/item/stack/material/titanium
@@ -475,6 +478,9 @@ var/list/name_to_material
icon_base = "hull"
icon_reinf = "reinf_mesh"
/material/plasteel/titanium/hull/place_sheet(var/turf/target) //Deconstructed into normal titanium sheets.
new /obj/item/stack/material/titanium(target)
/material/glass
name = "glass"
stack_type = /obj/item/stack/material/glass

View File

@@ -591,9 +591,9 @@ turf/simulated/mineral/floor/light_corner
if(is_clean)
X = new /obj/item/weapon/archaeological_find(src, new_item_type = F.find_type)
else
X = new /obj/item/weapon/ore/strangerock(src, inside_item_type = F.find_type)
X = new /obj/item/weapon/strangerock(src, inside_item_type = F.find_type)
geologic_data.UpdateNearbyArtifactInfo(src)
var/obj/item/weapon/ore/strangerock/SR = X
var/obj/item/weapon/strangerock/SR = X
SR.geologic_data = geologic_data
//some find types delete the /obj/item/weapon/archaeological_find and replace it with something else, this handles when that happens

View File

@@ -8,6 +8,14 @@
return soft_type
return src.default_attack
// VOREStation Edit - End
if(src.gloves)
var/obj/item/clothing/gloves/G = src.gloves
if(istype(G) && G.special_attack && G.special_attack.is_usable(src, target, hit_zone))
if(pulling_punches)
var/datum/unarmed_attack/soft_type = G.special_attack.get_sparring_variant()
if(soft_type)
return soft_type
return G.special_attack
for(var/datum/unarmed_attack/u_attack in species.unarmed_attacks)
if(u_attack.is_usable(src, target, hit_zone))
if(pulling_punches)
@@ -41,39 +49,11 @@
H.do_attack_animation(src)
playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1)
visible_message("<font color='red'><B>[H] reaches for [src], but misses!</B></font>")
return 0
return FALSE
if(H != src && check_shields(0, null, H, H.zone_sel.selecting, H.name))
H.do_attack_animation(src)
return 0
if(istype(H.gloves, /obj/item/clothing/gloves/boxing/hologlove))
H.do_attack_animation(src)
var/damage = rand(0, 9)
if(!damage)
playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1)
visible_message("<font color='red'><B>[H] has attempted to punch [src]!</B></font>")
return 0
var/obj/item/organ/external/affecting = get_organ(ran_zone(H.zone_sel.selecting))
var/armor_block = run_armor_check(affecting, "melee")
var/armor_soak = get_armor_soak(affecting, "melee")
if(HULK in H.mutations)
damage += 5
playsound(loc, "punch", 25, 1, -1)
visible_message("<font color='red'><B>[H] has punched [src]!</B></font>")
if(armor_soak >= damage)
return
apply_damage(damage, HALLOSS, affecting, armor_block, armor_soak)
if(damage >= 9)
visible_message("<font color='red'><B>[H] has weakened [src]!</B></font>")
apply_effect(4, WEAKEN, armor_block)
return
return FALSE
if(istype(M,/mob/living/carbon))
var/mob/living/carbon/C = M
@@ -122,7 +102,7 @@
else if(!(M == src && apply_pressure(M, M.zone_sel.selecting)))
help_shake_act(M)
return 1
return TRUE
if(I_GRAB)
if(M == src || anchored)
@@ -149,7 +129,7 @@
//VORESTATION EDIT
visible_message("<span class='warning'>[M] has grabbed [src] [(M.zone_sel.selecting == BP_L_HAND || M.zone_sel.selecting == BP_R_HAND)? "by [(gender==FEMALE)? "her" : ((gender==MALE)? "his": "their")] hands": "passively"]!</span>")
//VORESTATION END END
return 1
return TRUE
if(I_HURT)
@@ -175,7 +155,7 @@
if(!affecting || affecting.is_stump())
M << "<span class='danger'>They are missing that limb!</span>"
return 1
return TRUE
switch(src.a_intent)
if(I_HELP)
@@ -245,7 +225,10 @@
// See what attack they use
var/datum/unarmed_attack/attack = H.get_unarmed_attack(src, hit_zone)
if(!attack)
return 0
return FALSE
if(attack.unarmed_override(H, src, hit_zone))
return FALSE
H.do_attack_animation(src)
if(!attack_message)
@@ -258,7 +241,7 @@
add_attack_logs(H,src,"Melee attacked with fists (miss/block)")
if(miss_type)
return 0
return FALSE
var/real_damage = rand_damage
var/hit_dam_type = attack.damage_type
@@ -268,7 +251,7 @@
var/obj/item/clothing/gloves/G = H.gloves
real_damage += G.punch_force
hit_dam_type = G.punch_damtype
if(H.pulling_punches) //SO IT IS DECREED: PULLING PUNCHES WILL PREVENT THE ACTUAL DAMAGE FROM RINGS AND KNUCKLES, BUT NOT THE ADDED PAIN
if(H.pulling_punches && !attack.sharp && !attack.edge) //SO IT IS DECREED: PULLING PUNCHES WILL PREVENT THE ACTUAL DAMAGE FROM RINGS AND KNUCKLES, BUT NOT THE ADDED PAIN, BUT YOU CAN'T "PULL" A KNIFE
hit_dam_type = AGONY
real_damage *= damage_multiplier
rand_damage *= damage_multiplier
@@ -359,7 +342,7 @@
var/armor_soak = get_armor_soak(affecting, armor_type, armor_pen)
apply_damage(damage, BRUTE, affecting, armor_block, armor_soak, sharp = a_sharp, edge = a_edge)
updatehealth()
return 1
return TRUE
//Used to attack a joint through grabbing
/mob/living/carbon/human/proc/grab_joint(var/mob/living/user, var/def_zone)
@@ -370,43 +353,43 @@
break
if(!has_grab)
return 0
return FALSE
if(!def_zone) def_zone = user.zone_sel.selecting
var/target_zone = check_zone(def_zone)
if(!target_zone)
return 0
return FALSE
var/obj/item/organ/external/organ = get_organ(check_zone(target_zone))
if(!organ || organ.dislocated > 0 || organ.dislocated == -1) //don't use is_dislocated() here, that checks parent
return 0
return FALSE
user.visible_message("<span class='warning'>[user] begins to dislocate [src]'s [organ.joint]!</span>")
if(do_after(user, 100))
organ.dislocate(1)
src.visible_message("<span class='danger'>[src]'s [organ.joint] [pick("gives way","caves in","crumbles","collapses")]!</span>")
return 1
return 0
return TRUE
return FALSE
//Breaks all grips and pulls that the mob currently has.
/mob/living/carbon/human/proc/break_all_grabs(mob/living/carbon/user)
var/success = 0
var/success = FALSE
if(pulling)
visible_message("<span class='danger'>[user] has broken [src]'s grip on [pulling]!</span>")
success = 1
success = TRUE
stop_pulling()
if(istype(l_hand, /obj/item/weapon/grab))
var/obj/item/weapon/grab/lgrab = l_hand
if(lgrab.affecting)
visible_message("<span class='danger'>[user] has broken [src]'s grip on [lgrab.affecting]!</span>")
success = 1
success = TRUE
spawn(1)
qdel(lgrab)
if(istype(r_hand, /obj/item/weapon/grab))
var/obj/item/weapon/grab/rgrab = r_hand
if(rgrab.affecting)
visible_message("<span class='danger'>[user] has broken [src]'s grip on [rgrab.affecting]!</span>")
success = 1
success = TRUE
spawn(1)
qdel(rgrab)
return success
@@ -421,11 +404,11 @@
/mob/living/carbon/human/proc/apply_pressure(mob/living/user, var/target_zone)
var/obj/item/organ/external/organ = get_organ(target_zone)
if(!organ || !(organ.status & ORGAN_BLEEDING) || (organ.robotic >= ORGAN_ROBOT))
return 0
return FALSE
if(organ.applied_pressure)
user << "<span class='warning'>Someone is already applying pressure to [user == src? "your [organ.name]" : "[src]'s [organ.name]"].</span>"
return 0
return FALSE
var/datum/gender/TU = gender_datums[user.get_visible_gender()]
@@ -446,4 +429,4 @@
else
user.visible_message("\The [user] stops applying pressure to [src]'s [organ.name]!", "You stop applying pressure to [src]'s [organ.name]!")
return 1
return TRUE

View File

@@ -25,18 +25,18 @@ var/global/list/sparring_attack_cache = list()
/datum/unarmed_attack/proc/is_usable(var/mob/living/carbon/human/user, var/mob/living/carbon/human/target, var/zone)
if(user.restrained())
return 0
return FALSE
// Check if they have a functioning hand.
var/obj/item/organ/external/E = user.organs_by_name["l_hand"]
if(E && !E.is_stump())
return 1
return TRUE
E = user.organs_by_name["r_hand"]
if(E && !E.is_stump())
return 1
return TRUE
return 0
return FALSE
/datum/unarmed_attack/proc/get_unarmed_damage()
return damage
@@ -105,6 +105,9 @@ var/global/list/sparring_attack_cache = list()
return
user.visible_message("<span class='danger'>[user] attempts to press [TU.his] [eye_attack_text] into [target]'s eyes, but [TT.he] [TT.does]n't have any!</span>")
/datum/unarmed_attack/proc/unarmed_override(var/mob/living/carbon/human/user,var/mob/living/carbon/human/target,var/zone)
return FALSE //return true if the unarmed override prevents further attacks
/datum/unarmed_attack/bite
attack_verb = list("bit")
attack_sound = 'sound/weapons/bite.ogg'
@@ -121,7 +124,7 @@ var/global/list/sparring_attack_cache = list()
return 0
if (user == target && (zone == BP_HEAD || zone == O_EYES || zone == O_MOUTH))
return 0
return 1
return TRUE
/datum/unarmed_attack/punch
attack_verb = list("punched")
@@ -187,20 +190,20 @@ var/global/list/sparring_attack_cache = list()
/datum/unarmed_attack/kick/is_usable(var/mob/living/carbon/human/user, var/mob/living/carbon/human/target, var/zone)
if (user.legcuffed)
return 0
return FALSE
if(!(zone in list("l_leg", "r_leg", "l_foot", "r_foot", BP_GROIN)))
return 0
return FALSE
var/obj/item/organ/external/E = user.organs_by_name["l_foot"]
if(E && !E.is_stump())
return 1
return TRUE
E = user.organs_by_name["r_foot"]
if(E && !E.is_stump())
return 1
return TRUE
return 0
return FALSE
/datum/unarmed_attack/kick/get_unarmed_damage(var/mob/living/carbon/human/user)
var/obj/item/clothing/shoes = user.shoes
@@ -231,23 +234,23 @@ var/global/list/sparring_attack_cache = list()
/datum/unarmed_attack/stomp/is_usable(var/mob/living/carbon/human/user, var/mob/living/carbon/human/target, var/zone)
if (user.legcuffed)
return 0
return FALSE
if(!istype(target))
return 0
return FALSE
if (!user.lying && (target.lying || (zone in list("l_foot", "r_foot"))))
if(target.grabbed_by == user && target.lying)
return 0
return FALSE
var/obj/item/organ/external/E = user.organs_by_name["l_foot"]
if(E && !E.is_stump())
return 1
return TRUE
E = user.organs_by_name["r_foot"]
if(E && !E.is_stump())
return 1
return TRUE
return 0
return FALSE
/datum/unarmed_attack/stomp/get_unarmed_damage(var/mob/living/carbon/human/user)
var/obj/item/clothing/shoes = user.shoes

View File

@@ -411,7 +411,7 @@
/obj/random/bomb_supply = 7,
/obj/random/contraband = 3,
/obj/random/unidentified_medicine/old_medicine = 7,
/obj/item/weapon/ore/strangerock = 3,
/obj/item/weapon/strangerock = 3,
/obj/item/weapon/ore/phoron = 7,
/obj/random/handgun = 1,
/obj/random/toolbox = 4,

View File

@@ -148,6 +148,24 @@
if(!istype(T, /turf/space))
new /obj/effect/decal/cleanable/flour(T)
/datum/reagent/nutriment/coffee
name = "Coffee Powder"
id = "coffeepowder"
description = "A bitter powder made by grinding coffee beans."
taste_description = "bitterness"
taste_mult = 1.3
nutriment_factor = 1
color = "#482000"
/datum/reagent/nutriment/tea
name = "Tea Powder"
id = "teapowder"
description = "A dark, tart powder made from black tea leaves."
taste_description = "tartness"
taste_mult = 1.3
nutriment_factor = 1
color = "#101000"
/datum/reagent/nutriment/coco
name = "Coco Powder"
id = "coco"
@@ -158,6 +176,41 @@
nutriment_factor = 5
color = "#302000"
/datum/reagent/nutriment/instantjuice
name = "Juice Powder"
id = "instantjuice"
description = "Dehydrated, powdered juice of some kind."
taste_mult = 1.3
nutriment_factor = 1
/datum/reagent/nutriment/instantjuice/grape
name = "Grape Juice Powder"
id = "instantgrape"
description = "Dehydrated, powdered grape juice."
taste_description = "dry grapes"
color = "#863333"
/datum/reagent/nutriment/instantjuice/orange
name = "Orange Juice Powder"
id = "instantorange"
description = "Dehydrated, powdered orange juice."
taste_description = "dry oranges"
color = "#e78108"
/datum/reagent/nutriment/instantjuice/watermelon
name = "Watermelon Juice Powder"
id = "instantwatermelon"
description = "Dehydrated, powdered watermelon juice."
taste_description = "dry sweet watermelon"
color = "#b83333"
/datum/reagent/nutriment/instantjuice/apple
name = "Apple Juice Powder"
id = "instantapple"
description = "Dehydrated, powdered apple juice."
taste_description = "dry sweet apples"
color = "#c07c40"
/datum/reagent/nutriment/soysauce
name = "Soysauce"
id = "soysauce"

View File

@@ -1200,6 +1200,20 @@
new /obj/item/weapon/reagent_containers/food/snacks/chocolatebar(location)
return
/datum/chemical_reaction/drinks/coffee
name = "Coffee"
id = "coffee"
result = "coffee"
required_reagents = list("water" = 5, "coffeepowder" = 1)
result_amount = 5
/datum/chemical_reaction/drinks/tea
name = "Black tea"
id = "tea"
result = "tea"
required_reagents = list("water" = 5, "teapowder" = 1)
result_amount = 5
/datum/chemical_reaction/drinks/hot_coco
name = "Hot Coco"
id = "hot_coco"
@@ -1214,6 +1228,34 @@
required_reagents = list("soymilk" = 4, "sacid" = 1)
result_amount = 5
/datum/chemical_reaction/drinks/grapejuice
name = "Grape Juice"
id = "grapejuice"
result = "grapejuice"
required_reagents = list("water" = 3, "instantgrape" = 1)
result_amount = 3
/datum/chemical_reaction/drinks/orangejuice
name = "Orange Juice"
id = "orangejuice"
result = "orangejuice"
required_reagents = list("water" = 3, "instantorange" = 1)
result_amount = 3
/datum/chemical_reaction/drinks/watermelonjuice
name = "Watermelon Juice"
id = "watermelonjuice"
result = "watermelonjuice"
required_reagents = list("water" = 3, "instantwatermelon" = 1)
result_amount = 3
/datum/chemical_reaction/drinks/applejuice
name = "Apple Juice"
id = "applejuice"
result = "applejuice"
required_reagents = list("water" = 3, "instantapple" = 1)
result_amount = 3
/datum/chemical_reaction/food/ketchup
name = "Ketchup"
id = "ketchup"

View File

@@ -14,20 +14,22 @@
clearance_range = rand(4, 12)
dissonance_spread = rand(1500, 2500) / 100
/obj/item/weapon/ore/strangerock
/obj/item/weapon/strangerock
name = "Strange rock"
desc = "Seems to have some unusal strata evident throughout it."
icon = 'icons/obj/xenoarchaeology.dmi'
icon_state = "strange"
var/datum/geosample/geologic_data
origin_tech = list(TECH_MATERIAL = 5)
/obj/item/weapon/ore/strangerock/New(loc, var/inside_item_type = 0)
..(loc)
/obj/item/weapon/strangerock/New(loc, var/inside_item_type = 0)
pixel_x = rand(0,16)-8
pixel_y = rand(0,8)-8
if(inside_item_type)
new /obj/item/weapon/archaeological_find(src, new_item_type = inside_item_type)
/obj/item/weapon/ore/strangerock/attackby(var/obj/item/I, var/mob/user)
/obj/item/weapon/strangerock/attackby(var/obj/item/I, var/mob/user)
if(istype(I, /obj/item/weapon/pickaxe/brush))
var/obj/item/inside = locate() in src
if(inside)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 KiB

After

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.8 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 587 B

After

Width:  |  Height:  |  Size: 347 B

View File

@@ -7210,9 +7210,8 @@
/area/tether/exploration/hallway)
"kC" = (
/obj/item/weapon/material/twohanded/spear/foam,
/obj/item/weapon/storage/fancy/crayons{
desc = "Special food for special warriors of the expedition force.";
name = "spearman ration"
/obj/item/weapon/storage/mre/menu12{
name = "spearman MRE"
},
/turf/simulated/floor,
/area/tether/exploration/hallway)

View File

@@ -28961,10 +28961,9 @@
dir = 1
},
/obj/structure/closet/crate/freezer/rations,
/obj/item/weapon/reagent_containers/food/snacks/liquidprotein,
/obj/item/weapon/reagent_containers/food/snacks/liquidprotein,
/obj/item/weapon/reagent_containers/food/snacks/liquidprotein,
/obj/item/weapon/reagent_containers/food/snacks/liquidprotein,
/obj/item/weapon/storage/mre/menu11,
/obj/item/weapon/storage/mre/menu11,
/obj/item/weapon/storage/mre/menu10,
/turf/simulated/floor/tiled/techfloor/grid,
/area/shuttle/excursion/tether)
"Vi" = (

View File

@@ -414,18 +414,12 @@
/area/centcom/specops)
"aI" = (
/obj/structure/closet/crate/medical,
/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
/obj/item/weapon/storage/mre/menu11,
/obj/item/weapon/storage/mre/menu11,
/obj/item/weapon/storage/mre/menu11,
/obj/item/weapon/storage/mre/menu11,
/obj/item/weapon/storage/mre/menu11,
/obj/item/weapon/storage/mre/menu11,
/turf/unsimulated/floor{
icon_state = "vault";
dir = 5
@@ -471,6 +465,7 @@
/obj/item/bodybag/cryobag,
/obj/item/bodybag/cryobag,
/obj/item/weapon/reagent_containers/glass/beaker/large,
/obj/item/weapon/reagent_containers/glass/beaker/large,
/turf/unsimulated/floor{
icon_state = "vault";
dir = 5

View File

@@ -1173,6 +1173,7 @@
#include "code\game\objects\items\weapons\storage\laundry_basket.dm"
#include "code\game\objects\items\weapons\storage\lockbox.dm"
#include "code\game\objects\items\weapons\storage\misc.dm"
#include "code\game\objects\items\weapons\storage\mre.dm"
#include "code\game\objects\items\weapons\storage\quickdraw.dm"
#include "code\game\objects\items\weapons\storage\secure.dm"
#include "code\game\objects\items\weapons\storage\storage.dm"