From 4c1ea8cd3a7f0cb7f6a9686e6fdf6b0e4996f0e0 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Sun, 30 Nov 2014 12:46:03 +1030 Subject: [PATCH] Several hardsuit fixes. --- code/game/objects/items.dm | 10 ++++++++-- .../clothing/spacesuits/rig/modules/ninja.dm | 10 +++++++++- code/modules/clothing/spacesuits/rig/rig.dm | 2 +- code/modules/projectiles/guns/energy/laser.dm | 18 ++++++++++------- .../projectiles/guns/energy/nuclear.dm | 20 +++++++++++-------- 5 files changed, 41 insertions(+), 19 deletions(-) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 30cc42e6cf..7def0ddae2 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -262,7 +262,8 @@ if(H.wear_mask) return 0 if(H.head && !(H.head.canremove) && (H.head.flags & HEADCOVERSMOUTH)) - H << "\red \The [H.head] is in the way." + if(!disable_warning) + H << "\red \The [H.head] is in the way." return 0 if( !(slot_flags & SLOT_MASK) ) return 0 @@ -305,7 +306,8 @@ if(H.glasses) return 0 if(H.head && !(H.head.canremove) && (H.head.flags & HEADCOVERSEYES)) - H << "\red \The [H.head] is in the way." + if(!disable_warning) + H << "\red \The [H.head] is in the way." return 0 if( !(slot_flags & SLOT_EYES) ) return 0 @@ -339,6 +341,10 @@ if(slot_w_uniform) if(H.w_uniform) return 0 + if(H.wear_suit) + if(!disable_warning) + H << "\red \The [H.wear_suit] is in the way." + return 0 if( !(slot_flags & SLOT_ICLOTHING) ) return 0 return 1 diff --git a/code/modules/clothing/spacesuits/rig/modules/ninja.dm b/code/modules/clothing/spacesuits/rig/modules/ninja.dm index 50865ca8df..63231dcd95 100644 --- a/code/modules/clothing/spacesuits/rig/modules/ninja.dm +++ b/code/modules/clothing/spacesuits/rig/modules/ninja.dm @@ -173,6 +173,14 @@ /obj/item/rig_module/self_destruct/engage() explosion(get_turf(src), 0, 0, 3, 4) + if(holder && holder.wearer) + holder.wearer.drop_from_inventory(src) + del(holder) + del(src) /obj/item/rig_module/self_destruct/small/engage() - explosion(get_turf(src), 0, 0, 1, 2) \ No newline at end of file + explosion(get_turf(src), 0, 0, 1, 2) + if(holder && holder.wearer) + holder.wearer.drop_from_inventory(src) + del(holder) + del(src) \ No newline at end of file diff --git a/code/modules/clothing/spacesuits/rig/rig.dm b/code/modules/clothing/spacesuits/rig/rig.dm index b1f22a6e46..1d85f749d9 100644 --- a/code/modules/clothing/spacesuits/rig/rig.dm +++ b/code/modules/clothing/spacesuits/rig/rig.dm @@ -437,7 +437,7 @@ ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) - ui = new(user, src, ui_key, ((src.loc != user) ? ai_interface_path : interface_path), interface_title, 800, 600) + ui = new(user, src, ui_key, ((src.loc != user) ? ai_interface_path : interface_path), interface_title, 750, 550) ui.set_initial_data(data) ui.open() ui.set_auto_update(1) diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index 9ddfa5c9ff..9493dc0e14 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -80,13 +80,17 @@ obj/item/weapon/gun/energy/laser/retro /obj/item/weapon/gun/energy/lasercannon/mounted/load_into_chamber() if(in_chamber) return 1 - var/mob/living/carbon/human/H = loc - if(istype(H) && H.back) - var/obj/item/weapon/rig/suit = H.back - if(istype(suit) && suit.cell && suit.cell.charge >= 250) - suit.cell.use(250) - in_chamber = new /obj/item/projectile/beam/heavylaser(src) - return 1 + var/obj/item/rig_module/module = loc + if(!istype(module)) + return 0 + if(module.holder && module.holder.wearer) + var/mob/living/carbon/human/H = module.holder.wearer + if(istype(H) && H.back) + var/obj/item/weapon/rig/suit = H.back + if(istype(suit) && suit.cell && suit.cell.charge >= 250) + suit.cell.use(250) + in_chamber = new /obj/item/projectile/beam/heavylaser(src) + return 1 return 0 /obj/item/weapon/gun/energy/lasercannon/cyborg/load_into_chamber() diff --git a/code/modules/projectiles/guns/energy/nuclear.dm b/code/modules/projectiles/guns/energy/nuclear.dm index 9b1203c649..61c65165ab 100644 --- a/code/modules/projectiles/guns/energy/nuclear.dm +++ b/code/modules/projectiles/guns/energy/nuclear.dm @@ -38,14 +38,18 @@ /obj/item/weapon/gun/energy/gun/mounted/load_into_chamber() if(in_chamber) return 1 - var/mob/living/carbon/human/H = loc - if(istype(H) && H.back) - var/obj/item/weapon/rig/suit = H.back - if(istype(suit) && suit.cell && suit.cell.charge >= 250) - suit.cell.use(250) - var/prog_path = text2path(projectile_type) - in_chamber = new prog_path(src) - return 1 + var/obj/item/rig_module/module = loc + if(!istype(module)) + return 0 + if(module.holder && module.holder.wearer) + var/mob/living/carbon/human/H = module.holder.wearer + if(istype(H) && H.back) + var/obj/item/weapon/rig/suit = H.back + if(istype(suit) && suit.cell && suit.cell.charge >= 250) + suit.cell.use(250) + var/prog_path = text2path(projectile_type) + in_chamber = new prog_path(src) + return 1 return 0 /obj/item/weapon/gun/energy/gun/nuclear