diff --git a/code/datums/disease.dm b/code/datums/disease.dm
index 977f0b605c1..ba2fa63f4f2 100644
--- a/code/datums/disease.dm
+++ b/code/datums/disease.dm
@@ -337,7 +337,7 @@ to null does not delete the object itself. Thank you.
// world << "Setting res to [src]"
var/saved_type = "[type]"//copy the value, not create the reference to it, so when the object is deleted, the value remains.
affected_mob.resistances += text2path(saved_type)
- if(istype(src, /datum/disease/alien_embryo))//Get rid of the flag.
+ if((affected_mob) && (istype(src, /datum/disease/alien_embryo)))//Get rid of the flag.
affected_mob.alien_egg_flag = 0
// world << "Removing [src]"
spawn(0)
diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm
index 62471a68eed..dff5835d8cf 100644
--- a/code/game/machinery/portable_turret.dm
+++ b/code/game/machinery/portable_turret.dm
@@ -522,13 +522,6 @@ Neutralize All Unidentified Life Signs: []
"},
if(!emagged) use_power(600)
else use_power(1200)
- else if(istype(E, /obj/item/weapon/gun/energy/heavylasercannon))
- A = new /obj/item/projectile/deathlaser( loc )
- A.original = target.loc
- icon_state = "orange_target_prism"
- if(!emagged) use_power(800)
- else use_power(1600)
-
else if(istype(E, /obj/item/weapon/gun/energy/shockgun))
A = new /obj/item/projectile/fireball( loc )
A.original = target.loc
diff --git a/code/game/objects/items/weapons/guns_new.dm b/code/game/objects/items/weapons/guns_new.dm
index ec28415e430..2d6142e139c 100644
--- a/code/game/objects/items/weapons/guns_new.dm
+++ b/code/game/objects/items/weapons/guns_new.dm
@@ -1111,42 +1111,6 @@
power_supply.give(power_supply.maxcharge)
update_icon()
- heavylasercannon
- name = "heavy laser cannon"
- desc = "A deathly heavy-duty laser cannon."
- icon_state = "laser"
- force = 20
- fire_sound = 'pulse.ogg'
- origin_tech = "combat=4;materials=4;powerstorage=4"
- load_into_chamber()
- if(in_chamber)
- return 1
- if(power_supply.charge < charge_cost)
- return 0
- switch(mode)
- if(0)
- in_chamber = new /obj/item/projectile/heavylaser(src)
- if(1)
- in_chamber = new /obj/item/projectile/beam(src)
- power_supply.use(charge_cost)
- return 1
-
- attack_self(mob/living/user as mob)
- mode = !mode
- switch(mode)
- if(0)
- user << "\red [src.name] is now set to heavy laser cannon."
- fire_sound = 'pulse.ogg'
- charge_cost = 150
- if(1)
- user << "\red [src.name] is now set to laser."
- fire_sound = 'Laser.ogg'
- charge_cost = 50
- New()
- power_supply = new /obj/item/weapon/cell(src)
- power_supply.give(power_supply.maxcharge)
- update_icon()
-
shockgun
name = "shock gun"
desc = "A high tech energy weapon that stuns and burns a target."
diff --git a/code/game/supplyshuttle.dm b/code/game/supplyshuttle.dm
index c3b0889d723..fc320fcd7ee 100644
--- a/code/game/supplyshuttle.dm
+++ b/code/game/supplyshuttle.dm
@@ -483,9 +483,9 @@ var/ordernum=0
src.temp = "Current approved orders:
"
for(var/S in supply_shuttle_shoppinglist)
var/datum/supply_order/SO = S
- src.temp += "[SO.object.name] approved by [SO.orderedby][SO.comment ? " ([SO.comment])":""] (Cancel)
"
+ src.temp += "[SO.object.name] approved by [SO.orderedby][SO.comment ? " ([SO.comment])":""]
"// (Cancel)
"
src.temp += "
OK"
-
+/*
else if (href_list["cancelorder"])
var/datum/supply_order/remove_supply = href_list["cancelorder"]
supply_shuttle_shoppinglist -= remove_supply
@@ -496,7 +496,7 @@ var/ordernum=0
var/datum/supply_order/SO = S
src.temp += "[SO.object.name] approved by [SO.orderedby][SO.comment ? " ([SO.comment])":""] (Cancel)
"
src.temp += "
OK"
-
+*/
else if (href_list["viewrequests"])
src.temp = "Current requests:
"
for(var/S in supply_shuttle_requestlist)
diff --git a/code/modules/chemical/Chemistry-Reagents.dm b/code/modules/chemical/Chemistry-Reagents.dm
index 26b1cd8f770..38714f246ad 100644
--- a/code/modules/chemical/Chemistry-Reagents.dm
+++ b/code/modules/chemical/Chemistry-Reagents.dm
@@ -634,6 +634,8 @@ datum
..()
return
reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)
+ if(!istype(M, /mob/living))
+ return //wooo more runtime fixin
if(method == TOUCH)
if(istype(M, /mob/living/carbon/human))
if(M:wear_mask)
diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm
index 55ba7512e65..09ccd89f92c 100644
--- a/code/modules/mob/living/silicon/robot/robot.dm
+++ b/code/modules/mob/living/silicon/robot/robot.dm
@@ -215,9 +215,10 @@
if(ticker.mode.name == "AI malfunction")
var/datum/game_mode/malfunction/malf = ticker.mode
for (var/datum/mind/malfai in malf.malf_ai)
- if (connected_ai.mind == malfai)
- if (malf.apcs >= 3)
- stat(null, "Time until station control secured: [max(malf.AI_win_timeleft/(malf.apcs/3), 0)] seconds")
+ if(connected_ai)
+ if(connected_ai.mind == malfai)
+ if(malf.apcs >= 3)
+ stat(null, "Time until station control secured: [max(malf.AI_win_timeleft/(malf.apcs/3), 0)] seconds")
else if(ticker.mode:malf_mode_declared)
stat(null, "Time left: [max(ticker.mode:AI_win_timeleft/(ticker.mode:apcs/3), 0)]")
@@ -226,9 +227,11 @@
else
stat(null, text("No Cell Inserted!"))
+
/mob/living/silicon/robot/restrained()
return 0
+
/mob/living/silicon/robot/ex_act(severity)
flick("flash", flash)
@@ -260,6 +263,7 @@
fireloss = f_loss
updatehealth()
+
/mob/living/silicon/robot/meteorhit(obj/O as obj)
for(var/mob/M in viewers(src, null))
M.show_message(text("\red [src] has been hit by [O]"), 1)
@@ -271,6 +275,7 @@
updatehealth()
return
+
/mob/living/silicon/robot/bullet_act(var/obj/item/projectile/Proj)
if(!Proj.nodamage) bruteloss += Proj.damage
updatehealth()
@@ -278,7 +283,6 @@
return
-
/mob/living/silicon/robot/Bump(atom/movable/AM as mob|obj, yes)
spawn( 0 )
if ((!( yes ) || now_pushing))
@@ -311,15 +315,8 @@
now_pushing = null
return
return
-/*
-/mob/living/silicon/robot/proc/firecheck(turf/T as turf)
- if (T.firelevel < 900000.0)
- return 0
- var/total = 0
- total += 0.25
- return total
-*/
+
/mob/living/silicon/robot/triggerAlarm(var/class, area/A, var/O, var/alarmsource)
if (stat == 2)
return 1
@@ -344,6 +341,7 @@
if (viewalerts) robot_alerts()
return 1
+
/mob/living/silicon/robot/cancelAlarm(var/class, area/A as area, obj/origin)
var/list/L = alarms[class]
var/cleared = 0
@@ -361,6 +359,7 @@
if (viewalerts) robot_alerts()
return !cleared
+
/mob/living/silicon/robot/attackby(obj/item/weapon/W as obj, mob/user as mob)
if (istype(W, /obj/item/weapon/weldingtool) && W:welding)
if (W:remove_fuel(0))
@@ -374,7 +373,6 @@
user << "Need more welding fuel!"
return
-
else if(istype(W, /obj/item/weapon/cable_coil) && wiresexposed)
var/obj/item/weapon/cable_coil/coil = W
fireloss -= 30
diff --git a/code/modules/mob/new_player/preferences.dm b/code/modules/mob/new_player/preferences.dm
index 368fb9a7579..fc7cd4fe71c 100644
--- a/code/modules/mob/new_player/preferences.dm
+++ b/code/modules/mob/new_player/preferences.dm
@@ -394,11 +394,12 @@ datum/preferences
dat += "Play admin midis: [midis == 1 ? "Yes" : "No"]
"
dat += "Show chat bubbles: [bubbles == 1 ? "Yes" : "No"]
"
- if(user.client.holder)
- if(user.client.holder.rank)
- if(user.client.holder.rank == "Game Master")
- dat += "
OOC
"
- dat += "Change colour "
+ if(user.client)
+ if(user.client.holder)
+ if(user.client.holder.rank)
+ if(user.client.holder.rank == "Game Master")
+ dat += "
OOC
"
+ dat += "Change colour "
dat += "
Occupation Choices
"
if (destructive.Find(occupation[1]))
diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm
index b84f50aab16..382d62ee0b3 100644
--- a/code/modules/research/designs.dm
+++ b/code/modules/research/designs.dm
@@ -1016,18 +1016,9 @@ datum
id = "lasercannon"
req_tech = list("combat" = 4, "materials" = 3, "powerstorage" = 3)
build_type = PROTOLATHE
- materials = list("$metal" = 10000)
+ materials = list("$metal" = 10000, "$glass" = 1000, "$diamond" = 2000)
build_path = "/obj/item/weapon/gun/energy/lasercannon"
- heavylasercannon
- name = "Heavy Laser Cannon"
- desc = "A heavy duty laser cannon."
- id = "lasercannon"
- req_tech = list("combat" = 5, "materials" = 5, "powerstorage" = 5)
- build_type = PROTOLATHE
- materials = list("$metal" = 10000)
- build_path = "/obj/item/weapon/gun/energy/heavy lasercannon"
-
shockgun
name = "Shock Gun"
desc = "Your opponent has just lost THE GAME."