Merge pull request #80 from GDLW24/normalizers-hyperport

ported normalizers from Hyper
This commit is contained in:
GDLW
2023-03-16 13:01:02 +01:00
committed by GitHub
5 changed files with 393 additions and 0 deletions
@@ -0,0 +1,11 @@
/datum/gear/syntech/ring
name = "Normalizer Ring"
category = SLOT_GLOVES
path = /obj/item/clothing/gloves/ring/syntech
cost = 6
/datum/gear/syntech/band
name = "Normalizer Band"
category = SLOT_GLOVES
path = /obj/item/clothing/gloves/ring/syntech/band
cost = 6
@@ -0,0 +1,17 @@
/datum/gear/syntech/pendant
name = "Normalizer Pendant"
category = SLOT_NECK
path = /obj/item/clothing/neck/syntech
cost = 6
/datum/gear/syntech/choker
name = "Normalizer Choker"
category = SLOT_NECK
path = /obj/item/clothing/neck/syntech/choker
cost = 6
/datum/gear/syntech/collar
name = "Normalizer Collar"
category = SLOT_NECK
path = /obj/item/clothing/neck/syntech/collar
cost = 6
@@ -0,0 +1,115 @@
//Clothing vars and procs
/obj/item/clothing
var/normalize_size = RESIZE_NORMAL //This number is used as the "normal" height people will be given when wearing one of these accessories
var/natural_size = null //The value of the wearer's body_size var in prefs. Unused for now.
var/recorded_size = null //the user's height prior to equipping
//For applying a normalization
/obj/item/clothing/proc/normalize_mob_size(mob/living/carbon/human/H)
if(H.normalized) //First we make a check to see if they're already normalized, from wearing another article of SynTech jewelry
to_chat(H, "<span class='warning'>This accessory buzzes, being overwritten by another.</span>")
playsound(H, 'sound/machines/buzz-sigh.ogg', 50, 1)
return
recorded_size = H.get_effective_size() //If not, grab their current size
playsound(H, 'sound/effects/magic.ogg', 50, 1)
flash_lighting_fx(3, 3, LIGHT_COLOR_PURPLE)
H.visible_message("<span class='warning'>A flash of purple light engulfs [H], before they change to normal!</span>","<span class='notice'>You feel warm for a moment, before everything scales to your size...</span>")
H.resize(normalize_size) //Then apply the size
H.normalized = TRUE //And set normalization
//For removing a normalization, and reverting back to normal
/obj/item/clothing/proc/denormalize_mob_size(mob/living/carbon/human/H)
if(H.normalized) //sanity check
playsound(H,'sound/weapons/emitter2.ogg', 50, 1)
flash_lighting_fx(3, 3, LIGHT_COLOR_YELLOW)
H.visible_message("<span class='warning'>Golden light engulfs [H], and they shoot back to their default height!</span>","<span class='notice'>Energy rushes through your body, and you return to normal.</span>")
H.resize(recorded_size)
H.normalized = FALSE
//For storing normalization on mobs
/mob/living
var/normalized = FALSE
//normalized is a check for instances where more than one accessory of jewelry is worn. For all intensive purposes, only the first worn accessory stores the user's size.
//Anything else is just extra.
//Clothing below. Code could be compressed more, but until I make jewelry slots, this will do. -Dahl
//GLOVE SLOT ITEMS...
//SynTech ring
/obj/item/clothing/gloves/ring/syntech
name = "normalizer ring"
desc = "An expensive, shimmering SynTech ring gilded with golden GATO markings. It will 'normalize' the size of the user to a specified height approved for work-conditions, as long as it is equipped. The artificial violet gem inside twinkles ominously."
icon = 'hyperstation/icons/obj/clothing/sizeaccessories.dmi'
icon_state = "ring"
item_state = "sring" //No use in a unique sprite since it's just one pixel
w_class = WEIGHT_CLASS_TINY
body_parts_covered = 0
transfer_prints = TRUE
strip_delay = 40
//These are already defined under the parent ring, but I wanna leave em here for reference purposes
//For glove slots
/obj/item/clothing/gloves/ring/syntech/equipped(mob/living/user, slot)
if(ishuman(user))
var/mob/living/carbon/human/human_target = user
if(slot == SLOT_GLOVES)
if(human_target.custom_body_size)
normalize_mob_size(human_target)
/obj/item/clothing/gloves/ring/syntech/dropped(mob/living/user, slot)
if(ishuman(user))
var/mob/living/carbon/human/human_target = user
if(human_target.normalized)
denormalize_mob_size(human_target)
//SynTech Wristband
/obj/item/clothing/gloves/ring/syntech/band
name = "normalizer wristband"
desc = "An expensive technological wristband cast in SynTech purples with shimmering GATO hues. It will 'normalize' the size of the user to a specified height for approved work-conditions, as long as it is equipped. There is a small screen buzzing with information."
icon_state = "wristband"
item_state = "syntechband"
//NECK SLOT ITEMS...
//Syntech Pendant
/obj/item/clothing/neck/syntech
name = "normalizer pendant"
desc = "A vibrant violet jewel cast in silvery-gold metals, sporting the elegance of GATO with SynTech prowess. It will 'normalize' the size of the user to a specified height for approved work-conditions, as long as it is equipped. The artificial violet gem inside twinkles ominously."
icon = 'hyperstation/icons/obj/clothing/sizeaccessories.dmi'
icon_state = "pendant"
item_state = "pendant"
//For neck items
/obj/item/clothing/neck/syntech/equipped(mob/living/user, slot)
if(ishuman(user))
var/mob/living/carbon/human/human_target = user
if(slot == SLOT_NECK)
if(human_target.custom_body_size)
normalize_mob_size(human_target)
/obj/item/clothing/neck/syntech/dropped(mob/living/user, slot)
if(ishuman(user))
var/mob/living/carbon/human/human_target = user
if(human_target.normalized)
denormalize_mob_size(human_target)
//Syntech Choker
/obj/item/clothing/neck/syntech/choker
name = "normalizer choker"
desc = "A sleek, tight-fitting choker embezzled with silver to gold, adorned with vibrant purple studs; combined technology of GATO and SynTech. It will 'normalize' the size of the user to a specified height for approved work-conditions, as long as it is equipped. There is a small screen buzzing with information."
icon_state = "choker"
item_state = "collar"
//Syntech Collar
/obj/item/clothing/neck/syntech/collar
name = "normalizer collar"
desc = "A cute pet collar, technologically designed with vibrant purples and smooth silvers. There is a small gem bordered by gold at the front, reading 'SYNTECH' engraved within the metal. It will 'normalize' the size of the user to a specified height for approved work-conditions, as long as it is equipped. The artificial violet gem inside twinkles ominously."
icon_state = "collar"
item_state = "collar"
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

