From 514d49340dae5df45efb0ff2dfb4230954a3baad Mon Sep 17 00:00:00 2001 From: Citinited Date: Wed, 31 Jan 2018 20:55:10 +0000 Subject: [PATCH 1/4] Flag tweaks -You can now roll up flags -Fixes an issue with chameleon flags not correctly updating their icon --- code/game/objects/items/flag.dm | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/code/game/objects/items/flag.dm b/code/game/objects/items/flag.dm index 75b2ad94d95..d623609c817 100644 --- a/code/game/objects/items/flag.dm +++ b/code/game/objects/items/flag.dm @@ -1,4 +1,6 @@ /obj/item/flag + name = "flag" + desc = "It's a flag." icon = 'icons/obj/flag.dmi' icon_state = "ntflag" lefthand_file = 'icons/mob/inhands/flags_lefthand.dmi' @@ -6,13 +8,19 @@ w_class = WEIGHT_CLASS_BULKY burntime = 20 burn_state = FLAMMABLE + var/rolled = FALSE /obj/item/flag/attackby(obj/item/weapon/W, mob/user, params) ..() if(is_hot(W) && burn_state != ON_FIRE) - user.visible_message("[user] lights the [name] with [W].") + user.visible_message("[user] lights [src] with [W].", "You light [src] with [W].", "You hear a low whoosh.") fire_act() +/obj/item/flag/attack_self(mob/user) + rolled = !rolled + user.visible_message("[user] [rolled ? "rolls up" : "unfurls"] [src].", "You [rolled ? "roll up" : "unfurl"] [src].", "You hear fabric rustling.") + update_icon() + /obj/item/flag/fire_act(global_overlay = FALSE) ..() update_icon() @@ -23,11 +31,16 @@ /obj/item/flag/update_icon() overlays.Cut() + icon_state = replacetext(icon_state, "_rolled", "") //This will totally not break in the future + item_state = icon_state + if(rolled) + icon_state = "[icon_state]_rolled" if(burn_state == ON_FIRE) + item_state = "[item_state]_fire" + if(burn_state == ON_FIRE && rolled) + overlays += image('icons/obj/flag.dmi', src , "fire_rolled") + else if(burn_state == ON_FIRE && !rolled) overlays += image('icons/obj/flag.dmi', src , "fire") - item_state = "[icon_state]_fire" - else - item_state = initial(icon_state) if(ismob(loc)) var/mob/M = loc M.update_inv_r_hand() @@ -187,11 +200,11 @@ desc = "A poor recreation of the official NT flag. It seems to shimmer a little." icon_state = "ntflag" origin_tech = "syndicate=4;magnets=4" - var/used = 0 + var/used = FALSE /obj/item/flag/chameleon/attack_self(mob/user) if(used) - return + return ..() var/list/flag_types = typesof(/obj/item/flag) - list(src.type, /obj/item/flag) var/list/flag = list() @@ -212,7 +225,7 @@ name = chosen_flag.name icon_state = chosen_flag.icon_state desc = chosen_flag.desc - used = 1 + used = TRUE /obj/item/flag/chameleon/burn() explosion(loc,1,2,4,4, flame_range = 4) From 52b2d28d8490f029c6d8457eb4cabfe6603ab197 Mon Sep 17 00:00:00 2001 From: Citinited Date: Wed, 31 Jan 2018 23:17:54 +0000 Subject: [PATCH 2/4] Adds missing base to rolled-up kidan flag --- icons/obj/flag.dmi | Bin 40163 -> 40162 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/flag.dmi b/icons/obj/flag.dmi index 8b7b2d4a517b7b5e096abae36383b9cef936dffa..309b1d38d877cf3171d4a2418ce18b1ddc28df9d 100644 GIT binary patch delta 3480 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 Hu0mjf8>84< From 9929e01332be988127efa8e308aef62f2f467937 Mon Sep 17 00:00:00 2001 From: Citinited Date: Fri, 2 Feb 2018 14:27:54 +0000 Subject: [PATCH 3/4] better way of handling chameleon flag icon_state --- code/game/objects/items/flag.dm | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/flag.dm b/code/game/objects/items/flag.dm index d623609c817..2179a9f4012 100644 --- a/code/game/objects/items/flag.dm +++ b/code/game/objects/items/flag.dm @@ -31,7 +31,11 @@ /obj/item/flag/update_icon() overlays.Cut() - icon_state = replacetext(icon_state, "_rolled", "") //This will totally not break in the future + if(istype(src, /obj/item/flag/chameleon)) + var/obj/item/flag/chameleon/C = src + icon_state = C.updated_icon_state + else + icon_state = initial(icon_state) item_state = icon_state if(rolled) icon_state = "[icon_state]_rolled" @@ -200,8 +204,13 @@ desc = "A poor recreation of the official NT flag. It seems to shimmer a little." icon_state = "ntflag" origin_tech = "syndicate=4;magnets=4" + var/updated_icon_state = null var/used = FALSE +/obj/item/flag/chameleon/New() + updated_icon_state = icon_state + ..() + /obj/item/flag/chameleon/attack_self(mob/user) if(used) return ..() @@ -221,9 +230,10 @@ var/obj/item/flag/chosen_flag = flag[input_flag] - if(chosen_flag) + if(chosen_flag && !used) name = chosen_flag.name icon_state = chosen_flag.icon_state + updated_icon_state = icon_state desc = chosen_flag.desc used = TRUE From 065965df0a1a9c67b00d707634157a13dfd6e735 Mon Sep 17 00:00:00 2001 From: Citinited Date: Fri, 16 Feb 2018 19:17:04 +0000 Subject: [PATCH 4/4] Better way of handling icon_state code --- code/game/objects/items/flag.dm | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/code/game/objects/items/flag.dm b/code/game/objects/items/flag.dm index 2179a9f4012..3c9be2c67de 100644 --- a/code/game/objects/items/flag.dm +++ b/code/game/objects/items/flag.dm @@ -31,11 +31,7 @@ /obj/item/flag/update_icon() overlays.Cut() - if(istype(src, /obj/item/flag/chameleon)) - var/obj/item/flag/chameleon/C = src - icon_state = C.updated_icon_state - else - icon_state = initial(icon_state) + updateFlagIcon() item_state = icon_state if(rolled) icon_state = "[icon_state]_rolled" @@ -50,6 +46,9 @@ M.update_inv_r_hand() M.update_inv_l_hand() +/obj/item/flag/proc/updateFlagIcon() + icon_state = initial(icon_state) + /obj/item/flag/nt name = "Nanotrasen flag" desc = "A flag proudly boasting the logo of NT." @@ -240,3 +239,6 @@ /obj/item/flag/chameleon/burn() explosion(loc,1,2,4,4, flame_range = 4) qdel(src) + +/obj/item/flag/chameleon/updateFlagIcon() + icon_state = updated_icon_state