diff --git a/code/controllers/subsystems/machinery.dm b/code/controllers/subsystems/machinery.dm
index abeecf454df..0c6a5473cf6 100644
--- a/code/controllers/subsystems/machinery.dm
+++ b/code/controllers/subsystems/machinery.dm
@@ -145,7 +145,7 @@
if (EQUIP)
A.used_equip += M.use_power == 2 ? M.active_power_usage : M.idle_power_usage
if (LIGHT)
- A.used_equip += M.use_power == 2 ? M.active_power_usage : M.idle_power_usage
+ A.used_light += M.use_power == 2 ? M.active_power_usage : M.idle_power_usage
if (ENVIRON)
A.used_environ += M.use_power == 2 ? M.active_power_usage : M.idle_power_usage
else // ?!
diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm
index 76b650c48cd..1fb2c1dc2b6 100644
--- a/code/game/gamemodes/game_mode.dm
+++ b/code/game/gamemodes/game_mode.dm
@@ -112,11 +112,15 @@ var/global/list/additional_antag_types = list()
message_admins("Admin [key_name_admin(usr)] added [antag.role_text] template to game mode.")
// I am very sure there's a better way to do this, but I'm not sure what it might be. ~Z
- spawn(1)
+ // yes there is. but let me first immortalize this code.
+/* spawn(1)
for(var/datum/admins/admin in world)
if(usr.client == admin.owner)
admin.show_game_mode(usr)
- return
+ return */
+
+ if (usr.client && usr.client.holder)
+ usr.client.holder.show_game_mode(usr)
/datum/game_mode/proc/announce() //to be called when round starts
world << "The current game mode is [capitalize(name)]!"
diff --git a/code/game/objects/items/weapons/cards_ids.dm b/code/game/objects/items/weapons/cards_ids.dm
index 8d448e14717..18f261231cd 100644
--- a/code/game/objects/items/weapons/cards_ids.dm
+++ b/code/game/objects/items/weapons/cards_ids.dm
@@ -332,14 +332,14 @@ var/const/NO_EMAG_ACT = -50
access = get_all_station_access() + access_synth
..()
-/obj/item/weapon/card/id/synthetic/minedrone
+/obj/item/weapon/card/id/minedrone
name = "\improper Minedrone ID"
desc = "Access module for NanoTrasen Minedrones"
icon_state = "id-robot"
item_state = "tdgreen"
assignment = "Minedrone"
-/obj/item/weapon/card/id/synthetic/minedrone/New()
+/obj/item/weapon/card/id/minedrone/New()
access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station)
..()
diff --git a/code/game/objects/items/weapons/gift_wrappaper.dm b/code/game/objects/items/weapons/gift_wrappaper.dm
index f1291bf2484..9c91f9c44d2 100644
--- a/code/game/objects/items/weapons/gift_wrappaper.dm
+++ b/code/game/objects/items/weapons/gift_wrappaper.dm
@@ -202,12 +202,16 @@
/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/gift_benefactor = pick("the NanoTrasen Department of Christmas Affairs", "Miranda Trasen", "Joseph Dorne", "Isaac Asimov", "Baal D. Griffon", "the Sol Alliance (Sorry about the blockade!)",
+ "Hephaestus Industries", "Idris Incorporated", "Glorsh Omega II", "the Jargon Federation", "the People's Republic of Adhomai", "the Adhomai Liberation Army", "the Izweski Hegemony",
+ "the Zo'ra Hive","the Frontier Alliance", "Digital Dingo", "Optimum Jeffrey", "Lemmy and the Clockworks", "President Hadii", "King Azunja","Supreme Commander Nated'Hakhan",
+ "Lord-Regent Not'zar","Jesus Christ","Santa Claus","Mrs. Claus","Sandy Claws","Buddha","Gary","Jesus Christ!","the True Queen of Biesel, God-Lady Seon-rin von Illdenberg, First of Her Name",
+ "Admiral Frost","Pirate King Frost", "The Secret NanoTrasen Cabal of Duty Officers", "The Society for the Preservation of Mice", "Officer Beepsky","Lieutenant Columbo","B.O.B","Runtime",
+ "Bones","Chauncey","Ian","Pun Pun","Nup Nup","Waldo","Odlaw","Crew of the NSS Exodus", "Custodial Staff of the NTCC Odin","ERT Phoenix","grey slime (357)","Bob the Blob","People for the Ethical Treatment of Bluespace Bears",
+ "Mr. Clown and Mrs. Mime from New Puerto Rico","the Grinch","the Krampus","Satan","Mega-Satan","\[BENEFACTOR REDACTED]\","Bluespace Cat","Union of Bluespace Technicians Tau Ceti","Robo Mickey Mouse")
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 [station_name()]
From: [gift_benefactor], with [pick_emotion]"
+ desc = "To: The [station_name()]
From: [gift_benefactor], with [pick_emotion]"
return
@@ -217,12 +221,17 @@
/obj/item/weapon/xmasgift/small/attack_self(mob/M as mob)
var/gift_type = pick(
+ /obj/random/action_figure,
+ /obj/random/coin,
+ /obj/random/spacecash,
+ /obj/random/glowstick,
/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/clothing/gloves/watch,
/obj/item/weapon/lipstick/random,
/obj/item/weapon/corncob,
/obj/item/weapon/bikehorn,
@@ -242,9 +251,7 @@
/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,
@@ -265,9 +272,24 @@
/obj/item/trash/koisbar,
/obj/item/weapon/xmasgift/medium,
/obj/item/toy/syndicateballoon,
- /obj/item/toy/xmastree)
+ /obj/item/toy/xmastree,
+ /obj/item/clothing/accessory/medal/gold/heroism,
+ /obj/item/clothing/accessory/medal/nobel_science,
+ /obj/item/clothing/accessory/medal/bronze_heart,
+ /obj/item/clothing/accessory/medal/silver/valor,
+ /obj/item/bluespace_crystal,
+ /obj/random/junk,
+ /obj/item/weapon/gun/energy/mousegun,
+ /obj/item/weapon/gun/energy/wand/toy,
+ /obj/item/weapon/mirror,
+ /obj/item/weapon/ore/coal,
+ /obj/item/weapon/ore/coal,
+ /obj/item/weapon/ore/coal,
+ /obj/item/weapon/stamp/clown,
+ /obj/item/organ/heart/skrell,
+ /obj/item/latexballon)
- var/atom/movable/I = new gift_type(M)
+ var/atom/movable/I = new gift_type(get_turf(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!"
@@ -282,6 +304,7 @@
/obj/item/weapon/xmasgift/medium/attack_self(mob/M as mob)
var/gift_type = pick(
/obj/item/weapon/sord,
+ /obj/random/booze,
/obj/item/weapon/storage/belt/champion,
/obj/item/weapon/pickaxe/silver,
/obj/item/weapon/grenade/smokebomb,
@@ -312,9 +335,29 @@
/obj/item/weapon/xmasgift/small,
/obj/item/weapon/tank/jetpack/void,
/obj/item/weapon/xmasgift/large,
- /obj/item/weapon/reagent_containers/food/snacks/pudding)
+ /obj/item/weapon/reagent_containers/food/snacks/pudding,
+ /obj/item/weapon/contraband/poster,
+ /obj/item/clothing/head/hardhat/red/atmos,
+ /mob/living/bot/cleanbot,
+ /obj/item/vaurca/box,
+ /obj/item/device/binoculars,
+ /obj/item/device/camera,
+ /obj/item/device/gps,
+ /obj/item/device/uv_light,
+ /obj/random/loot,
+ /obj/random/contraband,
+ /obj/item/weapon/autochisel,
+ /obj/item/weapon/melee/vaurca/rock,
+ /obj/item/weapon/ore/coal,
+ /obj/item/weapon/ore/coal,
+ /obj/item/weapon/ore/coal,
+ /obj/item/weapon/phone,
+ /obj/item/device/dociler,
+ /obj/item/device/flashlight/maglight,
+ /obj/item/device/megaphone,
+ /obj/item/device/violin)
- var/atom/movable/I = new gift_type(M)
+ var/atom/movable/I = new gift_type(get_turf(M))
M.remove_from_mob(src)
if (!M.put_in_hands(I))
M.forceMove(get_turf(src))
@@ -335,6 +378,8 @@
/obj/item/clothing/under/syndicate/tracksuit,
/obj/item/clothing/under/rank/clown,
/obj/item/clothing/under/mime,
+ /obj/item/clothing/under/rank/fatigues/marine,
+ /obj/item/clothing/under/rank/dress/marine,
/mob/living/simple_animal/cat/kitten,
/mob/living/simple_animal/chick,
/mob/living/simple_animal/corgi/puppy,
@@ -343,9 +388,20 @@
/obj/item/weapon/xmasgift/medium,
/obj/item/weapon/tank/jetpack,
/obj/structure/plushie/drone,
- /obj/structure/plushie/ivancarp,)
+ /obj/structure/plushie/ivancarp,
+ /obj/item/weapon/grenade/spawnergrenade/vaurca,
+ /obj/item/weapon/ore/coal,
+ /obj/item/weapon/ore/coal,
+ /obj/item/weapon/ore/coal,
+ /obj/item/weapon/mass_driver_diy,
+ /mob/living/simple_animal/crab,
+ /mob/living/simple_animal/parrot,
+ /mob/living/simple_animal/hostile/commanded/dog/pug,
+ /obj/item/clothing/suit/space/void/vaurca,
+ /obj/item/clothing/head/helmet/space/void/vaurca,
+ /obj/item/target/alien)
- var/atom/movable/I = new gift_type(M)
+ var/atom/movable/I = new gift_type(get_turf(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!"
diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm
index c3910928135..86d48a949ff 100644
--- a/code/game/objects/items/weapons/tools.dm
+++ b/code/game/objects/items/weapons/tools.dm
@@ -436,6 +436,8 @@
if(!E)
return
var/safety = H.eyecheck()
+ if(H.status_flags & GODMODE)
+ return
switch(safety)
if(FLASH_PROTECTION_MODERATE)
usr << "Your eyes sting a little."
diff --git a/code/game/objects/structures/signs.dm b/code/game/objects/structures/signs.dm
index 8cf1feb7879..7e598249bbb 100644
--- a/code/game/objects/structures/signs.dm
+++ b/code/game/objects/structures/signs.dm
@@ -236,7 +236,7 @@
desc = "Flashy."
icon = 'icons/obj/christmas.dmi'
icon_state = "xmaslights"
- layer = 5
+ layer = 4.9
/obj/structure/sign/christmas/wreath
name = "wreath"
diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm
index 632cc091412..b993add9039 100644
--- a/code/modules/admin/admin_verbs.dm
+++ b/code/modules/admin/admin_verbs.dm
@@ -377,7 +377,8 @@ var/list/admin_verbs_cciaa = list(
/client/proc/view_duty_log,
/datum/admins/proc/create_admin_fax,
/client/proc/check_fax_history,
- /client/proc/aooc
+ /client/proc/aooc,
+ /client/proc/check_antagonists
)
/client/proc/add_admin_verbs()
@@ -1123,7 +1124,7 @@ var/list/admin_verbs_cciaa = list(
SSsunlight.apply_sun_state(S)
log_and_message_admins("has set the sun state to '[S]'.")
-#else
+#else
/client/proc/apply_sunstate()
set hidden = TRUE
diff --git a/code/modules/admin/verbs/bluespacetech.dm b/code/modules/admin/verbs/bluespacetech.dm
index 03eda5b289b..604deac43d1 100644
--- a/code/modules/admin/verbs/bluespacetech.dm
+++ b/code/modules/admin/verbs/bluespacetech.dm
@@ -445,6 +445,7 @@
vision_flags = (SEE_TURFS|SEE_OBJS|SEE_MOBS)
see_invisible = SEE_INVISIBLE_NOLIGHTING
canremove = 0
+ flash_protection = FLASH_PROTECTION_MAJOR
/obj/item/clothing/glasses/sunglasses/bst/verb/toggle_xray(mode in list("X-Ray without Lighting", "X-Ray with Lighting", "Normal"))
set name = "Change Vision Mode"
diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm
index bea2068f2b8..31bcf58f3ba 100644
--- a/code/modules/mining/machine_vending.dm
+++ b/code/modules/mining/machine_vending.dm
@@ -6,61 +6,61 @@
// should be bling. Things that shorten the distance between base and mining. Instant-teleporters should be one use.
var/global/list/minevendor_list = list( //keep in order of price
new /datum/data/mining_equipment("Food Ration", /obj/item/weapon/reagent_containers/food/snacks/liquidfood, 10, 5),
- new /datum/data/mining_equipment("Poster", /obj/item/weapon/contraband/poster, 10, 20),
- new /datum/data/mining_equipment("Ore Scanner Pad", /obj/item/weapon/ore_radar, 10, 50),
- new /datum/data/mining_equipment("5 Red Flags", /obj/item/stack/flag/red, 10, 50),
- new /datum/data/mining_equipment("5 Green Flags", /obj/item/stack/flag/green, 10, 50),
- new /datum/data/mining_equipment("5 Yellow Flags", /obj/item/stack/flag/yellow, 10, 50),
- new /datum/data/mining_equipment("5 Purple Flags", /obj/item/stack/flag/purple, 10, 50),
- new /datum/data/mining_equipment("Ore-bag", /obj/item/weapon/storage/bag/ore, 25, 50),
- new /datum/data/mining_equipment("Meat Pizza", /obj/item/pizzabox/meat, 25, 50),
- new /datum/data/mining_equipment("Lantern", /obj/item/device/flashlight/lantern,10, 75),
- new /datum/data/mining_equipment("Shovel", /obj/item/weapon/shovel, 15, 100),
- new /datum/data/mining_equipment("Pickaxe", /obj/item/weapon/pickaxe, 10, 100),
- new /datum/data/mining_equipment("KA White Tracer Rounds", /obj/item/borg/upgrade/modkit/tracer, 40, 100),
- new /datum/data/mining_equipment("Compressed rail cartridge", /obj/item/weapon/rrf_ammo, 50, 100),
- new /datum/data/mining_equipment("Ore Box", /obj/structure/ore_box, -1, 150, 1),
- new /datum/data/mining_equipment("Emergency Floodlight", /obj/item/weapon/floodlight_diy, -1, 150, 1),
- new /datum/data/mining_equipment("Premium Cigar", /obj/item/clothing/mask/smokable/cigarette/cigar/havana, 30, 150),
- new /datum/data/mining_equipment("KA Adjustable Tracer Rounds", /obj/item/borg/upgrade/modkit/tracer/adjustable, 30, 150),
- new /datum/data/mining_equipment("Seismic Charge", /obj/item/weapon/plastique/seismic, 25, 150),
- new /datum/data/mining_equipment("Lottery Chip", /obj/item/weapon/spacecash/ewallet/lotto, 50, 200),
- new /datum/data/mining_equipment("Ripley Paint Kit", /obj/item/device/kit/paint/ripley/random, 15, 200),
- new /datum/data/mining_equipment("Material Scanners", /obj/item/clothing/glasses/material, 15, 200),
- new /datum/data/mining_equipment("Mining Drill", /obj/item/weapon/pickaxe/drill, 10, 200),
- new /datum/data/mining_equipment("Deep Ore Scanner", /obj/item/weapon/mining_scanner, 10, 250),
- new /datum/data/mining_equipment("Magboots", /obj/item/clothing/shoes/magboots, 10, 300),
- new /datum/data/mining_equipment("Autochisel", /obj/item/weapon/autochisel, 10, 400),
- new /datum/data/mining_equipment("Jetpack", /obj/item/weapon/tank/jetpack, 10, 400),
- new /datum/data/mining_equipment("Drone Drill Upgrade", /obj/item/device/mine_bot_ugprade, 10, 400),
- new /datum/data/mining_equipment("Industrial Drill Brace", /obj/machinery/mining/brace, -1, 500, 1),
- new /datum/data/mining_equipment("Point Transfer Card", /obj/item/weapon/card/mining_point_card, -1, 500),
- new /datum/data/mining_equipment("Explorer's Belt", /obj/item/weapon/storage/belt/mining, 10, 500),
- new /datum/data/mining_equipment("Item-Warp Beacon", /obj/item/warp_core, 25, 500),
- new /datum/data/mining_equipment("Item-Warp Pack", /obj/item/weapon/extraction_pack, 25, 600),
- new /datum/data/mining_equipment("Drone Health Upgrade", /obj/item/device/mine_bot_ugprade/health, 20, 600),
- new /datum/data/mining_equipment("Rapid-Railway-Fabricator", /obj/item/weapon/rrf, 10, 600),
- new /datum/data/mining_equipment("Brute First-Aid Kit", /obj/item/weapon/storage/firstaid/brute, 30, 600),
- new /datum/data/mining_equipment("Ore Magnet", /obj/item/weapon/oremagnet, 10, 600),
- new /datum/data/mining_equipment("Minecart", /obj/vehicle/train/cargo/trolley/mining, -1, 600, 1),
- new /datum/data/mining_equipment("Resonator", /obj/item/weapon/resonator, 10, 700),
- new /datum/data/mining_equipment("Mining RIG", /obj/item/weapon/rig/industrial, 5, 750),
- new /datum/data/mining_equipment("KA Range Increase", /obj/item/borg/upgrade/modkit/range, 10, 750),
- new /datum/data/mining_equipment("Jaunter", /obj/item/device/wormhole_jaunter, 20, 750),
- new /datum/data/mining_equipment("Kinetic Accelerator", /obj/item/weapon/gun/energy/kinetic_accelerator, 10, 750),
- new /datum/data/mining_equipment("100 credits", /obj/item/weapon/spacecash/c100, -1, 1000),
- new /datum/data/mining_equipment("Mass Driver", /obj/item/weapon/mass_driver_diy, 5, 800),
- new /datum/data/mining_equipment("Mining Drone", /mob/living/silicon/robot/drone/mining, 15, 800),
- new /datum/data/mining_equipment("Minecart Engine", /obj/vehicle/train/cargo/engine/mining, -1, 800, 1),
- new /datum/data/mining_equipment("Ore Summoner", /obj/item/weapon/oreportal, 35, 800),
- new /datum/data/mining_equipment("KA Cooldown Decrease", /obj/item/borg/upgrade/modkit/cooldown, 15, 1000),
- new /datum/data/mining_equipment("Lazarus Injector", /obj/item/weapon/lazarus_injector, 25, 1000),
- new /datum/data/mining_equipment("Industrial Drill Head", /obj/machinery/mining/drill, -1, 1000, 1),
- new /datum/data/mining_equipment("Super Resonator", /obj/item/weapon/resonator/upgraded, 10, 1250),
- new /datum/data/mining_equipment("KA AoE Damage", /obj/item/borg/upgrade/modkit/aoe/turfs, 15, 1500),
- new /datum/data/mining_equipment("Diamond Pickaxe", /obj/item/weapon/pickaxe/diamond, 10, 1500),
- new /datum/data/mining_equipment("Drone Thermal Drill Upgrade", /obj/item/device/mine_bot_ugprade/thermal, 20, 2000),
- new /datum/data/mining_equipment("Thermal Drill", /obj/item/weapon/gun/energy/vaurca/thermaldrill, 5, 3750)
+ new /datum/data/mining_equipment("Poster", /obj/item/weapon/contraband/poster, 10, 20),
+ new /datum/data/mining_equipment("Ore Scanner Pad", /obj/item/weapon/ore_radar, 10, 50),
+ new /datum/data/mining_equipment("5 Red Flags", /obj/item/stack/flag/red, 10, 50),
+ new /datum/data/mining_equipment("5 Green Flags", /obj/item/stack/flag/green, 10, 50),
+ new /datum/data/mining_equipment("5 Yellow Flags", /obj/item/stack/flag/yellow, 10, 50),
+ new /datum/data/mining_equipment("5 Purple Flags", /obj/item/stack/flag/purple, 10, 50),
+ new /datum/data/mining_equipment("Ore-bag", /obj/item/weapon/storage/bag/ore, 25, 50),
+ new /datum/data/mining_equipment("Meat Pizza", /obj/item/pizzabox/meat, 25, 50),
+ new /datum/data/mining_equipment("Lantern", /obj/item/device/flashlight/lantern, 10, 75),
+ new /datum/data/mining_equipment("Shovel", /obj/item/weapon/shovel, 15, 100),
+ new /datum/data/mining_equipment("Pickaxe", /obj/item/weapon/pickaxe, 10, 100),
+ new /datum/data/mining_equipment("KA White Tracer Rounds", /obj/item/borg/upgrade/modkit/tracer, 40, 100),
+ new /datum/data/mining_equipment("Compressed rail cartridge", /obj/item/weapon/rrf_ammo, 50, 100),
+ new /datum/data/mining_equipment("Ore Box", /obj/structure/ore_box, -1, 150, 1),
+ new /datum/data/mining_equipment("Emergency Floodlight", /obj/item/weapon/floodlight_diy, -1, 150, 1),
+ new /datum/data/mining_equipment("Premium Cigar", /obj/item/clothing/mask/smokable/cigarette/cigar/havana, 30, 150),
+ new /datum/data/mining_equipment("KA Adjustable Tracer Rounds", /obj/item/borg/upgrade/modkit/tracer/adjustable, 30, 150),
+ new /datum/data/mining_equipment("Seismic Charge", /obj/item/weapon/plastique/seismic, 25, 150),
+ new /datum/data/mining_equipment("Lottery Chip", /obj/item/weapon/spacecash/ewallet/lotto, 50, 200),
+ new /datum/data/mining_equipment("Ripley Paint Kit", /obj/item/device/kit/paint/ripley/random, 15, 200),
+ new /datum/data/mining_equipment("Material Scanners", /obj/item/clothing/glasses/material, 15, 200),
+ new /datum/data/mining_equipment("Mining Drill", /obj/item/weapon/pickaxe/drill, 10, 200),
+ new /datum/data/mining_equipment("Deep Ore Scanner", /obj/item/weapon/mining_scanner, 10, 250),
+ new /datum/data/mining_equipment("Magboots", /obj/item/clothing/shoes/magboots, 10, 300),
+ new /datum/data/mining_equipment("Autochisel", /obj/item/weapon/autochisel, 10, 400),
+ new /datum/data/mining_equipment("Jetpack", /obj/item/weapon/tank/jetpack, 10, 400),
+ new /datum/data/mining_equipment("Drone Drill Upgrade", /obj/item/device/mine_bot_ugprade, 10, 400),
+ new /datum/data/mining_equipment("Industrial Drill Brace", /obj/machinery/mining/brace, -1, 500, 1),
+ new /datum/data/mining_equipment("Point Transfer Card", /obj/item/weapon/card/mining_point_card, -1, 500),
+ new /datum/data/mining_equipment("Explorer's Belt", /obj/item/weapon/storage/belt/mining, 10, 500),
+ new /datum/data/mining_equipment("Item-Warp Beacon", /obj/item/warp_core, 25, 500),
+ new /datum/data/mining_equipment("Item-Warp Pack", /obj/item/weapon/extraction_pack, 25, 600),
+ new /datum/data/mining_equipment("Drone Health Upgrade", /obj/item/device/mine_bot_ugprade/health, 20, 600),
+ new /datum/data/mining_equipment("Rapid-Railway-Fabricator", /obj/item/weapon/rrf, 10, 600),
+ new /datum/data/mining_equipment("Brute First-Aid Kit", /obj/item/weapon/storage/firstaid/brute, 30, 600),
+ new /datum/data/mining_equipment("Ore Magnet", /obj/item/weapon/oremagnet, 10, 600),
+ new /datum/data/mining_equipment("Minecart", /obj/vehicle/train/cargo/trolley/mining, -1, 600, 1),
+ new /datum/data/mining_equipment("Resonator", /obj/item/weapon/resonator, 10, 700),
+ new /datum/data/mining_equipment("Mining RIG", /obj/item/weapon/rig/industrial, 5, 750),
+ new /datum/data/mining_equipment("KA Range Increase", /obj/item/borg/upgrade/modkit/range, 10, 750),
+ new /datum/data/mining_equipment("Jaunter", /obj/item/device/wormhole_jaunter, 20, 750),
+ new /datum/data/mining_equipment("Kinetic Accelerator", /obj/item/weapon/gun/energy/kinetic_accelerator, 10, 750),
+ new /datum/data/mining_equipment("100 credits", /obj/item/weapon/spacecash/c100, -1, 1000),
+ new /datum/data/mining_equipment("Mass Driver", /obj/item/weapon/mass_driver_diy, 5, 800),
+ new /datum/data/mining_equipment("Mining Drone", /mob/living/silicon/robot/drone/mining, 15, 800),
+ new /datum/data/mining_equipment("Minecart Engine", /obj/vehicle/train/cargo/engine/mining, -1, 800, 1),
+ new /datum/data/mining_equipment("Drone Kinetic Accelerator Upgrade", /obj/item/device/mine_bot_ugprade/ka, 10, 800),
+ new /datum/data/mining_equipment("Ore Summoner", /obj/item/weapon/oreportal, 35, 800),
+ new /datum/data/mining_equipment("KA Cooldown Decrease", /obj/item/borg/upgrade/modkit/cooldown, 15, 1000),
+ new /datum/data/mining_equipment("Lazarus Injector", /obj/item/weapon/lazarus_injector, 25, 1000),
+ new /datum/data/mining_equipment("Industrial Drill Head", /obj/machinery/mining/drill, -1, 1000, 1),
+ new /datum/data/mining_equipment("Super Resonator", /obj/item/weapon/resonator/upgraded, 10, 1250),
+ new /datum/data/mining_equipment("KA AoE Damage", /obj/item/borg/upgrade/modkit/aoe/turfs, 15, 1500),
+ new /datum/data/mining_equipment("Diamond Pickaxe", /obj/item/weapon/pickaxe/diamond, 10, 1500),
+ new /datum/data/mining_equipment("Thermal Drill", /obj/item/weapon/gun/energy/vaurca/thermaldrill, 5, 3750)
)
/obj/machinery/mineral/equipment_vendor
diff --git a/code/modules/mining/minebot.dm b/code/modules/mining/minebot.dm
index 633056eb2e7..084857301ef 100644
--- a/code/modules/mining/minebot.dm
+++ b/code/modules/mining/minebot.dm
@@ -7,7 +7,7 @@
health = 45
pass_flags = PASSTABLE
req_access = list(access_mining, access_robotics)
- idcard_type = /obj/item/weapon/card/id/synthetic/minedrone
+ idcard_type = /obj/item/weapon/card/id/minedrone
speed = -1
range_limit = 0
var/health_upgrade
@@ -176,7 +176,7 @@
qdel(M.module)
M.module = null
if(M.ranged_upgrade)
- new /obj/item/weapon/robot_module/mining_drone/drillandplasmacutter(M)
+ new /obj/item/weapon/robot_module/mining_drone/drillandka(M)
else
new /obj/item/weapon/robot_module/mining_drone/drill(M)
M.module.rebuild()
@@ -200,41 +200,24 @@
M.health_upgrade = 1
qdel(src)
-/obj/item/device/mine_bot_ugprade/plasma
- name = "minebot plasma cutter upgrade"
+/obj/item/device/mine_bot_ugprade/ka
+ name = "minebot kinetic accelerator upgrade"
-/obj/item/device/mine_bot_ugprade/plasma/upgrade_bot(var/mob/living/silicon/robot/drone/mining/M, mob/user)
+/obj/item/device/mine_bot_ugprade/ka/upgrade_bot(var/mob/living/silicon/robot/drone/mining/M, mob/user)
if(M.ranged_upgrade)
- user << "[src] already has a plasma cutter upgrade installed!"
+ user << "[src] already has a KA upgrade installed!"
return
M.modtype = initial(M.modtype)
M.uneq_all()
qdel(M.module)
M.module = null
if(M.melee_upgrade)
- new /obj/item/weapon/robot_module/mining_drone/drillandplasmacutter(M)
+ new /obj/item/weapon/robot_module/mining_drone/drillandka(M)
else
- new /obj/item/weapon/robot_module/mining_drone/plasmacutter(M)
+ new /obj/item/weapon/robot_module/mining_drone/ka(M)
M.ranged_upgrade = 1
M.module.rebuild()
M.recalculate_synth_capacities()
if(!M.jetpack)
M.jetpack = new /obj/item/weapon/tank/jetpack/carbondioxide/synthetic(src)
- qdel(src)
-
-/obj/item/device/mine_bot_ugprade/thermal
- name = "minebot thermal drill upgrade"
-
-/obj/item/device/mine_bot_ugprade/thermal/upgrade_bot(var/mob/living/silicon/robot/drone/mining/M, mob/user)
- if(M.drill_upgrade)
- user << "[src] already has a thermal drill!"
- return
- if(M.emagged == 1)
- return 0
-
- M.emagged = 1
- M.fakeemagged = 1
- M.drill_upgrade = 1
- if(!M.jetpack)
- M.jetpack = new /obj/item/weapon/tank/jetpack/carbondioxide/synthetic(src)
- qdel(src)
+ qdel(src)
\ No newline at end of file
diff --git a/code/modules/mob/living/silicon/ai/life.dm b/code/modules/mob/living/silicon/ai/life.dm
index 266b44ddaf6..ea777f1f7ae 100644
--- a/code/modules/mob/living/silicon/ai/life.dm
+++ b/code/modules/mob/living/silicon/ai/life.dm
@@ -160,8 +160,12 @@
sight &= ~(SEE_TURFS | SEE_MOBS | SEE_OBJS)
see_in_dark = 0
see_invisible = SEE_INVISIBLE_LIVING
- else
+ else if(stat == DEAD)
update_dead_sight()
+ else
+ sight |= (SEE_TURFS|SEE_MOBS|SEE_OBJS)
+ see_in_dark = 8
+ see_invisible = SEE_INVISIBLE_LIVING
/mob/living/silicon/ai/proc/is_blinded()
var/area/A = get_area(src)
diff --git a/code/modules/mob/living/silicon/robot/gripper.dm b/code/modules/mob/living/silicon/robot/gripper.dm
index baac79e9e41..58c85ffc4eb 100644
--- a/code/modules/mob/living/silicon/robot/gripper.dm
+++ b/code/modules/mob/living/silicon/robot/gripper.dm
@@ -162,7 +162,7 @@
if(wrapped) //Already have an item.
return//This is handled in /mob/living/silicon/robot/GripperClickOn
- else if (istype(target, /obj/item/weapon/storage) && !istype(target, /obj/item/weapon/storage/secure))
+ else if (istype(target, /obj/item/weapon/storage) && !istype(target, /obj/item/weapon/storage/pill_bottle) && !istype(target, /obj/item/weapon/storage/secure))
for (var/obj/item/C in target.contents)
if (grip_item(C, user, 0))
user << "You grab the [C] from inside the [target.name]."
diff --git a/code/modules/mob/living/silicon/robot/life.dm b/code/modules/mob/living/silicon/robot/life.dm
index 7c27dc171b3..8ecc5d03660 100644
--- a/code/modules/mob/living/silicon/robot/life.dm
+++ b/code/modules/mob/living/silicon/robot/life.dm
@@ -150,14 +150,11 @@
..()
if (src.stat == 2 || (XRAY in mutations) || (src.sight_mode & BORGXRAY))
- src.sight |= SEE_TURFS
- src.sight |= SEE_MOBS
- src.sight |= SEE_OBJS
+ sight |= (SEE_TURFS | SEE_MOBS | SEE_OBJS)
src.see_in_dark = 8
src.see_invisible = SEE_INVISIBLE_MINIMUM
else if ((src.sight_mode & BORGMESON) && (src.sight_mode & BORGTHERM))
- src.sight |= SEE_TURFS
- src.sight |= SEE_MOBS
+ sight |= (SEE_TURFS | SEE_MOBS)
src.see_in_dark = 8
see_invisible = SEE_INVISIBLE_MINIMUM
else if (src.sight_mode & BORGMESON)
@@ -173,9 +170,7 @@
src.see_in_dark = 8
src.see_invisible = SEE_INVISIBLE_LEVEL_TWO
else if (src.stat != 2)
- src.sight &= ~SEE_MOBS
- src.sight &= ~SEE_TURFS
- src.sight &= ~SEE_OBJS
+ sight &= ~(SEE_TURFS | SEE_MOBS | SEE_OBJS)
src.see_in_dark = 8 // see_in_dark means you can FAINTLY see in the dark, humans have a range of 3 or so, tajaran have it at 8
src.see_invisible = SEE_INVISIBLE_LIVING // This is normal vision (25), setting it lower for normal vision means you don't "see" things like darkness since darkness
// has a "invisible" value of 15
diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm
index 1054ef2d0e4..bebd8043b85 100644
--- a/code/modules/mob/living/silicon/robot/robot_modules.dm
+++ b/code/modules/mob/living/silicon/robot/robot_modules.dm
@@ -925,8 +925,8 @@ var/global/list/robot_modules = list(
src.modules += new /obj/item/weapon/gripper/miner(src)
src.modules += new /obj/item/weapon/mining_scanner(src)
- src.emag = new /obj/item/weapon/gun/energy/vaurca/mountedthermaldrill(src)
- src.emag.name = "Mounted Thermal Drill"
+ src.emag = new /obj/item/weapon/gun/energy/plasmacutter/mounted(src)
+ src.emag.name = "Mounted Plasma Cutter"
..()
/obj/item/weapon/robot_module/mining_drone/drill/New(var/mob/living/silicon/robot/robot)
@@ -938,33 +938,33 @@ var/global/list/robot_modules = list(
src.modules += new /obj/item/weapon/gripper/miner(src)
src.modules += new /obj/item/weapon/mining_scanner(src)
- src.emag = new /obj/item/weapon/gun/energy/vaurca/mountedthermaldrill(src)
- src.emag.name = "Mounted Thermal Drill"
+ src.emag = new /obj/item/weapon/gun/energy/plasmacutter/mounted(src)
+ src.emag.name = "Mounted Plasma Cutter"
..()
-/obj/item/weapon/robot_module/mining_drone/plasmacutter/New(var/mob/living/silicon/robot/robot)
+/obj/item/weapon/robot_module/mining_drone/ka/New(var/mob/living/silicon/robot/robot)
src.modules += new /obj/item/device/flash(src)
src.modules += new /obj/item/borg/sight/material(src)
src.modules += new /obj/item/weapon/storage/bag/ore/drone(src)
- src.modules += new /obj/item/weapon/gun/energy/plasmacutter/mounted(src)
+ src.modules += new /obj/item/weapon/gun/energy/kinetic_accelerator/cyborg(src)
src.modules += new /obj/item/weapon/storage/bag/sheetsnatcher/borg(src)
src.modules += new /obj/item/weapon/gripper/miner(src)
src.modules += new /obj/item/weapon/mining_scanner(src)
- src.emag = new /obj/item/weapon/gun/energy/vaurca/mountedthermaldrill(src)
- src.emag.name = "Mounted Thermal Drill"
+ src.emag = new /obj/item/weapon/gun/energy/plasmacutter/mounted(src)
+ src.emag.name = "Mounted Plasma Cutter"
..()
-/obj/item/weapon/robot_module/mining_drone/drillandplasmacutter/New(var/mob/living/silicon/robot/robot)
+/obj/item/weapon/robot_module/mining_drone/drillandka/New(var/mob/living/silicon/robot/robot)
src.modules += new /obj/item/device/flash(src)
src.modules += new /obj/item/borg/sight/material(src)
src.modules += new /obj/item/weapon/storage/bag/ore/drone(src)
- src.modules += new /obj/item/weapon/gun/energy/plasmacutter/mounted(src)
+ src.modules += new /obj/item/weapon/gun/energy/kinetic_accelerator/cyborg(src)
src.modules += new /obj/item/weapon/pickaxe/jackhammer(src)
src.modules += new /obj/item/weapon/storage/bag/sheetsnatcher/borg(src)
src.modules += new /obj/item/weapon/gripper/miner(src)
src.modules += new /obj/item/weapon/mining_scanner(src)
- src.emag = new /obj/item/weapon/gun/energy/vaurca/mountedthermaldrill(src)
- src.emag.name = "Mounted Thermal Drill"
+ src.emag = new /obj/item/weapon/gun/energy/plasmacutter/mounted(src)
+ src.emag.name = "Mounted Plasma Cutter"
..()
diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm
index c7e3a61ac4b..d9de289a3cb 100644
--- a/code/modules/projectiles/projectile/bullets.dm
+++ b/code/modules/projectiles/projectile/bullets.dm
@@ -237,14 +237,14 @@
if(blocked < 100 && !(blocked < 20))
L.emote("yawns")
if(blocked < 20)
- addtimer(CALLBACK(src, .proc/apply_sedative, target, 10), 120)
+ if(L.reagents) L.reagents.add_reagent("stoxin", 10)
if(def_zone == "head" && blocked < 100)
- addtimer(CALLBACK(src, .proc/apply_sedative, target, 20), 35)
+ if(L.reagents) L.reagents.add_reagent("stoxin", 15)
if(def_zone != "torso" && def_zone != "head")
if(blocked < 100 && !(blocked < 20))
L.emote("yawns")
if(blocked < 20)
- addtimer(CALLBACK(src, .proc/apply_sedative, target, 15), 45)
+ if(L.reagents) L.reagents.add_reagent("stoxin", 5)
if(isanimal(target))
target.visible_message("[target] twitches, foaming at the mouth.")
@@ -255,9 +255,6 @@
M.Sleeping(1200)*/ //commented out until simple_mob paralysis actually works.
..()
-/obj/item/projectile/bullet/rifle/tranq/proc/apply_sedative(var/mob/living/L, var/severity)
- L.apply_effect(severity, PARALYZE, 0)
- L.emote("moans")
/* Miscellaneous */
/obj/item/projectile/bullet/suffocationbullet//How does this even work?
diff --git a/code/modules/spells/targeted/necromancer_spells.dm b/code/modules/spells/targeted/necromancer_spells.dm
index 2a6495edbd3..820810942ef 100644
--- a/code/modules/spells/targeted/necromancer_spells.dm
+++ b/code/modules/spells/targeted/necromancer_spells.dm
@@ -170,7 +170,7 @@
set desc = "Return to your phylactery and rebuild your body."
var/mob/living/carbon/C = usr
- if(!C.stat)
+ if(C.stat != DEAD)
C << "You're not dead yet!"
return
@@ -197,12 +197,7 @@
return
/mob/living/carbon/proc/post_dark_resurrection()
- if(src.stat == DEAD)
- dead_mob_list -= src
- living_mob_list += src
- src.stat = CONSCIOUS
src.revive()
- src.reagents.clear_reagents()
src << "You have returned to life!"
src.visible_message("[src] rises up from the dead!")
playsound(src, 'sound/magic/pope_entry.ogg', 100, 1)
diff --git a/html/changelog.html b/html/changelog.html
index 87ccf6d8983..d8973853357 100644
--- a/html/changelog.html
+++ b/html/changelog.html
@@ -56,6 +56,35 @@
-->