+250
View File
@@ -6,6 +6,253 @@
// BEGIN_FILE_DIR
#define FILE_DIR .
#define FILE_DIR "code"
#define FILE_DIR "code/modules"
#define FILE_DIR "code/modules/research"
#define FILE_DIR "code/modules/research/xenoarch"
#define FILE_DIR "code/modules/research/xenoarch/xenobotany"
#define FILE_DIR "code/modules/research/xenoarch/xenobotany/icons"
#define FILE_DIR "config"
#define FILE_DIR "config/jukebox_music"
#define FILE_DIR "config/jukebox_music/sounds"
#define FILE_DIR "config/title_screens"
#define FILE_DIR "GainStation13"
#define FILE_DIR "GainStation13/icons"
#define FILE_DIR "GainStation13/icons/mob"
#define FILE_DIR "GainStation13/icons/mob/uniforms"
#define FILE_DIR "GainStation13/icons/obj"
#define FILE_DIR "GainStation13/icons/obj/clothing"
#define FILE_DIR "GainStation13/icons/obj/lavaland_demone"
#define FILE_DIR "GainStation13/icons/obj/spells"
#define FILE_DIR "GainStation13/icons/obj/sugarland"
#define FILE_DIR "GainStation13/icons/turf"
#define FILE_DIR "GainStation13/sound"
#define FILE_DIR "GainStation13/sound/voice"
#define FILE_DIR "goon"
#define FILE_DIR "goon/icons"
#define FILE_DIR "goon/icons/obj"
#define FILE_DIR "goon/sound"
#define FILE_DIR "goon/sound/effects"
#define FILE_DIR "goon/sound/machinery"
#define FILE_DIR "html"
#define FILE_DIR "hyperstation"
#define FILE_DIR "hyperstation/icons"
#define FILE_DIR "hyperstation/icons/chat"
#define FILE_DIR "hyperstation/icons/decals"
#define FILE_DIR "hyperstation/icons/effects"
#define FILE_DIR "hyperstation/icons/mob"
#define FILE_DIR "hyperstation/icons/mob/clothes"
#define FILE_DIR "hyperstation/icons/mobs"
#define FILE_DIR "hyperstation/icons/mobs/dancer"
#define FILE_DIR "hyperstation/icons/obj"
#define FILE_DIR "hyperstation/icons/obj/cargo"
#define FILE_DIR "hyperstation/icons/obj/cargo/sweatshop"
#define FILE_DIR "hyperstation/icons/obj/clothing"
#define FILE_DIR "hyperstation/icons/obj/genitals"
#define FILE_DIR "hyperstation/icons/obj/machinery"
#define FILE_DIR "hyperstation/icons/obj/structures"
#define FILE_DIR "hyperstation/sound"
#define FILE_DIR "hyperstation/sound/ambience"
#define FILE_DIR "hyperstation/sound/creatures"
#define FILE_DIR "hyperstation/sound/creatures/mimic"
#define FILE_DIR "hyperstation/sound/effects"
#define FILE_DIR "hyperstation/sound/effects/rbmk"
#define FILE_DIR "hyperstation/sound/effects/ship"
#define FILE_DIR "hyperstation/sound/effects/ship/freespace2"
#define FILE_DIR "hyperstation/sound/effects/ship/reactor"
#define FILE_DIR "hyperstation/sound/halflife"
#define FILE_DIR "hyperstation/sound/machines"
#define FILE_DIR "hyperstation/sound/machines/sm"
#define FILE_DIR "hyperstation/sound/machines/sm/accent"
#define FILE_DIR "hyperstation/sound/machines/sm/accent/normal"
#define FILE_DIR "hyperstation/sound/misc"
#define FILE_DIR "icons"
#define FILE_DIR "icons/ass"
#define FILE_DIR "icons/effects"
#define FILE_DIR "icons/mecha"
#define FILE_DIR "icons/minimaps"
#define FILE_DIR "icons/misc"
#define FILE_DIR "icons/mob"
#define FILE_DIR "icons/mob/actions"
#define FILE_DIR "icons/mob/augmentation"
#define FILE_DIR "icons/mob/inhands"
#define FILE_DIR "icons/mob/inhands/antag"
#define FILE_DIR "icons/mob/inhands/equipment"
#define FILE_DIR "icons/mob/inhands/misc"
#define FILE_DIR "icons/mob/inhands/weapons"
#define FILE_DIR "icons/mob/jungle"
#define FILE_DIR "icons/mob/large-worn-icons"
#define FILE_DIR "icons/mob/large-worn-icons/64x64"
#define FILE_DIR "icons/mob/lavaland"
#define FILE_DIR "icons/obj"
#define FILE_DIR "icons/obj/assemblies"
#define FILE_DIR "icons/obj/atmospherics"
#define FILE_DIR "icons/obj/atmospherics/components"
#define FILE_DIR "icons/obj/atmospherics/pipes"
#define FILE_DIR "icons/obj/clothing"
#define FILE_DIR "icons/obj/doors"
#define FILE_DIR "icons/obj/doors/airlocks"
#define FILE_DIR "icons/obj/doors/airlocks/abductor"
#define FILE_DIR "icons/obj/doors/airlocks/centcom"
#define FILE_DIR "icons/obj/doors/airlocks/clockwork"
#define FILE_DIR "icons/obj/doors/airlocks/cult"
#define FILE_DIR "icons/obj/doors/airlocks/cult/runed"
#define FILE_DIR "icons/obj/doors/airlocks/cult/unruned"
#define FILE_DIR "icons/obj/doors/airlocks/external"
#define FILE_DIR "icons/obj/doors/airlocks/glass_large"
#define FILE_DIR "icons/obj/doors/airlocks/hatch"
#define FILE_DIR "icons/obj/doors/airlocks/highsec"
#define FILE_DIR "icons/obj/doors/airlocks/shuttle"
#define FILE_DIR "icons/obj/doors/airlocks/station"
#define FILE_DIR "icons/obj/doors/airlocks/station2"
#define FILE_DIR "icons/obj/doors/airlocks/survival"
#define FILE_DIR "icons/obj/doors/airlocks/vault"
#define FILE_DIR "icons/obj/flora"
#define FILE_DIR "icons/obj/food"
#define FILE_DIR "icons/obj/guns"
#define FILE_DIR "icons/obj/hydroponics"
#define FILE_DIR "icons/obj/lavaland"
#define FILE_DIR "icons/obj/machines"
#define FILE_DIR "icons/obj/power_cond"
#define FILE_DIR "icons/obj/smooth_structures"
#define FILE_DIR "icons/obj/smooth_structures/alien"
#define FILE_DIR "icons/obj/tesla_engine"
#define FILE_DIR "icons/pda_icons"
#define FILE_DIR "icons/program_icons"
#define FILE_DIR "icons/rooms"
#define FILE_DIR "icons/rooms/box"
#define FILE_DIR "icons/stamp_icons"
#define FILE_DIR "icons/Testing"
#define FILE_DIR "icons/turf"
#define FILE_DIR "icons/turf/floors"
#define FILE_DIR "icons/turf/walls"
#define FILE_DIR "icons/UI_Icons"
#define FILE_DIR "icons/UI_Icons/chat"
#define FILE_DIR "icons/UI_Icons/minesweeper_tiles"
#define FILE_DIR "icons/UI_Icons/Pills"
#define FILE_DIR "icons/vending_icons"
#define FILE_DIR "modular_citadel"
#define FILE_DIR "modular_citadel/code"
#define FILE_DIR "modular_citadel/code/game"
#define FILE_DIR "modular_citadel/code/game/area"
#define FILE_DIR "modular_citadel/icons"
#define FILE_DIR "modular_citadel/icons/effects"
#define FILE_DIR "modular_citadel/icons/eutactic"
#define FILE_DIR "modular_citadel/icons/eutactic/item"
#define FILE_DIR "modular_citadel/icons/eutactic/mob"
#define FILE_DIR "modular_citadel/icons/lavaknight"
#define FILE_DIR "modular_citadel/icons/lavaknight/item"
#define FILE_DIR "modular_citadel/icons/lavaknight/mob"
#define FILE_DIR "modular_citadel/icons/misc"
#define FILE_DIR "modular_citadel/icons/mob"
#define FILE_DIR "modular_citadel/icons/mob/actions"
#define FILE_DIR "modular_citadel/icons/mob/citadel"
#define FILE_DIR "modular_citadel/icons/mob/citadel_refs"
#define FILE_DIR "modular_citadel/icons/mob/clothing"
#define FILE_DIR "modular_citadel/icons/mob/inhands"
#define FILE_DIR "modular_citadel/icons/obj"
#define FILE_DIR "modular_citadel/icons/obj/clothing"
#define FILE_DIR "modular_citadel/icons/obj/food"
#define FILE_DIR "modular_citadel/icons/obj/genitals"
#define FILE_DIR "modular_citadel/icons/obj/guns"
#define FILE_DIR "modular_citadel/icons/polyclothes"
#define FILE_DIR "modular_citadel/icons/polyclothes/item"
#define FILE_DIR "modular_citadel/icons/polyclothes/mob"
#define FILE_DIR "modular_citadel/icons/ui"
#define FILE_DIR "modular_citadel/sound"
#define FILE_DIR "modular_citadel/sound/misc"
#define FILE_DIR "modular_citadel/sound/voice"
#define FILE_DIR "modular_citadel/sound/weapons"
#define FILE_DIR "nsv13"
#define FILE_DIR "nsv13/icons"
#define FILE_DIR "nsv13/icons/obj"
#define FILE_DIR "nsv13/sound"
#define FILE_DIR "nsv13/sound/effects"
#define FILE_DIR "nsv13/sound/effects/computer"
#define FILE_DIR "sound"
#define FILE_DIR "sound/AI"
#define FILE_DIR "sound/alien"
#define FILE_DIR "sound/alien/Effects"
#define FILE_DIR "sound/alien/Voice"
#define FILE_DIR "sound/ambience"
#define FILE_DIR "sound/ambience/antag"
#define FILE_DIR "sound/arcade"
#define FILE_DIR "sound/bloodsucker"
#define FILE_DIR "sound/chatter"
#define FILE_DIR "sound/creatures"
#define FILE_DIR "sound/effects"
#define FILE_DIR "sound/effects/footstep"
#define FILE_DIR "sound/FermiChem"
#define FILE_DIR "sound/hallucinations"
#define FILE_DIR "sound/health"
#define FILE_DIR "sound/instruments"
#define FILE_DIR "sound/instruments/accordion"
#define FILE_DIR "sound/instruments/bikehorn"
#define FILE_DIR "sound/instruments/eguitar"
#define FILE_DIR "sound/instruments/glockenspiel"
#define FILE_DIR "sound/instruments/guitar"
#define FILE_DIR "sound/instruments/harmonica"
#define FILE_DIR "sound/instruments/piano"
#define FILE_DIR "sound/instruments/recorder"
#define FILE_DIR "sound/instruments/saxophone"
#define FILE_DIR "sound/instruments/trombone"
#define FILE_DIR "sound/instruments/violin"
#define FILE_DIR "sound/instruments/xylophone"
#define FILE_DIR "sound/items"
#define FILE_DIR "sound/items/equip"
#define FILE_DIR "sound/items/geiger"
#define FILE_DIR "sound/items/handling"
#define FILE_DIR "sound/lavaland"
#define FILE_DIR "sound/lewd"
#define FILE_DIR "sound/machines"
#define FILE_DIR "sound/machines/clockcult"
#define FILE_DIR "sound/machines/fryer"
#define FILE_DIR "sound/machines/generator"
#define FILE_DIR "sound/machines/microwave"
#define FILE_DIR "sound/machines/nuke"
#define FILE_DIR "sound/machines/shower"
#define FILE_DIR "sound/machines/sm"
#define FILE_DIR "sound/magic"
#define FILE_DIR "sound/magic/clockwork"
#define FILE_DIR "sound/mecha"
#define FILE_DIR "sound/misc"
#define FILE_DIR "sound/music"
#define FILE_DIR "sound/roundend"
#define FILE_DIR "sound/spookoween"
#define FILE_DIR "sound/vehicles"
#define FILE_DIR "sound/voice"
#define FILE_DIR "sound/voice/beepsky"
#define FILE_DIR "sound/voice/catpeople"
#define FILE_DIR "sound/voice/complionator"
#define FILE_DIR "sound/voice/firebot"
#define FILE_DIR "sound/voice/human"
#define FILE_DIR "sound/voice/medbot"
#define FILE_DIR "sound/voice/scream"
#define FILE_DIR "sound/vore"
#define FILE_DIR "sound/vore/pred"
#define FILE_DIR "sound/vore/prey"
#define FILE_DIR "sound/vox_fem"
#define FILE_DIR "sound/weapons"
#define FILE_DIR "sound/weapons/effects"
#define FILE_DIR "sound/weather"
#define FILE_DIR "sound/weather/ashstorm"
#define FILE_DIR "sound/weather/ashstorm/inside"
#define FILE_DIR "sound/weather/ashstorm/outside"
#define FILE_DIR "sound/weather/oxygenrain"
#define FILE_DIR "sound/weather/oxygenrain/inside"
#define FILE_DIR "sound/weather/oxygenrain/outside"
#define FILE_DIR "tools"
#define FILE_DIR "tools/HumanScissors"
#define FILE_DIR "tools/SS13SmoothingCutter"
#define FILE_DIR "yogstation"
#define FILE_DIR "yogstation/icons"
#define FILE_DIR "yogstation/icons/obj"
#define FILE_DIR "yogstation/icons/obj/clothing"
#define FILE_DIR "yogstation/icons/turf"
#define FILE_DIR "yogstation/sound"
#define FILE_DIR "yogstation/sound/effects"
#define FILE_DIR "yogstation/sound/misc"
#define FILE_DIR "yogstation/sound/voice"
// END_FILE_DIR
// BEGIN_PREFERENCES
@@ -3141,8 +3388,11 @@
#include "hyperstation\code\modules\cargo\sweatshop\wooden.dm"
#include "hyperstation\code\modules\client\loadout\glasses.dm"
#include "hyperstation\code\modules\client\loadout\tablet.dm"
#include "hyperstation\code\modules\client\loadout\neck.dm"
#include "hyperstation\code\modules\client\loadout\gloves.dm"
#include "hyperstation\code\modules\clothing\gloves.dm"
#include "hyperstation\code\modules\clothing\head.dm"
#include "hyperstation\code\modules\clothing\sizeaccessories.dm"
#include "hyperstation\code\modules\clothing\glasses\polychromic_glasses.dm"
#include "hyperstation\code\modules\clothing\spacesuits\hardsuit.dm"
#include "hyperstation\code\modules\clothing\suits\misc.dm"