Bleeding edgy refresh (#303)

* not code stuff

* other things

* global vars, defines, helpers

* onclick hud stuff, orphans, world.dm

* controllers and datums

* game folder

* everything not client/mobs in modules

* client folder

* stage 1 mob stuff

* simple animal things

* silicons

* carbon things

* ayylmaos and monkeys

* hyoomahn

* icons n shit

* sprite fixes

* compile fixes

* some fixes I cherrypicked.

* qdel fixes

* forgot brain refractors
This commit is contained in:
Poojawa
2017-03-21 11:44:10 -05:00
committed by GitHub
parent 099a6c8764
commit f67e9f6d87
1476 changed files with 344416 additions and 40694 deletions
+16 -10
View File
@@ -24,14 +24,14 @@
/obj/item/weapon/reagent_containers/food/drinks/attack(mob/M, mob/user, def_zone)
if(!reagents || !reagents.total_volume)
user << "<span class='warning'>[src] is empty!</span>"
to_chat(user, "<span class='warning'>[src] is empty!</span>")
return 0
if(!canconsume(M, user))
return 0
if(M == user)
M << "<span class='notice'>You swallow a gulp of [src].</span>"
to_chat(M, "<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>")
@@ -52,27 +52,27 @@
if(istype(target, /obj/structure/reagent_dispensers)) //A dispenser. Transfer FROM it TO us.
if(!target.reagents.total_volume)
user << "<span class='warning'>[target] is empty.</span>"
to_chat(user, "<span class='warning'>[target] is empty.</span>")
return
if(reagents.total_volume >= reagents.maximum_volume)
user << "<span class='warning'>[src] is full.</span>"
to_chat(user, "<span class='warning'>[src] is full.</span>")
return
var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this)
user << "<span class='notice'>You fill [src] with [trans] units of the contents of [target].</span>"
to_chat(user, "<span class='notice'>You fill [src] with [trans] units of the contents of [target].</span>")
else if(target.is_open_container()) //Something like a glass. Player probably wants to transfer TO it.
if(!reagents.total_volume)
user << "<span class='warning'>[src] is empty.</span>"
to_chat(user, "<span class='warning'>[src] is empty.</span>")
return
if(target.reagents.total_volume >= target.reagents.maximum_volume)
user << "<span class='warning'>[target] is full.</span>"
to_chat(user, "<span class='warning'>[target] is full.</span>")
return
var/refill = reagents.get_master_reagent_id()
var/trans = src.reagents.trans_to(target, amount_per_transfer_from_this)
user << "<span class='notice'>You transfer [trans] units of the solution to [target].</span>"
to_chat(user, "<span class='notice'>You transfer [trans] units of the solution to [target].</span>")
if(iscyborg(user)) //Cyborg modules that include drinks automatically refill themselves, but drain the borg's cell
var/mob/living/silicon/robot/bro = user
@@ -84,7 +84,7 @@
var/added_heat = (I.is_hot() / 100) //ishot returns a temperature
if(reagents)
reagents.chem_temp += added_heat
user << "<span class='notice'>You heat [src] with [I].</span>"
to_chat(user, "<span class='notice'>You heat [src] with [I].</span>")
reagents.handle_reactions()
..()
@@ -390,4 +390,10 @@
name = "Shambler's Juice"
desc = "~Shake me up some of that Shambler's Juice!~"
icon_state = "shamblers"
list_reagents = list("shamblers" = 30)
list_reagents = list("shamblers" = 30)
/obj/item/weapon/reagent_containers/food/drinks/soda_cans/air
name = "Canned Air"
desc = "There is no air shortage. Do not drink."
icon_state = "air"
list_reagents = list("nitrogen" = 24, "oxygen" = 6)
@@ -376,7 +376,7 @@
message_admins(message)
log_game("[key_name(user)] has primed a [name] for detonation at [bombarea] [COORD(bombturf)].")
user << "<span class='info'>You light [src] on fire.</span>"
to_chat(user, "<span class='info'>You light [src] on fire.</span>")
add_overlay(fire_overlay)
if(!isGlass)
spawn(50)
@@ -396,8 +396,8 @@
/obj/item/weapon/reagent_containers/food/drinks/bottle/molotov/attack_self(mob/user)
if(active)
if(!isGlass)
user << "<span class='danger'>The flame's spread too far on it!</span>"
to_chat(user, "<span class='danger'>The flame's spread too far on it!</span>")
return
user << "<span class='info'>You snuff out the flame on [src].</span>"
to_chat(user, "<span class='info'>You snuff out the flame on [src].</span>")
cut_overlay(fire_overlay)
active = 0
@@ -525,22 +525,6 @@
icon_state = "glass_yellow"
name = "Eggnog"
desc = "For enjoying the most wonderful time of the year."
if("aphro")
icon_state = "glass_aphro"
name = "glass of aphrodisiac"
desc = "For your love interest."
if("aphro+")
icon_state = "glass_aphro+"
name = "glass of strong aphrodisiac"
desc = "For your less interested love interest."
if("semen")
icon_state = "glass_semen"
name = "glass of semen"
desc = "Salty."
if("femcum")
icon_state = "glass_femcum"
name = "glass of female ejaculate"
desc = "A glass of female ejaculate."
else
icon_state ="glass_brown"
var/image/I = image(icon, "glassoverlay")
@@ -651,18 +635,6 @@
icon_state = "shotglassgreen"
name = "shot of absinthe"
desc = "I am stuck in the cycles of my guilt..."
if ("semen")
icon_state = "shotglasswhite"
name = "cum shot"
desc = "All those college years boil down to this."
if("aphro")
icon_state = "shotglassaphro"
name = "shot of love"
desc = "Guaranteed to put you in the mood."
if("aphro+")
icon_state = "shotglassaphro"
name = "strong shot of love"
desc = "Guaranteed to put you in the mood. Not recommended to take more than one unless you're dedicated."
else
icon_state = "shotglassbrown"
name = "shot of... what?"
@@ -694,9 +666,9 @@
var/obj/item/weapon/reagent_containers/food/snacks/egg/E = I
if(reagents)
if(reagents.total_volume >= reagents.maximum_volume)
user << "<span class='notice'>[src] is full.</span>"
to_chat(user, "<span class='notice'>[src] is full.</span>")
else
user << "<span class='notice'>You break [E] in [src].</span>"
to_chat(user, "<span class='notice'>You break [E] in [src].</span>")
reagents.add_reagent("eggyolk", 5)
qdel(E)
return
+12 -12
View File
@@ -29,14 +29,14 @@
/obj/item/weapon/reagent_containers/food/condiment/attack(mob/M, mob/user, def_zone)
if(!reagents || !reagents.total_volume)
user << "<span class='warning'>None of [src] left, oh no!</span>"
to_chat(user, "<span class='warning'>None of [src] left, oh no!</span>")
return 0
if(!canconsume(M, user))
return 0
if(M == user)
M << "<span class='notice'>You swallow some of contents of \the [src].</span>"
to_chat(M, "<span class='notice'>You swallow some of contents of \the [src].</span>")
else
user.visible_message("<span class='warning'>[user] attempts to feed [M] from [src].</span>")
if(!do_mob(user, M))
@@ -57,26 +57,26 @@
if(istype(target, /obj/structure/reagent_dispensers)) //A dispenser. Transfer FROM it TO us.
if(!target.reagents.total_volume)
user << "<span class='warning'>[target] is empty!</span>"
to_chat(user, "<span class='warning'>[target] is empty!</span>")
return
if(reagents.total_volume >= reagents.maximum_volume)
user << "<span class='warning'>[src] is full!</span>"
to_chat(user, "<span class='warning'>[src] is full!</span>")
return
var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this)
user << "<span class='notice'>You fill [src] with [trans] units of the contents of [target].</span>"
to_chat(user, "<span class='notice'>You fill [src] with [trans] units of the contents of [target].</span>")
//Something like a glass or a food item. Player probably wants to transfer TO it.
else if(target.is_open_container() || istype(target, /obj/item/weapon/reagent_containers/food/snacks))
if(!reagents.total_volume)
user << "<span class='warning'>[src] is empty!</span>"
to_chat(user, "<span class='warning'>[src] is empty!</span>")
return
if(target.reagents.total_volume >= target.reagents.maximum_volume)
user << "<span class='warning'>you can't add anymore to [target]!</span>"
to_chat(user, "<span class='warning'>you can't add anymore to [target]!</span>")
return
var/trans = src.reagents.trans_to(target, amount_per_transfer_from_this)
user << "<span class='notice'>You transfer [trans] units of the condiment to [target].</span>"
to_chat(user, "<span class='notice'>You transfer [trans] units of the condiment to [target].</span>")
/obj/item/weapon/reagent_containers/food/condiment/on_reagent_change()
if(!possible_states.len)
@@ -144,7 +144,7 @@
return
if(isturf(target))
if(!reagents.has_reagent("sodiumchloride", 2))
user << "<span class='warning'>You don't have enough salt to make a pile!</span>"
to_chat(user, "<span class='warning'>You don't have enough salt to make a pile!</span>")
return
user.visible_message("<span class='notice'>[user] shakes some salt onto [target].</span>", "<span class='notice'>You shake some salt onto [target].</span>")
reagents.remove_reagent("sodiumchloride", 2)
@@ -229,15 +229,15 @@
//You can tear the bag open above food to put the condiments on it, obviously.
if(istype(target, /obj/item/weapon/reagent_containers/food/snacks))
if(!reagents.total_volume)
user << "<span class='warning'>You tear open [src], but there's nothing in it.</span>"
to_chat(user, "<span class='warning'>You tear open [src], but there's nothing in it.</span>")
qdel(src)
return
if(target.reagents.total_volume >= target.reagents.maximum_volume)
user << "<span class='warning'>You tear open [src], but [target] is stacked so high that it just drips off!</span>" //Not sure if food can ever be full, but better safe than sorry.
to_chat(user, "<span class='warning'>You tear open [src], but [target] is stacked so high that it just drips off!</span>" )
qdel(src)
return
else
user << "<span class='notice'>You tear open [src] above [target] and the condiments drip onto it.</span>"
to_chat(user, "<span class='notice'>You tear open [src] above [target] and the condiments drip onto it.</span>")
src.reagents.trans_to(target, amount_per_transfer_from_this)
qdel(src)
@@ -34,17 +34,17 @@
size = "big"
if(ingredients.len>8)
size = "monster"
user << "It contains [ingredients.len?"[ingredients_listed]":"no ingredient, "]making a [size]-sized [initial(name)]."
to_chat(user, "It contains [ingredients.len?"[ingredients_listed]":"no ingredient, "]making a [size]-sized [initial(name)].")
/obj/item/weapon/reagent_containers/food/snacks/customizable/attackby(obj/item/I, mob/user, params)
if(!istype(I, /obj/item/weapon/reagent_containers/food/snacks/customizable) && istype(I,/obj/item/weapon/reagent_containers/food/snacks))
var/obj/item/weapon/reagent_containers/food/snacks/S = I
if(I.w_class > WEIGHT_CLASS_SMALL)
user << "<span class='warning'>The ingredient is too big for [src]!</span>"
to_chat(user, "<span class='warning'>The ingredient is too big for [src]!</span>")
else if((ingredients.len >= ingMax) || (reagents.total_volume >= volume))
user << "<span class='warning'>You can't add more ingredients to [src]!</span>"
to_chat(user, "<span class='warning'>You can't add more ingredients to [src]!</span>")
else if(istype(I, /obj/item/weapon/reagent_containers/food/snacks/pizzaslice/custom) || istype(I, /obj/item/weapon/reagent_containers/food/snacks/cakeslice/custom))
user << "<span class='warning'>Adding [I.name] to [src] would make a mess.</span>"
to_chat(user, "<span class='warning'>Adding [I.name] to [src] would make a mess.</span>")
else
if(!user.transferItemToLoc(I, src))
return
@@ -54,7 +54,7 @@
mix_filling_color(S)
S.reagents.trans_to(src,min(S.reagents.total_volume, 15)) //limit of 15, we don't want our custom food to be completely filled by just one ingredient with large reagent volume.
update_overlays(S)
user << "<span class='notice'>You add the [I.name] to the [name].</span>"
to_chat(user, "<span class='notice'>You add the [I.name] to the [name].</span>")
update_name(S)
else . = ..()
@@ -117,9 +117,8 @@
if(INGREDIENTS_STACKPLUSTOP)
I.pixel_x = rand(-1,1)
I.pixel_y = 2 * ingredients.len - 1
our_overlays.Cut(ingredients.len) //???
//force an update here just in case
SSoverlays.processing[src] = src
if(our_overlays)
our_overlays.Cut(ingredients.len) //???, add overlay calls later in this proc will queue the compile if necessary
var/image/TOP = new(icon, "[icon_state]_top")
TOP.pixel_y = 2 * ingredients.len + 3
add_overlay(I)
@@ -244,7 +243,7 @@
var/obj/item/weapon/reagent_containers/food/snacks/breadslice/BS = I
if(finished)
return
user << "<span class='notice'>You finish the [src.name].</span>"
to_chat(user, "<span class='notice'>You finish the [src.name].</span>")
finished = 1
name = "[customname] sandwich"
BS.reagents.trans_to(src, BS.reagents.total_volume)
@@ -294,9 +293,9 @@
if(istype(I,/obj/item/weapon/reagent_containers/food/snacks))
var/obj/item/weapon/reagent_containers/food/snacks/S = I
if(I.w_class > WEIGHT_CLASS_SMALL)
user << "<span class='warning'>The ingredient is too big for [src]!</span>"
to_chat(user, "<span class='warning'>The ingredient is too big for [src]!</span>")
else if(contents.len >= 20)
user << "<span class='warning'>You can't add more ingredients to [src]!</span>"
to_chat(user, "<span class='warning'>You can't add more ingredients to [src]!</span>")
else
if(reagents.has_reagent("water", 10)) //are we starting a soup or a salad?
var/obj/item/weapon/reagent_containers/food/snacks/customizable/A = new/obj/item/weapon/reagent_containers/food/snacks/customizable/soup(get_turf(src))
+17 -17
View File
@@ -53,7 +53,7 @@
if(!eatverb)
eatverb = pick("bite","chew","nibble","gnaw","gobble","chomp")
if(!reagents.total_volume) //Shouldn't be needed but it checks to see if it has anything left in it.
user << "<span class='notice'>None of [src] left, oh no!</span>"
to_chat(user, "<span class='notice'>None of [src] left, oh no!</span>")
qdel(src)
return 0
if(iscarbon(M))
@@ -66,19 +66,19 @@
if(M == user) //If you're eating it yourself.
if(junkiness && M.satiety < -150 && M.nutrition > NUTRITION_LEVEL_STARVING + 50 )
M << "<span class='notice'>You don't feel like eating any more junk food at the moment.</span>"
to_chat(M, "<span class='notice'>You don't feel like eating any more junk food at the moment.</span>")
return 0
else if(fullness <= 50)
M << "<span class='notice'>You hungrily [eatverb] some of \the [src] and gobble it down!</span>"
to_chat(M, "<span class='notice'>You hungrily [eatverb] some of \the [src] and gobble it down!</span>")
else if(fullness > 50 && fullness < 150)
M << "<span class='notice'>You hungrily begin to [eatverb] \the [src].</span>"
to_chat(M, "<span class='notice'>You hungrily begin to [eatverb] \the [src].</span>")
else if(fullness > 150 && fullness < 500)
M << "<span class='notice'>You [eatverb] \the [src].</span>"
to_chat(M, "<span class='notice'>You [eatverb] \the [src].</span>")
else if(fullness > 500 && fullness < 600)
M << "<span class='notice'>You unwillingly [eatverb] a bit of \the [src].</span>"
to_chat(M, "<span class='notice'>You unwillingly [eatverb] a bit of \the [src].</span>")
else if(fullness > (600 * (1 + M.overeatduration / 2000))) // The more you eat - the more you can eat
M << "<span class='warning'>You cannot force any more of \the [src] to go down your throat!</span>"
to_chat(M, "<span class='warning'>You cannot force any more of \the [src] to go down your throat!</span>")
return 0
else
if(!isbrain(M)) //If you're feeding it to someone else.
@@ -97,7 +97,7 @@
"<span class='userdanger'>[user] forces [M] to eat [src].</span>")
else
user << "<span class='warning'>[M] doesn't seem to have a mouth!</span>"
to_chat(user, "<span class='warning'>[M] doesn't seem to have a mouth!</span>")
return
if(reagents) //Handle ingestion of the reagent.
@@ -124,11 +124,11 @@
if(bitecount == 0)
return
else if(bitecount == 1)
user << "[src] was bitten by someone!"
to_chat(user, "[src] was bitten by someone!")
else if(bitecount <= 3)
user << "[src] was bitten [bitecount] times!"
to_chat(user, "[src] was bitten [bitecount] times!")
else
user << "[src] was bitten multiple times!"
to_chat(user, "[src] was bitten multiple times!")
/obj/item/weapon/reagent_containers/food/snacks/attackby(obj/item/weapon/W, mob/user, params)
@@ -139,13 +139,13 @@
var/obj/item/weapon/reagent_containers/food/snacks/S = W
if(custom_food_type && ispath(custom_food_type))
if(S.w_class > WEIGHT_CLASS_SMALL)
user << "<span class='warning'>[S] is too big for [src]!</span>"
to_chat(user, "<span class='warning'>[S] is too big for [src]!</span>")
return 0
if(!S.customfoodfilling || istype(W, /obj/item/weapon/reagent_containers/food/snacks/customizable) || istype(W, /obj/item/weapon/reagent_containers/food/snacks/pizzaslice/custom) || istype(W, /obj/item/weapon/reagent_containers/food/snacks/cakeslice/custom))
user << "<span class='warning'>[src] can't be filled with [S]!</span>"
to_chat(user, "<span class='warning'>[src] can't be filled with [S]!</span>")
return 0
if(contents.len >= 20)
user << "<span class='warning'>You can't add more ingredients to [src]!</span>"
to_chat(user, "<span class='warning'>You can't add more ingredients to [src]!</span>")
return 0
var/obj/item/weapon/reagent_containers/food/snacks/customizable/C = new custom_food_type(get_turf(src))
C.initialize_custom_food(src, S, user)
@@ -190,7 +190,7 @@
!(locate(/obj/structure/table/optable) in src.loc) && \
!(locate(/obj/item/weapon/storage/bag/tray) in src.loc) \
)
user << "<span class='warning'>You cannot slice [src] here! You need a table or at least a tray.</span>"
to_chat(user, "<span class='warning'>You cannot slice [src] here! You need a table or at least a tray.</span>")
return 1
var/slices_lost = 0
@@ -334,9 +334,9 @@
if(!iscarbon(user))
return 0
if(contents.len >= 20)
user << "<span class='warning'>[src] is full.</span>"
to_chat(user, "<span class='warning'>[src] is full.</span>")
return 0
user << "<span class='notice'>You slip [W] inside [src].</span>"
to_chat(user, "<span class='notice'>You slip [W] inside [src].</span>")
user.transferItemToLoc(W, src)
add_fingerprint(user)
contents += W
@@ -18,10 +18,10 @@
if(istype(I, /obj/item/weapon/kitchen/rollingpin))
if(isturf(loc))
new /obj/item/weapon/reagent_containers/food/snacks/flatdough(loc)
user << "<span class='notice'>You flatten [src].</span>"
to_chat(user, "<span class='notice'>You flatten [src].</span>")
qdel(src)
else
user << "<span class='warning'>You need to put [src] on a surface to roll it out!</span>"
to_chat(user, "<span class='warning'>You need to put [src] on a surface to roll it out!</span>")
else
..()
@@ -85,10 +85,10 @@
if(istype(I, /obj/item/weapon/kitchen/rollingpin))
if(isturf(loc))
new /obj/item/weapon/reagent_containers/food/snacks/piedough(loc)
user << "<span class='notice'>You flatten [src].</span>"
to_chat(user, "<span class='notice'>You flatten [src].</span>")
qdel(src)
else
user << "<span class='warning'>You need to put [src] on a surface to roll it out!</span>"
to_chat(user, "<span class='warning'>You need to put [src] on a surface to roll it out!</span>")
else
..()
@@ -32,10 +32,10 @@
var/clr = C.item_color
if(!(clr in list("blue", "green", "mime", "orange", "purple", "rainbow", "red", "yellow")))
usr << "<span class='notice'>[src] refuses to take on this colour!</span>"
to_chat(usr, "<span class='notice'>[src] refuses to take on this colour!</span>")
return
usr << "<span class='notice'>You colour [src] [clr].</span>"
to_chat(usr, "<span class='notice'>You colour [src] [clr].</span>")
icon_state = "egg-[clr]"
item_color = clr
else
@@ -115,7 +115,7 @@
if(istype(W,/obj/item/weapon/kitchen/fork))
var/obj/item/weapon/kitchen/fork/F = W
if(F.forkload)
user << "<span class='warning'>You already have omelette on your fork!</span>"
to_chat(user, "<span class='warning'>You already have omelette on your fork!</span>")
else
F.icon_state = "forkloaded"
user.visible_message("[user] takes a piece of omelette with their fork!", \
@@ -46,14 +46,14 @@ insert ascii eagle on american flag background here
/obj/machinery/deepfryer/examine()
..()
if(frying)
usr << "You can make out [frying] in the oil."
to_chat(usr, "You can make out [frying] in the oil.")
/obj/machinery/deepfryer/attackby(obj/item/I, mob/user)
if(!reagents.total_volume)
user << "There's nothing to fry with in [src]!"
to_chat(user, "There's nothing to fry with in [src]!")
return
if(istype(I, /obj/item/weapon/reagent_containers/food/snacks/deepfryholder))
user << "<span class='userdanger'>Your cooking skills are not up to the legendary Doublefry technique.</span>"
to_chat(user, "<span class='userdanger'>Your cooking skills are not up to the legendary Doublefry technique.</span>")
return
if(default_unfasten_wrench(user, I))
return
@@ -65,7 +65,7 @@ insert ascii eagle on american flag background here
if(is_type_in_typecache(I, blacklisted_items))
. = ..()
else if(user.drop_item() && !frying)
user << "<span class='notice'>You put [I] into [src].</span>"
to_chat(user, "<span class='notice'>You put [I] into [src].</span>")
frying = I
frying.forceMove(src)
icon_state = "fryer_on"
@@ -86,7 +86,7 @@ insert ascii eagle on american flag background here
/obj/machinery/deepfryer/attack_hand(mob/user)
if(frying)
if(frying.loc == src)
user << "<span class='notice'>You eject [frying] from [src].</span>"
to_chat(user, "<span class='notice'>You eject [frying] from [src].</span>")
var/obj/item/weapon/reagent_containers/food/snacks/deepfryholder/S = new(get_turf(src))
if(istype(frying, /obj/item/weapon/reagent_containers/))
var/obj/item/weapon/reagent_containers/food = frying
@@ -124,7 +124,7 @@ insert ascii eagle on american flag background here
return
else if(user.pulling && user.a_intent == "grab" && iscarbon(user.pulling) && reagents.total_volume)
if(user.grab_state < GRAB_AGGRESSIVE)
user << "<span class='warning'>You need a better grip to do that!</span>"
to_chat(user, "<span class='warning'>You need a better grip to do that!</span>")
return
var/mob/living/carbon/C = user.pulling
user.visible_message("<span class = 'danger'>[user] dunks [C]'s face in [src]!</span>")
@@ -74,10 +74,10 @@
return
qdel(DG)
glasses++
user << "<span class='notice'>The [src] accepts the drinking glass, sterilizing it.</span>"
to_chat(user, "<span class='notice'>The [src] accepts the drinking glass, sterilizing it.</span>")
else if(istype(O, /obj/item/weapon/reagent_containers/food/snacks))
if(isFull())
user << "<span class='warning'>The [src] is at full capacity.</span>"
to_chat(user, "<span class='warning'>The [src] is at full capacity.</span>")
else
var/obj/item/weapon/reagent_containers/food/snacks/S = O
if(!user.drop_item())
@@ -92,12 +92,12 @@
if(G.get_amount() >= 1)
G.use(1)
glasses += 4
user << "<span class='notice'>The [src] accepts a sheet of glass.</span>"
to_chat(user, "<span class='notice'>The [src] accepts a sheet of glass.</span>")
else if(istype(O, /obj/item/weapon/storage/bag/tray))
var/obj/item/weapon/storage/bag/tray/T = O
for(var/obj/item/weapon/reagent_containers/food/snacks/S in T.contents)
if(isFull())
user << "<span class='warning'>The [src] is at full capacity.</span>"
to_chat(user, "<span class='warning'>The [src] is at full capacity.</span>")
break
else
T.remove_from_storage(S, src)
@@ -132,7 +132,7 @@
if(href_list["pour"] || href_list["m_pour"])
if(glasses-- <= 0)
usr << "<span class='warning'>There are no glasses left!</span>"
to_chat(usr, "<span class='warning'>There are no glasses left!</span>")
glasses = 0
else
var/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/DG = new(loc)
@@ -143,11 +143,11 @@
if(href_list["mix"])
if(reagents.trans_id_to(mixer, href_list["mix"], portion) == 0)
usr << "<span class='warning'>The [mixer] is full!</span>"
to_chat(usr, "<span class='warning'>The [mixer] is full!</span>")
if(href_list["transfer"])
if(mixer.reagents.trans_id_to(src, href_list["transfer"], portion) == 0)
usr << "<span class='warning'>The [src] is full!</span>"
to_chat(usr, "<span class='warning'>The [src] is full!</span>")
updateDialog()
@@ -92,20 +92,20 @@
if(stat & (NOPOWER|BROKEN))
return
if(operating)
user << "<span class='danger'>It's locked and running.</span>"
to_chat(user, "<span class='danger'>It's locked and running.</span>")
return
if(user.pulling && user.a_intent == INTENT_GRAB && isliving(user.pulling))
var/mob/living/L = user.pulling
if(!iscarbon(L))
user << "<span class='danger'>This item is not suitable for the gibber!</span>"
to_chat(user, "<span class='danger'>This item is not suitable for the gibber!</span>")
return
var/mob/living/carbon/C = L
if(C.buckled ||C.has_buckled_mobs())
user << "<span class='warning'>[C] is attached to something!</span>"
to_chat(user, "<span class='warning'>[C] is attached to something!</span>")
return
if(C.abiotic(1) && !ignore_clothing)
user << "<span class='danger'>Subject may not have abiotic items on.</span>"
to_chat(user, "<span class='danger'>Subject may not have abiotic items on.</span>")
return
user.visible_message("<span class='danger'>[user] starts to put [C] into the gibber!</span>")
@@ -106,9 +106,9 @@
if(I.reagents.total_volume < 10)
I.reagents.add_reagent("sugar", 10 - I.reagents.total_volume)
else
user << "<span class='warning'>There is not enough ice cream left!</span>"
to_chat(user, "<span class='warning'>There is not enough ice cream left!</span>")
else
user << "<span class='notice'>[O] already has ice cream in it.</span>"
to_chat(user, "<span class='notice'>[O] already has ice cream in it.</span>")
return 1
else if(O.is_open_container())
return
@@ -131,7 +131,7 @@
else
src.visible_message("<span class='info'>[user] whips up some [flavour] icecream.</span>")
else
user << "<span class='warning'>You don't have the ingredients to make this!</span>"
to_chat(user, "<span class='warning'>You don't have the ingredients to make this!</span>")
/obj/machinery/icecream_vat/Topic(href, href_list)
if(..())
@@ -158,7 +158,7 @@
I.desc = "Delicious [cone_name] cone, but no ice cream."
src.visible_message("<span class='info'>[usr] dispenses a crunchy [cone_name] cone from [src].</span>")
else
usr << "<span class='warning'>There are no [cone_name] cones left!</span>"
to_chat(usr, "<span class='warning'>There are no [cone_name] cones left!</span>")
if(href_list["make"])
var/amount = (text2num(href_list["amount"]))
@@ -47,7 +47,7 @@
return 1
else
if(!user.transferItemToLoc(O, src))
user << "<span class='warning'>\the [O] is stuck to your hand, you cannot put it in \the [src]!</span>"
to_chat(user, "<span class='warning'>\the [O] is stuck to your hand, you cannot put it in \the [src]!</span>")
return 0
beaker = O
src.verbs += /obj/machinery/juicer/verb/detach
@@ -55,10 +55,10 @@
src.updateUsrDialog()
return 0
if (!is_type_in_list(O, allowed_items))
user << "This object contains no fluid or extractable reagents."
to_chat(user, "This object contains no fluid or extractable reagents.")
return 1
if(!user.transferItemToLoc(O, src))
user << "<span class='warning'>\the [O] is stuck to your hand, you cannot put it in \the [src]!</span>"
to_chat(user, "<span class='warning'>\the [O] is stuck to your hand, you cannot put it in \the [src]!</span>")
return 0
src.updateUsrDialog()
return 0
@@ -95,7 +95,7 @@
src.container_type = OPENCONTAINER
return 0 //to use some fuel
else
user << "<span class='warning'>It's broken!</span>"
to_chat(user, "<span class='warning'>It's broken!</span>")
return 1
else if(istype(O, /obj/item/weapon/reagent_containers/spray/))
var/obj/item/weapon/reagent_containers/spray/clean_spray = O
@@ -113,7 +113,7 @@
src.updateUsrDialog()
return 1 // Disables the after-attack so we don't spray the floor/user.
else
user << "<span class='warning'>You need more space cleaner!<span>"
to_chat(user, "<span class='warning'>You need more space cleaner!<span>")
return 1
else if(istype(O, /obj/item/weapon/soap/)) // If they're trying to clean it then let them
@@ -133,7 +133,7 @@
src.container_type = OPENCONTAINER
else if(src.dirty==100) // The microwave is all dirty so can't be used!
user << "<span class='warning'>It's dirty!</span>"
to_chat(user, "<span class='warning'>It's dirty!</span>")
return 1
else if(istype(O, /obj/item/weapon/storage/bag/tray))
@@ -141,22 +141,22 @@
var/loaded = 0
for(var/obj/item/weapon/reagent_containers/food/snacks/S in T.contents)
if (contents.len>=max_n_of_items)
user << "<span class='warning'>[src] is full, you can't put anything in!</span>"
to_chat(user, "<span class='warning'>[src] is full, you can't put anything in!</span>")
return 1
T.remove_from_storage(S, src)
loaded++
if(loaded)
user << "<span class='notice'>You insert [loaded] items into [src].</span>"
to_chat(user, "<span class='notice'>You insert [loaded] items into [src].</span>")
else if(O.w_class <= WEIGHT_CLASS_NORMAL && !istype(O,/obj/item/weapon/storage) && user.a_intent == INTENT_HELP)
if (contents.len>=max_n_of_items)
user << "<span class='warning'>[src] is full, you can't put anything in!</span>"
to_chat(user, "<span class='warning'>[src] is full, you can't put anything in!</span>")
return 1
else
if(!user.drop_item())
user << "<span class='warning'>\the [O] is stuck to your hand, you cannot put it in \the [src]!</span>"
to_chat(user, "<span class='warning'>\the [O] is stuck to your hand, you cannot put it in \the [src]!</span>")
return 0
O.loc = src
@@ -296,7 +296,7 @@
/obj/machinery/microwave/proc/dispose()
for (var/obj/O in contents)
O.loc = src.loc
usr << "<span class='notice'>You dispose of the microwave contents.</span>"
to_chat(usr, "<span class='notice'>You dispose of the microwave contents.</span>")
updateUsrDialog()
/obj/machinery/microwave/proc/muck_start()
@@ -70,13 +70,13 @@
if(!istype(target))
return
if(target.stat == 0)
user << "<span class='warning'>The monkey is struggling far too much to put it in the recycler.</span>"
to_chat(user, "<span class='warning'>The monkey is struggling far too much to put it in the recycler.</span>")
return
if(target.buckled || target.has_buckled_mobs())
user << "<span class='warning'>The monkey is attached to something.</span>"
to_chat(user, "<span class='warning'>The monkey is attached to something.</span>")
return
qdel(target)
user << "<span class='notice'>You stuff the monkey into the machine.</span>"
to_chat(user, "<span class='notice'>You stuff the monkey into the machine.</span>")
playsound(src.loc, 'sound/machines/juicer.ogg', 50, 1)
var/offset = prob(50) ? -2 : 2
animate(src, pixel_x = pixel_x + offset, time = 0.2, loop = 200) //start shaking
@@ -84,19 +84,19 @@
grinded++
sleep(50)
pixel_x = initial(pixel_x) //return to its spot after shaking
user << "<span class='notice'>The machine now has [grinded] monkey\s worth of material stored.</span>"
to_chat(user, "<span class='notice'>The machine now has [grinded] monkey\s worth of material stored.</span>")
/obj/machinery/monkey_recycler/attack_hand(mob/user)
if (src.stat != 0) //NOPOWER etc
return
if(grinded >= required_grind)
user << "<span class='notice'>The machine hisses loudly as it condenses the grinded monkey meat. After a moment, it dispenses a brand new monkey cube.</span>"
to_chat(user, "<span class='notice'>The machine hisses loudly as it condenses the grinded monkey meat. After a moment, it dispenses a brand new monkey cube.</span>")
playsound(src.loc, 'sound/machines/hiss.ogg', 50, 1)
grinded -= required_grind
for(var/i = 0, i < cube_production, i++)
new /obj/item/weapon/reagent_containers/food/snacks/monkeycube(src.loc)
user << "<span class='notice'>The machine's display flashes that it has [grinded] monkeys worth of material left.</span>"
to_chat(user, "<span class='notice'>The machine's display flashes that it has [grinded] monkeys worth of material left.</span>")
else
user << "<span class='danger'>The machine needs at least [required_grind] monkey(s) worth of material to produce a monkey cube. It only has [grinded].</span>"
to_chat(user, "<span class='danger'>The machine needs at least [required_grind] monkey(s) worth of material to produce a monkey cube. It only has [grinded].</span>")
return
@@ -37,11 +37,11 @@
if(build_path == /obj/machinery/processor)
name = "Slime Processor (Machine Board)"
build_path = /obj/machinery/processor/slime
user << "<span class='notice'>Name protocols successfully updated.</span>"
to_chat(user, "<span class='notice'>Name protocols successfully updated.</span>")
else
name = "Food Processor (Machine Board)"
build_path = /obj/machinery/processor
user << "<span class='notice'>Defaulting name protocols.</span>"
to_chat(user, "<span class='notice'>Defaulting name protocols.</span>")
else
return ..()
@@ -191,7 +191,7 @@
/obj/machinery/processor/attackby(obj/item/O, mob/user, params)
if(src.processing)
user << "<span class='warning'>The processor is in the process of processing!</span>"
to_chat(user, "<span class='warning'>The processor is in the process of processing!</span>")
return 1
if(default_deconstruction_screwdriver(user, "processor", "processor1", O))
return
@@ -218,9 +218,9 @@
loaded++
if(loaded)
user << "<span class='notice'>You insert [loaded] items into [src].</span>"
to_chat(user, "<span class='notice'>You insert [loaded] items into [src].</span>")
return
var/datum/food_processor_process/P = select_recipe(O)
if(P)
user.visible_message("[user] put [O] into [src].", \
@@ -230,7 +230,7 @@
return 1
else
if(user.a_intent != INTENT_HARM)
user << "<span class='warning'>That probably won't blend!</span>"
to_chat(user, "<span class='warning'>That probably won't blend!</span>")
return 1
else
return ..()
@@ -239,11 +239,11 @@
if (src.stat != 0) //NOPOWER etc
return
if(src.processing)
user << "<span class='warning'>The processor is in the process of processing!</span>"
to_chat(user, "<span class='warning'>The processor is in the process of processing!</span>")
return 1
if(user.a_intent == INTENT_GRAB && user.pulling && (isslime(user.pulling) || ismonkey(user.pulling)))
if(user.grab_state < GRAB_AGGRESSIVE)
user << "<span class='warning'>You need a better grip to do that!</span>"
to_chat(user, "<span class='warning'>You need a better grip to do that!</span>")
return
var/mob/living/pushed_mob = user.pulling
visible_message("<span class='warner'>[user] stuffs [pushed_mob] into [src]!</span>")
@@ -251,7 +251,7 @@
user.stop_pulling()
return
if(src.contents.len == 0)
user << "<span class='warning'>The processor is empty!</span>"
to_chat(user, "<span class='warning'>The processor is empty!</span>")
return 1
src.processing = 1
user.visible_message("[user] turns on [src].", \
@@ -47,13 +47,13 @@
var/position = fridges.Find(build_path, fridges)
position = (position == fridges.len) ? 1 : (position + 1)
build_path = fridges[position]
user << "<span class='notice'>You set the board to [fridges[build_path]].</span>"
to_chat(user, "<span class='notice'>You set the board to [fridges[build_path]].</span>")
else
return ..()
/obj/item/weapon/circuitboard/machine/smartfridge/examine/(mob/user)
..()
user << "<span class='info'>[src] is set to [fridges[build_path]]. You can use a screwdriver to reconfigure it.</span>"
to_chat(user, "<span class='info'>[src] is set to [fridges[build_path]]. You can use a screwdriver to reconfigure it.</span>")
/obj/machinery/smartfridge/RefreshParts()
for(var/obj/item/weapon/stock_parts/matter_bin/B in component_parts)
@@ -96,7 +96,7 @@
if(!stat)
if(contents.len >= max_n_of_items)
user << "<span class='warning'>\The [src] is full!</span>"
to_chat(user, "<span class='warning'>\The [src] is full!</span>")
return FALSE
if(accept_check(O))
@@ -124,14 +124,14 @@
user.visible_message("[user] loads \the [src] with \the [O].", \
"<span class='notice'>You load \the [src] with \the [O].</span>")
if(O.contents.len > 0)
user << "<span class='warning'>Some items are refused.</span>"
to_chat(user, "<span class='warning'>Some items are refused.</span>")
return TRUE
else
user << "<span class='warning'>There is nothing in [O] to put in [src]!</span>"
to_chat(user, "<span class='warning'>There is nothing in [O] to put in [src]!</span>")
return FALSE
if(user.a_intent != INTENT_HARM)
user << "<span class='warning'>\The [src] smartly refuses [O].</span>"
to_chat(user, "<span class='warning'>\The [src] smartly refuses [O].</span>")
updateUsrDialog()
return FALSE
else
@@ -148,7 +148,7 @@
if(istype(O.loc,/mob))
var/mob/M = O.loc
if(!M.transferItemToLoc(O, src))
usr << "<span class='warning'>\the [O] is stuck to your hand, you cannot put it in \the [src]!</span>"
to_chat(usr, "<span class='warning'>\the [O] is stuck to your hand, you cannot put it in \the [src]!</span>")
return
else
if(istype(O.loc,/obj/item/weapon/storage))
+12 -12
View File
@@ -92,14 +92,14 @@
if(open)
if(pizza)
user.put_in_hands(pizza)
user << "<span class='notice'>You take [pizza] out of [src].</span>"
to_chat(user, "<span class='notice'>You take [pizza] out of [src].</span>")
pizza = null
update_icon()
return
else if(bomb)
if(wires.is_all_cut() && bomb_defused)
user.put_in_hands(bomb)
user << "<span class='notice'>You carefully remove the [bomb] from [src].</span>"
to_chat(user, "<span class='notice'>You carefully remove the [bomb] from [src].</span>")
bomb = null
update_icon()
return
@@ -114,14 +114,14 @@
log_game("[key_name(user)] has trapped a [src] with [bomb] set to [bomb_timer * 2] seconds.")
bomb.adminlog = "The [bomb.name] in [src.name] that [key_name(user)] activated has detonated!"
user << "<span class='warning'>You trap [src] with [bomb].</span>"
to_chat(user, "<span class='warning'>You trap [src] with [bomb].</span>")
update_icon()
return
else if(boxes.len)
var/obj/item/pizzabox/topbox = boxes[boxes.len]
boxes -= topbox
user.put_in_hands(topbox)
user << "<span class='notice'>You remove the topmost [name] from the stack.</span>"
to_chat(user, "<span class='notice'>You remove the topmost [name] from the stack.</span>")
topbox.update_icon()
update_icon()
return
@@ -141,21 +141,21 @@
boxes += add
newbox.boxes.Cut()
newbox.loc = src
user << "<span class='notice'>You put [newbox] on top of [src]!</span>"
to_chat(user, "<span class='notice'>You put [newbox] on top of [src]!</span>")
newbox.update_icon()
update_icon()
return
else
user << "<span class='notice'>The stack is dangerously high!</span>"
to_chat(user, "<span class='notice'>The stack is dangerously high!</span>")
else
user << "<span class='notice'>Close [open ? src : newbox] first!</span>"
to_chat(user, "<span class='notice'>Close [open ? src : newbox] first!</span>")
else if(istype(I, /obj/item/weapon/reagent_containers/food/snacks/pizza) || istype(I, /obj/item/weapon/reagent_containers/food/snacks/customizable/pizza))
if(open)
if(!user.drop_item())
return
pizza = I
I.loc = src
user << "<span class='notice'>You put [I] in [src].</span>"
to_chat(user, "<span class='notice'>You put [I] in [src].</span>")
update_icon()
return
else if(istype(I, /obj/item/weapon/bombcore/pizza))
@@ -165,23 +165,23 @@
wires = new /datum/wires/explosive/pizza(src)
bomb = I
I.loc = src
user << "<span class='notice'>You put [I] in [src]. Sneeki breeki...</span>"
to_chat(user, "<span class='notice'>You put [I] in [src]. Sneeki breeki...</span>")
update_icon()
return
else if(bomb)
user << "<span class='notice'>[src] already has a bomb in it!</span>"
to_chat(user, "<span class='notice'>[src] already has a bomb in it!</span>")
else if(istype(I, /obj/item/weapon/pen))
if(!open)
var/obj/item/pizzabox/box = boxes.len ? boxes[boxes.len] : src
box.boxtag += stripped_input(user, "Write on [box]'s tag:", box, "", 30)
user << "<span class='notice'>You write with [I] on [src].</span>"
to_chat(user, "<span class='notice'>You write with [I] on [src].</span>")
update_icon()
return
else if(is_wire_tool(I))
if(wires && bomb)
wires.interact(user)
else if(istype(I, /obj/item/weapon/reagent_containers/food))
user << "<span class='notice'>That's not a pizza!</span>"
to_chat(user, "<span class='notice'>That's not a pizza!</span>")
..()
/obj/item/pizzabox/process()