more work

This commit is contained in:
Metis
2024-09-13 01:50:58 -04:00
parent 8fd779ef02
commit 7b0780804f
320 changed files with 12185 additions and 161 deletions
@@ -0,0 +1,39 @@
/obj/item/clothing/glasses/polychromic
name = "polychromic glasses template"
desc = "You shouldn't be seeing this. Report it if you do."
icon = 'hyperstation/icons/obj/clothing/glasses.dmi'
icon_state = "polygar"
item_color = "polygar"
item_state = "polygar"
alternate_worn_icon = 'hyperstation/icons/mob/eyes.dmi' //Because, as it appears, the item itself is normally not directly aware of its worn overlays, so this is about the easiest way, without adding a new var.
hasprimary = TRUE
primary_color = "#0c0c0c"
vision_correction = 1
/obj/item/clothing/glasses/polychromic/worn_overlays(isinhands, icon_file) //this is where the main magic happens. Also mandates that ALL polychromic stuff MUST USE alternate_worn_icon
. = ..()
if(hasprimary | hassecondary | hastertiary)
if(!isinhands) //prevents the worn sprites from showing up if you're just holding them
if(hasprimary) //checks if overlays are enabled
var/mutable_appearance/primary_worn = mutable_appearance(alternate_worn_icon, "[item_color]-primary") //automagical sprite selection
primary_worn.color = primary_color //colors the overlay
. += primary_worn //adds the overlay onto the buffer list to draw on the mob sprite.
if(hassecondary)
var/mutable_appearance/secondary_worn = mutable_appearance(alternate_worn_icon, "[item_color]-secondary")
secondary_worn.color = secondary_color
. += secondary_worn
if(hastertiary)
var/mutable_appearance/tertiary_worn = mutable_appearance(alternate_worn_icon, "[item_color]-tertiary")
tertiary_worn.color = tertiary_color
. += tertiary_worn
/obj/item/clothing/glasses/polychromic/garpoly
name = "polychromic gar glasses"
desc = "Go beyond impossible and kick reason to the curb! Doesn't seem to have flash protection and doesn't seem sharp either. It is made out of bluespace prescription glass though."
/obj/item/clothing/glasses/polychromic/supergarpoly
name = "polychromic giga gar glasses"
desc = "Believe in the you who believes in yourself. Also doesn't seem to have flash protection and doesn't seem sharp either. It is made out of bluespace prescription glass though."
icon_state = "polysupergar"
item_color = "polysupergar"
item_state = "polysupergar"
@@ -0,0 +1,13 @@
/obj/item/clothing/gloves/guncaster
name = "fingerless leather gloves"
desc = "Sturdy leather gloves with no fingertips, buckled at the wrist."
icon_state = "guncaster"
item_state = "guncaster"
icon = 'hyperstation/icons/obj/clothing/gloves.dmi'
alternate_worn_icon = 'hyperstation/icons/mobs/gloves.dmi'
item_color = null //So they don't wash.
transfer_prints = TRUE
strip_delay = 40
equip_delay_other = 20
cold_protection = HANDS
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
@@ -0,0 +1,8 @@
/obj/item/clothing/head/maidband
name = "maid head-band"
desc = "To complete the maid look."
icon_state = "maid_head"
item_state = "maid_head"
icon = 'hyperstation/icons/obj/clothing/head.dmi'
alternate_worn_icon = 'hyperstation/icons/mobs/head.dmi'
mutantrace_variation = NONE
@@ -0,0 +1,116 @@
//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 ==ITEM_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"
w_class = WEIGHT_CLASS_SMALL //Gainstation Edit: Small, not normal sized.
//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 ==ITEM_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"
@@ -0,0 +1,178 @@
/obj/item/clothing/head/helmet/space/hardsuit/rd/hev
name = "HEV Suit helmet"
desc = "A Hazardous Environment Helmet. It fits snug over the suit and has a heads-up display for researchers. The flashlight seems broken, fitting considering this was made before the start of the milennium."
icon_state = "hev"
item_state = "hev"
item_color = "rd"
resistance_flags = ACID_PROOF | FIRE_PROOF
max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT
armor = list("melee" = 30, "bullet" = 10, "laser" = 10, "energy" = 5, "bomb" = 80, "bio" = 100, "rad" = 100, "fire" = 60, "acid" = 60)
actions_types = list(/datum/action/item_action/toggle_research_scanner)
/obj/item/clothing/head/helmet/space/hardsuit/rd/hev/no_scanner
actions_types = list()
/obj/item/clothing/suit/space/hardsuit/rd/hev
name = "HEV Suit"
desc = "The hazard suit. It was designed to protect scientists from the blunt trauma, radiation, energy discharge that hazardous materials might produce or entail. Fits you like a glove. The automatic medical system seems broken... They're waiting for you, Gordon. In the test chamberrrrrr."
icon_state = "hev"
item_state = "hev"
resistance_flags = ACID_PROOF | FIRE_PROOF
max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT //Same as an emergency firesuit. Not ideal for extended exposure.
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/gun/energy/wormhole_projector,
/obj/item/hand_tele, /obj/item/aicard)
armor = list("melee" = 30, "bullet" = 10, "laser" = 10, "energy" = 5, "bomb" = 80, "bio" = 100, "rad" = 100, "fire" = 60, "acid" = 60)
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/rd/hev
tauric = FALSE //Citadel Add for tauric hardsuits
taurmode = NOT_TAURIC
var/firstpickup = TRUE
var/pickupsound = TRUE
/obj/item/clothing/suit/space/hardsuit/rd/hev/no_sound
pickupsound = FALSE
/obj/item/clothing/suit/space/hardsuit/rd/hev/equipped(mob/user, slot)
. = ..()
if(!pickupsound)
return
if(!ishuman(user))
return
if(slot ==ITEM_SLOT_WEAR_SUIT)
if(!firstpickup)
SEND_SOUND(user, sound('hyperstation/sound/halflife/hevsuit_pickup.ogg', volume = 50))
else
firstpickup = FALSE
SEND_SOUND(user, sound('hyperstation/sound/halflife/hevsuit_firstpickup.ogg', volume = 50))
SEND_SOUND(user, sound('hyperstation/sound/halflife/anomalous_materials.ogg', volume = 50))
return
/obj/item/clothing/suit/space/hardsuit/shielded/goldenpa
name = "GATO Power Armor"
desc = "An advanced armor with built in energy shielding, developed by GATO via unknown means. It belongs by only few exclusive members of the corporation."
icon_state = "golden_pa"
item_state = "golden_pa"
max_charges = 4
current_charges = 4
recharge_delay = 15
armor = list("melee" = 80, "bullet" = 80, "laser" = 50, "energy" = 50, "bomb" = 100, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100)
strip_delay = 130
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
allowed = list(/obj/item/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/melee/transforming/energy/sword/saber, /obj/item/restraints/handcuffs, /obj/item/tank/internals)
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/goldenpa
slowdown = 0
tauric = TRUE //Citadel Add for tauric hardsuits
/obj/item/clothing/suit/space/hardsuit/shielded/goldenpa/Initialize(mapload)
jetpack = new /obj/item/tank/jetpack/suit(src)
. = ..()
/obj/item/clothing/head/helmet/space/hardsuit/shielded/goldenpa
name = "GATO Power Helmet"
desc = "An advanced armor helmet with built in energy shielding, developed by GATO via unknown means. It belongs by only few exclusive members of the corporation."
icon_state = "hardsuit0-goldenpa"
item_state = "hardsuit0-goldenpa"
item_color = "goldenpa"
armor = list("melee" = 80, "bullet" = 80, "laser" = 50, "energy" = 50, "bomb" = 100, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100)
strip_delay = 130
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
/obj/item/clothing/suit/space/hardsuit/teslapa
name = "Tesla Power Armor"
desc = "An advanced power armor, with built-in tesla technology. You're sure this will fry whoever dares attack in close quarters."
icon_state = "tesla_pa"
item_state = "tesla_pa"
item_color = "tesla_pa"
armor = list("melee" = 70, "bullet" = 70, "laser" = 90, "energy" = 90, "bomb" = 70, "bio" = 100, "rad" = 40, "fire" = 100, "acid" = 100)
strip_delay = 300
equip_delay_self = 300
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
allowed = list(/obj/item/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/melee/transforming/energy/sword/saber, /obj/item/restraints/handcuffs, /obj/item/tank/internals)
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/teslapahelmet
slowdown = 1
siemens_coefficient = -1
blood_overlay_type = "armor"
resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF
hit_reaction_chance = 50
rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE
var/teslapa_cooldown = 20
var/teslapa_cooldown_duration = 10
var/tesla_power = 20000
var/tesla_range = 4
var/tesla_flags = TESLA_MOB_DAMAGE | TESLA_OBJ_DAMAGE
var/legacy = FALSE
var/legacy_dmg = 35
/obj/item/clothing/suit/space/hardsuit/teslapa/Initialize(mapload)
jetpack = new /obj/item/tank/jetpack/suit(src)
. = ..()
/obj/item/clothing/suit/space/hardsuit/teslapa/dropped(mob/user)
..()
if(istype(user))
user.flags_1 &= ~TESLA_IGNORE_1
/obj/item/clothing/suit/space/hardsuit/teslapa/equipped(mob/user, slot)
..()
if(slot_flags & slotdefine2slotbit(slot)) //Was equipped to a valid slot for this item?
user.flags_1 |= TESLA_IGNORE_1
/obj/item/clothing/suit/space/hardsuit/teslapa/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
if(prob(hit_reaction_chance))
if(world.time < teslapa_cooldown_duration)
var/datum/effect_system/spark_spread/sparks = new /datum/effect_system/spark_spread
sparks.set_up(1, 1, src)
sparks.start()
owner.visible_message("<span class='danger'>The tesla capacitors on [owner]'s Tesla Power Armor are still recharging! The armor merely emits some sparks.</span>")
return
owner.visible_message("<span class='danger'>[src] blocks [attack_text], sending out arcs of lightning!</span>")
if(!legacy)
tesla_zap(owner, tesla_range, tesla_power, tesla_flags)
else
for(var/mob/living/M in view(2, owner))
if(M == owner)
continue
owner.Beam(M,icon_state="purple_lightning",icon='icons/effects/effects.dmi',time=5)
M.adjustFireLoss(legacy_dmg)
playsound(M, 'sound/machines/defib_zap.ogg', 50, 1, -1)
teslapa_cooldown = world.time + teslapa_cooldown_duration
return TRUE
/obj/item/clothing/head/helmet/space/hardsuit/teslapahelmet
name = "Tesla Power Armor Helmet"
desc = "An advanced power armor, with built-in tesla technology. You're sure this will fry whoever dares attack in close quarters."
icon_state = "teslaup"
item_state = "teslaup"
armor = list("melee" = 70, "bullet" = 70, "laser" = 90, "energy" = 90, "bomb" = 70, "bio" = 100, "rad" = 10, "fire" = 100, "acid" = 100)
strip_delay = 130
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
/obj/item/clothing/suit/space/hardsuit/advancedpa
name = "Advanced Power Armor"
desc = "An advanced power armor. You're sure this is near to impossible to penetrate in close quarters."
icon_state = "advanced_pa"
item_state = "advanced_pa"
item_color = "advanced_pa"
armor = list("melee" = 95, "bullet" = 95, "laser" = 70, "energy" = 80, "bomb" = 70, "bio" = 100, "rad" = 40, "fire" = 100, "acid" = 100)
strip_delay = 300 //chonky armor means chonky strip
equip_delay_self = 300
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
allowed = list(/obj/item/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/melee/transforming/energy/sword/saber, /obj/item/restraints/handcuffs, /obj/item/tank/internals)
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/advancedpahelmet
slowdown = 0
blood_overlay_type = "armor"
resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF
rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE
/obj/item/clothing/suit/space/hardsuit/advancedpa/Initialize(mapload)
jetpack = new /obj/item/tank/jetpack/suit(src)
. = ..()
/obj/item/clothing/head/helmet/space/hardsuit/advancedpahelmet
name = "Advanced Power Armor Helmet"
desc = "An advanced power armor. You're sure this is almost impenetrable in close quarters."
icon_state = "adv_pa"
item_state = "adv_pa"
armor = list("melee" = 95, "bullet" = 90, "laser" = 70, "energy" = 80, "bomb" = 70, "bio" = 100, "rad" = 40, "fire" = 100, "acid" = 100)
strip_delay = 300
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
@@ -0,0 +1,24 @@
/obj/item/clothing/suit/kaminacape
name = "Kamina's Cape"
desc = "Don't believe in yourself, dumbass. Believe in me. Believe in the Kamina who believes in you."
icon_state = "kaminacape"
item_state = "kaminacape"
body_parts_covered = 0
icon = 'hyperstation/icons/obj/clothing/suits.dmi'
alternate_worn_icon = 'hyperstation/icons/mobs/suits.dmi'
mutantrace_variation = NONE
/obj/item/clothing/suit/gcvest
name = "\improper Guncaster's Vest"
desc = "An open leather vest with battlescarred metal shoulderpads, perfect for hunting interdimensional wazards. Smells of gunpowder and plasma."
icon_state = "guncaster"
item_state = "guncaster"
icon = 'hyperstation/icons/obj/clothing/suits.dmi'
alternate_worn_icon = 'hyperstation/icons/mobs/suits.dmi'
mutantrace_variation = NONE
/obj/item/clothing/suit/gcvest/alt
name = "\improper Hellraider's Vest"
desc = "An open leather vest with battlescarred metal shoulderpads, discovered in a dimensional anomaly. Smells of gunpowder and plasma."
icon_state = "guncaster_alt"
item_state = "guncaster_alt"
@@ -0,0 +1,9 @@
/obj/item/clothing/under/lumberjack
name = "lumberjack outfit"
desc = "I am a lumberjack and I am ok, I sleep all night and I work all day."
icon = 'hyperstation/icons/obj/clothing/suits.dmi'
alternate_worn_icon = 'hyperstation/icons/mobs/suits.dmi'
icon_state = "lumberjack"
item_state = "lumberjack"
can_adjust = FALSE
mutantrace_variation = NONE