diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index 13a02e48613..2a16ab904f2 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -179,6 +179,10 @@ var/mob/living/carbon/human/H = usr H.quick_equip() + if("current sting") + var/mob/living/carbon/U = usr + U.unset_sting() + if("resist") if(isliving(usr)) var/mob/living/L = usr diff --git a/code/game/gamemodes/changeling/changeling_powers.dm b/code/game/gamemodes/changeling/changeling_powers.dm index 0c10da8a32b..f5a625bbfbc 100644 --- a/code/game/gamemodes/changeling/changeling_powers.dm +++ b/code/game/gamemodes/changeling/changeling_powers.dm @@ -28,6 +28,7 @@ //removes our changeling verbs /mob/proc/remove_changeling_powers() + src:unset_sting() for(var/datum/power/changeling/P in powerinstances) if(P.isVerb) verbs -= P.verbpath @@ -260,8 +261,6 @@ O.make_changeling() O.unset_sting() - for(var/obj/item/C in O.loc) - O.equip_to_appropriate_slot(C) //Rejoice feedback_add_details("changeling_powers","LFT") . = 1 del(src) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index dce77e5c866..bffea2cde29 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -49,7 +49,7 @@ /mob/living/carbon/ClickOn(var/atom/A, var/params) var/list/L = params2list(params) L.Remove("left", "icon-y", "icon-x", "screen-loc") //remove all the default params - if(!L.len && src.mind.changeling && src.mind.changeling.chosen_sting && (istype(A, /mob/living/carbon)) && (A != src)) //if there are still params then its not a usual click so pass it to parent + if(L["alt"] && src.mind.changeling && src.mind.changeling.chosen_sting && (istype(A, /mob/living/carbon)) && (A != src)) //checks for alt+click if(world.time <= next_click) return next_click = world.time + 5 diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index b1f28299457..62252ab6767 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -2,6 +2,10 @@ if (monkeyizing) return //Handle items on mob + var/obj/item/rHand = r_hand + var/obj/item/lHand = l_hand + var/obj/item/Mask = wear_mask + var/obj/item/Back = back //first implants var/list/implants = list() @@ -9,11 +13,21 @@ for(var/obj/item/weapon/implant/W in src) implants += W - //now the rest - if (tr_flags & TR_KEEPITEMS) + if(tr_flags & TR_KEEPITEMS) for(var/obj/item/W in (src.contents-implants)) drop_from_inventory(W) + if(tr_flags & TR_KEEPITEMS) + if(rHand) + rHand.loc = src + if(lHand) + lHand.loc = src + if(Back) + Back.loc = src + if(Mask) + Mask.loc = src + + //Make mob invisible and spawn animation regenerate_icons() monkeyizing = 1 @@ -29,8 +43,19 @@ sleep(22) //animation = null var/mob/living/carbon/monkey/O = new /mob/living/carbon/monkey( loc ) + if(tr_flags & TR_KEEPITEMS) + if(rHand) + O.equip_to_slot(rHand, slot_r_hand) + if(lHand) + O.equip_to_slot(lHand, slot_l_hand) + if(Mask) + O.equip_to_slot(Mask, slot_wear_mask) + if(Back) + O.equip_to_slot(Back, slot_back) del(animation) + + // hash the original name? if (tr_flags & TR_HASHNAME) O.name = "monkey ([copytext(md5(real_name), 2, 6)])" @@ -123,6 +148,8 @@ flick("monkey2h", animation) sleep(22) var/mob/living/carbon/human/O = new( loc ) + for(var/obj/item/C in O.loc) + O.equip_to_appropriate_slot(C) del(animation) diff --git a/icons/mob/screen_gen.dmi b/icons/mob/screen_gen.dmi index 89a2accbeea..1123fab1a60 100644 Binary files a/icons/mob/screen_gen.dmi and b/icons/mob/screen_gen.dmi differ diff --git a/icons/obj/weapons.dmi b/icons/obj/weapons.dmi index e1728bc3504..76e5411395b 100644 Binary files a/icons/obj/weapons.dmi and b/icons/obj/weapons.dmi differ