mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-01-17 12:32:58 +00:00
A diagram that displays what can hide what: http://www.kamletos.si/inventory%20visibility%20hierarchy.png Note that not all suits and helmets hide stuff. Added this to the changelog. Technical information: Renamed gimmick.dm to z_gimmick.dm because whenever I doubleclicked on any piece of clothing in the object tree it always pointed me to some random gimmick item instead of the root definition. Now the file is at the bottom of the folder and so everything else is looked up first. Created a bitflag variable which is used to determine which piece of clothing hides another. The variable is flags_inv and the flags it contains are: #define HIDEGLOVES 1 //APPLIES ONLY TO THE EXTERIOR SUIT!! #define HIDESUITSTORAGE 2 //APPLIES ONLY TO THE EXTERIOR SUIT!! #define HIDEJUMPSUIT 4 //APPLIES ONLY TO THE EXTERIOR SUIT!! #define HIDESHOES 8 //APPLIES ONLY TO THE EXTERIOR SUIT!! #define HIDEMASK 1 //APPLIES ONLY TO HELMETS!! #define HIDEEARS 2 //APPLIES ONLY TO HELMETS!! #define HIDEEYES 4 //APPLIES ONLY TO HELMETS!! The first 4 only apply to exterior suits and the last 3 only to helmets, so they can use the same numbers. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3031 316c924e-a436-60f5-8080-3fe189b3f50e
397 lines
10 KiB
Plaintext
397 lines
10 KiB
Plaintext
/*
|
|
CONTAINS:
|
|
ORANGE SHOES
|
|
MUZZLE
|
|
CAKEHAT
|
|
SUNGLASSES
|
|
SWAT SUIT
|
|
CHAMELEON JUMPSUIT
|
|
SYNDICATE SHOES
|
|
DEATH COMMANDO GAS MASK
|
|
THERMAL GLASSES
|
|
*/
|
|
|
|
|
|
/*
|
|
/obj/item/clothing/fire_burn(obj/fire/raging_fire, datum/air_group/environment)
|
|
if(raging_fire.internal_temperature > src.s_fire)
|
|
spawn( 0 )
|
|
var/t = src.icon_state
|
|
src.icon_state = ""
|
|
src.icon = 'b_items.dmi'
|
|
flick(text("[]", t), src)
|
|
spawn(14)
|
|
del(src)
|
|
return
|
|
return
|
|
return 0
|
|
return 1
|
|
*/ //TODO FIX
|
|
|
|
/obj/item/clothing/gloves/examine()
|
|
set src in usr
|
|
..()
|
|
return
|
|
|
|
/obj/item/clothing/gloves/latex/attackby(obj/item/weapon/cable_coil/O as obj, loc)
|
|
if (istype(O) && O.amount==1)
|
|
var/obj/item/latexballon/LB = new
|
|
if (usr.get_inactive_hand()==src)
|
|
usr.before_take_item(src)
|
|
usr.put_in_inactive_hand(LB)
|
|
else
|
|
LB.loc = src.loc
|
|
del(O)
|
|
del(src)
|
|
else
|
|
return ..()
|
|
|
|
|
|
/obj/item/clothing/shoes/orange/attack_self(mob/user as mob)
|
|
if (src.chained)
|
|
src.chained = null
|
|
src.slowdown = SHOES_SLOWDOWN
|
|
new /obj/item/weapon/handcuffs( user.loc )
|
|
src.icon_state = "orange"
|
|
return
|
|
|
|
/obj/item/clothing/shoes/orange/attackby(H as obj, loc)
|
|
..()
|
|
if ((istype(H, /obj/item/weapon/handcuffs) && !( src.chained )))
|
|
//H = null
|
|
del(H)
|
|
src.chained = 1
|
|
src.slowdown = 15
|
|
src.icon_state = "orange1"
|
|
return
|
|
|
|
/obj/item/clothing/mask/muzzle/attack_paw(mob/user as mob)
|
|
if (src == user.wear_mask)
|
|
return
|
|
else
|
|
..()
|
|
return
|
|
|
|
/obj/item/clothing/head/cakehat/var/processing = 0
|
|
|
|
/obj/item/clothing/head/cakehat/process()
|
|
if(!onfire)
|
|
processing_objects.Remove(src)
|
|
return
|
|
|
|
var/turf/location = src.loc
|
|
if(istype(location, /mob/))
|
|
var/mob/living/carbon/human/M = location
|
|
if(M.l_hand == src || M.r_hand == src || M.head == src)
|
|
location = M.loc
|
|
|
|
if (istype(location, /turf))
|
|
location.hotspot_expose(700, 1)
|
|
|
|
|
|
/obj/item/clothing/head/cakehat/attack_self(mob/user as mob)
|
|
if(status > 1) return
|
|
src.onfire = !( src.onfire )
|
|
if (src.onfire)
|
|
src.force = 3
|
|
src.damtype = "fire"
|
|
src.icon_state = "cake1"
|
|
|
|
processing_objects.Add(src)
|
|
|
|
else
|
|
src.force = null
|
|
src.damtype = "brute"
|
|
src.icon_state = "cake0"
|
|
return
|
|
|
|
|
|
/obj/item/clothing/under/chameleon/New()
|
|
..()
|
|
|
|
for(var/U in typesof(/obj/item/clothing/under/color)-(/obj/item/clothing/under/color))
|
|
|
|
var/obj/item/clothing/under/V = new U
|
|
src.clothing_choices += V
|
|
|
|
for(var/U in typesof(/obj/item/clothing/under/rank)-(/obj/item/clothing/under/rank))
|
|
|
|
var/obj/item/clothing/under/V = new U
|
|
src.clothing_choices += V
|
|
|
|
return
|
|
|
|
|
|
/obj/item/clothing/under/chameleon/all/New()
|
|
..()
|
|
|
|
var/blocked = list(/obj/item/clothing/under/chameleon, /obj/item/clothing/under/chameleon/all)
|
|
//to prevent an infinite loop
|
|
|
|
for(var/U in typesof(/obj/item/clothing/under)-blocked)
|
|
|
|
var/obj/item/clothing/under/V = new U
|
|
src.clothing_choices += V
|
|
|
|
|
|
|
|
/obj/item/clothing/under/chameleon/attackby(obj/item/clothing/under/U as obj, mob/user as mob)
|
|
..()
|
|
|
|
if(istype(U, /obj/item/clothing/under/chameleon))
|
|
user << "\red Nothing happens."
|
|
return
|
|
|
|
if(istype(U, /obj/item/clothing/under))
|
|
|
|
if(src.clothing_choices.Find(U))
|
|
user << "\red Pattern is already recognised by the suit."
|
|
return
|
|
|
|
src.clothing_choices += U
|
|
|
|
user << "\red Pattern absorbed by the suit."
|
|
|
|
/obj/item/clothing/under/chameleon/verb/change()
|
|
set name = "Change Color"
|
|
set category = "Object"
|
|
set src in usr
|
|
|
|
if(icon_state == "psyche")
|
|
usr << "\red Your suit is malfunctioning"
|
|
return
|
|
|
|
var/obj/item/clothing/under/A
|
|
|
|
A = input("Select Colour to change it to", "BOOYEA", A) in clothing_choices
|
|
|
|
if(!A)
|
|
return
|
|
|
|
desc = null
|
|
permeability_coefficient = 0.90
|
|
|
|
desc = A.desc
|
|
name = A.name
|
|
icon_state = A.icon_state
|
|
item_state = A.item_state
|
|
color = A.color
|
|
|
|
/obj/item/clothing/under/chameleon/emp_act(severity)
|
|
name = "psychedelic"
|
|
desc = "Groovy!"
|
|
icon_state = "psyche"
|
|
color = "psyche"
|
|
spawn(200)
|
|
name = "Black Jumpsuit"
|
|
icon_state = "bl_suit"
|
|
color = "black"
|
|
desc = null
|
|
..()
|
|
|
|
/*
|
|
/obj/item/clothing/suit/swat_suit/death_commando
|
|
name = "Death Commando Suit"
|
|
icon_state = "death_commando_suit"
|
|
item_state = "death_commando_suit"
|
|
flags = FPRINT | TABLEPASS | SUITSPACE*/
|
|
|
|
/obj/item/clothing/mask/gas/death_commando
|
|
name = "Death Commando Mask"
|
|
icon_state = "death_commando_mask"
|
|
item_state = "death_commando_mask"
|
|
|
|
/obj/item/clothing/under/rank/New()
|
|
sensor_mode = pick(0,1,2,3)
|
|
..()
|
|
|
|
/obj/item/clothing/under/verb/toggle()
|
|
set name = "Toggle Suit Sensors"
|
|
set category = "Object"
|
|
var/mob/M = usr
|
|
if (istype(M, /mob/dead/)) return
|
|
if (usr.stat) return
|
|
if(src.has_sensor >= 2)
|
|
usr << "The controls are locked."
|
|
return 0
|
|
if(src.has_sensor <= 0)
|
|
usr << "This suit does not have any sensors"
|
|
return 0
|
|
src.sensor_mode += 1
|
|
if(src.sensor_mode > 3)
|
|
src.sensor_mode = 0
|
|
switch(src.sensor_mode)
|
|
if(0)
|
|
usr << "You disable your suit's remote sensing equipment."
|
|
if(1)
|
|
usr << "Your suit will now report whether you are live or dead."
|
|
if(2)
|
|
usr << "Your suit will now report your vital lifesigns."
|
|
if(3)
|
|
usr << "Your suit will now report your vital lifesigns as well as your coordinate position."
|
|
..()
|
|
|
|
/obj/item/clothing/under/examine()
|
|
set src in view()
|
|
..()
|
|
switch(src.sensor_mode)
|
|
if(0)
|
|
usr << "Its sensors appear to be disabled."
|
|
if(1)
|
|
usr << "Its binary life sensors appear to be enabled."
|
|
if(2)
|
|
usr << "Its vital tracker appears to be enabled."
|
|
if(3)
|
|
usr << "Its vital tracker and tracking beacon appear to be enabled."
|
|
|
|
|
|
/obj/item/clothing/head/helmet/welding/attack_self()
|
|
toggle()
|
|
|
|
/obj/item/clothing/head/helmet/welding/verb/toggle()
|
|
set category = "Object"
|
|
set name = "Adjust welding mask"
|
|
if(src.up)
|
|
src.up = !src.up
|
|
src.see_face = !src.see_face
|
|
src.flags |= HEADCOVERSEYES
|
|
flags_inv |= HIDEMASK|HIDEEARS|HIDEEYES
|
|
icon_state = "welding"
|
|
usr << "You flip the mask down to protect your eyes."
|
|
else
|
|
src.up = !src.up
|
|
src.see_face = !src.see_face
|
|
src.flags &= ~HEADCOVERSEYES
|
|
flags_inv &= ~(HIDEMASK|HIDEEARS|HIDEEYES)
|
|
icon_state = "weldingup"
|
|
usr << "You push the mask up out of your face."
|
|
|
|
/obj/item/clothing/head/cargosoft/dropped()
|
|
src.icon_state = "cargosoft"
|
|
src.flipped=0
|
|
..()
|
|
|
|
/obj/item/clothing/head/cargosoft/verb/flip()
|
|
set category = "Object"
|
|
set name = "Flip cap"
|
|
src.flipped = !src.flipped
|
|
if(src.flipped)
|
|
icon_state = "cargosoft_flipped"
|
|
usr << "You flip the hat backwards."
|
|
else
|
|
icon_state = "cargosoft"
|
|
usr << "You flip the hat back in normal position."
|
|
|
|
|
|
/obj/item/clothing/shoes/magboots/verb/toggle()
|
|
set name = "Toggle Magboots"
|
|
set category = "Object"
|
|
if(src.magpulse)
|
|
src.flags &= ~NOSLIP
|
|
src.slowdown = SHOES_SLOWDOWN
|
|
src.magpulse = 0
|
|
icon_state = "magboots0"
|
|
usr << "You disable the mag-pulse traction system."
|
|
else
|
|
src.flags |= NOSLIP
|
|
src.slowdown = 2
|
|
src.magpulse = 1
|
|
icon_state = "magboots1"
|
|
usr << "You enable the mag-pulse traction system."
|
|
|
|
/obj/item/clothing/shoes/magboots/examine()
|
|
set src in view()
|
|
..()
|
|
var/state = "disabled"
|
|
if(src.flags&NOSLIP)
|
|
state = "enabled"
|
|
usr << "Its mag-pulse traction system appears to be [state]."
|
|
|
|
/obj/item/clothing/suit/suit/verb/toggle()
|
|
set name = "Toggle Jacket Buttons"
|
|
set category = "Object"
|
|
if(src.icon_state == "suitjacket_blue_open")
|
|
src.icon_state = "suitjacket_blue"
|
|
src.item_state = "suitjacket_blue"
|
|
usr << "You button up the suit jacket."
|
|
else if(src.icon_state == "suitjacket_blue")
|
|
src.icon_state = "suitjacket_blue_open"
|
|
src.item_state = "suitjacket_blue_open"
|
|
usr << "You unbutton the suit jacket."
|
|
else
|
|
usr << "Sorry! The suit you're wearing doesn't have buttons!"
|
|
|
|
/obj/item/clothing/suit/labcoat/verb/toggle()
|
|
set name = "Toggle Labcoat Buttons"
|
|
set category = "Object"
|
|
if(src.icon_state == "labcoat_open")
|
|
src.icon_state = "labcoat"
|
|
usr << "You button up the labcoat."
|
|
else if(src.icon_state == "labcoat")
|
|
src.icon_state = "labcoat_open"
|
|
usr << "You unbutton the labcoat."
|
|
else if(src.icon_state == "labcoat_cmo_open")
|
|
src.icon_state = "labcoat_cmo"
|
|
usr << "You button up the labcoat."
|
|
else if(src.icon_state == "labcoat_cmo")
|
|
src.icon_state = "labcoat_cmo_open"
|
|
usr << "You unbutton the labcoat."
|
|
else if(src.icon_state == "labcoat_gen_open")
|
|
src.icon_state = "labcoat_gen"
|
|
usr << "You button up the labcoat."
|
|
else if(src.icon_state == "labcoat_gen")
|
|
src.icon_state = "labcoat_gen_open"
|
|
usr << "You unbutton the labcoat."
|
|
else if(src.icon_state == "labcoat_chem_open")
|
|
src.icon_state = "labcoat_chem"
|
|
usr << "You button up the labcoat."
|
|
else if(src.icon_state == "labcoat_chem")
|
|
src.icon_state = "labcoat_chem_open"
|
|
usr << "You unbutton the labcoat."
|
|
else if(src.icon_state == "labcoat_vir_open")
|
|
src.icon_state = "labcoat_vir"
|
|
usr << "You button up the labcoat."
|
|
else if(src.icon_state == "labcoat_vir")
|
|
src.icon_state = "labcoat_vir_open"
|
|
usr << "You unbutton the labcoat."
|
|
else if(src.icon_state == "labcoat_tox_open")
|
|
src.icon_state = "labcoat_tox"
|
|
usr << "You button up the labcoat."
|
|
else if(src.icon_state == "labcoat_tox")
|
|
src.icon_state = "labcoat_tox_open"
|
|
usr << "You unbutton the labcoat."
|
|
else if(src.icon_state == "labgreen_open")
|
|
src.icon_state = "labgreen"
|
|
usr << "You button up the labcoat."
|
|
else if(src.icon_state == "labgreen")
|
|
src.icon_state = "labgreen_open"
|
|
usr << "You unbutton the labcoat."
|
|
|
|
else
|
|
usr << "Sorry! The suit you're wearing doesn't have buttons!"
|
|
|
|
/obj/item/clothing/head/ushanka/attack_self(mob/user as mob)
|
|
if(src.icon_state == "ushankadown")
|
|
src.icon_state = "ushankaup"
|
|
src.item_state = "ushankaup"
|
|
user << "You raise the ear flaps on the ushanka."
|
|
else
|
|
src.icon_state = "ushankadown"
|
|
src.item_state = "ushankadown"
|
|
user << "You lower the ear flaps on the ushanka."
|
|
|
|
|
|
/obj/item/clothing/glasses/thermal/emp_act(severity)
|
|
if(istype(src.loc, /mob/living/carbon/human))
|
|
var/mob/living/carbon/human/M = src.loc
|
|
M << "\red The Optical Thermal Scanner overloads and blinds you!"
|
|
if(M.glasses == src)
|
|
M.eye_blind = 3
|
|
M.eye_blurry = 5
|
|
M.disabilities |= 1
|
|
spawn(100)
|
|
M.disabilities &= ~1
|
|
..()
|
|
|
|
|