From f0525125780d5f3463eb14e7372e1de11f90a446 Mon Sep 17 00:00:00 2001 From: Markolie Date: Fri, 2 Oct 2015 01:34:37 +0200 Subject: [PATCH] Fixes --- code/game/machinery/alarm.dm | 9 +- code/modules/admin/verbs/debug.dm | 22 ++++- code/modules/mob/hear_say.dm | 5 +- code/modules/mob/living/bloodcrawl.dm | 2 +- code/modules/paperwork/paper_bundle.dm | 9 +- code/modules/projectiles/guns/energy.dm | 96 +++++++------------ .../oldchem/reagents/_reagent_base.dm | 5 +- .../oldchem/reagents/reagents_water.dm | 2 +- 8 files changed, 72 insertions(+), 78 deletions(-) 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)