diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm
index 2e8b1abfaea..86d7b5ac00d 100644
--- a/code/game/machinery/alarm.dm
+++ b/code/game/machinery/alarm.dm
@@ -326,10 +326,11 @@
use_power(energy_used/1000, ENVIRON)
//We need to cool ourselves.
- if(environment.temperature > target_temperature)
- gas.temperature -= energy_used/heat_capacity
- else
- gas.temperature += energy_used/heat_capacity
+ if(heat_capacity)
+ if(environment.temperature > target_temperature)
+ gas.temperature -= energy_used/heat_capacity
+ else
+ gas.temperature += energy_used/heat_capacity
environment.merge(gas)
diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm
index 8fc24a175cd..0dddc76a79a 100644
--- a/code/modules/admin/verbs/debug.dm
+++ b/code/modules/admin/verbs/debug.dm
@@ -552,10 +552,12 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
"soviet admiral",
"tunnel clown",
"masked killer",
+ "singuloth knight",
"dark lord",
"assassin",
"death commando",
"syndicate commando",
+ "chrono legionnaire",
"special ops officer",
"special ops formal",
"blue wizard",
@@ -565,7 +567,6 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
"emergency response team leader",
"nanotrasen officer",
"nanotrasen captain",
- "singuloth knight"
)
var/dostrip = input("Do you want to strip [M] before equipping them? (0=no, 1=yes)", "STRIPTEASE") as null|anything in list(0,1)
if(isnull(dostrip))
@@ -1048,13 +1049,30 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
M.equip_to_slot_or_del(new /obj/item/weapon/gun/projectile/revolver/mateba(M), slot_belt)
M.equip_to_slot_or_del(new /obj/item/clothing/under/soviet(M), slot_w_uniform)
var/obj/item/weapon/card/id/W = new(M)
- W.name = "[M.real_name]'s ID Card (Admiral)"
+ W.name = "[M.real_name]'s ID Card"
W.icon_state = "commander"
W.access = get_all_accesses()
W.access += get_all_centcom_access()
W.assignment = "Admiral"
W.registered_name = M.real_name
M.equip_to_slot_or_del(W, slot_wear_id)
+
+ if("chrono legionnaire")
+ M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/chronos(M), slot_head)
+ M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/syndicate(src), slot_wear_mask)
+ M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(M), slot_shoes)
+ M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves)
+ M.equip_to_slot_or_del(new /obj/item/clothing/glasses/night(M), slot_glasses)
+ M.equip_to_slot_or_del(new /obj/item/clothing/suit/space/chronos(M), slot_wear_suit)
+ M.equip_to_slot_or_del(new /obj/item/weapon/chrono_eraser(M), slot_back)
+ M.equip_to_slot_or_del(new /obj/item/clothing/under/syndicate(M), slot_w_uniform)
+ M.equip_to_slot_or_del(new /obj/item/weapon/tank/emergency_oxygen/double/full(src), slot_s_store)
+ var/obj/item/weapon/card/id/W = new(M)
+ W.name = "[M.real_name]'s ID Card"
+ W.icon_state = "syndie"
+ W.assignment = "Chrono Legionnaire"
+ W.registered_name = M.real_name
+ M.equip_to_slot_or_del(W, slot_wear_id)
M.regenerate_icons()
diff --git a/code/modules/mob/hear_say.dm b/code/modules/mob/hear_say.dm
index f99db44de5a..8f63a34942c 100644
--- a/code/modules/mob/hear_say.dm
+++ b/code/modules/mob/hear_say.dm
@@ -34,7 +34,10 @@
if(!say_understands(speaker,language))
if(istype(speaker,/mob/living/simple_animal))
var/mob/living/simple_animal/S = speaker
- message = pick(S.speak)
+ if(S.speak.len)
+ message = pick(S.speak)
+ else
+ stars(message)
else
if(language)
message = language.scramble(message)
diff --git a/code/modules/mob/living/bloodcrawl.dm b/code/modules/mob/living/bloodcrawl.dm
index 5a104fbfb53..2ee52db528c 100644
--- a/code/modules/mob/living/bloodcrawl.dm
+++ b/code/modules/mob/living/bloodcrawl.dm
@@ -112,7 +112,7 @@
return
if(!B)
return
- src.forceMove(B)
+ src.forceMove(B.loc)
src.client.eye = src
if (prob(25) && istype(src, /mob/living/simple_animal/slaughter))
var/list/voice = list('sound/hallucinations/behind_you1.ogg','sound/hallucinations/im_here1.ogg','sound/hallucinations/turn_around1.ogg','sound/hallucinations/i_see_you1.ogg')
diff --git a/code/modules/paperwork/paper_bundle.dm b/code/modules/paperwork/paper_bundle.dm
index 988f6191cba..311971f326c 100644
--- a/code/modules/paperwork/paper_bundle.dm
+++ b/code/modules/paperwork/paper_bundle.dm
@@ -177,7 +177,7 @@
update_icon()
else
usr << "You need to hold it in your hands to change pages."
- if (istype(src.loc, /mob) ||istype(src.loc.loc, /mob))
+ if (istype(src.loc, /mob))
src.attack_self(src.loc)
updateUsrDialog()
@@ -211,9 +211,10 @@
/obj/item/weapon/paper_bundle/update_icon()
- var/obj/item/weapon/paper/P = src[1]
- icon_state = P.icon_state
- overlays = P.overlays
+ if(contents.len)
+ var/obj/item/weapon/paper/P = src[1]
+ icon_state = P.icon_state
+ overlays = P.overlays
underlays = 0
var/i = 0
var/photo
diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm
index 58cf0b4e2e8..97a2029d49a 100644
--- a/code/modules/projectiles/guns/energy.dm
+++ b/code/modules/projectiles/guns/energy.dm
@@ -11,72 +11,42 @@
var/modifystate
var/can_charge = 1
- emp_act(severity)
+/obj/item/weapon/gun/energy/emp_act(severity)
+ if(power_supply)
power_supply.use(round(power_supply.charge / severity))
update_icon()
+/obj/item/weapon/gun/energy/New()
+ ..()
+ if(cell_type)
+ power_supply = new cell_type(src)
+ else
+ power_supply = new(src)
+ power_supply.give(power_supply.maxcharge)
+ return
- New()
- ..()
- if(cell_type)
- power_supply = new cell_type(src)
+/obj/item/weapon/gun/energy/process_chambered()
+ if(in_chamber) return 1
+ if(!power_supply) return 0
+ if(!power_supply.use(charge_cost)) return 0
+ if(!projectile_type) return 0
+ in_chamber = new projectile_type(src)
+ return 1
+
+/obj/item/weapon/gun/energy/update_icon()
+ if(cell_type)
+ var/ratio = power_supply.charge / power_supply.maxcharge
+ ratio = round(ratio, 0.25) * 100
+ if(modifystate)
+ icon_state = "[modifystate][ratio]"
else
- power_supply = new(src)
- power_supply.give(power_supply.maxcharge)
- return
-
-
- process_chambered()
- if(in_chamber) return 1
- if(!power_supply) return 0
- if(!power_supply.use(charge_cost)) return 0
- if(!projectile_type) return 0
- in_chamber = new projectile_type(src)
- return 1
-
-
- update_icon()
- if(cell_type)
- var/ratio = power_supply.charge / power_supply.maxcharge
- ratio = round(ratio, 0.25) * 100
- if(modifystate)
- icon_state = "[modifystate][ratio]"
- else
- icon_state = "[initial(icon_state)][ratio]"
+ icon_state = "[initial(icon_state)][ratio]"
+ else
+ icon_state = "energy0"
+ overlays.Cut()
+ if(F)
+ if(F.on)
+ overlays += "flight-on"
else
- icon_state = "energy0"
- overlays.Cut()
- if(F)
- if(F.on)
- overlays += "flight-on"
- else
- overlays += "flight"
- return
-
-/*
- attackby(obj/item/weapon/W, mob/user, params)
- if(istype(W, /obj/item/weapon/stock_parts/cell))
- if(!power_supply)
- user.drop_item()
- W.loc = src
- power_supply = W
- user << "You install a cell in [src]."
- update_icon()
- else
- user << "[src] already has a cell."
-
- else if(istype(W, /obj/item/weapon/screwdriver))
- if(power_supply)
- power_supply.updateicon()
- power_supply.loc = get_turf(src.loc)
- power_supply = null
- user << "You remove the cell from the [src]."
- update_icon()
- return
- ..()
- return
-
- examine(mob/user)
- if(..(user, 1))
- if(!power_supply)
- usr <<"The weapon does not have a power source installed." */
\ No newline at end of file
+ overlays += "flight"
+ return
diff --git a/code/modules/reagents/oldchem/reagents/_reagent_base.dm b/code/modules/reagents/oldchem/reagents/_reagent_base.dm
index a934210a596..d2ca7ff569e 100644
--- a/code/modules/reagents/oldchem/reagents/_reagent_base.dm
+++ b/code/modules/reagents/oldchem/reagents/_reagent_base.dm
@@ -60,8 +60,9 @@
if(!istype(M, /mob/living)) // YOU'RE A FUCKING RETARD NEO WHY CAN'T YOU JUST FIX THE PROBLEM ON THE REAGENT - Iamgoofball
return //Noticed runtime errors from facid trying to damage ghosts, this should fix. --NEO
// Certain elements in too large amounts cause side-effects
- holder.remove_reagent(src.id, metabolization_rate) //By default it slowly disappears.
- current_cycle++
+ if(holder)
+ holder.remove_reagent(src.id, metabolization_rate) //By default it slowly disappears.
+ current_cycle++
return
// Called when two reagents of the same are mixing.
diff --git a/code/modules/reagents/oldchem/reagents/reagents_water.dm b/code/modules/reagents/oldchem/reagents/reagents_water.dm
index 6f8c557fdb9..5377ec3f56c 100644
--- a/code/modules/reagents/oldchem/reagents/reagents_water.dm
+++ b/code/modules/reagents/oldchem/reagents/reagents_water.dm
@@ -278,7 +278,7 @@
M.stuttering = 0
M.confused = 0
return
- if(ishuman(M)) .
+ if(ishuman(M) && M.mind) .
if(((M.mind in ticker.mode.vampires) || M.mind.vampire) && (!(VAMP_FULL in M.mind.vampire.powers)) && prob(80))
switch(data)
if(1 to 4)