From 09fee94db5bd0627f522e2a561b09edfa3589bdd Mon Sep 17 00:00:00 2001 From: Remie Richards Date: Sat, 3 Sep 2016 11:40:21 +0100 Subject: [PATCH] Second round of fixes: - Fixed+Future proofed Mutant Parts Sprites - Fixed Lesser Summon Guns activating the wrong hand - Fixes stacks merge()ing with and consuming themselves --- code/game/objects/items/stacks/stack.dm | 2 ++ .../mob/living/carbon/human/species.dm | 23 +++++++++++++++--- .../spells/spell_types/infinite_guns.dm | 1 + icons/mob/mutant_bodyparts.dmi | Bin 45150 -> 45166 bytes icons/mob/wings.dmi | Bin 13965 -> 13976 bytes 5 files changed, 22 insertions(+), 4 deletions(-) diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index 9f742a68855..2e765ab4e05 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -200,6 +200,8 @@ update_icon() /obj/item/stack/proc/merge(obj/item/stack/S) //Merge src into S, as much as possible + if(S == src) //amusingly this can cause a stack to consume itself, let's not allow that. + return var/transfer = get_amount() if(S.is_cyborg) transfer = min(transfer, round((S.source.max_energy - S.source.energy) / S.cost)) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 32d34cbaf95..699ded25a7a 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -380,6 +380,8 @@ var/image/I for(var/layer in relevent_layers) + var/layertext = mutant_bodyparts_layertext(layer) + for(var/bodypart in bodyparts_to_add) var/datum/sprite_accessory/S switch(bodypart) @@ -423,9 +425,9 @@ var/icon_string if(S.gender_specific) - icon_string = "[g]_[bodypart]_[S.icon_state]_[layer]" + icon_string = "[g]_[bodypart]_[S.icon_state]_[layertext]" else - icon_string = "m_[bodypart]_[S.icon_state]_[layer]" + icon_string = "m_[bodypart]_[S.icon_state]_[layertext]" I = image("icon" = S.icon, "icon_state" = icon_string, "layer" =- layer) @@ -455,9 +457,9 @@ if(S.hasinner) if(S.gender_specific) - icon_string = "[g]_[bodypart]inner_[S.icon_state]_[layer]" + icon_string = "[g]_[bodypart]inner_[S.icon_state]_[layertext]" else - icon_string = "m_[bodypart]inner_[S.icon_state]_[layer]" + icon_string = "m_[bodypart]inner_[S.icon_state]_[layertext]" I = image("icon" = S.icon, "icon_state" = icon_string, "layer" =- layer) @@ -473,6 +475,19 @@ H.apply_overlay(BODY_ADJ_LAYER) H.apply_overlay(BODY_FRONT_LAYER) + +//This exists so sprite accessories can still be per-layer without having to include that layer's +//number in their sprite name, which causes issues when those numbers change. +/datum/species/proc/mutant_bodyparts_layertext(layer) + switch(layer) + if(BODY_BEHIND_LAYER) + return "BEHIND" + if(BODY_ADJ_LAYER) + return "ADJ" + if(BODY_FRONT_LAYER) + return "FRONT" + + /datum/species/proc/spec_life(mob/living/carbon/human/H) if(NOBREATH in specflags) H.setOxyLoss(0) diff --git a/code/modules/spells/spell_types/infinite_guns.dm b/code/modules/spells/spell_types/infinite_guns.dm index 10b8612c858..d2cc1b32de3 100644 --- a/code/modules/spells/spell_types/infinite_guns.dm +++ b/code/modules/spells/spell_types/infinite_guns.dm @@ -20,3 +20,4 @@ C.drop_item() var/obj/item/weapon/gun/projectile/shotgun/boltaction/enchanted/GUN = new C.put_in_hands(GUN) + C.swap_hand(C.get_held_index_of_item(GUN)) diff --git a/icons/mob/mutant_bodyparts.dmi b/icons/mob/mutant_bodyparts.dmi index 518a57469e54f8ced1d063d6b4213559a3a7d29d..eafe937dc2c0b882ef68637ac0a390ad565ee2e4 100644 GIT binary patch delta 653 zcmV;80&@M{-~#U80+1wsWO`IsbVOxyV{&P5bZKvH004NLy_rvM+AtW#&&j8V+AEs2 zt~>0o!z$Ruq%mpQJu<{3)*L&togu#cLQ*P9TkOYwDh?3H&(Gs0iQl~8y0}|>U9O7x zk7fRkD$S%QJ{7lb-sahkRi+s>-rwX|Ls{LJX+s-g=BAU#wpFC1htKa`fK9NJLgx(J-P_E+YC%4^E` z-U;3Mqiwk(bv;n7H|igUZz(7H!!Wb6SDq=lW1@19c+p#=@h=qgPz8I9jH8e&B5OMm zD&W$*#L`HXl0#z@d>~#SC+o5sOCaU>Wbc|HNu)cQtQ}eKaY!GMtr$icKVeALCO3*e zvVd$2bm;hh*1O3l0?FdBwekVuJGV#98d)Qa?&SE$barz)v#N&2hDuudm`H(MZhOK- ztgT-piNsTQg~MTQLc=vuE;3FHuFv?CC|z!d`&0Y}0DPnhN-!aYiiuE<>d9s9!!tqU n*TrHrAO8*d52_@xv$L)|C;$K;07*naRCt{1-Cu~aj{?uF)Q?7E delta 623 zcmV-#0+9Xg-~!&@0+1wsRC-icbVOxyV{&P5bZKvH004NLwOGq;;~*4Wo3B9aHX2Qn zbTJEWMyWZsZvX-!v4Qc13a4C5akSm3m#4_y+yHde|ZSjN@Q8<2ZDh{T>*?%Qz19GL8eLy|F`RykxG2(T@OU z2h(BzUNYAsHkZ$TD5N>G*8eDombA|J#;dN^zz2ImNb67%`@v}r40}X4)?vn(5gPj3 z9h}k{x9ooq__`+q{GRu{GW;w7y5<)MtVYK>;P(F+h0xO02$akSKq{aY^8rFA!S}lh z07PMD+f&mq_pXfaxEFv+DC(HLQbn9yUm+!Dz(@Sb^4+?BI!$-SwLU?Rhr5wob7Vp& zBOvd}KSfVXAqvYtzW;1iH<)Sac9_^WV$P48X>#(WZ(Ko<6_vPi+RP=w6KcNqLC@bXfH|Eh&HlZ^hMnlz6i73FkPb5 zJ_6~T_t10Ze6we;uihWS@XwS8YGn*}V8q4Aa2xadMJVKvzPxSd=5fFDZ*Bkpc$}TiF$%&k7zWTe|0zD&T@>S( z!IG#E8bRDkp)n2ERFYt?@7hJN9^k<%QK_RgkhP|ljmeJz0(`Y5Hu*015a2svz4flo z5ZH1`xy=>=#n4PXxYV@4*+)~UlQyy-*7=wqz=_>sJJf&c&j delta 167 zcmV;Y09gN+ZH;Y^B!7~6R9JLGWpiV4X>fFDZ*Bkpc$}5au?mAQ6h`4W_bGmKFKvzE zT}q^6&{vRvX%eVWl2Bj2tBauf`QX%eb#FaD^_qS*<*-CB