diff --git a/SQL/Aurora_SQL_Schema.sql b/SQL/Aurora_SQL_Schema.sql index f2dd7018bf9..59865d55f89 100644 --- a/SQL/Aurora_SQL_Schema.sql +++ b/SQL/Aurora_SQL_Schema.sql @@ -251,7 +251,7 @@ CREATE TABLE `ss13_directives` ( CREATE TABLE `ss13_feedback` ( `id` int(11) NOT NULL AUTO_INCREMENT, `time` datetime NOT NULL, - `round_id` int(8) NOT NULL, + `game_id` varchar(32) NOT NULL, `var_name` varchar(32) CHARACTER SET latin1 NOT NULL, `var_value` int(16) DEFAULT NULL, `details` text CHARACTER SET latin1, diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index 88196e5747b..7560e8420b3 100644 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -719,8 +719,8 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/weapons name = "Weapons crate" - contains = list(/obj/item/weapon/gun/energy/rifle, - /obj/item/weapon/gun/energy/rifle, + contains = list(/obj/item/weapon/gun/energy/rifle/laser, + /obj/item/weapon/gun/energy/rifle/laser, /obj/item/weapon/gun/projectile/sec, /obj/item/weapon/gun/projectile/sec, /obj/item/ammo_magazine/c45m, diff --git a/code/defines/procs/statistics.dm b/code/defines/procs/statistics.dm index 3f9b6954a09..8a1e02b7811 100644 --- a/code/defines/procs/statistics.dm +++ b/code/defines/procs/statistics.dm @@ -99,49 +99,3 @@ proc/statistic_cycle() while(1) sql_poll_population() sleep(6000) - -//This proc is used for feedback. It is executed at round end. -proc/sql_commit_feedback() - if(!config.sql_enabled || !config.sql_stats) - return - - if(!blackbox) - log_game("Round ended without a blackbox recorder. No feedback was sent to the database.") - return - - //content is a list of lists. Each item in the list is a list with two fields, a variable name and a value. Items MUST only have these two values. - var/list/datum/feedback_variable/content = blackbox.get_round_feedback() - - if(!content) - log_game("Round ended without any feedback being generated. No feedback was sent to the database.") - return - - establish_db_connection(dbcon) - if(!dbcon.IsConnected()) - log_game("SQL ERROR during feedback reporting. Failed to connect.") - else - - var/DBQuery/max_query = dbcon.NewQuery("SELECT MAX(roundid) AS max_round_id FROM ss13_feedback") - max_query.Execute() - - var/newroundid - - while(max_query.NextRow()) - newroundid = max_query.item[1] - - if(!(isnum(newroundid))) - newroundid = text2num(newroundid) - - if(isnum(newroundid)) - newroundid++ - else - newroundid = 1 - - for(var/datum/feedback_variable/item in content) - var/variable = item.get_variable() - var/value = item.get_value() - - var/DBQuery/query = dbcon.NewQuery("INSERT INTO ss13_feedback (id, roundid, time, variable, value) VALUES (null, [newroundid], Now(), '[variable]', '[value]')") - if(!query.Execute()) - var/err = query.ErrorMsg() - log_game("SQL ERROR during death reporting. Error : \[[err]\]\n") diff --git a/code/game/gamemodes/events/holidays/Christmas.dm b/code/game/gamemodes/events/holidays/Christmas.dm index 9c68ab879ee..94a985e9161 100644 --- a/code/game/gamemodes/events/holidays/Christmas.dm +++ b/code/game/gamemodes/events/holidays/Christmas.dm @@ -61,3 +61,9 @@ body_parts_covered = 0 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) +/obj/item/clothing/head/festive/santa + name = "santa hat" + icon_state = "santahat" + body_parts_covered = HEAD + desc = "A cheap fabric santa hat, with a fake beard and a little bell at the end." + diff --git a/code/game/machinery/flasher.dm b/code/game/machinery/flasher.dm index bea0c443a74..ba8f037d168 100644 --- a/code/game/machinery/flasher.dm +++ b/code/game/machinery/flasher.dm @@ -108,10 +108,8 @@ if ((src.disable) || (src.last_flash && world.time < src.last_flash + 150)) return - if(istype(AM, /mob/living/carbon)) - var/mob/living/carbon/M = AM - if ((M.m_intent != "walk") && (src.anchored)) - src.flash() + if (src.anchored) + src.flash() /obj/machinery/flasher/portable/attackby(obj/item/weapon/W as obj, mob/user as mob) if (istype(W, /obj/item/weapon/wrench)) diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 18729bd0b0c..c3ef365a8b3 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -723,7 +723,7 @@ vend_power_usage = 85000 //85 kJ to heat a 250 mL cup of coffee products = list(/obj/item/weapon/reagent_containers/food/drinks/coffee = 25,/obj/item/weapon/reagent_containers/food/drinks/tea = 25,/obj/item/weapon/reagent_containers/food/drinks/h_chocolate = 25) contraband = list(/obj/item/weapon/reagent_containers/food/drinks/ice = 10) - prices = list(/obj/item/weapon/reagent_containers/food/drinks/coffee = 10, /obj/item/weapon/reagent_containers/food/drinks/tea = 10, /obj/item/weapon/reagent_containers/food/drinks/h_chocolate = 12) + prices = list(/obj/item/weapon/reagent_containers/food/drinks/coffee = 30, /obj/item/weapon/reagent_containers/food/drinks/tea = 30, /obj/item/weapon/reagent_containers/food/drinks/h_chocolate = 32) @@ -739,10 +739,10 @@ /obj/item/weapon/reagent_containers/food/snacks/cheesiehonkers = 6, /obj/item/weapon/reagent_containers/food/snacks/tastybread = 6, /obj/item/weapon/reagent_containers/food/snacks/skrellsnacks = 3, /obj/item/weapon/reagent_containers/food/snacks/meatsnack = 2, /obj/item/weapon/reagent_containers/food/snacks/maps = 2, /obj/item/weapon/reagent_containers/food/snacks/nathisnack = 2) contraband = list(/obj/item/weapon/reagent_containers/food/snacks/syndicake = 6) - prices = list(/obj/item/weapon/reagent_containers/food/snacks/candy = 5,/obj/item/weapon/reagent_containers/food/drinks/dry_ramen = 10,/obj/item/weapon/reagent_containers/food/snacks/chips = 7, - /obj/item/weapon/reagent_containers/food/snacks/sosjerky = 10,/obj/item/weapon/reagent_containers/food/snacks/no_raisin = 2,/obj/item/weapon/reagent_containers/food/snacks/spacetwinkie = 5, - /obj/item/weapon/reagent_containers/food/snacks/cheesiehonkers = 5, /obj/item/weapon/reagent_containers/food/snacks/tastybread = 8, /obj/item/weapon/reagent_containers/food/snacks/skrellsnacks = 30, - /obj/item/weapon/reagent_containers/food/snacks/meatsnack = 12, /obj/item/weapon/reagent_containers/food/snacks/maps = 13, /obj/item/weapon/reagent_containers/food/snacks/nathisnack = 14) + prices = list(/obj/item/weapon/reagent_containers/food/snacks/candy = 25,/obj/item/weapon/reagent_containers/food/drinks/dry_ramen = 30,/obj/item/weapon/reagent_containers/food/snacks/chips = 27, + /obj/item/weapon/reagent_containers/food/snacks/sosjerky = 30,/obj/item/weapon/reagent_containers/food/snacks/no_raisin = 22,/obj/item/weapon/reagent_containers/food/snacks/spacetwinkie = 25, + /obj/item/weapon/reagent_containers/food/snacks/cheesiehonkers = 25, /obj/item/weapon/reagent_containers/food/snacks/tastybread = 28, /obj/item/weapon/reagent_containers/food/snacks/skrellsnacks = 50, + /obj/item/weapon/reagent_containers/food/snacks/meatsnack = 32, /obj/item/weapon/reagent_containers/food/snacks/maps = 33, /obj/item/weapon/reagent_containers/food/snacks/nathisnack = 34) /obj/machinery/vending/cola @@ -756,10 +756,10 @@ /obj/item/weapon/reagent_containers/food/drinks/cans/waterbottle = 10,/obj/item/weapon/reagent_containers/food/drinks/cans/space_up = 10, /obj/item/weapon/reagent_containers/food/drinks/cans/iced_tea = 10, /obj/item/weapon/reagent_containers/food/drinks/cans/grape_juice = 10) contraband = list(/obj/item/weapon/reagent_containers/food/drinks/cans/thirteenloko = 5, /obj/item/weapon/reagent_containers/food/snacks/liquidfood = 6) - prices = list(/obj/item/weapon/reagent_containers/food/drinks/cans/cola = 5,/obj/item/weapon/reagent_containers/food/drinks/cans/space_mountain_wind = 1, - /obj/item/weapon/reagent_containers/food/drinks/cans/dr_gibb = 6,/obj/item/weapon/reagent_containers/food/drinks/cans/starkist = 5, - /obj/item/weapon/reagent_containers/food/drinks/cans/waterbottle = 2,/obj/item/weapon/reagent_containers/food/drinks/cans/space_up = 5, - /obj/item/weapon/reagent_containers/food/drinks/cans/iced_tea = 3,/obj/item/weapon/reagent_containers/food/drinks/cans/grape_juice = 6) + prices = list(/obj/item/weapon/reagent_containers/food/drinks/cans/cola = 25,/obj/item/weapon/reagent_containers/food/drinks/cans/space_mountain_wind = 21, + /obj/item/weapon/reagent_containers/food/drinks/cans/dr_gibb = 26,/obj/item/weapon/reagent_containers/food/drinks/cans/starkist = 25, + /obj/item/weapon/reagent_containers/food/drinks/cans/waterbottle = 22,/obj/item/weapon/reagent_containers/food/drinks/cans/space_up = 25, + /obj/item/weapon/reagent_containers/food/drinks/cans/iced_tea = 23,/obj/item/weapon/reagent_containers/food/drinks/cans/grape_juice = 26) idle_power_usage = 211 //refrigerator - believe it or not, this is actually the average power consumption of a refrigerated vending machine according to NRCan. //This one's from bay12 @@ -784,7 +784,7 @@ products = list(/obj/item/weapon/storage/fancy/cigarettes = 10,/obj/item/weapon/storage/box/matches = 10,/obj/item/weapon/flame/lighter/random = 4) contraband = list(/obj/item/weapon/flame/lighter/zippo = 4) premium = list(/obj/item/weapon/storage/fancy/cigar = 5,/obj/item/weapon/storage/fancy/cigarettes/killthroat = 5 ) - prices = list(/obj/item/weapon/storage/fancy/cigarettes = 15,/obj/item/weapon/storage/box/matches = 1,/obj/item/weapon/flame/lighter/random = 2) + prices = list(/obj/item/weapon/storage/fancy/cigarettes = 520,/obj/item/weapon/storage/box/matches = 22,/obj/item/weapon/flame/lighter/random = 22) /obj/machinery/vending/medical diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index a76d28778b0..5faacc45736 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -1246,7 +1246,7 @@ set_dir(dir_in) pr_manage_warnings.resume_sounds(src) playsound(src, 'sound/machines/windowdoor.ogg', 50, 1) - if(!hasInternalDamage() && cell.charge >= cell.maxcharge && health >= initial(health)) + if(cell && !hasInternalDamage() && cell.charge >= cell.maxcharge && health >= initial(health)) narrator_message(NOMINAL) return 1 else @@ -1458,7 +1458,7 @@ Powercell charge: [isnull(cell_charge)?"No powercell installed":"[cell.percent()]%"]
Air source: [use_internal_tank?"Internal Airtank":"Environment"]
Airtank pressure: [tank_pressure]kPa
- Airtank temperature: [tank_temperature]K|[tank_temperature - T0C]°C
+ Airtank temperature: [isnum(tank_temperature) ? "[tank_temperature]K|[tank_temperature - T0C]°C" : "Unknown"]
Cabin pressure: [cabin_pressure>WARNING_HIGH_PRESSURE ? "[cabin_pressure]": cabin_pressure]kPa
Cabin temperature: [return_temperature()]K|[return_temperature() - T0C]°C
Lights: [lights?"on":"off"]
@@ -1986,9 +1986,22 @@ process(var/obj/mecha/mecha) + if (!mecha) return + if (!mecha.cell) + if((mecha.power_alert_status || mecha.damage_alert_status)) + // No cell will kill warnings. + // Makes sense, caution systems are battery powered. + mecha.power_alert_status = 0//cancel the alert status + power_warning_delay = initial(power_warning_delay)//Reset the delay + stop_sound(1, mecha) + mecha.damage_alert_status = 0 + damage_warning_delay = initial(damage_warning_delay)//Reset the delay + stop_sound(2, mecha) + return + if (!mecha.power_alert_status && mecha.cell)//If we're in the fine status if (mecha.cell.charge < (mecha.cell.maxcharge*0.3))//but power is below 30% mecha.power_alert_status = 1//Switch to the alert status @@ -1998,6 +2011,7 @@ //No 'else' here, we want this to run in the same proc if the alert status was just enabled if (mecha.power_alert_status)//IF we're in either warning status + if (mecha.cell.charge >= (mecha.cell.maxcharge*0.3))//But power has risen back above danger levels mecha.power_alert_status = 0//cancel the alert status power_warning_delay = initial(power_warning_delay)//Reset the delay diff --git a/code/game/objects/effects/decals/Cleanable/humans.dm b/code/game/objects/effects/decals/Cleanable/humans.dm index fc4b0ba0dcb..73de783335b 100644 --- a/code/game/objects/effects/decals/Cleanable/humans.dm +++ b/code/game/objects/effects/decals/Cleanable/humans.dm @@ -91,14 +91,16 @@ var/global/list/image/splatter_cache=list() S.blood_overlay.color = basecolor S.overlays.Cut() S.overlays += S.blood_overlay - S.blood_DNA |= blood_DNA.Copy() + if(blood_DNA) + S.blood_DNA |= blood_DNA.Copy() else if (hasfeet)//Or feet perp.feet_blood_color = basecolor perp.track_blood = max(amount,perp.track_blood) if(!perp.feet_blood_DNA) perp.feet_blood_DNA = list() - perp.feet_blood_DNA |= blood_DNA.Copy() + if (blood_DNA) + perp.feet_blood_DNA |= blood_DNA.Copy() else if (perp.buckled && istype(perp.buckled, /obj/structure/bed/chair/wheelchair)) var/obj/structure/bed/chair/wheelchair/W = perp.buckled W.bloodiness = 4 @@ -124,7 +126,8 @@ var/global/list/image/splatter_cache=list() user << "You get some of \the [src] on your hands." if (!user.blood_DNA) user.blood_DNA = list() - user.blood_DNA |= blood_DNA.Copy() + if (blood_DNA) + user.blood_DNA |= blood_DNA.Copy() user.bloody_hands += taken user.hand_blood_color = basecolor user.update_inv_gloves(1) @@ -213,21 +216,21 @@ var/global/list/image/splatter_cache=list() /obj/effect/decal/cleanable/blood/gibs/proc/streak(var/list/directions) - spawn (0) - var/direction = pick(directions) - for (var/i = 0, i < pick(1, 200; 2, 150; 3, 50; 4), i++) - sleep(3) - if (i > 0) - var/obj/effect/decal/cleanable/blood/b = PoolOrNew(/obj/effect/decal/cleanable/blood/splatter, src.loc) - b.basecolor = src.basecolor - b.update_icon() - for(var/datum/disease/D in src.viruses) - var/datum/disease/ND = D.Copy(1) - b.viruses += ND - ND.holder = b + spawn (0) + var/direction = pick(directions) + for (var/i = 0, i < pick(1, 200; 2, 150; 3, 50; 4), i++) + sleep(3) + if (i > 0) + var/obj/effect/decal/cleanable/blood/b = PoolOrNew(/obj/effect/decal/cleanable/blood/splatter, src.loc) + b.basecolor = src.basecolor + b.update_icon() + for(var/datum/disease/D in src.viruses) + var/datum/disease/ND = D.Copy(1) + b.viruses += ND + ND.holder = b - if (step_to(src, get_step(src, direction), 0)) - break + if (step_to(src, get_step(src, direction), 0)) + break /obj/effect/decal/cleanable/mucus diff --git a/code/game/objects/effects/overlays.dm b/code/game/objects/effects/overlays.dm index cc52bf7bbf9..c28198f89a3 100644 --- a/code/game/objects/effects/overlays.dm +++ b/code/game/objects/effects/overlays.dm @@ -52,3 +52,11 @@ ..() pixel_x += rand(-10, 10) pixel_y += rand(-10, 10) + +/obj/effect/overlay/snow + name = "snow" + icon = 'icons/turf/overlays.dmi' + icon_state = "snowfloor" + density = 0 + anchored = 1 + layer = 3 diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 9aadab791ae..54f634bfe14 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -973,3 +973,12 @@ item_state = "inflatable" icon = 'icons/obj/clothing/belts.dmi' slot_flags = SLOT_BELT + +/obj/item/toy/xmastree + name = "miniature Christmas tree" + desc = "Now with 99% less pine needles." + icon = 'icons/obj/toy.dmi' + icon_state = "tinyxmastree" + w_class = 1 + force = 1 + throwforce = 1 diff --git a/code/game/objects/items/weapons/gift_wrappaper.dm b/code/game/objects/items/weapons/gift_wrappaper.dm index ea6dc884bd7..5c6c0a29904 100644 --- a/code/game/objects/items/weapons/gift_wrappaper.dm +++ b/code/game/objects/items/weapons/gift_wrappaper.dm @@ -1,6 +1,7 @@ /* Gifts and wrapping paper * Contains: * Gifts + * X-mas Gifts * Wrapping Paper */ @@ -187,3 +188,165 @@ user << "You need more paper." else user << "They are moving around too much. A straightjacket would help." + +/* + * Xmas Gifts + */ +/obj/item/weapon/xmasgift + name = "christmas gift" + desc = "PRESENTS!!!! eek!" + icon = 'icons/obj/items.dmi' + icon_state = "gift1" + item_state = "gift1" + w_class = 1 + +/obj/item/weapon/xmasgift/New() + ..() + var/gift_benefactor = pick("John Rolf","Isaac Bureaurgard","David Montrello","Sarah Karpac","Camille Rodgers","Luke Lawrence","Goliath Grills","Torbjorn","Odin","Jesus DeSanto","Santa Claus","Ms. Claus","Mr. Claus","Bjorn","Frodo","Gandalf","Elrond", + "Robert Heinlen","Martin Fresco","Lawrence Chamberlain","Buster Kilrain","Nerevar","Neville Trouserkepling","Adam Sortings","Eve's Grocers","Father Christmas","Adolph Romkippler","Adolf Strange","Camille","Maximilian von Biesel","Max","Bob Wallace", + "The Grinch","Cicilia Simon","John F. Kennedy","Joseph Dorn","Mendell City","Ta’Akaix’Scay’extiih’aur Zo’ra","Ta'Akaix'Vaur'skiyet'sca Zo'ra","Miranda Trasen","Jiub","The Biesellian National Guard","The ERT","Baal D. Griffon","Hephaestus Industries","The Sol Alliance (Sorry about the blockade!") + var/pick_emotion = pick("love","platonic admiration","approval","love (not in a sexual way or anything, though)","apathy", "schadenfreude","love","God's blessing","Santa's blessing","Non-demoninational deity's blessing","love","compassion","appreciation", + "respect","begrudging respect","love") + desc = "To: The NSS Exodus
From: [gift_benefactor], with [pick_emotion]" + + return + +/obj/item/weapon/xmasgift/ex_act() + qdel(src) + return + +/obj/item/weapon/xmasgift/small/attack_self(mob/M as mob) + var/gift_type = pick( + /obj/item/weapon/storage/wallet, + /obj/item/weapon/storage/photo_album, + /obj/item/weapon/storage/box/snappops, + /obj/item/weapon/storage/fancy/crayons, + /obj/item/weapon/soap/deluxe, + /obj/item/weapon/pen/invisible, + /obj/item/weapon/lipstick/random, + /obj/item/weapon/corncob, + /obj/item/weapon/bikehorn, + /obj/item/toy/balloon, + /obj/item/toy/blink, + /obj/item/toy/gun, + /obj/item/toy/prize/deathripley, + /obj/item/toy/prize/durand, + /obj/item/toy/prize/fireripley, + /obj/item/toy/prize/gygax, + /obj/item/toy/prize/honk, + /obj/item/toy/prize/marauder, + /obj/item/toy/prize/mauler, + /obj/item/toy/prize/odysseus, + /obj/item/toy/prize/phazon, + /obj/item/toy/prize/ripley, + /obj/item/toy/prize/seraph, + /obj/item/device/paicard, + /obj/item/clothing/accessory/horrible, + /obj/item/weapon/coin/silver, + /obj/item/device/camera, + /obj/item/weapon/coin/gold, + /obj/item/bluespace_crystal, + /obj/item/weapon/flame/lighter/zippo, + /obj/item/device/taperecorder, + /obj/item/weapon/storage/fancy/cigarettes/dromedaryco, + /obj/item/toy/bosunwhistle, + /obj/item/clothing/mask/fakemoustache, + /obj/item/clothing/mask/gas/clown_hat, + /obj/item/clothing/mask/gas/mime, + /obj/item/clothing/head/festive/santa, + /obj/item/stack/material/animalhide/lizard, + /obj/item/stack/material/animalhide/cat, + /obj/item/stack/material/animalhide/corgi, + /obj/item/stack/material/animalhide/human, + /obj/item/stack/material/animalhide/monkey, + /obj/item/stack/material/animalhide/xeno, + /obj/item/trash/cheesie, + /obj/item/trash/raisins, + /obj/item/trash/koisbar, + /obj/item/weapon/xmasgift/medium, + /obj/item/toy/syndicateballoon, + /obj/item/toy/xmastree) + + var/atom/movable/I = new gift_type(M) + M.remove_from_mob(src) + M.put_in_hands(I) + M << "You open the gift, revealing your new [I.name]! Just what you always wanted!" + qdel(src) + return + +/obj/item/weapon/xmasgift/medium + icon_state = "gift2" + item_state = "gift2" + w_class = 2 + +/obj/item/weapon/xmasgift/medium/attack_self(mob/M as mob) + var/gift_type = pick( + /obj/item/weapon/sord, + /obj/item/weapon/storage/belt/champion, + /obj/item/weapon/pickaxe/silver, + /obj/item/weapon/grenade/smokebomb, + /obj/item/weapon/contraband/poster, + /obj/item/weapon/book/manual/barman_recipes, + /obj/item/weapon/book/manual/chef_recipes, + /obj/item/weapon/banhammer, + /obj/item/toy/crossbow, + /obj/item/toy/katana, + /obj/item/toy/spinningtoy, + /obj/item/toy/sword, + /obj/item/weapon/reagent_containers/food/snacks/grown/ambrosiadeus, + /obj/item/weapon/reagent_containers/food/snacks/grown/ambrosiavulgaris, + /obj/item/device/paicard, + /obj/item/clothing/accessory/horrible, + /obj/item/weapon/storage/box/donkpockets, + /obj/item/weapon/reagent_containers/food/drinks/teapot, + /obj/item/device/flashlight/lantern, + /obj/item/clothing/mask/balaclava, + /obj/item/clothing/accessory/badge/old, + /obj/item/clothing/mask/gas/clown_hat, + /obj/item/clothing/mask/gas/mime, + /obj/item/clothing/shoes/galoshes, + /mob/living/simple_animal/lizard, + /mob/living/simple_animal/mouse/brown, + /mob/living/simple_animal/mouse/gray, + /mob/living/simple_animal/mouse/white, + /obj/item/weapon/xmasgift/small, + /obj/item/weapon/tank/jetpack/void, + /obj/item/weapon/xmasgift/large, + /obj/item/weapon/reagent_containers/food/snacks/pudding) + + var/atom/movable/I = new gift_type(M) + M.remove_from_mob(src) + M.put_in_hands(I) + M << "You open the gift, revealing your new [I.name]! Just what you always wanted!" + qdel(src) + return + +/obj/item/weapon/xmasgift/large + icon_state = "gift3" + item_state = "gift3" + w_class = 3 + +/obj/item/weapon/xmasgift/large/attack_self(mob/M as mob) + var/gift_type = pick( + /obj/item/weapon/inflatable_duck, + /obj/item/weapon/beach_ball, + /obj/item/clothing/under/redcoat, + /obj/item/clothing/under/syndicate/tracksuit, + /obj/item/clothing/under/rank/clown, + /obj/item/clothing/under/mime, + /mob/living/simple_animal/cat/kitten, + /mob/living/simple_animal/chick, + /mob/living/simple_animal/corgi/puppy, + /mob/living/simple_animal/mushroom, + /mob/living/carbon/human/monkey/nupnup, + /obj/item/weapon/xmasgift/medium, + /obj/item/weapon/tank/jetpack, + /obj/structure/plushie/drone, + /obj/structure/plushie/ivancarp,) + + var/atom/movable/I = new gift_type(M) + M.remove_from_mob(src) + M.put_in_hands(I) + M << "You open the gift, revealing your new [I.name]! Just what you always wanted!" + qdel(src) + return diff --git a/code/game/objects/items/weapons/traps.dm b/code/game/objects/items/weapons/traps.dm index ef09223b0d3..87fe3f34665 100644 --- a/code/game/objects/items/weapons/traps.dm +++ b/code/game/objects/items/weapons/traps.dm @@ -98,19 +98,19 @@ /obj/item/weapon/beartrap/Crossed(AM as mob|obj) if(deployed && isliving(AM)) var/mob/living/L = AM - if(L.m_intent == "run") - L.visible_message( - "[L] steps on \the [src].", - "You step on \the [src]!", - "You hear a loud metallic snap!" - ) - attack_mob(L) - if(!buckled_mob) - anchored = 0 - deployed = 0 - update_icon() + L.visible_message( + "[L] steps on \the [src].", + "You step on \the [src]!", + "You hear a loud metallic snap!" + ) + attack_mob(L) + if(!buckled_mob) + anchored = 0 + deployed = 0 + update_icon() ..() + /obj/item/weapon/beartrap/update_icon() ..() diff --git a/code/game/objects/structures/signs.dm b/code/game/objects/structures/signs.dm index 3ecfa6149df..9db922bf876 100644 --- a/code/game/objects/structures/signs.dm +++ b/code/game/objects/structures/signs.dm @@ -204,3 +204,17 @@ name = "\improper Escape Arm" desc = "A direction sign, pointing out which way the escape shuttle dock is." icon_state = "direction_evac" + +/obj/structure/sign/christmas/lights + name = "Christmas lights" + desc = "Flashy." + icon = 'icons/obj/christmas.dmi' + icon_state = "xmaslights" + layer = 5 + +/obj/structure/sign/christmas/wreath + name = "wreath" + desc = "Prickly and overrated." + icon = 'icons/obj/christmas.dmi' + icon_state = "doorwreath" + layer = 5 \ No newline at end of file diff --git a/code/game/turfs/unsimulated/floor.dm b/code/game/turfs/unsimulated/floor.dm index b2e78363346..a465edaf518 100644 --- a/code/game/turfs/unsimulated/floor.dm +++ b/code/game/turfs/unsimulated/floor.dm @@ -3,6 +3,12 @@ icon = 'icons/turf/floors.dmi' icon_state = "Floor3" +/turf/unsimulated/floor/xmas + name = "snow" + icon = 'icons/turf/snow.dmi' + icon_state = "snow" + footstep_sound = "grassstep" + /turf/unsimulated/mask name = "mask" icon = 'icons/turf/walls.dmi' diff --git a/code/modules/customitems/item_defines.dm b/code/modules/customitems/item_defines.dm index c9fa2b486e4..dac8991b79a 100644 --- a/code/modules/customitems/item_defines.dm +++ b/code/modules/customitems/item_defines.dm @@ -5,7 +5,7 @@ Add custom items to this file, their sprites into their own dmi. in the icons/ob All custom items with worn sprites must follow the contained sprite system: http://forums.aurorastation.org/viewtopic.php?f=23&t=6798 */ -/obj/item/clothing/accessory/fluff/antique_pocket_watch //Antique Pocket Watch - Eric Derringer - xelnagahunter - Done +/obj/item/clothing/accessory/fluff/antique_pocket_watch //Antique Pocket Watch - Eric Derringer - xelnagahunter name = "antique pocket watch" icon = 'icons/obj/custom_items/pocket_watch.dmi' icon_state = "pocket_watch_close" @@ -25,12 +25,12 @@ All custom items with worn sprites must follow the contained sprite system: http desc = "Inside the pocket watch, there is a collection of numbers, displaying '[worldtime2text()]'. On the inside of the lid, there is another sequence of numbers etched into the lid itself." -/obj/item/clothing/head/soft/sec/corp/fluff/mendoza_cap //Mendoza's cap - Chance Mendoza - loow - DONE +/obj/item/clothing/head/soft/sec/corp/fluff/mendoza_cap //Mendoza's cap - Chance Mendoza - loow name = "well-worn corporate security cap" desc = "A baseball hat in corporate colors.'C. Mendoza' is embroidered in fine print on the bill. On the underside of the cap, in dark ink, the phrase 'Gamble till you're Lucky!' is written in loopy cursive handwriting." -/obj/item/clothing/head/fluff/ziva_bandana //Ziva's Bandana - Ziva Ta'Kim - sierrakomodo - DONE +/obj/item/clothing/head/fluff/ziva_bandana //Ziva's Bandana - Ziva Ta'Kim - sierrakomodo name = "old bandana" desc = "An old orange-ish-yellow bandana. It has a few stains from engine grease, and the color has been dulled." icon = 'icons/obj/custom_items/motaki_bandana.dmi' @@ -39,7 +39,7 @@ All custom items with worn sprites must follow the contained sprite system: http contained_sprite = 1 -/obj/item/clothing/suit/armor/vest/fluff/zubari_jacket //Fancy Jacket - Zubari Akenzua - filthyfrankster - DONE +/obj/item/clothing/suit/armor/vest/fluff/zubari_jacket //Fancy Jacket - Zubari Akenzua - filthyfrankster name = "fancy jacket" desc = "A well tailored unathi styled armored jacket, fitted for one too." icon = 'icons/obj/custom_items/zubari_jacket.dmi' @@ -48,7 +48,7 @@ All custom items with worn sprites must follow the contained sprite system: http contained_sprite = 1 -/obj/item/clothing/suit/unathi/mantle/fluff/yinzr_mantle //Heirloom Unathi Mantle - Sslazhir Yinzr - alberyk - DONE +/obj/item/clothing/suit/unathi/mantle/fluff/yinzr_mantle //Heirloom Unathi Mantle - Sslazhir Yinzr - alberyk name = "heirloom unathi mantle" desc = "A withered mantle sewn from threshbeast's hides, the pauldrons that holds it on the shoulders seems to be the remains of some kind of old armor." icon = 'icons/obj/custom_items/yinzr_mantle.dmi' @@ -58,7 +58,7 @@ All custom items with worn sprites must follow the contained sprite system: http contained_sprite = 1 -/obj/item/clothing/glasses/fluff/nebula_glasses //chich eyewear - Roxy Wallace - nebulaflare - DONE +/obj/item/clothing/glasses/fluff/nebula_glasses //chich eyewear - Roxy Wallace - nebulaflare name = "chic eyewear" desc = "A stylish pair of glasses. They look custom made." icon = 'icons/obj/custom_items/nebula_glasses.dmi' @@ -87,7 +87,7 @@ All custom items with worn sprites must follow the contained sprite system: http add_fingerprint(user) user << "You slot the [W] back into its place in the frames of the [src]." -/obj/item/weapon/disk/fluff/nebula_chip //data chip - Roxy Wallace - nebulaflare - DONE +/obj/item/weapon/disk/fluff/nebula_chip //data chip - Roxy Wallace - nebulaflare name = "data chip" desc = "A small green chip." icon = 'icons/obj/custom_items/nebula_chip.dmi' @@ -95,7 +95,7 @@ All custom items with worn sprites must follow the contained sprite system: http w_class = 1 -/obj/item/clothing/gloves/swat/fluff/hawk_gloves //Sharpshooter gloves - Hawk Silverstone - nebulaflare - DONE +/obj/item/clothing/gloves/swat/fluff/hawk_gloves //Sharpshooter gloves - Hawk Silverstone - nebulaflare name = "\improper sharpshooter gloves" desc = "These tactical gloves are tailor made for a marksman." icon = 'icons/obj/custom_items/hawk_gloves.dmi' @@ -103,7 +103,7 @@ All custom items with worn sprites must follow the contained sprite system: http item_state = "swat_gl" -/obj/item/clothing/accessory/fluff/karima_datadrive //Data Drive Pendant - Kyyir'ry'avii Mo'Taki - nebulaflare - DONE +/obj/item/clothing/accessory/fluff/karima_datadrive //Data Drive Pendant - Kyyir'ry'avii Mo'Taki - nebulaflare name = "data drive" desc = "A small necklace, the pendant flips open to reveal a data drive." icon = 'icons/obj/custom_items/motaki_datadrive.dmi' @@ -112,7 +112,7 @@ All custom items with worn sprites must follow the contained sprite system: http slot_flags = SLOT_MASK -/obj/item/clothing/ears/skrell/fluff/dompesh_cloth // Skrell Purple Head Cloth - Shkor-Dyet Dom'Pesh - mofo1995 - DONE +/obj/item/clothing/ears/skrell/fluff/dompesh_cloth //Skrell Purple Head Cloth - Shkor-Dyet Dom'Pesh - mofo1995 name = "male skrell purple head cloth" desc = "A purple cloth band worn by male skrell around their head tails." icon = 'icons/obj/custom_items/dompesh_cloth.dmi' @@ -121,7 +121,7 @@ All custom items with worn sprites must follow the contained sprite system: http contained_sprite = 1 -/obj/item/weapon/fluff/kiara_altar // Pocket Altar - Kiara Branwen - nursiekitty - DONE +/obj/item/weapon/fluff/kiara_altar //Pocket Altar - Kiara Branwen - nursiekitty name = "pocket altar" desc = "A black tin box with a symbol painted over it. It shimmers in the light." icon = 'icons/obj/custom_items/kiara_altar.dmi' @@ -139,7 +139,7 @@ All custom items with worn sprites must follow the contained sprite system: http desc = "A black tin box with a symbol painted over it. It shimmers in the light." -/obj/item/clothing/head/det_hat/fluff/bell_hat //Brown Hat - Avery Bell - serveris6 - DONE +/obj/item/clothing/head/det_hat/fluff/bell_hat //Brown Hat - Avery Bell - serveris6 name = "brown hat" desc = "A worn mid 20th century brown hat. It seems to have aged very well." icon = 'icons/obj/custom_items/bell_hat.dmi' @@ -147,7 +147,7 @@ All custom items with worn sprites must follow the contained sprite system: http item_state = "bell_hat" contained_sprite = 1 -/obj/item/clothing/suit/storage/det_suit/fluff/bell_coat //Pinned Brown Coat - Avery Bell - serveris6 - DONE +/obj/item/clothing/suit/storage/det_suit/fluff/bell_coat //Pinned Brown Coat - Avery Bell - serveris6 name = "pinned brown coat" desc = "A worn mid 20th century brown trenchcoat. If you look closely at the breast, you can see an ID flap stitched into the leather - 'Avery Bell, Silhouette Co.'." icon = 'icons/obj/custom_items/bell_coat.dmi' @@ -156,12 +156,12 @@ All custom items with worn sprites must follow the contained sprite system: http contained_sprite = 1 -/obj/item/clothing/under/syndicate/tacticool/fluff/jaylor_turtleneck // Borderworlds Turtleneck - Jaylor Rameau - evilbrage - DONE +/obj/item/clothing/under/syndicate/tacticool/fluff/jaylor_turtleneck //Borderworlds Turtleneck - Jaylor Rameau - evilbrage name = "borderworlds turtleneck" desc = "A loose-fitting turtleneck, common among borderworld pilots and criminals. One criminal in particular is missing his, apparently." -/obj/item/weapon/melee/fluff/tina_knife // Consecrated Athame - Tina Kaekel - tainavaa - DONE +/obj/item/weapon/melee/fluff/tina_knife //Consecrated Athame - Tina Kaekel - tainavaa name = "consecrated athame" desc = "An athame used in occult rituals. The double-edged dagger is dull. The handle is black with a pink/white occult design strewn about it, and 'Tina' is inscribed into it in decorated letters." icon = 'icons/obj/custom_items/tina_knife.dmi' @@ -172,7 +172,7 @@ All custom items with worn sprites must follow the contained sprite system: http force = 2 -/obj/item/device/kit/paint/ripley/fluff/zairjah_kit // Hephaestus Industrial Exosuit MK III Customization Kit - Zairjah - alberyk - DONE +/obj/item/device/kit/paint/ripley/fluff/zairjah_kit //Hephaestus Industrial Exosuit MK III Customization Kit - Zairjah - alberyk name = "Hephaestus Industrial Exosuit MK III customization kit" desc = "A ripley APLU model manufactured by Hephaestus industries, a common sight in New Gibson nowadays. It shines with chrome painting and a fancy reinforced glass cockpit." new_name = "Hephaestus Industrial Exosuit MK III" @@ -181,7 +181,7 @@ All custom items with worn sprites must follow the contained sprite system: http allowed_types = list("ripley","firefighter") -/obj/item/weapon/cane/fluff/usiki_cane // Inscribed Silver-handled Cane - Usiki Guwan - fireandglory - DONE +/obj/item/weapon/cane/fluff/usiki_cane //Inscribed Silver-handled Cane - Usiki Guwan - fireandglory name = "inscribed silver-handled cane" desc = "This silver-handled cane has letters carved into the sides." icon = 'icons/obj/custom_items/usiki_cane.dmi' @@ -196,7 +196,7 @@ All custom items with worn sprites must follow the contained sprite system: http user << "This cane has the words 'A new and better life' carved into the side, the other side has some unreadable carvings." -/obj/item/clothing/gloves/black/fluff/kathleen_glove // Black Left Glove - Kathleen Bullard - valky_walky2 - DONE +/obj/item/clothing/gloves/black/fluff/kathleen_glove //Black Left Glove - Kathleen Mistral - valkywalky2 name = "black left glove" desc = "A pretty normal looking glove to be worn on the left hand." icon = 'icons/obj/custom_items/kathleen_glove.dmi' @@ -205,7 +205,7 @@ All custom items with worn sprites must follow the contained sprite system: http contained_sprite = 1 -/obj/structure/bed/chair/wheelchair/fluff/nomak_scooter // Mobility Scooter - Dubaku Nomak - demonofthefall - DONE +/obj/structure/bed/chair/wheelchair/fluff/nomak_scooter //Mobility Scooter - Dubaku Nomak - demonofthefall name = "mobility scooter" desc = "A battery powered scooters designed to carry fatties." icon = 'icons/obj/custom_items/nomak_scooter.dmi' @@ -221,14 +221,14 @@ All custom items with worn sprites must follow the contained sprite system: http buckled_mob.set_dir(dir) -/obj/item/weapon/coin/fluff/yoiko_coin // Sobriety Chip - Yoiko Ali - raineko - DONE +/obj/item/weapon/coin/fluff/yoiko_coin //Sobriety Chip - Yurick Ali - raineko name = "sobriety chip" - desc = "A red coin, made from plastic. A triangle is engraved, surrounding it is the words: 'TO THINE OWN SELF BE TRUE'." + desc = "A red coin, made from plastic. A triangle is engraved, surrounding it is the words: \"TO THINE OWN SELF BE TRUE\"." icon = 'icons/obj/custom_items/yoiko_coin.dmi' icon_state = "yoiko_coin" //thanks fireandglory for the sprites -/obj/item/clothing/suit/unathi/mantle/fluff/karnaikai_wrappings //Unathi Wrappings - Azeazekal Karnaikai - canon35 - DONE +/obj/item/clothing/suit/unathi/mantle/fluff/karnaikai_wrappings //Unathi Wrappings - Azeazekal Karnaikai - canon35 name = "unathi wrappings" desc = "Stitched together clothing with bandages covering them, looks tailored for an unathi." icon = 'icons/obj/custom_items/karnaikai_wrappings.dmi' @@ -240,7 +240,7 @@ All custom items with worn sprites must follow the contained sprite system: http contained_sprite = 1 -/obj/item/clothing/mask/gas/fluff/karnaikai_mask //Unathi head wrappings - Azeazekal Karnaikai - canon35 - DONE +/obj/item/clothing/mask/gas/fluff/karnaikai_mask //Unathi head wrappings - Azeazekal Karnaikai - canon35 name = "unathi head wrappings" desc = "A bunch of stitched together bandages with a fibreglass breath mask on it, openings for the eyes. Looks tailored for an unathi." icon = 'icons/obj/custom_items/karnaikai_mask.dmi' @@ -250,21 +250,21 @@ All custom items with worn sprites must follow the contained sprite system: http contained_sprite = 1 -/obj/item/weapon/contraband/poster/fluff/conservan_poster //ATLAS poster - Conservan Xullie - conservatron - DONE +/obj/item/weapon/contraband/poster/fluff/conservan_poster //ATLAS poster - Conservan Xullie - conservatron name = "ATLAS poster" /obj/item/weapon/contraband/poster/fluff/conservan_poster/New() serial_number = 59 -/obj/item/weapon/flame/lighter/zippo/fluff/locke_zippo // Fire Extinguisher Zippo - Jacob Locke - completegarbage - DONE +/obj/item/weapon/flame/lighter/zippo/fluff/locke_zippo //Fire Extinguisher Zippo - Jacob Locke - completegarbage name = "fire extinguisher lighter" desc = "Most fire extinguishers on the station are way too heavy. This one's a little lighter." icon = 'icons/obj/custom_items/locke_zippo.dmi' icon_state = "locke_zippo" -/obj/item/weapon/clipboard/fluff/zakiya_sketchpad // Sketchpad - Zakiya Ahmad - sierrakomodo - DONE +/obj/item/weapon/clipboard/fluff/zakiya_sketchpad //Sketchpad - Zakiya Ahmad - sierrakomodo name = "sketchpad" desc = "A simple sketchpad, about the size of a regular sheet of paper." icon = 'icons/obj/custom_items/zakiya_sketchpad.dmi' //thanks superballs for the sprites @@ -290,14 +290,14 @@ All custom items with worn sprites must follow the contained sprite system: http icon_state = "zakiya_sketchpad" return -/obj/item/weapon/pen/fluff/zakiya_pen // Sketching pencil - Zakiya Ahmad - sierrakomodo - DONE +/obj/item/weapon/pen/fluff/zakiya_pen //Sketching pencil - Zakiya Ahmad - sierrakomodo name = "sketching pencil" desc = "A graphite sketching pencil." icon = 'icons/obj/custom_items/zakiya_pen.dmi' icon_state = "zakiya_pen" -/obj/item/weapon/melee/fluff/zah_mandible // Broken Vaurca Mandible - Ka'Akaix'Zah Void - sleepywolf - DONE +/obj/item/weapon/melee/fluff/zah_mandible //Broken Vaurca Mandible - Ka'Akaix'Zah Zo'ra - sleepywolf name = "broken vaurca mandible" desc = "A black, four inch long piece of a Vaurca mandible. It seems dulled, and looks like it was shot off." icon = 'icons/obj/custom_items/zah_mandible.dmi' @@ -307,7 +307,7 @@ All custom items with worn sprites must follow the contained sprite system: http force = 2 -/obj/item/clothing/suit/chaplain_hoodie/fluff/nioathi_hoodie //Shaman Hoodie - Fereydoun Nioathi - jackboot - DONE +/obj/item/clothing/suit/chaplain_hoodie/fluff/nioathi_hoodie //Shaman Hoodie - Fereydoun Nioathi - jackboot name = "shaman hoodie" desc = "A slightly faded robe. It's worn by some Unathi shamans." icon = 'icons/obj/custom_items/nioathi_hoodie.dmi' @@ -335,7 +335,7 @@ All custom items with worn sprites must follow the contained sprite system: http ..() -/obj/item/weapon/fluff/moon_baton //Tiger Claw - Zander Moon - omnivac - DONE +/obj/item/weapon/fluff/moon_baton //Tiger Claw - Zander Moon - omnivac name = "tiger claw" desc = "A small cerimonial energy dagger given to Golden Tigers." icon = 'icons/obj/custom_items/moon_baton.dmi' @@ -366,7 +366,7 @@ All custom items with worn sprites must follow the contained sprite system: http user.regenerate_icons() -/obj/item/clothing/suit/armor/vest/fabian_coat //NT APF Armor - Fabian Goellstein - mirkoloio - DONE +/obj/item/clothing/suit/armor/vest/fabian_coat //NT APF Armor - Fabian Goellstein - mirkoloio name = "NT APF armor" desc = "This is a NT Asset Protection Force Armor, it is fashioned as a jacket in NT Security Colors. The nameplate carries the Name 'Goellstein'." icon = 'icons/obj/custom_items/fabian_coat.dmi' @@ -397,12 +397,12 @@ All custom items with worn sprites must follow the contained sprite system: http usr.update_inv_wear_suit() -/obj/item/clothing/head/beret/centcom/officer/fluff/fabian_beret //Worn Security Beret - Fabian Goellstein - mirkoloio - DONE +/obj/item/clothing/head/beret/centcom/officer/fluff/fabian_beret //Worn Security Beret - Fabian Goellstein - mirkoloio name = "worn security beret" desc = "A NT Asset Protection Force Beret. It has the NT APF insignia on it as well as the Name 'Goellstein' inside." -/obj/item/clothing/accessory/armband/fluff/vittorio_armband //ATLAS Armband - Vittorio Giurifiglio - tytostyris - DONE +/obj/item/clothing/accessory/armband/fluff/vittorio_armband //ATLAS Armband - Vittorio Giurifiglio - tytostyris name = "Atlas armband" desc = "This is an atlas armband showing anyone who sees this person, as a member of the Political party Atlas." icon = 'icons/obj/custom_items/vittorio_armband.dmi' @@ -410,7 +410,7 @@ All custom items with worn sprites must follow the contained sprite system: http item_state = "vittorio_armband" contained_sprite = 1 -/obj/item/clothing/head/fluff/vittorio_fez //Black Fez - Vittorio Giurifiglio - tytostyris - DONE +/obj/item/clothing/head/fluff/vittorio_fez //Black Fez - Vittorio Giurifiglio - tytostyris name = "black fez" desc = "It is a black fez, it bears an Emblem of the Astronomical symbol of Earth, It also has some nice tassels." icon = 'icons/obj/custom_items/vittorio_fez.dmi' @@ -419,7 +419,7 @@ All custom items with worn sprites must follow the contained sprite system: http contained_sprite = 1 -/obj/item/clothing/suit/fluff/centurion_cloak //Paludamentum - Centurion - cakeisossim - DONE +/obj/item/clothing/suit/fluff/centurion_cloak //Paludamentum - Centurion - cakeisossim name = "paludamentum" desc = "A cloak-like piece of silky, red fabric. Fashioned at one point where the shoulder would be with a golden pin." icon = 'icons/obj/custom_items/centurion_cloak.dmi' @@ -429,7 +429,7 @@ All custom items with worn sprites must follow the contained sprite system: http contained_sprite = 1 -/obj/item/clothing/ears/bandanna/fluff/kir_bandanna// Kir's Bandanna - Kir Iziki - araskael - DONE +/obj/item/clothing/ears/bandanna/fluff/kir_bandanna //Kir's Bandanna - Kir Iziki - araskael name = "purple bandanna" desc = "A worn and faded purple bandanna with a knotted, dragon-like design on it." icon = 'icons/obj/custom_items/kir_bandanna.dmi' @@ -438,9 +438,9 @@ All custom items with worn sprites must follow the contained sprite system: http contained_sprite = 1 -/obj/item/clothing/suit/storage/toggle/bomber/fluff/ash_jacket //Hand-me-down Bomber Jacket - superballs - Ash LaCroix - DONE +/obj/item/clothing/suit/storage/toggle/bomber/fluff/ash_jacket //Hand-me-down Bomber Jacket - Ash LaCroix - superballs name = "hand-me-down bomber jacket" - desc = "A custom tailored bomber jacket that seems to have been through some action. A silver badge is pinned to it, along with a black and blue strip covering it halfway. The badge reads, 'Christopher LaCroix, Special Agent, Mendell City, E.O.W. 10-7-38, 284'" + desc = "A custom tailored bomber jacket that seems to have been through some action. A silver badge is pinned to it, along with a black and blue strip covering it halfway. The badge reads, \"Christopher LaCroix, Special Agent, Mendell City, E.O.W. 10-7-38, 284\"" icon = 'icons/obj/custom_items/ash_jacket.dmi' icon_state = "ash_jacket" item_state = "ash_jacket" @@ -449,9 +449,9 @@ All custom items with worn sprites must follow the contained sprite system: http contained_sprite = 1 -/obj/item/clothing/accessory/badge/holo/cord/fluff/dylan_tags //Dog Tags - Dylan Sutton - sircatnip - DONE +/obj/item/clothing/accessory/badge/holo/cord/fluff/dylan_tags //Dog Tags - Dylan Sutton - sircatnip name = "dog tags" - desc = "Some black dog tags, engraved on them is the following: Wright, Dylan L, O POS, Pacific Union Special Forces." + desc = "Some black dog tags, engraved on them is the following: \"Wright, Dylan L, O POS, Pacific Union Special Forces.\"" icon = 'icons/obj/custom_items/dylan_tags.dmi' icon_state = "dylan_tags" item_state = "dylan_tags" @@ -460,7 +460,7 @@ All custom items with worn sprites must follow the contained sprite system: http contained_sprite = 1 -/obj/item/clothing/ears/fluff/rico_stripes //Racing Stripes - Ricochet - nebulaflare - DONE +/obj/item/clothing/ears/fluff/rico_stripes //Racing Stripes - Ricochet - nebulaflare name = "racing stripes" desc = "A pair of fancy racing stripes." icon = 'icons/obj/custom_items/rico_stripes.dmi' @@ -472,23 +472,24 @@ All custom items with worn sprites must follow the contained sprite system: http species_restricted = list("Machine") -/obj/item/weapon/reagent_containers/food/drinks/flask/fluff/barcia_flask //First Shot - Gabriel Barcia - mrgabol100 - DONE +/obj/item/weapon/reagent_containers/food/drinks/flask/fluff/barcia_flask //First Shot - Gabriel Barcia - mrgabol100 name = "first shot" - desc = "A flask. Smells of absinthe, maybe vodka. The bottom left corner has a silver bar. The bottom is engraved, it reads 'The First Shot'." + desc = "A flask. Smells of absinthe, maybe vodka. The bottom left corner has a silver bar. \"The bottom is engraved, it reads 'The First Shot\"." icon = 'icons/obj/custom_items/barcia_flask.dmi' icon_state = "barcia_flask" -/obj/item/clothing/gloves/fluff/stone_ring //Thunder Dome Pendant Ring - Jerimiah Stone - dominicthemafiaso - DONE +/obj/item/clothing/gloves/fluff/stone_ring //Thunder Dome Pendant Ring - Jerimiah Stone - dominicthemafiaso name = "thunder dome pendant ring" desc = "It appears to be a Collectors edition Thunder dome Pendant ring from the IGTDL's show rumble in the red planet in 2444. It has a decorative diamond center with a image of the Intergalactic belt in the center." icon = 'icons/obj/custom_items/stone_ring.dmi' icon_state = "stone_ring" item_state = "stone_ring" contained_sprite = 1 + clipped = 1 + species_restricted = null - -/obj/item/clothing/under/dress/fluff/sayyidah_dress //Traditional Jumper Dress - Sayyidah Al-Kateb - alberyk - DONE +/obj/item/clothing/under/dress/fluff/sayyidah_dress //Traditional Jumper Dress - Sayyidah Al-Kateb - alberyk name = "traditional jumper dress" desc = "A light summer-time dress, decorated neatly with black and silver colors, it seems to be rather old." icon = 'icons/obj/custom_items/sayyidah_dress.dmi' //special thanks to Coalf for the sprites @@ -497,7 +498,7 @@ All custom items with worn sprites must follow the contained sprite system: http contained_sprite = 1 -/obj/item/clothing/suit/storage/fluff/vittorio_jacket //Atlas Overcoat - Vittorio Giurifiglio - tytostyris - DONE +/obj/item/clothing/suit/storage/fluff/vittorio_jacket //Atlas Overcoat - Vittorio Giurifiglio - tytostyris name = "atlas overcoat" desc = "A classy black militaristic uniform, which is adorned with a sash and an eagle." icon = 'icons/obj/custom_items/vittorio_jacket.dmi' @@ -506,9 +507,9 @@ All custom items with worn sprites must follow the contained sprite system: http contained_sprite = 1 -/obj/item/clothing/suit/storage/toggle/labcoat/fluff/helmut_labcoat //CERN Labcoat - Helmut Kronigernischultz - pyrociraptor - DONE +/obj/item/clothing/suit/storage/toggle/labcoat/fluff/helmut_labcoat //CERN Labcoat - Helmut Kronigernischultz - pyrociraptor name = "CERN labcoat" - desc = "A Labcoat with a blue pocket and blue collar. On the pocket, you can read 'C.E.R.N.'" + desc = "A Labcoat with a blue pocket and blue collar. On the pocket, you can read \"C.E.R.N.\"." icon = 'icons/obj/custom_items/helmut_labcoat.dmi' icon_state = "helmut_labcoat" item_state = "helmut_labcoat" @@ -517,7 +518,7 @@ All custom items with worn sprites must follow the contained sprite system: http contained_sprite = 1 -/obj/item/clothing/shoes/jackboots/unathi/fluff/yinzr_sandals //Marching Sandals - Sslazhir Yinzr - alberyk - DONE +/obj/item/clothing/shoes/jackboots/unathi/fluff/yinzr_sandals //Marching Sandals - Sslazhir Yinzr - alberyk name = "marching sandals" desc = "A pair of sturdy marching sandals made of layers of leather and with a reinforced sole, they are also rather big." icon = 'icons/obj/custom_items/yinzr_sandals.dmi' @@ -526,7 +527,7 @@ All custom items with worn sprites must follow the contained sprite system: http contained_sprite = 1 -/obj/item/clothing/accessory/fluff/laikov_broach //Jeweled Broach - Aji'Rah Laikov - nebulaflare - DONE +/obj/item/clothing/accessory/fluff/laikov_broach //Jeweled Broach - Aji'Rah Laikov - nebulaflare name = "jeweled broach" desc = "A jeweled broach, inlaid with semi-precious gems. The clasp appears to have been replaced." icon = 'icons/obj/custom_items/laikov_broach.dmi' @@ -543,15 +544,15 @@ All custom items with worn sprites must follow the contained sprite system: http user.visible_message("[user] thrust the [src.name] into [M]'s face.") -/obj/item/weapon/fluff/akela_photo // Akela's Family Photo - Akela Ha'kim - moltenkore - DONE +/obj/item/weapon/fluff/akela_photo // Akela's Family Photo - Akela Ha'kim - moltenkore name = "family photo" - desc = "You see on the photo a tajaran couple holding a small kit in their arms, while looking very happy. On the back it is written; 'Nasir, Akela and Ishka' with a little gold mark that reads: 'Two months'." + desc = "You see on the photo a tajaran couple holding a small kit in their arms, while looking very happy. On the back it is written; \"Nasir, Akela and Ishka\", with a little gold mark that reads: \"Two months\"." icon = 'icons/obj/custom_items/akela_photo.dmi' icon_state = "akela_photo" w_class = 2 -/obj/item/weapon/implant/fluff/ziva_implant //Heart Condition - Ziva Ta'Kim - sierrakomodo - DONE +/obj/item/weapon/implant/fluff/ziva_implant //Heart Condition - Ziva Ta'Kim - sierrakomodo name = "heart monitor" desc = "A small machine to watch upon broken hearts." @@ -582,9 +583,9 @@ All custom items with worn sprites must follow the contained sprite system: http playsound(user, 'sound/effects/Heart Beat.ogg', 20, 1) -/obj/item/clothing/accessory/badge/fluff/caleb_badge //Worn Badge - Caleb Greene - notmegatron - DONE +/obj/item/clothing/accessory/badge/fluff/caleb_badge //Worn Badge - Caleb Greene - notmegatron name = "worn badge" - desc = "A simple gold badge denoting the wearer as Head of Security. It is worn and dulled with age, but the name, Caleb Greene, is still clearly legible." + desc = "A simple gold badge denoting the wearer as Head of Security. It is worn and dulled with age, but the name, \"Caleb Greene\", is still clearly legible." icon_state = "badge" icon = 'icons/obj/custom_items/caleb_badge.dmi' item_state = "caleb_badge" @@ -594,21 +595,21 @@ All custom items with worn sprites must follow the contained sprite system: http contained_sprite = 1 -/obj/item/fluff/messa_pressing //Pressing of Messa's Tears - Poslan Kur'yer-Isra - jboy2000000 - DONE +/obj/item/fluff/messa_pressing //Pressing of Messa's Tears - Poslan Kur'yer-Isra - jboy2000000 name = "pressing of Messa's tears" desc = "As Messa looked at the pain and death wrought on the world she had given life, she cried, and from her tears sprouted these leaves." icon = 'icons/obj/custom_items/cat_religion.dmi' icon_state = "messa" w_class = 2 -/obj/item/fluff/srendarr_pressing //Pressing of S'Rendarr's Hand - Poslan Kur'yer-Isra - jboy2000000 - DONE +/obj/item/fluff/srendarr_pressing //Pressing of S'Rendarr's Hand - Poslan Kur'yer-Isra - jboy2000000 name = "pressing of S'Rendarr's hand" - desc = "As S'Rendarr watched her sister cry, she felt rage never known to her before. Her fists clashed with those who upset her sister, and from their blood came these." + desc = "As S'Rendarr watched his sister cry, he felt rage never known to him before. His fists clashed with those who upset his sister, and from their blood came these." icon = 'icons/obj/custom_items/cat_religion.dmi' icon_state = "srendarr" w_class = 2 -/obj/item/clothing/suit/chaplain_hoodie/fluff/poslan_jacket //Twin Suns Throw-over - Poslan Kur'yer-Isra - jboy2000000 - DONE +/obj/item/clothing/suit/chaplain_hoodie/fluff/poslan_jacket //Twin Suns Throw-over - Poslan Kur'yer-Isra - jboy2000000 name = "twin suns throw-over" desc = "A light black jacket, on one side of its breast is the design of a yellow sun, and on the other side there is a smaller blue sun." icon = 'icons/obj/custom_items/cat_religion.dmi' @@ -617,7 +618,7 @@ All custom items with worn sprites must follow the contained sprite system: http contained_sprite = 1 -/obj/item/sign/fluff/alexis_degree //Xenonuerology Doctorate - Alexis Shaw - Tenenza - DONE +/obj/item/sign/fluff/alexis_degree //Xenonuerology Doctorate - Alexis Shaw - Tenenza name = "xenonuerology degree" desc = "Certification for a doctorate in Xenonuerology, made out to Alexis Shaw by the St. Grahelm University of Biesel, authenticated by watermarking." icon_state = "alexis_degree" @@ -625,7 +626,7 @@ All custom items with worn sprites must follow the contained sprite system: http w_class = 2 -/obj/item/clothing/mask/fluff/rur_collar //Tagging Collar - R.U.R - coalf - DONE +/obj/item/clothing/mask/fluff/rur_collar //Tagging Collar - R.U.R - coalf name = "tagging collar" desc = "A steel tagging collar, a giant golden D is imprinted on the front." icon = 'icons/obj/custom_items/rur_collar.dmi' @@ -649,7 +650,7 @@ All custom items with worn sprites must follow the contained sprite system: http return -/obj/item/clothing/mask/bluescarf/fluff/simon_scarf //Fancy Scarf - Simon Greene - icydew - DONE +/obj/item/clothing/mask/bluescarf/fluff/simon_scarf //Fancy Scarf - Simon Greene - icydew name = "fancy scarf" desc = "A very smooth, dark blue scarf with a golden trim. It feels really new and clean." icon = 'icons/obj/custom_items/simon_scarf.dmi' @@ -658,14 +659,117 @@ All custom items with worn sprites must follow the contained sprite system: http contained_sprite = 1 -/obj/item/clothing/head/soft/sec/corp/fluff/karson_cap //Karson's Cap - Eric Karson - dronzthewolf - DONE +/obj/item/clothing/head/soft/sec/corp/fluff/karson_cap //Karson's Cap - Eric Karson - dronzthewolf name = "well-worn corporate security cap" desc = "A well-worn corporate security cap. The name Karson is written on the underside of the brim, it is well-worn at the point where it has shaped to the owner's head." -/obj/item/sign/fluff/triaka_atimono //Framed Zatimono - Azkuyua Triaka - jackboot - DONE +/obj/item/sign/fluff/triaka_atimono //Framed Zatimono - Azkuyua Triaka - jackboot name = "framed zatimono" desc = "A framed Zatimono, a Unathi standard worn into battle similar to an old-Earth Sashimono. This one is slightly faded." icon_state = "triaka_atimono" sign_state = "triaka_atimono" w_class = 2 + + +/obj/item/fluff/cac_picture //Photo of a spider and a robot - CAC - fireandglory + name = "photo of a spider and a robot" + desc = "It is a photo of a cyan IPC holding a thick fuzzy spider of the size of a football." + icon = 'icons/obj/custom_items/cac_picture.dmi' + icon_state = "cac_picture" + w_class = 2 + slot_flags = SLOT_EARS + + +/obj/item/weapon/coin/fluff/raymond_coin //Engraved Coin - Raymond Hawkins - aboshehab + name = "engraved coin" + desc = "A coin of light and bright with one side having an engraving of a greek Lamba sign, and on the back the initials of R.H. are engraved." + icon = 'icons/obj/custom_items/raymond_coin.dmi' + icon_state = "raymond_coin" + + +/obj/item/clothing/under/fluff/zohjar_uniform //Republic Noble Clothing - Zohjar Rasateir - lordraven001 + name = "republic noble clothing" + desc = "A sophisticated white undersuit, it looks worn and ancient. The fabrics is excellently sewn and soft. It resembles a traditional tajaran nobleman suit." + icon = 'icons/obj/custom_items/zohjar_clothing.dmi' + icon_state = "zohjar_uniform" + item_state = "zohjar_uniform" + contained_sprite = 1 + +/obj/item/clothing/suit/storage/toggle/labcoat/fluff/zohjar_jacket //People's Republic Medical Officer Coat - Zohjar Rasateir - lordraven001 + name = "people's republic medical officer coat" + desc = "A sterile insulated coat made of leather stitched over fur. It has two gold lapels indicating Officer rank. The a white armband with a scarlet line in the center indicates that the person wearing this coat is medically trained." + icon = 'icons/obj/custom_items/zohjar_clothing.dmi' + icon_state = "zohjar_jacket" + item_state = "zohjar_jacket" + icon_open = "zohjar_jacket_open" + icon_closed = "zohjar_jacket" + contained_sprite = 1 + + +/obj/item/clothing/suit/storage/fluff/maksim_coat //Tajaran Naval Officer's Coat - Maksim Vasilyev - aimlessanalyst + name = "tajaran naval officer coat" + desc = "A thick wool coat from Adhomai, calling back to days long past." + icon = 'icons/obj/custom_items/maksim_coat.dmi' + icon_state = "maksim_coat" + item_state = "maksim_coat" + contained_sprite = 1 + + +/obj/item/sign/fluff/iskanz_atimono //Framed Zatimono - Iskanz Sal'Dans - zundy + name = "framed zatimono" + desc = "A framed Zatimono, a Unathi standard worn into battle similar to an old-Earth Sashimono. This one seems well maintained and carries Sk'akh Warrior Priest markings and litanies." + icon_state = "iskanz_atimono" + sign_state = "iskanz_atimono" + w_class = 2 + + +/obj/item/clothing/accessory/fluff/zahra_pin //Indigo remembrance pin - Zahra Karimi - synnono + name = "Indigo remembrance pin" + desc = "A small metal pin, worked into the likeness of an indigo iris blossom." + icon = 'icons/obj/custom_items/zahra_pin.dmi' + icon_state = "zahra_pin" + item_state = "zahra_pin" + contained_sprite = 1 + + +/obj/item/clothing/accessory/armband/fluff/karl_armband //Medizinercorps armband - Karl Jonson - arrow768 + name = "medizinercorps armband" + desc = "A plain black armband with the golden Medizinercorps logo on it." + icon = 'icons/obj/custom_items/karl_armband.dmi' + icon_state = "karl_armband" + item_state = "karl_armband" + contained_sprite = 1 + + +/obj/item/weapon/melee/fluff/rook_whip //Ceremonial Whip - Rook Jameson - hivefleetchicken + name = "ceremonial whip" + desc = "A traditional cat o'nine tails whip made of jet black leather and embroidered with a few golden touches, made on Earth. It looks ceremoniously robust." + icon = 'icons/obj/custom_items/rook_whip.dmi' + icon_state = "rook_whip" + item_state = "rook_whip" + slot_flags = SLOT_BELT + contained_sprite = 1 + w_class = 3 + force = 2 + attack_verb = list("flogged", "whipped", "lashed", "disciplined") + + +/obj/item/clothing/suit/storage/toggle/labcoat/fluff/lilith_coat //Black Labcoat - LiLITH - ladyofravens + name = "black labcoat" + desc = "A sleek black labcoat made from durable synthetics. A tag inside the collar reads \"Property of LiLITH\" in red block letters." + icon = 'icons/obj/custom_items/lilith_coat.dmi' + icon_state = "lilith_coat" + item_state = "lilith_coat" + icon_open = "lilith_coat_open" + icon_closed = "lilith_coat" + contained_sprite = 1 + + +/obj/item/clothing/head/fluff/sayyidah_tiara //Jeweled Tiara - Sayyidah Al-Kateb - alberyk + name = "jeweled tiara" + desc = "A headdress in the shape of a tiara, it is adorned by not so valuable jewels and spots a translucid veil on the back. There is room for pointy ears in the sides of the piece, as it was molded for a tajara." + icon = 'icons/obj/custom_items/sayyidah_dress.dmi' //special thanks to TheGreatJorge for the sprites + icon_state = "sayyidah_tiara" + item_state = "sayyidah_tiara" + contained_sprite = 1 diff --git a/code/modules/mob/living/carbon/human/npcs.dm b/code/modules/mob/living/carbon/human/npcs.dm index b586a197c93..949083e1095 100644 --- a/code/modules/mob/living/carbon/human/npcs.dm +++ b/code/modules/mob/living/carbon/human/npcs.dm @@ -10,4 +10,21 @@ spawn(1) name = "Pun Pun" real_name = name - w_uniform = new /obj/item/clothing/under/punpun(src) \ No newline at end of file + if(prob(10)) + w_uniform = new /obj/item/clothing/under/nupnup(src) + else + w_uniform = new /obj/item/clothing/under/punpun(src) + +/obj/item/clothing/under/nupnup + name = "christmas uniform" + desc = "The uniform of Nup Nup, the Christmas monkey." + icon_state = "punpun" + worn_state = "nupnup" + species_restricted = list("Monkey") + +/mob/living/carbon/human/monkey/nupnup/New() + ..() + spawn(1) + name = "Winston, the Christmas Monkey" + real_name = name + w_uniform = new /obj/item/clothing/under/nupnup(src) \ No newline at end of file diff --git a/code/modules/mob/living/carbon/viruses.dm b/code/modules/mob/living/carbon/viruses.dm index fed6d59e438..1d454f3b0e5 100644 --- a/code/modules/mob/living/carbon/viruses.dm +++ b/code/modules/mob/living/carbon/viruses.dm @@ -13,19 +13,19 @@ for(var/obj/effect/decal/cleanable/O in view(1,src)) if(istype(O,/obj/effect/decal/cleanable/blood)) var/obj/effect/decal/cleanable/blood/B = O - if(B.virus2.len) + if(B.virus2 && B.virus2.len) for (var/ID in B.virus2) var/datum/disease2/disease/V = B.virus2[ID] infect_virus2(src,V) else if(istype(O,/obj/effect/decal/cleanable/mucus)) var/obj/effect/decal/cleanable/mucus/M = O - if(M.virus2.len) + if(M.virus2 && M.virus2.len) for (var/ID in M.virus2) var/datum/disease2/disease/V = M.virus2[ID] infect_virus2(src,V) - if(virus2.len) + if(virus2 && virus2.len) for (var/ID in virus2) var/datum/disease2/disease/V = virus2[ID] if(isnull(V)) // Trying to figure out a runtime error that keeps repeating @@ -40,4 +40,4 @@ if(common_antibodies.len) V.dead = 1 - return \ No newline at end of file + return diff --git a/code/modules/projectiles/ammunition/boxes.dm b/code/modules/projectiles/ammunition/boxes.dm index 4a7c58c90a0..130c58b7f0c 100644 --- a/code/modules/projectiles/ammunition/boxes.dm +++ b/code/modules/projectiles/ammunition/boxes.dm @@ -291,7 +291,7 @@ /obj/item/ammo_magazine/shotgun/shell name = "ammunition box (shell)" - icon_state = "llethalslug_box" + icon_state = "lethalslug_box" ammo_type = /obj/item/ammo_casing/shotgun/pellet max_ammo = 8 diff --git a/code/modules/reagents/reagent_containers/food/snacks.dm b/code/modules/reagents/reagent_containers/food/snacks.dm index 4186c997037..882a9b0a97d 100644 --- a/code/modules/reagents/reagent_containers/food/snacks.dm +++ b/code/modules/reagents/reagent_containers/food/snacks.dm @@ -2050,6 +2050,18 @@ reagents.add_reagent("nutriment", 4) bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/pudding + name = "Figgy pudding" + icon_state = "pudding" + desc = "Bring it to me." + trash = /obj/item/trash/plate + filling_color = "#FFFEE0" + + New() + ..() + reagents.add_reagent("nutriment", 10) + bitesize = 2 + /obj/item/weapon/reagent_containers/food/snacks/pastatomato name = "Spaghetti" desc = "Spaghetti and crushed tomatoes. Just like your abusive father used to make!" diff --git a/code/modules/research/message_server.dm b/code/modules/research/message_server.dm index 6259d3c8919..3db5b1f5257 100644 --- a/code/modules/research/message_server.dm +++ b/code/modules/research/message_server.dm @@ -255,6 +255,8 @@ var/obj/machinery/blackbox_recorder/blackbox blackbox = src /obj/machinery/blackbox_recorder/Destroy() + feedback_set_details("blackbox_destroyed","true") + feedback_set("blackbox_destroyed",1) var/turf/T = locate(1,1,2) if(T) blackbox = null @@ -328,20 +330,11 @@ var/obj/machinery/blackbox_recorder/blackbox round_end_data_gathering() //round_end time logging and some other data processing establish_db_connection(dbcon) - if(!dbcon.IsConnected()) return - var/round_id - - var/DBQuery/query = dbcon.NewQuery("SELECT MAX(round_id) AS round_id FROM ss13_feedback") - query.Execute() - while(query.NextRow()) - round_id = query.item[1] - - if(!isnum(round_id)) - round_id = text2num(round_id) - round_id++ + if(!dbcon.IsConnected()) + return for(var/datum/feedback_variable/FV in feedback) - var/sql = "INSERT INTO ss13_feedback VALUES (null, Now(), [round_id], \"[FV.get_variable()]\", [FV.get_value()], \"[FV.get_details()]\")" + var/sql = "INSERT INTO ss13_feedback VALUES (null, Now(), \"[game_id]\", \"[FV.get_variable()]\", [FV.get_value()], \"[FV.get_details()]\")" var/DBQuery/query_insert = dbcon.NewQuery(sql) query_insert.Execute() diff --git a/html/changelog.html b/html/changelog.html index 4a5912a659d..efe2eddaf1d 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -56,6 +56,18 @@ -->
+

06 December 2016

+

Santa updated:

+ + +

21 November 2016

+

Alberyk updated:

+ +

18 November 2016

Bedshaped updated: