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)