diff --git a/code/WorkInProgress/Chemistry-Machinery.dm b/code/WorkInProgress/Chemistry-Machinery.dm index c846e8109f9..0083148d4f9 100644 --- a/code/WorkInProgress/Chemistry-Machinery.dm +++ b/code/WorkInProgress/Chemistry-Machinery.dm @@ -57,10 +57,16 @@ switch(text2num(href_list["state"])) if(LIQUID) G.icon_state = "liquid" + G.pixel_x = rand(-7, 7) //random position + G.pixel_y = rand(-7, 7) if(GAS) G.icon_state = "vapour" + G.pixel_x = rand(-7, 7) //random position + G.pixel_y = rand(-7, 7) if(SOLID) G.icon_state = "solid" + G.pixel_x = rand(-7, 7) //random position + G.pixel_y = rand(-7, 7) G.name += " ([lowertext(href_list["name"])])" G.reagents.add_reagent(id,30) energy-- @@ -204,10 +210,12 @@ reagents.clear_reagents() icon_state = "mixer0" else if (href_list["createpill"]) - var/obj/item/weapon/reagent_containers/pill/P = new/obj/item/weapon/reagent_containers/pill(src.loc) var/name = input(usr,"Name:","Name your pill!",reagents.get_master_reagent_name()) + var/obj/item/weapon/reagent_containers/pill/P = new/obj/item/weapon/reagent_containers/pill(src.loc) if(!name || name == " ") name = reagents.get_master_reagent_name() P.name = "[name] pill" + P.pixel_x = rand(-7, 7) //random position + P.pixel_y = rand(-7, 7) reagents.trans_to(P,50) else if (href_list["createbottle"]) if(!condi) @@ -215,6 +223,8 @@ var/obj/item/weapon/reagent_containers/glass/bottle/P = new/obj/item/weapon/reagent_containers/glass/bottle(src.loc) if(!name || name == " ") name = reagents.get_master_reagent_name() P.name = "[name] bottle" + P.pixel_x = rand(-7, 7) //random position + P.pixel_y = rand(-7, 7) reagents.trans_to(P,30) else var/obj/item/weapon/reagent_containers/food/condiment/P = new/obj/item/weapon/reagent_containers/food/condiment(src.loc) diff --git a/code/WorkInProgress/Chemistry-Tools.dm b/code/WorkInProgress/Chemistry-Tools.dm index 241ab87328a..98acd709345 100644 --- a/code/WorkInProgress/Chemistry-Tools.dm +++ b/code/WorkInProgress/Chemistry-Tools.dm @@ -1074,9 +1074,53 @@ icon_state = null var/bitesize = 1 var/bitecount = 0 + var/trash = null //Placeholder for effects that trigger on eating that aren't tied to reagents. proc/On_Consume() + if (!trash) return + if(!reagents.total_volume) + var/mob/M = usr + switch(trash) + if ("raisins") + var/obj/item/trash/raisins/T = new /obj/item/trash/raisins/( M ) + M.put_in_hand(T) + if ("candy") + var/obj/item/trash/candy/T = new /obj/item/trash/candy/( M ) + M.put_in_hand(T) + if ("cheesie") + var/obj/item/trash/cheesie/T = new /obj/item/trash/cheesie/( M ) + M.put_in_hand(T) + if ("chips") + var/obj/item/trash/chips/T = new /obj/item/trash/chips/( M ) + M.put_in_hand(T) + if ("popcorn") + var/obj/item/trash/popcorn/T = new /obj/item/trash/popcorn/( M ) + M.put_in_hand(T) + if ("sosjerky") + var/obj/item/trash/sosjerky/T = new /obj/item/trash/sosjerky/( M ) + M.put_in_hand(T) + if ("syndi_cakes") + var/obj/item/trash/syndi_cakes/T = new /obj/item/trash/syndi_cakes/( M ) + M.put_in_hand(T) + if ("waffles") + var/obj/item/trash/waffles/T = new /obj/item/trash/waffles/( M ) + M.put_in_hand(T) + if ("plate") + var/obj/item/trash/plate/T = new /obj/item/trash/plate/( M ) + M.put_in_hand(T) + if ("snack_bowl") + var/obj/item/trash/snack_bowl/T = new /obj/item/trash/snack_bowl/( M ) + M.put_in_hand(T) + if ("pistachios") + var/obj/item/trash/pistachios/T = new /obj/item/trash/pistachios/( M ) + M.put_in_hand(T) + if ("semki") + var/obj/item/trash/semki/T = new /obj/item/trash/semki/( M ) + M.put_in_hand(T) + if ("tray") + var/obj/item/trash/tray/T = new /obj/item/trash/tray/( M ) + M.put_in_hand(T) return attackby(obj/item/weapon/W as obj, mob/user as mob) diff --git a/code/defines/procs/gamehelpers.dm b/code/defines/procs/gamehelpers.dm index 76037e811f1..95fff1cb94b 100644 --- a/code/defines/procs/gamehelpers.dm +++ b/code/defines/procs/gamehelpers.dm @@ -8,13 +8,15 @@ return null /proc/get_area(O) - var/location = O + var/atom/location = O var/i for(i=1, i<=20, i++) - if(!isarea(location)) - location = location:loc - else + if(isarea(location)) return location + else if (istype(location)) + location = location.loc + else + return null return 0 /proc/get_area_name(N) //get area by it's name diff --git a/code/game/gamemodes/gameticker.dm b/code/game/gamemodes/gameticker.dm index 3c7360ce470..1820a71be09 100644 --- a/code/game/gamemodes/gameticker.dm +++ b/code/game/gamemodes/gameticker.dm @@ -291,4 +291,4 @@ var/global/datum/controller/gameticker/ticker else return //Anything else, like sandbox, return. -*/ \ No newline at end of file +*/ diff --git a/code/game/objects/items/candle.dm b/code/game/objects/items/candle.dm new file mode 100644 index 00000000000..18a455d012e --- /dev/null +++ b/code/game/objects/items/candle.dm @@ -0,0 +1,114 @@ +#define CANDLE_LUM 3 + +/obj/item/candle + name = "red candle" + desc = "a candle" + icon = 'candle.dmi' + icon_state = "candle1" + item_state = "candle1" + + var/wax = 100 + var/lit = 0 + +/obj/item/candle/update_icon() + var/i + if(wax>75) + i = 1 + else if(wax>40) + i = 2 + else i = 3 + icon_state = "candle[i][lit ? "_lit" : ""]" + +/obj/item/candle/attackby(obj/item/weapon/W as obj, mob/user as mob) + ..() + if(istype(W, /obj/item/weapon/weldingtool) && W:welding) + light("\red [user] casually lights the [name] with [W], what a badass.") + else if(istype(W, /obj/item/weapon/zippo) && W:lit) + light() + else if(istype(W, /obj/item/weapon/match) && W:lit) + light() + + + +/obj/item/candle/proc/light(var/flavor_text = "\red [usr] lights the [name].") + if(!lit) + lit = 1 + //src.damtype = "fire" + for(var/mob/O in viewers(usr, null)) + O.show_message(flavor_text, 1) + sd_SetLuminosity(CANDLE_LUM) + spawn() + src.process() + +/obj/item/candle/process() + if(!lit) + return + wax-- + if(!wax) + new/obj/item/trash/candle(src.loc) + if(istype(src.loc, /mob)) + src.dropped() + del(src) + update_icon() + + if(istype(loc, /turf)) //start a fire if possible + var/turf/T = loc + T.hotspot_expose(700, 5) + + spawn(60) + process() + +/obj/item/candle/attack_self(mob/user as mob) + if(lit) + lit = 0 + update_icon() + sd_SetLuminosity(0) + +/obj/item/candle/pickup(mob/user) + if(lit) + src.sd_SetLuminosity(0) + user.sd_SetLuminosity(user.luminosity + CANDLE_LUM) + +/obj/item/candle/dropped(mob/user) + if(lit) + user.sd_SetLuminosity(user.luminosity - CANDLE_LUM) + src.sd_SetLuminosity(CANDLE_LUM) + + +/////////////// +//CANDLE PACK// +/////////////// +/obj/item/weapon/candlepack + name = "Candle pack" + //desc = "The most popular brand of Space Cigarettes, sponsors of the Space Olympics." + icon = 'candle.dmi' + icon_state = "pack5" + item_state = "pack5" + w_class = 1 + throwforce = 2 + var/candlecount = 5 + flags = ONBELT | TABLEPASS + + +/obj/item/weapon/candlepack/update_icon() + src.icon_state = text("pack[]", src.candlecount) + src.desc = text("There are [] candles left!", src.candlecount) + return + +/obj/item/weapon/candlepack/attack_hand(mob/user as mob) + if(user.r_hand == src || user.l_hand == src) + if(src.candlecount == 0) + //user << "\red You're out of cigs, shit! How you gonna get through the rest of the day..." + return + else + src.candlecount-- + var/obj/item/candle/W = new /obj/item/candle(user) + if(user.hand) + user.l_hand = W + else + user.r_hand = W + W.layer = 20 + else + return ..() + src.update_icon() + return \ No newline at end of file diff --git a/code/game/objects/items/trash.dm b/code/game/objects/items/trash.dm new file mode 100644 index 00000000000..ed6ca7d04f0 --- /dev/null +++ b/code/game/objects/items/trash.dm @@ -0,0 +1,48 @@ +//Added by Jack Rost +/obj/item/trash + icon = 'trash.dmi' + w_class = 1.0 + desc = "It's \a trash" + raisins + name = "4no raisins" + icon_state= "4no_raisins" + candy + name = "Candy" + icon_state= "candy" + cheesie + name = "Cheesie honkers" + icon_state = "cheesie_honkers" + chips + name = "Chips" + icon_state = "chips" + popcorn + name = "Popcorn" + icon_state = "popcorn" + sosjerky + name = "Sosjerky" + icon_state = "sosjerky" + syndi_cakes + name = "Syndi cakes" + icon_state = "syndi_cakes" + waffles + name = "Waffles" + icon_state = "waffles" + plate + name = "Plate" + icon_state = "plate" + snack_bowl + name = "Snack bowl" + icon_state = "snack_bowl" + pistachios + name = "Pistachios pack" + icon_state = "pistachios_pack" + semki + name = "Semki pack" + icon_state = "semki_pack" + tray + name = "Tray" + icon_state = "tray" + candle + name = "candle" + icon = 'candle.dmi' + icon_state = "candle4" \ No newline at end of file diff --git a/code/game/turf.dm b/code/game/turf.dm index 72470a5d7ba..78ef3dfa0d6 100644 --- a/code/game/turf.dm +++ b/code/game/turf.dm @@ -8,13 +8,10 @@ var/turflist = getline(usr,src) var/obj/item/weapon/flamethrower/F = usr.l_hand F.flame_turf(turflist) - ..() else if(!usr.hand && istype(usr.r_hand, /obj/item/weapon/flamethrower)) var/turflist = getline(usr,src) var/obj/item/weapon/flamethrower/F = usr.r_hand F.flame_turf(turflist) - ..() - //else return ..() diff --git a/code/modules/food/food.dm b/code/modules/food/food.dm index 38c49dedc99..5c9980221ea 100644 --- a/code/modules/food/food.dm +++ b/code/modules/food/food.dm @@ -323,6 +323,7 @@ name = "Omelette Du Fromage" desc = "That's all you can say!" icon_state = "omelette" + trash = "plate" //var/herp = 0 New() ..() @@ -369,6 +370,7 @@ name = "Banana Cream Pie" desc = "Just like back home, on clown planet! HONK!" icon_state = "pie" + trash = "plate" New() ..() reagents.add_reagent("nutriment", 4) @@ -421,7 +423,8 @@ /obj/item/weapon/reagent_containers/food/snacks/soylentgreen name = "Soylent Green" desc = "Not made of people. Honest." //Totally people. - icon_state = "soylent" + icon_state = "soylent_green" + trash = "waffles" New() ..() reagents.add_reagent("nutriment", 14) @@ -430,7 +433,8 @@ /obj/item/weapon/reagent_containers/food/snacks/soylenviridians name = "Soylen Virdians" desc = "Not made of people. Honest." //Actually honest for once. - icon_state = "soylent" + icon_state = "soylent_yellow" + trash = "waffles" New() ..() reagents.add_reagent("nutriment", 10) @@ -655,6 +659,7 @@ name = "Space Fries" desc = "AKA: French Fries, Freedom Fries, etc" icon_state = "fries" + trash = "plate" New() ..() reagents.add_reagent("nutriment", 4) @@ -664,6 +669,7 @@ name = "Soy Dope" desc = "Dope from a soy." icon_state = "soydope" + trash = "plate" New() ..() reagents.add_reagent("nutriment", 2) @@ -954,6 +960,7 @@ name = "Enchiladas" desc = "Viva La Mexico!" icon_state = "enchiladas" + trash = "tray" New() ..() reagents.add_reagent("nutriment",8) @@ -964,6 +971,7 @@ name = "Monkie's Delight" desc = "Eeee Eee!" icon_state = "monkiesdelight" + trash = "tray" New() ..() reagents.add_reagent("nutriment", 14) @@ -997,6 +1005,7 @@ name = "Sandwich" desc = "A grand creation of meat, cheese, bread and several leafs oflettuce! Arthur Dent would be proud." icon_state = "sandwich" + trash = "plate" New() ..() reagents.add_reagent("nutriment", 8) @@ -1006,6 +1015,7 @@ name = "Toasted Sandwich" desc = "Now if you only had a pepper bar." icon_state = "toastedsandwich" + trash = "plate" New() ..() reagents.add_reagent("nutriment", 9) @@ -1015,6 +1025,7 @@ name = "Tomato Soup" desc = "Drinking this feels like being a vampire! A tomato vampire..." icon_state = "tomatosoup" + trash = "snack_bowl" New() ..() reagents.add_reagent("nutriment", 4) @@ -1026,6 +1037,7 @@ name = "Roffle Waffles" desc = "Waffles from Roffle. Co." icon_state = "rofflewaffles" + trash = "waffles" New() ..() reagents.add_reagent("nutriment", 8) @@ -1048,6 +1060,7 @@ name = "Metroid Toast" desc = "A slice of bread covered with delicious jam." icon_state = "metroidtoast" + trash = "plate" New() ..() reagents.add_reagent("nutriment", 1) @@ -1068,6 +1081,7 @@ name = "Milosoup" desc = "The universes best soup! Yum!!!" icon_state = "milosoup" + trash = "snack_bowl" New() ..() reagents.add_reagent("nutriment", 12) @@ -1078,6 +1092,7 @@ name = "Stewed Soy Meat" desc = "Even non-vegetarians will LOVE this!" icon_state = "stewedsoymeat" + trash = "plate" New() ..() reagents.add_reagent("nutriment", 8) @@ -1087,6 +1102,7 @@ name = "Boiled Spagetti" desc = "A plain dish of noodles, this sucks." icon_state = "spagettiboiled" + trash = "plate" New() ..() reagents.add_reagent("nutriment", 2) @@ -1096,6 +1112,7 @@ name = "Spagetti" desc = "Spaghetti and crushed tomatoes. Just like your abusive father used to make!" icon_state = "pastatomato" + trash = "plate" New() ..() reagents.add_reagent("nutriment", 6) @@ -1106,6 +1123,7 @@ name = "Spagetti & Meatballs" desc = "Now thats a nic'e meatball!" icon_state = "meatballspagetti" + trash = "plate" New() ..() reagents.add_reagent("nutriment", 8) @@ -1133,6 +1151,7 @@ name = "Carrot Fries" desc = "Tasty fries from fresh Carrots." icon_state = "carrotfries" + trash = "plate" New() ..() reagents.add_reagent("nutriment", 3) @@ -1416,6 +1435,7 @@ name = "Birthday Cake slice" desc = "A slice of your birthday" icon_state = "birthdaycakeslice" + trash = "plate" bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/sliceable/bread @@ -1433,8 +1453,29 @@ name = "Bread slice" desc = "A slice of home." icon_state = "breadslice" + trash = "plate" bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/sliceable/creamcheesebread + name = "Cream Cheese Bread" + desc = "Yum yum yum!" + icon_state = "creamcheesebread" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/creamcheesebreadslice + slices_num = 5 + New() + ..() + reagents.add_reagent("nutriment", 20) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/creamcheesebreadslice + name = "Cream Cheese Bread slice" + desc = "A slice of yum!" + icon_state = "creamcheesebreadslice" + trash = "plate" + bitesize = 2 + + /obj/item/weapon/reagent_containers/food/snacks/grown/watermelon name = "Watermelon" icon_state = "A juicy watermelon" @@ -1452,6 +1493,7 @@ icon_state = "watermelonslice" bitesize = 2 + /obj/item/weapon/reagent_containers/food/snacks/sliceable/applecake name = "Apple Cake" desc = "A cake centred with Apple" @@ -1548,20 +1590,3 @@ icon_state = "vegetablepizzaslice" bitesize = 2 -/obj/item/weapon/reagent_containers/food/snacks/sliceable/creamcheesebread - name = "Cream Cheese Bread" - desc = "Yum yum yum!" - icon_state = "creamcheesebread" - slice_path = /obj/item/weapon/reagent_containers/food/snacks/creamcheesebreadslice - slices_num = 5 - New() - ..() - reagents.add_reagent("nutriment", 20) - bitesize = 2 - -/obj/item/weapon/reagent_containers/food/snacks/creamcheesebreadslice - name = "Cream Cheese Bread slice" - desc = "A slice of yum!" - icon_state = "creamcheesebreadslice" - bitesize = 2 - diff --git a/icons/mob/items_lefthand.dmi b/icons/mob/items_lefthand.dmi index 28a9664361b..dcf5ad015c2 100644 Binary files a/icons/mob/items_lefthand.dmi and b/icons/mob/items_lefthand.dmi differ diff --git a/icons/mob/items_righthand.dmi b/icons/mob/items_righthand.dmi index 60d02014ae0..d9221f358b5 100644 Binary files a/icons/mob/items_righthand.dmi and b/icons/mob/items_righthand.dmi differ diff --git a/icons/obj/candle.dmi b/icons/obj/candle.dmi new file mode 100644 index 00000000000..0a31f88bead Binary files /dev/null and b/icons/obj/candle.dmi differ diff --git a/icons/obj/food.dmi b/icons/obj/food.dmi index 2c20ed3a955..6bee32c5eaa 100644 Binary files a/icons/obj/food.dmi and b/icons/obj/food.dmi differ diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi index 06e7485d2d9..ebf6bca9324 100644 Binary files a/icons/obj/storage.dmi and b/icons/obj/storage.dmi differ diff --git a/icons/obj/trash.dmi b/icons/obj/trash.dmi new file mode 100644 index 00000000000..d7d5fde3ba8 Binary files /dev/null and b/icons/obj/trash.dmi differ diff --git a/tgstation.dme b/tgstation.dme index fa86c9db7e9..e5e41a9c437 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -548,11 +548,13 @@ #include "code\game\objects\items\apc_frame.dm" #include "code\game\objects\items\assemblies.dm" #include "code\game\objects\items\blueprints.dm" +#include "code\game\objects\items\candle.dm" #include "code\game\objects\items\clothing.dm" #include "code\game\objects\items\food.dm" #include "code\game\objects\items\helper_procs.dm" #include "code\game\objects\items\item.dm" #include "code\game\objects\items\robot_parts.dm" +#include "code\game\objects\items\trash.dm" #include "code\game\objects\items\weapons\AI_modules.dm" #include "code\game\objects\items\weapons\cards_ids.dm" #include "code\game\objects\items\weapons\cigs_lighters.dm"