diff --git a/code/game/jobs/faction/hephaestus.dm b/code/game/jobs/faction/hephaestus.dm index 4e402958d72..56702ee117d 100644 --- a/code/game/jobs/faction/hephaestus.dm +++ b/code/game/jobs/faction/hephaestus.dm @@ -112,3 +112,7 @@ suit = null implants = null id = /obj/item/card/id/hephaestus + + backpack_contents = list( + /obj/item/stamp/hephaestus = 1 + ) \ No newline at end of file diff --git a/code/game/jobs/faction/idris.dm b/code/game/jobs/faction/idris.dm index 4c836995f9d..74be215b60a 100644 --- a/code/game/jobs/faction/idris.dm +++ b/code/game/jobs/faction/idris.dm @@ -111,3 +111,7 @@ suit = null implants = null id = /obj/item/card/id/idris + + backpack_contents = list( + /obj/item/stamp/idris = 1 + ) \ No newline at end of file diff --git a/code/game/jobs/faction/zavodskoi.dm b/code/game/jobs/faction/zavodskoi.dm index 3a297f51807..288fc0d4a6c 100644 --- a/code/game/jobs/faction/zavodskoi.dm +++ b/code/game/jobs/faction/zavodskoi.dm @@ -111,3 +111,7 @@ suit = null implants = null id = /obj/item/card/id/zavodskoi + + backpack_contents = list( + /obj/item/stamp/zavodskoi = 1 + ) \ No newline at end of file diff --git a/code/game/jobs/faction/zeng_hu.dm b/code/game/jobs/faction/zeng_hu.dm index da6c7f805ee..670395bed87 100644 --- a/code/game/jobs/faction/zeng_hu.dm +++ b/code/game/jobs/faction/zeng_hu.dm @@ -120,4 +120,8 @@ head = null suit = null implants = null - id = /obj/item/card/id/zeng_hu \ No newline at end of file + id = /obj/item/card/id/zeng_hu + + backpack_contents = list( + /obj/item/stamp/zeng_hu = 1 + ) \ No newline at end of file diff --git a/code/modules/background/citizenship/human.dm b/code/modules/background/citizenship/human.dm index 00a5d76cf98..cecf9a6b747 100644 --- a/code/modules/background/citizenship/human.dm +++ b/code/modules/background/citizenship/human.dm @@ -32,6 +32,7 @@ backpack_contents = list( /obj/item/storage/box/ceti_visa = 1, /obj/item/storage/box/tcfl_pamphlet = 1, + /obj/item/stamp/biesel = 1, /obj/item/gun/energy/pistol = 1 ) @@ -67,6 +68,7 @@ accessory = /obj/item/clothing/accessory/sol_pin backpack_contents = list( /obj/item/storage/box/sol_visa = 1, + /obj/item/stamp/sol = 1, /obj/item/device/camera = 1, /obj/item/gun/projectile/pistol/sol = 1 ) diff --git a/code/modules/paperwork/stamps.dm b/code/modules/paperwork/stamps.dm index fedd6a8ebaf..092242a95fc 100644 --- a/code/modules/paperwork/stamps.dm +++ b/code/modules/paperwork/stamps.dm @@ -51,24 +51,63 @@ name = "centcomm rubber stamp" icon_state = "stamp-cent" +/obj/item/stamp/einstein + name = "einstein engines rubber stamp" + icon_state = "stamp-einstein" + +/obj/item/stamp/hephaestus + name = "hephaestus industries rubber stamp" + icon_state = "stamp-heph" + +/obj/item/stamp/idris + name = "idris incorporated rubber stamp" + icon_state = "stamp-idris" + +/obj/item/stamp/zavodskoi + name = "zavodskoi interstellar rubber stamp" + icon_state = "stamp-zavod" + +/obj/item/stamp/zeng_hu + name = "zeng-hu pharmaceuticals rubber stamp" + icon_state = "stamp-zenghu" + +/obj/item/stamp/biesel + name = "\improper Republic of Biesel rubber stamp" + icon_state = "stamp-biesel" + +/obj/item/stamp/sol + name = "\improper Sol Alliance rubber stamp" + icon_state = "stamp-sol" + // Syndicate stamp to forge documents. /obj/item/stamp/chameleon/attack_self(mob/user as mob) + var/list/stamp_types = typesof(/obj/item/stamp) - src.type - subtypesof(/obj/item/stamp/fluff) + var/list/stamp_selection = list() - var/list/stamp_types = typesof(/obj/item/stamp) - src.type // Get all stamp types except our own - var/list/stamps = list() - - // Generate them into a list for(var/stamp_type in stamp_types) var/obj/item/stamp/S = new stamp_type - stamps[capitalize(S.name)] = S + stamp_selection[capitalize(S.name)] = S - var/list/show_stamps = list("EXIT" = null) + sortList(stamps) // the list that will be shown to the user to pick from - - var/input_stamp = input(user, "Choose a stamp to disguise as.", "Choose a stamp.") in show_stamps + var/input_stamp = input("Choose a stamp to disguise as.", "Chameleon stamp.") as null|anything in sortList(stamp_selection) + if(isnull(input_stamp)) + return if(user && (src in user.contents)) - var/obj/item/stamp/chosen_stamp = stamps[capitalize(input_stamp)] + var/obj/item/stamp/chosen_stamp = stamp_selection[capitalize(input_stamp)] if(chosen_stamp) name = chosen_stamp.name icon_state = chosen_stamp.icon_state + +/obj/item/stamp/chameleon/verb/rename() + set name = "Rename stamp" + set category = "Object" + set src in usr + + var/n_name = sanitizeSafe(input(usr, "Which faction or rank would you like your stamp to represent?", "Stamp Designation", null) as text, MAX_NAME_LEN) + if(loc == usr && n_name) + //Attempts to keep the custom stamp name consistent + n_name = replacetext(n_name," rubber stamp","") + n_name = replacetext(n_name," stamp","") + n_name = replacetext(n_name,"stamp","") + name = "[n_name] rubber stamp" \ No newline at end of file diff --git a/html/changelogs/Ferner-200826-coding_stampfiesta.yml b/html/changelogs/Ferner-200826-coding_stampfiesta.yml new file mode 100644 index 00000000000..4eb2bddbcac --- /dev/null +++ b/html/changelogs/Ferner-200826-coding_stampfiesta.yml @@ -0,0 +1,6 @@ +author: Ferner +delete-after: True +changes: + - rscadd: "Added some new, faction specific stamps, some corporate liaisons and consular representatives spawn with them." + - tweak: "Chameleon stamps now have a rename function, incase you need to fake the authority of a smaller faction that doesn't have an official stamp design(yet)." + - bugfix: "Chameleon stamps now exclude fluff/custom item stamps from their selection." \ No newline at end of file diff --git a/icons/obj/bureaucracy.dmi b/icons/obj/bureaucracy.dmi index e7d4c957b9d..67dc9dae6fd 100644 Binary files a/icons/obj/bureaucracy.dmi and b/icons/obj/bureaucracy.dmi differ