12/21 modernizations from TG live (#103)
* sync (#3) * shuttle auto call * Merge /vore into /master (#39) * progress * Compile errors fixed No idea if it's test worthy tho as conflicts with race overhaul and narky removal. * Update admins.txt * efforts continue Fuck grab code, seriously * grab code is cancer * Execute the Narkism Do not hesitate. Show no mercy. * holy shit grab code is awful * have I bitched about grab code My bitching, let me show you it * código de agarre es una mierda No really it is * yeah I don't even know anymore. * Lolnope. Fuck grab code * I'm not even sure what to fix anymore * Self eating is not an acceptable fate * Taste the void, son. * My code doesn't pass it's own sanity check. Maybe it's a sign of things to come. * uncommented and notes * It Works and I Don't Know Why (#38) * shuttle auto call * it works and I don't know why * Subsystem 12/21 Most Recent TG subsystem folder * globalvars 12/21 Tossed out the flavor_misc and parallax files * Onclick 12/21 as well as .dme updates * _defines 12/21 ommited old _MC.dm * _HELPERS 12/21 Preserved snowflake placement of furry sprites * _defeines/genetics reapplied narkism holdover for snowflake races. * Oops forgot mutant colors * modules porting 12/21 + Sounds/icons Admin, Client and most of mob life files ommitted * enviroment file * Admin optimizations ahelp log system kept * Mob ports 12/21 Flavor text preserved * datums ported 12/21 * Game ported 12/21 * batch of duplicate fixes/dogborg work Dogborgs need to be modernized to refractored borg standards. * moar fixes * Maps and futher compile fixes
This commit is contained in:
@@ -10,7 +10,7 @@
|
||||
var/gulp_size = 5 //This is now officially broken ... need to think of a nice way to fix it.
|
||||
possible_transfer_amounts = list(5,10,15,20,25,30,50)
|
||||
volume = 50
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = 0
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/New()
|
||||
..()
|
||||
@@ -74,10 +74,10 @@
|
||||
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>"
|
||||
|
||||
if(isrobot(user)) //Cyborg modules that include drinks automatically refill themselves, but drain the borg's cell
|
||||
if(iscyborg(user)) //Cyborg modules that include drinks automatically refill themselves, but drain the borg's cell
|
||||
var/mob/living/silicon/robot/bro = user
|
||||
bro.cell.use(30)
|
||||
addtimer(reagents, "add_reagent", 600, FALSE, refill, trans)
|
||||
addtimer(reagents, "add_reagent", 600, TIMER_NORMAL, refill, trans)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/attackby(obj/item/I, mob/user, params)
|
||||
if(I.is_hot())
|
||||
@@ -96,7 +96,7 @@
|
||||
name = "pewter cup"
|
||||
desc = "Everyone gets a trophy."
|
||||
icon_state = "pewter_cup"
|
||||
w_class = 1
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
force = 1
|
||||
throwforce = 1
|
||||
amount_per_transfer_from_this = 5
|
||||
@@ -105,12 +105,13 @@
|
||||
volume = 5
|
||||
flags = CONDUCT | OPENCONTAINER
|
||||
spillable = 1
|
||||
resistance_flags = FIRE_PROOF
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/trophy/gold_cup
|
||||
name = "gold cup"
|
||||
desc = "You're winner!"
|
||||
icon_state = "golden_cup"
|
||||
w_class = 4
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
force = 14
|
||||
throwforce = 10
|
||||
amount_per_transfer_from_this = 20
|
||||
@@ -121,7 +122,7 @@
|
||||
name = "silver cup"
|
||||
desc = "Best loser!"
|
||||
icon_state = "silver_cup"
|
||||
w_class = 3
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
force = 10
|
||||
throwforce = 8
|
||||
amount_per_transfer_from_this = 15
|
||||
@@ -133,7 +134,7 @@
|
||||
name = "bronze cup"
|
||||
desc = "At least you ranked!"
|
||||
icon_state = "bronze_cup"
|
||||
w_class = 2
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
force = 5
|
||||
throwforce = 4
|
||||
amount_per_transfer_from_this = 10
|
||||
@@ -215,6 +216,44 @@
|
||||
else
|
||||
icon_state = "water_cup_e"
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/sillycup/smallcarton
|
||||
name = "small carton"
|
||||
desc = "A small carton, intended for holding drinks."
|
||||
icon_state = "juicebox"
|
||||
volume = 15 //I figure if you have to craft these it should at least be slightly better than something you can get for free from a watercooler
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/sillycup/smallcarton/on_reagent_change()
|
||||
if (reagents.reagent_list.len)
|
||||
switch(reagents.get_master_reagent_id())
|
||||
if("orangejuice")
|
||||
icon_state = "orangebox"
|
||||
name = "orange juice box"
|
||||
desc = "A great source of vitamins. Stay healthy!"
|
||||
if("milk")
|
||||
icon_state = "milkbox"
|
||||
name = "carton of milk"
|
||||
desc = "An excellent source of calcium for growing space explorers."
|
||||
if("applejuice")
|
||||
icon_state = "juicebox"
|
||||
name = "apple juice box"
|
||||
desc = "Sweet apple juice. Don't be late for school!"
|
||||
if("grapejuice")
|
||||
icon_state = "grapebox"
|
||||
name = "grape juice box"
|
||||
desc = "Tasty grape juice in a fun little container. Non-alcoholic!"
|
||||
if("chocolate_milk")
|
||||
icon_state = "chocolatebox"
|
||||
name = "carton of chocolate milk"
|
||||
desc = "Milk for cool kids!"
|
||||
if("eggnog")
|
||||
icon_state = "nog2"
|
||||
name = "carton of eggnog"
|
||||
desc = "For enjoying the most wonderful time of the year."
|
||||
else
|
||||
icon_state = "juicebox"
|
||||
name = "small carton"
|
||||
desc = "A small carton, intended for holding drinks."
|
||||
|
||||
|
||||
|
||||
//////////////////////////drinkingglass and shaker//
|
||||
@@ -256,6 +295,17 @@
|
||||
volume = 30
|
||||
spillable = 1
|
||||
|
||||
///Lavaland bowls and bottles///
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/mushroom_bowl
|
||||
name = "mushroom bowl"
|
||||
desc = "A bowl made out of mushrooms. Not food, though it might have contained some at some point."
|
||||
icon = 'icons/obj/lavaland/ash_flora.dmi'
|
||||
icon_state = "mushroom_bowl"
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
resistance_flags = 0
|
||||
|
||||
|
||||
//////////////////////////soda_cans//
|
||||
//These are in their own group to be used as IED's in /obj/item/weapon/grenade/ghettobomb.dm
|
||||
|
||||
@@ -263,8 +313,8 @@
|
||||
name = "soda can"
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/soda_cans/attack(mob/M, mob/user)
|
||||
if(M == user && !src.reagents.total_volume && user.a_intent == "harm" && user.zone_selected == "head")
|
||||
user.visible_message("<span class='warning'>[user] crushes the can of [src] on \his forehead!</span>", "<span class='notice'>You crush the can of [src] on your forehead.</span>")
|
||||
if(M == user && !src.reagents.total_volume && user.a_intent == INTENT_HARM && user.zone_selected == "head")
|
||||
user.visible_message("<span class='warning'>[user] crushes the can of [src] on [user.p_their()] forehead!</span>", "<span class='notice'>You crush the can of [src] on your forehead.</span>")
|
||||
playsound(user.loc,'sound/weapons/pierce.ogg', rand(10,50), 1)
|
||||
var/obj/item/trash/can/crushed_can = new /obj/item/trash/can(user.loc)
|
||||
crushed_can.icon_state = icon_state
|
||||
@@ -328,3 +378,5 @@
|
||||
desc = "A delicious mixture of 42 different flavors."
|
||||
icon_state = "dr_gibb"
|
||||
list_reagents = list("dr_gibb" = 30)
|
||||
|
||||
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
if(!target)
|
||||
return
|
||||
|
||||
if(user.a_intent != "harm" || !isGlass)
|
||||
if(user.a_intent != INTENT_HARM || !isGlass)
|
||||
return ..()
|
||||
|
||||
|
||||
@@ -109,8 +109,8 @@
|
||||
target.visible_message("<span class='danger'>[user] has hit [target][head_attack_message] with a bottle of [src.name]!</span>", \
|
||||
"<span class='userdanger'>[user] has hit [target][head_attack_message] with a bottle of [src.name]!</span>")
|
||||
else
|
||||
user.visible_message("<span class='danger'>[target] hits \himself with a bottle of [src.name][head_attack_message]!</span>", \
|
||||
"<span class='userdanger'>[target] hits \himself with a bottle of [src.name][head_attack_message]!</span>")
|
||||
user.visible_message("<span class='danger'>[target] hits [target.p_them()]self with a bottle of [src.name][head_attack_message]!</span>", \
|
||||
"<span class='userdanger'>[target] hits [target.p_them()]self with a bottle of [src.name][head_attack_message]!</span>")
|
||||
|
||||
//Attack logs
|
||||
add_logs(user, target, "attacked", src)
|
||||
@@ -125,7 +125,7 @@
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/bottle/proc/SplashReagents(var/mob/M)
|
||||
if(src.reagents.total_volume)
|
||||
M.visible_message("<span class='danger'>The contents of \the [src] splashes all over [M]!</span>")
|
||||
M.visible_message("<span class='danger'>The contents of [src] splashes all over [M]!</span>")
|
||||
reagents.reaction(M, TOUCH)
|
||||
reagents.clear_reagents()
|
||||
return
|
||||
@@ -140,7 +140,7 @@
|
||||
throwforce = 5
|
||||
throw_speed = 3
|
||||
throw_range = 5
|
||||
w_class = 1
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
item_state = "beer"
|
||||
hitsound = 'sound/weapons/bladeslice.ogg'
|
||||
attack_verb = list("stabbed", "slashed", "attacked")
|
||||
@@ -301,6 +301,12 @@
|
||||
volume = 50
|
||||
list_reagents = list("hcider" = 50)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/bottle/grappa
|
||||
name = "Phillipes well-aged Grappa"
|
||||
desc = "Bottle of Grappa."
|
||||
icon_state = "grappabottle"
|
||||
list_reagents = list("grappa" = 100)
|
||||
|
||||
//////////////////////////JUICES AND STUFF ///////////////////////
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice
|
||||
@@ -375,10 +381,12 @@
|
||||
active = 1
|
||||
var/turf/bombturf = get_turf(src)
|
||||
var/area/bombarea = get_area(bombturf)
|
||||
message_admins("[key_name(user)]<A HREF='?_src_=holder;adminmoreinfo=\ref[user]'>?</A> has primed a [name] for detonation at <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[bombturf.x];Y=[bombturf.y];Z=[bombturf.z]'>[bombarea] (JMP)</a>.")
|
||||
log_game("[key_name(user)] has primed a [name] for detonation at [bombarea] ([bombturf.x],[bombturf.y],[bombturf.z]).")
|
||||
var/message = "[ADMIN_LOOKUP(user)] has primed a [name] for detonation at [ADMIN_COORDJMP(bombturf)]."
|
||||
bombers += message
|
||||
message_admins(message)
|
||||
log_game("[key_name(user)] has primed a [name] for detonation at [bombarea] [COORD(bombturf)].")
|
||||
|
||||
user << "<span class='info'>You light \the [src] on fire.</span>"
|
||||
user << "<span class='info'>You light [src] on fire.</span>"
|
||||
add_overlay(fire_overlay)
|
||||
if(!isGlass)
|
||||
spawn(50)
|
||||
@@ -400,6 +408,6 @@
|
||||
if(!isGlass)
|
||||
user << "<span class='danger'>The flame's spread too far on it!</span>"
|
||||
return
|
||||
user << "<span class='info'>You snuff out the flame on \the [src].</span>"
|
||||
user << "<span class='info'>You snuff out the flame on [src].</span>"
|
||||
overlays -= fire_overlay
|
||||
active = 0
|
||||
|
||||
@@ -7,21 +7,11 @@
|
||||
amount_per_transfer_from_this = 10
|
||||
volume = 50
|
||||
materials = list(MAT_GLASS=500)
|
||||
burn_state = FLAMMABLE
|
||||
burntime = 5
|
||||
obj_integrity = 20
|
||||
max_integrity = 20
|
||||
spillable = 1
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/fire_act()
|
||||
if(!reagents.total_volume)
|
||||
return
|
||||
..()
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/burn()
|
||||
reagents.total_volume = 0 //Burns away all the alcohol :(
|
||||
reagents.reagent_list.Cut()
|
||||
on_reagent_change()
|
||||
extinguish()
|
||||
return
|
||||
resistance_flags = ACID_PROOF
|
||||
unique_rename = 1
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/on_reagent_change()
|
||||
cut_overlays()
|
||||
@@ -342,7 +332,7 @@
|
||||
if("andalusia")
|
||||
icon_state = "andalusia"
|
||||
name = "Andalusia"
|
||||
desc = "A nice, strange named drink."
|
||||
desc = "A nice, strangely named drink."
|
||||
if("sbiten")
|
||||
icon_state = "sbitenglass"
|
||||
name = "Sbiten"
|
||||
@@ -350,11 +340,11 @@
|
||||
if("red_mead")
|
||||
icon_state = "red_meadglass"
|
||||
name = "Red Mead"
|
||||
desc = "A True Vikings Beverage, though its color is strange."
|
||||
desc = "A True Viking's Beverage, though its color is strange."
|
||||
if("mead")
|
||||
icon_state = "meadglass"
|
||||
name = "Mead"
|
||||
desc = "A Vikings Beverage, though a cheap one."
|
||||
desc = "A Viking's Beverage, though a cheap one."
|
||||
if("iced_beer")
|
||||
icon_state = "iced_beerglass"
|
||||
name = "Iced Beer"
|
||||
@@ -462,7 +452,7 @@
|
||||
if("chocolatepudding")
|
||||
icon_state = "chocolatepudding"
|
||||
name = "Chocolate Pudding"
|
||||
desc = ""
|
||||
desc = "Tasty."
|
||||
if("vanillapudding")
|
||||
icon_state = "vanillapudding"
|
||||
name = "Vanilla Pudding"
|
||||
@@ -515,6 +505,18 @@
|
||||
icon_state = "whiskeyglass"
|
||||
name = "Hard Cider"
|
||||
desc = "Tastes like autumn."
|
||||
if("triple_citrus")
|
||||
icon_state = "triplecitrus" //needs own sprite mine are trash
|
||||
name = "glass of triple citrus"
|
||||
desc = "A mixture of citrus juices. Tangy, yet smooth."
|
||||
if("grappa")
|
||||
icon_state = "grappa"
|
||||
name = "glass of grappa"
|
||||
desc = "A fine drink originally made to prevent waste by using the leftovers from winemaking."
|
||||
if("eggnog")
|
||||
icon_state = "glass_yellow"
|
||||
name = "Eggnog"
|
||||
desc = "For enjoying the most wonderful time of the year."
|
||||
else
|
||||
icon_state ="glass_brown"
|
||||
var/image/I = image(icon, "glassoverlay")
|
||||
@@ -568,7 +570,7 @@
|
||||
if("hcider")
|
||||
icon_state = "shotglassbrown"
|
||||
name = "shot of hard cider"
|
||||
desc = "Not meant to be drinken from a shot glass."
|
||||
desc = "Not meant to be drunk from a shot glass."
|
||||
if("rum")
|
||||
icon_state = "shotglassbrown"
|
||||
name = "shot of rum"
|
||||
@@ -661,7 +663,7 @@
|
||||
..()
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/attack(obj/target, mob/user)
|
||||
if(user.a_intent == "harm" && ismob(target) && target.reagents && reagents.total_volume)
|
||||
if(user.a_intent == INTENT_HARM && ismob(target) && target.reagents && reagents.total_volume)
|
||||
target.visible_message("<span class='danger'>[user] splashes the contents of [src] onto [target]!</span>", \
|
||||
"<span class='userdanger'>[user] splashes the contents of [src] onto [target]!</span>")
|
||||
add_logs(user, target, "splashed", src)
|
||||
@@ -674,7 +676,7 @@
|
||||
if((!proximity) || !check_allowed_items(target,target_self=1))
|
||||
return
|
||||
|
||||
else if(reagents.total_volume && user.a_intent == "harm")
|
||||
else if(reagents.total_volume && user.a_intent == INTENT_HARM)
|
||||
user.visible_message("<span class='danger'>[user] splashes the contents of [src] onto [target]!</span>", \
|
||||
"<span class='notice'>You splash the contents of [src] onto [target].</span>")
|
||||
reagents.reaction(target, TOUCH)
|
||||
|
||||
Reference in New Issue
Block a user