Knouli's Event Reward Item + Creating Event Reward Files (#3100)

* Create eventclothing.dm

* Add files via upload

* Add files via upload

* Update loadout_event_rewards.dm

* Update eventclothing.dm

* Update eventclothing.dm

* Update eventclothing.dm

* Add files via upload

* ending fix

Co-authored-by: silicons <2003111+silicons@users.noreply.github.com>
This commit is contained in:
Knouli
2021-05-17 01:25:50 -04:00
committed by GitHub
parent 08bc77572a
commit 0cd61d589c
5 changed files with 120 additions and 0 deletions

View File

@@ -17,3 +17,11 @@
display_name = "Game Boy"
path = /obj/item/instrument/gameboy
ckeywhitelist = list("jaybird1")
/datum/gear/event_reward/foxmimko
sort_category = "Event Rewards"
cost = 0
display_name = "Miko Garb"
path = /obj/item/clothing/under/event_reward/foxmiko
slot = slot_w_uniform
ckeywhitelist = list("knouli")

View File

@@ -0,0 +1,111 @@
/obj/item/clothing/under/event_reward/foxmiko
name = "Miko Garb"
desc = "The creative reinterpretation of Shinto miko attire."
body_parts_covered = UPPER_TORSO|LOWER_TORSO
icon = 'modular_citadel/icons/obj/clothing/eventclothing.dmi'
icon_override = 'modular_citadel/icons/mob/eventclothing.dmi'
icon_state = "foxmiko"
item_state = "foxmiko"
rolled_sleeves = -1 //Don't want to try and roll sleeves like you can with a normal jumpsuit
rolled_down = -1
var/kimono = 0 //Custom vars for tracking kimono and skirt state
var/skirt = 0
/obj/item/clothing/under/event_reward/foxmiko/verb/partkimono() //Verb for parting kimono - kinky. User reporting, flips state, and updates icon
set name = "Adjust Kimono"
set category = "Object"
set src in usr
if(!istype(usr, /mob/living)) //Standard checks for clothing verbs
return
if(usr.stat)
return
if(kimono) //User reporting
to_chat(usr, "You correct your kimono.")
else
to_chat(usr, "You part your kimono.")
kimono = !kimono //Switch state parted -> unparted, or unparted -> parted
switchsprite() //Proc call - handles the two states of kimono and skirt
var/mob/M = src.loc //And finally update the icon
M.update_inv_w_uniform()
update_clothing_icon()
/obj/item/clothing/under/event_reward/foxmiko/verb/liftskirt() //Verb for parting skirt - lewd. User reporting, flips state, and updates icon
set name = "Adjust Skirt"
set category = "Object"
set src in usr
if(!istype(usr, /mob/living)) //Standard checks for clothing verbs
return
if(usr.stat)
return
if(skirt) //User reporting
to_chat(usr, "You drop your skirt.")
else
to_chat(usr, "You lift your skirt.")
skirt = !skirt //Switch state lifted -> unlifeted, or unlifted -> lifted
switchsprite() //Proc call - handles the two states of kimono and skirt
var/mob/M = src.loc //And finally update the icon
M.update_inv_w_uniform()
update_clothing_icon()
/obj/item/clothing/under/event_reward/foxmiko/proc/switchsprite() //Handles the ultimate state of the icon as well as what parts of body the attire covers
body_parts_covered = initial(body_parts_covered) //Resets to default coverage for this uniform - upper and lower body
if(kimono) //If the kimono is parted
if(skirt) //If the skirt is parted too
item_state_slots[slot_w_uniform_str] = "[worn_state]_ks" //Then we want the assosiated mob icon - denoted with _ks
icon_state = "foxmiko_ks" //This is for item icon - NOT WORN ICON
body_parts_covered &= ~(UPPER_TORSO|LOWER_TORSO) //If kimono is open and skirt lifted uncover both upper and lower body
else //But skirt is not lifted too
item_state_slots[slot_w_uniform_str] = "[worn_state]_k" //We use [worn_state] rather than an explicit declaration because the game appends a _s to icon states
icon_state = "foxmiko_k"
body_parts_covered &= ~(UPPER_TORSO)
else //If kimono is not parted
if(skirt) //If skirt is lifted
item_state_slots[slot_w_uniform_str] = "[worn_state]_s" //Meaning in the icon sprite files this is foxmiko_s_s
icon_state = "foxmiko_s"
body_parts_covered &= ~(LOWER_TORSO)
else //But skirt is not lifted too - default state
item_state_slots[slot_w_uniform_str] = "[worn_state]"
icon_state = "foxmiko"
/obj/item/clothing/under/event_reward/foxmiko/proc/hide_accessory(mob/user, obj/item/clothing/accessory/A) //Proc, handles hiding and concealing accessories and user reporting
if(!LAZYLEN(accessories) || !(A in accessories)) //Double check - if there's no accessories, break it now.
return
if(A.icon_state == "") //If the icon has already been hidden
A.icon_state = initial(A.icon_state) //Revert the icon to the original state, making it visible again
A.overlay_state = initial(A.overlay_state) //As well as the overlay_state - certain accessories use both
to_chat(usr, "You reveal [A] from among your [src].") //And reports to user
else //If the icon hasn't already been hidden
A.icon_state = "" //Hide icon state
A.overlay_state = "" //Hide overlay state - certain accessories use both
to_chat(usr, "You hide [A] among your [src].") //And reports to user
var/mob/M = src.loc //And updates the icon
M.update_inv_w_uniform()
update_clothing_icon()
/obj/item/clothing/under/event_reward/foxmiko/verb/hidetie() //Verb for concealing assessory icons on mob spirt - this is a hack of the original code to remove accessories
set name = "Hide Accessory"
set category = "Object"
set src in usr
if(!istype(usr, /mob/living)) return //Standard checks for clothing verbs
if(usr.stat) return
var/obj/item/clothing/accessory/A //obj for accessory we are targeting
if(LAZYLEN(accessories)) //If the list contains accessories - it is valid
A = input("Select an accessory to hide on [src]") as null|anything in accessories
if(A) //If a selection is made, call the other proc
hide_accessory(usr,A)
if(!LAZYLEN(accessories)) //But if there are no accessories, list will be empty, meaning we ought to remove access to verb
src.verbs -= /obj/item/clothing/under/event_reward/foxmiko/verb/hidetie //Removes access to verb
accessories = null

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 996 B

View File

@@ -3459,6 +3459,7 @@
#include "modular_citadel\code\game\objects\random\random_cit.dm"
#include "modular_citadel\code\modules\admin\verbs\debug_vr.dm"
#include "modular_citadel\code\modules\clothing\donatorclothing.dm"
#include "modular_citadel\code\modules\clothing\eventclothing.dm"
#include "modular_citadel\code\modules\clothing\head\misc_cit.dm"
#include "modular_citadel\code\modules\clothing\shoes\miscellaneous_cit.dm"
#include "modular_citadel\code\modules\clothing\spacesuits\rig\modules\utility.dm"