From 127101d762767bf3e220c792a7434ba8913ac37d Mon Sep 17 00:00:00 2001 From: "Wowzewow (Wezzy)" <42310821+alsoandanswer@users.noreply.github.com> Date: Fri, 23 Jun 2023 05:24:53 +0800 Subject: [PATCH] Better Flagpatches (#16433) * Flagpatches - imageadd: "Adds more generic flagpatch shapes. Improves how flagpatch sprites are shaded." * fixes * fix --- .../loadout/loadout_accessories.dm | 16 +++++-- code/modules/clothing/suits/modular_armor.dm | 33 +++++++++++++- html/changelogs/wezzy_nienna_flagpatch.yml | 41 ++++++++++++++++++ .../kit/modular_armor_accessories.dmi | Bin 5906 -> 4746 bytes 4 files changed, 84 insertions(+), 6 deletions(-) create mode 100644 html/changelogs/wezzy_nienna_flagpatch.yml diff --git a/code/modules/client/preference_setup/loadout/loadout_accessories.dm b/code/modules/client/preference_setup/loadout/loadout_accessories.dm index f418d79fb0a..2c0cfdc2901 100644 --- a/code/modules/client/preference_setup/loadout/loadout_accessories.dm +++ b/code/modules/client/preference_setup/loadout/loadout_accessories.dm @@ -514,12 +514,20 @@ path = /obj/item/clothing/accessory/bandanna/colorable flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION | GEAR_HAS_COLOR_SELECTION -/datum/gear/accessory/flagpatch_colorable - display_name = "generic flagpatch" - path = /obj/item/clothing/accessory/flagpatch +/datum/gear/accessory/flagpatch + display_name = "generic flagpatch selection" + path = /obj/item/clothing/accessory/flagpatch/rectangular flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION | GEAR_HAS_COLOR_SELECTION cost = 0 +/datum/gear/accessory/flagpatch/New() + ..() + var/list/flagpatch = list() + flagpatch["rectangular flagpatch"] = /obj/item/clothing/accessory/flagpatch/rectangular + flagpatch["triangular flagpatch"] = /obj/item/clothing/accessory/flagpatch/triangular + flagpatch["circular flagpatch"] = /obj/item/clothing/accessory/flagpatch/circular + flagpatch["square flagpatch"] = /obj/item/clothing/accessory/flagpatch/square + gear_tweaks += new /datum/gear_tweak/path(flagpatch) /datum/gear/accessory/flagpatch_national display_name = "flagpatch selection" @@ -629,4 +637,4 @@ /datum/gear/accessory/visegradi_sweater display_name = "visegradi patterned sweater" path = /obj/item/clothing/accessory/sweater/visegradi - flags = GEAR_HAS_DESC_SELECTION | GEAR_HAS_COLOR_SELECTION \ No newline at end of file + flags = GEAR_HAS_DESC_SELECTION | GEAR_HAS_COLOR_SELECTION diff --git a/code/modules/clothing/suits/modular_armor.dm b/code/modules/clothing/suits/modular_armor.dm index 3da4df047b1..e5e96571430 100644 --- a/code/modules/clothing/suits/modular_armor.dm +++ b/code/modules/clothing/suits/modular_armor.dm @@ -320,12 +320,40 @@ desc = "A simple strip of fabric attached to a vest or helmet typically used to denote the wearer's \ organization or nationality." icon = 'icons/clothing/kit/modular_armor_accessories.dmi' - icon_state = "flagpatch_colorable" - item_state = "flagpatch_colorable" + icon_state = "flagpatch" + item_state = "flagpatch" + var/shading_state = "flagpatch" contained_sprite = TRUE slot = ACCESSORY_SLOT_GENERIC flippable = FALSE +/obj/item/clothing/accessory/flagpatch/Initialize() + . = ..() + var/icon/shading_icon + var/icon/flagpatch_icon = new(icon, icon_state) + if(shading_state) + shading_icon = new(icon, shading_state) + flagpatch_icon.Blend(shading_icon, ICON_MULTIPLY) + add_overlay(flagpatch_icon) + +/obj/item/clothing/accessory/flagpatch/rectangular + shading_state = null + +/obj/item/clothing/accessory/flagpatch/triangular + icon_state = "flagpatch_triangular" + item_state = "flagpatch_triangular" + shading_state = null + +/obj/item/clothing/accessory/flagpatch/circular + icon_state = "flagpatch_circular" + item_state = "flagpatch_circular" + shading_state = null + +/obj/item/clothing/accessory/flagpatch/square + icon_state = "flagpatch_square" + item_state = "flagpatch_square" + shading_state = null + /obj/item/clothing/accessory/flagpatch/biesel name = "republic of biesel flagpatch" desc = "A flagpatch representing the Republic of Biesel. A common sight in the CRZ, they became incredibly popular \ @@ -440,6 +468,7 @@ holographic patches made of hardlight to make their affiliation clear no matter the conditions." icon_state = "flagpatch_elyra" item_state = "flagpatch_elyra" + shading_state = "flagpatch_triangular" /obj/item/clothing/accessory/flagpatch/konyang name = "konyang flagpatch" diff --git a/html/changelogs/wezzy_nienna_flagpatch.yml b/html/changelogs/wezzy_nienna_flagpatch.yml new file mode 100644 index 00000000000..fe079e34609 --- /dev/null +++ b/html/changelogs/wezzy_nienna_flagpatch.yml @@ -0,0 +1,41 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +# balance +# admin +# backend +# security +# refactor +################################# + +# Your name. +author: Wowzewow(Wezzy), NiennaB + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - imageadd: "Adds more generic flagpatch shapes. Improves how flagpatch sprites are shaded." diff --git a/icons/clothing/kit/modular_armor_accessories.dmi b/icons/clothing/kit/modular_armor_accessories.dmi index 9aa5ba76c098b6c43ac4b2f6d668f04b82699935..88fd28591e1e59af809feb1cdf65c14baeb7aa39 100644 GIT binary patch literal 4746 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 JDy}#_`X7X482kVL literal 5906 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