diff --git a/cfg/admin.txt b/cfg/admin.txt index 5a06cec4a9..ea2886f6e3 100644 --- a/cfg/admin.txt +++ b/cfg/admin.txt @@ -122,4 +122,4 @@ excessiveuseofcobby role=admin plizzard role=admin octareenroon91 role=admin serpentarium role=admin - +cebutris role=admin diff --git a/modular_citadel/citadel_ghostrole_spawners.dm b/modular_citadel/citadel_ghostrole_spawners.dm index b0cddbd594..b7f3897ba7 100644 --- a/modular_citadel/citadel_ghostrole_spawners.dm +++ b/modular_citadel/citadel_ghostrole_spawners.dm @@ -32,6 +32,34 @@ r_pocket = /obj/item/melee/transforming/energy/sword/cx suit = /obj/item/clothing/suit/space/hardsuit/lavaknight suit_store = /obj/item/tank/internals/oxygen + id = /obj/item/card/id/knight + +/datum/outfit/lavaknight/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + if(visualsOnly) + return + + var/obj/item/card/id/knight/W = H.wear_id + W.assignment = "Knight" + W.registered_name = H.real_name + W.id_color = "#0000FF" //Regular knights get simple blue. Doesn't matter much because it's variable anyway + W.update_label(H.real_name) + W.update_icon() + +/datum/outfit/lavaknight/captain + name ="Cydonian Knight Captain" + l_pocket = /obj/item/twohanded/hypereutactic + +/datum/outfit/lavaknight/captain/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + if(visualsOnly) + return + + var/obj/item/card/id/knight/W = H.wear_id + W.assignment = "Knight Captain" + W.registered_name = H.real_name + W.id_color = "#FFD700" //Captains get gold, duh. Doesn't matter because it's variable anyway + W.update_label(H.real_name) + W.update_icon() + /obj/effect/mob_spawn/human/lavaknight/captain name = "odd gilded cryogenics pod" @@ -40,4 +68,4 @@ You cannot remember where you came from. However, a few things remain burnt into your mind, most prominently a vow to never harm another sapient being under any circumstances unless it is hellbent on ending your life. \ Remember: hostile creatures and such are fair game for attacking, but under no circumstances are you to attack anything capable of thought and/or speech unless it has made it its life's calling to chase you to the ends of the earth. \ You feel a natural instict to lead, and as such, you should strive to lead your comrades to safety, and hopefully home. You also feel a burning determination to uphold your vow, as well as your fellow comrade's." - l_pocket = /obj/item/twohanded/hypereutactic + outfit = /datum/outfit/lavaknight/captain diff --git a/modular_citadel/code/game/objects/ids.dm b/modular_citadel/code/game/objects/ids.dm new file mode 100644 index 0000000000..6604cac13d --- /dev/null +++ b/modular_citadel/code/game/objects/ids.dm @@ -0,0 +1,46 @@ + +//Polychromatic Knight Badge + +/obj/item/card/id/knight + var/id_color = "#00FF00" //defaults to green + name = "knight badge" + icon = 'modular_citadel/icons/obj/id.dmi' + icon_state = "knight" + desc = "A badge denoting the owner as a knight! It has a strip for swiping like an ID" + +/obj/item/card/id/knight/update_label(newname, newjob) + . = ..() + if(newname || newjob) + name = "[(!newname) ? "identification card" : "[newname]'s Knight Badge"][(!newjob) ? "" : " ([newjob])"]" + return + + name = "[(!registered_name) ? "identification card" : "[registered_name]'s Knight Badge"][(!assignment) ? "" : " ([assignment])"]" + +/obj/item/card/id/knight/update_icon() + var/mutable_appearance/id_overlay = mutable_appearance('modular_citadel/icons/obj/id.dmi', "knight_overlay") + + if(id_color) + id_overlay.color = id_color + cut_overlays() + + add_overlay(id_overlay) + +/obj/item/card/id/knight/AltClick(mob/living/user) + if(!in_range(src, user)) //Basic checks to prevent abuse + return + if(user.incapacitated() || !istype(user)) + to_chat(user, "You can't do that right now!") + return + if(alert("Are you sure you want to recolor your id?", "Confirm Repaint", "Yes", "No") == "Yes") + var/energy_color_input = input(usr,"Choose Energy Color") as color|null + if(energy_color_input) + id_color = sanitize_hexcolor(energy_color_input, desired_format=6, include_crunch=1) + update_icon() + +/obj/item/card/id/knight/Initialize() + . = ..() + update_icon() + +/obj/item/card/id/knight/examine(mob/user) + ..() + to_chat(user, "Alt-click to recolor it.") \ No newline at end of file diff --git a/modular_citadel/icons/obj/id.dmi b/modular_citadel/icons/obj/id.dmi new file mode 100644 index 0000000000..653542e93d Binary files /dev/null and b/modular_citadel/icons/obj/id.dmi differ diff --git a/tgstation.dme b/tgstation.dme index 8cacdb79b4..eedab7cf86 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -2502,6 +2502,7 @@ #include "modular_citadel\code\datums\mutations\hulk.dm" #include "modular_citadel\code\game\gamemodes\miniantags\bot_swarm\swarmer_event.dm" #include "modular_citadel\code\game\machinery\Sleeper.dm" +#include "modular_citadel\code\game\objects\ids.dm" #include "modular_citadel\code\game\objects\items\handcuffs.dm" #include "modular_citadel\code\game\objects\items\devices\aicard.dm" #include "modular_citadel\code\game\objects\items\devices\PDA\PDA.dm"