From 7a71fe000b8029985be3f9700cb77d4e18f076fe Mon Sep 17 00:00:00 2001 From: Yoshax Date: Thu, 1 Sep 2016 16:08:22 +0100 Subject: [PATCH] Fixes #2365 --- .../gamemodes/changeling/generic_equip_procs.dm | 15 ++++++++++----- code/game/gamemodes/changeling/powers/armor.dm | 4 ++-- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/code/game/gamemodes/changeling/generic_equip_procs.dm b/code/game/gamemodes/changeling/generic_equip_procs.dm index 109f326ab0..e8ed12a446 100644 --- a/code/game/gamemodes/changeling/generic_equip_procs.dm +++ b/code/game/gamemodes/changeling/generic_equip_procs.dm @@ -1,14 +1,19 @@ //This is a generic proc that should be called by other ling armor procs to equip them. -/mob/proc/changeling_generic_armor(var/armor_type, var/helmet_type, var/boot_type) - var/datum/changeling/changeling = changeling_power(20,1,100,CONSCIOUS) - if(!changeling) - return +/mob/proc/changeling_generic_armor(var/armor_type, var/helmet_type, var/boot_type, var/chem_cost) if(!ishuman(src)) return 0 var/mob/living/carbon/human/M = src + if(istype(M.wear_suit, armor_type) || istype(M.head, helmet_type) || istype(M.shoes, boot_type)) + chem_cost = 0 + + var/datum/changeling/changeling = changeling_power(chem_cost, 1, 100, CONSCIOUS) + + if(!changeling) + return + //First, check if we're already wearing the armor, and if so, take it off. if(istype(M.wear_suit, armor_type) || istype(M.head, helmet_type) || istype(M.shoes, boot_type)) M.visible_message("[M] casts off their [M.wear_suit.name]!", @@ -39,7 +44,7 @@ var/obj/item/clothing/shoes/B = new boot_type(src) src.equip_to_slot_or_del(B, slot_shoes) - src.mind.changeling.chem_charges -= 20 + src.mind.changeling.chem_charges -= chem_cost playsound(src, 'sound/effects/blobattack.ogg', 30, 1) M.update_inv_wear_suit() M.update_inv_head() diff --git a/code/game/gamemodes/changeling/powers/armor.dm b/code/game/gamemodes/changeling/powers/armor.dm index 6241f2a54d..ac98f15c40 100644 --- a/code/game/gamemodes/changeling/powers/armor.dm +++ b/code/game/gamemodes/changeling/powers/armor.dm @@ -9,7 +9,7 @@ /mob/proc/changeling_spacesuit() set category = "Changeling" set name = "Organic Space Suit (20)" - if(changeling_generic_armor(/obj/item/clothing/suit/space/changeling,/obj/item/clothing/head/helmet/space/changeling,/obj/item/clothing/shoes/magboots/changeling)) + if(changeling_generic_armor(/obj/item/clothing/suit/space/changeling,/obj/item/clothing/head/helmet/space/changeling,/obj/item/clothing/shoes/magboots/changeling, 20)) return 1 return 0 @@ -25,7 +25,7 @@ set category = "Changeling" set name = "Organic Spacearmor (20)" - if(changeling_generic_armor(/obj/item/clothing/suit/space/changeling/armored,/obj/item/clothing/head/helmet/space/changeling/armored,/obj/item/clothing/shoes/magboots/changeling/armored)) + if(changeling_generic_armor(/obj/item/clothing/suit/space/changeling/armored,/obj/item/clothing/head/helmet/space/changeling/armored,/obj/item/clothing/shoes/magboots/changeling/armored, 20)) return 1 return 0