initial commit - cross reference with 5th port - obviously has compile errors
This commit is contained in:
@@ -0,0 +1,362 @@
|
||||
/datum/action/item_action/chameleon/drone/randomise
|
||||
name = "Randomise Headgear"
|
||||
button_icon_state = "random"
|
||||
|
||||
/datum/action/item_action/chameleon/drone/randomise/Trigger()
|
||||
if(!IsAvailable())
|
||||
return
|
||||
|
||||
// Damn our lack of abstract interfeces
|
||||
if (istype(target, /obj/item/clothing/head/chameleon/drone))
|
||||
var/obj/item/clothing/head/chameleon/drone/X = target
|
||||
X.chameleon_action.random_look(owner)
|
||||
if (istype(target, /obj/item/clothing/mask/chameleon/drone))
|
||||
var/obj/item/clothing/mask/chameleon/drone/Z = target
|
||||
Z.chameleon_action.random_look(owner)
|
||||
|
||||
return 1
|
||||
|
||||
|
||||
/datum/action/item_action/chameleon/drone/togglehatmask
|
||||
name = "Toggle Headgear Mode"
|
||||
|
||||
/datum/action/item_action/chameleon/drone/togglehatmask/New()
|
||||
..()
|
||||
|
||||
if (istype(target, /obj/item/clothing/head/chameleon/drone))
|
||||
button_icon_state = "drone_camogear_helm"
|
||||
if (istype(target, /obj/item/clothing/mask/chameleon/drone))
|
||||
button_icon_state = "drone_camogear_mask"
|
||||
|
||||
/datum/action/item_action/chameleon/drone/togglehatmask/Trigger()
|
||||
if(!IsAvailable())
|
||||
return
|
||||
|
||||
// No point making the code more complicated if no non-drone
|
||||
// is ever going to use one of these
|
||||
|
||||
var/mob/living/simple_animal/drone/D
|
||||
|
||||
if(istype(owner, /mob/living/simple_animal/drone))
|
||||
D = owner
|
||||
else
|
||||
return
|
||||
|
||||
// The drone unEquip() proc sets head to null after dropping
|
||||
// an item, so we need to keep a reference to our old headgear
|
||||
// to make sure it's deleted.
|
||||
var/obj/old_headgear = target
|
||||
var/obj/new_headgear
|
||||
|
||||
if(istype(old_headgear,/obj/item/clothing/head/chameleon/drone))
|
||||
new_headgear = new /obj/item/clothing/mask/chameleon/drone()
|
||||
else if(istype(old_headgear,/obj/item/clothing/mask/chameleon/drone))
|
||||
new_headgear = new /obj/item/clothing/head/chameleon/drone()
|
||||
else
|
||||
owner << "<span class='warning'>You shouldn't be able to toggle a camogear helmetmask if you're not wearing it</span>"
|
||||
if(new_headgear)
|
||||
// Force drop the item in the headslot, even though
|
||||
// it's NODROP
|
||||
D.unEquip(target, 1)
|
||||
qdel(old_headgear)
|
||||
// where is `slot_head` defined? WHO KNOWS
|
||||
D.equip_to_slot(new_headgear, slot_head)
|
||||
return 1
|
||||
|
||||
|
||||
/datum/action/item_action/chameleon/change
|
||||
name = "Chameleon Change"
|
||||
var/list/chameleon_blacklist = list()
|
||||
var/list/chameleon_list = list()
|
||||
var/chameleon_type = null
|
||||
var/chameleon_name = "Item"
|
||||
|
||||
/datum/action/item_action/chameleon/change/proc/initialize_disguises()
|
||||
if(button)
|
||||
button.name = "Change [chameleon_name] Appearance"
|
||||
chameleon_blacklist += target.type
|
||||
var/list/temp_list = typesof(chameleon_type)
|
||||
for(var/V in temp_list - (chameleon_blacklist))
|
||||
chameleon_list += V
|
||||
|
||||
/datum/action/item_action/chameleon/change/proc/select_look(mob/user)
|
||||
var/list/item_names = list()
|
||||
var/obj/item/picked_item
|
||||
for(var/U in chameleon_list)
|
||||
var/obj/item/I = U
|
||||
item_names += initial(I.name)
|
||||
var/picked_name
|
||||
picked_name = input("Select [chameleon_name] to change it to", "Chameleon [chameleon_name]", picked_name) in item_names
|
||||
if(!picked_name)
|
||||
return
|
||||
for(var/V in chameleon_list)
|
||||
var/obj/item/I = V
|
||||
if(initial(I.name) == picked_name)
|
||||
picked_item = V
|
||||
break
|
||||
if(!picked_item)
|
||||
return
|
||||
update_look(user, picked_item)
|
||||
|
||||
/datum/action/item_action/chameleon/change/proc/random_look(mob/user)
|
||||
var/picked_item = pick(chameleon_list)
|
||||
// If a user is provided, then this item is in use, and we
|
||||
// need to update our icons and stuff
|
||||
|
||||
if(user)
|
||||
update_look(user, picked_item)
|
||||
|
||||
// Otherwise, it's likely a random initialisation, so we
|
||||
// don't have to worry
|
||||
|
||||
else
|
||||
update_item(picked_item)
|
||||
|
||||
/datum/action/item_action/chameleon/change/proc/update_look(mob/user, obj/item/picked_item)
|
||||
if(isliving(user))
|
||||
var/mob/living/C = user
|
||||
if(C.stat != CONSCIOUS)
|
||||
return
|
||||
|
||||
update_item(picked_item)
|
||||
|
||||
C.regenerate_icons() //so our overlays update.
|
||||
UpdateButtonIcon()
|
||||
|
||||
/datum/action/item_action/chameleon/change/proc/update_item(obj/item/picked_item)
|
||||
target.name = initial(picked_item.name)
|
||||
target.desc = initial(picked_item.desc)
|
||||
target.icon_state = initial(picked_item.icon_state)
|
||||
if(istype(target, /obj/item))
|
||||
var/obj/item/I = target
|
||||
I.item_state = initial(picked_item.item_state)
|
||||
I.item_color = initial(picked_item.item_color)
|
||||
if(istype(I, /obj/item/clothing) && istype(initial(picked_item), /obj/item/clothing))
|
||||
var/obj/item/clothing/CL = I
|
||||
var/obj/item/clothing/PCL = picked_item
|
||||
CL.flags_cover = initial(PCL.flags_cover)
|
||||
target.icon = initial(picked_item.icon)
|
||||
|
||||
/datum/action/item_action/chameleon/change/Trigger()
|
||||
if(!IsAvailable())
|
||||
return
|
||||
|
||||
select_look(owner)
|
||||
return 1
|
||||
|
||||
/obj/item/clothing/under/chameleon
|
||||
//starts off as black
|
||||
name = "black jumpsuit"
|
||||
icon_state = "black"
|
||||
item_state = "bl_suit"
|
||||
item_color = "black"
|
||||
desc = "It's a plain jumpsuit. It has a small dial on the wrist."
|
||||
origin_tech = "syndicate=2"
|
||||
sensor_mode = 0 //Hey who's this guy on the Syndicate Shuttle??
|
||||
random_sensor = 0
|
||||
burn_state = FIRE_PROOF
|
||||
armor = list(melee = 10, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
|
||||
/obj/item/clothing/under/chameleon/New()
|
||||
..()
|
||||
var/datum/action/item_action/chameleon/change/chameleon_action = new(src)
|
||||
chameleon_action.chameleon_type = /obj/item/clothing/under
|
||||
chameleon_action.chameleon_name = "Jumpsuit"
|
||||
chameleon_action.initialize_disguises()
|
||||
|
||||
/obj/item/clothing/suit/chameleon
|
||||
name = "armor"
|
||||
desc = "A slim armored vest that protects against most types of damage."
|
||||
icon_state = "armor"
|
||||
item_state = "armor"
|
||||
blood_overlay_type = "armor"
|
||||
origin_tech = "syndicate=2"
|
||||
burn_state = FIRE_PROOF
|
||||
armor = list(melee = 10, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
|
||||
/obj/item/clothing/suit/chameleon/New()
|
||||
..()
|
||||
var/datum/action/item_action/chameleon/change/chameleon_action = new(src)
|
||||
chameleon_action.chameleon_type = /obj/item/clothing/suit
|
||||
chameleon_action.chameleon_name = "Suit"
|
||||
chameleon_action.initialize_disguises()
|
||||
|
||||
/obj/item/clothing/glasses/chameleon
|
||||
name = "Optical Meson Scanner"
|
||||
desc = "Used by engineering and mining staff to see basic structural and terrain layouts through walls, regardless of lighting condition."
|
||||
icon_state = "meson"
|
||||
item_state = "meson"
|
||||
origin_tech = "syndicate=2"
|
||||
burn_state = FIRE_PROOF
|
||||
armor = list(melee = 10, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
|
||||
/obj/item/clothing/glasses/chameleon/New()
|
||||
..()
|
||||
var/datum/action/item_action/chameleon/change/chameleon_action = new(src)
|
||||
chameleon_action.chameleon_type = /obj/item/clothing/glasses
|
||||
chameleon_action.chameleon_name = "Glasses"
|
||||
chameleon_action.initialize_disguises()
|
||||
|
||||
/obj/item/clothing/gloves/chameleon
|
||||
desc = "These gloves will protect the wearer from electric shock."
|
||||
name = "insulated gloves"
|
||||
icon_state = "yellow"
|
||||
item_state = "ygloves"
|
||||
|
||||
burn_state = FIRE_PROOF
|
||||
armor = list(melee = 10, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
|
||||
/obj/item/clothing/gloves/chameleon/New()
|
||||
..()
|
||||
var/datum/action/item_action/chameleon/change/chameleon_action = new(src)
|
||||
chameleon_action.chameleon_type = /obj/item/clothing/gloves
|
||||
chameleon_action.chameleon_name = "Gloves"
|
||||
chameleon_action.initialize_disguises()
|
||||
|
||||
/obj/item/clothing/head/chameleon
|
||||
name = "grey cap"
|
||||
desc = "It's a baseball hat in a tasteful grey colour."
|
||||
icon_state = "greysoft"
|
||||
item_color = "grey"
|
||||
|
||||
burn_state = FIRE_PROOF
|
||||
armor = list(melee = 5, bullet = 5, laser = 5, energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
|
||||
var/datum/action/item_action/chameleon/change/chameleon_action = null
|
||||
|
||||
/obj/item/clothing/head/chameleon/New()
|
||||
..()
|
||||
chameleon_action = new(src)
|
||||
chameleon_action.chameleon_type = /obj/item/clothing/head
|
||||
chameleon_action.chameleon_name = "Hat"
|
||||
chameleon_action.initialize_disguises()
|
||||
|
||||
/obj/item/clothing/head/chameleon/drone
|
||||
// The camohat, I mean, holographic hat projection, is part of the
|
||||
// drone itself.
|
||||
flags = NODROP
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
// which means it offers no protection, it's just air and light
|
||||
|
||||
/obj/item/clothing/head/chameleon/drone/New()
|
||||
..()
|
||||
chameleon_action.random_look()
|
||||
var/datum/action/item_action/chameleon/drone/togglehatmask/togglehatmask_action = new(src)
|
||||
togglehatmask_action.UpdateButtonIcon()
|
||||
var/datum/action/item_action/chameleon/drone/randomise/randomise_action = new(src)
|
||||
randomise_action.UpdateButtonIcon()
|
||||
|
||||
/obj/item/clothing/mask/chameleon
|
||||
name = "gas mask"
|
||||
desc = "A face-covering mask that can be connected to an air supply. While good for concealing your identity, it isn't good for blocking gas flow." //More accurate
|
||||
icon_state = "gas_alt"
|
||||
item_state = "gas_alt"
|
||||
burn_state = FIRE_PROOF
|
||||
armor = list(melee = 5, bullet = 5, laser = 5, energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
|
||||
flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS
|
||||
flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDEFACIALHAIR
|
||||
gas_transfer_coefficient = 0.01
|
||||
permeability_coefficient = 0.01
|
||||
flags_cover = MASKCOVERSEYES | MASKCOVERSMOUTH
|
||||
|
||||
var/vchange = 1
|
||||
|
||||
var/datum/action/item_action/chameleon/change/chameleon_action = null
|
||||
|
||||
/obj/item/clothing/mask/chameleon/New()
|
||||
..()
|
||||
chameleon_action = new(src)
|
||||
chameleon_action.chameleon_type = /obj/item/clothing/mask
|
||||
chameleon_action.chameleon_name = "Mask"
|
||||
chameleon_action.initialize_disguises()
|
||||
|
||||
/obj/item/clothing/mask/chameleon/attack_self(mob/user)
|
||||
vchange = !vchange
|
||||
user << "<span class='notice'>The voice changer is now [vchange ? "on" : "off"]!</span>"
|
||||
|
||||
|
||||
/obj/item/clothing/mask/chameleon/drone
|
||||
//Same as the drone chameleon hat, undroppable and no protection
|
||||
flags = NODROP
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
// Can drones use the voice changer part? Let's not find out.
|
||||
vchange = 0
|
||||
|
||||
/obj/item/clothing/mask/chameleon/drone/New()
|
||||
..()
|
||||
chameleon_action.random_look()
|
||||
var/datum/action/item_action/chameleon/drone/togglehatmask/togglehatmask_action = new(src)
|
||||
togglehatmask_action.UpdateButtonIcon()
|
||||
var/datum/action/item_action/chameleon/drone/randomise/randomise_action = new(src)
|
||||
randomise_action.UpdateButtonIcon()
|
||||
|
||||
/obj/item/clothing/mask/chameleon/attack_self(mob/user)
|
||||
user << "<span class='notice'>The [src] does not have a voice changer.</span>"
|
||||
|
||||
/obj/item/clothing/shoes/chameleon
|
||||
name = "black shoes"
|
||||
icon_state = "black"
|
||||
item_color = "black"
|
||||
desc = "A pair of black shoes."
|
||||
permeability_coefficient = 0.05
|
||||
flags = NOSLIP
|
||||
origin_tech = "syndicate=2"
|
||||
burn_state = FIRE_PROOF
|
||||
can_hold_items = 1
|
||||
armor = list(melee = 10, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
|
||||
/obj/item/clothing/shoes/chameleon/New()
|
||||
..()
|
||||
var/datum/action/item_action/chameleon/change/chameleon_action = new(src)
|
||||
chameleon_action.chameleon_type = /obj/item/clothing/shoes
|
||||
chameleon_action.chameleon_name = "Shoes"
|
||||
chameleon_action.initialize_disguises()
|
||||
|
||||
/obj/item/weapon/gun/energy/laser/chameleon
|
||||
name = "practice laser gun"
|
||||
desc = "A modified version of the basic laser gun, this one fires less concentrated energy bolts designed for target practice."
|
||||
ammo_type = list(/obj/item/ammo_casing/energy/laser/practice)
|
||||
clumsy_check = 0
|
||||
needs_permit = 0
|
||||
pin = /obj/item/device/firing_pin
|
||||
cell_type = /obj/item/weapon/stock_parts/cell/bluespace
|
||||
|
||||
/obj/item/weapon/gun/energy/laser/chameleon/New()
|
||||
..()
|
||||
var/datum/action/item_action/chameleon/change/chameleon_action = new(src)
|
||||
chameleon_action.chameleon_type = /obj/item/weapon/gun
|
||||
chameleon_action.chameleon_name = "Gun"
|
||||
chameleon_action.chameleon_blacklist = typesof(/obj/item/weapon/gun/magic)
|
||||
chameleon_action.initialize_disguises()
|
||||
|
||||
/obj/item/weapon/storage/backpack/chameleon
|
||||
name = "chameleon backpack"
|
||||
|
||||
/obj/item/weapon/storage/backpack/chameleon/New()
|
||||
..()
|
||||
var/datum/action/item_action/chameleon/change/chameleon_action = new(src)
|
||||
chameleon_action.chameleon_type = /obj/item/weapon/storage/backpack
|
||||
chameleon_action.chameleon_name = "Backpack"
|
||||
chameleon_action.initialize_disguises()
|
||||
|
||||
/obj/item/device/radio/headset/chameleon
|
||||
name = "chameleon headset"
|
||||
|
||||
/obj/item/device/radio/headset/chameleon/New()
|
||||
..()
|
||||
var/datum/action/item_action/chameleon/change/chameleon_action = new(src)
|
||||
chameleon_action.chameleon_type = /obj/item/device/radio/headset
|
||||
chameleon_action.chameleon_name = "Headset"
|
||||
chameleon_action.initialize_disguises()
|
||||
|
||||
/obj/item/device/pda/chameleon
|
||||
name = "chameleon PDA"
|
||||
|
||||
/obj/item/device/pda/chameleon/New()
|
||||
..()
|
||||
var/datum/action/item_action/chameleon/change/chameleon_action = new(src)
|
||||
chameleon_action.chameleon_type = /obj/item/device/pda
|
||||
chameleon_action.chameleon_name = "PDA"
|
||||
chameleon_action.chameleon_blacklist = list(/obj/item/device/pda/ai)
|
||||
chameleon_action.initialize_disguises()
|
||||
@@ -0,0 +1,556 @@
|
||||
/obj/item/clothing
|
||||
name = "clothing"
|
||||
burn_state = FLAMMABLE
|
||||
var/flash_protect = 0 //Malk: What level of bright light protection item has. 1 = Flashers, Flashes, & Flashbangs | 2 = Welding | -1 = OH GOD WELDING BURNT OUT MY RETINAS
|
||||
var/tint = 0 //Malk: Sets the item's level of visual impairment tint, normally set to the same as flash_protect
|
||||
var/up = 0 // but seperated to allow items to protect but not impair vision, like space helmets
|
||||
var/visor_flags = 0 // flags that are added/removed when an item is adjusted up/down
|
||||
var/visor_flags_inv = 0 // same as visor_flags, but for flags_inv
|
||||
var/visor_flags_cover = 0 // same as above, but for flags_cover
|
||||
lefthand_file = 'icons/mob/inhands/clothing_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/clothing_righthand.dmi'
|
||||
var/alt_desc = null
|
||||
var/toggle_message = null
|
||||
var/alt_toggle_message = null
|
||||
var/active_sound = null
|
||||
var/toggle_cooldown = null
|
||||
var/cooldown = 0
|
||||
var/obj/item/device/flashlight/F = null
|
||||
var/can_flashlight = 0
|
||||
var/gang //Is this a gang outfit?
|
||||
var/scan_reagents = 0 //Can the wearer see reagents while it's equipped?
|
||||
|
||||
//Var modification - PLEASE be careful with this I know who you are and where you live
|
||||
var/list/user_vars_to_edit = list() //VARNAME = VARVALUE eg: "name" = "butts"
|
||||
var/list/user_vars_remembered = list() //Auto built by the above + dropped() + equipped()
|
||||
|
||||
|
||||
/obj/item/clothing/Destroy()
|
||||
if(isliving(loc))
|
||||
dropped(loc)
|
||||
user_vars_remembered = null //Oh god somebody put REFERENCES in here? not to worry, we'll clean it up
|
||||
return ..()
|
||||
|
||||
|
||||
/obj/item/clothing/dropped(mob/user)
|
||||
..()
|
||||
if(user_vars_remembered && user_vars_remembered.len)
|
||||
for(var/variable in user_vars_remembered)
|
||||
if(variable in user.vars)
|
||||
if(user.vars[variable] == user_vars_to_edit[variable]) //Is it still what we set it to? (if not we best not change it)
|
||||
user.vars[variable] = user_vars_remembered[variable]
|
||||
user_vars_remembered = list()
|
||||
|
||||
|
||||
/obj/item/clothing/equipped(mob/user, slot)
|
||||
..()
|
||||
|
||||
if(slot_flags & slotdefine2slotbit(slot)) //Was equipped to a valid slot for this item?
|
||||
for(var/variable in user_vars_to_edit)
|
||||
if(variable in user.vars)
|
||||
user_vars_remembered[variable] = user.vars[variable]
|
||||
user.vars[variable] = user_vars_to_edit[variable]
|
||||
|
||||
|
||||
|
||||
//Ears: currently only used for headsets and earmuffs
|
||||
/obj/item/clothing/ears
|
||||
name = "ears"
|
||||
w_class = 1
|
||||
throwforce = 0
|
||||
slot_flags = SLOT_EARS
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/ears/earmuffs
|
||||
name = "earmuffs"
|
||||
desc = "Protects your hearing from loud noises, and quiet ones as well."
|
||||
icon_state = "earmuffs"
|
||||
item_state = "earmuffs"
|
||||
flags = EARBANGPROTECT
|
||||
strip_delay = 15
|
||||
put_on_delay = 25
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
//Glasses
|
||||
/obj/item/clothing/glasses
|
||||
name = "glasses"
|
||||
icon = 'icons/obj/clothing/glasses.dmi'
|
||||
w_class = 2
|
||||
flags_cover = GLASSESCOVERSEYES
|
||||
slot_flags = SLOT_EYES
|
||||
var/vision_flags = 0
|
||||
var/darkness_view = 2//Base human is 2
|
||||
var/invis_view = SEE_INVISIBLE_LIVING
|
||||
var/invis_override = 0 //Override to allow glasses to set higher than normal see_invis
|
||||
var/emagged = 0
|
||||
var/list/icon/current = list() //the current hud icons
|
||||
var/vision_correction = 0 //does wearing these glasses correct some of our vision defects?
|
||||
strip_delay = 20
|
||||
put_on_delay = 25
|
||||
burn_state = FIRE_PROOF
|
||||
/*
|
||||
SEE_SELF // can see self, no matter what
|
||||
SEE_MOBS // can see all mobs, no matter what
|
||||
SEE_OBJS // can see all objs, no matter what
|
||||
SEE_TURFS // can see all turfs (and areas), no matter what
|
||||
SEE_PIXELS// if an object is located on an unlit area, but some of its pixels are
|
||||
// in a lit area (via pixel_x,y or smooth movement), can see those pixels
|
||||
BLIND // can't see anything
|
||||
*/
|
||||
|
||||
|
||||
//Gloves
|
||||
/obj/item/clothing/gloves
|
||||
name = "gloves"
|
||||
gender = PLURAL //Carn: for grammarically correct text-parsing
|
||||
w_class = 2
|
||||
icon = 'icons/obj/clothing/gloves.dmi'
|
||||
siemens_coefficient = 0.50
|
||||
body_parts_covered = HANDS
|
||||
slot_flags = SLOT_GLOVES
|
||||
attack_verb = list("challenged")
|
||||
var/transfer_prints = FALSE
|
||||
strip_delay = 20
|
||||
put_on_delay = 40
|
||||
|
||||
|
||||
/obj/item/clothing/gloves/worn_overlays(var/isinhands = FALSE)
|
||||
. = list()
|
||||
if(!isinhands)
|
||||
if(blood_DNA)
|
||||
. += image("icon"='icons/effects/blood.dmi', "icon_state"="bloodyhands")
|
||||
|
||||
|
||||
// Called just before an attack_hand(), in mob/UnarmedAttack()
|
||||
/obj/item/clothing/gloves/proc/Touch(atom/A, proximity)
|
||||
return 0 // return 1 to cancel attack_hand()
|
||||
|
||||
//Head
|
||||
/obj/item/clothing/head
|
||||
name = "head"
|
||||
icon = 'icons/obj/clothing/hats.dmi'
|
||||
body_parts_covered = HEAD
|
||||
slot_flags = SLOT_HEAD
|
||||
var/blockTracking = 0 //For AI tracking
|
||||
var/can_toggle = null
|
||||
|
||||
|
||||
/obj/item/clothing/head/worn_overlays(var/isinhands = FALSE)
|
||||
. = list()
|
||||
if(!isinhands)
|
||||
if(blood_DNA)
|
||||
. += image("icon"='icons/effects/blood.dmi', "icon_state"="helmetblood")
|
||||
|
||||
//Mask
|
||||
/obj/item/clothing/mask
|
||||
name = "mask"
|
||||
icon = 'icons/obj/clothing/masks.dmi'
|
||||
body_parts_covered = HEAD
|
||||
slot_flags = SLOT_MASK
|
||||
strip_delay = 40
|
||||
put_on_delay = 40
|
||||
var/mask_adjusted = 0
|
||||
var/adjusted_flags = null
|
||||
|
||||
|
||||
/obj/item/clothing/mask/worn_overlays(var/isinhands = FALSE)
|
||||
. = list()
|
||||
if(!isinhands)
|
||||
if(blood_DNA && (body_parts_covered & HEAD))
|
||||
. += image("icon"='icons/effects/blood.dmi', "icon_state"="maskblood")
|
||||
|
||||
//Override this to modify speech like luchador masks.
|
||||
/obj/item/clothing/mask/proc/speechModification(message)
|
||||
return message
|
||||
|
||||
//Proc that moves gas/breath masks out of the way, disabling them and allowing pill/food consumption
|
||||
/obj/item/clothing/mask/proc/adjustmask(mob/living/user)
|
||||
if(user && user.incapacitated())
|
||||
return
|
||||
mask_adjusted = !mask_adjusted
|
||||
if(!mask_adjusted)
|
||||
src.icon_state = initial(icon_state)
|
||||
gas_transfer_coefficient = initial(gas_transfer_coefficient)
|
||||
permeability_coefficient = initial(permeability_coefficient)
|
||||
flags |= visor_flags
|
||||
flags_inv |= visor_flags_inv
|
||||
flags_cover |= visor_flags_cover
|
||||
user << "<span class='notice'>You push \the [src] back into place.</span>"
|
||||
slot_flags = initial(slot_flags)
|
||||
else
|
||||
icon_state += "_up"
|
||||
user << "<span class='notice'>You push \the [src] out of the way.</span>"
|
||||
gas_transfer_coefficient = null
|
||||
permeability_coefficient = null
|
||||
flags &= ~visor_flags
|
||||
flags_inv &= ~visor_flags_inv
|
||||
flags_cover &= ~visor_flags_cover
|
||||
if(adjusted_flags)
|
||||
slot_flags = adjusted_flags
|
||||
if(user)
|
||||
user.wear_mask_update(src, toggle_off = mask_adjusted)
|
||||
user.update_action_buttons_icon() //when mask is adjusted out, we update all buttons icon so the user's potential internal tank correctly shows as off.
|
||||
|
||||
|
||||
|
||||
|
||||
//Shoes
|
||||
/obj/item/clothing/shoes
|
||||
name = "shoes"
|
||||
icon = 'icons/obj/clothing/shoes.dmi'
|
||||
desc = "Comfortable-looking shoes."
|
||||
gender = PLURAL //Carn: for grammarically correct text-parsing
|
||||
var/chained = 0
|
||||
|
||||
body_parts_covered = FEET
|
||||
slot_flags = SLOT_FEET
|
||||
|
||||
permeability_coefficient = 0.50
|
||||
slowdown = SHOES_SLOWDOWN
|
||||
var/blood_state = BLOOD_STATE_NOT_BLOODY
|
||||
var/list/bloody_shoes = list(BLOOD_STATE_HUMAN = 0,BLOOD_STATE_XENO = 0, BLOOD_STATE_OIL = 0, BLOOD_STATE_NOT_BLOODY = 0)
|
||||
var/can_hold_items = 0//if set to 1, the shoe can hold knives and edaggers
|
||||
var/obj/held_item
|
||||
var/list/valid_held_items = list(/obj/item/weapon/kitchen/knife, /obj/item/weapon/pen, /obj/item/weapon/switchblade, /obj/item/weapon/scalpel, /obj/item/weapon/reagent_containers/syringe, /obj/item/weapon/dnainjector)//can hold both regular pens and energy daggers. made for your every-day tactical librarians/murderers.
|
||||
|
||||
|
||||
/obj/item/clothing/shoes/worn_overlays(var/isinhands = FALSE)
|
||||
. = list()
|
||||
if(!isinhands)
|
||||
var/bloody = 0
|
||||
if(blood_DNA)
|
||||
bloody = 1
|
||||
else
|
||||
bloody = bloody_shoes[BLOOD_STATE_HUMAN]
|
||||
|
||||
if(bloody)
|
||||
. += image("icon"='icons/effects/blood.dmi', "icon_state"="shoeblood")
|
||||
|
||||
|
||||
/obj/item/clothing/shoes/clean_blood()
|
||||
..()
|
||||
bloody_shoes = list(BLOOD_STATE_HUMAN = 0,BLOOD_STATE_XENO = 0, BLOOD_STATE_OIL = 0, BLOOD_STATE_NOT_BLOODY = 0)
|
||||
blood_state = BLOOD_STATE_NOT_BLOODY
|
||||
if(ismob(loc))
|
||||
var/mob/M = loc
|
||||
M.update_inv_shoes()
|
||||
|
||||
/obj/item/clothing/shoes/attackby(obj/item/I, mob/user, params)
|
||||
..()
|
||||
if(!can_hold_items)
|
||||
return
|
||||
if(held_item)
|
||||
user << "<span class='notice'>There's already something in [src].</span>"
|
||||
return
|
||||
if(is_type_in_list(I, valid_held_items))//can hold both regular pens and energy daggers. made for your every-day tactical librarians/murderers.
|
||||
if(I.w_class > 2)//if the object is too big (like if it's a cleaver or an extended edagger) it wont fit
|
||||
user << "<span class='notice'>[I] is currently too big to fit into [src]. </span>"
|
||||
return
|
||||
if(!user.drop_item())
|
||||
return
|
||||
I.loc = src
|
||||
held_item = I
|
||||
user << "<span class='notice'>You discreetly slip [I] into [src]. Alt-click [src] to remove it.</span>"
|
||||
|
||||
/obj/item/clothing/shoes/AltClick(mob/user)
|
||||
if(user.incapacitated() || !held_item || !can_hold_items)
|
||||
return
|
||||
if(!user.put_in_hands(held_item))
|
||||
user << "<span class='notice'>You fumble for [held_item] and it falls on the floor.</span>"
|
||||
return 1
|
||||
held_item = null
|
||||
user.visible_message("<span class='warning'>[user] draws [held_item] from their shoes!</span>", "<span class='notice'>You draw [held_item] from [src].</span>")
|
||||
held_item = null
|
||||
|
||||
/obj/item/proc/negates_gravity()
|
||||
return 0
|
||||
|
||||
//Suit
|
||||
/obj/item/clothing/suit
|
||||
icon = 'icons/obj/clothing/suits.dmi'
|
||||
name = "suit"
|
||||
var/fire_resist = T0C+100
|
||||
allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
slot_flags = SLOT_OCLOTHING
|
||||
var/blood_overlay_type = "suit"
|
||||
var/togglename = null
|
||||
|
||||
|
||||
/obj/item/clothing/suit/worn_overlays(var/isinhands = FALSE)
|
||||
. = list()
|
||||
if(!isinhands)
|
||||
if(blood_DNA)
|
||||
. += image("icon"='icons/effects/blood.dmi', "icon_state"="[blood_overlay_type]blood")
|
||||
|
||||
//Spacesuit
|
||||
//Note: Everything in modules/clothing/spacesuits should have the entire suit grouped together.
|
||||
// Meaning the the suit is defined directly after the corrisponding helmet. Just like below!
|
||||
/obj/item/clothing/head/helmet/space
|
||||
name = "space helmet"
|
||||
icon_state = "spaceold"
|
||||
desc = "A special helmet with solar UV shielding to protect your eyes from harmful rays."
|
||||
flags = STOPSPRESSUREDMAGE | THICKMATERIAL
|
||||
item_state = "spaceold"
|
||||
permeability_coefficient = 0.01
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 50)
|
||||
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
|
||||
cold_protection = HEAD
|
||||
min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT
|
||||
heat_protection = HEAD
|
||||
max_heat_protection_temperature = SPACE_HELM_MAX_TEMP_PROTECT
|
||||
flash_protect = 2
|
||||
strip_delay = 50
|
||||
put_on_delay = 50
|
||||
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/suit/space
|
||||
name = "space suit"
|
||||
desc = "A suit that protects against low pressure environments. Has a big 13 on the back."
|
||||
icon_state = "spaceold"
|
||||
item_state = "s_suit"
|
||||
w_class = 4//bulky item
|
||||
gas_transfer_coefficient = 0.01
|
||||
permeability_coefficient = 0.02
|
||||
flags = STOPSPRESSUREDMAGE | THICKMATERIAL
|
||||
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals)
|
||||
slowdown = 1
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 50)
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
|
||||
cold_protection = CHEST | GROIN | LEGS | FEET | ARMS | HANDS
|
||||
min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT
|
||||
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
max_heat_protection_temperature = SPACE_SUIT_MAX_TEMP_PROTECT
|
||||
strip_delay = 80
|
||||
put_on_delay = 80
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
//Under clothing
|
||||
|
||||
/obj/item/clothing/under
|
||||
icon = 'icons/obj/clothing/uniforms.dmi'
|
||||
name = "under"
|
||||
body_parts_covered = CHEST|GROIN|LEGS|ARMS
|
||||
permeability_coefficient = 0.90
|
||||
slot_flags = SLOT_ICLOTHING
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
var/fitted = FEMALE_UNIFORM_FULL // For use in alternate clothing styles for women
|
||||
var/has_sensor = 1//For the crew computer 2 = unable to change mode
|
||||
var/random_sensor = 1
|
||||
var/sensor_mode = 0 /* 1 = Report living/dead, 2 = Report detailed damages, 3 = Report location */
|
||||
var/can_adjust = 1
|
||||
var/adjusted = 0
|
||||
var/alt_covers_chest = 0 // for adjusted/rolled-down jumpsuits, 0 = exposes chest and arms, 1 = exposes arms only
|
||||
var/obj/item/clothing/tie/hastie = null
|
||||
|
||||
/obj/item/clothing/under/worn_overlays(var/isinhands = FALSE)
|
||||
. = list()
|
||||
|
||||
if(!isinhands)
|
||||
if(blood_DNA)
|
||||
. += image("icon"='icons/effects/blood.dmi', "icon_state"="uniformblood")
|
||||
|
||||
if(hastie)
|
||||
var/tie_color = hastie.item_color
|
||||
if(!tie_color)
|
||||
tie_color = hastie.icon_state
|
||||
. += image("icon"='icons/mob/ties.dmi', "icon_state"="[tie_color]")
|
||||
|
||||
|
||||
/obj/item/clothing/under/New()
|
||||
if(random_sensor)
|
||||
//make the sensor mode favor higher levels, except coords.
|
||||
sensor_mode = pick(0, 1, 1, 2, 2, 2, 3, 3)
|
||||
adjusted = 0
|
||||
..()
|
||||
|
||||
/obj/item/clothing/under/attackby(obj/item/I, mob/user, params)
|
||||
attachTie(I, user)
|
||||
..()
|
||||
|
||||
/obj/item/clothing/under/proc/attachTie(obj/item/I, mob/user, notifyAttach = 1)
|
||||
if(istype(I, /obj/item/clothing/tie))
|
||||
if(hastie)
|
||||
if(user)
|
||||
user << "<span class='warning'>[src] already has an accessory.</span>"
|
||||
return 0
|
||||
else
|
||||
if(user)
|
||||
if(!user.drop_item())
|
||||
return
|
||||
hastie = I
|
||||
I.loc = src
|
||||
if(user && notifyAttach)
|
||||
user << "<span class='notice'>You attach [I] to [src].</span>"
|
||||
I.transform *= 0.5 //halve the size so it doesn't overpower the under
|
||||
I.pixel_x += 8
|
||||
I.pixel_y -= 8
|
||||
I.layer = FLOAT_LAYER
|
||||
add_overlay(I)
|
||||
|
||||
|
||||
if(istype(loc, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = loc
|
||||
H.update_inv_w_uniform()
|
||||
|
||||
return 1
|
||||
|
||||
|
||||
/obj/item/clothing/under/examine(mob/user)
|
||||
..()
|
||||
switch(src.sensor_mode)
|
||||
if(0)
|
||||
user << "Its sensors appear to be disabled."
|
||||
if(1)
|
||||
user << "Its binary life sensors appear to be enabled."
|
||||
if(2)
|
||||
user << "Its vital tracker appears to be enabled."
|
||||
if(3)
|
||||
user << "Its vital tracker and tracking beacon appear to be enabled."
|
||||
if(hastie)
|
||||
user << "\A [hastie] is attached to it."
|
||||
|
||||
/proc/generate_female_clothing(index,t_color,icon,type)
|
||||
var/icon/female_clothing_icon = icon("icon"=icon, "icon_state"=t_color)
|
||||
var/icon/female_s = icon("icon"='icons/mob/uniform.dmi', "icon_state"="[(type == FEMALE_UNIFORM_FULL) ? "female_full" : "female_top"]")
|
||||
female_clothing_icon.Blend(female_s, ICON_MULTIPLY)
|
||||
female_clothing_icon = fcopy_rsc(female_clothing_icon)
|
||||
female_clothing_icons[index] = female_clothing_icon
|
||||
|
||||
/obj/item/clothing/under/verb/toggle()
|
||||
set name = "Adjust Suit Sensors"
|
||||
set category = "Object"
|
||||
set src in usr
|
||||
var/mob/M = usr
|
||||
if (istype(M, /mob/dead/))
|
||||
return
|
||||
if (!can_use(M))
|
||||
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
|
||||
|
||||
var/list/modes = list("Off", "Binary vitals", "Exact vitals", "Tracking beacon")
|
||||
var/switchMode = input("Select a sensor mode:", "Suit Sensor Mode", modes[sensor_mode + 1]) in modes
|
||||
if(get_dist(usr, src) > 1)
|
||||
usr << "<span class='warning'>You have moved too far away!</span>"
|
||||
return
|
||||
sensor_mode = modes.Find(switchMode) - 1
|
||||
|
||||
if (src.loc == usr)
|
||||
switch(sensor_mode)
|
||||
if(0)
|
||||
usr << "<span class='notice'>You disable your suit's remote sensing equipment.</span>"
|
||||
if(1)
|
||||
usr << "<span class='notice'>Your suit will now only report whether you are alive or dead.</span>"
|
||||
if(2)
|
||||
usr << "<span class='notice'>Your suit will now only report your exact vital lifesigns.</span>"
|
||||
if(3)
|
||||
usr << "<span class='notice'>Your suit will now report your exact vital lifesigns as well as your coordinate position.</span>"
|
||||
|
||||
if(istype(loc,/mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = loc
|
||||
if(H.w_uniform == src)
|
||||
H.update_suit_sensors()
|
||||
|
||||
..()
|
||||
|
||||
/obj/item/clothing/under/AltClick(mob/user)
|
||||
..()
|
||||
if(!user.canUseTopic(src, be_close=TRUE))
|
||||
user << "<span class='warning'>You can't do that right now!</span>"
|
||||
return
|
||||
else
|
||||
rolldown()
|
||||
|
||||
/obj/item/clothing/under/verb/jumpsuit_adjust()
|
||||
set name = "Adjust Jumpsuit Style"
|
||||
set category = null
|
||||
set src in usr
|
||||
rolldown()
|
||||
|
||||
/obj/item/clothing/under/proc/rolldown()
|
||||
if(!can_use(usr))
|
||||
return
|
||||
if(!can_adjust)
|
||||
usr << "<span class='warning'>You cannot wear this suit any differently!</span>"
|
||||
return
|
||||
if(toggle_jumpsuit_adjust())
|
||||
usr << "<span class='notice'>You adjust the suit to wear it more casually.</span>"
|
||||
else
|
||||
usr << "<span class='notice'>You adjust the suit back to normal.</span>"
|
||||
usr.update_inv_w_uniform()
|
||||
|
||||
/obj/item/clothing/under/proc/toggle_jumpsuit_adjust()
|
||||
adjusted = !adjusted
|
||||
if(adjusted)
|
||||
if(fitted != FEMALE_UNIFORM_TOP)
|
||||
fitted = NO_FEMALE_UNIFORM
|
||||
if (alt_covers_chest) // for the special snowflake suits that don't expose the chest when adjusted
|
||||
body_parts_covered = CHEST|GROIN|LEGS
|
||||
else
|
||||
body_parts_covered = GROIN|LEGS
|
||||
else
|
||||
fitted = initial(fitted)
|
||||
body_parts_covered = CHEST|GROIN|LEGS|ARMS
|
||||
return adjusted
|
||||
|
||||
/obj/item/clothing/under/examine(mob/user)
|
||||
..()
|
||||
if(src.adjusted)
|
||||
user << "Alt-click on [src] to wear it normally."
|
||||
else
|
||||
user << "Alt-click on [src] to wear it casually."
|
||||
|
||||
/obj/item/clothing/under/verb/removetie()
|
||||
set name = "Remove Accessory"
|
||||
set category = "Object"
|
||||
set src in usr
|
||||
if(!istype(usr, /mob/living))
|
||||
return
|
||||
if(!can_use(usr))
|
||||
return
|
||||
|
||||
if(hastie)
|
||||
hastie.transform *= 2
|
||||
hastie.pixel_x -= 8
|
||||
hastie.pixel_y += 8
|
||||
hastie.layer = initial(hastie.layer)
|
||||
overlays = null
|
||||
usr.put_in_hands(hastie)
|
||||
hastie = null
|
||||
|
||||
if(istype(loc, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = loc
|
||||
H.update_inv_w_uniform()
|
||||
|
||||
/obj/item/clothing/proc/weldingvisortoggle() //Malk: proc to toggle welding visors on helmets, masks, goggles, etc.
|
||||
if(!can_use(usr))
|
||||
return
|
||||
|
||||
up ^= 1
|
||||
flags ^= visor_flags
|
||||
flags_inv ^= visor_flags_inv
|
||||
flags_cover ^= initial(flags_cover)
|
||||
icon_state = "[initial(icon_state)][up ? "up" : ""]"
|
||||
usr << "<span class='notice'>You adjust \the [src] [up ? "up" : "down"].</span>"
|
||||
flash_protect ^= initial(flash_protect)
|
||||
tint ^= initial(tint)
|
||||
|
||||
if(istype(usr, /mob/living/carbon))
|
||||
var/mob/living/carbon/C = usr
|
||||
C.head_update(src, forced = 1)
|
||||
for(var/X in actions)
|
||||
var/datum/action/A = X
|
||||
A.UpdateButtonIcon()
|
||||
|
||||
/obj/item/clothing/proc/can_use(mob/user)
|
||||
if(user && ismob(user))
|
||||
if(!user.incapacitated())
|
||||
return 1
|
||||
return 0
|
||||
@@ -0,0 +1,136 @@
|
||||
//Engineering Mesons
|
||||
|
||||
/obj/item/clothing/glasses/meson/engine
|
||||
name = "Engineering Scanner Goggles"
|
||||
desc = "Goggles used by engineers. The Meson Scanner mode lets you see basic structural and terrain layouts through walls, regardless of lighting condition. The T-ray Scanner mode lets you see underfloor objects such as cables and pipes."
|
||||
icon_state = "trayson-meson"
|
||||
actions_types = list(/datum/action/item_action/toggle_mode)
|
||||
origin_tech = "materials=3;magnets=3;engineering=3;plasmatech=3"
|
||||
|
||||
var/mode = 0 //0 - regular mesons mode 1 - t-ray mode
|
||||
var/invis_objects = list()
|
||||
var/range = 1
|
||||
|
||||
/obj/item/clothing/glasses/meson/engine/attack_self(mob/user)
|
||||
mode = !mode
|
||||
|
||||
if(mode)
|
||||
START_PROCESSING(SSobj, src)
|
||||
vision_flags = 0
|
||||
darkness_view = 2
|
||||
invis_view = SEE_INVISIBLE_LIVING
|
||||
user << "<span class='notice'>You toggle the goggles' scanning mode to \[T-Ray].</span>"
|
||||
else
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
vision_flags = SEE_TURFS
|
||||
darkness_view = 1
|
||||
invis_view = SEE_INVISIBLE_MINIMUM
|
||||
loc << "<span class='notice'>You toggle the goggles' scanning mode to \[Meson].</span>"
|
||||
invis_update()
|
||||
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(H.glasses == src)
|
||||
H.update_sight()
|
||||
|
||||
update_icon()
|
||||
for(var/X in actions)
|
||||
var/datum/action/A = X
|
||||
A.UpdateButtonIcon()
|
||||
|
||||
/obj/item/clothing/glasses/meson/engine/process()
|
||||
if(!mode)
|
||||
return
|
||||
|
||||
if(!istype(loc,/mob/living/carbon/human))
|
||||
invis_update()
|
||||
return
|
||||
|
||||
var/mob/living/carbon/human/user = loc
|
||||
if(user.glasses != src)
|
||||
invis_update()
|
||||
return
|
||||
|
||||
scan()
|
||||
|
||||
/obj/item/clothing/glasses/meson/engine/proc/scan()
|
||||
for(var/turf/T in range(range, loc))
|
||||
|
||||
if(!T.intact)
|
||||
continue
|
||||
|
||||
for(var/obj/O in T.contents)
|
||||
if(O.level != 1)
|
||||
continue
|
||||
|
||||
if(O.invisibility == INVISIBILITY_MAXIMUM)
|
||||
O.invisibility = 0
|
||||
invis_objects += O
|
||||
|
||||
addtimer(src, "invis_update", 5)
|
||||
|
||||
/obj/item/clothing/glasses/meson/engine/proc/invis_update()
|
||||
for(var/obj/O in invis_objects)
|
||||
if(!t_ray_on() || !(O in range(range, loc)))
|
||||
invis_objects -= O
|
||||
var/turf/T = O.loc
|
||||
if(T && T.intact)
|
||||
O.invisibility = INVISIBILITY_MAXIMUM
|
||||
|
||||
/obj/item/clothing/glasses/meson/engine/proc/t_ray_on()
|
||||
if(!istype(loc,/mob/living/carbon/human))
|
||||
return 0
|
||||
|
||||
var/mob/living/carbon/human/user = loc
|
||||
return mode & (user.glasses == src)
|
||||
|
||||
/obj/item/clothing/glasses/meson/engine/update_icon()
|
||||
icon_state = mode ? "trayson-tray" : "trayson-meson"
|
||||
if(istype(loc,/mob/living/carbon/human/))
|
||||
var/mob/living/carbon/human/user = loc
|
||||
if(user.glasses == src)
|
||||
user.update_inv_glasses()
|
||||
|
||||
/obj/item/clothing/glasses/meson/engine/tray //atmos techs have lived far too long without tray goggles while those damned engineers get their dual-purpose gogles all to themselves
|
||||
name = "Optical T-Ray Scanner"
|
||||
desc = "Used by engineering staff to see underfloor objects such as cables and pipes."
|
||||
icon_state = "trayson-tray_off"
|
||||
origin_tech = "materials=3;magnets=2;engineering=2"
|
||||
|
||||
mode = 1
|
||||
var/on = 0
|
||||
vision_flags = 0
|
||||
darkness_view = 2
|
||||
invis_view = SEE_INVISIBLE_LIVING
|
||||
range = 2
|
||||
|
||||
/obj/item/clothing/glasses/meson/engine/tray/process()
|
||||
if(!on)
|
||||
return
|
||||
..()
|
||||
|
||||
/obj/item/clothing/glasses/meson/engine/tray/update_icon()
|
||||
icon_state = "trayson-tray[on ? "" : "_off"]"
|
||||
if(istype(loc,/mob/living/carbon/human/))
|
||||
var/mob/living/carbon/human/user = loc
|
||||
if(user.glasses == src)
|
||||
user.update_inv_glasses()
|
||||
|
||||
/obj/item/clothing/glasses/meson/engine/tray/attack_self(mob/user)
|
||||
on = !on
|
||||
|
||||
if(on)
|
||||
START_PROCESSING(SSobj, src)
|
||||
user << "<span class='notice'>You turn the goggles on.</span>"
|
||||
else
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
user << "<span class='notice'>You turn the goggles off.</span>"
|
||||
invis_update()
|
||||
|
||||
update_icon()
|
||||
for(var/X in actions)
|
||||
var/datum/action/A = X
|
||||
A.UpdateButtonIcon()
|
||||
|
||||
/obj/item/clothing/glasses/meson/engine/tray/t_ray_on()
|
||||
return on && ..()
|
||||
@@ -0,0 +1,344 @@
|
||||
/obj/item/clothing/glasses
|
||||
name = "glasses"
|
||||
materials = list(MAT_GLASS = 250)
|
||||
|
||||
//called when thermal glasses are emped.
|
||||
/obj/item/clothing/glasses/proc/thermal_overload()
|
||||
if(ishuman(src.loc))
|
||||
var/mob/living/carbon/human/H = src.loc
|
||||
if(!(H.disabilities & BLIND))
|
||||
if(H.glasses == src)
|
||||
H << "<span class='danger'>The [src] overloads and blinds you!</span>"
|
||||
H.flash_eyes(visual = 1)
|
||||
H.blind_eyes(3)
|
||||
H.blur_eyes(5)
|
||||
H.adjust_eye_damage(5)
|
||||
|
||||
/obj/item/clothing/glasses/meson
|
||||
name = "Optical Meson Scanner"
|
||||
desc = "Used by engineering and mining staff to see basic structural and terrain layouts through walls, regardless of lighting condition."
|
||||
icon_state = "meson"
|
||||
item_state = "meson"
|
||||
origin_tech = "magnets=1;engineering=2"
|
||||
darkness_view = 2
|
||||
vision_flags = SEE_TURFS
|
||||
invis_view = SEE_INVISIBLE_MINIMUM
|
||||
|
||||
/obj/item/clothing/glasses/meson/night
|
||||
name = "Night Vision Optical Meson Scanner"
|
||||
desc = "An Optical Meson Scanner fitted with an amplified visible light spectrum overlay, providing greater visual clarity in darkness."
|
||||
icon_state = "nvgmeson"
|
||||
item_state = "nvgmeson"
|
||||
origin_tech = "magnets=4;engineering=5;plasmatech=4"
|
||||
darkness_view = 8
|
||||
|
||||
/obj/item/clothing/glasses/meson/gar
|
||||
name = "gar mesons"
|
||||
icon_state = "garm"
|
||||
item_state = "garm"
|
||||
desc = "Do the impossible, see the invisible!"
|
||||
force = 10
|
||||
throwforce = 10
|
||||
throw_speed = 4
|
||||
attack_verb = list("sliced")
|
||||
hitsound = 'sound/weapons/bladeslice.ogg'
|
||||
sharpness = IS_SHARP
|
||||
|
||||
/obj/item/clothing/glasses/science
|
||||
name = "science goggles"
|
||||
desc = "A pair of snazzy goggles used to protect against chemical spills. Fitted with an analyzer for scanning items and reagents."
|
||||
icon_state = "purple"
|
||||
item_state = "glasses"
|
||||
origin_tech = "magnets=2;engineering=1"
|
||||
scan_reagents = 1 //You can see reagents while wearing science goggles
|
||||
actions_types = list(/datum/action/item_action/toggle_research_scanner)
|
||||
|
||||
/obj/item/clothing/glasses/science/item_action_slot_check(slot)
|
||||
if(slot == slot_glasses)
|
||||
return 1
|
||||
|
||||
/obj/item/clothing/glasses/night
|
||||
name = "Night Vision Goggles"
|
||||
desc = "You can totally see in the dark now!"
|
||||
icon_state = "night"
|
||||
item_state = "glasses"
|
||||
origin_tech = "materials=4;magnets=4;plasmatech=4;engineering=4"
|
||||
darkness_view = 8
|
||||
invis_view = SEE_INVISIBLE_MINIMUM
|
||||
|
||||
/obj/item/clothing/glasses/eyepatch
|
||||
name = "eyepatch"
|
||||
desc = "Yarr."
|
||||
icon_state = "eyepatch"
|
||||
item_state = "eyepatch"
|
||||
|
||||
/obj/item/clothing/glasses/monocle
|
||||
name = "monocle"
|
||||
desc = "Such a dapper eyepiece!"
|
||||
icon_state = "monocle"
|
||||
item_state = "headset" // lol
|
||||
|
||||
/obj/item/clothing/glasses/material
|
||||
name = "Optical Material Scanner"
|
||||
desc = "Very confusing glasses."
|
||||
icon_state = "material"
|
||||
item_state = "glasses"
|
||||
origin_tech = "magnets=3;engineering=3"
|
||||
vision_flags = SEE_OBJS
|
||||
|
||||
/obj/item/clothing/glasses/material/mining
|
||||
name = "Optical Material Scanner"
|
||||
desc = "Used by miners to detect ores deep within the rock."
|
||||
icon_state = "material"
|
||||
item_state = "glasses"
|
||||
origin_tech = "magnets=3;engineering=3"
|
||||
darkness_view = 0
|
||||
|
||||
/obj/item/clothing/glasses/material/mining/gar
|
||||
name = "gar material scanner"
|
||||
icon_state = "garm"
|
||||
item_state = "garm"
|
||||
desc = "Do the impossible, see the invisible!"
|
||||
force = 10
|
||||
throwforce = 20
|
||||
throw_speed = 4
|
||||
attack_verb = list("sliced")
|
||||
hitsound = 'sound/weapons/bladeslice.ogg'
|
||||
sharpness = IS_SHARP
|
||||
|
||||
/obj/item/clothing/glasses/regular
|
||||
name = "Prescription Glasses"
|
||||
desc = "Made by Nerd. Co."
|
||||
icon_state = "glasses"
|
||||
item_state = "glasses"
|
||||
vision_correction = 1 //corrects nearsightedness
|
||||
|
||||
/obj/item/clothing/glasses/regular/hipster
|
||||
name = "Prescription Glasses"
|
||||
desc = "Made by Uncool. Co."
|
||||
icon_state = "hipster_glasses"
|
||||
item_state = "hipster_glasses"
|
||||
|
||||
/obj/item/clothing/glasses/gglasses
|
||||
name = "Green Glasses"
|
||||
desc = "Forest green glasses, like the kind you'd wear when hatching a nasty scheme."
|
||||
icon_state = "gglasses"
|
||||
item_state = "gglasses"
|
||||
|
||||
/obj/item/clothing/glasses/sunglasses
|
||||
desc = "Strangely ancient technology used to help provide rudimentary eye cover. Enhanced shielding blocks many flashes."
|
||||
name = "sunglasses"
|
||||
icon_state = "sun"
|
||||
item_state = "sunglasses"
|
||||
darkness_view = 1
|
||||
flash_protect = 1
|
||||
tint = 1
|
||||
|
||||
dog_fashion = /datum/dog_fashion/head
|
||||
|
||||
/obj/item/clothing/glasses/sunglasses/reagent
|
||||
name = "beer goggles"
|
||||
desc = "A pair of sunglasses outfitted with apparatus to scan reagents."
|
||||
origin_tech = "magnets=2;engineering=2"
|
||||
scan_reagents = 1
|
||||
|
||||
/obj/item/clothing/glasses/sunglasses/garb
|
||||
desc = "Go beyond impossible and kick reason to the curb!"
|
||||
name = "black gar glasses"
|
||||
icon_state = "garb"
|
||||
item_state = "garb"
|
||||
force = 10
|
||||
throwforce = 10
|
||||
throw_speed = 4
|
||||
attack_verb = list("sliced")
|
||||
hitsound = 'sound/weapons/bladeslice.ogg'
|
||||
sharpness = IS_SHARP
|
||||
|
||||
/obj/item/clothing/glasses/sunglasses/garb/supergarb
|
||||
desc = "Believe in us humans."
|
||||
name = "black giga gar glasses"
|
||||
icon_state = "supergarb"
|
||||
item_state = "garb"
|
||||
force = 12
|
||||
throwforce = 12
|
||||
|
||||
/obj/item/clothing/glasses/sunglasses/gar
|
||||
desc = "Just who the hell do you think I am?!"
|
||||
name = "gar glasses"
|
||||
icon_state = "gar"
|
||||
item_state = "gar"
|
||||
force = 10
|
||||
throwforce = 10
|
||||
throw_speed = 4
|
||||
attack_verb = list("sliced")
|
||||
hitsound = 'sound/weapons/bladeslice.ogg'
|
||||
sharpness = IS_SHARP
|
||||
|
||||
/obj/item/clothing/glasses/sunglasses/gar/supergar
|
||||
desc = "We evolve past the person we were a minute before. Little by little we advance with each turn. That's how a drill works!"
|
||||
name = "giga gar glasses"
|
||||
icon_state = "supergar"
|
||||
item_state = "gar"
|
||||
force = 12
|
||||
throwforce = 12
|
||||
|
||||
/obj/item/clothing/glasses/welding
|
||||
name = "welding goggles"
|
||||
desc = "Protects the eyes from welders; approved by the mad scientist association."
|
||||
icon_state = "welding-g"
|
||||
item_state = "welding-g"
|
||||
actions_types = list(/datum/action/item_action/toggle)
|
||||
materials = list(MAT_METAL = 250)
|
||||
flash_protect = 2
|
||||
tint = 2
|
||||
flags_cover = GLASSESCOVERSEYES
|
||||
visor_flags_inv = HIDEEYES
|
||||
|
||||
|
||||
/obj/item/clothing/glasses/welding/attack_self()
|
||||
toggle()
|
||||
|
||||
|
||||
/obj/item/clothing/glasses/welding/verb/toggle()
|
||||
set category = "Object"
|
||||
set name = "Adjust welding goggles"
|
||||
set src in usr
|
||||
|
||||
weldingvisortoggle()
|
||||
|
||||
|
||||
/obj/item/clothing/glasses/sunglasses/blindfold
|
||||
name = "blindfold"
|
||||
desc = "Covers the eyes, preventing sight."
|
||||
icon_state = "blindfold"
|
||||
item_state = "blindfold"
|
||||
// vision_flags = BLIND
|
||||
flash_protect = 2
|
||||
tint = 3 // to make them blind
|
||||
|
||||
/obj/item/clothing/glasses/sunglasses/big
|
||||
desc = "Strangely ancient technology used to help provide rudimentary eye cover. Larger than average enhanced shielding blocks many flashes."
|
||||
icon_state = "bigsunglasses"
|
||||
item_state = "bigsunglasses"
|
||||
|
||||
/obj/item/clothing/glasses/thermal
|
||||
name = "Optical Thermal Scanner"
|
||||
desc = "Thermals in the shape of glasses."
|
||||
icon_state = "thermal"
|
||||
item_state = "glasses"
|
||||
origin_tech = "magnets=3"
|
||||
vision_flags = SEE_MOBS
|
||||
invis_view = 2
|
||||
flash_protect = 0
|
||||
|
||||
/obj/item/clothing/glasses/thermal/emp_act(severity)
|
||||
thermal_overload()
|
||||
..()
|
||||
|
||||
/obj/item/clothing/glasses/thermal/syndi //These are now a traitor item, concealed as mesons. -Pete
|
||||
name = "Chameleon Thermals"
|
||||
desc = "A pair of thermal optic goggles with an onboard chameleon generator. Toggle to disguise."
|
||||
origin_tech = "magnets=3;syndicate=4"
|
||||
flash_protect = -1
|
||||
|
||||
/obj/item/clothing/glasses/thermal/syndi/attack_self(mob/user)
|
||||
chameleon(user)
|
||||
|
||||
/obj/item/clothing/glasses/thermal/monocle
|
||||
name = "Thermoncle"
|
||||
desc = "A monocle thermal."
|
||||
icon_state = "thermoncle"
|
||||
flags = null //doesn't protect eyes because it's a monocle, duh
|
||||
|
||||
/obj/item/clothing/glasses/thermal/eyepatch
|
||||
name = "Optical Thermal Eyepatch"
|
||||
desc = "An eyepatch with built-in thermal optics."
|
||||
icon_state = "eyepatch"
|
||||
item_state = "eyepatch"
|
||||
|
||||
/obj/item/clothing/glasses/cold
|
||||
name = "cold goggles"
|
||||
desc = "A pair of goggles meant for low temperatures."
|
||||
icon_state = "cold"
|
||||
item_state = "cold"
|
||||
|
||||
/obj/item/clothing/glasses/heat
|
||||
name = "heat goggles"
|
||||
desc = "A pair of goggles meant for high temperatures."
|
||||
icon_state = "heat"
|
||||
item_state = "heat"
|
||||
|
||||
/obj/item/clothing/glasses/orange
|
||||
name = "orange glasses"
|
||||
desc = "A sweet pair of orange shades."
|
||||
icon_state = "orangeglasses"
|
||||
item_state = "orangeglasses"
|
||||
|
||||
/obj/item/clothing/glasses/red
|
||||
name = "red glasses"
|
||||
desc = "A sweet pair of red shades."
|
||||
icon_state = "redglasses"
|
||||
item_state = "redglasses"
|
||||
|
||||
/obj/item/clothing/glasses/godeye
|
||||
name = "eye of god"
|
||||
desc = "A strange eye, said to have been torn from an omniscient creature that used to roam the wastes."
|
||||
icon_state = "godeye"
|
||||
item_state = "godeye"
|
||||
vision_flags = SEE_TURFS|SEE_MOBS|SEE_OBJS
|
||||
darkness_view = 8
|
||||
scan_reagents = 1
|
||||
flags = NODROP
|
||||
invis_view = SEE_INVISIBLE_MINIMUM
|
||||
|
||||
/obj/item/clothing/glasses/proc/chameleon(var/mob/user)
|
||||
var/input_glasses = input(user, "Choose a piece of eyewear to disguise as.", "Choose glasses style.") as null|anything in list("Sunglasses", "Medical HUD", "Mesons", "Science Goggles", "Glasses", "Security Sunglasses","Eyepatch","Welding","Gar")
|
||||
|
||||
if(user && src in user.contents)
|
||||
switch(input_glasses)
|
||||
if("Sunglasses")
|
||||
desc = "Strangely ancient technology used to help provide rudimentary eye cover. Enhanced shielding blocks many flashes."
|
||||
name = "sunglasses"
|
||||
icon_state = "sun"
|
||||
item_state = "sunglasses"
|
||||
if("Medical HUD")
|
||||
name = "Health Scanner HUD"
|
||||
desc = "A heads-up display that scans the humans in view and provides accurate data about their health status."
|
||||
icon_state = "healthhud"
|
||||
item_state = "healthhud"
|
||||
if("Mesons")
|
||||
name = "Optical Meson Scanner"
|
||||
desc = "Used by engineering and mining staff to see basic structural and terrain layouts through walls, regardless of lighting condition."
|
||||
icon_state = "meson"
|
||||
item_state = "meson"
|
||||
if("Science Goggles")
|
||||
name = "Science Goggles"
|
||||
desc = "A pair of snazzy goggles used to protect against chemical spills."
|
||||
icon_state = "purple"
|
||||
item_state = "glasses"
|
||||
if("Glasses")
|
||||
name = "Prescription Glasses"
|
||||
desc = "Made by Nerd. Co."
|
||||
icon_state = "glasses"
|
||||
item_state = "glasses"
|
||||
if("Security Sunglasses")
|
||||
name = "HUDSunglasses"
|
||||
desc = "Sunglasses with a HUD."
|
||||
icon_state = "sunhud"
|
||||
item_state = "sunglasses"
|
||||
if("Eyepatch")
|
||||
name = "eyepatch"
|
||||
desc = "Yarr."
|
||||
icon_state = "eyepatch"
|
||||
item_state = "eyepatch"
|
||||
if("Welding")
|
||||
name = "welding goggles"
|
||||
desc = "Protects the eyes from welders; approved by the mad scientist association."
|
||||
icon_state = "welding-g"
|
||||
item_state = "welding-g"
|
||||
if("Gar")
|
||||
desc = "Just who the hell do you think I am?!"
|
||||
name = "gar glasses"
|
||||
icon_state = "gar"
|
||||
item_state = "gar"
|
||||
|
||||
@@ -0,0 +1,168 @@
|
||||
/obj/item/clothing/glasses/hud
|
||||
name = "HUD"
|
||||
desc = "A heads-up display that provides important info in (almost) real time."
|
||||
flags = null //doesn't protect eyes because it's a monocle, duh
|
||||
origin_tech = "magnets=3;biotech=2"
|
||||
var/hud_type = null
|
||||
|
||||
/obj/item/clothing/glasses/hud/equipped(mob/living/carbon/human/user, slot)
|
||||
if(hud_type && slot == slot_glasses)
|
||||
var/datum/atom_hud/H = huds[hud_type]
|
||||
H.add_hud_to(user)
|
||||
|
||||
/obj/item/clothing/glasses/hud/dropped(mob/living/carbon/human/user)
|
||||
..()
|
||||
if(hud_type && istype(user) && user.glasses == src)
|
||||
var/datum/atom_hud/H = huds[hud_type]
|
||||
H.remove_hud_from(user)
|
||||
|
||||
/obj/item/clothing/glasses/hud/emp_act(severity)
|
||||
if(emagged == 0)
|
||||
emagged = 1
|
||||
desc = desc + " The display flickers slightly."
|
||||
|
||||
/obj/item/clothing/glasses/hud/emag_act(mob/user)
|
||||
if(emagged == 0)
|
||||
emagged = 1
|
||||
user << "<span class='warning'>PZZTTPFFFT</span>"
|
||||
desc = desc + " The display flickers slightly."
|
||||
|
||||
/obj/item/clothing/glasses/hud/health
|
||||
name = "Health Scanner HUD"
|
||||
desc = "A heads-up display that scans the humans in view and provides accurate data about their health status."
|
||||
icon_state = "healthhud"
|
||||
origin_tech = "magnets=3;biotech=2"
|
||||
hud_type = DATA_HUD_MEDICAL_ADVANCED
|
||||
|
||||
/obj/item/clothing/glasses/hud/health/night
|
||||
name = "Night Vision Health Scanner HUD"
|
||||
desc = "An advanced medical head-up display that allows doctors to find patients in complete darkness."
|
||||
icon_state = "healthhudnight"
|
||||
item_state = "glasses"
|
||||
origin_tech = "magnets=4;biotech=4;plasmatech=4;engineering=5"
|
||||
darkness_view = 8
|
||||
invis_view = SEE_INVISIBLE_MINIMUM
|
||||
|
||||
/obj/item/clothing/glasses/hud/diagnostic
|
||||
name = "Diagnostic HUD"
|
||||
desc = "A heads-up display capable of analyzing the integrity and status of robotics and exosuits."
|
||||
icon_state = "diagnostichud"
|
||||
origin_tech = "magnets=2;engineering=2"
|
||||
hud_type = DATA_HUD_DIAGNOSTIC
|
||||
|
||||
/obj/item/clothing/glasses/hud/diagnostic/night
|
||||
name = "Night Vision Diagnostic HUD"
|
||||
desc = "A robotics diagnostic HUD fitted with a light amplifier."
|
||||
icon_state = "diagnostichudnight"
|
||||
item_state = "glasses"
|
||||
origin_tech = "magnets=4;powerstorage=4;plasmatech=4;engineering=5"
|
||||
darkness_view = 8
|
||||
invis_view = SEE_INVISIBLE_MINIMUM
|
||||
|
||||
/obj/item/clothing/glasses/hud/security
|
||||
name = "Security HUD"
|
||||
desc = "A heads-up display that scans the humans in view and provides accurate data about their ID status and security records."
|
||||
icon_state = "securityhud"
|
||||
origin_tech = "magnets=3;combat=2"
|
||||
hud_type = DATA_HUD_SECURITY_ADVANCED
|
||||
|
||||
/obj/item/clothing/glasses/hud/security/chameleon
|
||||
name = "Chamleon Security HUD"
|
||||
desc = "A stolen security HUD integrated with Syndicate chameleon technology. Toggle to disguise the HUD. Provides flash protection."
|
||||
flash_protect = 1
|
||||
|
||||
/obj/item/clothing/glasses/hud/security/chameleon/attack_self(mob/user)
|
||||
chameleon(user)
|
||||
|
||||
|
||||
/obj/item/clothing/glasses/hud/security/sunglasses/eyepatch
|
||||
name = "Eyepatch HUD"
|
||||
desc = "A heads-up display that connects directly to the optical nerve of the user, replacing the need for that useless eyeball."
|
||||
icon_state = "hudpatch"
|
||||
|
||||
/obj/item/clothing/glasses/hud/security/sunglasses
|
||||
name = "HUDSunglasses"
|
||||
desc = "Sunglasses with a HUD."
|
||||
icon_state = "sunhud"
|
||||
origin_tech = "magnets=3;combat=3;engineering=3"
|
||||
darkness_view = 1
|
||||
flash_protect = 1
|
||||
tint = 1
|
||||
|
||||
/obj/item/clothing/glasses/hud/security/night
|
||||
name = "Night Vision Security HUD"
|
||||
desc = "An advanced heads-up display which provides id data and vision in complete darkness."
|
||||
icon_state = "securityhudnight"
|
||||
origin_tech = "magnets=4;combat=4;plasmatech=4;engineering=5"
|
||||
darkness_view = 8
|
||||
invis_view = SEE_INVISIBLE_MINIMUM
|
||||
|
||||
/obj/item/clothing/glasses/hud/security/sunglasses/gars
|
||||
name = "HUD gar glasses"
|
||||
desc = "GAR glasses with a HUD."
|
||||
icon_state = "gars"
|
||||
item_state = "garb"
|
||||
force = 10
|
||||
throwforce = 10
|
||||
throw_speed = 4
|
||||
attack_verb = list("sliced")
|
||||
hitsound = 'sound/weapons/bladeslice.ogg'
|
||||
sharpness = IS_SHARP
|
||||
|
||||
/obj/item/clothing/glasses/hud/security/sunglasses/gars/supergars
|
||||
name = "giga HUD gar glasses"
|
||||
desc = "GIGA GAR glasses with a HUD."
|
||||
icon_state = "supergars"
|
||||
item_state = "garb"
|
||||
force = 12
|
||||
throwforce = 12
|
||||
|
||||
/obj/item/clothing/glasses/hud/toggle
|
||||
name = "Toggle Hud"
|
||||
desc = "A hud with multiple functions."
|
||||
actions_types = list(/datum/action/item_action/switch_hud)
|
||||
|
||||
/obj/item/clothing/glasses/hud/toggle/attack_self(mob/user)
|
||||
if(!ishuman(user))
|
||||
return
|
||||
var/mob/living/carbon/human/wearer = user
|
||||
if (wearer.glasses != src)
|
||||
return
|
||||
|
||||
if (hud_type)
|
||||
var/datum/atom_hud/H = huds[hud_type]
|
||||
H.remove_hud_from(user)
|
||||
|
||||
if (hud_type == DATA_HUD_MEDICAL_ADVANCED)
|
||||
hud_type = null
|
||||
else if (hud_type == DATA_HUD_SECURITY_ADVANCED)
|
||||
hud_type = DATA_HUD_MEDICAL_ADVANCED
|
||||
else
|
||||
hud_type = DATA_HUD_SECURITY_ADVANCED
|
||||
|
||||
if (hud_type)
|
||||
var/datum/atom_hud/H = huds[hud_type]
|
||||
H.add_hud_to(user)
|
||||
|
||||
/obj/item/clothing/glasses/hud/toggle/thermal
|
||||
name = "Thermal HUD Scanner"
|
||||
desc = "Thermal imaging HUD in the shape of glasses."
|
||||
icon_state = "thermal"
|
||||
hud_type = DATA_HUD_SECURITY_ADVANCED
|
||||
vision_flags = SEE_MOBS
|
||||
invis_view = 2
|
||||
|
||||
/obj/item/clothing/glasses/hud/toggle/thermal/attack_self(mob/user)
|
||||
..()
|
||||
switch (hud_type)
|
||||
if (DATA_HUD_MEDICAL_ADVANCED)
|
||||
icon_state = "meson"
|
||||
if (DATA_HUD_SECURITY_ADVANCED)
|
||||
icon_state = "thermal"
|
||||
else
|
||||
icon_state = "purple"
|
||||
user.update_inv_glasses()
|
||||
|
||||
/obj/item/clothing/glasses/hud/toggle/thermal/emp_act(severity)
|
||||
thermal_overload()
|
||||
..()
|
||||
@@ -0,0 +1,19 @@
|
||||
/obj/item/clothing/gloves/boxing
|
||||
name = "boxing gloves"
|
||||
desc = "Because you really needed another excuse to punch your crewmates."
|
||||
icon_state = "boxing"
|
||||
item_state = "boxing"
|
||||
put_on_delay = 60
|
||||
species_exception = list(/datum/species/golem) // now you too can be a golem boxing champion
|
||||
|
||||
/obj/item/clothing/gloves/boxing/green
|
||||
icon_state = "boxinggreen"
|
||||
item_state = "boxinggreen"
|
||||
|
||||
/obj/item/clothing/gloves/boxing/blue
|
||||
icon_state = "boxingblue"
|
||||
item_state = "boxingblue"
|
||||
|
||||
/obj/item/clothing/gloves/boxing/yellow
|
||||
icon_state = "boxingyellow"
|
||||
item_state = "boxingyellow"
|
||||
@@ -0,0 +1,203 @@
|
||||
/obj/item/clothing/gloves/color/yellow
|
||||
desc = "These gloves will protect the wearer from electric shock."
|
||||
name = "insulated gloves"
|
||||
icon_state = "yellow"
|
||||
item_state = "ygloves"
|
||||
siemens_coefficient = 0
|
||||
permeability_coefficient = 0.05
|
||||
item_color="yellow"
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/gloves/color/fyellow //Cheap Chinese Crap
|
||||
desc = "These gloves are cheap knockoffs of the coveted ones - no way this can end badly."
|
||||
name = "budget insulated gloves"
|
||||
icon_state = "yellow"
|
||||
item_state = "ygloves"
|
||||
siemens_coefficient = 1 //Set to a default of 1, gets overridden in New()
|
||||
permeability_coefficient = 0.05
|
||||
item_color="yellow"
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/gloves/color/fyellow/New()
|
||||
..()
|
||||
siemens_coefficient = pick(0,0.5,0.5,0.5,0.5,0.75,1.5)
|
||||
|
||||
/obj/item/clothing/gloves/color/black
|
||||
desc = "These gloves are fire-resistant."
|
||||
name = "black gloves"
|
||||
icon_state = "black"
|
||||
item_state = "bgloves"
|
||||
item_color="brown"
|
||||
cold_protection = HANDS
|
||||
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
|
||||
heat_protection = HANDS
|
||||
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
|
||||
burn_state = FIRE_PROOF
|
||||
var/can_be_cut = 1
|
||||
|
||||
/obj/item/clothing/gloves/color/black/hos
|
||||
item_color = "hosred" //Exists for washing machines. Is not different from black gloves in any way.
|
||||
|
||||
/obj/item/clothing/gloves/color/black/ce
|
||||
item_color = "chief" //Exists for washing machines. Is not different from black gloves in any way.
|
||||
|
||||
/obj/item/clothing/gloves/color/black/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
|
||||
if(istype(W, /obj/item/weapon/wirecutters))
|
||||
if(can_be_cut && icon_state == initial(icon_state))//only if not dyed
|
||||
user << "<span class='notice'>You snip the fingertips off of [src].</span>"
|
||||
playsound(user.loc,'sound/items/Wirecutter.ogg', rand(10,50), 1)
|
||||
new /obj/item/clothing/gloves/fingerless(user.loc)
|
||||
qdel(src)
|
||||
..()
|
||||
|
||||
/obj/item/clothing/gloves/color/orange
|
||||
name = "orange gloves"
|
||||
desc = "A pair of gloves, they don't look special in any way."
|
||||
icon_state = "orange"
|
||||
item_state = "orangegloves"
|
||||
item_color="orange"
|
||||
|
||||
/obj/item/clothing/gloves/color/red
|
||||
name = "red gloves"
|
||||
desc = "A pair of gloves, they don't look special in any way."
|
||||
icon_state = "red"
|
||||
item_state = "redgloves"
|
||||
item_color = "red"
|
||||
|
||||
/obj/item/clothing/gloves/color/red/insulated
|
||||
name = "insulated gloves"
|
||||
desc = "These gloves will protect the wearer from electric shock."
|
||||
siemens_coefficient = 0
|
||||
permeability_coefficient = 0.05
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/gloves/color/rainbow
|
||||
name = "rainbow gloves"
|
||||
desc = "A pair of gloves, they don't look special in any way."
|
||||
icon_state = "rainbow"
|
||||
item_state = "rainbowgloves"
|
||||
item_color = "rainbow"
|
||||
|
||||
/obj/item/clothing/gloves/color/rainbow/clown
|
||||
item_color = "clown"
|
||||
|
||||
/obj/item/clothing/gloves/color/blue
|
||||
name = "blue gloves"
|
||||
desc = "A pair of gloves, they don't look special in any way."
|
||||
icon_state = "blue"
|
||||
item_state = "bluegloves"
|
||||
item_color="blue"
|
||||
|
||||
/obj/item/clothing/gloves/color/purple
|
||||
name = "purple gloves"
|
||||
desc = "A pair of gloves, they don't look special in any way."
|
||||
icon_state = "purple"
|
||||
item_state = "purplegloves"
|
||||
item_color="purple"
|
||||
|
||||
/obj/item/clothing/gloves/color/green
|
||||
name = "green gloves"
|
||||
desc = "A pair of gloves, they don't look special in any way."
|
||||
icon_state = "green"
|
||||
item_state = "greengloves"
|
||||
item_color="green"
|
||||
|
||||
/obj/item/clothing/gloves/color/grey
|
||||
name = "grey gloves"
|
||||
desc = "A pair of gloves, they don't look special in any way."
|
||||
icon_state = "gray"
|
||||
item_state = "graygloves"
|
||||
item_color="grey"
|
||||
|
||||
/obj/item/clothing/gloves/color/grey/rd
|
||||
item_color = "director" //Exists for washing machines. Is not different from gray gloves in any way.
|
||||
|
||||
/obj/item/clothing/gloves/color/grey/hop
|
||||
item_color = "hop" //Exists for washing machines. Is not different from gray gloves in any way.
|
||||
|
||||
/obj/item/clothing/gloves/color/light_brown
|
||||
name = "light brown gloves"
|
||||
desc = "A pair of gloves, they don't look special in any way."
|
||||
icon_state = "lightbrown"
|
||||
item_state = "lightbrowngloves"
|
||||
item_color="light brown"
|
||||
|
||||
/obj/item/clothing/gloves/color/brown
|
||||
name = "brown gloves"
|
||||
desc = "A pair of gloves, they don't look special in any way."
|
||||
icon_state = "brown"
|
||||
item_state = "browngloves"
|
||||
item_color="brown"
|
||||
|
||||
/obj/item/clothing/gloves/color/brown/cargo
|
||||
item_color = "cargo" //Exists for washing machines. Is not different from brown gloves in any way.
|
||||
|
||||
/obj/item/clothing/gloves/color/captain
|
||||
desc = "Regal blue gloves, with a nice gold trim. Swanky."
|
||||
name = "captain's gloves"
|
||||
icon_state = "captain"
|
||||
item_state = "egloves"
|
||||
item_color = "captain"
|
||||
siemens_coefficient = 0
|
||||
permeability_coefficient = 0.05
|
||||
cold_protection = HANDS
|
||||
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
|
||||
heat_protection = HANDS
|
||||
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
|
||||
strip_delay = 60
|
||||
|
||||
/obj/item/clothing/gloves/color/latex
|
||||
name = "latex gloves"
|
||||
desc = "Cheap sterile gloves made from latex."
|
||||
icon_state = "latex"
|
||||
item_state = "lgloves"
|
||||
siemens_coefficient = 0.30
|
||||
permeability_coefficient = 0.01
|
||||
item_color="white"
|
||||
transfer_prints = TRUE
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/gloves/color/latex/nitrile
|
||||
name = "nitrile gloves"
|
||||
desc = "Pricy sterile gloves that are stronger than latex."
|
||||
icon_state = "nitrile"
|
||||
item_state = "nitrilegloves"
|
||||
item_color = "cmo"
|
||||
transfer_prints = FALSE
|
||||
|
||||
/obj/item/clothing/gloves/color/white
|
||||
name = "white gloves"
|
||||
desc = "These look pretty fancy."
|
||||
icon_state = "white"
|
||||
item_state = "wgloves"
|
||||
item_color="mime"
|
||||
|
||||
/obj/item/clothing/gloves/color/white/redcoat
|
||||
item_color = "redcoat" //Exists for washing machines. Is not different from white gloves in any way.
|
||||
|
||||
/obj/item/clothing/gloves/color/random
|
||||
name = "random gloves"
|
||||
desc = "These gloves are supposed to be a random color..."
|
||||
icon_state = "white"
|
||||
item_state = "wgloves"
|
||||
item_color = "mime"
|
||||
|
||||
/obj/item/clothing/gloves/color/random/New()
|
||||
..()
|
||||
var/list/gloves = list(
|
||||
/obj/item/clothing/gloves/color/orange = 1,
|
||||
/obj/item/clothing/gloves/color/red = 1,
|
||||
/obj/item/clothing/gloves/color/blue = 1,
|
||||
/obj/item/clothing/gloves/color/purple = 1,
|
||||
/obj/item/clothing/gloves/color/green = 1,
|
||||
/obj/item/clothing/gloves/color/grey = 1,
|
||||
/obj/item/clothing/gloves/color/light_brown = 1,
|
||||
/obj/item/clothing/gloves/color/brown = 1)
|
||||
|
||||
var/obj/item/clothing/gloves/color/selected = pick(gloves)
|
||||
|
||||
name = initial(selected.name)
|
||||
desc = initial(selected.desc)
|
||||
icon_state = initial(selected.icon_state)
|
||||
item_state = initial(selected.item_state)
|
||||
item_color = initial(selected.item_color)
|
||||
@@ -0,0 +1,55 @@
|
||||
|
||||
/obj/item/clothing/gloves/fingerless
|
||||
name = "fingerless gloves"
|
||||
desc = "Plain black gloves without fingertips for the hard working."
|
||||
icon_state = "fingerless"
|
||||
item_state = "fingerless"
|
||||
item_color = null //So they don't wash.
|
||||
transfer_prints = TRUE
|
||||
strip_delay = 40
|
||||
put_on_delay = 20
|
||||
cold_protection = HANDS
|
||||
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
|
||||
|
||||
/obj/item/clothing/gloves/botanic_leather
|
||||
name = "botanist's leather gloves"
|
||||
desc = "These leather gloves protect against thorns, barbs, prickles, spikes and other harmful objects of floral origin. They're also quite warm."
|
||||
icon_state = "leather"
|
||||
item_state = "ggloves"
|
||||
permeability_coefficient = 0.9
|
||||
cold_protection = HANDS
|
||||
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
|
||||
heat_protection = HANDS
|
||||
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/gloves/combat
|
||||
name = "combat gloves"
|
||||
desc = "These tactical gloves are fireproof and shock resistant."
|
||||
icon_state = "black"
|
||||
item_state = "bgloves"
|
||||
siemens_coefficient = 0
|
||||
permeability_coefficient = 0.05
|
||||
strip_delay = 80
|
||||
cold_protection = HANDS
|
||||
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
|
||||
heat_protection = HANDS
|
||||
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/gloves/bracer
|
||||
name = "bone bracers"
|
||||
desc = "For when you're expecting to get slapped on the wrist. Offers modest protection to your arms."
|
||||
icon_state = "bracers"
|
||||
item_state = "bracers"
|
||||
item_color = null //So they don't wash.
|
||||
transfer_prints = TRUE
|
||||
strip_delay = 40
|
||||
put_on_delay = 20
|
||||
body_parts_covered = ARMS
|
||||
cold_protection = ARMS
|
||||
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
|
||||
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
|
||||
burn_state = FIRE_PROOF
|
||||
armor = list(melee = 15, bullet = 35, laser = 35, energy = 20, bomb = 35, bio = 35, rad = 35) //Not like anything ever hits the arms anyways.
|
||||
|
||||
@@ -0,0 +1,147 @@
|
||||
|
||||
//Hat Station 13
|
||||
|
||||
/obj/item/clothing/head/collectable
|
||||
name = "collectable hat"
|
||||
desc = "A rare collectable hat."
|
||||
|
||||
/obj/item/clothing/head/collectable/petehat
|
||||
name = "ultra rare Pete's hat!"
|
||||
desc = "It smells faintly of plasma."
|
||||
icon_state = "petehat"
|
||||
|
||||
/obj/item/clothing/head/collectable/slime
|
||||
name = "collectable slime cap!"
|
||||
desc = "It just latches right in place!"
|
||||
icon_state = "slime"
|
||||
|
||||
/obj/item/clothing/head/collectable/xenom
|
||||
name = "collectable xenomorph helmet!"
|
||||
desc = "Hiss hiss hiss!"
|
||||
icon_state = "xenom"
|
||||
|
||||
/obj/item/clothing/head/collectable/chef
|
||||
name = "collectable chef's hat"
|
||||
desc = "A rare chef's hat meant for hat collectors!"
|
||||
icon_state = "chef"
|
||||
item_state = "chef"
|
||||
|
||||
dog_fashion = /datum/dog_fashion/head/chef
|
||||
|
||||
/obj/item/clothing/head/collectable/paper
|
||||
name = "collectable paper hat"
|
||||
desc = "What looks like an ordinary paper hat is actually a rare and valuable collector's edition paper hat. Keep away from water, fire, and Librarians."
|
||||
icon_state = "paper"
|
||||
|
||||
dog_fashion = /datum/dog_fashion/head
|
||||
|
||||
/obj/item/clothing/head/collectable/tophat
|
||||
name = "collectable top hat"
|
||||
desc = "A top hat worn by only the most prestigious hat collectors."
|
||||
icon_state = "tophat"
|
||||
item_state = "that"
|
||||
|
||||
/obj/item/clothing/head/collectable/captain
|
||||
name = "collectable captain's hat"
|
||||
desc = "A collectable hat that'll make you look just like a real comdom!"
|
||||
icon_state = "captain"
|
||||
item_state = "caphat"
|
||||
|
||||
dog_fashion = /datum/dog_fashion/head/captain
|
||||
|
||||
/obj/item/clothing/head/collectable/police
|
||||
name = "collectable police officer's hat"
|
||||
desc = "A collectable police officer's Hat. This hat emphasizes that you are THE LAW."
|
||||
icon_state = "policehelm"
|
||||
|
||||
dog_fashion = /datum/dog_fashion/head/warden
|
||||
|
||||
/obj/item/clothing/head/collectable/beret
|
||||
name = "collectable beret"
|
||||
desc = "A collectable red beret. It smells faintly of garlic."
|
||||
icon_state = "beret"
|
||||
|
||||
dog_fashion = /datum/dog_fashion/head/beret
|
||||
|
||||
/obj/item/clothing/head/collectable/welding
|
||||
name = "collectable welding helmet"
|
||||
desc = "A collectable welding helmet. Now with 80% less lead! Not for actual welding. Any welding done while wearing this helmet is done so at the owner's own risk!"
|
||||
icon_state = "welding"
|
||||
item_state = "welding"
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/head/collectable/slime
|
||||
name = "collectable slime hat"
|
||||
desc = "Just like a real brain slug!"
|
||||
icon_state = "headslime"
|
||||
item_state = "headslime"
|
||||
|
||||
/obj/item/clothing/head/collectable/flatcap
|
||||
name = "collectable flat cap"
|
||||
desc = "A collectible farmer's flat cap!"
|
||||
icon_state = "flat_cap"
|
||||
item_state = "detective"
|
||||
|
||||
/obj/item/clothing/head/collectable/pirate
|
||||
name = "collectable pirate hat"
|
||||
desc = "You'd make a great Dread Syndie Roberts!"
|
||||
icon_state = "pirate"
|
||||
item_state = "pirate"
|
||||
|
||||
dog_fashion = /datum/dog_fashion/head/pirate
|
||||
|
||||
/obj/item/clothing/head/collectable/kitty
|
||||
name = "collectable kitty ears"
|
||||
desc = "The fur feels... a bit too realistic."
|
||||
icon_state = "kitty"
|
||||
item_state = "kitty"
|
||||
|
||||
dog_fashion = /datum/dog_fashion/head/kitty
|
||||
|
||||
/obj/item/clothing/head/collectable/rabbitears
|
||||
name = "collectable rabbit ears"
|
||||
desc = "Not as lucky as the feet!"
|
||||
icon_state = "bunny"
|
||||
item_state = "bunny"
|
||||
|
||||
dog_fashion = /datum/dog_fashion/head/rabbit
|
||||
|
||||
/obj/item/clothing/head/collectable/wizard
|
||||
name = "collectable wizard's hat"
|
||||
desc = "NOTE: Any magical powers gained from wearing this hat are purely coincidental."
|
||||
icon_state = "wizard"
|
||||
|
||||
dog_fashion = /datum/dog_fashion/head/blue_wizard
|
||||
|
||||
/obj/item/clothing/head/collectable/hardhat
|
||||
name = "collectable hard hat"
|
||||
desc = "WARNING! Offers no real protection, or luminosity, but damn, is it fancy!"
|
||||
icon_state = "hardhat0_yellow"
|
||||
item_state = "hardhat0_yellow"
|
||||
|
||||
dog_fashion = /datum/dog_fashion/head
|
||||
|
||||
/obj/item/clothing/head/collectable/HoS
|
||||
name = "collectable HoS hat"
|
||||
desc = "Now you too can beat prisoners, set silly sentences, and arrest for no reason!"
|
||||
icon_state = "hoscap"
|
||||
|
||||
/obj/item/clothing/head/collectable/HoP
|
||||
name = "collectable HoP hat"
|
||||
desc = "It's your turn to demand excessive paperwork, signatures, stamps, and hire more clowns! Papers, please!"
|
||||
icon_state = "hopcap"
|
||||
dog_fashion = /datum/dog_fashion/head/hop
|
||||
|
||||
/obj/item/clothing/head/collectable/thunderdome
|
||||
name = "collectable Thunderdome helmet"
|
||||
desc = "Go Red! I mean Green! I mean Red! No Green!"
|
||||
icon_state = "thunderdome"
|
||||
item_state = "thunderdome"
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/head/collectable/swat
|
||||
name = "collectable SWAT helmet"
|
||||
desc = "That's not real blood. That's red paint." //Reference to the actual description
|
||||
icon_state = "swat"
|
||||
item_state = "swat"
|
||||
burn_state = FIRE_PROOF
|
||||
@@ -0,0 +1,98 @@
|
||||
/obj/item/clothing/head/hardhat
|
||||
name = "hard hat"
|
||||
desc = "A piece of headgear used in dangerous working conditions to protect the head. Comes with a built-in flashlight."
|
||||
icon_state = "hardhat0_yellow"
|
||||
item_state = "hardhat0_yellow"
|
||||
var/brightness_on = 4 //luminosity when on
|
||||
var/on = 0
|
||||
item_color = "yellow" //Determines used sprites: hardhat[on]_[item_color] and hardhat[on]_[item_color]2 (lying down sprite)
|
||||
armor = list(melee = 15, bullet = 5, laser = 20,energy = 10, bomb = 20, bio = 10, rad = 20)
|
||||
flags_inv = 0
|
||||
actions_types = list(/datum/action/item_action/toggle_helmet_light)
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
dog_fashion = /datum/dog_fashion/head
|
||||
|
||||
/obj/item/clothing/head/hardhat/attack_self(mob/user)
|
||||
if(!isturf(user.loc))
|
||||
user << "<span class='warning'>You cannot turn the light on while in this [user.loc]!</span>" //To prevent some lighting anomalities.
|
||||
return
|
||||
on = !on
|
||||
icon_state = "hardhat[on]_[item_color]"
|
||||
item_state = "hardhat[on]_[item_color]"
|
||||
user.update_inv_head() //so our mob-overlays update
|
||||
|
||||
if(on)
|
||||
turn_on(user)
|
||||
else
|
||||
turn_off(user)
|
||||
for(var/X in actions)
|
||||
var/datum/action/A = X
|
||||
A.UpdateButtonIcon()
|
||||
|
||||
/obj/item/clothing/head/hardhat/pickup(mob/user)
|
||||
..()
|
||||
if(on)
|
||||
user.AddLuminosity(brightness_on)
|
||||
SetLuminosity(0)
|
||||
|
||||
/obj/item/clothing/head/hardhat/dropped(mob/user)
|
||||
..()
|
||||
if(on)
|
||||
user.AddLuminosity(-brightness_on)
|
||||
SetLuminosity(brightness_on)
|
||||
|
||||
/obj/item/clothing/head/hardhat/proc/turn_on(mob/user)
|
||||
user.AddLuminosity(brightness_on)
|
||||
|
||||
/obj/item/clothing/head/hardhat/proc/turn_off(mob/user)
|
||||
user.AddLuminosity(-brightness_on)
|
||||
|
||||
/obj/item/clothing/head/hardhat/orange
|
||||
icon_state = "hardhat0_orange"
|
||||
item_state = "hardhat0_orange"
|
||||
item_color = "orange"
|
||||
dog_fashion = null
|
||||
|
||||
/obj/item/clothing/head/hardhat/red
|
||||
icon_state = "hardhat0_red"
|
||||
item_state = "hardhat0_red"
|
||||
item_color = "red"
|
||||
dog_fashion = null
|
||||
name = "firefighter helmet"
|
||||
flags = STOPSPRESSUREDMAGE
|
||||
heat_protection = HEAD
|
||||
max_heat_protection_temperature = FIRE_HELM_MAX_TEMP_PROTECT
|
||||
cold_protection = HEAD
|
||||
min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT
|
||||
|
||||
/obj/item/clothing/head/hardhat/white
|
||||
icon_state = "hardhat0_white"
|
||||
item_state = "hardhat0_white"
|
||||
item_color = "white"
|
||||
flags = STOPSPRESSUREDMAGE
|
||||
heat_protection = HEAD
|
||||
max_heat_protection_temperature = FIRE_HELM_MAX_TEMP_PROTECT
|
||||
cold_protection = HEAD
|
||||
min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT
|
||||
dog_fashion = /datum/dog_fashion/head
|
||||
|
||||
/obj/item/clothing/head/hardhat/dblue
|
||||
icon_state = "hardhat0_dblue"
|
||||
item_state = "hardhat0_dblue"
|
||||
item_color = "dblue"
|
||||
dog_fashion = null
|
||||
|
||||
/obj/item/clothing/head/hardhat/atmos
|
||||
icon_state = "hardhat0_atmos"
|
||||
item_state = "hardhat0_atmos"
|
||||
item_color = "atmos"
|
||||
dog_fashion = null
|
||||
name = "atmospheric technician's firefighting helmet"
|
||||
desc = "A firefighter's helmet, able to keep the user cool in any situation."
|
||||
flags = STOPSPRESSUREDMAGE | THICKMATERIAL
|
||||
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
|
||||
heat_protection = HEAD
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
|
||||
cold_protection = HEAD
|
||||
min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT
|
||||
@@ -0,0 +1,334 @@
|
||||
/obj/item/clothing/head/helmet
|
||||
name = "helmet"
|
||||
desc = "Standard Security gear. Protects the head from impacts."
|
||||
icon_state = "helmet"
|
||||
flags = HEADBANGPROTECT
|
||||
item_state = "helmet"
|
||||
armor = list(melee = 40, bullet = 30, laser = 30,energy = 10, bomb = 25, bio = 0, rad = 0)
|
||||
flags_inv = HIDEEARS
|
||||
cold_protection = HEAD
|
||||
min_cold_protection_temperature = HELMET_MIN_TEMP_PROTECT
|
||||
heat_protection = HEAD
|
||||
max_heat_protection_temperature = HELMET_MAX_TEMP_PROTECT
|
||||
strip_delay = 60
|
||||
burn_state = FIRE_PROOF
|
||||
flags_cover = HEADCOVERSEYES
|
||||
|
||||
dog_fashion = /datum/dog_fashion/head/helmet
|
||||
|
||||
|
||||
/obj/item/clothing/head/helmet/New()
|
||||
..()
|
||||
|
||||
/obj/item/clothing/head/helmet/emp_act(severity)
|
||||
..()
|
||||
|
||||
/obj/item/clothing/head/helmet/sec
|
||||
can_flashlight = 1
|
||||
|
||||
/obj/item/clothing/head/helmet/alt
|
||||
name = "bulletproof helmet"
|
||||
desc = "A bulletproof combat helmet that excels in protecting the wearer against traditional projectile weaponry and explosives to a minor extent."
|
||||
icon_state = "helmetalt"
|
||||
item_state = "helmetalt"
|
||||
armor = list(melee = 15, bullet = 40, laser = 10, energy = 10, bomb = 40, bio = 0, rad = 0)
|
||||
can_flashlight = 1
|
||||
dog_fashion = null
|
||||
|
||||
/obj/item/clothing/head/helmet/riot
|
||||
name = "riot helmet"
|
||||
desc = "It's a helmet specifically designed to protect against close range attacks."
|
||||
icon_state = "riot"
|
||||
item_state = "helmet"
|
||||
toggle_message = "You pull the visor down on"
|
||||
alt_toggle_message = "You push the visor up on"
|
||||
can_toggle = 1
|
||||
flags = HEADBANGPROTECT
|
||||
armor = list(melee = 41, bullet = 15, laser = 5,energy = 5, bomb = 5, bio = 2, rad = 0)
|
||||
flags_inv = HIDEMASK|HIDEEARS|HIDEFACE
|
||||
strip_delay = 80
|
||||
actions_types = list(/datum/action/item_action/toggle)
|
||||
visor_flags_inv = HIDEMASK|HIDEFACE
|
||||
toggle_cooldown = 0
|
||||
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
|
||||
dog_fashion = null
|
||||
|
||||
/obj/item/clothing/head/helmet/attack_self(mob/user)
|
||||
if(can_toggle && !user.incapacitated())
|
||||
if(world.time > cooldown + toggle_cooldown)
|
||||
cooldown = world.time
|
||||
up = !up
|
||||
flags ^= visor_flags
|
||||
flags_inv ^= visor_flags_inv
|
||||
flags_cover ^= visor_flags_cover
|
||||
icon_state = "[initial(icon_state)][up ? "up" : ""]"
|
||||
user << "[up ? alt_toggle_message : toggle_message] \the [src]"
|
||||
|
||||
user.update_inv_head()
|
||||
if(iscarbon(user))
|
||||
var/mob/living/carbon/C = user
|
||||
C.head_update(src, forced = 1)
|
||||
|
||||
if(active_sound)
|
||||
while(up)
|
||||
playsound(src.loc, "[active_sound]", 100, 0, 4)
|
||||
sleep(15)
|
||||
|
||||
/obj/item/clothing/head/helmet/justice
|
||||
name = "helmet of justice"
|
||||
desc = "WEEEEOOO. WEEEEEOOO. WEEEEOOOO."
|
||||
icon_state = "justice"
|
||||
toggle_message = "You turn off the lights on"
|
||||
alt_toggle_message = "You turn on the lights on"
|
||||
actions_types = list(/datum/action/item_action/toggle_helmet_light)
|
||||
can_toggle = 1
|
||||
toggle_cooldown = 20
|
||||
active_sound = 'sound/items/WEEOO1.ogg'
|
||||
dog_fashion = null
|
||||
|
||||
/obj/item/clothing/head/helmet/justice/escape
|
||||
name = "alarm helmet"
|
||||
desc = "WEEEEOOO. WEEEEEOOO. STOP THAT MONKEY. WEEEOOOO."
|
||||
icon_state = "justice2"
|
||||
toggle_message = "You turn off the light on"
|
||||
alt_toggle_message = "You turn on the light on"
|
||||
|
||||
/obj/item/clothing/head/helmet/swat
|
||||
name = "\improper SWAT helmet"
|
||||
desc = "An extremely robust, space-worthy helmet in a nefarious red and black stripe pattern."
|
||||
icon_state = "swatsyndie"
|
||||
item_state = "swatsyndie"
|
||||
armor = list(melee = 40, bullet = 30, laser = 30,energy = 30, bomb = 50, bio = 90, rad = 20)
|
||||
cold_protection = HEAD
|
||||
min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT
|
||||
heat_protection = HEAD
|
||||
max_heat_protection_temperature = SPACE_HELM_MAX_TEMP_PROTECT
|
||||
flags = STOPSPRESSUREDMAGE
|
||||
strip_delay = 80
|
||||
dog_fashion = null
|
||||
|
||||
/obj/item/clothing/head/helmet/swat/nanotrasen
|
||||
name = "\improper SWAT helmet"
|
||||
desc = "An extremely robust, space-worthy helmet with the Nanotrasen logo emblazoned on the top."
|
||||
icon_state = "swat"
|
||||
item_state = "swat"
|
||||
|
||||
/obj/item/clothing/head/helmet/thunderdome
|
||||
name = "\improper Thunderdome helmet"
|
||||
desc = "<i>'Let the battle commence!'</i>"
|
||||
flags_inv = HIDEEARS|HIDEHAIR
|
||||
icon_state = "thunderdome"
|
||||
item_state = "thunderdome"
|
||||
armor = list(melee = 40, bullet = 30, laser = 25,energy = 10, bomb = 25, bio = 10, rad = 0)
|
||||
cold_protection = HEAD
|
||||
min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT
|
||||
heat_protection = HEAD
|
||||
max_heat_protection_temperature = SPACE_HELM_MAX_TEMP_PROTECT
|
||||
strip_delay = 80
|
||||
dog_fashion = null
|
||||
|
||||
/obj/item/clothing/head/helmet/roman
|
||||
name = "roman helmet"
|
||||
desc = "An ancient helmet made of bronze and leather."
|
||||
flags_inv = HIDEEARS|HIDEHAIR
|
||||
flags_cover = HEADCOVERSEYES
|
||||
armor = list(melee = 25, bullet = 0, laser = 25, energy = 10, bomb = 10, bio = 0, rad = 0)
|
||||
icon_state = "roman"
|
||||
item_state = "roman"
|
||||
strip_delay = 100
|
||||
dog_fashion = null
|
||||
|
||||
/obj/item/clothing/head/helmet/roman/legionaire
|
||||
name = "roman legionaire helmet"
|
||||
desc = "An ancient helmet made of bronze and leather. Has a red crest on top of it."
|
||||
icon_state = "roman_c"
|
||||
item_state = "roman_c"
|
||||
|
||||
/obj/item/clothing/head/helmet/gladiator
|
||||
name = "gladiator helmet"
|
||||
desc = "Ave, Imperator, morituri te salutant."
|
||||
icon_state = "gladiator"
|
||||
item_state = "gladiator"
|
||||
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEHAIR
|
||||
flags_cover = HEADCOVERSEYES
|
||||
dog_fashion = null
|
||||
|
||||
/obj/item/clothing/head/helmet/redtaghelm
|
||||
name = "red laser tag helmet"
|
||||
desc = "They have chosen their own end."
|
||||
icon_state = "redtaghelm"
|
||||
flags_cover = HEADCOVERSEYES
|
||||
item_state = "redtaghelm"
|
||||
armor = list(melee = 15, bullet = 10, laser = 20,energy = 10, bomb = 20, bio = 0, rad = 0)
|
||||
// Offer about the same protection as a hardhat.
|
||||
dog_fashion = null
|
||||
|
||||
/obj/item/clothing/head/helmet/bluetaghelm
|
||||
name = "blue laser tag helmet"
|
||||
desc = "They'll need more men."
|
||||
icon_state = "bluetaghelm"
|
||||
flags_cover = HEADCOVERSEYES
|
||||
item_state = "bluetaghelm"
|
||||
armor = list(melee = 15, bullet = 10, laser = 20,energy = 10, bomb = 20, bio = 0, rad = 0)
|
||||
// Offer about the same protection as a hardhat.
|
||||
dog_fashion = null
|
||||
|
||||
/obj/item/clothing/head/helmet/knight
|
||||
name = "medieval helmet"
|
||||
desc = "A classic metal helmet."
|
||||
icon_state = "knight_green"
|
||||
item_state = "knight_green"
|
||||
armor = list(melee = 41, bullet = 15, laser = 5,energy = 5, bomb = 5, bio = 2, rad = 0)
|
||||
flags = null
|
||||
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR
|
||||
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
|
||||
strip_delay = 80
|
||||
dog_fashion = null
|
||||
|
||||
/obj/item/clothing/head/helmet/knight/blue
|
||||
icon_state = "knight_blue"
|
||||
item_state = "knight_blue"
|
||||
|
||||
/obj/item/clothing/head/helmet/knight/yellow
|
||||
icon_state = "knight_yellow"
|
||||
item_state = "knight_yellow"
|
||||
|
||||
/obj/item/clothing/head/helmet/knight/red
|
||||
icon_state = "knight_red"
|
||||
item_state = "knight_red"
|
||||
|
||||
/obj/item/clothing/head/helmet/knight/templar
|
||||
name = "crusader helmet"
|
||||
desc = "Deus Vult."
|
||||
icon_state = "knight_templar"
|
||||
item_state = "knight_templar"
|
||||
|
||||
/obj/item/clothing/head/helmet/skull
|
||||
name = "skull helmet"
|
||||
desc = "An intimidating tribal helmet, it doesn't look very comfortable."
|
||||
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE
|
||||
flags_cover = HEADCOVERSEYES
|
||||
armor = list(melee = 25, bullet = 25, laser = 25, energy = 10, bomb = 10, bio = 5, rad = 20)
|
||||
icon_state = "skull"
|
||||
item_state = "skull"
|
||||
strip_delay = 100
|
||||
|
||||
//LightToggle
|
||||
|
||||
/obj/item/clothing/head/helmet/update_icon()
|
||||
|
||||
var/state = "[initial(icon_state)]"
|
||||
if(F)
|
||||
if(F.on)
|
||||
state += "-flight-on" //"helmet-flight-on" // "helmet-cam-flight-on"
|
||||
else
|
||||
state += "-flight" //etc.
|
||||
|
||||
icon_state = state
|
||||
|
||||
if(istype(loc, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = loc
|
||||
H.update_inv_head()
|
||||
|
||||
return
|
||||
|
||||
/obj/item/clothing/head/helmet/ui_action_click(mob/user, actiontype)
|
||||
if(actiontype == /datum/action/item_action/toggle_helmet_flashlight)
|
||||
toggle_helmlight()
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/item/clothing/head/helmet/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/device/flashlight/seclite))
|
||||
var/obj/item/device/flashlight/seclite/S = I
|
||||
if(can_flashlight)
|
||||
if(!F)
|
||||
if(!user.unEquip(S))
|
||||
return
|
||||
user << "<span class='notice'>You click [S] into place on [src].</span>"
|
||||
if(S.on)
|
||||
SetLuminosity(0)
|
||||
F = S
|
||||
S.loc = src
|
||||
update_icon()
|
||||
update_helmlight(user)
|
||||
verbs += /obj/item/clothing/head/helmet/proc/toggle_helmlight
|
||||
var/datum/action/A = new /datum/action/item_action/toggle_helmet_flashlight(src)
|
||||
if(loc == user)
|
||||
A.Grant(user)
|
||||
return
|
||||
|
||||
if(istype(I, /obj/item/weapon/screwdriver))
|
||||
if(F)
|
||||
for(var/obj/item/device/flashlight/seclite/S in src)
|
||||
user << "<span class='notice'>You unscrew the seclite from [src].</span>"
|
||||
F = null
|
||||
S.loc = get_turf(user)
|
||||
update_helmlight(user)
|
||||
S.update_brightness(user)
|
||||
update_icon()
|
||||
usr.update_inv_head()
|
||||
verbs -= /obj/item/clothing/head/helmet/proc/toggle_helmlight
|
||||
for(var/datum/action/item_action/toggle_helmet_flashlight/THL in actions)
|
||||
qdel(THL)
|
||||
return
|
||||
|
||||
..()
|
||||
|
||||
/obj/item/clothing/head/helmet/proc/toggle_helmlight()
|
||||
set name = "Toggle Helmetlight"
|
||||
set category = "Object"
|
||||
set desc = "Click to toggle your helmet's attached flashlight."
|
||||
|
||||
if(!F)
|
||||
return
|
||||
|
||||
var/mob/user = usr
|
||||
if(user.incapacitated())
|
||||
return
|
||||
if(!isturf(user.loc))
|
||||
user << "<span class='warning'>You cannot turn the light on while in this [user.loc]!</span>"
|
||||
F.on = !F.on
|
||||
user << "<span class='notice'>You toggle the helmetlight [F.on ? "on":"off"].</span>"
|
||||
|
||||
playsound(user, 'sound/weapons/empty.ogg', 100, 1)
|
||||
update_helmlight(user)
|
||||
return
|
||||
|
||||
/obj/item/clothing/head/helmet/proc/update_helmlight(mob/user = null)
|
||||
if(F)
|
||||
if(F.on)
|
||||
if(loc == user)
|
||||
user.AddLuminosity(F.brightness_on)
|
||||
else if(isturf(loc))
|
||||
SetLuminosity(F.brightness_on)
|
||||
else
|
||||
if(loc == user)
|
||||
user.AddLuminosity(-F.brightness_on)
|
||||
else if(isturf(loc))
|
||||
SetLuminosity(0)
|
||||
update_icon()
|
||||
|
||||
else
|
||||
if(loc == user)
|
||||
user.AddLuminosity(-5)
|
||||
else if(isturf(loc))
|
||||
SetLuminosity(0)
|
||||
for(var/X in actions)
|
||||
var/datum/action/A = X
|
||||
A.UpdateButtonIcon()
|
||||
|
||||
/obj/item/clothing/head/helmet/pickup(mob/user)
|
||||
..()
|
||||
if(F)
|
||||
if(F.on)
|
||||
user.AddLuminosity(F.brightness_on)
|
||||
SetLuminosity(0)
|
||||
|
||||
|
||||
/obj/item/clothing/head/helmet/dropped(mob/user)
|
||||
..()
|
||||
if(F)
|
||||
if(F.on)
|
||||
user.AddLuminosity(-F.brightness_on)
|
||||
SetLuminosity(F.brightness_on)
|
||||
@@ -0,0 +1,137 @@
|
||||
|
||||
//Bartender //it's chef what the fuck is your problem?
|
||||
/obj/item/clothing/head/chefhat
|
||||
name = "chef's hat"
|
||||
desc = "It's a hat used by chefs to keep hair out of your food. Judging by the food in the mess, they don't work."
|
||||
icon_state = "chef"
|
||||
item_state = "chef"
|
||||
desc = "The commander in chef's head wear."
|
||||
strip_delay = 10
|
||||
put_on_delay = 10
|
||||
|
||||
dog_fashion = /datum/dog_fashion/head/chef
|
||||
|
||||
/obj/item/clothing/head/chefhat/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is donning [src]! It looks like they're trying to become a chef.</span>")
|
||||
user.say("Bork Bork Bork!")
|
||||
sleep(20)
|
||||
user.visible_message("<span class='suicide'>[user] climbs into an imaginary oven!</span>")
|
||||
user.say("BOOORK!")
|
||||
playsound(user, 'sound/machines/ding.ogg', 50, 1)
|
||||
return(FIRELOSS)
|
||||
|
||||
//Captain
|
||||
/obj/item/clothing/head/caphat
|
||||
name = "captain's hat"
|
||||
desc = "It's good being the king."
|
||||
icon_state = "captain"
|
||||
item_state = "that"
|
||||
flags_inv = 0
|
||||
armor = list(melee = 25, bullet = 15, laser = 25, energy = 10, bomb = 25, bio = 0, rad = 0)
|
||||
strip_delay = 60
|
||||
|
||||
dog_fashion = /datum/dog_fashion/head/captain
|
||||
|
||||
//Captain: This is no longer space-worthy
|
||||
/obj/item/clothing/head/caphat/parade
|
||||
name = "captain's parade cap"
|
||||
desc = "Worn only by Captains with an abundance of class."
|
||||
icon_state = "capcap"
|
||||
|
||||
dog_fashion = null
|
||||
|
||||
|
||||
//Head of Personnel
|
||||
/obj/item/clothing/head/hopcap
|
||||
name = "head of personnel's cap"
|
||||
icon_state = "hopcap"
|
||||
desc = "The symbol of true bureaucratic micromanagement."
|
||||
armor = list(melee = 25, bullet = 15, laser = 25, energy = 10, bomb = 25, bio = 0, rad = 0)
|
||||
|
||||
dog_fashion = /datum/dog_fashion/head/hop
|
||||
|
||||
//Chaplain
|
||||
/obj/item/clothing/head/nun_hood
|
||||
name = "nun hood"
|
||||
desc = "Maximum piety in this star system."
|
||||
icon_state = "nun_hood"
|
||||
flags_inv = HIDEHAIR
|
||||
flags_cover = HEADCOVERSEYES
|
||||
|
||||
/obj/item/clothing/head/det_hat
|
||||
name = "detective's fedora"
|
||||
desc = "There's only one man who can sniff out the dirty stench of crime, and he's likely wearing this hat."
|
||||
icon_state = "detective"
|
||||
armor = list(melee = 25, bullet = 5, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0)
|
||||
var/candy_cooldown = 0
|
||||
|
||||
dog_fashion = /datum/dog_fashion/head/detective
|
||||
|
||||
/obj/item/clothing/head/det_hat/AltClick()
|
||||
..()
|
||||
if(ismob(loc))
|
||||
var/mob/M = loc
|
||||
if(candy_cooldown < world.time)
|
||||
var/obj/item/weapon/reagent_containers/food/snacks/candy_corn/CC = new /obj/item/weapon/reagent_containers/food/snacks/candy_corn(src)
|
||||
M.put_in_hands(CC)
|
||||
M << "You slip a candy corn from your hat."
|
||||
candy_cooldown = world.time+1200
|
||||
else
|
||||
M << "You just took a candy corn! You should wait a couple minutes, lest you burn through your stash."
|
||||
|
||||
|
||||
//Mime
|
||||
/obj/item/clothing/head/beret
|
||||
name = "beret"
|
||||
desc = "A beret, a mime's favorite headwear."
|
||||
icon_state = "beret"
|
||||
|
||||
dog_fashion = /datum/dog_fashion/head/beret
|
||||
|
||||
|
||||
//Security
|
||||
|
||||
/obj/item/clothing/head/HoS
|
||||
name = "head of security cap"
|
||||
desc = "The robust standard-issue cap of the Head of Security. For showing the officers who's in charge."
|
||||
icon_state = "hoscap"
|
||||
armor = list(melee = 40, bullet = 30, laser = 25, energy = 10, bomb = 25, bio = 10, rad = 0)
|
||||
strip_delay = 80
|
||||
|
||||
/obj/item/clothing/head/HoS/beret
|
||||
name = "head of security beret"
|
||||
desc = "A robust beret for the Head of Security, for looking stylish while not sacrificing protection."
|
||||
icon_state = "hosberetblack"
|
||||
|
||||
/obj/item/clothing/head/warden
|
||||
name = "warden's police hat"
|
||||
desc = "It's a special armored hat issued to the Warden of a security force. Protects the head from impacts."
|
||||
icon_state = "policehelm"
|
||||
armor = list(melee = 40, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0)
|
||||
strip_delay = 60
|
||||
|
||||
dog_fashion = /datum/dog_fashion/head/warden
|
||||
|
||||
/obj/item/clothing/head/beret/sec
|
||||
name = "security beret"
|
||||
desc = "A robust beret with the security insignia emblazoned on it. Uses reinforced fabric to offer sufficent protection."
|
||||
icon_state = "beret_badge"
|
||||
armor = list(melee = 40, bullet = 30, laser = 30,energy = 10, bomb = 25, bio = 0, rad = 0)
|
||||
strip_delay = 60
|
||||
dog_fashion = null
|
||||
|
||||
/obj/item/clothing/head/beret/sec/navyhos
|
||||
name = "head of security's beret"
|
||||
desc = "A special beret with the Head of Security's insignia emblazoned on it. A symbol of excellence, a badge of courage, a mark of distinction."
|
||||
icon_state = "hosberet"
|
||||
|
||||
/obj/item/clothing/head/beret/sec/navywarden
|
||||
name = "warden's beret"
|
||||
desc = "A special beret with the Warden's insignia emblazoned on it. For wardens with class."
|
||||
icon_state = "wardenberet"
|
||||
armor = list(melee = 40, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0)
|
||||
strip_delay = 60
|
||||
|
||||
/obj/item/clothing/head/beret/sec/navyofficer
|
||||
desc = "A special beret with the security insignia emblazoned on it. For officers with class."
|
||||
icon_state = "officerberet"
|
||||
@@ -0,0 +1,263 @@
|
||||
|
||||
|
||||
/obj/item/clothing/head/centhat
|
||||
name = "\improper Centcom hat"
|
||||
icon_state = "centcom"
|
||||
desc = "It's good to be emperor."
|
||||
item_state = "that"
|
||||
flags_inv = 0
|
||||
armor = list(melee = 30, bullet = 15, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0)
|
||||
strip_delay = 80
|
||||
|
||||
/obj/item/clothing/head/powdered_wig
|
||||
name = "powdered wig"
|
||||
desc = "A powdered wig."
|
||||
icon_state = "pwig"
|
||||
item_state = "pwig"
|
||||
|
||||
/obj/item/clothing/head/that
|
||||
name = "top-hat"
|
||||
desc = "It's an amish looking hat."
|
||||
icon_state = "tophat"
|
||||
item_state = "that"
|
||||
dog_fashion = /datum/dog_fashion/head
|
||||
|
||||
/obj/item/clothing/head/canada
|
||||
name = "striped red tophat"
|
||||
desc = " It feels sticky, like maple syrup - <i>il se sent collante, comme le sirop d'érable</i>"
|
||||
icon_state = "canada"
|
||||
item_state = "canada"
|
||||
|
||||
/obj/item/clothing/head/redcoat
|
||||
name = "redcoat's hat"
|
||||
icon_state = "redcoat"
|
||||
desc = "<i>'I guess it's a redhead.'</i>"
|
||||
|
||||
/obj/item/clothing/head/mailman
|
||||
name = "mailman's hat"
|
||||
icon_state = "mailman"
|
||||
desc = "<i>'Right-on-time'</i> mail service head wear."
|
||||
|
||||
/obj/item/clothing/head/plaguedoctorhat
|
||||
name = "plague doctor's hat"
|
||||
desc = "These were once used by plague doctors. They're pretty much useless."
|
||||
icon_state = "plaguedoctor"
|
||||
permeability_coefficient = 0.01
|
||||
|
||||
/obj/item/clothing/head/hasturhood
|
||||
name = "hastur's hood"
|
||||
desc = "It's <i>unspeakably</i> stylish."
|
||||
icon_state = "hasturhood"
|
||||
flags_inv = HIDEHAIR
|
||||
flags_cover = HEADCOVERSEYES
|
||||
|
||||
/obj/item/clothing/head/nursehat
|
||||
name = "nurse's hat"
|
||||
desc = "It allows quick identification of trained medical personnel."
|
||||
icon_state = "nursehat"
|
||||
|
||||
dog_fashion = /datum/dog_fashion/head/nurse
|
||||
|
||||
/obj/item/clothing/head/syndicatefake
|
||||
name = "black space-helmet replica"
|
||||
icon_state = "syndicate-helm-black-red"
|
||||
item_state = "syndicate-helm-black-red"
|
||||
desc = "A plastic replica of a Syndicate agent's space helmet. You'll look just like a real murderous Syndicate agent in this! This is a toy, it is not made for use in space!"
|
||||
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
|
||||
|
||||
/obj/item/clothing/head/snowman
|
||||
name = "Snowman Head"
|
||||
desc = "A ball of white styrofoam. So festive."
|
||||
icon_state = "snowman_h"
|
||||
item_state = "snowman_h"
|
||||
flags_cover = HEADCOVERSEYES
|
||||
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
|
||||
|
||||
/obj/item/clothing/head/justice
|
||||
name = "justice hat"
|
||||
desc = "Fight for what's righteous!"
|
||||
icon_state = "justicered"
|
||||
item_state = "justicered"
|
||||
flags_inv = HIDEHAIR|HIDEEARS|HIDEEYES|HIDEFACE|HIDEFACIALHAIR
|
||||
flags_cover = HEADCOVERSEYES
|
||||
|
||||
/obj/item/clothing/head/justice/blue
|
||||
icon_state = "justiceblue"
|
||||
item_state = "justiceblue"
|
||||
|
||||
/obj/item/clothing/head/justice/yellow
|
||||
icon_state = "justiceyellow"
|
||||
item_state = "justiceyellow"
|
||||
|
||||
/obj/item/clothing/head/justice/green
|
||||
icon_state = "justicegreen"
|
||||
item_state = "justicegreen"
|
||||
|
||||
/obj/item/clothing/head/justice/pink
|
||||
icon_state = "justicepink"
|
||||
item_state = "justicepink"
|
||||
|
||||
/obj/item/clothing/head/rabbitears
|
||||
name = "rabbit ears"
|
||||
desc = "Wearing these makes you look useless, and only good for your sex appeal."
|
||||
icon_state = "bunny"
|
||||
|
||||
dog_fashion = /datum/dog_fashion/head/rabbit
|
||||
|
||||
|
||||
/obj/item/clothing/head/flatcap
|
||||
name = "flat cap"
|
||||
desc = "A working man's cap."
|
||||
icon_state = "flat_cap"
|
||||
item_state = "detective"
|
||||
|
||||
/obj/item/clothing/head/pirate
|
||||
name = "pirate hat"
|
||||
desc = "Yarr."
|
||||
icon_state = "pirate"
|
||||
item_state = "pirate"
|
||||
|
||||
dog_fashion = /datum/dog_fashion/head/pirate
|
||||
|
||||
/obj/item/clothing/head/hgpiratecap
|
||||
name = "pirate hat"
|
||||
desc = "Yarr."
|
||||
icon_state = "hgpiratecap"
|
||||
item_state = "hgpiratecap"
|
||||
|
||||
/obj/item/clothing/head/bandana
|
||||
name = "pirate bandana"
|
||||
desc = "Yarr."
|
||||
icon_state = "bandana"
|
||||
item_state = "bandana"
|
||||
|
||||
/obj/item/clothing/head/bowler
|
||||
name = "bowler-hat"
|
||||
desc = "Gentleman, elite aboard!"
|
||||
icon_state = "bowler"
|
||||
item_state = "bowler"
|
||||
|
||||
/obj/item/clothing/head/witchwig
|
||||
name = "witch costume wig"
|
||||
desc = "Eeeee~heheheheheheh!"
|
||||
icon_state = "witch"
|
||||
item_state = "witch"
|
||||
flags_inv = HIDEHAIR
|
||||
|
||||
/obj/item/clothing/head/chicken
|
||||
name = "chicken suit head"
|
||||
desc = "Bkaw!"
|
||||
icon_state = "chickenhead"
|
||||
item_state = "chickensuit"
|
||||
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
|
||||
|
||||
/obj/item/clothing/head/griffin
|
||||
name = "griffon head"
|
||||
desc = "Why not 'eagle head'? Who knows."
|
||||
icon_state = "griffinhat"
|
||||
item_state = "griffinhat"
|
||||
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
|
||||
|
||||
/obj/item/clothing/head/bearpelt
|
||||
name = "bear pelt hat"
|
||||
desc = "Fuzzy."
|
||||
icon_state = "bearpelt"
|
||||
item_state = "bearpelt"
|
||||
|
||||
/obj/item/clothing/head/xenos
|
||||
name = "xenos helmet"
|
||||
icon_state = "xenos"
|
||||
item_state = "xenos_helm"
|
||||
desc = "A helmet made out of chitinous alien hide."
|
||||
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
|
||||
|
||||
/obj/item/clothing/head/fedora
|
||||
name = "fedora"
|
||||
icon_state = "fedora"
|
||||
item_state = "fedora"
|
||||
desc = "A really cool hat if you're a mobster. A really lame hat if you're not."
|
||||
|
||||
/obj/item/clothing/head/fedora/suicide_act(mob/user)
|
||||
if(user.gender == FEMALE)
|
||||
return 0
|
||||
var/mob/living/carbon/human/H = user
|
||||
user.visible_message("<span class='suicide'>[user] is donning [src]! It looks like they're trying to be nice to girls.</span>")
|
||||
user.say("M'lady.")
|
||||
sleep(10)
|
||||
H.facial_hair_style = "Neckbeard"
|
||||
return(BRUTELOSS)
|
||||
|
||||
/obj/item/clothing/head/sombrero
|
||||
name = "sombrero"
|
||||
icon_state = "sombrero"
|
||||
item_state = "sombrero"
|
||||
desc = "You can practically taste the fiesta."
|
||||
flags_inv = HIDEHAIR
|
||||
|
||||
dog_fashion = /datum/dog_fashion/head/sombrero
|
||||
|
||||
/obj/item/clothing/head/sombrero/green
|
||||
name = "green sombrero"
|
||||
icon_state = "greensombrero"
|
||||
item_state = "greensombrero"
|
||||
desc = "As elegant as a dancing cactus."
|
||||
flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS
|
||||
dog_fashion = null
|
||||
|
||||
/obj/item/clothing/head/sombrero/shamebrero
|
||||
name = "shamebrero"
|
||||
icon_state = "shamebrero"
|
||||
item_state = "shamebrero"
|
||||
desc = "Once it's on, it never comes off."
|
||||
flags = NODROP
|
||||
dog_fashion = null
|
||||
|
||||
/obj/item/clothing/head/cone
|
||||
desc = "This cone is trying to warn you of something!"
|
||||
name = "warning cone"
|
||||
icon = 'icons/obj/janitor.dmi'
|
||||
icon_state = "cone"
|
||||
item_state = "cone"
|
||||
force = 1
|
||||
throwforce = 3
|
||||
throw_speed = 2
|
||||
throw_range = 5
|
||||
w_class = 2
|
||||
attack_verb = list("warned", "cautioned", "smashed")
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/head/santa
|
||||
name = "santa hat"
|
||||
desc = "On the first day of christmas my employer gave to me!"
|
||||
icon_state = "santahatnorm"
|
||||
item_state = "that"
|
||||
cold_protection = HEAD
|
||||
min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT
|
||||
dog_fashion = /datum/dog_fashion/head/santa
|
||||
|
||||
/obj/item/clothing/head/jester
|
||||
name = "jester hat"
|
||||
desc = "A hat with bells, to add some merryness to the suit."
|
||||
icon_state = "jester_hat"
|
||||
|
||||
/obj/item/clothing/head/rice_hat
|
||||
name = "rice hat"
|
||||
desc = "Welcome to the rice fields, motherfucker."
|
||||
icon_state = "rice_hat"
|
||||
|
||||
/obj/item/clothing/head/lizard
|
||||
name = "lizardskin cloche hat"
|
||||
desc = "How many lizards died to make this hat? Not enough."
|
||||
icon_state = "lizard"
|
||||
|
||||
/obj/item/clothing/head/papersack
|
||||
name = "paper sack hat"
|
||||
desc = "A paper sack with crude holes cut out for eyes. Useful for hiding one's identity or ugliness."
|
||||
icon_state = "papersack"
|
||||
flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS
|
||||
|
||||
/obj/item/clothing/head/papersack/smiley
|
||||
name = "paper sack hat"
|
||||
desc = "A paper sack with crude holes cut out for eyes and a sketchy smile drawn on the front. Not creepy at all."
|
||||
icon_state = "papersack_smile"
|
||||
flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS
|
||||
@@ -0,0 +1,181 @@
|
||||
/*
|
||||
* Contents:
|
||||
* Welding mask
|
||||
* Cakehat
|
||||
* Ushanka
|
||||
* Pumpkin head
|
||||
* Kitty ears
|
||||
* Cardborg disguise
|
||||
*/
|
||||
|
||||
/*
|
||||
* Welding mask
|
||||
*/
|
||||
/obj/item/clothing/head/welding
|
||||
name = "welding helmet"
|
||||
desc = "A head-mounted face cover designed to protect the wearer completely from space-arc eye."
|
||||
icon_state = "welding"
|
||||
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
|
||||
item_state = "welding"
|
||||
materials = list(MAT_METAL=1750, MAT_GLASS=400)
|
||||
// var/up = 0
|
||||
flash_protect = 2
|
||||
tint = 2
|
||||
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE
|
||||
actions_types = list(/datum/action/item_action/toggle)
|
||||
visor_flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE
|
||||
visor_flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/head/welding/attack_self()
|
||||
toggle()
|
||||
|
||||
|
||||
/obj/item/clothing/head/welding/verb/toggle()
|
||||
set category = "Object"
|
||||
set name = "Adjust welding helmet"
|
||||
set src in usr
|
||||
|
||||
weldingvisortoggle()
|
||||
|
||||
|
||||
/*
|
||||
* Cakehat
|
||||
*/
|
||||
/obj/item/clothing/head/hardhat/cakehat
|
||||
name = "cakehat"
|
||||
desc = "You put the cake on your head. Brilliant."
|
||||
icon_state = "hardhat0_cakehat"
|
||||
item_state = "hardhat0_cakehat"
|
||||
item_color = "cakehat"
|
||||
hitsound = 'sound/weapons/tap.ogg'
|
||||
flags_inv = HIDEEARS|HIDEHAIR
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
brightness_on = 2 //luminosity when on
|
||||
flags_cover = HEADCOVERSEYES
|
||||
heat = 1000
|
||||
|
||||
/obj/item/clothing/head/hardhat/cakehat/process()
|
||||
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/hardhat/cakehat/turn_on()
|
||||
..()
|
||||
force = 15
|
||||
throwforce = 15
|
||||
damtype = BURN
|
||||
hitsound = 'sound/items/Welder.ogg'
|
||||
START_PROCESSING(SSobj, src)
|
||||
|
||||
/obj/item/clothing/head/hardhat/cakehat/turn_off()
|
||||
..()
|
||||
force = 0
|
||||
throwforce = 0
|
||||
damtype = BRUTE
|
||||
hitsound = 'sound/weapons/tap.ogg'
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
|
||||
/obj/item/clothing/head/hardhat/cakehat/is_hot()
|
||||
return on * heat
|
||||
/*
|
||||
* Ushanka
|
||||
*/
|
||||
/obj/item/clothing/head/ushanka
|
||||
name = "ushanka"
|
||||
desc = "Perfect for winter in Siberia, da?"
|
||||
icon_state = "ushankadown"
|
||||
item_state = "ushankadown"
|
||||
flags_inv = HIDEEARS|HIDEHAIR
|
||||
var/earflaps = 1
|
||||
cold_protection = HEAD
|
||||
min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT
|
||||
|
||||
dog_fashion = /datum/dog_fashion/head/ushanka
|
||||
|
||||
/obj/item/clothing/head/ushanka/attack_self(mob/user)
|
||||
if(earflaps)
|
||||
src.icon_state = "ushankaup"
|
||||
src.item_state = "ushankaup"
|
||||
earflaps = 0
|
||||
user << "<span class='notice'>You raise the ear flaps on the ushanka.</span>"
|
||||
else
|
||||
src.icon_state = "ushankadown"
|
||||
src.item_state = "ushankadown"
|
||||
earflaps = 1
|
||||
user << "<span class='notice'>You lower the ear flaps on the ushanka.</span>"
|
||||
|
||||
/*
|
||||
* Pumpkin head
|
||||
*/
|
||||
/obj/item/clothing/head/hardhat/pumpkinhead
|
||||
name = "carved pumpkin"
|
||||
desc = "A jack o' lantern! Believed to ward off evil spirits."
|
||||
icon_state = "hardhat0_pumpkin"
|
||||
item_state = "hardhat0_pumpkin"
|
||||
item_color = "pumpkin"
|
||||
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
brightness_on = 2 //luminosity when on
|
||||
flags_cover = HEADCOVERSEYES
|
||||
|
||||
/*
|
||||
* Kitty ears
|
||||
*/
|
||||
/obj/item/clothing/head/kitty
|
||||
name = "kitty ears"
|
||||
desc = "A pair of kitty ears. Meow!"
|
||||
icon_state = "kitty"
|
||||
color = "#999"
|
||||
|
||||
dog_fashion = /datum/dog_fashion/head/kitty
|
||||
|
||||
/obj/item/clothing/head/kitty/equipped(mob/user, slot)
|
||||
if(user && slot == slot_head)
|
||||
update_icon(user)
|
||||
..()
|
||||
|
||||
/obj/item/clothing/head/kitty/update_icon(mob/living/carbon/human/user)
|
||||
if(istype(user))
|
||||
color = "#[user.hair_color]"
|
||||
|
||||
|
||||
/obj/item/clothing/head/hardhat/reindeer
|
||||
name = "novelty reindeer hat"
|
||||
desc = "Some fake antlers and a very fake red nose."
|
||||
icon_state = "hardhat0_reindeer"
|
||||
item_state = "hardhat0_reindeer"
|
||||
item_color = "reindeer"
|
||||
flags_inv = 0
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
brightness_on = 1 //luminosity when on
|
||||
|
||||
dog_fashion = /datum/dog_fashion/head/reindeer
|
||||
|
||||
/obj/item/clothing/head/cardborg
|
||||
name = "cardborg helmet"
|
||||
desc = "A helmet made out of a box."
|
||||
icon_state = "cardborg_h"
|
||||
item_state = "cardborg_h"
|
||||
flags_cover = HEADCOVERSEYES
|
||||
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
|
||||
|
||||
dog_fashion = /datum/dog_fashion/head/cardborg
|
||||
|
||||
/obj/item/clothing/head/cardborg/equipped(mob/living/user, slot)
|
||||
..()
|
||||
if(ishuman(user) && slot == slot_head)
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(istype(H.wear_suit, /obj/item/clothing/suit/cardborg))
|
||||
var/obj/item/clothing/suit/cardborg/CB = H.wear_suit
|
||||
CB.disguise(user, src)
|
||||
|
||||
/obj/item/clothing/head/cardborg/dropped(mob/living/user)
|
||||
..()
|
||||
user.remove_alt_appearance("standard_borg_disguise")
|
||||
@@ -0,0 +1,132 @@
|
||||
/obj/item/clothing/head/soft
|
||||
name = "cargo cap"
|
||||
desc = "It's a baseball hat in a tasteless yellow colour."
|
||||
icon_state = "cargosoft"
|
||||
item_state = "helmet"
|
||||
item_color = "cargo"
|
||||
|
||||
dog_fashion = /datum/dog_fashion/head/cargo_tech
|
||||
|
||||
var/flipped = 0
|
||||
|
||||
/obj/item/clothing/head/soft/dropped()
|
||||
src.icon_state = "[item_color]soft"
|
||||
src.flipped=0
|
||||
..()
|
||||
|
||||
/obj/item/clothing/head/soft/verb/flipcap()
|
||||
set category = "Object"
|
||||
set name = "Flip cap"
|
||||
|
||||
flip(usr)
|
||||
|
||||
|
||||
/obj/item/clothing/head/soft/AltClick(mob/user)
|
||||
..()
|
||||
if(!user.canUseTopic(src, be_close=TRUE))
|
||||
user << "<span class='warning'>You can't do that right now!</span>"
|
||||
return
|
||||
else
|
||||
flip(user)
|
||||
|
||||
|
||||
/obj/item/clothing/head/soft/proc/flip(mob/user)
|
||||
if(user.canmove && !user.stat && !user.restrained())
|
||||
src.flipped = !src.flipped
|
||||
if(src.flipped)
|
||||
icon_state = "[item_color]soft_flipped"
|
||||
user << "<span class='notice'>You flip the hat backwards.</span>"
|
||||
else
|
||||
icon_state = "[item_color]soft"
|
||||
user << "<span class='notice'>You flip the hat back in normal position.</span>"
|
||||
usr.update_inv_head() //so our mob-overlays update
|
||||
|
||||
/obj/item/clothing/head/soft/examine(mob/user)
|
||||
..()
|
||||
user << "<span class='notice'>Alt-click the cap to flip it [flipped ? "forwards" : "backwards"].</span>"
|
||||
|
||||
/obj/item/clothing/head/soft/red
|
||||
name = "red cap"
|
||||
desc = "It's a baseball hat in a tasteless red colour."
|
||||
icon_state = "redsoft"
|
||||
item_color = "red"
|
||||
dog_fashion = null
|
||||
|
||||
/obj/item/clothing/head/soft/blue
|
||||
name = "blue cap"
|
||||
desc = "It's a baseball hat in a tasteless blue colour."
|
||||
icon_state = "bluesoft"
|
||||
item_color = "blue"
|
||||
dog_fashion = null
|
||||
|
||||
/obj/item/clothing/head/soft/green
|
||||
name = "green cap"
|
||||
desc = "It's a baseball hat in a tasteless green colour."
|
||||
icon_state = "greensoft"
|
||||
item_color = "green"
|
||||
dog_fashion = null
|
||||
|
||||
/obj/item/clothing/head/soft/yellow
|
||||
name = "yellow cap"
|
||||
desc = "It's a baseball hat in a tasteless yellow colour."
|
||||
icon_state = "yellowsoft"
|
||||
item_color = "yellow"
|
||||
dog_fashion = null
|
||||
|
||||
/obj/item/clothing/head/soft/grey
|
||||
name = "grey cap"
|
||||
desc = "It's a baseball hat in a tasteful grey colour."
|
||||
icon_state = "greysoft"
|
||||
item_color = "grey"
|
||||
dog_fashion = null
|
||||
|
||||
/obj/item/clothing/head/soft/orange
|
||||
name = "orange cap"
|
||||
desc = "It's a baseball hat in a tasteless orange colour."
|
||||
icon_state = "orangesoft"
|
||||
item_color = "orange"
|
||||
dog_fashion = null
|
||||
|
||||
/obj/item/clothing/head/soft/mime
|
||||
name = "white cap"
|
||||
desc = "It's a baseball hat in a tasteless white colour."
|
||||
icon_state = "mimesoft"
|
||||
item_color = "mime"
|
||||
dog_fashion = null
|
||||
|
||||
/obj/item/clothing/head/soft/purple
|
||||
name = "purple cap"
|
||||
desc = "It's a baseball hat in a tasteless purple colour."
|
||||
icon_state = "purplesoft"
|
||||
item_color = "purple"
|
||||
dog_fashion = null
|
||||
|
||||
/obj/item/clothing/head/soft/black
|
||||
name = "black cap"
|
||||
desc = "It's a baseball hat in a tasteless black colour."
|
||||
icon_state = "blacksoft"
|
||||
item_color = "black"
|
||||
dog_fashion = null
|
||||
|
||||
/obj/item/clothing/head/soft/rainbow
|
||||
name = "rainbow cap"
|
||||
desc = "It's a baseball hat in a bright rainbow of colors."
|
||||
icon_state = "rainbowsoft"
|
||||
item_color = "rainbow"
|
||||
dog_fashion = null
|
||||
|
||||
/obj/item/clothing/head/soft/sec
|
||||
name = "security cap"
|
||||
desc = "It's a robust baseball hat in tasteful red colour."
|
||||
icon_state = "secsoft"
|
||||
item_color = "sec"
|
||||
armor = list(melee = 30, bullet = 25, laser = 25, energy = 10, bomb = 25, bio = 0, rad = 0)
|
||||
strip_delay = 60
|
||||
dog_fashion = null
|
||||
|
||||
/obj/item/clothing/head/soft/emt
|
||||
name = "EMT cap"
|
||||
desc = "It's a baseball hat with a dark turquoise color and a reflective cross on the top."
|
||||
icon_state = "emtsoft"
|
||||
item_color = "emt"
|
||||
dog_fashion = null
|
||||
@@ -0,0 +1,55 @@
|
||||
/obj/item/clothing/mask/balaclava
|
||||
name = "balaclava"
|
||||
desc = "LOADSAMONEY"
|
||||
icon_state = "balaclava"
|
||||
item_state = "balaclava"
|
||||
flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
|
||||
visor_flags_inv = HIDEFACE|HIDEFACIALHAIR
|
||||
w_class = 2
|
||||
actions_types = list(/datum/action/item_action/adjust)
|
||||
|
||||
/obj/item/clothing/mask/balaclava/attack_self(mob/user)
|
||||
adjustmask(user)
|
||||
|
||||
/obj/item/clothing/mask/luchador
|
||||
name = "Luchador Mask"
|
||||
desc = "Worn by robust fighters, flying high to defeat their foes!"
|
||||
icon_state = "luchag"
|
||||
item_state = "luchag"
|
||||
flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
|
||||
w_class = 2
|
||||
|
||||
/obj/item/clothing/mask/luchador/speechModification(message)
|
||||
if(copytext(message, 1, 2) != "*")
|
||||
message = replacetext(message, "captain", "CAPITÁN")
|
||||
message = replacetext(message, "station", "ESTACIÓN")
|
||||
message = replacetext(message, "sir", "SEÑOR")
|
||||
message = replacetext(message, "the ", "el ")
|
||||
message = replacetext(message, "my ", "mi ")
|
||||
message = replacetext(message, "is ", "es ")
|
||||
message = replacetext(message, "it's", "es")
|
||||
message = replacetext(message, "friend", "amigo")
|
||||
message = replacetext(message, "buddy", "amigo")
|
||||
message = replacetext(message, "hello", "hola")
|
||||
message = replacetext(message, " hot", " caliente")
|
||||
message = replacetext(message, " very ", " muy ")
|
||||
message = replacetext(message, "sword", "espada")
|
||||
message = replacetext(message, "library", "biblioteca")
|
||||
message = replacetext(message, "traitor", "traidor")
|
||||
message = replacetext(message, "wizard", "mago")
|
||||
message = uppertext(message) //Things end up looking better this way (no mixed cases), and it fits the macho wrestler image.
|
||||
if(prob(25))
|
||||
message += " OLE!"
|
||||
return message
|
||||
|
||||
/obj/item/clothing/mask/luchador/tecnicos
|
||||
name = "Tecnicos Mask"
|
||||
desc = "Worn by robust fighters who uphold justice and fight honorably."
|
||||
icon_state = "luchador"
|
||||
item_state = "luchador"
|
||||
|
||||
/obj/item/clothing/mask/luchador/rudos
|
||||
name = "Rudos Mask"
|
||||
desc = "Worn by robust fighters who are willing to do anything to win."
|
||||
icon_state = "luchar"
|
||||
item_state = "luchar"
|
||||
@@ -0,0 +1,38 @@
|
||||
/obj/item/clothing/mask/breath
|
||||
desc = "A close-fitting mask that can be connected to an air supply."
|
||||
name = "breath mask"
|
||||
icon_state = "breath"
|
||||
item_state = "m_mask"
|
||||
body_parts_covered = 0
|
||||
flags = MASKINTERNALS
|
||||
visor_flags = MASKINTERNALS
|
||||
w_class = 2
|
||||
gas_transfer_coefficient = 0.10
|
||||
permeability_coefficient = 0.50
|
||||
actions_types = list(/datum/action/item_action/adjust)
|
||||
flags_cover = MASKCOVERSMOUTH
|
||||
visor_flags_cover = MASKCOVERSMOUTH
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/mask/breath/attack_self(mob/user)
|
||||
adjustmask(user)
|
||||
|
||||
/obj/item/clothing/mask/breath/AltClick(mob/user)
|
||||
..()
|
||||
if(!user.canUseTopic(src, be_close=TRUE))
|
||||
user << "<span class='warning'>You can't do that right now!</span>"
|
||||
return
|
||||
else
|
||||
adjustmask(user)
|
||||
|
||||
/obj/item/clothing/mask/breath/examine(mob/user)
|
||||
..()
|
||||
user << "<span class='notice'>Alt-click [src] to adjust it.</span>"
|
||||
|
||||
/obj/item/clothing/mask/breath/medical
|
||||
desc = "A close-fitting sterile mask that can be connected to an air supply."
|
||||
name = "medical mask"
|
||||
icon_state = "medical"
|
||||
item_state = "m_mask"
|
||||
permeability_coefficient = 0.01
|
||||
put_on_delay = 10
|
||||
@@ -0,0 +1,171 @@
|
||||
/obj/item/clothing/mask/gas
|
||||
name = "gas mask"
|
||||
desc = "A face-covering mask that can be connected to an air supply. While good for concealing your identity, it isn't good for blocking gas flow." //More accurate
|
||||
icon_state = "gas_alt"
|
||||
flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS
|
||||
flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDEFACIALHAIR
|
||||
w_class = 3
|
||||
item_state = "gas_alt"
|
||||
gas_transfer_coefficient = 0.01
|
||||
permeability_coefficient = 0.01
|
||||
flags_cover = MASKCOVERSEYES | MASKCOVERSMOUTH
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
// **** Welding gas mask ****
|
||||
|
||||
/obj/item/clothing/mask/gas/welding
|
||||
name = "welding mask"
|
||||
desc = "A gas mask with built-in welding goggles and a face shield. Looks like a skull - clearly designed by a nerd."
|
||||
icon_state = "weldingmask"
|
||||
materials = list(MAT_METAL=4000, MAT_GLASS=2000)
|
||||
flash_protect = 2
|
||||
tint = 2
|
||||
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
origin_tech = "materials=2;engineering=3"
|
||||
actions_types = list(/datum/action/item_action/toggle)
|
||||
flags_inv = HIDEEARS|HIDEEYES|HIDEFACE
|
||||
flags_cover = MASKCOVERSEYES
|
||||
visor_flags_inv = HIDEEYES
|
||||
visor_flags_cover = MASKCOVERSEYES
|
||||
|
||||
/obj/item/clothing/mask/gas/welding/attack_self()
|
||||
toggle()
|
||||
|
||||
/obj/item/clothing/mask/gas/welding/verb/toggle()
|
||||
set category = "Object"
|
||||
set name = "Adjust welding mask"
|
||||
set src in usr
|
||||
|
||||
weldingvisortoggle()
|
||||
|
||||
// ********************************************************************
|
||||
|
||||
//Plague Dr suit can be found in clothing/suits/bio.dm
|
||||
/obj/item/clothing/mask/gas/plaguedoctor
|
||||
name = "plague doctor mask"
|
||||
desc = "A modernised version of the classic design, this mask will not only filter out toxins but it can also be connected to an air supply."
|
||||
icon_state = "plaguedoctor"
|
||||
item_state = "gas_mask"
|
||||
armor = list(melee = 0, bullet = 0, laser = 2,energy = 2, bomb = 0, bio = 75, rad = 0)
|
||||
|
||||
/obj/item/clothing/mask/gas/syndicate
|
||||
name = "syndicate mask"
|
||||
desc = "A close-fitting tactical mask that can be connected to an air supply."
|
||||
icon_state = "syndicate"
|
||||
strip_delay = 60
|
||||
|
||||
/obj/item/clothing/mask/gas/clown_hat
|
||||
name = "clown wig and mask"
|
||||
desc = "A true prankster's facial attire. A clown is incomplete without his wig and mask."
|
||||
flags = MASKINTERNALS
|
||||
icon_state = "clown"
|
||||
item_state = "clown_hat"
|
||||
flags_cover = MASKCOVERSEYES
|
||||
burn_state = FLAMMABLE
|
||||
actions_types = list(/datum/action/item_action/adjust)
|
||||
dog_fashion = /datum/dog_fashion/head/clown
|
||||
|
||||
/obj/item/clothing/mask/gas/clown_hat/attack_self(mob/user)
|
||||
AltClick(user)
|
||||
|
||||
/obj/item/clothing/mask/gas/clown_hat/AltClick(mob/living/user)
|
||||
if(!istype(user) || user.incapacitated())
|
||||
return
|
||||
|
||||
var/list/options = list()
|
||||
options["True Form"] = "clown"
|
||||
options["The Feminist"] = "sexyclown"
|
||||
options["The Madman"] = "joker"
|
||||
options["The Rainbow Color"] ="rainbow"
|
||||
|
||||
var/choice = input(user,"To what form do you wish to Morph this mask?","Morph Mask") in options
|
||||
|
||||
if(src && choice && !user.incapacitated() && in_range(user,src))
|
||||
icon_state = options[choice]
|
||||
user.update_inv_wear_mask()
|
||||
for(var/X in actions)
|
||||
var/datum/action/A = X
|
||||
A.UpdateButtonIcon()
|
||||
user << "<span class='notice'>Your Clown Mask has now morphed into [choice], all praise the Honkmother!</span>"
|
||||
return 1
|
||||
|
||||
/obj/item/clothing/mask/gas/sexyclown
|
||||
name = "sexy-clown wig and mask"
|
||||
desc = "A feminine clown mask for the dabbling crossdressers or female entertainers."
|
||||
flags = MASKINTERNALS
|
||||
icon_state = "sexyclown"
|
||||
item_state = "sexyclown"
|
||||
flags_cover = MASKCOVERSEYES
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
/obj/item/clothing/mask/gas/mime
|
||||
name = "mime mask"
|
||||
desc = "The traditional mime's mask. It has an eerie facial posture."
|
||||
flags = MASKINTERNALS
|
||||
icon_state = "mime"
|
||||
item_state = "mime"
|
||||
flags_cover = MASKCOVERSEYES
|
||||
burn_state = FLAMMABLE
|
||||
actions_types = list(/datum/action/item_action/adjust)
|
||||
|
||||
/obj/item/clothing/mask/gas/mime/attack_self(mob/user)
|
||||
cycle_mask(user)
|
||||
|
||||
/obj/item/clothing/mask/gas/mime/proc/cycle_mask(mob/user)
|
||||
switch(icon_state)
|
||||
if("mime")
|
||||
icon_state = "sadmime"
|
||||
if("sadmime")
|
||||
icon_state = "scaredmime"
|
||||
if("scaredmime")
|
||||
icon_state = "sexymime"
|
||||
if("sexymime")
|
||||
icon_state = "mime"
|
||||
user.update_inv_wear_mask()
|
||||
for(var/X in actions)
|
||||
var/datum/action/A = X
|
||||
A.UpdateButtonIcon()
|
||||
user << "<span class='notice'>You adjust your mask to portray a different emotion.</span>"
|
||||
return 1
|
||||
|
||||
/obj/item/clothing/mask/gas/monkeymask
|
||||
name = "monkey mask"
|
||||
desc = "A mask used when acting as a monkey."
|
||||
flags = MASKINTERNALS
|
||||
icon_state = "monkeymask"
|
||||
item_state = "monkeymask"
|
||||
flags_cover = MASKCOVERSEYES
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
/obj/item/clothing/mask/gas/sexymime
|
||||
name = "sexy mime mask"
|
||||
desc = "A traditional female mime's mask."
|
||||
flags = MASKINTERNALS
|
||||
icon_state = "sexymime"
|
||||
item_state = "sexymime"
|
||||
flags_cover = MASKCOVERSEYES
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
/obj/item/clothing/mask/gas/death_commando
|
||||
name = "Death Commando Mask"
|
||||
icon_state = "death_commando_mask"
|
||||
item_state = "death_commando_mask"
|
||||
|
||||
/obj/item/clothing/mask/gas/cyborg
|
||||
name = "cyborg visor"
|
||||
desc = "Beep boop."
|
||||
icon_state = "death"
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
/obj/item/clothing/mask/gas/owl_mask
|
||||
name = "owl mask"
|
||||
desc = "Twoooo!"
|
||||
icon_state = "owl"
|
||||
flags = MASKINTERNALS
|
||||
flags_cover = MASKCOVERSEYES
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
/obj/item/clothing/mask/gas/carp
|
||||
name = "carp mask"
|
||||
desc = "Gnash gnash."
|
||||
icon_state = "carp_mask"
|
||||
@@ -0,0 +1,173 @@
|
||||
|
||||
// **** Security gas mask ****
|
||||
|
||||
/obj/item/clothing/mask/gas/sechailer
|
||||
name = "security gas mask"
|
||||
desc = "A standard issue Security gas mask with integrated 'Compli-o-nator 3000' device. Plays over a dozen pre-recorded compliance phrases designed to get scumbags to stand still whilst you taze them. Do not tamper with the device."
|
||||
actions_types = list(/datum/action/item_action/halt, /datum/action/item_action/adjust)
|
||||
icon_state = "sechailer"
|
||||
flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS
|
||||
flags_inv = HIDEFACIALHAIR|HIDEFACE
|
||||
w_class = 2
|
||||
visor_flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS
|
||||
visor_flags_inv = HIDEFACE
|
||||
flags_cover = MASKCOVERSMOUTH
|
||||
visor_flags_cover = MASKCOVERSMOUTH
|
||||
var/aggressiveness = 2
|
||||
var/cooldown_special
|
||||
var/recent_uses = 0
|
||||
var/broken_hailer = 0
|
||||
|
||||
/obj/item/clothing/mask/gas/sechailer/swat
|
||||
name = "\improper SWAT mask"
|
||||
desc = "A close-fitting tactical mask with an especially aggressive Compli-o-nator 3000."
|
||||
actions_types = list(/datum/action/item_action/halt)
|
||||
icon_state = "swat"
|
||||
aggressiveness = 3
|
||||
flags_inv = HIDEFACIALHAIR|HIDEFACE|HIDEEYES|HIDEEARS|HIDEHAIR
|
||||
visor_flags_inv = 0
|
||||
|
||||
/obj/item/clothing/mask/gas/sechailer/cyborg
|
||||
name = "security hailer"
|
||||
desc = "A set of recognizable pre-recorded messages for cyborgs to use when apprehending criminals."
|
||||
icon = 'icons/obj/device.dmi'
|
||||
icon_state = "taperecorder_idle"
|
||||
aggressiveness = 1 //Borgs are nicecurity!
|
||||
actions_types = list(/datum/action/item_action/halt)
|
||||
|
||||
/obj/item/clothing/mask/gas/sechailer/attackby(obj/item/weapon/W, mob/user, params)
|
||||
if(istype(W, /obj/item/weapon/screwdriver))
|
||||
switch(aggressiveness)
|
||||
if(1)
|
||||
user << "<span class='notice'>You set the restrictor to the middle position.</span>"
|
||||
aggressiveness = 2
|
||||
if(2)
|
||||
user << "<span class='notice'>You set the restrictor to the last position.</span>"
|
||||
aggressiveness = 3
|
||||
if(3)
|
||||
user << "<span class='notice'>You set the restrictor to the first position.</span>"
|
||||
aggressiveness = 1
|
||||
if(4)
|
||||
user << "<span class='danger'>You adjust the restrictor but nothing happens, probably because it's broken.</span>"
|
||||
else if(istype(W, /obj/item/weapon/wirecutters))
|
||||
if(aggressiveness != 4)
|
||||
user << "<span class='danger'>You broke the restrictor!</span>"
|
||||
aggressiveness = 4
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/item/clothing/mask/gas/sechailer/ui_action_click(mob/user, actiontype)
|
||||
if(actiontype == /datum/action/item_action/halt)
|
||||
halt()
|
||||
else
|
||||
adjustmask(user)
|
||||
|
||||
/obj/item/clothing/mask/gas/sechailer/attack_self()
|
||||
halt()
|
||||
|
||||
/obj/item/clothing/mask/gas/sechailer/verb/halt()
|
||||
set category = "Object"
|
||||
set name = "HALT"
|
||||
set src in usr
|
||||
if(!istype(usr, /mob/living))
|
||||
return
|
||||
if(!can_use(usr))
|
||||
return
|
||||
if(broken_hailer)
|
||||
usr << "<span class='warning'>\The [src]'s hailing system is broken.</span>"
|
||||
return
|
||||
|
||||
var/phrase = 0 //selects which phrase to use
|
||||
var/phrase_text = null
|
||||
var/phrase_sound = null
|
||||
|
||||
|
||||
if(cooldown < world.time - 30) // A cooldown, to stop people being jerks
|
||||
recent_uses++
|
||||
if(cooldown_special < world.time - 180) //A better cooldown that burns jerks
|
||||
recent_uses = initial(recent_uses)
|
||||
|
||||
switch(recent_uses)
|
||||
if(3)
|
||||
usr << "<span class='warning'>\The [src] is starting to heat up.</span>"
|
||||
if(4)
|
||||
usr << "<span class='userdanger'>\The [src] is heating up dangerously from overuse!</span>"
|
||||
if(5) //overload
|
||||
broken_hailer = 1
|
||||
usr << "<span class='userdanger'>\The [src]'s power modulator overloads and breaks.</span>"
|
||||
return
|
||||
|
||||
switch(aggressiveness) // checks if the user has unlocked the restricted phrases
|
||||
if(1)
|
||||
phrase = rand(1,5) // set the upper limit as the phrase above the first 'bad cop' phrase, the mask will only play 'nice' phrases
|
||||
if(2)
|
||||
phrase = rand(1,11) // default setting, set upper limit to last 'bad cop' phrase. Mask will play good cop and bad cop phrases
|
||||
if(3)
|
||||
phrase = rand(1,18) // user has unlocked all phrases, set upper limit to last phrase. The mask will play all phrases
|
||||
if(4)
|
||||
phrase = rand(12,18) // user has broke the restrictor, it will now only play shitcurity phrases
|
||||
|
||||
switch(phrase) //sets the properties of the chosen phrase
|
||||
if(1) // good cop
|
||||
phrase_text = "HALT! HALT! HALT!"
|
||||
phrase_sound = "halt"
|
||||
if(2)
|
||||
phrase_text = "Stop in the name of the Law."
|
||||
phrase_sound = "bobby"
|
||||
if(3)
|
||||
phrase_text = "Compliance is in your best interest."
|
||||
phrase_sound = "compliance"
|
||||
if(4)
|
||||
phrase_text = "Prepare for justice!"
|
||||
phrase_sound = "justice"
|
||||
if(5)
|
||||
phrase_text = "Running will only increase your sentence."
|
||||
phrase_sound = "running"
|
||||
if(6) // bad cop
|
||||
phrase_text = "Don't move, Creep!"
|
||||
phrase_sound = "dontmove"
|
||||
if(7)
|
||||
phrase_text = "Down on the floor, Creep!"
|
||||
phrase_sound = "floor"
|
||||
if(8)
|
||||
phrase_text = "Dead or alive you're coming with me."
|
||||
phrase_sound = "robocop"
|
||||
if(9)
|
||||
phrase_text = "God made today for the crooks we could not catch yesterday."
|
||||
phrase_sound = "god"
|
||||
if(10)
|
||||
phrase_text = "Freeze, Scum Bag!"
|
||||
phrase_sound = "freeze"
|
||||
if(11)
|
||||
phrase_text = "Stop right there, criminal scum!"
|
||||
phrase_sound = "imperial"
|
||||
if(12) // LA-PD
|
||||
phrase_text = "Stop or I'll bash you."
|
||||
phrase_sound = "bash"
|
||||
if(13)
|
||||
phrase_text = "Go ahead, make my day."
|
||||
phrase_sound = "harry"
|
||||
if(14)
|
||||
phrase_text = "Stop breaking the law, ass hole."
|
||||
phrase_sound = "asshole"
|
||||
if(15)
|
||||
phrase_text = "You have the right to shut the fuck up."
|
||||
phrase_sound = "stfu"
|
||||
if(16)
|
||||
phrase_text = "Shut up crime!"
|
||||
phrase_sound = "shutup"
|
||||
if(17)
|
||||
phrase_text = "Face the wrath of the golden bolt."
|
||||
phrase_sound = "super"
|
||||
if(18)
|
||||
phrase_text = "I am, the LAW!"
|
||||
phrase_sound = "dredd"
|
||||
|
||||
usr.audible_message("[usr]'s Compli-o-Nator: <font color='red' size='4'><b>[phrase_text]</b></font>")
|
||||
playsound(src.loc, "sound/voice/complionator/[phrase_sound].ogg", 100, 0, 4)
|
||||
cooldown = world.time
|
||||
cooldown_special = world.time
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,148 @@
|
||||
/obj/item/clothing/mask/muzzle
|
||||
name = "muzzle"
|
||||
desc = "To stop that awful noise."
|
||||
icon_state = "muzzle"
|
||||
item_state = "blindfold"
|
||||
flags_cover = MASKCOVERSMOUTH
|
||||
w_class = 2
|
||||
gas_transfer_coefficient = 0.90
|
||||
put_on_delay = 20
|
||||
|
||||
/obj/item/clothing/mask/muzzle/attack_paw(mob/user)
|
||||
if(iscarbon(user))
|
||||
var/mob/living/carbon/C = user
|
||||
if(src == C.wear_mask)
|
||||
user << "<span class='warning'>You need help taking this off!</span>"
|
||||
return
|
||||
..()
|
||||
|
||||
/obj/item/clothing/mask/surgical
|
||||
name = "sterile mask"
|
||||
desc = "A sterile mask designed to help prevent the spread of diseases."
|
||||
icon_state = "sterile"
|
||||
item_state = "sterile"
|
||||
w_class = 1
|
||||
flags_inv = HIDEFACE
|
||||
flags_cover = MASKCOVERSMOUTH
|
||||
visor_flags_inv = HIDEFACE
|
||||
visor_flags_cover = MASKCOVERSMOUTH
|
||||
gas_transfer_coefficient = 0.90
|
||||
permeability_coefficient = 0.01
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 25, rad = 0)
|
||||
actions_types = list(/datum/action/item_action/adjust)
|
||||
|
||||
/obj/item/clothing/mask/surgical/attack_self(mob/user)
|
||||
adjustmask(user)
|
||||
|
||||
/obj/item/clothing/mask/fakemoustache
|
||||
name = "fake moustache"
|
||||
desc = "Warning: moustache is fake."
|
||||
icon_state = "fake-moustache"
|
||||
flags_inv = HIDEFACE
|
||||
|
||||
/obj/item/clothing/mask/pig
|
||||
name = "pig mask"
|
||||
desc = "A rubber pig mask."
|
||||
icon_state = "pig"
|
||||
item_state = "pig"
|
||||
flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
|
||||
w_class = 2
|
||||
actions_types = list(/datum/action/item_action/toggle_voice_box)
|
||||
var/voicechange = 0
|
||||
|
||||
/obj/item/clothing/mask/pig/attack_self(mob/user)
|
||||
voicechange = !voicechange
|
||||
user << "<span class='notice'>You turn the voice box [voicechange ? "on" : "off"]!</span>"
|
||||
|
||||
/obj/item/clothing/mask/pig/speechModification(message)
|
||||
if(voicechange)
|
||||
message = pick("Oink!","Squeeeeeeee!","Oink Oink!")
|
||||
return message
|
||||
|
||||
/obj/item/clothing/mask/spig //needs to be different otherwise you could turn the speedmodification off and on
|
||||
name = "Pig face"
|
||||
desc = "It looks like a mask, but closer inspection reveals it's melded onto this persons face!" //It's only ever going to be attached to your face.
|
||||
icon_state = "pig"
|
||||
item_state = "pig"
|
||||
flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
|
||||
w_class = 2
|
||||
var/voicechange = 1
|
||||
|
||||
/obj/item/clothing/mask/spig/speechModification(message)
|
||||
if(voicechange)
|
||||
message = pick("Oink!","Squeeeeeeee!","Oink Oink!")
|
||||
return message
|
||||
|
||||
/obj/item/clothing/mask/cowmask
|
||||
name = "Cowface"
|
||||
desc = "It looks like a mask, but closer inspection reveals it's melded onto this persons face!"
|
||||
icon = 'icons/mob/mask.dmi'
|
||||
icon_state = "cowmask"
|
||||
item_state = "cowmask"
|
||||
flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
|
||||
w_class = 2
|
||||
var/voicechange = 1
|
||||
|
||||
/obj/item/clothing/mask/cowmask/speechModification(message)
|
||||
if(voicechange)
|
||||
message = pick("Moooooooo!","Moo!","Moooo!")
|
||||
return message
|
||||
|
||||
/obj/item/clothing/mask/horsehead
|
||||
name = "horse head mask"
|
||||
desc = "A mask made of soft vinyl and latex, representing the head of a horse."
|
||||
icon_state = "horsehead"
|
||||
item_state = "horsehead"
|
||||
flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDEEYES|HIDEEARS
|
||||
w_class = 2
|
||||
var/voicechange = 1
|
||||
|
||||
/obj/item/clothing/mask/horsehead/speechModification(message)
|
||||
if(voicechange)
|
||||
message = pick("NEEIIGGGHHHH!", "NEEEIIIIGHH!", "NEIIIGGHH!", "HAAWWWWW!", "HAAAWWW!")
|
||||
return message
|
||||
|
||||
/obj/item/clothing/mask/bandana
|
||||
name = "botany bandana"
|
||||
desc = "A fine bandana with nanotech lining and a hydroponics pattern."
|
||||
w_class = 1
|
||||
flags_cover = MASKCOVERSMOUTH
|
||||
flags_inv = HIDEFACE|HIDEFACIALHAIR
|
||||
visor_flags_inv = HIDEFACE|HIDEFACIALHAIR
|
||||
visor_flags_cover = MASKCOVERSMOUTH
|
||||
slot_flags = SLOT_MASK
|
||||
adjusted_flags = SLOT_HEAD
|
||||
icon_state = "bandbotany"
|
||||
|
||||
/obj/item/clothing/mask/bandana/attack_self(mob/user)
|
||||
adjustmask(user)
|
||||
|
||||
/obj/item/clothing/mask/bandana/red
|
||||
name = "red bandana"
|
||||
desc = "A fine red bandana with nanotech lining."
|
||||
icon_state = "bandred"
|
||||
|
||||
/obj/item/clothing/mask/bandana/blue
|
||||
name = "blue bandana"
|
||||
desc = "A fine blue bandana with nanotech lining."
|
||||
icon_state = "bandblue"
|
||||
|
||||
/obj/item/clothing/mask/bandana/green
|
||||
name = "green bandana"
|
||||
desc = "A fine green bandana with nanotech lining."
|
||||
icon_state = "bandgreen"
|
||||
|
||||
/obj/item/clothing/mask/bandana/gold
|
||||
name = "gold bandana"
|
||||
desc = "A fine gold bandana with nanotech lining."
|
||||
icon_state = "bandgold"
|
||||
|
||||
/obj/item/clothing/mask/bandana/black
|
||||
name = "black bandana"
|
||||
desc = "A fine black bandana with nanotech lining."
|
||||
icon_state = "bandblack"
|
||||
|
||||
/obj/item/clothing/mask/bandana/skull
|
||||
name = "skull bandana"
|
||||
desc = "A fine black bandana with nanotech lining and a skull emblem."
|
||||
icon_state = "bandskull"
|
||||
@@ -0,0 +1,196 @@
|
||||
/datum/outfit/ert
|
||||
name = "ERT Common"
|
||||
|
||||
uniform = /obj/item/clothing/under/rank/centcom_officer
|
||||
shoes = /obj/item/clothing/shoes/combat/swat
|
||||
gloves = /obj/item/clothing/gloves/combat
|
||||
ears = /obj/item/device/radio/headset/headset_cent/alt
|
||||
|
||||
/datum/outfit/ert/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
var/obj/item/weapon/implant/mindshield/L = new/obj/item/weapon/implant/mindshield(H)
|
||||
L.imp_in = H
|
||||
L.implanted = 1
|
||||
H.sec_hud_set_implants()
|
||||
|
||||
var/obj/item/device/radio/R = H.ears
|
||||
R.set_frequency(CENTCOM_FREQ)
|
||||
R.freqlock = 1
|
||||
|
||||
var/obj/item/weapon/card/id/W = H.wear_id
|
||||
W.registered_name = H.real_name
|
||||
W.update_label(W.registered_name, W.assignment)
|
||||
|
||||
/datum/outfit/ert/commander
|
||||
name = "ERT Commander"
|
||||
|
||||
id = /obj/item/weapon/card/id/ert
|
||||
suit = /obj/item/clothing/suit/space/hardsuit/ert
|
||||
glasses = /obj/item/clothing/glasses/thermal/eyepatch
|
||||
back = /obj/item/weapon/storage/backpack/captain
|
||||
belt = /obj/item/weapon/storage/belt/security/full
|
||||
backpack_contents = list(/obj/item/weapon/storage/box/engineer=1,\
|
||||
/obj/item/weapon/melee/baton/loaded=1,\
|
||||
/obj/item/clothing/mask/gas/sechailer=1,\
|
||||
/obj/item/weapon/gun/energy/gun=1)
|
||||
l_pocket = /obj/item/weapon/switchblade
|
||||
|
||||
/datum/outfit/ert/commander/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
..()
|
||||
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
var/obj/item/device/radio/R = H.ears
|
||||
R.keyslot = new /obj/item/device/encryptionkey/heads/captain
|
||||
R.recalculateChannels()
|
||||
|
||||
/datum/outfit/ert/commander/alert
|
||||
name = "ERT Commander - High Alert"
|
||||
|
||||
backpack_contents = list(/obj/item/weapon/storage/box/engineer=1,\
|
||||
/obj/item/weapon/melee/baton/loaded=1,\
|
||||
/obj/item/clothing/mask/gas/sechailer/swat=1,\
|
||||
/obj/item/weapon/gun/energy/pulse/pistol/loyalpin=1)
|
||||
l_pocket = /obj/item/weapon/melee/energy/sword/saber
|
||||
|
||||
/datum/outfit/ert/security
|
||||
name = "ERT Security"
|
||||
|
||||
id = /obj/item/weapon/card/id/ert/Security
|
||||
suit = /obj/item/clothing/suit/space/hardsuit/ert/sec
|
||||
glasses = /obj/item/clothing/glasses/hud/security/sunglasses
|
||||
back = /obj/item/weapon/storage/backpack/security
|
||||
belt = /obj/item/weapon/storage/belt/security/full
|
||||
backpack_contents = list(/obj/item/weapon/storage/box/engineer=1,\
|
||||
/obj/item/weapon/storage/box/handcuffs=1,\
|
||||
/obj/item/clothing/mask/gas/sechailer=1,\
|
||||
/obj/item/weapon/gun/energy/gun=1,\
|
||||
/obj/item/weapon/melee/baton/loaded=1,\
|
||||
/obj/item/weapon/gun/energy/gun/advtaser=1)
|
||||
|
||||
/datum/outfit/ert/security/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
..()
|
||||
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
var/obj/item/device/radio/R = H.ears
|
||||
R.keyslot = new /obj/item/device/encryptionkey/heads/hos
|
||||
R.recalculateChannels()
|
||||
|
||||
/datum/outfit/ert/security/alert
|
||||
name = "ERT Security - High Alert"
|
||||
|
||||
backpack_contents = list(/obj/item/weapon/storage/box/engineer=1,\
|
||||
/obj/item/weapon/storage/box/handcuffs=1,\
|
||||
/obj/item/clothing/mask/gas/sechailer/swat=1,\
|
||||
/obj/item/weapon/melee/baton/loaded=1,\
|
||||
/obj/item/weapon/gun/energy/pulse/carbine/loyalpin=1)
|
||||
|
||||
|
||||
/datum/outfit/ert/medic
|
||||
name = "ERT Medic"
|
||||
|
||||
id = /obj/item/weapon/card/id/ert/Medical
|
||||
suit = /obj/item/clothing/suit/space/hardsuit/ert/med
|
||||
glasses = /obj/item/clothing/glasses/hud/health
|
||||
back = /obj/item/weapon/storage/backpack/medic
|
||||
belt = /obj/item/weapon/storage/belt/medical
|
||||
r_hand = /obj/item/weapon/storage/firstaid/regular
|
||||
backpack_contents = list(/obj/item/weapon/storage/box/engineer=1,\
|
||||
/obj/item/weapon/melee/baton/loaded=1,\
|
||||
/obj/item/clothing/mask/gas/sechailer=1,\
|
||||
/obj/item/weapon/gun/energy/gun=1,\
|
||||
/obj/item/weapon/reagent_containers/hypospray/combat=1,\
|
||||
/obj/item/weapon/gun/medbeam=1)
|
||||
|
||||
/datum/outfit/ert/medic/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
..()
|
||||
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
var/obj/item/device/radio/R = H.ears
|
||||
R.keyslot = new /obj/item/device/encryptionkey/heads/cmo
|
||||
R.recalculateChannels()
|
||||
|
||||
/datum/outfit/ert/medic/alert
|
||||
name = "ERT Medic - High Alert"
|
||||
|
||||
backpack_contents = list(/obj/item/weapon/storage/box/engineer=1,\
|
||||
/obj/item/weapon/melee/baton/loaded=1,\
|
||||
/obj/item/clothing/mask/gas/sechailer/swat=1,\
|
||||
/obj/item/weapon/gun/energy/pulse/pistol/loyalpin=1,\
|
||||
/obj/item/weapon/reagent_containers/hypospray/combat/nanites=1,\
|
||||
/obj/item/weapon/gun/medbeam=1)
|
||||
|
||||
/datum/outfit/ert/engineer
|
||||
name = "ERT Engineer"
|
||||
|
||||
id = /obj/item/weapon/card/id/ert/Engineer
|
||||
suit = /obj/item/clothing/suit/space/hardsuit/ert/engi
|
||||
glasses = /obj/item/clothing/glasses/meson/engine
|
||||
back = /obj/item/weapon/storage/backpack/industrial
|
||||
belt = /obj/item/weapon/storage/belt/utility/full
|
||||
l_pocket = /obj/item/weapon/rcd_ammo/large
|
||||
r_hand = /obj/item/weapon/storage/firstaid/regular
|
||||
backpack_contents = list(/obj/item/weapon/storage/box/engineer=1,\
|
||||
/obj/item/weapon/melee/baton/loaded=1,\
|
||||
/obj/item/clothing/mask/gas/sechailer=1,\
|
||||
/obj/item/weapon/gun/energy/gun=1,\
|
||||
/obj/item/weapon/rcd/loaded=1)
|
||||
|
||||
/datum/outfit/ert/engineer/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
..()
|
||||
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
var/obj/item/device/radio/R = H.ears
|
||||
R.keyslot = new /obj/item/device/encryptionkey/heads/ce
|
||||
R.recalculateChannels()
|
||||
|
||||
/datum/outfit/ert/engineer/alert
|
||||
name = "ERT Engineer - High Alert"
|
||||
|
||||
backpack_contents = list(/obj/item/weapon/storage/box/engineer=1,\
|
||||
/obj/item/weapon/melee/baton/loaded=1,\
|
||||
/obj/item/clothing/mask/gas/sechailer/swat=1,\
|
||||
/obj/item/weapon/gun/energy/pulse/pistol/loyalpin=1,\
|
||||
/obj/item/weapon/rcd/combat=1)
|
||||
|
||||
|
||||
/datum/outfit/centcom_official
|
||||
name = "Centcom Official"
|
||||
|
||||
uniform = /obj/item/clothing/under/rank/centcom_officer
|
||||
shoes = /obj/item/clothing/shoes/sneakers/black
|
||||
gloves = /obj/item/clothing/gloves/color/black
|
||||
ears = /obj/item/device/radio/headset/headset_cent
|
||||
glasses = /obj/item/clothing/glasses/sunglasses
|
||||
belt = /obj/item/weapon/gun/energy/gun
|
||||
l_pocket = /obj/item/weapon/pen
|
||||
back = /obj/item/weapon/storage/backpack/satchel_norm
|
||||
r_pocket = /obj/item/device/pda/heads
|
||||
l_hand = /obj/item/weapon/clipboard
|
||||
id = /obj/item/weapon/card/id
|
||||
|
||||
/datum/outfit/centcom_official/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
var/obj/item/device/pda/heads/pda = H.r_store
|
||||
pda.owner = H.real_name
|
||||
pda.ownjob = "Centcom Official"
|
||||
pda.update_label()
|
||||
|
||||
var/obj/item/weapon/card/id/W = H.wear_id
|
||||
W.icon_state = "centcom"
|
||||
W.access = get_centcom_access("Centcom Official")
|
||||
W.access += access_weapons
|
||||
W.assignment = "Centcom Official"
|
||||
W.registered_name = H.real_name
|
||||
W.update_label()
|
||||
@@ -0,0 +1,389 @@
|
||||
/datum/outfit/space
|
||||
name = "Standard Space Gear"
|
||||
|
||||
uniform = /obj/item/clothing/under/color/grey
|
||||
shoes = /obj/item/clothing/shoes/sneakers/black
|
||||
suit = /obj/item/clothing/suit/space
|
||||
head = /obj/item/clothing/head/helmet/space
|
||||
back = /obj/item/weapon/tank/jetpack/oxygen
|
||||
mask = /obj/item/clothing/mask/breath
|
||||
|
||||
/datum/outfit/tournament
|
||||
name = "tournament standard red"
|
||||
|
||||
uniform = /obj/item/clothing/under/color/red
|
||||
shoes = /obj/item/clothing/shoes/sneakers/black
|
||||
suit = /obj/item/clothing/suit/armor/vest
|
||||
head = /obj/item/clothing/head/helmet/thunderdome
|
||||
r_hand = /obj/item/weapon/gun/energy/pulse/destroyer
|
||||
l_hand = /obj/item/weapon/kitchen/knife
|
||||
r_pocket = /obj/item/weapon/grenade/smokebomb
|
||||
|
||||
/datum/outfit/tournament/green
|
||||
name = "tournament standard green"
|
||||
|
||||
uniform = /obj/item/clothing/under/color/green
|
||||
|
||||
/datum/outfit/tournament/gangster
|
||||
name = "tournament gangster"
|
||||
|
||||
uniform = /obj/item/clothing/under/rank/det
|
||||
suit = /obj/item/clothing/suit/det_suit
|
||||
glasses = /obj/item/clothing/glasses/thermal/monocle
|
||||
head = /obj/item/clothing/head/det_hat
|
||||
r_hand = /obj/item/weapon/gun/projectile
|
||||
l_hand = null
|
||||
r_pocket = /obj/item/ammo_box/c10mm
|
||||
|
||||
/datum/outfit/tournament/janitor
|
||||
name = "tournament janitor"
|
||||
|
||||
uniform = /obj/item/clothing/under/rank/janitor
|
||||
back = /obj/item/weapon/storage/backpack
|
||||
suit = null
|
||||
head = null
|
||||
r_hand = /obj/item/weapon/mop
|
||||
l_hand = /obj/item/weapon/reagent_containers/glass/bucket
|
||||
r_pocket = /obj/item/weapon/grenade/chem_grenade/cleaner
|
||||
l_pocket = /obj/item/weapon/grenade/chem_grenade/cleaner
|
||||
backpack_contents = list(/obj/item/stack/tile/plasteel=6)
|
||||
|
||||
/datum/outfit/tournament/janitor/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
var/obj/item/weapon/reagent_containers/glass/bucket/bucket = H.l_hand
|
||||
bucket.reagents.add_reagent("water",70)
|
||||
|
||||
/datum/outfit/laser_tag
|
||||
name = "Laser Tag Red"
|
||||
|
||||
uniform = /obj/item/clothing/under/color/red
|
||||
shoes = /obj/item/clothing/shoes/sneakers/red
|
||||
head = /obj/item/clothing/head/helmet/redtaghelm
|
||||
gloves = /obj/item/clothing/gloves/color/red
|
||||
ears = /obj/item/device/radio/headset
|
||||
suit = /obj/item/clothing/suit/redtag
|
||||
back = /obj/item/weapon/storage/backpack
|
||||
suit_store = /obj/item/weapon/gun/energy/laser/redtag
|
||||
backpack_contents = list(/obj/item/weapon/storage/box=1)
|
||||
|
||||
/datum/outfit/laser_tag/blue
|
||||
name = "Laser Tag Blue"
|
||||
uniform = /obj/item/clothing/under/color/blue
|
||||
shoes = /obj/item/clothing/shoes/sneakers/blue
|
||||
head = /obj/item/clothing/head/helmet/bluetaghelm
|
||||
gloves = /obj/item/clothing/gloves/color/blue
|
||||
suit = /obj/item/clothing/suit/bluetag
|
||||
suit_store = /obj/item/weapon/gun/energy/laser/bluetag
|
||||
|
||||
/datum/outfit/pirate
|
||||
name = "Pirate"
|
||||
|
||||
uniform = /obj/item/clothing/under/pirate
|
||||
shoes = /obj/item/clothing/shoes/sneakers/brown
|
||||
head = /obj/item/clothing/head/bandana
|
||||
glasses = /obj/item/clothing/glasses/eyepatch
|
||||
r_hand = /obj/item/weapon/melee/energy/sword/pirate
|
||||
|
||||
/datum/outfit/pirate/space
|
||||
name = "Space Pirate"
|
||||
|
||||
suit = /obj/item/clothing/suit/space/pirate
|
||||
head = /obj/item/clothing/head/helmet/space/pirate
|
||||
|
||||
/datum/outfit/tunnel_clown
|
||||
name = "Tunnel Clown"
|
||||
|
||||
uniform = /obj/item/clothing/under/rank/clown
|
||||
shoes = /obj/item/clothing/shoes/clown_shoes
|
||||
gloves = /obj/item/clothing/gloves/color/black
|
||||
mask = /obj/item/clothing/mask/gas/clown_hat
|
||||
ears = /obj/item/device/radio/headset
|
||||
glasses = /obj/item/clothing/glasses/thermal/monocle
|
||||
suit = /obj/item/clothing/suit/hooded/chaplain_hoodie
|
||||
l_pocket = /obj/item/weapon/reagent_containers/food/snacks/grown/banana
|
||||
r_pocket = /obj/item/weapon/bikehorn
|
||||
id = /obj/item/weapon/card/id
|
||||
r_hand = /obj/item/weapon/twohanded/fireaxe
|
||||
|
||||
/datum/outfit/tunnel_clown/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
var/obj/item/weapon/card/id/W = H.wear_id
|
||||
W.access = get_all_accesses()
|
||||
W.assignment = "Tunnel Clown!"
|
||||
W.registered_name = H.real_name
|
||||
W.update_label(H.real_name)
|
||||
|
||||
/datum/outfit/psycho
|
||||
name = "Masked Killer"
|
||||
|
||||
uniform = /obj/item/clothing/under/overalls
|
||||
shoes = /obj/item/clothing/shoes/sneakers/white
|
||||
gloves = /obj/item/clothing/gloves/color/latex
|
||||
mask = /obj/item/clothing/mask/surgical
|
||||
head = /obj/item/clothing/head/welding
|
||||
ears = /obj/item/device/radio/headset
|
||||
glasses = /obj/item/clothing/glasses/thermal/monocle
|
||||
suit = /obj/item/clothing/suit/apron
|
||||
l_pocket = /obj/item/weapon/kitchen/knife
|
||||
r_pocket = /obj/item/weapon/scalpel
|
||||
r_hand = /obj/item/weapon/twohanded/fireaxe
|
||||
|
||||
/datum/outfit/psycho/post_equip(mob/living/carbon/human/H)
|
||||
for(var/obj/item/carried_item in H.contents)
|
||||
if(!istype(carried_item, /obj/item/weapon/implant))//If it's not an implant.
|
||||
carried_item.add_mob_blood(H)//Oh yes, there will be blood...
|
||||
H.regenerate_icons()
|
||||
|
||||
/datum/outfit/assassin
|
||||
name = "Assassin"
|
||||
|
||||
uniform = /obj/item/clothing/under/suit_jacket
|
||||
shoes = /obj/item/clothing/shoes/sneakers/black
|
||||
gloves = /obj/item/clothing/gloves/color/black
|
||||
ears = /obj/item/device/radio/headset
|
||||
glasses = /obj/item/clothing/glasses/sunglasses
|
||||
l_pocket = /obj/item/weapon/melee/energy/sword/saber
|
||||
l_hand = /obj/item/weapon/storage/secure/briefcase
|
||||
id = /obj/item/weapon/card/id/syndicate
|
||||
belt = /obj/item/device/pda/heads
|
||||
|
||||
/datum/outfit/assassin/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
var/obj/item/clothing/under/U = H.w_uniform
|
||||
U.attachTie(new /obj/item/clothing/tie/waistcoat(H))
|
||||
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
//Could use a type
|
||||
var/obj/item/weapon/storage/secure/briefcase/sec_briefcase = H.l_hand
|
||||
for(var/obj/item/briefcase_item in sec_briefcase)
|
||||
qdel(briefcase_item)
|
||||
for(var/i=3, i>0, i--)
|
||||
sec_briefcase.handle_item_insertion(new /obj/item/stack/spacecash/c1000,1)
|
||||
sec_briefcase.handle_item_insertion(new /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow,1)
|
||||
sec_briefcase.handle_item_insertion(new /obj/item/weapon/gun/projectile/revolver/mateba,1)
|
||||
sec_briefcase.handle_item_insertion(new /obj/item/ammo_box/a357,1)
|
||||
sec_briefcase.handle_item_insertion(new /obj/item/weapon/grenade/plastic/x4,1)
|
||||
|
||||
var/obj/item/device/pda/heads/pda = H.belt
|
||||
pda.owner = H.real_name
|
||||
pda.ownjob = "Reaper"
|
||||
pda.update_label()
|
||||
|
||||
var/obj/item/weapon/card/id/syndicate/W = H.wear_id
|
||||
W.access = get_all_accesses()
|
||||
W.assignment = "Reaper"
|
||||
W.registered_name = H.real_name
|
||||
W.update_label(H.real_name)
|
||||
|
||||
/datum/outfit/centcom_commander
|
||||
name = "Centcom Commander"
|
||||
|
||||
uniform = /obj/item/clothing/under/rank/centcom_commander
|
||||
suit = /obj/item/clothing/suit/armor/bulletproof
|
||||
shoes = /obj/item/clothing/shoes/combat/swat
|
||||
gloves = /obj/item/clothing/gloves/combat
|
||||
ears = /obj/item/device/radio/headset/headset_cent/commander
|
||||
glasses = /obj/item/clothing/glasses/eyepatch
|
||||
mask = /obj/item/clothing/mask/cigarette/cigar/cohiba
|
||||
head = /obj/item/clothing/head/centhat
|
||||
belt = /obj/item/weapon/gun/projectile/revolver/mateba
|
||||
r_pocket = /obj/item/weapon/lighter
|
||||
l_pocket = /obj/item/ammo_box/a357
|
||||
back = /obj/item/weapon/storage/backpack/satchel
|
||||
id = /obj/item/weapon/card/id
|
||||
|
||||
/datum/outfit/centcom_commander/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
var/obj/item/weapon/card/id/W = H.wear_id
|
||||
W.icon_state = "centcom"
|
||||
W.access = get_all_accesses()
|
||||
W.access += get_centcom_access("Centcom Commander")
|
||||
W.assignment = "Centcom Commander"
|
||||
W.registered_name = H.real_name
|
||||
W.update_label()
|
||||
|
||||
/datum/outfit/spec_ops
|
||||
name = "Special Ops Officer"
|
||||
|
||||
uniform = /obj/item/clothing/under/syndicate
|
||||
suit = /obj/item/clothing/suit/space/officer
|
||||
shoes = /obj/item/clothing/shoes/combat/swat
|
||||
gloves = /obj/item/clothing/gloves/combat
|
||||
glasses = /obj/item/clothing/glasses/thermal/eyepatch
|
||||
ears = /obj/item/device/radio/headset/headset_cent/commander
|
||||
mask = /obj/item/clothing/mask/cigarette/cigar/havana
|
||||
head = /obj/item/clothing/head/helmet/space/beret
|
||||
belt = /obj/item/weapon/gun/energy/pulse/pistol/m1911
|
||||
r_pocket = /obj/item/weapon/lighter
|
||||
back = /obj/item/weapon/storage/backpack/satchel
|
||||
id = /obj/item/weapon/card/id
|
||||
|
||||
/datum/outfit/spec_ops/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
var/obj/item/weapon/card/id/W = H.wear_id
|
||||
W.icon_state = "centcom"
|
||||
W.access = get_all_accesses()
|
||||
W.access += get_centcom_access("Special Ops Officer")
|
||||
W.assignment = "Special Ops Officer"
|
||||
W.registered_name = H.real_name
|
||||
W.update_label()
|
||||
|
||||
var/obj/item/device/radio/headset/R = H.ears
|
||||
R.set_frequency(CENTCOM_FREQ)
|
||||
R.freqlock = 1
|
||||
|
||||
/datum/outfit/wizard
|
||||
name = "Blue Wizard"
|
||||
|
||||
uniform = /obj/item/clothing/under/color/lightpurple
|
||||
suit = /obj/item/clothing/suit/wizrobe
|
||||
shoes = /obj/item/clothing/shoes/sandal
|
||||
ears = /obj/item/device/radio/headset
|
||||
head = /obj/item/clothing/head/wizard
|
||||
r_pocket = /obj/item/weapon/teleportation_scroll
|
||||
r_hand = /obj/item/weapon/spellbook
|
||||
l_hand = /obj/item/weapon/staff
|
||||
back = /obj/item/weapon/storage/backpack
|
||||
backpack_contents = list(/obj/item/weapon/storage/box=1)
|
||||
|
||||
/datum/outfit/wizard/red
|
||||
name = "Red Wizard"
|
||||
|
||||
suit = /obj/item/clothing/suit/wizrobe/red
|
||||
head = /obj/item/clothing/head/wizard/red
|
||||
|
||||
/datum/outfit/wizard/weeb
|
||||
name = "Marisa Wizard"
|
||||
|
||||
suit = /obj/item/clothing/suit/wizrobe/marisa
|
||||
shoes = /obj/item/clothing/shoes/sandal/marisa
|
||||
head = /obj/item/clothing/head/wizard/marisa
|
||||
|
||||
/datum/outfit/soviet
|
||||
name = "Soviet Admiral"
|
||||
|
||||
uniform = /obj/item/clothing/under/soviet
|
||||
head = /obj/item/clothing/head/hgpiratecap
|
||||
shoes = /obj/item/clothing/shoes/combat
|
||||
gloves = /obj/item/clothing/gloves/combat
|
||||
ears = /obj/item/device/radio/headset/headset_cent
|
||||
glasses = /obj/item/clothing/glasses/thermal/eyepatch
|
||||
suit = /obj/item/clothing/suit/hgpirate
|
||||
back = /obj/item/weapon/storage/backpack/satchel
|
||||
belt = /obj/item/weapon/gun/projectile/revolver/mateba
|
||||
|
||||
id = /obj/item/weapon/card/id
|
||||
|
||||
/datum/outfit/soviet/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
var/obj/item/weapon/card/id/W = H.wear_id
|
||||
W.icon_state = "centcom"
|
||||
W.access = get_all_accesses()
|
||||
W.access += get_centcom_access("Admiral")
|
||||
W.assignment = "Admiral"
|
||||
W.registered_name = H.real_name
|
||||
W.update_label()
|
||||
|
||||
/datum/outfit/mobster
|
||||
name = "Mobster"
|
||||
|
||||
uniform = /obj/item/clothing/under/suit_jacket/really_black
|
||||
head = /obj/item/clothing/head/fedora
|
||||
shoes = /obj/item/clothing/shoes/laceup
|
||||
gloves = /obj/item/clothing/gloves/color/black
|
||||
ears = /obj/item/device/radio/headset
|
||||
glasses = /obj/item/clothing/glasses/sunglasses
|
||||
r_hand = /obj/item/weapon/gun/projectile/automatic/tommygun
|
||||
id = /obj/item/weapon/card/id
|
||||
|
||||
/datum/outfit/mobster/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
var/obj/item/weapon/card/id/W = H.wear_id
|
||||
W.assignment = "Assistant"
|
||||
W.registered_name = H.real_name
|
||||
W.update_label()
|
||||
|
||||
/datum/outfit/plasmaman
|
||||
name = "Plasmaman"
|
||||
|
||||
head = /obj/item/clothing/head/helmet/space/plasmaman
|
||||
uniform = /obj/item/clothing/under/plasmaman
|
||||
r_hand= /obj/item/weapon/tank/internals/plasmaman/belt/full
|
||||
mask = /obj/item/clothing/mask/breath
|
||||
|
||||
/datum/outfit/death_commando
|
||||
name = "Death Commando"
|
||||
|
||||
uniform = /obj/item/clothing/under/color/green
|
||||
suit = /obj/item/clothing/suit/space/hardsuit/deathsquad
|
||||
shoes = /obj/item/clothing/shoes/combat/swat
|
||||
gloves = /obj/item/clothing/gloves/combat
|
||||
mask = /obj/item/clothing/mask/gas/sechailer/swat
|
||||
glasses = /obj/item/clothing/glasses/hud/toggle/thermal
|
||||
back = /obj/item/weapon/storage/backpack/security
|
||||
l_pocket = /obj/item/weapon/melee/energy/sword/saber
|
||||
r_pocket = /obj/item/weapon/shield/energy
|
||||
suit_store = /obj/item/weapon/tank/internals/emergency_oxygen
|
||||
belt = /obj/item/weapon/gun/projectile/revolver/mateba
|
||||
r_hand = /obj/item/weapon/gun/energy/pulse/loyalpin
|
||||
id = /obj/item/weapon/card/id
|
||||
ears = /obj/item/device/radio/headset/headset_cent/alt
|
||||
|
||||
backpack_contents = list(/obj/item/weapon/storage/box=1,\
|
||||
/obj/item/ammo_box/a357=1,\
|
||||
/obj/item/weapon/storage/firstaid/regular=1,\
|
||||
/obj/item/weapon/storage/box/flashbangs=1,\
|
||||
/obj/item/device/flashlight=1,\
|
||||
/obj/item/weapon/grenade/plastic/x4=1)
|
||||
|
||||
/datum/outfit/death_commando/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
var/obj/item/device/radio/R = H.ears
|
||||
R.set_frequency(CENTCOM_FREQ)
|
||||
R.freqlock = 1
|
||||
|
||||
var/obj/item/weapon/implant/mindshield/L = new/obj/item/weapon/implant/mindshield(H)//Here you go Deuryn
|
||||
L.imp_in = H
|
||||
L.implanted = 1
|
||||
H.sec_hud_set_implants()
|
||||
|
||||
|
||||
var/obj/item/weapon/card/id/W = H.wear_id
|
||||
W.icon_state = "centcom"
|
||||
W.access = get_all_accesses()//They get full station access.
|
||||
W.access += get_centcom_access("Death Commando")//Let's add their alloted Centcom access.
|
||||
W.assignment = "Death Commando"
|
||||
W.registered_name = H.real_name
|
||||
W.update_label(W.registered_name, W.assignment)
|
||||
|
||||
/datum/outfit/death_commando/officer
|
||||
name = "Death Commando Officer"
|
||||
head = /obj/item/clothing/head/helmet/space/beret
|
||||
|
||||
/datum/outfit/chrono_agent
|
||||
name = "Timeline Eradication Agent"
|
||||
uniform = /obj/item/clothing/under/color/white
|
||||
suit = /obj/item/clothing/suit/space/chronos
|
||||
back = /obj/item/weapon/chrono_eraser
|
||||
head = /obj/item/clothing/head/helmet/space/chronos
|
||||
mask = /obj/item/clothing/mask/breath
|
||||
suit_store = /obj/item/weapon/tank/internals/oxygen
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,80 @@
|
||||
//banana flavored chaos and horror ahead
|
||||
|
||||
/obj/item/clothing/shoes/clown_shoes/banana_shoes
|
||||
name = "mk-honk prototype shoes"
|
||||
desc = "Lost prototype of advanced clown tech. Powered by bananium, these shoes leave a trail of chaos in their wake."
|
||||
icon_state = "clown_prototype_off"
|
||||
var/on = 0
|
||||
var/datum/material_container/bananium
|
||||
actions_types = list(/datum/action/item_action/toggle)
|
||||
|
||||
/obj/item/clothing/shoes/clown_shoes/banana_shoes/New()
|
||||
..()
|
||||
bananium = new/datum/material_container(src,list(MAT_BANANIUM),200000)
|
||||
|
||||
/obj/item/clothing/shoes/clown_shoes/banana_shoes/step_action()
|
||||
if(on)
|
||||
if(footstep > 1)//honks when its on
|
||||
playsound(src, "sound/items/bikehorn.ogg", 75, 1)
|
||||
footstep = 0
|
||||
else
|
||||
footstep++
|
||||
|
||||
new/obj/item/weapon/grown/bananapeel/specialpeel(get_step(src,turn(usr.dir, 180))) //honk
|
||||
bananium.use_amount_type(100, MAT_BANANIUM)
|
||||
if(bananium.amount(MAT_BANANIUM) < 100)
|
||||
on = !on
|
||||
flags &= ~NOSLIP
|
||||
update_icon()
|
||||
loc << "<span class='warning'>You ran out of bananium!</span>"
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/item/clothing/shoes/clown_shoes/banana_shoes/attack_self(mob/user)
|
||||
var/sheet_amount = bananium.retrieve_all()
|
||||
if(sheet_amount)
|
||||
user << "<span class='notice'>You retrieve [sheet_amount] sheets of bananium from the prototype shoes.</span>"
|
||||
else
|
||||
user << "<span class='notice'>You cannot retrieve any bananium from the prototype shoes.</span>"
|
||||
|
||||
/obj/item/clothing/shoes/clown_shoes/banana_shoes/attackby(obj/item/O, mob/user, params)
|
||||
if(!bananium.get_item_material_amount(O))
|
||||
user << "<span class='notice'>This item has no bananium!</span>"
|
||||
return
|
||||
if(!user.unEquip(O))
|
||||
user << "<span class='notice'>You can't drop [O]!</span>"
|
||||
return
|
||||
|
||||
var/bananium_amount = bananium.insert_item(O)
|
||||
if(bananium_amount)
|
||||
user << "<span class='notice'>You insert [O] into the prototype shoes.</span>"
|
||||
qdel(O)
|
||||
else
|
||||
user << "<span class='notice'>You are unable to insert more bananium!</span>"
|
||||
|
||||
/obj/item/clothing/shoes/clown_shoes/banana_shoes/examine(mob/user)
|
||||
..()
|
||||
var/ban_amt = bananium.amount(MAT_BANANIUM)
|
||||
user << "<span class='notice'>The shoes are [on ? "enabled" : "disabled"]. There is [ban_amt ? ban_amt : "no"] bananium left.</span>"
|
||||
|
||||
/obj/item/clothing/shoes/clown_shoes/banana_shoes/ui_action_click(mob/user)
|
||||
if(bananium.amount(MAT_BANANIUM))
|
||||
on = !on
|
||||
update_icon()
|
||||
user << "<span class='notice'>You [on ? "activate" : "deactivate"] the prototype shoes.</span>"
|
||||
if(on)
|
||||
flags |= NOSLIP
|
||||
else
|
||||
flags &= ~NOSLIP
|
||||
else
|
||||
user << "<span class='warning'>You need bananium to turn the prototype shoes on!</span>"
|
||||
|
||||
/obj/item/clothing/shoes/clown_shoes/banana_shoes/update_icon()
|
||||
if(on)
|
||||
icon_state = "clown_prototype_on"
|
||||
else
|
||||
icon_state = "clown_prototype_off"
|
||||
usr.update_inv_shoes()
|
||||
for(var/X in actions)
|
||||
var/datum/action/A = X
|
||||
A.UpdateButtonIcon()
|
||||
@@ -0,0 +1,116 @@
|
||||
/obj/item/clothing/shoes/sneakers
|
||||
|
||||
/obj/item/clothing/shoes/sneakers/black
|
||||
name = "black shoes"
|
||||
icon_state = "black"
|
||||
item_color = "black"
|
||||
desc = "A pair of black shoes."
|
||||
|
||||
cold_protection = FEET
|
||||
min_cold_protection_temperature = SHOES_MIN_TEMP_PROTECT
|
||||
heat_protection = FEET
|
||||
max_heat_protection_temperature = SHOES_MAX_TEMP_PROTECT
|
||||
|
||||
/obj/item/clothing/shoes/sneakers/black/redcoat
|
||||
item_color = "redcoat" //Exists for washing machines. Is not different from black shoes in any way.
|
||||
|
||||
/obj/item/clothing/shoes/sneakers/brown
|
||||
name = "brown shoes"
|
||||
desc = "A pair of brown shoes."
|
||||
icon_state = "brown"
|
||||
item_color = "brown"
|
||||
|
||||
/obj/item/clothing/shoes/sneakers/brown/captain
|
||||
item_color = "captain" //Exists for washing machines. Is not different from brown shoes in any way.
|
||||
|
||||
/obj/item/clothing/shoes/sneakers/brown/hop
|
||||
item_color = "hop" //Exists for washing machines. Is not different from brown shoes in any way.
|
||||
|
||||
/obj/item/clothing/shoes/sneakers/brown/ce
|
||||
item_color = "chief" //Exists for washing machines. Is not different from brown shoes in any way.
|
||||
|
||||
/obj/item/clothing/shoes/sneakers/brown/rd
|
||||
item_color = "director" //Exists for washing machines. Is not different from brown shoes in any way.
|
||||
|
||||
/obj/item/clothing/shoes/sneakers/brown/cmo
|
||||
item_color = "medical" //Exists for washing machines. Is not different from brown shoes in any way.
|
||||
|
||||
/obj/item/clothing/shoes/sneakers/brown/qm
|
||||
item_color = "cargo" //Exists for washing machines. Is not different from brown shoes in any way.
|
||||
|
||||
/obj/item/clothing/shoes/sneakers/blue
|
||||
name = "blue shoes"
|
||||
icon_state = "blue"
|
||||
item_color = "blue"
|
||||
|
||||
/obj/item/clothing/shoes/sneakers/green
|
||||
name = "green shoes"
|
||||
icon_state = "green"
|
||||
item_color = "green"
|
||||
|
||||
/obj/item/clothing/shoes/sneakers/yellow
|
||||
name = "yellow shoes"
|
||||
icon_state = "yellow"
|
||||
item_color = "yellow"
|
||||
|
||||
/obj/item/clothing/shoes/sneakers/purple
|
||||
name = "purple shoes"
|
||||
icon_state = "purple"
|
||||
item_color = "purple"
|
||||
|
||||
/obj/item/clothing/shoes/sneakers/brown
|
||||
name = "brown shoes"
|
||||
icon_state = "brown"
|
||||
item_color = "brown"
|
||||
|
||||
/obj/item/clothing/shoes/sneakers/red
|
||||
name = "red shoes"
|
||||
desc = "Stylish red shoes."
|
||||
icon_state = "red"
|
||||
item_color = "red"
|
||||
|
||||
/obj/item/clothing/shoes/sneakers/white
|
||||
name = "white shoes"
|
||||
icon_state = "white"
|
||||
permeability_coefficient = 0.01
|
||||
item_color = "white"
|
||||
|
||||
/obj/item/clothing/shoes/sneakers/rainbow
|
||||
name = "rainbow shoes"
|
||||
desc = "Very gay shoes."
|
||||
icon_state = "rain_bow"
|
||||
item_color = "rainbow"
|
||||
|
||||
/obj/item/clothing/shoes/sneakers/orange
|
||||
name = "orange shoes"
|
||||
icon_state = "orange"
|
||||
item_color = "orange"
|
||||
|
||||
/obj/item/clothing/shoes/sneakers/orange/attack_self(mob/user)
|
||||
if (src.chained)
|
||||
src.chained = null
|
||||
src.slowdown = SHOES_SLOWDOWN
|
||||
new /obj/item/weapon/restraints/handcuffs( user.loc )
|
||||
src.icon_state = "orange"
|
||||
return
|
||||
|
||||
/obj/item/clothing/shoes/sneakers/orange/attackby(obj/H, loc, params)
|
||||
..()
|
||||
if ((istype(H, /obj/item/weapon/restraints/handcuffs) && !( src.chained )))
|
||||
//H = null
|
||||
if (src.icon_state != "orange") return
|
||||
if(istype(H, /obj/item/weapon/restraints/handcuffs/cable))
|
||||
return 0
|
||||
qdel(H)
|
||||
src.chained = 1
|
||||
src.slowdown = 15
|
||||
src.icon_state = "orange1"
|
||||
return
|
||||
|
||||
/obj/item/clothing/shoes/sneakers/orange/attack_hand(mob/user)
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/C = user
|
||||
if(C.shoes == src && src.chained == 1)
|
||||
user << "<span class='warning'>You need help taking these off!</span>"
|
||||
return
|
||||
..()
|
||||
@@ -0,0 +1,60 @@
|
||||
/obj/item/clothing/shoes/magboots
|
||||
desc = "Magnetic boots, often used during extravehicular activity to ensure the user remains safely attached to the vehicle."
|
||||
name = "magboots"
|
||||
icon_state = "magboots0"
|
||||
var/magboot_state = "magboots"
|
||||
var/magpulse = 0
|
||||
var/slowdown_active = 2
|
||||
actions_types = list(/datum/action/item_action/toggle)
|
||||
strip_delay = 70
|
||||
put_on_delay = 70
|
||||
burn_state = FIRE_PROOF
|
||||
origin_tech = "materials=3;magnets=4;engineering=4"
|
||||
|
||||
/obj/item/clothing/shoes/magboots/verb/toggle()
|
||||
set name = "Toggle Magboots"
|
||||
set category = "Object"
|
||||
set src in usr
|
||||
if(!can_use(usr))
|
||||
return
|
||||
attack_self(usr)
|
||||
|
||||
|
||||
/obj/item/clothing/shoes/magboots/attack_self(mob/user)
|
||||
if(src.magpulse)
|
||||
src.flags &= ~NOSLIP
|
||||
src.slowdown = SHOES_SLOWDOWN
|
||||
else
|
||||
src.flags |= NOSLIP
|
||||
src.slowdown = slowdown_active
|
||||
magpulse = !magpulse
|
||||
icon_state = "[magboot_state][magpulse]"
|
||||
user << "<span class='notice'>You [magpulse ? "enable" : "disable"] the mag-pulse traction system.</span>"
|
||||
user.update_inv_shoes() //so our mob-overlays update
|
||||
user.update_gravity(user.mob_has_gravity())
|
||||
for(var/X in actions)
|
||||
var/datum/action/A = X
|
||||
A.UpdateButtonIcon()
|
||||
|
||||
/obj/item/clothing/shoes/magboots/negates_gravity()
|
||||
return flags & NOSLIP
|
||||
|
||||
/obj/item/clothing/shoes/magboots/examine(mob/user)
|
||||
..()
|
||||
user << "Its mag-pulse traction system appears to be [magpulse ? "enabled" : "disabled"]."
|
||||
|
||||
|
||||
/obj/item/clothing/shoes/magboots/advance
|
||||
desc = "Advanced magnetic boots that have a lighter magnetic pull, placing less burden on the wearer."
|
||||
name = "advanced magboots"
|
||||
icon_state = "advmag0"
|
||||
magboot_state = "advmag"
|
||||
slowdown_active = SHOES_SLOWDOWN
|
||||
origin_tech = null
|
||||
|
||||
/obj/item/clothing/shoes/magboots/syndie
|
||||
desc = "Reverse-engineered magnetic boots that have a heavy magnetic pull. Property of Gorlex Marauders."
|
||||
name = "blood-red magboots"
|
||||
icon_state = "syndiemag0"
|
||||
magboot_state = "syndiemag"
|
||||
origin_tech = "magnets=4;syndicate=2"
|
||||
@@ -0,0 +1,164 @@
|
||||
/obj/item/clothing/shoes/proc/step_action() //this was made to rewrite clown shoes squeaking
|
||||
|
||||
/obj/item/clothing/shoes/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is bashing their own head in with [src]! Ain't that a kick in the head?</span>")
|
||||
for(var/i = 0, i < 3, i++)
|
||||
sleep(3)
|
||||
playsound(user, 'sound/weapons/genhit2.ogg', 50, 1)
|
||||
return(BRUTELOSS)
|
||||
|
||||
/obj/item/clothing/shoes/sneakers/mime
|
||||
name = "mime shoes"
|
||||
icon_state = "mime"
|
||||
item_color = "mime"
|
||||
|
||||
/obj/item/clothing/shoes/combat //basic syndicate combat boots for nuke ops and mob corpses
|
||||
name = "combat boots"
|
||||
desc = "High speed, low drag combat boots."
|
||||
icon_state = "jackboots"
|
||||
item_state = "jackboots"
|
||||
armor = list(melee = 25, bullet = 25, laser = 25, energy = 25, bomb = 50, bio = 10, rad = 0)
|
||||
strip_delay = 70
|
||||
burn_state = FIRE_PROOF
|
||||
can_hold_items = 1
|
||||
|
||||
/obj/item/clothing/shoes/combat/swat //overpowered boots for death squads
|
||||
name = "\improper SWAT boots"
|
||||
desc = "High speed, no drag combat boots."
|
||||
permeability_coefficient = 0.01
|
||||
flags = NOSLIP
|
||||
armor = list(melee = 40, bullet = 30, laser = 25, energy = 25, bomb = 50, bio = 30, rad = 30)
|
||||
|
||||
/obj/item/clothing/shoes/sandal
|
||||
desc = "A pair of rather plain, wooden sandals."
|
||||
name = "sandals"
|
||||
icon_state = "wizard"
|
||||
strip_delay = 50
|
||||
put_on_delay = 50
|
||||
unacidable = 1
|
||||
|
||||
/obj/item/clothing/shoes/sandal/marisa
|
||||
desc = "A pair of magic black shoes."
|
||||
name = "magic shoes"
|
||||
icon_state = "black"
|
||||
|
||||
/obj/item/clothing/shoes/galoshes
|
||||
desc = "A pair of yellow rubber boots, designed to prevent slipping on wet surfaces."
|
||||
name = "galoshes"
|
||||
icon_state = "galoshes"
|
||||
permeability_coefficient = 0.05
|
||||
flags = NOSLIP
|
||||
slowdown = SHOES_SLOWDOWN+1
|
||||
strip_delay = 50
|
||||
put_on_delay = 50
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/shoes/galoshes/dry
|
||||
name = "absorbent galoshes"
|
||||
desc = "A pair of orange rubber boots, designed to prevent slipping on wet surfaces while also drying them."
|
||||
icon_state = "galoshes_dry"
|
||||
|
||||
/obj/item/clothing/shoes/galoshes/dry/step_action()
|
||||
var/turf/open/t_loc = get_turf(src)
|
||||
if(istype(t_loc) && t_loc.wet)
|
||||
t_loc.MakeDry(TURF_WET_WATER)
|
||||
t_loc.wet_time = 0
|
||||
|
||||
/obj/item/clothing/shoes/clown_shoes
|
||||
desc = "The prankster's standard-issue clowning shoes. Damn, they're huge!"
|
||||
name = "clown shoes"
|
||||
icon_state = "clown"
|
||||
item_state = "clown_shoes"
|
||||
slowdown = SHOES_SLOWDOWN+1
|
||||
item_color = "clown"
|
||||
var/footstep = 1 //used for squeeks whilst walking
|
||||
can_hold_items = 1
|
||||
valid_held_items = list(/obj/item/weapon/bikehorn)
|
||||
|
||||
/obj/item/clothing/shoes/clown_shoes/step_action()
|
||||
if(footstep > 1)
|
||||
playsound(src, "clownstep", 50, 1)
|
||||
footstep = 0
|
||||
else
|
||||
footstep++
|
||||
|
||||
/obj/item/clothing/shoes/jackboots
|
||||
name = "jackboots"
|
||||
desc = "Nanotrasen-issue Security combat boots for combat scenarios or combat situations. All combat, all the time."
|
||||
icon_state = "jackboots"
|
||||
item_state = "jackboots"
|
||||
item_color = "hosred"
|
||||
strip_delay = 50
|
||||
put_on_delay = 50
|
||||
burn_state = FIRE_PROOF
|
||||
can_hold_items = 1
|
||||
|
||||
/obj/item/clothing/shoes/jackboots/fast
|
||||
slowdown = -1
|
||||
|
||||
/obj/item/clothing/shoes/winterboots
|
||||
name = "winter boots"
|
||||
desc = "Boots lined with 'synthetic' animal fur."
|
||||
icon_state = "winterboots"
|
||||
item_state = "winterboots"
|
||||
cold_protection = FEET|LEGS
|
||||
min_cold_protection_temperature = SHOES_MIN_TEMP_PROTECT
|
||||
heat_protection = FEET|LEGS
|
||||
max_heat_protection_temperature = SHOES_MAX_TEMP_PROTECT
|
||||
can_hold_items = 1
|
||||
|
||||
/obj/item/clothing/shoes/workboots
|
||||
name = "work boots"
|
||||
desc = "Nanotrasen-issue Engineering lace-up work boots for the especially blue-collar."
|
||||
icon_state = "workboots"
|
||||
item_state = "jackboots"
|
||||
strip_delay = 40
|
||||
put_on_delay = 40
|
||||
can_hold_items = 1
|
||||
|
||||
/obj/item/clothing/shoes/workboots/mining
|
||||
name = "mining boots"
|
||||
desc = "Steel-toed mining boots for mining in hazardous environments. Very good at keeping toes uncrushed."
|
||||
icon_state = "explorer"
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/shoes/cult
|
||||
name = "nar-sian invoker boots"
|
||||
desc = "A pair of boots worn by the followers of Nar-Sie."
|
||||
icon_state = "cult"
|
||||
item_state = "cult"
|
||||
item_color = "cult"
|
||||
cold_protection = FEET
|
||||
min_cold_protection_temperature = SHOES_MIN_TEMP_PROTECT
|
||||
heat_protection = FEET
|
||||
max_heat_protection_temperature = SHOES_MAX_TEMP_PROTECT
|
||||
|
||||
/obj/item/clothing/shoes/cult/alt
|
||||
name = "cultist boots"
|
||||
icon_state = "cultalt"
|
||||
|
||||
/obj/item/clothing/shoes/cyborg
|
||||
name = "cyborg boots"
|
||||
desc = "Shoes for a cyborg costume."
|
||||
icon_state = "boots"
|
||||
|
||||
/obj/item/clothing/shoes/laceup
|
||||
name = "laceup shoes"
|
||||
desc = "The height of fashion, and they're pre-polished!"
|
||||
icon_state = "laceups"
|
||||
put_on_delay = 50
|
||||
|
||||
/obj/item/clothing/shoes/roman
|
||||
name = "roman sandals"
|
||||
desc = "Sandals with buckled leather straps on it."
|
||||
icon_state = "roman"
|
||||
item_state = "roman"
|
||||
strip_delay = 100
|
||||
put_on_delay = 100
|
||||
|
||||
/obj/item/clothing/shoes/griffin
|
||||
name = "griffon boots"
|
||||
desc = "A pair of costume boots fashioned after bird talons."
|
||||
icon_state = "griffinboots"
|
||||
item_state = "griffinboots"
|
||||
can_hold_items = 1
|
||||
@@ -0,0 +1,341 @@
|
||||
/obj/item/clothing/head/helmet/space/chronos
|
||||
name = "Chronosuit Helmet"
|
||||
desc = "A white helmet with an opaque blue visor."
|
||||
icon_state = "chronohelmet"
|
||||
item_state = "chronohelmet"
|
||||
slowdown = 1
|
||||
armor = list(melee = 60, bullet = 30/*bullet through the visor*/, laser = 60, energy = 60, bomb = 30, bio = 90, rad = 90)
|
||||
var/obj/item/clothing/suit/space/chronos/suit = null
|
||||
|
||||
/obj/item/clothing/head/helmet/space/chronos/dropped()
|
||||
if(suit)
|
||||
suit.deactivate()
|
||||
..()
|
||||
|
||||
/obj/item/clothing/head/helmet/space/chronos/Destroy()
|
||||
dropped()
|
||||
return ..()
|
||||
|
||||
|
||||
/obj/item/clothing/suit/space/chronos
|
||||
name = "Chronosuit"
|
||||
desc = "An advanced spacesuit equipped with teleportation and anti-compression technology"
|
||||
icon_state = "chronosuit"
|
||||
item_state = "chronosuit"
|
||||
actions_types = list(/datum/action/item_action/toggle)
|
||||
armor = list(melee = 60, bullet = 60, laser = 60, energy = 60, bomb = 30, bio = 90, rad = 90)
|
||||
var/list/chronosafe_items = list(/obj/item/weapon/chrono_eraser, /obj/item/weapon/gun/energy/chrono_gun)
|
||||
var/hands_nodrop_states
|
||||
var/obj/item/clothing/head/helmet/space/chronos/helmet = null
|
||||
var/obj/effect/chronos_cam/camera = null
|
||||
var/atom/movable/overlay/phase_underlay = null
|
||||
var/datum/action/innate/chrono_teleport/teleport_now = new
|
||||
var/activating = 0
|
||||
var/activated = 0
|
||||
var/cooldowntime = 50 //deciseconds
|
||||
var/teleporting = 0
|
||||
|
||||
/obj/item/clothing/suit/space/chronos/New()
|
||||
..()
|
||||
teleport_now.chronosuit = src
|
||||
teleport_now.target = src
|
||||
|
||||
/obj/item/clothing/suit/space/chronos/proc/new_camera(mob/user)
|
||||
if(camera)
|
||||
qdel(camera)
|
||||
camera = new /obj/effect/chronos_cam(user)
|
||||
camera.holder = user
|
||||
camera.chronosuit = src
|
||||
user.remote_control = camera
|
||||
|
||||
/obj/item/clothing/suit/space/chronos/ui_action_click()
|
||||
if((cooldown <= world.time) && !teleporting && !activating)
|
||||
if(!activated)
|
||||
activate()
|
||||
else
|
||||
deactivate()
|
||||
|
||||
/obj/item/clothing/suit/space/chronos/dropped()
|
||||
if(activated)
|
||||
deactivate()
|
||||
..()
|
||||
|
||||
/obj/item/clothing/suit/space/chronos/Destroy()
|
||||
dropped()
|
||||
return ..()
|
||||
|
||||
/obj/item/clothing/suit/space/chronos/emp_act(severity)
|
||||
var/mob/living/carbon/human/user = src.loc
|
||||
switch(severity)
|
||||
if(1)
|
||||
if(activated && user && ishuman(user) && (user.wear_suit == src))
|
||||
user << "<span class='userdanger'>E:FATAL:RAM_READ_FAIL\nE:FATAL:STACK_EMPTY\nE:FATAL:READ_NULL_POINT\nE:FATAL:PWR_BUS_OVERLOAD</span>"
|
||||
deactivate(1, 1)
|
||||
|
||||
/obj/item/clothing/suit/space/chronos/proc/finish_chronowalk()
|
||||
var/mob/living/carbon/human/user = src.loc
|
||||
if(istype(user))
|
||||
user.SetStunned(0)
|
||||
user.next_move = 1
|
||||
user.alpha = 255
|
||||
user.color = "#ffffff"
|
||||
user.animate_movement = FORWARD_STEPS
|
||||
user.notransform = 0
|
||||
user.anchored = 0
|
||||
teleporting = 0
|
||||
if(user.l_hand && !(hands_nodrop_states & 1))
|
||||
user.l_hand.flags &= ~NODROP
|
||||
if(user.r_hand && !(hands_nodrop_states & 2))
|
||||
user.r_hand.flags &= ~NODROP
|
||||
if(phase_underlay && !qdeleted(phase_underlay))
|
||||
qdel(phase_underlay)
|
||||
phase_underlay = null
|
||||
if(camera)
|
||||
camera.remove_target_ui()
|
||||
camera.loc = user
|
||||
teleport_now.UpdateButtonIcon()
|
||||
|
||||
/obj/item/clothing/suit/space/chronos/proc/chronowalk(atom/location)
|
||||
var/mob/living/carbon/human/user = src.loc
|
||||
if(activated && !teleporting && user && istype(user) && location && user.loc && location.loc && user.wear_suit == src && user.stat == CONSCIOUS)
|
||||
teleporting = 1
|
||||
var/turf/from_turf = get_turf(user)
|
||||
var/turf/to_turf = get_turf(location)
|
||||
var/distance = cheap_hypotenuse(from_turf.x, from_turf.y, to_turf.x, to_turf.y)
|
||||
var/phase_in_ds = distance*2
|
||||
|
||||
if(camera)
|
||||
camera.remove_target_ui()
|
||||
|
||||
teleport_now.UpdateButtonIcon()
|
||||
|
||||
var/list/nonsafe_slots = list(slot_belt, slot_back, slot_l_hand, slot_r_hand)
|
||||
for(var/slot in nonsafe_slots)
|
||||
var/obj/item/slot_item = user.get_item_by_slot(slot)
|
||||
if(slot_item && !(slot_item.type in chronosafe_items) && user.unEquip(slot_item))
|
||||
user << "<span class='notice'>Your [slot_item.name] got left behind.</span>"
|
||||
|
||||
user.ExtinguishMob()
|
||||
if(user.buckled)
|
||||
user.buckled.unbuckle_mob(user,force=1)
|
||||
|
||||
phase_underlay = create_phase_underlay(user)
|
||||
|
||||
hands_nodrop_states = 0
|
||||
if(user.l_hand)
|
||||
hands_nodrop_states |= (user.l_hand.flags & NODROP) ? 1 : 0
|
||||
user.l_hand.flags |= NODROP
|
||||
if(user.r_hand)
|
||||
hands_nodrop_states |= (user.r_hand.flags & NODROP) ? 2 : 0
|
||||
user.r_hand.flags |= NODROP
|
||||
|
||||
user.animate_movement = NO_STEPS
|
||||
user.changeNext_move(8 + phase_in_ds)
|
||||
user.notransform = 1
|
||||
user.anchored = 1
|
||||
user.Stun(INFINITY)
|
||||
|
||||
animate(user, color = "#00ccee", time = 3)
|
||||
spawn(3)
|
||||
if(teleporting && activated && user && phase_underlay && !qdeleted(phase_underlay))
|
||||
animate(user, alpha = 0, time = 2)
|
||||
animate(phase_underlay, alpha = 255, time = 2)
|
||||
sleep(2)
|
||||
if(teleporting && activated && user && phase_underlay && !qdeleted(phase_underlay))
|
||||
phase_underlay.loc = to_turf
|
||||
user.loc = to_turf
|
||||
animate(user, alpha = 255, time = phase_in_ds)
|
||||
animate(phase_underlay, alpha = 0, time = phase_in_ds)
|
||||
sleep(phase_in_ds)
|
||||
if(teleporting && activated && phase_underlay && !qdeleted(phase_underlay))
|
||||
animate(user, color = "#ffffff", time = 3)
|
||||
sleep(3)
|
||||
if(teleporting && user && !qdeleted(user))
|
||||
user.loc = to_turf //this will cover if bad things happen before the teleport, yes it is redundant
|
||||
finish_chronowalk()
|
||||
|
||||
/obj/item/clothing/suit/space/chronos/proc/create_phase_underlay(var/mob/user)
|
||||
var/icon/user_icon = getFlatIcon(user)
|
||||
user_icon.Blend("#ffffff")
|
||||
var/atom/movable/overlay/phase = new(user.loc)
|
||||
phase.icon = user_icon
|
||||
phase.density = 1
|
||||
phase.anchored = 1
|
||||
phase.master = user
|
||||
phase.animate_movement = NO_STEPS
|
||||
phase.alpha = 0
|
||||
phase.mouse_opacity = 0
|
||||
phase.name = user.name
|
||||
phase.transform = user.transform
|
||||
phase.pixel_x = user.pixel_x
|
||||
phase.pixel_y = user.pixel_y
|
||||
return phase
|
||||
|
||||
/obj/item/clothing/suit/space/chronos/process()
|
||||
if(activated)
|
||||
var/mob/living/carbon/human/user = src.loc
|
||||
if(user && ishuman(user) && (user.wear_suit == src))
|
||||
if(camera && (user.remote_control == camera))
|
||||
if(!teleporting)
|
||||
if(camera.loc != user && ((camera.x != user.x) || (camera.y != user.y) || (camera.z != user.z)))
|
||||
if(camera.phase_time <= world.time)
|
||||
chronowalk(camera)
|
||||
else
|
||||
camera.remove_target_ui()
|
||||
else
|
||||
new_camera(user)
|
||||
else
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
|
||||
/obj/item/clothing/suit/space/chronos/proc/activate()
|
||||
if(!activating && !activated && !teleporting)
|
||||
activating = 1
|
||||
var/mob/living/carbon/human/user = src.loc
|
||||
if(user && ishuman(user))
|
||||
if(user.wear_suit == src)
|
||||
user << "\nChronosuitMK4 login: root"
|
||||
user << "Password:\n"
|
||||
user << "root@ChronosuitMK4# chronowalk4 --start\n"
|
||||
if(user.head && istype(user.head, /obj/item/clothing/head/helmet/space/chronos))
|
||||
user << "\[ <span style='color: #00ff00;'>ok</span> \] Mounting /dev/helmet"
|
||||
helmet = user.head
|
||||
helmet.flags |= NODROP
|
||||
helmet.suit = src
|
||||
src.flags |= NODROP
|
||||
user << "\[ <span style='color: #00ff00;'>ok</span> \] Starting brainwave scanner"
|
||||
user << "\[ <span style='color: #00ff00;'>ok</span> \] Starting ui display driver"
|
||||
user << "\[ <span style='color: #00ff00;'>ok</span> \] Initializing chronowalk4-view"
|
||||
new_camera(user)
|
||||
START_PROCESSING(SSobj, src)
|
||||
activated = 1
|
||||
else
|
||||
user << "\[ <span style='color: #ff0000;'>fail</span> \] Mounting /dev/helmet"
|
||||
user << "<span style='color: #ff0000;'><b>FATAL: </b>Unable to locate /dev/helmet. <b>Aborting...</b>"
|
||||
teleport_now.Grant(user)
|
||||
cooldown = world.time + cooldowntime
|
||||
activating = 0
|
||||
return 0
|
||||
|
||||
/obj/item/clothing/suit/space/chronos/proc/deactivate(force = 0, silent = 0)
|
||||
if(activated && (!teleporting || force))
|
||||
activating = 1
|
||||
var/mob/living/carbon/human/user = src.loc
|
||||
if(user && ishuman(user))
|
||||
if(user.wear_suit == src)
|
||||
if(!silent)
|
||||
user << "\nroot@ChronosuitMK4# chronowalk4 --stop\n"
|
||||
if(camera)
|
||||
if(!silent)
|
||||
user << "\[ <span style='color: #ff5500;'>ok</span> \] Sending TERM signal to chronowalk4-view" //yes I know they aren't a different color when shutting down, but they were too similar at a glance
|
||||
qdel(camera)
|
||||
if(helmet)
|
||||
if(!silent)
|
||||
user << "\[ <span style='color: #ff5500;'>ok</span> \] Stopping ui display driver"
|
||||
user << "\[ <span style='color: #ff5500;'>ok</span> \] Stopping brainwave scanner"
|
||||
user << "\[ <span style='color: #ff5500;'>ok</span> \] Unmounting /dev/helmet"
|
||||
helmet.flags &= ~NODROP
|
||||
helmet.suit = null
|
||||
helmet = null
|
||||
if(!silent)
|
||||
user << "logout"
|
||||
teleport_now.Remove(user)
|
||||
src.flags &= ~NODROP
|
||||
cooldown = world.time + cooldowntime * 1.5
|
||||
activated = 0
|
||||
activating = 0
|
||||
finish_chronowalk()
|
||||
if(teleporting && force)
|
||||
user.electrocute_act(35, src, safety = 1)
|
||||
|
||||
/obj/effect/chronos_cam
|
||||
name = "Chronosuit View"
|
||||
density = 0
|
||||
anchored = 1
|
||||
invisibility = INVISIBILITY_ABSTRACT
|
||||
opacity = 0
|
||||
mouse_opacity = 0
|
||||
var/mob/holder = null
|
||||
var/phase_time = 0
|
||||
var/phase_time_length = 3
|
||||
var/obj/screen/chronos_target/target_ui = null
|
||||
var/obj/item/clothing/suit/space/chronos/chronosuit
|
||||
|
||||
/obj/effect/chronos_cam/proc/create_target_ui()
|
||||
if(holder && holder.client && chronosuit)
|
||||
if(target_ui)
|
||||
remove_target_ui()
|
||||
target_ui = new(null, holder)
|
||||
holder.client.screen += target_ui
|
||||
|
||||
/obj/effect/chronos_cam/proc/remove_target_ui()
|
||||
if(target_ui)
|
||||
qdel(target_ui)
|
||||
target_ui = null
|
||||
|
||||
/obj/effect/chronos_cam/relaymove(var/mob/user, direction)
|
||||
if(holder)
|
||||
if(user == holder)
|
||||
if(loc == user)
|
||||
loc = get_turf(user)
|
||||
if(user.client && user.client.eye != src)
|
||||
src.loc = get_turf(user)
|
||||
user.reset_perspective(src)
|
||||
user.set_machine(src)
|
||||
var/atom/step = get_step(src, direction)
|
||||
if(step)
|
||||
if((step.x <= TRANSITIONEDGE) || (step.x >= (world.maxx - TRANSITIONEDGE - 1)) || (step.y <= TRANSITIONEDGE) || (step.y >= (world.maxy - TRANSITIONEDGE - 1)))
|
||||
if(!src.Move(step))
|
||||
src.loc = step
|
||||
else
|
||||
src.loc = step
|
||||
if((x == holder.x) && (y == holder.y) && (z == holder.z))
|
||||
remove_target_ui()
|
||||
loc = user
|
||||
else if(!target_ui)
|
||||
create_target_ui()
|
||||
phase_time = world.time + phase_time_length
|
||||
else
|
||||
qdel(src)
|
||||
|
||||
/obj/effect/chronos_cam/check_eye(mob/user)
|
||||
if(user != holder)
|
||||
user.unset_machine()
|
||||
|
||||
/obj/effect/chronos_cam/on_unset_machine(mob/user)
|
||||
user.reset_perspective(null)
|
||||
|
||||
/obj/effect/chronos_cam/Destroy()
|
||||
if(holder)
|
||||
if(holder.remote_control == src)
|
||||
holder.remote_control = null
|
||||
if(holder.client && (holder.client.eye == src))
|
||||
holder.unset_machine()
|
||||
return ..()
|
||||
|
||||
/obj/screen/chronos_target
|
||||
name = "target display"
|
||||
screen_loc = "CENTER,CENTER"
|
||||
color = "#ff3311"
|
||||
blend_mode = BLEND_SUBTRACT
|
||||
|
||||
/obj/screen/chronos_target/New(loc, var/mob/living/carbon/human/user)
|
||||
if(user)
|
||||
var/icon/user_icon = getFlatIcon(user)
|
||||
icon = user_icon
|
||||
transform = user.transform
|
||||
else
|
||||
qdel(src)
|
||||
|
||||
/datum/action/innate/chrono_teleport
|
||||
name = "Teleport Now"
|
||||
button_icon_state = "chrono_phase"
|
||||
check_flags = AB_CHECK_CONSCIOUS //|AB_CHECK_INSIDE
|
||||
var/obj/item/clothing/suit/space/chronos/chronosuit = null
|
||||
|
||||
/datum/action/innate/chrono_teleport/IsAvailable()
|
||||
return (chronosuit && chronosuit.activated && chronosuit.camera && !chronosuit.teleporting)
|
||||
|
||||
/datum/action/innate/chrono_teleport/Activate()
|
||||
if(IsAvailable())
|
||||
if(chronosuit.camera)
|
||||
chronosuit.chronowalk(chronosuit.camera)
|
||||
@@ -0,0 +1,608 @@
|
||||
//Baseline hardsuits
|
||||
/obj/item/clothing/head/helmet/space/hardsuit
|
||||
name = "hardsuit helmet"
|
||||
desc = "A special helmet designed for work in a hazardous, low-pressure environment. Has radiation shielding."
|
||||
icon_state = "hardsuit0-engineering"
|
||||
item_state = "eng_helm"
|
||||
armor = list(melee = 10, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75)
|
||||
var/basestate = "hardsuit"
|
||||
var/brightness_on = 4 //luminosity when on
|
||||
var/on = 0
|
||||
var/obj/item/clothing/suit/space/hardsuit/suit
|
||||
item_color = "engineering" //Determines used sprites: hardsuit[on]-[color] and hardsuit[on]-[color]2 (lying down sprite)
|
||||
actions_types = list(/datum/action/item_action/toggle_helmet_light)
|
||||
|
||||
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/attack_self(mob/user)
|
||||
if(!isturf(user.loc))
|
||||
user << "<span class='warning'>You cannot turn the light on while in this [user.loc]!</span>" //To prevent some lighting anomalities.
|
||||
return
|
||||
on = !on
|
||||
icon_state = "[basestate][on]-[item_color]"
|
||||
user.update_inv_head() //so our mob-overlays update
|
||||
|
||||
if(on)
|
||||
user.AddLuminosity(brightness_on)
|
||||
else
|
||||
user.AddLuminosity(-brightness_on)
|
||||
for(var/X in actions)
|
||||
var/datum/action/A = X
|
||||
A.UpdateButtonIcon()
|
||||
|
||||
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/pickup(mob/user)
|
||||
..()
|
||||
if(on)
|
||||
user.AddLuminosity(brightness_on)
|
||||
SetLuminosity(0)
|
||||
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/dropped(mob/user)
|
||||
..()
|
||||
if(on)
|
||||
user.AddLuminosity(-brightness_on)
|
||||
SetLuminosity(brightness_on)
|
||||
if(suit)
|
||||
suit.RemoveHelmet()
|
||||
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/item_action_slot_check(slot)
|
||||
if(slot == slot_head)
|
||||
return 1
|
||||
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/equipped(mob/user, slot)
|
||||
..()
|
||||
if(slot != slot_head)
|
||||
if(suit)
|
||||
suit.RemoveHelmet()
|
||||
else
|
||||
qdel(src)
|
||||
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/proc/display_visor_message(var/msg)
|
||||
var/mob/wearer = loc
|
||||
if(msg && ishuman(wearer))
|
||||
wearer.show_message("\icon[src]<b><span class='robot'>[msg]</span></b>", 1)
|
||||
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/rad_act(severity)
|
||||
..()
|
||||
display_visor_message("Radiation pulse detected! Magnitude: <span class='green'>[severity]</span> RADs.")
|
||||
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/emp_act(severity)
|
||||
..()
|
||||
display_visor_message("[severity > 1 ? "Light" : "Strong"] electromagnetic pulse detected!")
|
||||
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit
|
||||
name = "hardsuit"
|
||||
desc = "A special suit that protects against hazardous, low pressure environments. Has radiation shielding."
|
||||
icon_state = "hardsuit-engineering"
|
||||
item_state = "eng_hardsuit"
|
||||
armor = list(melee = 10, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75)
|
||||
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals,/obj/item/device/t_scanner, /obj/item/weapon/rcd, /obj/item/weapon/pipe_dispenser)
|
||||
siemens_coefficient = 0
|
||||
var/obj/item/clothing/head/helmet/space/hardsuit/helmet
|
||||
actions_types = list(/datum/action/item_action/toggle_helmet)
|
||||
var/helmettype = /obj/item/clothing/head/helmet/space/hardsuit
|
||||
var/obj/item/weapon/tank/jetpack/suit/jetpack = null
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/New()
|
||||
if(jetpack && ispath(jetpack))
|
||||
jetpack = new jetpack(src)
|
||||
..()
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/equipped(mob/user, slot)
|
||||
..()
|
||||
if(jetpack)
|
||||
if(slot == slot_wear_suit)
|
||||
for(var/X in jetpack.actions)
|
||||
var/datum/action/A = X
|
||||
A.Grant(user)
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/dropped(mob/user)
|
||||
..()
|
||||
if(jetpack)
|
||||
for(var/X in jetpack.actions)
|
||||
var/datum/action/A = X
|
||||
A.Remove(user)
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/item_action_slot_check(slot)
|
||||
if(slot == slot_wear_suit) //we only give the mob the ability to toggle the helmet if he's wearing the hardsuit.
|
||||
return 1
|
||||
|
||||
//Engineering
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/engine
|
||||
name = "engineering hardsuit helmet"
|
||||
desc = "A special helmet designed for work in a hazardous, low-pressure environment. Has radiation shielding."
|
||||
icon_state = "hardsuit0-engineering"
|
||||
item_state = "eng_helm"
|
||||
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75)
|
||||
item_color = "engineering"
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/engine
|
||||
name = "engineering hardsuit"
|
||||
desc = "A special suit that protects against hazardous, low pressure environments. Has radiation shielding."
|
||||
icon_state = "hardsuit-engineering"
|
||||
item_state = "eng_hardsuit"
|
||||
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75)
|
||||
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/engine
|
||||
|
||||
//Atmospherics
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/engine/atmos
|
||||
name = "atmospherics hardsuit helmet"
|
||||
desc = "A special helmet designed for work in a hazardous, low-pressure environment. Has thermal shielding."
|
||||
icon_state = "hardsuit0-atmospherics"
|
||||
item_state = "atmo_helm"
|
||||
item_color = "atmospherics"
|
||||
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 0)
|
||||
heat_protection = HEAD //Uncomment to enable firesuit protection
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/engine/atmos
|
||||
name = "atmospherics hardsuit"
|
||||
desc = "A special suit that protects against hazardous, low pressure environments. Has thermal shielding."
|
||||
icon_state = "hardsuit-atmospherics"
|
||||
item_state = "atmo_hardsuit"
|
||||
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 0)
|
||||
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS //Uncomment to enable firesuit protection
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT
|
||||
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/engine/atmos
|
||||
|
||||
|
||||
//Chief Engineer's hardsuit
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/engine/elite
|
||||
name = "advanced hardsuit helmet"
|
||||
desc = "An advanced helmet designed for work in a hazardous, low pressure environment. Shines with a high polish."
|
||||
icon_state = "hardsuit0-white"
|
||||
item_state = "ce_helm"
|
||||
item_color = "white"
|
||||
armor = list(melee = 40, bullet = 5, laser = 10, energy = 5, bomb = 50, bio = 100, rad = 90)
|
||||
heat_protection = HEAD //Uncomment to enable firesuit protection
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
|
||||
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/engine/elite
|
||||
icon_state = "hardsuit-white"
|
||||
name = "advanced hardsuit"
|
||||
desc = "An advanced suit that protects against hazardous, low pressure environments. Shines with a high polish."
|
||||
item_state = "ce_hardsuit"
|
||||
armor = list(melee = 40, bullet = 5, laser = 10, energy = 5, bomb = 50, bio = 100, rad = 90)
|
||||
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS //Uncomment to enable firesuit protection
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT
|
||||
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/engine/elite
|
||||
jetpack = /obj/item/weapon/tank/jetpack/suit
|
||||
|
||||
|
||||
//Mining hardsuit
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/mining
|
||||
name = "mining hardsuit helmet"
|
||||
desc = "A special helmet designed for work in a hazardous, low pressure environment. Has reinforced plating for wildlife encounters and dual floodlights."
|
||||
icon_state = "hardsuit0-mining"
|
||||
item_state = "mining_helm"
|
||||
item_color = "mining"
|
||||
max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT
|
||||
heat_protection = CHEST|GROIN|LEGS|ARMS
|
||||
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 50, bio = 100, rad = 50)
|
||||
brightness_on = 7
|
||||
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals, /obj/item/weapon/resonator, /obj/item/device/mining_scanner, /obj/item/device/t_scanner/adv_mining_scanner, /obj/item/weapon/gun/energy/kinetic_accelerator)
|
||||
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/mining
|
||||
icon_state = "hardsuit-mining"
|
||||
name = "mining hardsuit"
|
||||
desc = "A special suit that protects against hazardous, low pressure environments. Has reinforced plating for wildlife encounters."
|
||||
item_state = "mining_hardsuit"
|
||||
max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT
|
||||
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 50, bio = 100, rad = 50)
|
||||
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals,/obj/item/weapon/storage/bag/ore,/obj/item/weapon/pickaxe)
|
||||
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/mining
|
||||
|
||||
|
||||
|
||||
//Syndicate hardsuit
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/syndi
|
||||
name = "blood-red hardsuit helmet"
|
||||
desc = "A dual-mode advanced helmet designed for work in special operations. It is in EVA mode. Property of Gorlex Marauders."
|
||||
alt_desc = "A dual-mode advanced helmet designed for work in special operations. It is in combat mode. Property of Gorlex Marauders."
|
||||
icon_state = "hardsuit1-syndi"
|
||||
item_state = "syndie_helm"
|
||||
item_color = "syndi"
|
||||
armor = list(melee = 40, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50)
|
||||
on = 1
|
||||
var/obj/item/clothing/suit/space/hardsuit/syndi/linkedsuit = null
|
||||
actions_types = list(/datum/action/item_action/toggle_helmet_mode)
|
||||
visor_flags_inv = HIDEMASK|HIDEEYES|HIDEFACE|HIDEFACIALHAIR
|
||||
visor_flags = STOPSPRESSUREDMAGE
|
||||
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/syndi/update_icon()
|
||||
icon_state = "hardsuit[on]-[item_color]"
|
||||
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/syndi/New()
|
||||
..()
|
||||
if(istype(loc, /obj/item/clothing/suit/space/hardsuit/syndi))
|
||||
linkedsuit = loc
|
||||
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/syndi/attack_self(mob/user) //Toggle Helmet
|
||||
if(!isturf(user.loc))
|
||||
user << "<span class='warning'>You cannot toggle your helmet while in this [user.loc]!</span>" //To prevent some lighting anomalities.
|
||||
return
|
||||
on = !on
|
||||
if(on || force)
|
||||
user << "<span class='notice'>You switch your hardsuit to EVA mode, sacrificing speed for space protection.</span>"
|
||||
name = initial(name)
|
||||
desc = initial(desc)
|
||||
user.AddLuminosity(brightness_on)
|
||||
flags |= visor_flags
|
||||
flags_cover |= HEADCOVERSEYES | HEADCOVERSMOUTH
|
||||
flags_inv |= visor_flags_inv
|
||||
cold_protection |= HEAD
|
||||
else
|
||||
user << "<span class='notice'>You switch your hardsuit to combat mode and can now run at full speed.</span>"
|
||||
name += " (combat)"
|
||||
desc = alt_desc
|
||||
user.AddLuminosity(-brightness_on)
|
||||
flags &= ~visor_flags
|
||||
flags_cover &= ~(HEADCOVERSEYES | HEADCOVERSMOUTH)
|
||||
flags_inv &= ~visor_flags_inv
|
||||
cold_protection &= ~HEAD
|
||||
update_icon()
|
||||
playsound(src.loc, 'sound/mecha/mechmove03.ogg', 50, 1)
|
||||
toggle_hardsuit_mode(user)
|
||||
user.update_inv_head()
|
||||
if(istype(user, /mob/living/carbon))
|
||||
var/mob/living/carbon/C = user
|
||||
C.head_update(src, forced = 1)
|
||||
for(var/X in actions)
|
||||
var/datum/action/A = X
|
||||
A.UpdateButtonIcon()
|
||||
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/syndi/proc/toggle_hardsuit_mode(mob/user) //Helmet Toggles Suit Mode
|
||||
if(linkedsuit)
|
||||
if(on)
|
||||
linkedsuit.name = initial(linkedsuit.name)
|
||||
linkedsuit.desc = initial(linkedsuit.desc)
|
||||
linkedsuit.slowdown = 1
|
||||
linkedsuit.flags |= STOPSPRESSUREDMAGE
|
||||
linkedsuit.cold_protection |= CHEST | GROIN | LEGS | FEET | ARMS | HANDS
|
||||
else
|
||||
linkedsuit.name += " (combat)"
|
||||
linkedsuit.desc = linkedsuit.alt_desc
|
||||
linkedsuit.slowdown = 0
|
||||
linkedsuit.flags &= ~(STOPSPRESSUREDMAGE)
|
||||
linkedsuit.cold_protection &= ~(CHEST | GROIN | LEGS | FEET | ARMS | HANDS)
|
||||
|
||||
linkedsuit.icon_state = "hardsuit[on]-[item_color]"
|
||||
linkedsuit.update_icon()
|
||||
user.update_inv_wear_suit()
|
||||
user.update_inv_w_uniform()
|
||||
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/syndi
|
||||
name = "blood-red hardsuit"
|
||||
desc = "A dual-mode advanced hardsuit designed for work in special operations. It is in EVA mode. Property of Gorlex Marauders."
|
||||
alt_desc = "A dual-mode advanced hardsuit designed for work in special operations. It is in combat mode. Property of Gorlex Marauders."
|
||||
icon_state = "hardsuit1-syndi"
|
||||
item_state = "syndie_hardsuit"
|
||||
item_color = "syndi"
|
||||
w_class = 3
|
||||
armor = list(melee = 40, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50)
|
||||
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword/saber,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals)
|
||||
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi
|
||||
jetpack = /obj/item/weapon/tank/jetpack/suit
|
||||
|
||||
|
||||
//Elite Syndie suit
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/syndi/elite
|
||||
name = "elite syndicate hardsuit helmet"
|
||||
desc = "An elite version of the syndicate helmet, with improved armour and fire shielding. It is in EVA mode. Property of Gorlex Marauders."
|
||||
alt_desc = "An elite version of the syndicate helmet, with improved armour and fire shielding. It is in combat mode. Property of Gorlex Marauders."
|
||||
icon_state = "hardsuit0-syndielite"
|
||||
item_color = "syndielite"
|
||||
armor = list(melee = 60, bullet = 60, laser = 50, energy = 25, bomb = 55, bio = 100, rad = 70)
|
||||
heat_protection = HEAD
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT
|
||||
visor_flags_inv = 0
|
||||
visor_flags = 0
|
||||
on = 0
|
||||
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/syndi/elite
|
||||
name = "elite syndicate hardsuit"
|
||||
desc = "An elite version of the syndicate hardsuit, with improved armour and fire shielding. It is in travel mode."
|
||||
alt_desc = "An elite version of the syndicate hardsuit, with improved armour and fire shielding. It is in combat mode."
|
||||
icon_state = "hardsuit0-syndielite"
|
||||
item_color = "syndielite"
|
||||
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi/elite
|
||||
armor = list(melee = 60, bullet = 60, laser = 50, energy = 25, bomb = 55, bio = 100, rad = 70)
|
||||
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT
|
||||
|
||||
|
||||
//The Owl Hardsuit
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/syndi/owl
|
||||
name = "owl hardsuit helmet"
|
||||
desc = "A dual-mode advanced helmet designed for any crime-fighting situation. It is in travel mode."
|
||||
alt_desc = "A dual-mode advanced helmet designed for any crime-fighting situation. It is in combat mode."
|
||||
icon_state = "hardsuit1-owl"
|
||||
item_state = "s_helmet"
|
||||
item_color = "owl"
|
||||
visor_flags_inv = 0
|
||||
visor_flags = 0
|
||||
on = 0
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/syndi/owl
|
||||
name = "owl hardsuit"
|
||||
desc = "A dual-mode advanced hardsuit designed for any crime-fighting situation. It is in travel mode."
|
||||
alt_desc = "A dual-mode advanced hardsuit designed for any crime-fighting situation. It is in combat mode."
|
||||
icon_state = "hardsuit1-owl"
|
||||
item_state = "s_suit"
|
||||
item_color = "owl"
|
||||
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi/owl
|
||||
|
||||
|
||||
//Wizard hardsuit
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/wizard
|
||||
name = "gem-encrusted hardsuit helmet"
|
||||
desc = "A bizarre gem-encrusted helmet that radiates magical energies."
|
||||
icon_state = "hardsuit0-wiz"
|
||||
item_state = "wiz_helm"
|
||||
item_color = "wiz"
|
||||
unacidable = 1 //No longer shall our kind be foiled by lone chemists with spray bottles!
|
||||
armor = list(melee = 40, bullet = 40, laser = 40, energy = 20, bomb = 35, bio = 100, rad = 50)
|
||||
heat_protection = HEAD //Uncomment to enable firesuit protection
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/wizard
|
||||
icon_state = "hardsuit-wiz"
|
||||
name = "gem-encrusted hardsuit"
|
||||
desc = "A bizarre gem-encrusted suit that radiates magical energies."
|
||||
item_state = "wiz_hardsuit"
|
||||
w_class = 3
|
||||
unacidable = 1
|
||||
armor = list(melee = 40, bullet = 40, laser = 40, energy = 20, bomb = 35, bio = 100, rad = 50)
|
||||
allowed = list(/obj/item/weapon/teleportation_scroll,/obj/item/weapon/tank/internals)
|
||||
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS //Uncomment to enable firesuit protection
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT
|
||||
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/wizard
|
||||
|
||||
|
||||
//Medical hardsuit
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/medical
|
||||
name = "medical hardsuit helmet"
|
||||
desc = "A special helmet designed for work in a hazardous, low pressure environment. Built with lightweight materials for extra comfort, but does not protect the eyes from intense light."
|
||||
icon_state = "hardsuit0-medical"
|
||||
item_state = "medical_helm"
|
||||
item_color = "medical"
|
||||
flash_protect = 0
|
||||
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 50)
|
||||
scan_reagents = 1
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/medical
|
||||
icon_state = "hardsuit-medical"
|
||||
name = "medical hardsuit"
|
||||
desc = "A special suit that protects against hazardous, low pressure environments. Built with lightweight materials for easier movement."
|
||||
item_state = "medical_hardsuit"
|
||||
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals,/obj/item/weapon/storage/firstaid,/obj/item/device/healthanalyzer,/obj/item/stack/medical)
|
||||
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 50)
|
||||
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/medical
|
||||
|
||||
//Research Director hardsuit
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/rd
|
||||
name = "prototype hardsuit helmet"
|
||||
desc = "A prototype helmet designed for research in a hazardous, low pressure environment. Scientific data flashes across the visor."
|
||||
icon_state = "hardsuit0-rd"
|
||||
item_color = "rd"
|
||||
unacidable = 1
|
||||
var/onboard_hud_enabled = 0 //stops conflicts with another diag HUD
|
||||
max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT
|
||||
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 100, bio = 100, rad = 60)
|
||||
var/obj/machinery/doppler_array/integrated/bomb_radar
|
||||
scan_reagents = 1
|
||||
actions_types = list(/datum/action/item_action/toggle_helmet_light, /datum/action/item_action/toggle_research_scanner)
|
||||
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/rd/New()
|
||||
..()
|
||||
bomb_radar = new /obj/machinery/doppler_array/integrated(src)
|
||||
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/rd/equipped(mob/living/carbon/human/user, slot)
|
||||
..()
|
||||
if(user.glasses && istype(user.glasses, /obj/item/clothing/glasses/hud/diagnostic))
|
||||
user << ("<span class='warning'>Your [user.glasses] prevents you using [src]'s diagnostic visor HUD.</span>")
|
||||
else
|
||||
onboard_hud_enabled = 1
|
||||
var/datum/atom_hud/DHUD = huds[DATA_HUD_DIAGNOSTIC]
|
||||
DHUD.add_hud_to(user)
|
||||
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/rd/dropped(mob/living/carbon/human/user)
|
||||
..()
|
||||
if(onboard_hud_enabled && !(user.glasses && istype(user.glasses, /obj/item/clothing/glasses/hud/diagnostic)))
|
||||
var/datum/atom_hud/DHUD = huds[DATA_HUD_DIAGNOSTIC]
|
||||
DHUD.remove_hud_from(user)
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/rd
|
||||
icon_state = "hardsuit-rd"
|
||||
name = "prototype hardsuit"
|
||||
desc = "A prototype suit that protects against hazardous, low pressure environments. Fitted with extensive plating for handling explosives and dangerous research materials."
|
||||
item_state = "hardsuit-rd"
|
||||
unacidable = 1
|
||||
max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT //Same as an emergency firesuit. Not ideal for extended exposure.
|
||||
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals, /obj/item/weapon/gun/energy/wormhole_projector,
|
||||
/obj/item/weapon/hand_tele, /obj/item/device/aicard)
|
||||
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 100, bio = 100, rad = 60)
|
||||
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/rd
|
||||
|
||||
|
||||
|
||||
//Security hardsuit
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/security
|
||||
name = "security hardsuit helmet"
|
||||
desc = "A special helmet designed for work in a hazardous, low pressure environment. Has an additional layer of armor."
|
||||
icon_state = "hardsuit0-sec"
|
||||
item_state = "sec_helm"
|
||||
item_color = "sec"
|
||||
armor = list(melee = 30, bullet = 15, laser = 30,energy = 10, bomb = 10, bio = 100, rad = 50)
|
||||
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/security
|
||||
icon_state = "hardsuit-sec"
|
||||
name = "security hardsuit"
|
||||
desc = "A special suit that protects against hazardous, low pressure environments. Has an additional layer of armor."
|
||||
item_state = "sec_hardsuit"
|
||||
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals, /obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs)
|
||||
armor = list(melee = 30, bullet = 15, laser = 30, energy = 10, bomb = 10, bio = 100, rad = 50)
|
||||
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/security
|
||||
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/security/hos
|
||||
name = "head of security's hardsuit helmet"
|
||||
desc = "a special bulky helmet designed for work in a hazardous, low pressure environment. Has an additional layer of armor."
|
||||
icon_state = "hardsuit0-hos"
|
||||
item_color = "hos"
|
||||
armor = list(melee = 45, bullet = 25, laser = 30,energy = 10, bomb = 25, bio = 100, rad = 50)
|
||||
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/security/hos
|
||||
icon_state = "hardsuit-hos"
|
||||
name = "head of security's hardsuit"
|
||||
desc = "A special bulky suit that protects against hazardous, low pressure environments. Has an additional layer of armor."
|
||||
armor = list(melee = 45, bullet = 25, laser = 30, energy = 10, bomb = 25, bio = 100, rad = 50)
|
||||
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/security/hos
|
||||
|
||||
|
||||
|
||||
/////////////SHIELDED//////////////////////////////////
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/shielded
|
||||
name = "shielded hardsuit"
|
||||
desc = "A hardsuit with built in energy shielding. Will rapidly recharge when not under fire."
|
||||
icon_state = "hardsuit-hos"
|
||||
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/security/hos
|
||||
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals, /obj/item/weapon/gun,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs)
|
||||
armor = list(melee = 30, bullet = 15, laser = 30, energy = 10, bomb = 10, bio = 100, rad = 50)
|
||||
var/current_charges = 3
|
||||
var/max_charges = 3 //How many charges total the shielding has
|
||||
var/recharge_delay = 200 //How long after we've been shot before we can start recharging. 20 seconds here
|
||||
var/recharge_cooldown = 0 //Time since we've last been shot
|
||||
var/recharge_rate = 1 //How quickly the shield recharges once it starts charging
|
||||
var/shield_state = "shield-old"
|
||||
var/shield_on = "shield-old"
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/shielded/New()
|
||||
jetpack = new /obj/item/weapon/tank/jetpack/suit(src)
|
||||
..()
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/shielded/hit_reaction(mob/living/carbon/human/owner, attack_text)
|
||||
if(current_charges > 0)
|
||||
var/datum/effect_system/spark_spread/s = new
|
||||
s.set_up(2, 1, src)
|
||||
s.start()
|
||||
owner.visible_message("<span class='danger'>[owner]'s shields deflect [attack_text] in a shower of sparks!</span>")
|
||||
current_charges--
|
||||
recharge_cooldown = world.time + recharge_delay
|
||||
START_PROCESSING(SSobj, src)
|
||||
if(current_charges <= 0)
|
||||
owner.visible_message("[owner]'s shield overloads!")
|
||||
shield_state = "broken"
|
||||
owner.update_inv_wear_suit()
|
||||
return 1
|
||||
return 0
|
||||
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/shielded/Destroy()
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
return ..()
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/shielded/process()
|
||||
if(world.time > recharge_cooldown && current_charges < max_charges)
|
||||
current_charges = Clamp((current_charges + recharge_rate), 0, max_charges)
|
||||
playsound(loc, 'sound/magic/Charge.ogg', 50, 1)
|
||||
if(current_charges == max_charges)
|
||||
playsound(loc, 'sound/machines/ding.ogg', 50, 1)
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
shield_state = "[shield_on]"
|
||||
if(istype(loc, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/C = loc
|
||||
C.update_inv_wear_suit()
|
||||
|
||||
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/shielded/worn_overlays(isinhands)
|
||||
. = list()
|
||||
if(!isinhands)
|
||||
. += image(icon = 'icons/effects/effects.dmi', icon_state = "[shield_state]")
|
||||
|
||||
|
||||
///////////////Capture the Flag////////////////////
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/shielded/ctf
|
||||
name = "white shielded hardsuit"
|
||||
desc = "Standard issue hardsuit for playing capture the flag."
|
||||
icon_state = "ert_medical"
|
||||
item_state = "ert_medical"
|
||||
item_color = "ert_medical"
|
||||
flags = STOPSPRESSUREDMAGE | THICKMATERIAL | NODROP //Dont want people changing into the other teams gear
|
||||
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/ctf
|
||||
armor = list(melee = 0, bullet = 30, laser = 30, energy = 30, bomb = 50, bio = 100, rad = 100)
|
||||
slowdown = 0
|
||||
max_charges = 5
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/shielded/ctf/red
|
||||
name = "red shielded hardsuit"
|
||||
icon_state = "ert_security"
|
||||
item_state = "ert_security"
|
||||
item_color = "ert_security"
|
||||
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/ctf/red
|
||||
shield_state = "shield-red"
|
||||
shield_on = "shield-red"
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/shielded/ctf/blue
|
||||
name = "blue shielded hardsuit"
|
||||
desc = "Standard issue hardsuit for playing capture the flag."
|
||||
icon_state = "ert_command"
|
||||
item_state = "ert_command"
|
||||
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/ctf/blue
|
||||
|
||||
|
||||
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/shielded/ctf
|
||||
name = "shielded hardsuit helmet"
|
||||
desc = "Standard issue hardsuit helmet for playing capture the flag."
|
||||
icon_state = "hardsuit0-ert_medical"
|
||||
item_state = "hardsuit0-ert_medical"
|
||||
item_color = "ert_medical"
|
||||
armor = list(melee = 0, bullet = 30, laser = 30, energy = 30, bomb = 50, bio = 100, rad = 100)
|
||||
|
||||
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/shielded/ctf/red
|
||||
icon_state = "hardsuit0-ert_security"
|
||||
item_state = "hardsuit0-ert_security"
|
||||
item_color = "ert_security"
|
||||
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/shielded/ctf/blue
|
||||
name = "shielded hardsuit helmet"
|
||||
desc = "Standard issue hardsuit helmet for playing capture the flag."
|
||||
icon_state = "hardsuit0-ert_commander"
|
||||
item_state = "hardsuit0-ert_commander"
|
||||
item_color = "ert_commander"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//////Syndicate Version
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/shielded/syndi
|
||||
name = "blood-red hardsuit"
|
||||
desc = "An advanced hardsuit with built in energy shielding."
|
||||
icon_state = "hardsuit1-syndi"
|
||||
item_state = "syndie_hardsuit"
|
||||
item_color = "syndi"
|
||||
armor = list(melee = 40, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50)
|
||||
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword/saber,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals)
|
||||
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/syndi
|
||||
slowdown = 0
|
||||
|
||||
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/shielded/syndi
|
||||
name = "blood-red hardsuit helmet"
|
||||
desc = "An advanced hardsuit helmet with built in energy shielding."
|
||||
icon_state = "hardsuit1-syndi"
|
||||
item_state = "syndie_helm"
|
||||
item_color = "syndi"
|
||||
armor = list(melee = 40, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50)
|
||||
@@ -0,0 +1,327 @@
|
||||
//miscellaneous spacesuits
|
||||
/*
|
||||
Contains:
|
||||
- Captain's spacesuit
|
||||
- Death squad's hardsuit
|
||||
- SWAT suit
|
||||
- Officer's beret/spacesuit
|
||||
- NASA Voidsuit
|
||||
- Father Christmas' magical clothes
|
||||
- Pirate's spacesuit
|
||||
- ERT hardsuit: command, sec, engi, med
|
||||
- EVA spacesuit
|
||||
- Freedom's spacesuit (freedom from vacuum's oppression)
|
||||
- Carp hardsuit
|
||||
*/
|
||||
|
||||
//Captain's space suit, not hardsuits because no flashlight!
|
||||
/obj/item/clothing/head/helmet/space/captain
|
||||
name = "captain's space helmet"
|
||||
icon_state = "capspace"
|
||||
item_state = "capspacehelmet"
|
||||
desc = "A special helmet designed for only the most fashionable of military figureheads."
|
||||
flags_inv = HIDEFACE|HIDEEARS|HIDEHAIR
|
||||
permeability_coefficient = 0.01
|
||||
armor = list(melee = 40, bullet = 50, laser = 50, energy = 25, bomb = 50, bio = 100, rad = 50)
|
||||
|
||||
/obj/item/clothing/suit/space/captain
|
||||
name = "captain's space suit"
|
||||
desc = "A bulky, heavy-duty piece of exclusive Nanotrasen armor. YOU are in charge!"
|
||||
icon_state = "caparmor"
|
||||
item_state = "capspacesuit"
|
||||
w_class = 4
|
||||
allowed = list(/obj/item/weapon/tank/internals, /obj/item/device/flashlight,/obj/item/weapon/gun/energy, /obj/item/weapon/gun/projectile, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs)
|
||||
armor = list(melee = 40, bullet = 50, laser = 50, energy = 25, bomb = 50, bio = 100, rad = 50)
|
||||
|
||||
|
||||
//Death squad armored space suits, not hardsuits!
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/deathsquad
|
||||
name = "deathsquad helmet"
|
||||
desc = "That's not red paint. That's real blood."
|
||||
icon_state = "deathsquad"
|
||||
item_state = "deathsquad"
|
||||
armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100)
|
||||
strip_delay = 130
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
|
||||
unacidable = 1
|
||||
actions_types = list()
|
||||
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/deathsquad/attack_self(mob/user)
|
||||
return
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/deathsquad
|
||||
name = "deathsquad suit"
|
||||
desc = "A heavily armored, advanced space suit that protects against most forms of damage."
|
||||
icon_state = "deathsquad"
|
||||
item_state = "swat_suit"
|
||||
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals,/obj/item/weapon/kitchen/knife/combat)
|
||||
armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100)
|
||||
strip_delay = 130
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT
|
||||
unacidable = 1
|
||||
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/deathsquad
|
||||
dog_fashion = /datum/dog_fashion/back/deathsquad
|
||||
|
||||
//NEW SWAT suit
|
||||
/obj/item/clothing/suit/space/swat
|
||||
name = "SWAT armor"
|
||||
desc = "Space-proof tactical SWAT armor."
|
||||
icon_state = "heavy"
|
||||
item_state = "swat_suit"
|
||||
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals,/obj/item/weapon/kitchen/knife/combat)
|
||||
armor = list(melee = 40, bullet = 30, laser = 30,energy = 30, bomb = 50, bio = 90, rad = 20)
|
||||
strip_delay = 120
|
||||
|
||||
/obj/item/clothing/head/helmet/space/beret
|
||||
name = "officer's beret"
|
||||
desc = "An armored beret commonly used by special operations officers. Uses advanced force field technology to protect the head from space."
|
||||
icon_state = "beret_badge"
|
||||
flags = STOPSPRESSUREDMAGE
|
||||
flags_inv = 0
|
||||
armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100)
|
||||
strip_delay = 130
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
|
||||
unacidable = 1
|
||||
|
||||
/obj/item/clothing/suit/space/officer
|
||||
name = "officer's jacket"
|
||||
desc = "An armored, space-proof jacket used in special operations."
|
||||
icon_state = "detective"
|
||||
item_state = "det_suit"
|
||||
blood_overlay_type = "coat"
|
||||
slowdown = 0
|
||||
flags_inv = 0
|
||||
w_class = 3
|
||||
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals)
|
||||
armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100)
|
||||
strip_delay = 130
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
|
||||
unacidable = 1
|
||||
|
||||
|
||||
//NASA Voidsuit
|
||||
/obj/item/clothing/head/helmet/space/nasavoid
|
||||
name = "NASA Void Helmet"
|
||||
desc = "An old, NASA Centcom branch designed, dark red space suit helmet."
|
||||
icon_state = "void"
|
||||
item_state = "void"
|
||||
|
||||
/obj/item/clothing/suit/space/nasavoid
|
||||
name = "NASA Voidsuit"
|
||||
icon_state = "void"
|
||||
item_state = "void"
|
||||
desc = "An old, NASA Centcom branch designed, dark red space suit."
|
||||
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals,/obj/item/device/multitool)
|
||||
|
||||
|
||||
//Space santa outfit suit
|
||||
/obj/item/clothing/head/helmet/space/santahat
|
||||
name = "Santa's hat"
|
||||
desc = "Ho ho ho. Merrry X-mas!"
|
||||
icon_state = "santahat"
|
||||
flags = STOPSPRESSUREDMAGE
|
||||
flags_cover = HEADCOVERSEYES
|
||||
|
||||
dog_fashion = /datum/dog_fashion/head/santa
|
||||
|
||||
/obj/item/clothing/suit/space/santa
|
||||
name = "Santa's suit"
|
||||
desc = "Festive!"
|
||||
icon_state = "santa"
|
||||
item_state = "santa"
|
||||
slowdown = 0
|
||||
flags = STOPSPRESSUREDMAGE
|
||||
allowed = list(/obj/item) //for stuffing exta special presents
|
||||
|
||||
|
||||
//Space pirate outfit
|
||||
/obj/item/clothing/head/helmet/space/pirate
|
||||
name = "pirate hat"
|
||||
desc = "Yarr."
|
||||
icon_state = "pirate"
|
||||
item_state = "pirate"
|
||||
armor = list(melee = 30, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30)
|
||||
flags = STOPSPRESSUREDMAGE
|
||||
strip_delay = 40
|
||||
put_on_delay = 20
|
||||
flags_cover = HEADCOVERSEYES
|
||||
|
||||
/obj/item/clothing/suit/space/pirate
|
||||
name = "pirate coat"
|
||||
desc = "Yarr."
|
||||
icon_state = "pirate"
|
||||
item_state = "pirate"
|
||||
w_class = 3
|
||||
flags_inv = 0
|
||||
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals, /obj/item/weapon/melee/energy/sword/pirate, /obj/item/clothing/glasses/eyepatch, /obj/item/weapon/reagent_containers/food/drinks/bottle/rum)
|
||||
slowdown = 0
|
||||
armor = list(melee = 30, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30)
|
||||
strip_delay = 40
|
||||
put_on_delay = 20
|
||||
|
||||
//Emergency Response Team suits
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/ert
|
||||
name = "emergency response unit helmet"
|
||||
desc = "Standard issue command helmet for the ERT"
|
||||
icon_state = "hardsuit0-ert_commander"
|
||||
item_state = "hardsuit0-ert_commander"
|
||||
item_color = "ert_commander"
|
||||
armor = list(melee = 65, bullet = 50, laser = 50, energy = 50, bomb = 50, bio = 100, rad = 100)
|
||||
strip_delay = 130
|
||||
flags = STOPSPRESSUREDMAGE | THICKMATERIAL | NODROP
|
||||
brightness_on = 7
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/ert
|
||||
name = "emergency response team suit"
|
||||
desc = "Standard issue command suit for the ERT."
|
||||
icon_state = "ert_command"
|
||||
item_state = "ert_command"
|
||||
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert
|
||||
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals)
|
||||
armor = list(melee = 30, bullet = 50, laser = 30, energy = 50, bomb = 50, bio = 100, rad = 100)
|
||||
slowdown = 0
|
||||
strip_delay = 130
|
||||
|
||||
//ERT Security
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/ert/sec
|
||||
desc = "Standard issue security helmet for the ERT."
|
||||
icon_state = "hardsuit0-ert_security"
|
||||
item_state = "hardsuit0-ert_security"
|
||||
item_color = "ert_security"
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/ert/sec
|
||||
desc = "Standard issue security suit for the ERT."
|
||||
icon_state = "ert_security"
|
||||
item_state = "ert_security"
|
||||
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/sec
|
||||
|
||||
//ERT Engineering
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/ert/engi
|
||||
desc = "Standard issue engineer helmet for the ERT."
|
||||
icon_state = "hardsuit0-ert_engineer"
|
||||
item_state = "hardsuit0-ert_engineer"
|
||||
item_color = "ert_engineer"
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/ert/engi
|
||||
desc = "Standard issue engineer suit for the ERT."
|
||||
icon_state = "ert_engineer"
|
||||
item_state = "ert_engineer"
|
||||
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/engi
|
||||
|
||||
//ERT Medical
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/ert/med
|
||||
desc = "Standard issue medical helmet for the ERT."
|
||||
icon_state = "hardsuit0-ert_medical"
|
||||
item_state = "hardsuit0-ert_medical"
|
||||
item_color = "ert_medical"
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/ert/med
|
||||
desc = "Standard issue medical suit for the ERT."
|
||||
icon_state = "ert_medical"
|
||||
item_state = "ert_medical"
|
||||
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/med
|
||||
|
||||
/obj/item/clothing/suit/space/eva
|
||||
name = "EVA suit"
|
||||
icon_state = "space"
|
||||
item_state = "s_suit"
|
||||
desc = "A lightweight space suit with the basic ability to protect the wearer from the vacuum of space during emergencies."
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20)
|
||||
|
||||
/obj/item/clothing/head/helmet/space/eva
|
||||
name = "EVA helmet"
|
||||
icon_state = "space"
|
||||
item_state = "space"
|
||||
desc = "A lightweight space helmet with the basic ability to protect the wearer from the vacuum of space during emergencies."
|
||||
flash_protect = 0
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20)
|
||||
|
||||
/obj/item/clothing/head/helmet/space/freedom
|
||||
name = "eagle helmet"
|
||||
desc = "An advanced, space-proof helmet. It appears to be modeled after an old-world eagle."
|
||||
icon_state = "griffinhat"
|
||||
item_state = "griffinhat"
|
||||
armor = list(melee = 20, bullet = 40, laser = 30, energy = 25, bomb = 100, bio = 100, rad = 100)
|
||||
strip_delay = 130
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
|
||||
unacidable = 1
|
||||
|
||||
/obj/item/clothing/suit/space/freedom
|
||||
name = "eagle suit"
|
||||
desc = "An advanced, light suit, fabricated from a mixture of synthetic feathers and space-resistant material. A gun holster appears to be intergrated into the suit and the wings appear to be stuck in 'freedom' mode."
|
||||
icon_state = "freedom"
|
||||
item_state = "freedom"
|
||||
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals)
|
||||
armor = list(melee = 20, bullet = 40, laser = 30,energy = 25, bomb = 100, bio = 100, rad = 100)
|
||||
strip_delay = 130
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
|
||||
unacidable = 1
|
||||
|
||||
//Carpsuit, bestsuit, lovesuit
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/carp
|
||||
name = "carp helmet"
|
||||
desc = "Spaceworthy and it looks like a space carp's head, smells like one too."
|
||||
icon_state = "carp_helm"
|
||||
item_state = "syndicate"
|
||||
armor = list(melee = -20, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 75) //As whimpy as a space carp
|
||||
brightness_on = 0 //luminosity when on
|
||||
actions_types = list()
|
||||
flags = STOPSPRESSUREDMAGE | THICKMATERIAL | NODROP
|
||||
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/carp
|
||||
name = "carp space suit"
|
||||
desc = "A slimming piece of dubious space carp technology, you suspect it won't stand up to hand-to-hand blows."
|
||||
icon_state = "carp_suit"
|
||||
item_state = "space_suit_syndicate"
|
||||
slowdown = 0 //Space carp magic, never stop believing
|
||||
armor = list(melee = -20, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 75) //As whimpy whimpy whoo
|
||||
allowed = list(/obj/item/weapon/tank/internals, /obj/item/weapon/gun/projectile/automatic/speargun) //I'm giving you a hint here
|
||||
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/carp
|
||||
|
||||
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal
|
||||
name = "paranormal response unit helmet"
|
||||
desc = "A helmet worn by those who deal with paranormal threats for a living."
|
||||
icon_state = "hardsuit0-prt"
|
||||
item_state = "hardsuit0-prt"
|
||||
item_color = "knight_grey"
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
|
||||
actions_types = list()
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/ert/paranormal
|
||||
name = "paranormal response team suit"
|
||||
desc = "Powerful wards are built into this hardsuit, protecting the user from all manner of paranormal threats."
|
||||
icon_state = "knight_grey"
|
||||
item_state = "knight_grey"
|
||||
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT
|
||||
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/ert/paranormal/New()
|
||||
..()
|
||||
new /obj/item/weapon/nullrod(src)
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/ert/paranormal/inquisitor
|
||||
name = "inquisitor's hardsuit"
|
||||
icon_state = "hardsuit-inq"
|
||||
item_state = "hardsuit-inq"
|
||||
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal/inquisitor
|
||||
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal/inquisitor
|
||||
name = "inquisitor's helmet"
|
||||
icon_state = "hardsuit0-inq"
|
||||
item_state = "hardsuit0-inq"
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/ert/paranormal/beserker
|
||||
name = "champion's hardsuit"
|
||||
desc = "Voices echo from the hardsuit, driving the user insane."
|
||||
icon_state = "hardsuit-beserker"
|
||||
item_state = "hardsuit-beserker"
|
||||
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal/beserker
|
||||
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal/beserker
|
||||
name = "champion's helmet"
|
||||
desc = "Peering into the eyes of the helmet is enough to seal damnation."
|
||||
icon_state = "hardsuit0-beserker"
|
||||
item_state = "hardsuit0-beserker"
|
||||
@@ -0,0 +1,45 @@
|
||||
//Suits for the pink and grey skeletons!
|
||||
|
||||
|
||||
/obj/item/clothing/suit/space/eva/plasmaman
|
||||
name = "plasmaman suit"
|
||||
desc = "A special containment suit designed to protect a plasmaman's volatile body from outside exposure and quickly extinguish it in emergencies."
|
||||
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_casing,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 0)
|
||||
icon_state = "plasmaman_suit"
|
||||
item_state = "plasmaman_suit"
|
||||
var/next_extinguish = 0
|
||||
var/extinguish_cooldown = 100
|
||||
var/extinguishes_left = 10
|
||||
|
||||
|
||||
/obj/item/clothing/suit/space/eva/plasmaman/examine(mob/user)
|
||||
..()
|
||||
user << "<span class='notice'>There are [extinguishes_left] extinguisher canisters left in this suit.</span>"
|
||||
|
||||
|
||||
/obj/item/clothing/suit/space/eva/plasmaman/proc/Extinguish(mob/living/carbon/human/H)
|
||||
if(!istype(H))
|
||||
return
|
||||
|
||||
if(H.fire_stacks)
|
||||
if(extinguishes_left)
|
||||
if(next_extinguish > world.time)
|
||||
return
|
||||
next_extinguish = world.time + extinguish_cooldown
|
||||
extinguishes_left--
|
||||
H.visible_message("<span class='warning'>[H]'s suit automatically extinguishes them!</span>","<span class='warning'>Your suit automatically extinguishes you.</span>")
|
||||
H.ExtinguishMob()
|
||||
PoolOrNew(/obj/effect/particle_effect/water, get_turf(H))
|
||||
|
||||
|
||||
//I just want the light feature of the hardsuit helmet
|
||||
/obj/item/clothing/head/helmet/space/plasmaman
|
||||
name = "plasmaman helmet"
|
||||
desc = "A special containment helmet designed to protect a plasmaman's volatile body from outside exposure and quickly extinguish it in emergencies."
|
||||
icon_state = "plasmaman-helm"
|
||||
item_color = "plasma" //needed for the helmet lighting
|
||||
item_state = "plasmaman-helm"
|
||||
strip_delay = 80
|
||||
|
||||
|
||||
@@ -0,0 +1,149 @@
|
||||
//Regular syndicate space suit
|
||||
/obj/item/clothing/head/helmet/space/syndicate
|
||||
name = "red space helmet"
|
||||
desc = "Top secret spess helmet."
|
||||
icon_state = "syndicate"
|
||||
item_state = "syndicate"
|
||||
desc = "Has a tag: Totally not property of an enemy corporation, honest."
|
||||
armor = list(melee = 40, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30)
|
||||
|
||||
/obj/item/clothing/suit/space/syndicate
|
||||
name = "red space suit"
|
||||
icon_state = "syndicate"
|
||||
item_state = "space_suit_syndicate"
|
||||
desc = "Has a tag on it: Totally not property of of a hostile corporation, honest!"
|
||||
w_class = 3
|
||||
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword/saber,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals)
|
||||
armor = list(melee = 40, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30)
|
||||
|
||||
|
||||
//Green syndicate space suit
|
||||
/obj/item/clothing/head/helmet/space/syndicate/green
|
||||
name = "green space helmet"
|
||||
icon_state = "syndicate-helm-green"
|
||||
item_state = "syndicate-helm-green"
|
||||
|
||||
/obj/item/clothing/suit/space/syndicate/green
|
||||
name = "green space suit"
|
||||
icon_state = "syndicate-green"
|
||||
item_state = "syndicate-green"
|
||||
|
||||
|
||||
//Dark green syndicate space suit
|
||||
/obj/item/clothing/head/helmet/space/syndicate/green/dark
|
||||
name = "dark green space helmet"
|
||||
icon_state = "syndicate-helm-green-dark"
|
||||
item_state = "syndicate-helm-green-dark"
|
||||
|
||||
/obj/item/clothing/suit/space/syndicate/green/dark
|
||||
name = "dark green space suit"
|
||||
icon_state = "syndicate-green-dark"
|
||||
item_state = "syndicate-green-dark"
|
||||
|
||||
|
||||
//Orange syndicate space suit
|
||||
/obj/item/clothing/head/helmet/space/syndicate/orange
|
||||
name = "orange space helmet"
|
||||
icon_state = "syndicate-helm-orange"
|
||||
item_state = "syndicate-helm-orange"
|
||||
|
||||
/obj/item/clothing/suit/space/syndicate/orange
|
||||
name = "orange space suit"
|
||||
icon_state = "syndicate-orange"
|
||||
item_state = "syndicate-orange"
|
||||
|
||||
|
||||
//Blue syndicate space suit
|
||||
/obj/item/clothing/head/helmet/space/syndicate/blue
|
||||
name = "blue space helmet"
|
||||
icon_state = "syndicate-helm-blue"
|
||||
item_state = "syndicate-helm-blue"
|
||||
|
||||
/obj/item/clothing/suit/space/syndicate/blue
|
||||
name = "blue space suit"
|
||||
icon_state = "syndicate-blue"
|
||||
item_state = "syndicate-blue"
|
||||
|
||||
|
||||
//Black syndicate space suit
|
||||
/obj/item/clothing/head/helmet/space/syndicate/black
|
||||
name = "black space helmet"
|
||||
icon_state = "syndicate-helm-black"
|
||||
item_state = "syndicate-helm-black"
|
||||
|
||||
/obj/item/clothing/suit/space/syndicate/black
|
||||
name = "black space suit"
|
||||
icon_state = "syndicate-black"
|
||||
item_state = "syndicate-black"
|
||||
|
||||
|
||||
//Black-green syndicate space suit
|
||||
/obj/item/clothing/head/helmet/space/syndicate/black/green
|
||||
name = "black space helmet"
|
||||
icon_state = "syndicate-helm-black-green"
|
||||
item_state = "syndicate-helm-black-green"
|
||||
|
||||
/obj/item/clothing/suit/space/syndicate/black/green
|
||||
name = "black and green space suit"
|
||||
icon_state = "syndicate-black-green"
|
||||
item_state = "syndicate-black-green"
|
||||
|
||||
|
||||
//Black-blue syndicate space suit
|
||||
/obj/item/clothing/head/helmet/space/syndicate/black/blue
|
||||
name = "black space helmet"
|
||||
icon_state = "syndicate-helm-black-blue"
|
||||
item_state = "syndicate-helm-black-blue"
|
||||
|
||||
/obj/item/clothing/suit/space/syndicate/black/blue
|
||||
name = "black and blue space suit"
|
||||
icon_state = "syndicate-black-blue"
|
||||
item_state = "syndicate-black-blue"
|
||||
|
||||
|
||||
//Black medical syndicate space suit
|
||||
/obj/item/clothing/head/helmet/space/syndicate/black/med
|
||||
name = "black space helmet"
|
||||
icon_state = "syndicate-helm-black-med"
|
||||
item_state = "syndicate-helm-black"
|
||||
|
||||
/obj/item/clothing/suit/space/syndicate/black/med
|
||||
name = "green space suit"
|
||||
icon_state = "syndicate-black-med"
|
||||
item_state = "syndicate-black"
|
||||
|
||||
|
||||
//Black-orange syndicate space suit
|
||||
/obj/item/clothing/head/helmet/space/syndicate/black/orange
|
||||
name = "black space helmet"
|
||||
icon_state = "syndicate-helm-black-orange"
|
||||
item_state = "syndicate-helm-black"
|
||||
|
||||
/obj/item/clothing/suit/space/syndicate/black/orange
|
||||
name = "black and orange space suit"
|
||||
icon_state = "syndicate-black-orange"
|
||||
item_state = "syndicate-black"
|
||||
|
||||
|
||||
//Black-red syndicate space suit
|
||||
/obj/item/clothing/head/helmet/space/syndicate/black/red
|
||||
name = "black space helmet"
|
||||
icon_state = "syndicate-helm-black-red"
|
||||
item_state = "syndicate-helm-black-red"
|
||||
|
||||
/obj/item/clothing/suit/space/syndicate/black/red
|
||||
name = "black and red space suit"
|
||||
icon_state = "syndicate-black-red"
|
||||
item_state = "syndicate-black-red"
|
||||
|
||||
|
||||
//Black with yellow/red engineering syndicate space suit
|
||||
/obj/item/clothing/head/helmet/space/syndicate/black/engie
|
||||
name = "black space helmet"
|
||||
icon_state = "syndicate-helm-black-engie"
|
||||
item_state = "syndicate-helm-black"
|
||||
|
||||
/obj/item/clothing/suit/space/syndicate/black/engie
|
||||
name = "black engineering space suit"
|
||||
icon_state = "syndicate-black-engie"
|
||||
item_state = "syndicate-black"
|
||||
@@ -0,0 +1,399 @@
|
||||
/obj/item/clothing/suit/armor
|
||||
allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic,/obj/item/weapon/kitchen/knife/combat,/obj/item/weapon/tank/internals/emergency_oxygen)
|
||||
body_parts_covered = CHEST
|
||||
cold_protection = CHEST|GROIN
|
||||
min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT
|
||||
heat_protection = CHEST|GROIN
|
||||
max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT
|
||||
strip_delay = 60
|
||||
put_on_delay = 40
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/suit/armor/vest
|
||||
name = "armor"
|
||||
desc = "A slim armored vest that protects against most types of damage."
|
||||
icon_state = "armoralt"
|
||||
item_state = "armoralt"
|
||||
blood_overlay_type = "armor"
|
||||
armor = list(melee = 30, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0)
|
||||
dog_fashion = /datum/dog_fashion/back
|
||||
|
||||
/obj/item/clothing/suit/armor/vest/alt
|
||||
desc = "An armored vest that protects against most types of damage."
|
||||
icon_state = "armor"
|
||||
item_state = "armor"
|
||||
|
||||
/obj/item/clothing/suit/armor/hos
|
||||
name = "armored greatcoat"
|
||||
desc = "A greatcoat enchanced with a special alloy for some protection and style for those with a commanding presence."
|
||||
icon_state = "hos"
|
||||
item_state = "greatcoat"
|
||||
body_parts_covered = CHEST|GROIN|ARMS|LEGS
|
||||
armor = list(melee = 30, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0)
|
||||
cold_protection = CHEST|GROIN|LEGS|ARMS
|
||||
heat_protection = CHEST|GROIN|LEGS|ARMS
|
||||
strip_delay = 80
|
||||
|
||||
/obj/item/clothing/suit/armor/hos/trenchcoat
|
||||
name = "armored trenchoat"
|
||||
desc = "A trenchcoat enchanced with a special lightweight kevlar. The epitome of tactical plainclothes."
|
||||
icon_state = "hostrench"
|
||||
item_state = "hostrench"
|
||||
flags_inv = 0
|
||||
strip_delay = 80
|
||||
|
||||
/obj/item/clothing/suit/armor/vest/warden
|
||||
name = "warden's jacket"
|
||||
desc = "A navy-blue armored jacket with blue shoulder designations and '/Warden/' stitched into one of the chest pockets."
|
||||
icon_state = "warden_alt"
|
||||
item_state = "armor"
|
||||
body_parts_covered = CHEST|GROIN|ARMS
|
||||
cold_protection = CHEST|GROIN|ARMS|HANDS
|
||||
heat_protection = CHEST|GROIN|ARMS|HANDS
|
||||
strip_delay = 70
|
||||
burn_state = FLAMMABLE
|
||||
dog_fashion = null
|
||||
|
||||
/obj/item/clothing/suit/armor/vest/warden/alt
|
||||
name = "warden's armored jacket"
|
||||
desc = "A red jacket with silver rank pips and body armor strapped on top."
|
||||
icon_state = "warden_jacket"
|
||||
|
||||
/obj/item/clothing/suit/armor/vest/leather
|
||||
name = "security overcoat"
|
||||
desc = "Lightly armored leather overcoat meant as casual wear for high-ranking officers. Bears the crest of Nanotrasen Security."
|
||||
icon_state = "leathercoat-sec"
|
||||
item_state = "hostrench"
|
||||
body_parts_covered = CHEST|GROIN|ARMS|LEGS
|
||||
cold_protection = CHEST|GROIN|LEGS|ARMS
|
||||
heat_protection = CHEST|GROIN|LEGS|ARMS
|
||||
dog_fashion = null
|
||||
|
||||
/obj/item/clothing/suit/armor/vest/capcarapace
|
||||
name = "captain's carapace"
|
||||
desc = "An armored vest reinforced with ceramic plates and pauldrons to provide additional protection whilst still offering maximum mobility and flexibility. Issued only to the station's finest, although it does chafe your nipples."
|
||||
icon_state = "capcarapace"
|
||||
item_state = "armor"
|
||||
body_parts_covered = CHEST|GROIN
|
||||
armor = list(melee = 50, bullet = 40, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0)
|
||||
dog_fashion = null
|
||||
|
||||
/obj/item/clothing/suit/armor/vest/capcarapace/alt
|
||||
name = "captain's parade jacket"
|
||||
desc = "For when an armoured vest isn't fashionable enough."
|
||||
icon_state = "capformal"
|
||||
item_state = "capspacesuit"
|
||||
|
||||
/obj/item/clothing/suit/armor/riot
|
||||
name = "riot suit"
|
||||
desc = "A suit of armor with heavy padding to protect against melee attacks."
|
||||
icon_state = "riot"
|
||||
item_state = "swat_suit"
|
||||
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
cold_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
armor = list(melee = 50, bullet = 10, laser = 10, energy = 10, bomb = 0, bio = 0, rad = 0)
|
||||
flags_inv = HIDEJUMPSUIT
|
||||
strip_delay = 80
|
||||
put_on_delay = 60
|
||||
|
||||
/obj/item/clothing/suit/armor/bone
|
||||
name = "bone armor"
|
||||
desc = "A tribal armor plate, crafted from animal bone."
|
||||
icon_state = "bonearmor"
|
||||
item_state = "bonearmor"
|
||||
blood_overlay_type = "armor"
|
||||
armor = list(melee = 35, bullet = 25, laser = 25, energy = 10, bomb = 25, bio = 0, rad = 0)
|
||||
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS
|
||||
|
||||
/obj/item/clothing/suit/armor/bulletproof
|
||||
name = "bulletproof armor"
|
||||
desc = "A bulletproof vest that excels in protecting the wearer against traditional projectile weaponry and explosives to a minor extent."
|
||||
icon_state = "bulletproof"
|
||||
item_state = "armor"
|
||||
blood_overlay_type = "armor"
|
||||
armor = list(melee = 15, bullet = 80, laser = 10, energy = 10, bomb = 40, bio = 0, rad = 0)
|
||||
strip_delay = 70
|
||||
put_on_delay = 50
|
||||
|
||||
/obj/item/clothing/suit/armor/laserproof
|
||||
name = "reflector vest"
|
||||
desc = "A vest that excels in protecting the wearer against energy projectiles, as well as occasionally reflecting them."
|
||||
icon_state = "armor_reflec"
|
||||
item_state = "armor_reflec"
|
||||
blood_overlay_type = "armor"
|
||||
armor = list(melee = 10, bullet = 10, laser = 60, energy = 50, bomb = 0, bio = 0, rad = 0)
|
||||
var/hit_reflect_chance = 40
|
||||
|
||||
/obj/item/clothing/suit/armor/laserproof/IsReflect(def_zone)
|
||||
if(!(def_zone in list("chest", "groin"))) //If not shot where ablative is covering you, you don't get the reflection bonus!
|
||||
return 0
|
||||
if (prob(hit_reflect_chance))
|
||||
return 1
|
||||
|
||||
/obj/item/clothing/suit/armor/vest/det_suit
|
||||
name = "armor"
|
||||
desc = "An armored vest with a detective's badge on it."
|
||||
icon_state = "detective-armor"
|
||||
allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/device/flashlight,/obj/item/weapon/gun/energy,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/device/detective_scanner,/obj/item/device/taperecorder,/obj/item/weapon/melee/classic_baton/telescopic)
|
||||
burn_state = FLAMMABLE
|
||||
dog_fashion = null
|
||||
|
||||
|
||||
//Reactive armor
|
||||
/obj/item/clothing/suit/armor/reactive
|
||||
name = "reactive armor"
|
||||
desc = "Doesn't seem to do much for some reason."
|
||||
var/active = 0
|
||||
var/reactivearmor_cooldown_duration = 0 //cooldown specific to reactive armor
|
||||
var/reactivearmor_cooldown = 0
|
||||
icon_state = "reactiveoff"
|
||||
item_state = "reactiveoff"
|
||||
blood_overlay_type = "armor"
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
actions_types = list(/datum/action/item_action/toggle)
|
||||
unacidable = 1
|
||||
hit_reaction_chance = 50
|
||||
|
||||
|
||||
/obj/item/clothing/suit/armor/reactive/attack_self(mob/user)
|
||||
src.active = !( src.active )
|
||||
if (src.active)
|
||||
user << "<span class='notice'>[src] is now active.</span>"
|
||||
src.icon_state = "reactive"
|
||||
src.item_state = "reactive"
|
||||
else
|
||||
user << "<span class='notice'>[src] is now inactive.</span>"
|
||||
src.icon_state = "reactiveoff"
|
||||
src.item_state = "reactiveoff"
|
||||
src.add_fingerprint(user)
|
||||
return
|
||||
|
||||
/obj/item/clothing/suit/armor/reactive/emp_act(severity)
|
||||
active = 0
|
||||
src.icon_state = "reactiveoff"
|
||||
src.item_state = "reactiveoff"
|
||||
reactivearmor_cooldown = world.time + 200
|
||||
..()
|
||||
|
||||
//When the wearer gets hit, this armor will teleport the user a short distance away (to safety or to more danger, no one knows. That's the fun of it!)
|
||||
/obj/item/clothing/suit/armor/reactive/teleport
|
||||
name = "reactive teleport armor"
|
||||
desc = "Someone seperated our Research Director from his own head!"
|
||||
var/tele_range = 6
|
||||
var/rad_amount= 15
|
||||
reactivearmor_cooldown_duration = 100
|
||||
|
||||
/obj/item/clothing/suit/armor/reactive/teleport/hit_reaction(mob/living/carbon/human/owner, attack_text, final_block_chance)
|
||||
if(!active)
|
||||
return 0
|
||||
if(prob(hit_reaction_chance))
|
||||
var/mob/living/carbon/human/H = owner
|
||||
if(world.time < reactivearmor_cooldown)
|
||||
owner.visible_message("<span class='danger'>The reactive teleport system is still recharging! It fails to teleport [H]!</span>")
|
||||
return
|
||||
owner.visible_message("<span class='danger'>The reactive teleport system flings [H] clear of [attack_text], shutting itself off in the process!</span>")
|
||||
var/list/turfs = new/list()
|
||||
for(var/turf/T in orange(tele_range, H))
|
||||
if(T.density)
|
||||
continue
|
||||
if(T.x>world.maxx-tele_range || T.x<tele_range)
|
||||
continue
|
||||
if(T.y>world.maxy-tele_range || T.y<tele_range)
|
||||
continue
|
||||
turfs += T
|
||||
if(!turfs.len)
|
||||
turfs += pick(/turf in orange(tele_range, H))
|
||||
var/turf/picked = pick(turfs)
|
||||
if(!isturf(picked))
|
||||
return
|
||||
H.forceMove(picked)
|
||||
H.rad_act(rad_amount)
|
||||
reactivearmor_cooldown = world.time + reactivearmor_cooldown_duration
|
||||
return 1
|
||||
return 0
|
||||
|
||||
/obj/item/clothing/suit/armor/reactive/fire
|
||||
name = "reactive incendiary armor"
|
||||
desc = "An experimental suit of armor with a reactive sensor array rigged to a flame emitter. For the stylish pyromaniac."
|
||||
|
||||
/obj/item/clothing/suit/armor/reactive/fire/hit_reaction(mob/living/carbon/human/owner, attack_text)
|
||||
if(!active)
|
||||
return 0
|
||||
if(prob(hit_reaction_chance))
|
||||
if(world.time < reactivearmor_cooldown)
|
||||
owner.visible_message("<span class='danger'>The reactive incendiary armor on [owner] activates, but fails to send out flames as it is still recharging its flame jets!</spawn>")
|
||||
return
|
||||
owner.visible_message("<span class='danger'>The [src] blocks the [attack_text], sending out jets of flame!</span>")
|
||||
for(var/mob/living/carbon/C in range(6, owner))
|
||||
if(C != owner)
|
||||
C.fire_stacks += 8
|
||||
C.IgniteMob()
|
||||
owner.fire_stacks = -20
|
||||
reactivearmor_cooldown = world.time + reactivearmor_cooldown_duration
|
||||
return 1
|
||||
return 0
|
||||
|
||||
|
||||
/obj/item/clothing/suit/armor/reactive/stealth
|
||||
name = "reactive stealth armor"
|
||||
desc = "An experimental suit of armor that renders the wearer invisible on detection of imminent harm, and creates a decoy that runs away from the owner. You can't fight what you can't see."
|
||||
|
||||
/obj/item/clothing/suit/armor/reactive/stealth/hit_reaction(mob/living/carbon/human/owner, attack_text)
|
||||
if(!active)
|
||||
return 0
|
||||
if(prob(hit_reaction_chance))
|
||||
if(world.time < reactivearmor_cooldown)
|
||||
owner.visible_message("<span class='danger'>The reactive stealth system on [owner] activates, but is still recharging its holographic emitters!</spawn>")
|
||||
return
|
||||
var/mob/living/simple_animal/hostile/illusion/escape/E = new(owner.loc)
|
||||
E.Copy_Parent(owner, 50)
|
||||
E.GiveTarget(owner) //so it starts running right away
|
||||
E.Goto(owner, E.move_to_delay, E.minimum_distance)
|
||||
owner.alpha = 0
|
||||
owner.visible_message("<span class='danger'>[owner] is hit by [attack_text] in the chest!</span>") //We pretend to be hit, since blocking it would stop the message otherwise
|
||||
spawn(40)
|
||||
owner.alpha = initial(owner.alpha)
|
||||
reactivearmor_cooldown = world.time + reactivearmor_cooldown_duration
|
||||
return 1
|
||||
|
||||
/obj/item/clothing/suit/armor/reactive/tesla
|
||||
name = "reactive tesla armor"
|
||||
desc = "An experimental suit of armor with sensitive detectors hooked up to a huge capacitor grid, with emitters strutting out of it. Zap."
|
||||
|
||||
/obj/item/clothing/suit/armor/reactive/tesla/hit_reaction(mob/living/carbon/human/owner, attack_text)
|
||||
if(!active)
|
||||
return 0
|
||||
if(prob(hit_reaction_chance))
|
||||
if(world.time < reactivearmor_cooldown)
|
||||
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 reactive telsa armor are still recharging! The armor merely emits some sparks.</spawn>")
|
||||
return
|
||||
owner.visible_message("<span class='danger'>The [src] blocks the [attack_text], sending out arcs of lightning!</span>")
|
||||
for(var/mob/living/M in view(6, owner))
|
||||
if(M == owner)
|
||||
continue
|
||||
owner.Beam(M,icon_state="lightning[rand(1, 12)]",icon='icons/effects/effects.dmi',time=5)
|
||||
M.adjustFireLoss(25)
|
||||
playsound(M, 'sound/machines/defib_zap.ogg', 50, 1, -1)
|
||||
reactivearmor_cooldown = world.time + reactivearmor_cooldown_duration
|
||||
return 1
|
||||
|
||||
/obj/item/clothing/suit/armor/reactive/table
|
||||
name = "reactive table armor"
|
||||
desc = "If you can't beat the memes, embrace them."
|
||||
var/tele_range = 10
|
||||
|
||||
/obj/item/clothing/suit/armor/reactive/table/hit_reaction(mob/living/carbon/human/owner, attack_text)
|
||||
if(!active)
|
||||
return 0
|
||||
if(prob(hit_reaction_chance))
|
||||
var/mob/living/carbon/human/H = owner
|
||||
if(world.time < reactivearmor_cooldown)
|
||||
owner.visible_message("<span class='danger'>The reactive table armor's fabricators are still on cooldown!</span>")
|
||||
return
|
||||
owner.visible_message("<span class='danger'>The reactive teleport system flings [H] clear of [attack_text] and slams them into a fabricated table!</span>")
|
||||
owner.visible_message("<font color='red' size='3'>[H] GOES ON THE TABLE!!!</font>")
|
||||
owner.Weaken(2)
|
||||
var/list/turfs = new/list()
|
||||
for(var/turf/T in orange(tele_range, H))
|
||||
if(T.density)
|
||||
continue
|
||||
if(T.x>world.maxx-tele_range || T.x<tele_range)
|
||||
continue
|
||||
if(T.y>world.maxy-tele_range || T.y<tele_range)
|
||||
continue
|
||||
turfs += T
|
||||
if(!turfs.len)
|
||||
turfs += pick(/turf in orange(tele_range, H))
|
||||
var/turf/picked = pick(turfs)
|
||||
if(!isturf(picked))
|
||||
return
|
||||
H.forceMove(picked)
|
||||
new /obj/structure/table(get_turf(owner))
|
||||
reactivearmor_cooldown = world.time + reactivearmor_cooldown_duration
|
||||
return 1
|
||||
return 0
|
||||
|
||||
/obj/item/clothing/suit/armor/reactive/table/emp_act()
|
||||
return
|
||||
|
||||
//All of the armor below is mostly unused
|
||||
|
||||
/obj/item/clothing/suit/armor/centcom
|
||||
name = "\improper Centcom armor"
|
||||
desc = "A suit that protects against some damage."
|
||||
icon_state = "centcom"
|
||||
item_state = "centcom"
|
||||
w_class = 4//bulky item
|
||||
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals/emergency_oxygen)
|
||||
flags = THICKMATERIAL
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
|
||||
cold_protection = CHEST | GROIN | LEGS | FEET | ARMS | HANDS
|
||||
min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT
|
||||
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
max_heat_protection_temperature = SPACE_SUIT_MAX_TEMP_PROTECT
|
||||
armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100)
|
||||
|
||||
/obj/item/clothing/suit/armor/heavy
|
||||
name = "heavy armor"
|
||||
desc = "A heavily armored suit that protects against moderate damage."
|
||||
icon_state = "heavy"
|
||||
item_state = "swat_suit"
|
||||
w_class = 4//bulky item
|
||||
gas_transfer_coefficient = 0.90
|
||||
flags = THICKMATERIAL
|
||||
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
slowdown = 3
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
|
||||
armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100)
|
||||
|
||||
/obj/item/clothing/suit/armor/tdome
|
||||
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
|
||||
flags = THICKMATERIAL
|
||||
cold_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100)
|
||||
|
||||
/obj/item/clothing/suit/armor/tdome/red
|
||||
name = "thunderdome suit"
|
||||
desc = "Reddish armor."
|
||||
icon_state = "tdred"
|
||||
item_state = "tdred"
|
||||
|
||||
/obj/item/clothing/suit/armor/tdome/green
|
||||
name = "thunderdome suit"
|
||||
desc = "Pukish armor." //classy.
|
||||
icon_state = "tdgreen"
|
||||
item_state = "tdgreen"
|
||||
|
||||
|
||||
/obj/item/clothing/suit/armor/riot/knight
|
||||
name = "plate armour"
|
||||
desc = "A classic suit of plate armour, highly effective at stopping melee attacks."
|
||||
icon_state = "knight_green"
|
||||
item_state = "knight_green"
|
||||
|
||||
/obj/item/clothing/suit/armor/riot/knight/yellow
|
||||
icon_state = "knight_yellow"
|
||||
item_state = "knight_yellow"
|
||||
|
||||
/obj/item/clothing/suit/armor/riot/knight/blue
|
||||
icon_state = "knight_blue"
|
||||
item_state = "knight_blue"
|
||||
|
||||
/obj/item/clothing/suit/armor/riot/knight/red
|
||||
icon_state = "knight_red"
|
||||
item_state = "knight_red"
|
||||
|
||||
/obj/item/clothing/suit/armor/riot/knight/templar
|
||||
name = "crusader armour"
|
||||
desc = "God wills it!"
|
||||
icon_state = "knight_templar"
|
||||
item_state = "knight_templar"
|
||||
|
||||
|
||||
@@ -0,0 +1,90 @@
|
||||
//Biosuit complete with shoes (in the item sprite)
|
||||
/obj/item/clothing/head/bio_hood
|
||||
name = "bio hood"
|
||||
icon_state = "bio"
|
||||
desc = "A hood that protects the head and face from biological comtaminants."
|
||||
permeability_coefficient = 0.01
|
||||
flags = THICKMATERIAL
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20)
|
||||
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR|HIDEFACE
|
||||
unacidable = 1
|
||||
burn_state = FIRE_PROOF
|
||||
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
|
||||
|
||||
/obj/item/clothing/suit/bio_suit
|
||||
name = "bio suit"
|
||||
desc = "A suit that protects against biological contamination."
|
||||
icon_state = "bio"
|
||||
item_state = "bio_suit"
|
||||
w_class = 4//bulky item
|
||||
gas_transfer_coefficient = 0.01
|
||||
permeability_coefficient = 0.01
|
||||
flags = THICKMATERIAL
|
||||
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
slowdown = 1
|
||||
allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/pen,/obj/item/device/flashlight/pen, /obj/item/weapon/reagent_containers/dropper, /obj/item/weapon/reagent_containers/syringe, /obj/item/weapon/reagent_containers/hypospray)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20)
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
|
||||
strip_delay = 70
|
||||
put_on_delay = 70
|
||||
unacidable = 1
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
//Standard biosuit, orange stripe
|
||||
/obj/item/clothing/head/bio_hood/general
|
||||
icon_state = "bio_general"
|
||||
|
||||
/obj/item/clothing/suit/bio_suit/general
|
||||
icon_state = "bio_general"
|
||||
|
||||
|
||||
//Virology biosuit, green stripe
|
||||
/obj/item/clothing/head/bio_hood/virology
|
||||
icon_state = "bio_virology"
|
||||
|
||||
/obj/item/clothing/suit/bio_suit/virology
|
||||
icon_state = "bio_virology"
|
||||
|
||||
|
||||
//Security biosuit, grey with red stripe across the chest
|
||||
/obj/item/clothing/head/bio_hood/security
|
||||
armor = list(melee = 25, bullet = 15, laser = 25, energy = 10, bomb = 25, bio = 100, rad = 20)
|
||||
icon_state = "bio_security"
|
||||
|
||||
/obj/item/clothing/suit/bio_suit/security
|
||||
armor = list(melee = 25, bullet = 15, laser = 25, energy = 10, bomb = 25, bio = 100, rad = 20)
|
||||
icon_state = "bio_security"
|
||||
|
||||
|
||||
//Janitor's biosuit, grey with purple arms
|
||||
/obj/item/clothing/head/bio_hood/janitor
|
||||
icon_state = "bio_janitor"
|
||||
|
||||
/obj/item/clothing/suit/bio_suit/janitor
|
||||
icon_state = "bio_janitor"
|
||||
|
||||
|
||||
//Scientist's biosuit, white with a pink-ish hue
|
||||
/obj/item/clothing/head/bio_hood/scientist
|
||||
icon_state = "bio_scientist"
|
||||
|
||||
/obj/item/clothing/suit/bio_suit/scientist
|
||||
icon_state = "bio_scientist"
|
||||
|
||||
|
||||
//CMO's biosuit, blue stripe
|
||||
/obj/item/clothing/suit/bio_suit/cmo
|
||||
icon_state = "bio_cmo"
|
||||
|
||||
/obj/item/clothing/head/bio_hood/cmo
|
||||
icon_state = "bio_cmo"
|
||||
|
||||
|
||||
//Plague Dr mask can be found in clothing/masks/gasmask.dm
|
||||
/obj/item/clothing/suit/bio_suit/plaguedoctorsuit
|
||||
name = "plague doctor suit"
|
||||
desc = "It protected doctors from the Black Death, back then. You bet your arse it's gonna help you against viruses."
|
||||
icon_state = "plaguedoctor"
|
||||
item_state = "bio_suit"
|
||||
strip_delay = 40
|
||||
put_on_delay = 20
|
||||
@@ -0,0 +1,135 @@
|
||||
//Cloaks. No, not THAT kind of cloak.
|
||||
|
||||
/obj/item/clothing/suit/cloak
|
||||
name = "brown cloak"
|
||||
desc = "It's a cape that can be worn on your back."
|
||||
icon = 'icons/obj/clothing/cloaks.dmi'
|
||||
icon_state = "qmcloak"
|
||||
item_state = "qmcloak"
|
||||
w_class = 2
|
||||
body_parts_covered = CHEST|GROIN|LEGS|ARMS
|
||||
|
||||
/obj/item/clothing/head/cloakhood
|
||||
name = "cloak hood"
|
||||
icon = 'icons/obj/clothing/hats.dmi'
|
||||
icon_state = "golhood"
|
||||
desc = "A hood for a cloak"
|
||||
body_parts_covered = HEAD
|
||||
flags = NODROP
|
||||
flags_inv = HIDEHAIR|HIDEEARS
|
||||
|
||||
/obj/item/clothing/cloak/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is strangling themself with [src]! It looks like they're trying to commit suicide.</span>")
|
||||
return(OXYLOSS)
|
||||
|
||||
/obj/item/clothing/suit/cloak/hos
|
||||
name = "head of security's cloak"
|
||||
desc = "Worn by Securistan, ruling the station with an iron fist. It's slightly armored."
|
||||
icon_state = "hoscloak"
|
||||
allowed = list(/obj/item/weapon/gun/energy/gun/hos)
|
||||
armor = list(melee = 30, bullet = 30, laser = 10, energy = 10, bomb = 25, bio = 0, rad = 0)
|
||||
|
||||
/obj/item/clothing/suit/cloak/qm
|
||||
name = "quartermaster's cloak"
|
||||
desc = "Worn by Cargonia, supplying the station with the necessary tools for survival."
|
||||
|
||||
/obj/item/clothing/suit/cloak/cmo
|
||||
name = "chief medical officer's cloak"
|
||||
desc = "Worn by Meditopia, the valiant men and women keeping pestilence at bay. It's slightly shielded from contaminants."
|
||||
icon_state = "cmocloak"
|
||||
allowed = list(/obj/item/weapon/reagent_containers/hypospray/CMO)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 25, rad = 0)
|
||||
|
||||
/obj/item/clothing/suit/cloak/ce
|
||||
name = "chief engineer's cloak"
|
||||
desc = "Worn by Engitopia, wielders of an unlimited power. It's slightly shielded against radiation."
|
||||
icon_state = "cecloak"
|
||||
allowed = list(/obj/item/weapon/rcd, /obj/item/weapon/pipe_dispenser)
|
||||
armor = list(melee = 10, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 10)
|
||||
|
||||
/obj/item/clothing/suit/cloak/rd
|
||||
name = "research director's cloak."
|
||||
desc = "Worn by Sciencia, thaumaturges and researchers of the universe. It's slightly shielded from contaminants."
|
||||
icon_state = "rdcloak"
|
||||
allowed = list(/obj/item/weapon/hand_tele, /obj/item/weapon/storage/part_replacer)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 10, bio = 10, rad = 0)
|
||||
|
||||
/obj/item/clothing/suit/cloak/cap
|
||||
name = "captain's cloak"
|
||||
desc = "Worn by the commander of Space Station 13."
|
||||
icon_state = "capcloak"
|
||||
allowed = list(/obj/item/weapon/gun/energy/laser/captain)
|
||||
armor = list(melee = 30, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 10, rad = 10)
|
||||
|
||||
/obj/item/clothing/suit/hooded/cloak/drake
|
||||
name = "drake armour"
|
||||
icon_state = "dragon"
|
||||
desc = "A suit of armour fashioned from the remains of an ash drake. "
|
||||
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals, /obj/item/weapon/resonator, /obj/item/device/mining_scanner, /obj/item/device/t_scanner/adv_mining_scanner, /obj/item/weapon/gun/energy/kinetic_accelerator, /obj/item/weapon/pickaxe, /obj/item/weapon/twohanded/spear)
|
||||
armor = list(melee = 70, bullet = 30, laser = 50, energy = 40, bomb = 70, bio = 60, rad = 50)
|
||||
hooded = 1
|
||||
hoodtype = /obj/item/clothing/head/cloakhood/drake
|
||||
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT
|
||||
unacidable = 1
|
||||
|
||||
/obj/item/clothing/head/cloakhood/drake
|
||||
name = "drake helm"
|
||||
icon_state = "dragon"
|
||||
desc = "The skull of a dragon."
|
||||
armor = list(melee = 70, bullet = 30, laser = 50, energy = 40, bomb = 70, bio = 60, rad = 50)
|
||||
heat_protection = HEAD
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
|
||||
unacidable = 1
|
||||
|
||||
/* //wip
|
||||
/obj/item/clothing/cloak/wizard //Not actually obtainable until proper balancing can be done
|
||||
name = "cloak of invisibility"
|
||||
desc = "A tattered old thing that apparently gifts the wearer with near-invisibility."
|
||||
armor = list(melee = 10, bullet = 10, laser = 10, energy = 10, bomb = 10, bio = 10, rad = 10)
|
||||
action_button_name = "Flaunt Cloak"
|
||||
var/invisible = 0
|
||||
|
||||
/obj/item/clothing/cloak/wizard/ui_action_click()
|
||||
toggleInvisibility(usr)
|
||||
return
|
||||
|
||||
/obj/item/clothing/cloak/wizard/proc/toggleInvisibility(mob/user)
|
||||
if(user.slot_back != src)
|
||||
user << "<span class='warning'>You need to be wearing the cloak first!</span>"
|
||||
return
|
||||
user.visible_message("<span class='notice'>[user] flaunts [src]!</span>")
|
||||
if(!invisible)
|
||||
makeInvisible(user)
|
||||
return
|
||||
if(invisible)
|
||||
breakInvisible(user)
|
||||
return
|
||||
|
||||
/obj/item/clothing/cloak/wizard/proc/makeInvisible(mob/user)
|
||||
if(!invisible)
|
||||
user.visible_message("<span class='warning'>[user] suddenly fades away!</span>", \
|
||||
"<span class='notice'>You have become nearly invisible. This will require slow movement and will break upon taking damage.</span>")
|
||||
flags |= NODROP //Cannot unequip while invisible
|
||||
user.alpha = 10
|
||||
slowdown = 2
|
||||
invisible = 1
|
||||
|
||||
/obj/item/clothing/cloak/wizard/proc/breakInvisible(mob/user)
|
||||
if(invisible)
|
||||
user.visible_message("<span class='warning'>[user] suddenly appears from thin air!</span>", \
|
||||
"<span class='warning'>The enchantment has broken! You are visible again.</span>")
|
||||
flags -= NODROP
|
||||
user.alpha = 255
|
||||
slowdown = 0
|
||||
invisible = 0
|
||||
|
||||
/obj/item/clothing/cloak/wizard/IsShield()
|
||||
breakInvisible(src.loc)
|
||||
return 0
|
||||
|
||||
/obj/item/clothing/cloak/wizard/IsReflect()
|
||||
breakInvisible(src.loc)
|
||||
return 0
|
||||
*/
|
||||
@@ -0,0 +1,164 @@
|
||||
/*
|
||||
* Job related
|
||||
*/
|
||||
|
||||
//Botanist
|
||||
/obj/item/clothing/suit/apron
|
||||
name = "apron"
|
||||
desc = "A basic blue apron."
|
||||
icon_state = "apron"
|
||||
item_state = "apron"
|
||||
blood_overlay_type = "armor"
|
||||
body_parts_covered = CHEST|GROIN
|
||||
allowed = list(/obj/item/weapon/reagent_containers/spray/plantbgone,/obj/item/device/plant_analyzer,/obj/item/seeds,/obj/item/weapon/reagent_containers/glass/bottle, /obj/item/weapon/reagent_containers/glass/beaker, /obj/item/weapon/cultivator,/obj/item/weapon/reagent_containers/spray/pestspray,/obj/item/weapon/hatchet,/obj/item/weapon/storage/bag/plants)
|
||||
|
||||
//Captain
|
||||
/obj/item/clothing/suit/captunic
|
||||
name = "captain's parade tunic"
|
||||
desc = "Worn by a Captain to show their class."
|
||||
icon_state = "captunic"
|
||||
item_state = "bio_suit"
|
||||
body_parts_covered = CHEST|GROIN|LEGS|ARMS
|
||||
flags_inv = HIDEJUMPSUIT
|
||||
allowed = list(/obj/item/weapon/disk, /obj/item/weapon/stamp, /obj/item/weapon/reagent_containers/food/drinks/flask, /obj/item/weapon/melee, /obj/item/weapon/storage/lockbox/medal, /obj/item/device/assembly/flash/handheld, /obj/item/weapon/storage/box/matches, /obj/item/weapon/lighter, /obj/item/clothing/mask/cigarette, /obj/item/weapon/storage/fancy/cigarettes, /obj/item/weapon/tank/internals/emergency_oxygen)
|
||||
|
||||
//Chaplain
|
||||
/obj/item/clothing/suit/hooded/chaplain_hoodie
|
||||
name = "chaplain hoodie"
|
||||
desc = "This suit says to you 'hush'!"
|
||||
icon_state = "chaplain_hoodie"
|
||||
item_state = "chaplain_hoodie"
|
||||
body_parts_covered = CHEST|GROIN|LEGS|ARMS
|
||||
allowed = list(/obj/item/weapon/storage/book/bible, /obj/item/weapon/nullrod, /obj/item/weapon/reagent_containers/food/drinks/bottle/holywater, /obj/item/weapon/storage/fancy/candle_box, /obj/item/candle, /obj/item/weapon/tank/internals/emergency_oxygen)
|
||||
hooded = 1
|
||||
hoodtype = /obj/item/clothing/head/chaplain_hood
|
||||
|
||||
/obj/item/clothing/head/chaplain_hood
|
||||
name = "chaplain hood"
|
||||
desc = "For protecting your identity when immolating demons."
|
||||
icon_state = "chaplain_hood"
|
||||
body_parts_covered = HEAD
|
||||
flags = NODROP
|
||||
flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS
|
||||
|
||||
//Chaplain
|
||||
/obj/item/clothing/suit/nun
|
||||
name = "nun robe"
|
||||
desc = "Maximum piety in this star system."
|
||||
icon_state = "nun"
|
||||
item_state = "nun"
|
||||
body_parts_covered = CHEST|GROIN|LEGS|ARMS|HANDS
|
||||
flags_inv = HIDESHOES|HIDEJUMPSUIT
|
||||
allowed = list(/obj/item/weapon/storage/book/bible, /obj/item/weapon/nullrod, /obj/item/weapon/reagent_containers/food/drinks/bottle/holywater, /obj/item/weapon/storage/fancy/candle_box, /obj/item/candle, /obj/item/weapon/tank/internals/emergency_oxygen)
|
||||
|
||||
//Chef
|
||||
/obj/item/clothing/suit/toggle/chef
|
||||
name = "chef's apron"
|
||||
desc = "An apron-jacket used by a high class chef."
|
||||
icon_state = "chef"
|
||||
item_state = "chef"
|
||||
gas_transfer_coefficient = 0.90
|
||||
permeability_coefficient = 0.50
|
||||
body_parts_covered = CHEST|GROIN|ARMS
|
||||
allowed = list(/obj/item/weapon/kitchen)
|
||||
togglename = "sleeves"
|
||||
|
||||
//Cook
|
||||
/obj/item/clothing/suit/apron/chef
|
||||
name = "cook's apron"
|
||||
desc = "A basic, dull, white chef's apron."
|
||||
icon_state = "apronchef"
|
||||
item_state = "apronchef"
|
||||
blood_overlay_type = "armor"
|
||||
body_parts_covered = CHEST|GROIN
|
||||
allowed = list(/obj/item/weapon/kitchen)
|
||||
|
||||
//Detective
|
||||
/obj/item/clothing/suit/det_suit
|
||||
name = "trenchcoat"
|
||||
desc = "An 18th-century multi-purpose trenchcoat. Someone who wears this means serious business."
|
||||
icon_state = "detective"
|
||||
item_state = "det_suit"
|
||||
blood_overlay_type = "coat"
|
||||
body_parts_covered = CHEST|GROIN|LEGS|ARMS
|
||||
allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/device/flashlight,/obj/item/weapon/gun/energy,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/device/detective_scanner,/obj/item/device/taperecorder,/obj/item/weapon/melee/classic_baton/telescopic)
|
||||
armor = list(melee = 25, bullet = 10, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0)
|
||||
cold_protection = CHEST|GROIN|LEGS|ARMS
|
||||
heat_protection = CHEST|GROIN|LEGS|ARMS
|
||||
|
||||
/obj/item/clothing/suit/det_suit/grey
|
||||
name = "noir trenchcoat"
|
||||
desc = "A hard-boiled private investigator's grey trenchcoat."
|
||||
icon_state = "greydet"
|
||||
item_state = "greydet"
|
||||
|
||||
//Engineering
|
||||
/obj/item/clothing/suit/hazardvest
|
||||
name = "hazard vest"
|
||||
desc = "A high-visibility vest used in work zones."
|
||||
icon_state = "hazard"
|
||||
item_state = "hazard"
|
||||
blood_overlay_type = "armor"
|
||||
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/device/t_scanner,/obj/item/device/radio)
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
//Lawyer
|
||||
/obj/item/clothing/suit/toggle/lawyer
|
||||
name = "blue suit jacket"
|
||||
desc = "A snappy dress jacket."
|
||||
icon_state = "suitjacket_blue"
|
||||
item_state = "suitjacket_blue"
|
||||
blood_overlay_type = "coat"
|
||||
body_parts_covered = CHEST|ARMS
|
||||
togglename = "buttons"
|
||||
|
||||
/obj/item/clothing/suit/toggle/lawyer/purple
|
||||
name = "purple suit jacket"
|
||||
desc = "A foppish dress jacket."
|
||||
icon_state = "suitjacket_purp"
|
||||
item_state = "suitjacket_purp"
|
||||
|
||||
/obj/item/clothing/suit/toggle/lawyer/black
|
||||
name = "black suit jacket"
|
||||
desc = "A professional suit jacket."
|
||||
icon_state = "suitjacket_black"
|
||||
item_state = "ro_suit"
|
||||
|
||||
|
||||
//Mime
|
||||
/obj/item/clothing/suit/suspenders
|
||||
name = "suspenders"
|
||||
desc = "They suspend the illusion of the mime's play."
|
||||
icon = 'icons/obj/clothing/belts.dmi'
|
||||
icon_state = "suspenders"
|
||||
blood_overlay_type = "armor" //it's the less thing that I can put here
|
||||
|
||||
//Security
|
||||
/obj/item/clothing/suit/security/officer
|
||||
name = "security officer's jacket"
|
||||
desc = "This jacket is for those special occasions when a security officer isn't required to wear their armor."
|
||||
icon_state = "officerbluejacket"
|
||||
item_state = "officerbluejacket"
|
||||
body_parts_covered = CHEST|ARMS
|
||||
|
||||
/obj/item/clothing/suit/security/warden
|
||||
name = "warden's jacket"
|
||||
desc = "Perfectly suited for the warden that wants to leave an impression of style on those who visit the brig."
|
||||
icon_state = "wardenbluejacket"
|
||||
item_state = "wardenbluejacket"
|
||||
body_parts_covered = CHEST|ARMS
|
||||
|
||||
/obj/item/clothing/suit/security/hos
|
||||
name = "head of security's jacket"
|
||||
desc = "This piece of clothing was specifically designed for asserting superior authority."
|
||||
icon_state = "hosbluejacket"
|
||||
item_state = "hosbluejacket"
|
||||
body_parts_covered = CHEST|ARMS
|
||||
|
||||
|
||||
//Surgeon
|
||||
/obj/item/clothing/suit/apron/surgical
|
||||
name = "surgical apron"
|
||||
desc = "A sterile blue surgical apron."
|
||||
icon_state = "surgical"
|
||||
allowed = list(/obj/item/weapon/scalpel, /obj/item/weapon/surgical_drapes, /obj/item/weapon/cautery, /obj/item/weapon/hemostat, /obj/item/weapon/retractor)
|
||||
@@ -0,0 +1,48 @@
|
||||
/obj/item/clothing/suit/toggle/labcoat
|
||||
name = "labcoat"
|
||||
desc = "A suit that protects against minor chemical spills."
|
||||
icon_state = "labcoat"
|
||||
item_state = "labcoat"
|
||||
blood_overlay_type = "coat"
|
||||
body_parts_covered = CHEST|ARMS
|
||||
allowed = list(/obj/item/device/analyzer,/obj/item/stack/medical,/obj/item/weapon/dnainjector,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/hypospray,/obj/item/device/healthanalyzer,/obj/item/device/flashlight/pen,/obj/item/weapon/reagent_containers/glass/bottle,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/pill,/obj/item/weapon/storage/pill_bottle,/obj/item/weapon/paper,/obj/item/weapon/melee/classic_baton/telescopic,/obj/item/weapon/soap,/obj/item/device/sensor_device,/obj/item/weapon/tank/internals/emergency_oxygen)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 50, rad = 0)
|
||||
togglename = "buttons"
|
||||
|
||||
/obj/item/clothing/suit/toggle/labcoat/cmo
|
||||
name = "chief medical officer's labcoat"
|
||||
desc = "Bluer than the standard model."
|
||||
icon_state = "labcoat_cmo"
|
||||
item_state = "labcoat_cmo"
|
||||
|
||||
/obj/item/clothing/suit/toggle/labcoat/emt
|
||||
name = "EMT's jacket"
|
||||
desc = "A dark blue jacket with reflective strips for emergency medical technicians."
|
||||
icon_state = "labcoat_emt"
|
||||
item_state = "labcoat_cmo"
|
||||
|
||||
/obj/item/clothing/suit/toggle/labcoat/mad
|
||||
name = "\improper The Mad's labcoat"
|
||||
desc = "It makes you look capable of konking someone on the noggin and shooting them into space."
|
||||
icon_state = "labgreen"
|
||||
item_state = "labgreen"
|
||||
|
||||
/obj/item/clothing/suit/toggle/labcoat/genetics
|
||||
name = "geneticist labcoat"
|
||||
desc = "A suit that protects against minor chemical spills. Has a blue stripe on the shoulder."
|
||||
icon_state = "labcoat_gen"
|
||||
|
||||
/obj/item/clothing/suit/toggle/labcoat/chemist
|
||||
name = "chemist labcoat"
|
||||
desc = "A suit that protects against minor chemical spills. Has an orange stripe on the shoulder."
|
||||
icon_state = "labcoat_chem"
|
||||
|
||||
/obj/item/clothing/suit/toggle/labcoat/virologist
|
||||
name = "virologist labcoat"
|
||||
desc = "A suit that protects against minor chemical spills. Offers slightly more protection against biohazards than the standard model. Has a green stripe on the shoulder."
|
||||
icon_state = "labcoat_vir"
|
||||
|
||||
/obj/item/clothing/suit/toggle/labcoat/science
|
||||
name = "scientist labcoat"
|
||||
desc = "A suit that protects against minor chemical spills. Has a purple stripe on the shoulder."
|
||||
icon_state = "labcoat_tox"
|
||||
@@ -0,0 +1,523 @@
|
||||
/*
|
||||
* Contains:
|
||||
* Lasertag
|
||||
* Costume
|
||||
* Misc
|
||||
*/
|
||||
|
||||
/*
|
||||
* Lasertag
|
||||
*/
|
||||
/obj/item/clothing/suit/bluetag
|
||||
name = "blue laser tag armor"
|
||||
desc = "A piece of plastic armor. It has sensors that react to red light." //Lasers are concentrated light
|
||||
icon_state = "bluetag"
|
||||
item_state = "bluetag"
|
||||
blood_overlay_type = "armor"
|
||||
body_parts_covered = CHEST
|
||||
allowed = list (/obj/item/weapon/gun/energy/laser/bluetag)
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/suit/redtag
|
||||
name = "red laser tag armor"
|
||||
desc = "A piece of plastic armor. It has sensors that react to blue light."
|
||||
icon_state = "redtag"
|
||||
item_state = "redtag"
|
||||
blood_overlay_type = "armor"
|
||||
body_parts_covered = CHEST
|
||||
allowed = list (/obj/item/weapon/gun/energy/laser/redtag)
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/*
|
||||
* Costume
|
||||
*/
|
||||
/obj/item/clothing/suit/pirate
|
||||
name = "pirate coat"
|
||||
desc = "Yarr."
|
||||
icon_state = "pirate"
|
||||
item_state = "pirate"
|
||||
allowed = list(/obj/item/weapon/melee/energy/sword/pirate, /obj/item/clothing/glasses/eyepatch, /obj/item/weapon/reagent_containers/food/drinks/bottle/rum)
|
||||
|
||||
/obj/item/clothing/suit/hgpirate
|
||||
name = "pirate captain coat"
|
||||
desc = "Yarr."
|
||||
icon_state = "hgpirate"
|
||||
item_state = "hgpirate"
|
||||
allowed = list(/obj/item/weapon/melee/energy/sword/pirate, /obj/item/clothing/glasses/eyepatch, /obj/item/weapon/reagent_containers/food/drinks/bottle/rum)
|
||||
|
||||
|
||||
/obj/item/clothing/suit/cyborg_suit
|
||||
name = "cyborg suit"
|
||||
desc = "Suit for a cyborg costume."
|
||||
icon_state = "death"
|
||||
item_state = "death"
|
||||
flags = CONDUCT
|
||||
fire_resist = T0C+5200
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
|
||||
|
||||
|
||||
/obj/item/clothing/suit/justice
|
||||
name = "justice suit"
|
||||
desc = "this pretty much looks ridiculous" //Needs no fixing
|
||||
icon_state = "justice"
|
||||
item_state = "justice"
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
|
||||
|
||||
|
||||
/obj/item/clothing/suit/judgerobe
|
||||
name = "judge's robe"
|
||||
desc = "This robe commands authority."
|
||||
icon_state = "judge"
|
||||
item_state = "judge"
|
||||
body_parts_covered = CHEST|GROIN|LEGS|ARMS
|
||||
allowed = list(/obj/item/weapon/storage/fancy/cigarettes,/obj/item/stack/spacecash)
|
||||
flags_inv = HIDEJUMPSUIT
|
||||
|
||||
|
||||
/obj/item/clothing/suit/apron/overalls
|
||||
name = "coveralls"
|
||||
desc = "A set of denim overalls."
|
||||
icon_state = "overalls"
|
||||
item_state = "overalls"
|
||||
body_parts_covered = CHEST|GROIN|LEGS
|
||||
|
||||
|
||||
/obj/item/clothing/suit/syndicatefake
|
||||
name = "black and red space suit replica"
|
||||
icon_state = "syndicate-black-red"
|
||||
item_state = "syndicate-black-red"
|
||||
desc = "A plastic replica of the Syndicate space suit. You'll look just like a real murderous Syndicate agent in this! This is a toy, it is not made for use in space!"
|
||||
w_class = 3
|
||||
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/toy)
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/suit/hastur
|
||||
name = "\improper Hastur's robe"
|
||||
desc = "Robes not meant to be worn by man."
|
||||
icon_state = "hastur"
|
||||
item_state = "hastur"
|
||||
body_parts_covered = CHEST|GROIN|LEGS|ARMS
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
|
||||
|
||||
|
||||
/obj/item/clothing/suit/imperium_monk
|
||||
name = "\improper Imperium monk suit"
|
||||
desc = "Have YOU killed a xeno today?"
|
||||
icon_state = "imperium_monk"
|
||||
item_state = "imperium_monk"
|
||||
body_parts_covered = CHEST|GROIN|LEGS|ARMS
|
||||
flags_inv = HIDESHOES|HIDEJUMPSUIT
|
||||
allowed = list(/obj/item/weapon/storage/book/bible, /obj/item/weapon/nullrod, /obj/item/weapon/reagent_containers/food/drinks/bottle/holywater, /obj/item/weapon/storage/fancy/candle_box, /obj/item/candle, /obj/item/weapon/tank/internals/emergency_oxygen)
|
||||
|
||||
|
||||
/obj/item/clothing/suit/chickensuit
|
||||
name = "chicken suit"
|
||||
desc = "A suit made long ago by the ancient empire KFC."
|
||||
icon_state = "chickensuit"
|
||||
item_state = "chickensuit"
|
||||
body_parts_covered = CHEST|ARMS|GROIN|LEGS|FEET
|
||||
flags_inv = HIDESHOES|HIDEJUMPSUIT
|
||||
|
||||
|
||||
/obj/item/clothing/suit/monkeysuit
|
||||
name = "monkey suit"
|
||||
desc = "A suit that looks like a primate."
|
||||
icon_state = "monkeysuit"
|
||||
item_state = "monkeysuit"
|
||||
body_parts_covered = CHEST|ARMS|GROIN|LEGS|FEET|HANDS
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
|
||||
|
||||
/obj/item/clothing/suit/toggle/owlwings
|
||||
name = "owl cloak"
|
||||
desc = "A soft brown cloak made of synthetic feathers. Soft to the touch, stylish, and a 2 meter wing span that will drive the ladies mad."
|
||||
icon_state = "owl_wings"
|
||||
item_state = "owl_wings"
|
||||
togglename = "wings"
|
||||
body_parts_covered = ARMS|CHEST
|
||||
allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic)
|
||||
actions_types = list(/datum/action/item_action/toggle_wings)
|
||||
|
||||
/obj/item/clothing/suit/toggle/owlwings/griffinwings
|
||||
name = "griffon cloak"
|
||||
desc = "A plush white cloak made of synthetic feathers. Soft to the touch, stylish, and a 2 meter wing span that will drive your captives mad."
|
||||
icon_state = "griffin_wings"
|
||||
item_state = "griffin_wings"
|
||||
|
||||
|
||||
/obj/item/clothing/suit/holidaypriest
|
||||
name = "holiday priest"
|
||||
desc = "This is a nice holiday, my son."
|
||||
icon_state = "holidaypriest"
|
||||
item_state = "w_suit"
|
||||
body_parts_covered = CHEST|GROIN|LEGS|ARMS
|
||||
flags_inv = HIDEJUMPSUIT
|
||||
allowed = list(/obj/item/weapon/storage/book/bible, /obj/item/weapon/nullrod, /obj/item/weapon/reagent_containers/food/drinks/bottle/holywater, /obj/item/weapon/storage/fancy/candle_box, /obj/item/candle, /obj/item/weapon/tank/internals/emergency_oxygen)
|
||||
|
||||
|
||||
/obj/item/clothing/suit/cardborg
|
||||
name = "cardborg suit"
|
||||
desc = "An ordinary cardboard box with holes cut in the sides."
|
||||
icon_state = "cardborg"
|
||||
item_state = "cardborg"
|
||||
body_parts_covered = CHEST|GROIN
|
||||
flags_inv = HIDEJUMPSUIT
|
||||
dog_fashion = /datum/dog_fashion/back
|
||||
|
||||
/obj/item/clothing/suit/cardborg/equipped(mob/living/user, slot)
|
||||
..()
|
||||
if(slot == slot_wear_suit)
|
||||
disguise(user)
|
||||
|
||||
/obj/item/clothing/suit/cardborg/dropped(mob/living/user)
|
||||
..()
|
||||
user.remove_alt_appearance("standard_borg_disguise")
|
||||
|
||||
/obj/item/clothing/suit/cardborg/proc/disguise(mob/living/carbon/human/H, obj/item/clothing/head/cardborg/borghead)
|
||||
if(istype(H))
|
||||
if(!borghead)
|
||||
borghead = H.head
|
||||
if(istype(borghead, /obj/item/clothing/head/cardborg)) //why is this done this way? because equipped() is called BEFORE THE ITEM IS IN THE SLOT WHYYYY
|
||||
var/image/I = image(icon = 'icons/mob/robots.dmi' , icon_state = "robot", loc = H)
|
||||
I.override = 1
|
||||
I.overlays += image(icon = 'icons/mob/robots.dmi' , icon_state = "eyes-standard") //gotta look realistic
|
||||
H.add_alt_appearance("standard_borg_disguise", I, silicon_mobs+H) //you look like a robot to robots! (including yourself because you're totally a robot)
|
||||
|
||||
|
||||
/obj/item/clothing/suit/snowman
|
||||
name = "snowman outfit"
|
||||
desc = "Two white spheres covered in white glitter. 'Tis the season."
|
||||
icon_state = "snowman"
|
||||
item_state = "snowman"
|
||||
body_parts_covered = CHEST|GROIN
|
||||
flags_inv = HIDEJUMPSUIT
|
||||
|
||||
/obj/item/clothing/suit/poncho
|
||||
name = "poncho"
|
||||
desc = "Your classic, non-racist poncho."
|
||||
icon_state = "classicponcho"
|
||||
item_state = "classicponcho"
|
||||
|
||||
/obj/item/clothing/suit/poncho/green
|
||||
name = "green poncho"
|
||||
desc = "Your classic, non-racist poncho. This one is green."
|
||||
icon_state = "greenponcho"
|
||||
item_state = "greenponcho"
|
||||
|
||||
/obj/item/clothing/suit/poncho/red
|
||||
name = "red poncho"
|
||||
desc = "Your classic, non-racist poncho. This one is red."
|
||||
icon_state = "redponcho"
|
||||
item_state = "redponcho"
|
||||
|
||||
/obj/item/clothing/suit/poncho/ponchoshame
|
||||
name = "poncho of shame"
|
||||
desc = "Forced to live on your shameful acting as a fake Mexican, you and your poncho have grown inseperable. Literally."
|
||||
icon_state = "ponchoshame"
|
||||
item_state = "ponchoshame"
|
||||
flags = NODROP
|
||||
|
||||
/obj/item/clothing/suit/whitedress
|
||||
name = "white dress"
|
||||
desc = "A fancy white dress."
|
||||
icon_state = "white_dress"
|
||||
item_state = "w_suit"
|
||||
body_parts_covered = CHEST|GROIN|LEGS|FEET
|
||||
flags_inv = HIDEJUMPSUIT|HIDESHOES
|
||||
|
||||
/obj/item/clothing/suit/hooded/carp_costume
|
||||
name = "carp costume"
|
||||
desc = "A costume made from 'synthetic' carp scales, it smells."
|
||||
icon_state = "carp_casual"
|
||||
item_state = "labcoat"
|
||||
body_parts_covered = CHEST|GROIN|ARMS
|
||||
cold_protection = CHEST|GROIN|ARMS
|
||||
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT //Space carp like space, so you should too
|
||||
allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen, /obj/item/weapon/gun/projectile/automatic/speargun)
|
||||
hooded = 1
|
||||
hoodtype = /obj/item/clothing/head/carp_hood
|
||||
|
||||
/obj/item/clothing/head/carp_hood
|
||||
name = "carp hood"
|
||||
desc = "A hood attached to a carp costume."
|
||||
icon_state = "carp_casual"
|
||||
body_parts_covered = HEAD
|
||||
cold_protection = HEAD
|
||||
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
|
||||
flags = NODROP
|
||||
flags_inv = HIDEHAIR|HIDEEARS
|
||||
|
||||
/obj/item/clothing/suit/hooded/ian_costume //It's Ian, rub his bell- oh god what happened to his inside parts?
|
||||
name = "corgi costume"
|
||||
desc = "A costume that looks like someone made a human-like corgi, it won't guarantee belly rubs."
|
||||
icon_state = "ian"
|
||||
item_state = "labcoat"
|
||||
body_parts_covered = CHEST|GROIN|ARMS
|
||||
//cold_protection = CHEST|GROIN|ARMS
|
||||
//min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
|
||||
allowed = list(,)
|
||||
hooded = 1
|
||||
hoodtype = /obj/item/clothing/head/ian_hood
|
||||
dog_fashion = /datum/dog_fashion/back
|
||||
|
||||
/obj/item/clothing/head/ian_hood
|
||||
name = "corgi hood"
|
||||
desc = "A hood that looks just like a corgi's head, it won't guarantee dog biscuits."
|
||||
icon_state = "ian"
|
||||
body_parts_covered = HEAD
|
||||
//cold_protection = HEAD
|
||||
//min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
|
||||
flags = NODROP
|
||||
flags_inv = HIDEHAIR|HIDEEARS
|
||||
|
||||
/obj/item/clothing/suit/hooded/bloated_human //OH MY GOD WHAT HAVE YOU DONE!?!?!?
|
||||
name = "bloated human suit"
|
||||
desc = "A horribly bloated suit made from human skins."
|
||||
icon_state = "lingspacesuit"
|
||||
item_state = "labcoat"
|
||||
body_parts_covered = CHEST|GROIN|ARMS
|
||||
allowed = list(,)
|
||||
hooded = 1
|
||||
actions_types = list(/datum/action/item_action/toggle_human_head)
|
||||
hoodtype = /obj/item/clothing/head/human_head
|
||||
|
||||
/obj/item/clothing/head/human_head
|
||||
name = "bloated human head"
|
||||
desc = "A horribly bloated and mismatched human head."
|
||||
icon_state = "lingspacehelmet"
|
||||
body_parts_covered = HEAD
|
||||
flags = NODROP
|
||||
flags_cover = HEADCOVERSEYES
|
||||
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
|
||||
|
||||
/obj/item/clothing/suit/security/officer/russian
|
||||
name = "russian officer's jacket"
|
||||
desc = "This jacket is for those special occasions when a russian officer isn't required to wear their armor."
|
||||
icon_state = "officertanjacket"
|
||||
item_state = "officertanjacket"
|
||||
body_parts_covered = CHEST|ARMS
|
||||
|
||||
/*
|
||||
* Misc
|
||||
*/
|
||||
|
||||
/obj/item/clothing/suit/straight_jacket
|
||||
name = "straight jacket"
|
||||
desc = "A suit that completely restrains the wearer. Manufactured by Antyphun Corp." //Straight jacket is antifun
|
||||
icon_state = "straight_jacket"
|
||||
item_state = "straight_jacket"
|
||||
body_parts_covered = CHEST|GROIN|LEGS|ARMS|HANDS
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
|
||||
strip_delay = 60
|
||||
breakouttime = 3000
|
||||
|
||||
/obj/item/clothing/suit/ianshirt
|
||||
name = "worn shirt"
|
||||
desc = "A worn out, curiously comfortable t-shirt with a picture of Ian. You wouldn't go so far as to say it feels like being hugged when you wear it, but it's pretty close. Good for sleeping in."
|
||||
icon_state = "ianshirt"
|
||||
item_state = "ianshirt"
|
||||
|
||||
/obj/item/clothing/suit/nerdshirt
|
||||
name = "gamer shirt"
|
||||
desc = "A baggy shirt with vintage game character Phanic the Weasel. Why would anyone wear this?"
|
||||
icon_state = "nerdshirt"
|
||||
item_state = "nerdshirt"
|
||||
|
||||
/obj/item/clothing/suit/jacket
|
||||
name = "bomber jacket"
|
||||
desc = "Aviators not included."
|
||||
icon_state = "bomberjacket"
|
||||
item_state = "brownjsuit"
|
||||
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/toy,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/device/radio)
|
||||
body_parts_covered = CHEST|GROIN|ARMS
|
||||
cold_protection = CHEST|GROIN|ARMS
|
||||
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
|
||||
|
||||
/obj/item/clothing/suit/jacket/leather
|
||||
name = "leather jacket"
|
||||
desc = "Pompadour not included."
|
||||
icon_state = "leatherjacket"
|
||||
item_state = "hostrench"
|
||||
burn_state = FIRE_PROOF
|
||||
max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT
|
||||
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/toy,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/weapon/gun/projectile/automatic/pistol,/obj/item/weapon/gun/projectile/revolver,/obj/item/weapon/gun/projectile/revolver/detective,/obj/item/device/radio)
|
||||
|
||||
/obj/item/clothing/suit/jacket/leather/overcoat
|
||||
name = "leather overcoat"
|
||||
desc = "That's a damn fine coat."
|
||||
icon_state = "leathercoat"
|
||||
body_parts_covered = CHEST|GROIN|ARMS|LEGS
|
||||
cold_protection = CHEST|GROIN|ARMS|LEGS
|
||||
|
||||
/obj/item/clothing/suit/jacket/puffer
|
||||
name = "puffer jacket"
|
||||
desc = "A thick jacket with a rubbery, water-resistant shell."
|
||||
icon_state = "pufferjacket"
|
||||
item_state = "hostrench"
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 50, rad = 0)
|
||||
|
||||
/obj/item/clothing/suit/jacket/puffer/vest
|
||||
name = "puffer vest"
|
||||
desc = "A thick vest with a rubbery, water-resistant shell."
|
||||
icon_state = "puffervest"
|
||||
item_state = "armor"
|
||||
body_parts_covered = CHEST|GROIN
|
||||
cold_protection = CHEST|GROIN
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 30, rad = 0)
|
||||
|
||||
/obj/item/clothing/suit/jacket/miljacket
|
||||
name = "military jacket"
|
||||
desc = "A canvas jacket styled after classical American military garb. Feels sturdy, yet comfortable."
|
||||
icon_state = "militaryjacket"
|
||||
item_state = "militaryjacket"
|
||||
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/toy,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/weapon/gun/projectile/automatic/pistol,/obj/item/weapon/gun/projectile/revolver,/obj/item/weapon/gun/projectile/revolver/detective,/obj/item/device/radio)
|
||||
|
||||
/obj/item/clothing/suit/jacket/letterman
|
||||
name = "letterman jacket"
|
||||
desc = "A classic brown letterman jacket. Looks pretty hot and heavy."
|
||||
icon_state = "letterman"
|
||||
item_state = "letterman"
|
||||
|
||||
/obj/item/clothing/suit/jacket/letterman_red
|
||||
name = "red letterman jacket"
|
||||
desc = "A letterman jacket in a sick red color. Radical."
|
||||
icon_state = "letterman_red"
|
||||
item_state = "letterman_red"
|
||||
|
||||
/obj/item/clothing/suit/jacket/letterman_syndie
|
||||
name = "blood-red letterman jacket"
|
||||
desc = "Oddly, this jacket seems to have a large S on the back..."
|
||||
icon_state = "letterman_s"
|
||||
item_state = "letterman_s"
|
||||
|
||||
/obj/item/clothing/suit/jacket/letterman_nanotrasen
|
||||
name = "blue letterman jacket"
|
||||
desc = "A blue letterman jacket with a proud Nanotrasen N on the back. The tag says that it was made in Space China."
|
||||
icon_state = "letterman_n"
|
||||
item_state = "letterman_n"
|
||||
|
||||
/obj/item/clothing/suit/xenos
|
||||
name = "xenos suit"
|
||||
desc = "A suit made out of chitinous alien hide."
|
||||
icon_state = "xenos"
|
||||
item_state = "xenos_helm"
|
||||
body_parts_covered = CHEST|GROIN|LEGS|ARMS|HANDS
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
|
||||
allowed = list(/obj/item/clothing/mask/facehugger/toy)
|
||||
|
||||
|
||||
// WINTER COATS
|
||||
|
||||
/obj/item/clothing/suit/hooded/wintercoat
|
||||
name = "winter coat"
|
||||
desc = "A heavy jacket made from 'synthetic' animal furs."
|
||||
icon_state = "coatwinter"
|
||||
item_state = "labcoat"
|
||||
body_parts_covered = CHEST|GROIN|ARMS
|
||||
cold_protection = CHEST|GROIN|ARMS
|
||||
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0)
|
||||
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/toy,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter)
|
||||
hooded = 1
|
||||
|
||||
/obj/item/clothing/head/winterhood
|
||||
name = "winter hood"
|
||||
desc = "A hood attached to a heavy winter jacket."
|
||||
icon_state = "winterhood"
|
||||
body_parts_covered = HEAD
|
||||
cold_protection = HEAD
|
||||
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
|
||||
flags = NODROP
|
||||
flags_inv = HIDEHAIR|HIDEEARS
|
||||
|
||||
/obj/item/clothing/suit/hooded/wintercoat/captain
|
||||
name = "captain's winter coat"
|
||||
icon_state = "coatcaptain"
|
||||
armor = list(melee = 25, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0)
|
||||
allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic)
|
||||
hoodtype = /obj/item/clothing/head/winterhood/captain
|
||||
|
||||
/obj/item/clothing/head/winterhood/captain
|
||||
icon_state = "winterhood_captain"
|
||||
|
||||
/obj/item/clothing/suit/hooded/wintercoat/security
|
||||
name = "security winter coat"
|
||||
icon_state = "coatsecurity"
|
||||
armor = list(melee = 25, bullet = 15, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0)
|
||||
allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic)
|
||||
hoodtype = /obj/item/clothing/head/winterhood/security
|
||||
|
||||
/obj/item/clothing/head/winterhood/security
|
||||
icon_state = "winterhood_security"
|
||||
|
||||
/obj/item/clothing/suit/hooded/wintercoat/medical
|
||||
name = "medical winter coat"
|
||||
icon_state = "coatmedical"
|
||||
allowed = list(/obj/item/device/analyzer,/obj/item/stack/medical,/obj/item/weapon/dnainjector,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/hypospray,/obj/item/device/healthanalyzer,/obj/item/device/flashlight/pen,/obj/item/weapon/reagent_containers/glass/bottle,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/pill,/obj/item/weapon/storage/pill_bottle,/obj/item/weapon/paper,/obj/item/weapon/melee/classic_baton/telescopic)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 50, rad = 0)
|
||||
hoodtype = /obj/item/clothing/head/winterhood/medical
|
||||
|
||||
/obj/item/clothing/head/winterhood/medical
|
||||
icon_state = "winterhood_medical"
|
||||
|
||||
/obj/item/clothing/suit/hooded/wintercoat/science
|
||||
name = "science winter coat"
|
||||
icon_state = "coatscience"
|
||||
allowed = list(/obj/item/device/analyzer,/obj/item/stack/medical,/obj/item/weapon/dnainjector,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/hypospray,/obj/item/device/healthanalyzer,/obj/item/device/flashlight/pen,/obj/item/weapon/reagent_containers/glass/bottle,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/pill,/obj/item/weapon/storage/pill_bottle,/obj/item/weapon/paper,/obj/item/weapon/melee/classic_baton/telescopic)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 10, bio = 0, rad = 0)
|
||||
hoodtype = /obj/item/clothing/head/winterhood/science
|
||||
|
||||
/obj/item/clothing/head/winterhood/science
|
||||
icon_state = "winterhood_science"
|
||||
|
||||
/obj/item/clothing/suit/hooded/wintercoat/engineering
|
||||
name = "engineering winter coat"
|
||||
icon_state = "coatengineer"
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 20)
|
||||
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/device/t_scanner, /obj/item/weapon/rcd, /obj/item/weapon/pipe_dispenser)
|
||||
hoodtype = /obj/item/clothing/head/winterhood/engineering
|
||||
|
||||
/obj/item/clothing/head/winterhood/engineering
|
||||
icon_state = "winterhood_engineer"
|
||||
|
||||
/obj/item/clothing/suit/hooded/wintercoat/engineering/atmos
|
||||
name = "atmospherics winter coat"
|
||||
icon_state = "coatatmos"
|
||||
hoodtype = /obj/item/clothing/head/winterhood/engineering/atmos
|
||||
|
||||
/obj/item/clothing/head/winterhood/engineering/atmos
|
||||
icon_state = "winterhood_atmos"
|
||||
|
||||
/obj/item/clothing/suit/hooded/wintercoat/hydro
|
||||
name = "hydroponics winter coat"
|
||||
icon_state = "coathydro"
|
||||
allowed = list(/obj/item/weapon/reagent_containers/spray/plantbgone,/obj/item/device/plant_analyzer,/obj/item/seeds,/obj/item/weapon/reagent_containers/glass/bottle,/obj/item/weapon/cultivator,/obj/item/weapon/reagent_containers/spray/pestspray,/obj/item/weapon/hatchet,/obj/item/weapon/storage/bag/plants)
|
||||
hoodtype = /obj/item/clothing/head/winterhood/hydro
|
||||
|
||||
/obj/item/clothing/head/winterhood/hydro
|
||||
item_state = "winterhood_hydro"
|
||||
|
||||
/obj/item/clothing/suit/hooded/wintercoat/cargo
|
||||
name = "cargo winter coat"
|
||||
icon_state = "coatcargo"
|
||||
hoodtype = /obj/item/clothing/head/winterhood/cargo
|
||||
|
||||
/obj/item/clothing/head/winterhood/cargo
|
||||
icon_state = "winterhood_cargo"
|
||||
|
||||
/obj/item/clothing/suit/hooded/wintercoat/miner
|
||||
name = "mining winter coat"
|
||||
icon_state = "coatminer"
|
||||
allowed = list(/obj/item/weapon/pickaxe,/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/toy,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter)
|
||||
armor = list(melee = 10, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
hoodtype = /obj/item/clothing/head/winterhood/miner
|
||||
|
||||
/obj/item/clothing/head/winterhood/miner
|
||||
icon_state = "winterhood_miner"
|
||||
|
||||
/obj/item/clothing/suit/spookyghost
|
||||
name = "spooky ghost"
|
||||
desc = "this is obviously just a bedsheet, but maybe try it on?"
|
||||
icon_state = "bedsheet"
|
||||
user_vars_to_edit = list("name" = "Spooky Ghost", "real_name" = "Spooky Ghost" , "incorporeal_move" = 1, "appearance_flags" = KEEP_TOGETHER|TILE_BOUND, "alpha" = 150)
|
||||
alternate_worn_layer = ABOVE_BODY_FRONT_LAYER //so the bedsheet goes over everything but fire
|
||||
@@ -0,0 +1,178 @@
|
||||
//Hoods for winter coats and chaplain hoodie etc
|
||||
|
||||
/obj/item/clothing/suit/hooded
|
||||
actions_types = list(/datum/action/item_action/toggle_hood)
|
||||
var/obj/item/clothing/head/hood
|
||||
var/hoodtype = /obj/item/clothing/head/winterhood //so the chaplain hoodie or other hoodies can override this
|
||||
|
||||
/obj/item/clothing/suit/hooded/New()
|
||||
MakeHood()
|
||||
..()
|
||||
|
||||
/obj/item/clothing/suit/hooded/Destroy()
|
||||
qdel(hood)
|
||||
return ..()
|
||||
|
||||
/obj/item/clothing/suit/hooded/proc/MakeHood()
|
||||
if(!hood)
|
||||
var/obj/item/clothing/head/W = new hoodtype(src)
|
||||
hood = W
|
||||
|
||||
/obj/item/clothing/suit/hooded/ui_action_click()
|
||||
ToggleHood()
|
||||
|
||||
/obj/item/clothing/suit/hooded/item_action_slot_check(slot, mob/user)
|
||||
if(slot == slot_wear_suit)
|
||||
return 1
|
||||
|
||||
/obj/item/clothing/suit/hooded/equipped(mob/user, slot)
|
||||
if(slot != slot_wear_suit)
|
||||
RemoveHood()
|
||||
..()
|
||||
|
||||
/obj/item/clothing/suit/hooded/proc/RemoveHood()
|
||||
src.icon_state = "[initial(icon_state)]"
|
||||
suittoggled = 0
|
||||
if(ishuman(hood.loc))
|
||||
var/mob/living/carbon/H = hood.loc
|
||||
H.unEquip(hood, 1)
|
||||
H.update_inv_wear_suit()
|
||||
hood.loc = src
|
||||
for(var/X in actions)
|
||||
var/datum/action/A = X
|
||||
A.UpdateButtonIcon()
|
||||
|
||||
/obj/item/clothing/suit/hooded/dropped()
|
||||
..()
|
||||
RemoveHood()
|
||||
|
||||
/obj/item/clothing/suit/hooded/proc/ToggleHood()
|
||||
if(!suittoggled)
|
||||
if(ishuman(src.loc))
|
||||
var/mob/living/carbon/human/H = src.loc
|
||||
if(H.wear_suit != src)
|
||||
H << "<span class='warning'>You must be wearing [src] to put up the hood!</span>"
|
||||
return
|
||||
if(H.head)
|
||||
H << "<span class='warning'>You're already wearing something on your head!</span>"
|
||||
return
|
||||
else if(H.equip_to_slot_if_possible(hood,slot_head,0,0,1))
|
||||
suittoggled = 1
|
||||
src.icon_state = "[initial(icon_state)]_t"
|
||||
H.update_inv_wear_suit()
|
||||
for(var/X in actions)
|
||||
var/datum/action/A = X
|
||||
A.UpdateButtonIcon()
|
||||
else
|
||||
RemoveHood()
|
||||
|
||||
//Toggle exosuits for different aesthetic styles (hoodies, suit jacket buttons, etc)
|
||||
|
||||
/obj/item/clothing/suit/toggle/AltClick(mob/user)
|
||||
..()
|
||||
if(!user.canUseTopic(src, be_close=TRUE))
|
||||
user << "<span class='warning'>You can't do that right now!</span>"
|
||||
return
|
||||
else
|
||||
suit_toggle(user)
|
||||
|
||||
/obj/item/clothing/suit/toggle/ui_action_click()
|
||||
suit_toggle()
|
||||
|
||||
/obj/item/clothing/suit/toggle/proc/suit_toggle()
|
||||
set src in usr
|
||||
|
||||
if(!can_use(usr))
|
||||
return 0
|
||||
|
||||
usr << "<span class='notice'>You toggle [src]'s [togglename].</span>"
|
||||
if(src.suittoggled)
|
||||
src.icon_state = "[initial(icon_state)]"
|
||||
src.suittoggled = 0
|
||||
else if(!src.suittoggled)
|
||||
src.icon_state = "[initial(icon_state)]_t"
|
||||
src.suittoggled = 1
|
||||
usr.update_inv_wear_suit()
|
||||
for(var/X in actions)
|
||||
var/datum/action/A = X
|
||||
A.UpdateButtonIcon()
|
||||
|
||||
/obj/item/clothing/suit/toggle/examine(mob/user)
|
||||
..()
|
||||
user << "Alt-click on [src] to toggle the [togglename]."
|
||||
|
||||
//Hardsuit toggle code
|
||||
/obj/item/clothing/suit/space/hardsuit/New()
|
||||
MakeHelmet()
|
||||
..()
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/Destroy()
|
||||
if(helmet)
|
||||
helmet.suit = null
|
||||
qdel(helmet)
|
||||
qdel(jetpack)
|
||||
return ..()
|
||||
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/Destroy()
|
||||
if(suit)
|
||||
suit.helmet = null
|
||||
return ..()
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/proc/MakeHelmet()
|
||||
if(!helmettype)
|
||||
return
|
||||
if(!helmet)
|
||||
var/obj/item/clothing/head/helmet/space/hardsuit/W = new helmettype(src)
|
||||
W.suit = src
|
||||
helmet = W
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/ui_action_click()
|
||||
..()
|
||||
ToggleHelmet()
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/equipped(mob/user, slot)
|
||||
if(!helmettype)
|
||||
return
|
||||
if(slot != slot_wear_suit)
|
||||
RemoveHelmet()
|
||||
..()
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/proc/RemoveHelmet()
|
||||
if(!helmet)
|
||||
return
|
||||
suittoggled = 0
|
||||
if(ishuman(helmet.loc))
|
||||
var/mob/living/carbon/H = helmet.loc
|
||||
if(helmet.on)
|
||||
helmet.attack_self(H)
|
||||
H.unEquip(helmet, 1)
|
||||
H.update_inv_wear_suit()
|
||||
H << "<span class='notice'>The helmet on the hardsuit disengages.</span>"
|
||||
playsound(src.loc, 'sound/mecha/mechmove03.ogg', 50, 1)
|
||||
helmet.loc = src
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/dropped()
|
||||
..()
|
||||
RemoveHelmet()
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/proc/ToggleHelmet()
|
||||
var/mob/living/carbon/human/H = src.loc
|
||||
if(!helmettype)
|
||||
return
|
||||
if(!helmet)
|
||||
return
|
||||
if(!suittoggled)
|
||||
if(ishuman(src.loc))
|
||||
if(H.wear_suit != src)
|
||||
H << "<span class='warning'>You must be wearing [src] to engage the helmet!</span>"
|
||||
return
|
||||
if(H.head)
|
||||
H << "<span class='warning'>You're already wearing something on your head!</span>"
|
||||
return
|
||||
else if(H.equip_to_slot_if_possible(helmet,slot_head,0,0,1))
|
||||
H << "<span class='notice'>You engage the helmet on the hardsuit.</span>"
|
||||
suittoggled = 1
|
||||
H.update_inv_wear_suit()
|
||||
playsound(src.loc, 'sound/mecha/mechmove03.ogg', 50, 1)
|
||||
else
|
||||
RemoveHelmet()
|
||||
@@ -0,0 +1,134 @@
|
||||
/*
|
||||
* Contains:
|
||||
* Fire protection
|
||||
* Bomb protection
|
||||
* Radiation protection
|
||||
*/
|
||||
|
||||
/*
|
||||
* Fire protection
|
||||
*/
|
||||
|
||||
/obj/item/clothing/suit/fire
|
||||
name = "emergency firesuit"
|
||||
desc = "A suit that helps protect against fire and heat."
|
||||
icon_state = "fire"
|
||||
item_state = "ro_suit"
|
||||
w_class = 4
|
||||
gas_transfer_coefficient = 0.90
|
||||
permeability_coefficient = 0.50
|
||||
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/extinguisher, /obj/item/weapon/crowbar)
|
||||
slowdown = 1
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
|
||||
flags = STOPSPRESSUREDMAGE | THICKMATERIAL
|
||||
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT
|
||||
cold_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
|
||||
strip_delay = 60
|
||||
put_on_delay = 60
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/suit/fire/firefighter
|
||||
icon_state = "firesuit"
|
||||
item_state = "firefighter"
|
||||
|
||||
|
||||
/obj/item/clothing/suit/fire/heavy
|
||||
name = "heavy firesuit"
|
||||
desc = "An old, bulky thermal protection suit."
|
||||
icon_state = "thermal"
|
||||
item_state = "ro_suit"
|
||||
slowdown = 1.5
|
||||
|
||||
/obj/item/clothing/suit/fire/atmos
|
||||
name = "firesuit"
|
||||
desc = "An expensive firesuit that protects against even the most deadly of station fires. Designed to protect even if the wearer is set aflame."
|
||||
icon_state = "atmos_firesuit"
|
||||
item_state = "firesuit_atmos"
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT
|
||||
|
||||
/*
|
||||
* Bomb protection
|
||||
*/
|
||||
/obj/item/clothing/head/bomb_hood
|
||||
name = "bomb hood"
|
||||
desc = "Use in case of bomb."
|
||||
icon_state = "bombsuit"
|
||||
flags = THICKMATERIAL
|
||||
armor = list(melee = 20, bullet = 0, laser = 20,energy = 10, bomb = 100, bio = 0, rad = 0)
|
||||
flags_inv = HIDEFACE|HIDEMASK|HIDEEARS|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR
|
||||
cold_protection = HEAD
|
||||
min_cold_protection_temperature = HELMET_MIN_TEMP_PROTECT
|
||||
heat_protection = HEAD
|
||||
max_heat_protection_temperature = HELMET_MAX_TEMP_PROTECT
|
||||
strip_delay = 70
|
||||
put_on_delay = 70
|
||||
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/suit/bomb_suit
|
||||
name = "bomb suit"
|
||||
desc = "A suit designed for safety when handling explosives."
|
||||
icon_state = "bombsuit"
|
||||
item_state = "bombsuit"
|
||||
w_class = 4//bulky item
|
||||
gas_transfer_coefficient = 0.01
|
||||
permeability_coefficient = 0.01
|
||||
flags = THICKMATERIAL
|
||||
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
slowdown = 2
|
||||
armor = list(melee = 20, bullet = 0, laser = 20,energy = 10, bomb = 100, bio = 0, rad = 0)
|
||||
flags_inv = HIDEJUMPSUIT
|
||||
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT
|
||||
cold_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT
|
||||
strip_delay = 70
|
||||
put_on_delay = 70
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
|
||||
/obj/item/clothing/head/bomb_hood/security
|
||||
icon_state = "bombsuitsec"
|
||||
item_state = "bombsuitsec"
|
||||
|
||||
|
||||
/obj/item/clothing/suit/bomb_suit/security
|
||||
icon_state = "bombsuitsec"
|
||||
item_state = "bombsuitsec"
|
||||
allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs)
|
||||
|
||||
/*
|
||||
* Radiation protection
|
||||
*/
|
||||
/obj/item/clothing/head/radiation
|
||||
name = "radiation hood"
|
||||
icon_state = "rad"
|
||||
desc = "A hood with radiation protective properties. The label reads, 'Made with lead. Please do not consume insulation.'"
|
||||
flags = THICKMATERIAL
|
||||
flags_inv = HIDEMASK|HIDEEARS|HIDEFACE|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 100)
|
||||
strip_delay = 60
|
||||
put_on_delay = 60
|
||||
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/suit/radiation
|
||||
name = "radiation suit"
|
||||
desc = "A suit that protects against radiation. The label reads, 'Made with lead. Please do not consume insulation.'"
|
||||
icon_state = "rad"
|
||||
item_state = "rad_suit"
|
||||
w_class = 4//bulky item
|
||||
gas_transfer_coefficient = 0.90
|
||||
permeability_coefficient = 0.50
|
||||
flags = THICKMATERIAL
|
||||
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/device/geiger_counter)
|
||||
slowdown = 1.5
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 100)
|
||||
strip_delay = 60
|
||||
put_on_delay = 60
|
||||
flags_inv = HIDEJUMPSUIT
|
||||
burn_state = FIRE_PROOF
|
||||
@@ -0,0 +1,150 @@
|
||||
/obj/item/clothing/head/wizard
|
||||
name = "wizard hat"
|
||||
desc = "Strange-looking hat-wear that most certainly belongs to a real magic user."
|
||||
icon_state = "wizard"
|
||||
gas_transfer_coefficient = 0.01 // IT'S MAGICAL OKAY JEEZ +1 TO NOT DIE
|
||||
permeability_coefficient = 0.01
|
||||
armor = list(melee = 30, bullet = 20, laser = 20, energy = 20, bomb = 20, bio = 20, rad = 20)
|
||||
strip_delay = 50
|
||||
put_on_delay = 50
|
||||
unacidable = 1
|
||||
burn_state = FIRE_PROOF
|
||||
dog_fashion = /datum/dog_fashion/head/blue_wizard
|
||||
|
||||
/obj/item/clothing/head/wizard/red
|
||||
name = "red wizard hat"
|
||||
desc = "Strange-looking red hat-wear that most certainly belongs to a real magic user."
|
||||
icon_state = "redwizard"
|
||||
dog_fashion = /datum/dog_fashion/head/red_wizard
|
||||
|
||||
/obj/item/clothing/head/wizard/yellow
|
||||
name = "yellow wizard hat"
|
||||
desc = "Strange-looking yellow hat-wear that most certainly belongs to a powerful magic user."
|
||||
icon_state = "yellowwizard"
|
||||
dog_fashion = null
|
||||
|
||||
/obj/item/clothing/head/wizard/black
|
||||
name = "black wizard hat"
|
||||
desc = "Strange-looking black hat-wear that most certainly belongs to a real skeleton. Spooky."
|
||||
icon_state = "blackwizard"
|
||||
dog_fashion = null
|
||||
|
||||
/obj/item/clothing/head/wizard/fake
|
||||
name = "wizard hat"
|
||||
desc = "It has WIZZARD written across it in sequins. Comes with a cool beard."
|
||||
icon_state = "wizard-fake"
|
||||
gas_transfer_coefficient = 1
|
||||
permeability_coefficient = 1
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
dog_fashion = /datum/dog_fashion/head/blue_wizard
|
||||
|
||||
/obj/item/clothing/head/wizard/marisa
|
||||
name = "witch hat"
|
||||
desc = "Strange-looking hat-wear. Makes you want to cast fireballs."
|
||||
icon_state = "marisa"
|
||||
dog_fashion = null
|
||||
|
||||
/obj/item/clothing/head/wizard/magus
|
||||
name = "\improper Magus helm"
|
||||
desc = "A mysterious helmet that hums with an unearthly power."
|
||||
icon_state = "magus"
|
||||
item_state = "magus"
|
||||
dog_fashion = null
|
||||
|
||||
/obj/item/clothing/head/wizard/santa
|
||||
name = "Santa's hat"
|
||||
desc = "Ho ho ho. Merrry X-mas!"
|
||||
icon_state = "santahat"
|
||||
flags_inv = HIDEHAIR|HIDEFACIALHAIR
|
||||
dog_fashion = null
|
||||
|
||||
/obj/item/clothing/suit/wizrobe
|
||||
name = "wizard robe"
|
||||
desc = "A magnificent, gem-lined robe that seems to radiate power."
|
||||
icon_state = "wizard"
|
||||
item_state = "wizrobe"
|
||||
gas_transfer_coefficient = 0.01
|
||||
permeability_coefficient = 0.01
|
||||
body_parts_covered = CHEST|GROIN|ARMS|LEGS
|
||||
armor = list(melee = 30, bullet = 20, laser = 20, energy = 20, bomb = 20, bio = 20, rad = 20)
|
||||
allowed = list(/obj/item/weapon/teleportation_scroll)
|
||||
flags_inv = HIDEJUMPSUIT
|
||||
strip_delay = 50
|
||||
put_on_delay = 50
|
||||
unacidable = 1
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/suit/wizrobe/red
|
||||
name = "red wizard robe"
|
||||
desc = "A magnificent red gem-lined robe that seems to radiate power."
|
||||
icon_state = "redwizard"
|
||||
item_state = "redwizrobe"
|
||||
|
||||
/obj/item/clothing/suit/wizrobe/yellow
|
||||
name = "yellow wizard robe"
|
||||
desc = "A magnificant yellow gem-lined robe that seems to radiate power."
|
||||
icon_state = "yellowwizard"
|
||||
item_state = "yellowwizrobe"
|
||||
|
||||
/obj/item/clothing/suit/wizrobe/black
|
||||
name = "black wizard robe"
|
||||
desc = "An unnerving black gem-lined robe that reeks of death and decay."
|
||||
icon_state = "blackwizard"
|
||||
item_state = "blackwizrobe"
|
||||
|
||||
/obj/item/clothing/suit/wizrobe/marisa
|
||||
name = "witch robe"
|
||||
desc = "Magic is all about the spell power, ZE!"
|
||||
icon_state = "marisa"
|
||||
item_state = "marisarobe"
|
||||
|
||||
/obj/item/clothing/suit/wizrobe/magusblue
|
||||
name = "\improper Magus robe"
|
||||
desc = "A set of armored robes that seem to radiate a dark power."
|
||||
icon_state = "magusblue"
|
||||
item_state = "magusblue"
|
||||
|
||||
/obj/item/clothing/suit/wizrobe/magusred
|
||||
name = "\improper Magus robe"
|
||||
desc = "A set of armored robes that seem to radiate a dark power."
|
||||
icon_state = "magusred"
|
||||
item_state = "magusred"
|
||||
|
||||
|
||||
/obj/item/clothing/suit/wizrobe/santa
|
||||
name = "Santa's suit"
|
||||
desc = "Festive!"
|
||||
icon_state = "santa"
|
||||
item_state = "santa"
|
||||
|
||||
/obj/item/clothing/suit/wizrobe/fake
|
||||
name = "wizard robe"
|
||||
desc = "A rather dull blue robe meant to mimick real wizard robes."
|
||||
icon_state = "wizard-fake"
|
||||
item_state = "wizrobe"
|
||||
gas_transfer_coefficient = 1
|
||||
permeability_coefficient = 1
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
unacidable = 0
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
/obj/item/clothing/head/wizard/marisa/fake
|
||||
name = "witch hat"
|
||||
desc = "Strange-looking hat-wear, makes you want to cast fireballs."
|
||||
icon_state = "marisa"
|
||||
gas_transfer_coefficient = 1
|
||||
permeability_coefficient = 1
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
unacidable = 0
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
/obj/item/clothing/suit/wizrobe/marisa/fake
|
||||
name = "witch robe"
|
||||
desc = "Magic is all about the spell power, ZE!"
|
||||
icon_state = "marisa"
|
||||
item_state = "marisarobe"
|
||||
gas_transfer_coefficient = 1
|
||||
permeability_coefficient = 1
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
unacidable = 0
|
||||
burn_state = FLAMMABLE
|
||||
@@ -0,0 +1,156 @@
|
||||
/obj/item/clothing/under/color
|
||||
desc = "A standard issue colored jumpsuit. Variety is the spice of life!"
|
||||
|
||||
/obj/item/clothing/under/color/random/New()
|
||||
..()
|
||||
var/obj/item/clothing/under/color/C = pick(subtypesof(/obj/item/clothing/under/color) - /obj/item/clothing/under/color/random)
|
||||
name = initial(C.name)
|
||||
icon_state = initial(C.icon_state)
|
||||
item_state = initial(C.item_state)
|
||||
item_color = initial(C.item_color)
|
||||
|
||||
/obj/item/clothing/under/color/black
|
||||
name = "black jumpsuit"
|
||||
icon_state = "black"
|
||||
item_state = "bl_suit"
|
||||
item_color = "black"
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/under/color/grey
|
||||
name = "grey jumpsuit"
|
||||
desc = "A tasteful grey jumpsuit that reminds you of the good old days."
|
||||
icon_state = "grey"
|
||||
item_state = "gy_suit"
|
||||
item_color = "grey"
|
||||
|
||||
/obj/item/clothing/under/color/grey/glorf
|
||||
name = "ancient jumpsuit"
|
||||
desc = "A terribly ragged and frayed grey jumpsuit. It looks like it hasn't been washed in over a decade."
|
||||
|
||||
/obj/item/clothing/under/color/grey/glorf/hit_reaction(mob/living/carbon/human/owner)
|
||||
owner.forcesay(hit_appends)
|
||||
return 0
|
||||
|
||||
/obj/item/clothing/under/color/blue
|
||||
name = "blue jumpsuit"
|
||||
icon_state = "blue"
|
||||
item_state = "b_suit"
|
||||
item_color = "blue"
|
||||
|
||||
/obj/item/clothing/under/color/green
|
||||
name = "green jumpsuit"
|
||||
icon_state = "green"
|
||||
item_state = "g_suit"
|
||||
item_color = "green"
|
||||
|
||||
/obj/item/clothing/under/color/orange
|
||||
name = "orange jumpsuit"
|
||||
desc = "Don't wear this near paranoid security officers."
|
||||
icon_state = "orange"
|
||||
item_state = "o_suit"
|
||||
item_color = "orange"
|
||||
|
||||
/obj/item/clothing/under/color/pink
|
||||
name = "pink jumpsuit"
|
||||
icon_state = "pink"
|
||||
desc = "Just looking at this makes you feel <i>fabulous</i>."
|
||||
item_state = "p_suit"
|
||||
item_color = "pink"
|
||||
|
||||
/obj/item/clothing/under/color/red
|
||||
name = "red jumpsuit"
|
||||
icon_state = "red"
|
||||
item_state = "r_suit"
|
||||
item_color = "red"
|
||||
|
||||
/obj/item/clothing/under/color/white
|
||||
name = "white jumpsuit"
|
||||
icon_state = "white"
|
||||
item_state = "w_suit"
|
||||
item_color = "white"
|
||||
|
||||
/obj/item/clothing/under/color/yellow
|
||||
name = "yellow jumpsuit"
|
||||
icon_state = "yellow"
|
||||
item_state = "y_suit"
|
||||
item_color = "yellow"
|
||||
|
||||
/obj/item/clothing/under/color/lightblue
|
||||
name = "lightblue jumpsuit"
|
||||
icon_state = "lightblue"
|
||||
item_state = "b_suit"
|
||||
item_color = "lightblue"
|
||||
|
||||
/obj/item/clothing/under/color/aqua
|
||||
name = "aqua jumpsuit"
|
||||
icon_state = "aqua"
|
||||
item_state = "b_suit"
|
||||
item_color = "aqua"
|
||||
|
||||
/obj/item/clothing/under/color/purple
|
||||
name = "purple jumpsuit"
|
||||
icon_state = "purple"
|
||||
item_state = "p_suit"
|
||||
item_color = "purple"
|
||||
|
||||
/obj/item/clothing/under/color/lightpurple
|
||||
name = "lightpurple jumpsuit"
|
||||
icon_state = "lightpurple"
|
||||
item_state = "p_suit"
|
||||
item_color = "lightpurple"
|
||||
|
||||
/obj/item/clothing/under/color/lightgreen
|
||||
name = "lightgreen jumpsuit"
|
||||
icon_state = "lightgreen"
|
||||
item_state = "g_suit"
|
||||
item_color = "lightgreen"
|
||||
|
||||
/obj/item/clothing/under/color/lightbrown
|
||||
name = "lightbrown jumpsuit"
|
||||
icon_state = "lightbrown"
|
||||
item_state = "lb_suit"
|
||||
item_color = "lightbrown"
|
||||
|
||||
/obj/item/clothing/under/color/brown
|
||||
name = "brown jumpsuit"
|
||||
icon_state = "brown"
|
||||
item_state = "lb_suit"
|
||||
item_color = "brown"
|
||||
|
||||
/obj/item/clothing/under/color/yellowgreen
|
||||
name = "yellowgreen jumpsuit"
|
||||
icon_state = "yellowgreen"
|
||||
item_state = "y_suit"
|
||||
item_color = "yellowgreen"
|
||||
|
||||
/obj/item/clothing/under/color/darkblue
|
||||
name = "darkblue jumpsuit"
|
||||
icon_state = "darkblue"
|
||||
item_state = "b_suit"
|
||||
item_color = "darkblue"
|
||||
|
||||
/obj/item/clothing/under/color/lightred
|
||||
name = "lightred jumpsuit"
|
||||
icon_state = "lightred"
|
||||
item_state = "r_suit"
|
||||
item_color = "lightred"
|
||||
|
||||
/obj/item/clothing/under/color/darkred
|
||||
name = "darkred jumpsuit"
|
||||
icon_state = "darkred"
|
||||
item_state = "r_suit"
|
||||
item_color = "darkred"
|
||||
|
||||
/obj/item/clothing/under/color/maroon
|
||||
name = "maroon jumpsuit"
|
||||
icon_state = "maroon"
|
||||
item_state = "r_suit"
|
||||
item_color = "maroon"
|
||||
|
||||
/obj/item/clothing/under/color/rainbow
|
||||
name = "rainbow jumpsuit"
|
||||
desc = "A multi-colored jumpsuit!"
|
||||
icon_state = "rainbow"
|
||||
item_state = "rainbow"
|
||||
item_color = "rainbow"
|
||||
can_adjust = 0
|
||||
@@ -0,0 +1,183 @@
|
||||
//Alphabetical order of civilian jobs.
|
||||
|
||||
/obj/item/clothing/under/rank/bartender
|
||||
desc = "It looks like it could use some more flair."
|
||||
name = "bartender's uniform"
|
||||
icon_state = "barman"
|
||||
item_state = "bar_suit"
|
||||
item_color = "barman"
|
||||
alt_covers_chest = 1
|
||||
|
||||
|
||||
/obj/item/clothing/under/rank/captain //Alright, technically not a 'civilian' but its better then giving a .dm file for a single define.
|
||||
desc = "It's a blue jumpsuit with some gold markings denoting the rank of \"Captain\"."
|
||||
name = "captain's jumpsuit"
|
||||
icon_state = "captain"
|
||||
item_state = "b_suit"
|
||||
item_color = "captain"
|
||||
|
||||
|
||||
/obj/item/clothing/under/rank/cargo
|
||||
name = "quartermaster's jumpsuit"
|
||||
desc = "It's a jumpsuit worn by the quartermaster. It's specially designed to prevent back injuries caused by pushing paper."
|
||||
icon_state = "qm"
|
||||
item_state = "lb_suit"
|
||||
item_color = "qm"
|
||||
|
||||
|
||||
/obj/item/clothing/under/rank/cargotech
|
||||
name = "cargo technician's jumpsuit"
|
||||
desc = "Shooooorts! They're comfy and easy to wear!"
|
||||
icon_state = "cargotech"
|
||||
item_state = "lb_suit"
|
||||
item_color = "cargo"
|
||||
|
||||
|
||||
/obj/item/clothing/under/rank/chaplain
|
||||
desc = "It's a black jumpsuit, often worn by religious folk."
|
||||
name = "chaplain's jumpsuit"
|
||||
icon_state = "chaplain"
|
||||
item_state = "bl_suit"
|
||||
item_color = "chapblack"
|
||||
can_adjust = 0
|
||||
|
||||
|
||||
/obj/item/clothing/under/rank/chef
|
||||
name = "cook's suit"
|
||||
desc = "A suit which is given only to the most <b>hardcore</b> cooks in space."
|
||||
icon_state = "chef"
|
||||
item_color = "chef"
|
||||
alt_covers_chest = 1
|
||||
|
||||
|
||||
/obj/item/clothing/under/rank/clown
|
||||
name = "clown suit"
|
||||
desc = "<i>'HONK!'</i>"
|
||||
icon_state = "clown"
|
||||
item_state = "clown"
|
||||
item_color = "clown"
|
||||
fitted = FEMALE_UNIFORM_TOP
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/rank/clown/hit_reaction()
|
||||
playsound(loc, 'sound/items/bikehorn.ogg', 50, 1, -1)
|
||||
return 0
|
||||
|
||||
/obj/item/clothing/under/rank/head_of_personnel
|
||||
desc = "It's a jumpsuit worn by someone who works in the position of \"Head of Personnel\"."
|
||||
name = "head of personnel's jumpsuit"
|
||||
icon_state = "hop"
|
||||
item_state = "b_suit"
|
||||
item_color = "hop"
|
||||
can_adjust = 0
|
||||
|
||||
|
||||
/obj/item/clothing/under/rank/hydroponics
|
||||
desc = "It's a jumpsuit designed to protect against minor plant-related hazards."
|
||||
name = "botanist's jumpsuit"
|
||||
icon_state = "hydroponics"
|
||||
item_state = "g_suit"
|
||||
item_color = "hydroponics"
|
||||
permeability_coefficient = 0.50
|
||||
|
||||
|
||||
/obj/item/clothing/under/rank/janitor
|
||||
desc = "It's the official uniform of the station's janitor. It has minor protection from biohazards."
|
||||
name = "janitor's jumpsuit"
|
||||
icon_state = "janitor"
|
||||
item_color = "janitor"
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0)
|
||||
|
||||
|
||||
/obj/item/clothing/under/lawyer
|
||||
desc = "Slick threads."
|
||||
name = "Lawyer suit"
|
||||
can_adjust = 0
|
||||
|
||||
|
||||
/obj/item/clothing/under/lawyer/black
|
||||
icon_state = "lawyer_black"
|
||||
item_state = "lawyer_black"
|
||||
item_color = "lawyer_black"
|
||||
|
||||
|
||||
/obj/item/clothing/under/lawyer/female
|
||||
icon_state = "black_suit_fem"
|
||||
item_state = "black_suit_fem"
|
||||
item_color = "black_suit_fem"
|
||||
|
||||
|
||||
/obj/item/clothing/under/lawyer/red
|
||||
icon_state = "lawyer_red"
|
||||
item_state = "lawyer_red"
|
||||
item_color = "lawyer_red"
|
||||
|
||||
|
||||
/obj/item/clothing/under/lawyer/blue
|
||||
icon_state = "lawyer_blue"
|
||||
item_state = "lawyer_blue"
|
||||
item_color = "lawyer_blue"
|
||||
|
||||
|
||||
/obj/item/clothing/under/lawyer/bluesuit
|
||||
name = "blue suit"
|
||||
desc = "A classy suit and tie."
|
||||
icon_state = "bluesuit"
|
||||
item_state = "bluesuit"
|
||||
item_color = "bluesuit"
|
||||
can_adjust = 1
|
||||
alt_covers_chest = 1
|
||||
|
||||
|
||||
/obj/item/clothing/under/lawyer/purpsuit
|
||||
name = "purple suit"
|
||||
icon_state = "lawyer_purp"
|
||||
item_state = "lawyer_purp"
|
||||
item_color = "lawyer_purp"
|
||||
fitted = NO_FEMALE_UNIFORM
|
||||
can_adjust = 1
|
||||
alt_covers_chest = 1
|
||||
|
||||
|
||||
/obj/item/clothing/under/lawyer/blacksuit
|
||||
name = "black suit"
|
||||
desc = "A professional black suit. Nanotrasen Investigation Bureau approved!"
|
||||
icon_state = "blacksuit"
|
||||
item_state = "bar_suit"
|
||||
item_color = "blacksuit"
|
||||
can_adjust = 1
|
||||
alt_covers_chest = 1
|
||||
|
||||
|
||||
/obj/item/clothing/under/rank/librarian
|
||||
name = "sensible suit"
|
||||
desc = "It's very... sensible."
|
||||
icon_state = "red_suit"
|
||||
item_state = "red_suit"
|
||||
item_color = "red_suit"
|
||||
can_adjust = 0
|
||||
|
||||
|
||||
/obj/item/clothing/under/rank/mime
|
||||
name = "mime's outfit"
|
||||
desc = "It's not very colourful."
|
||||
icon_state = "mime"
|
||||
item_state = "mime"
|
||||
item_color = "mime"
|
||||
|
||||
|
||||
/obj/item/clothing/under/rank/miner
|
||||
desc = "It's a snappy jumpsuit with a sturdy set of overalls. It is very dirty."
|
||||
name = "shaft miner's jumpsuit"
|
||||
icon_state = "miner"
|
||||
item_state = "miner"
|
||||
item_color = "miner"
|
||||
|
||||
|
||||
/obj/item/clothing/under/rank/miner/lavaland
|
||||
desc = "A green uniform for operating in hazardous environments."
|
||||
name = "shaft miner's jumpsuit"
|
||||
icon_state = "explorer"
|
||||
item_state = "explorer"
|
||||
item_color = "explorer"
|
||||
can_adjust = 0
|
||||
@@ -0,0 +1,32 @@
|
||||
//Contains: Engineering department jumpsuits
|
||||
/obj/item/clothing/under/rank/chief_engineer
|
||||
desc = "It's a high visibility jumpsuit given to those engineers insane enough to achieve the rank of \"Chief Engineer\". It has minor radiation shielding."
|
||||
name = "chief engineer's jumpsuit"
|
||||
icon_state = "chiefengineer"
|
||||
item_state = "gy_suit"
|
||||
item_color = "chief"
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 10)
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/under/rank/atmospheric_technician
|
||||
desc = "It's a jumpsuit worn by atmospheric technicians."
|
||||
name = "atmospheric technician's jumpsuit"
|
||||
icon_state = "atmos"
|
||||
item_state = "atmos_suit"
|
||||
item_color = "atmos"
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/under/rank/engineer
|
||||
desc = "It's an orange high visibility jumpsuit worn by engineers. It has minor radiation shielding."
|
||||
name = "engineer's jumpsuit"
|
||||
icon_state = "engine"
|
||||
item_state = "engi_suit"
|
||||
item_color = "engine"
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 10)
|
||||
|
||||
/obj/item/clothing/under/rank/roboticist
|
||||
desc = "It's a slimming black with reinforced seams; great for industrial work."
|
||||
name = "roboticist's jumpsuit"
|
||||
icon_state = "robotics"
|
||||
item_state = "robotics"
|
||||
item_color = "robotics"
|
||||
@@ -0,0 +1,121 @@
|
||||
/*
|
||||
* Science
|
||||
*/
|
||||
/obj/item/clothing/under/rank/research_director
|
||||
desc = "It's a suit worn by those with the know-how to achieve the position of \"Research Director\". Its fabric provides minor protection from biological contaminants."
|
||||
name = "research director's vest suit"
|
||||
icon_state = "director"
|
||||
item_state = "lb_suit"
|
||||
item_color = "director"
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 10, bio = 10, rad = 0)
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/rank/research_director/alt
|
||||
desc = "Maybe you'll engineer your own half-man, half-pig creature some day. Its fabric provides minor protection from biological contaminants."
|
||||
name = "research director's tan suit"
|
||||
icon_state = "rdwhimsy"
|
||||
item_state = "rdwhimsy"
|
||||
item_color = "rdwhimsy"
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 10, bio = 10, rad = 0)
|
||||
can_adjust = 1
|
||||
alt_covers_chest = 1
|
||||
|
||||
/obj/item/clothing/under/rank/research_director/turtleneck
|
||||
desc = "A dark purple turtleneck and tan khakis, for a director with a superior sense of style."
|
||||
name = "research director's turtleneck"
|
||||
icon_state = "rdturtle"
|
||||
item_state = "p_suit"
|
||||
item_color = "rdturtle"
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 10, bio = 10, rad = 0)
|
||||
can_adjust = 1
|
||||
alt_covers_chest = 1
|
||||
|
||||
/obj/item/clothing/under/rank/scientist
|
||||
desc = "It's made of a special fiber that provides minor protection against biohazards. It has markings that denote the wearer as a scientist."
|
||||
name = "scientist's jumpsuit"
|
||||
icon_state = "toxins"
|
||||
item_state = "w_suit"
|
||||
item_color = "toxinswhite"
|
||||
permeability_coefficient = 0.50
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 10, bio = 0, rad = 0)
|
||||
|
||||
|
||||
/obj/item/clothing/under/rank/chemist
|
||||
desc = "It's made of a special fiber that gives special protection against biohazards. It has a chemist rank stripe on it."
|
||||
name = "chemist's jumpsuit"
|
||||
icon_state = "chemistry"
|
||||
item_state = "w_suit"
|
||||
item_color = "chemistrywhite"
|
||||
permeability_coefficient = 0.50
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0)
|
||||
|
||||
/*
|
||||
* Medical
|
||||
*/
|
||||
/obj/item/clothing/under/rank/chief_medical_officer
|
||||
desc = "It's a jumpsuit worn by those with the experience to be \"Chief Medical Officer\". It provides minor biological protection."
|
||||
name = "chief medical officer's jumpsuit"
|
||||
icon_state = "cmo"
|
||||
item_state = "w_suit"
|
||||
item_color = "cmo"
|
||||
permeability_coefficient = 0.50
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0)
|
||||
|
||||
/obj/item/clothing/under/rank/geneticist
|
||||
desc = "It's made of a special fiber that gives special protection against biohazards. It has a genetics rank stripe on it."
|
||||
name = "geneticist's jumpsuit"
|
||||
icon_state = "genetics"
|
||||
item_state = "w_suit"
|
||||
item_color = "geneticswhite"
|
||||
permeability_coefficient = 0.50
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0)
|
||||
|
||||
/obj/item/clothing/under/rank/virologist
|
||||
desc = "It's made of a special fiber that gives special protection against biohazards. It has a virologist rank stripe on it."
|
||||
name = "virologist's jumpsuit"
|
||||
icon_state = "virology"
|
||||
item_state = "w_suit"
|
||||
item_color = "virologywhite"
|
||||
permeability_coefficient = 0.50
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0)
|
||||
|
||||
/obj/item/clothing/under/rank/nursesuit
|
||||
desc = "It's a jumpsuit commonly worn by nursing staff in the medical department."
|
||||
name = "nurse's suit"
|
||||
icon_state = "nursesuit"
|
||||
item_state = "w_suit"
|
||||
item_color = "nursesuit"
|
||||
permeability_coefficient = 0.50
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0)
|
||||
fitted = NO_FEMALE_UNIFORM
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/rank/medical
|
||||
desc = "It's made of a special fiber that provides minor protection against biohazards. It has a cross on the chest denoting that the wearer is trained medical personnel."
|
||||
name = "medical doctor's jumpsuit"
|
||||
icon_state = "medical"
|
||||
item_state = "w_suit"
|
||||
item_color = "medical"
|
||||
permeability_coefficient = 0.50
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0)
|
||||
|
||||
/obj/item/clothing/under/rank/medical/blue
|
||||
name = "medical scrubs"
|
||||
desc = "It's made of a special fiber that provides minor protection against biohazards. This one is in baby blue."
|
||||
icon_state = "scrubsblue"
|
||||
item_color = "scrubsblue"
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/rank/medical/green
|
||||
name = "medical scrubs"
|
||||
desc = "It's made of a special fiber that provides minor protection against biohazards. This one is in dark green."
|
||||
icon_state = "scrubsgreen"
|
||||
item_color = "scrubsgreen"
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/rank/medical/purple
|
||||
name = "medical scrubs"
|
||||
desc = "It's made of a special fiber that provides minor protection against biohazards. This one is in deep purple."
|
||||
icon_state = "scrubspurple"
|
||||
item_color = "scrubspurple"
|
||||
can_adjust = 0
|
||||
@@ -0,0 +1,114 @@
|
||||
/*
|
||||
* Contains:
|
||||
* Security
|
||||
* Detective
|
||||
* Navy uniforms
|
||||
*/
|
||||
|
||||
/*
|
||||
* Security
|
||||
*/
|
||||
|
||||
/obj/item/clothing/under/rank/security
|
||||
name = "security jumpsuit"
|
||||
desc = "A tactical security jumpsuit for officers complete with nanotrasen belt buckle."
|
||||
icon_state = "rsecurity"
|
||||
item_state = "r_suit"
|
||||
item_color = "rsecurity"
|
||||
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
strip_delay = 50
|
||||
alt_covers_chest = 1
|
||||
|
||||
/obj/item/clothing/under/rank/security/grey
|
||||
icon_state = "security"
|
||||
item_state = "gy_suit"
|
||||
item_color = "security"
|
||||
|
||||
/obj/item/clothing/under/rank/warden
|
||||
name = "security suit"
|
||||
desc = "A formal security suit for officers complete with nanotrasen belt buckle."
|
||||
icon_state = "rwarden"
|
||||
item_state = "r_suit"
|
||||
item_color = "rwarden"
|
||||
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
strip_delay = 50
|
||||
alt_covers_chest = 1
|
||||
|
||||
/obj/item/clothing/under/rank/warden/grey
|
||||
icon_state = "warden"
|
||||
item_state = "gy_suit"
|
||||
item_color = "warden"
|
||||
|
||||
/*
|
||||
* Detective
|
||||
*/
|
||||
/obj/item/clothing/under/rank/det
|
||||
name = "hard-worn suit"
|
||||
desc = "Someone who wears this means business."
|
||||
icon_state = "detective"
|
||||
item_state = "det"
|
||||
item_color = "detective"
|
||||
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
strip_delay = 50
|
||||
alt_covers_chest = 1
|
||||
|
||||
/obj/item/clothing/under/rank/det/grey
|
||||
name = "noir suit"
|
||||
desc = "A hard-boiled private investigator's grey suit, complete with tie clip."
|
||||
icon_state = "greydet"
|
||||
item_state = "greydet"
|
||||
item_color = "greydet"
|
||||
alt_covers_chest = 1
|
||||
|
||||
/*
|
||||
* Head of Security
|
||||
*/
|
||||
/obj/item/clothing/under/rank/head_of_security
|
||||
name = "head of security's jumpsuit"
|
||||
desc = "A security jumpsuit decorated for those few with the dedication to achieve the position of Head of Security."
|
||||
icon_state = "rhos"
|
||||
item_state = "r_suit"
|
||||
item_color = "rhos"
|
||||
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
strip_delay = 60
|
||||
alt_covers_chest = 1
|
||||
|
||||
/obj/item/clothing/under/rank/head_of_security/grey
|
||||
icon_state = "hos"
|
||||
item_state = "gy_suit"
|
||||
item_color = "hos"
|
||||
|
||||
/obj/item/clothing/under/rank/head_of_security/alt
|
||||
name = "head of security's turtleneck"
|
||||
desc = "A stylish alternative to the normal head of security jumpsuit, complete with tactical pants."
|
||||
icon_state = "hosalt"
|
||||
item_state = "bl_suit"
|
||||
item_color = "hosalt"
|
||||
|
||||
/*
|
||||
* Navy uniforms
|
||||
*/
|
||||
|
||||
/obj/item/clothing/under/rank/security/navyblue
|
||||
name = "security officer's formal uniform"
|
||||
desc = "The latest in fashionable security outfits."
|
||||
icon_state = "officerblueclothes"
|
||||
item_state = "officerblueclothes"
|
||||
item_color = "officerblueclothes"
|
||||
alt_covers_chest = 1
|
||||
|
||||
/obj/item/clothing/under/rank/head_of_security/navyblue
|
||||
desc = "The insignia on this uniform tells you that this uniform belongs to the Head of Security."
|
||||
name = "head of security's formal uniform"
|
||||
icon_state = "hosblueclothes"
|
||||
item_state = "hosblueclothes"
|
||||
item_color = "hosblueclothes"
|
||||
alt_covers_chest = 1
|
||||
|
||||
/obj/item/clothing/under/rank/warden/navyblue
|
||||
desc = "The insignia on this uniform tells you that this uniform belongs to the Warden."
|
||||
name = "warden's formal uniform"
|
||||
icon_state = "wardenblueclothes"
|
||||
item_state = "wardenblueclothes"
|
||||
item_color = "wardenblueclothes"
|
||||
alt_covers_chest = 1
|
||||
@@ -0,0 +1,576 @@
|
||||
/obj/item/clothing/under/pj/red
|
||||
name = "red pj's"
|
||||
desc = "Sleepwear."
|
||||
icon_state = "red_pyjamas"
|
||||
item_color = "red_pyjamas"
|
||||
item_state = "w_suit"
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/pj/blue
|
||||
name = "blue pj's"
|
||||
desc = "Sleepwear."
|
||||
icon_state = "blue_pyjamas"
|
||||
item_color = "blue_pyjamas"
|
||||
item_state = "w_suit"
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/patriotsuit
|
||||
name = "Patriotic Suit"
|
||||
desc = "Motorcycle not included."
|
||||
icon_state = "ek"
|
||||
item_state = "ek"
|
||||
item_color = "ek"
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/sl_suit
|
||||
desc = "It's a very amish looking suit."
|
||||
name = "amish suit"
|
||||
icon_state = "sl_suit"
|
||||
item_color = "sl_suit"
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/roman
|
||||
name = "roman armor"
|
||||
desc = "Ancient Roman armor. Made of metallic and leather straps."
|
||||
icon_state = "roman"
|
||||
item_color = "roman"
|
||||
item_state = "armor"
|
||||
can_adjust = 0
|
||||
strip_delay = 100
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/under/waiter
|
||||
name = "waiter's outfit"
|
||||
desc = "It's a very smart uniform with a special pocket for tip."
|
||||
icon_state = "waiter"
|
||||
item_state = "waiter"
|
||||
item_color = "waiter"
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/rank/prisoner
|
||||
name = "prison jumpsuit"
|
||||
desc = "It's standardised Nanotrasen prisoner-wear. Its suit sensors are stuck in the \"Fully On\" position."
|
||||
icon_state = "prisoner"
|
||||
item_state = "o_suit"
|
||||
item_color = "prisoner"
|
||||
has_sensor = 2
|
||||
sensor_mode = 3
|
||||
random_sensor = 0
|
||||
|
||||
/obj/item/clothing/under/rank/mailman
|
||||
name = "mailman's jumpsuit"
|
||||
desc = "<i>'Special delivery!'</i>"
|
||||
icon_state = "mailman"
|
||||
item_state = "b_suit"
|
||||
item_color = "mailman"
|
||||
|
||||
/obj/item/clothing/under/rank/psyche
|
||||
name = "psychedelic jumpsuit"
|
||||
desc = "Groovy!"
|
||||
icon_state = "psyche"
|
||||
item_state = "p_suit"
|
||||
item_color = "psyche"
|
||||
|
||||
/obj/item/clothing/under/rank/clown/sexy
|
||||
name = "sexy-clown suit"
|
||||
desc = "It makes you look HONKable!"
|
||||
icon_state = "sexyclown"
|
||||
item_state = "sexyclown"
|
||||
item_color = "sexyclown"
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/rank/vice
|
||||
name = "vice officer's jumpsuit"
|
||||
desc = "It's the standard issue pretty-boy outfit, as seen on Holo-Vision."
|
||||
icon_state = "vice"
|
||||
item_state = "gy_suit"
|
||||
item_color = "vice"
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/rank/centcom_officer
|
||||
desc = "It's a jumpsuit worn by Centcom Officers."
|
||||
name = "\improper Centcom officer's jumpsuit"
|
||||
icon_state = "officer"
|
||||
item_state = "g_suit"
|
||||
item_color = "officer"
|
||||
alt_covers_chest = 1
|
||||
|
||||
/obj/item/clothing/under/rank/centcom_commander
|
||||
desc = "It's a jumpsuit worn by Centcom's highest-tier Commanders."
|
||||
name = "\improper Centcom officer's jumpsuit"
|
||||
icon_state = "centcom"
|
||||
item_state = "dg_suit"
|
||||
item_color = "centcom"
|
||||
|
||||
/obj/item/clothing/under/space
|
||||
name = "\improper NASA jumpsuit"
|
||||
desc = "It has a NASA logo on it and is made of space-proofed materials."
|
||||
icon_state = "black"
|
||||
item_state = "bl_suit"
|
||||
item_color = "black"
|
||||
w_class = 4//bulky item
|
||||
gas_transfer_coefficient = 0.01
|
||||
permeability_coefficient = 0.02
|
||||
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
cold_protection = CHEST | GROIN | LEGS | ARMS //Needs gloves and shoes with cold protection to be fully protected.
|
||||
min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT
|
||||
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
max_heat_protection_temperature = SPACE_SUIT_MAX_TEMP_PROTECT
|
||||
can_adjust = 0
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/under/acj
|
||||
name = "administrative cybernetic jumpsuit"
|
||||
icon_state = "syndicate"
|
||||
item_state = "bl_suit"
|
||||
item_color = "syndicate"
|
||||
desc = "A cybernetically enhanced jumpsuit used for administrative duties."
|
||||
gas_transfer_coefficient = 0.01
|
||||
permeability_coefficient = 0.01
|
||||
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
armor = list(melee = 100, bullet = 100, laser = 100,energy = 100, bomb = 100, bio = 100, rad = 100)
|
||||
cold_protection = CHEST | GROIN | LEGS | FEET | ARMS | HANDS
|
||||
min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT
|
||||
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
max_heat_protection_temperature = SPACE_SUIT_MAX_TEMP_PROTECT
|
||||
can_adjust = 0
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/under/owl
|
||||
name = "owl uniform"
|
||||
desc = "A soft brown jumpsuit made of synthetic feathers and strong conviction."
|
||||
icon_state = "owl"
|
||||
item_color = "owl"
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/griffin
|
||||
name = "griffon uniform"
|
||||
desc = "A soft brown jumpsuit with a white feather collar made of synthetic feathers and a lust for mayhem."
|
||||
icon_state = "griffin"
|
||||
item_color = "griffin"
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/cloud
|
||||
name = "cloud"
|
||||
desc = "cloud"
|
||||
icon_state = "cloud"
|
||||
item_color = "cloud"
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/gimmick/rank/captain/suit
|
||||
name = "captain's suit"
|
||||
desc = "A green suit and yellow necktie. Exemplifies authority."
|
||||
icon_state = "green_suit"
|
||||
item_state = "dg_suit"
|
||||
item_color = "green_suit"
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/gimmick/rank/head_of_personnel/suit
|
||||
name = "head of personnel's suit"
|
||||
desc = "A teal suit and yellow necktie. An authoritative yet tacky ensemble."
|
||||
icon_state = "teal_suit"
|
||||
item_state = "g_suit"
|
||||
item_color = "teal_suit"
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/suit_jacket
|
||||
name = "black suit"
|
||||
desc = "A black suit and red tie. Very formal."
|
||||
icon_state = "black_suit"
|
||||
item_state = "bl_suit"
|
||||
item_color = "black_suit"
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/suit_jacket/really_black
|
||||
name = "executive suit"
|
||||
desc = "A formal black suit and red tie, intended for the station's finest."
|
||||
icon_state = "really_black_suit"
|
||||
item_state = "bl_suit"
|
||||
item_color = "black_suit"
|
||||
|
||||
/obj/item/clothing/under/suit_jacket/female
|
||||
name = "executive suit"
|
||||
desc = "A formal trouser suit for women, intended for the station's finest."
|
||||
icon_state = "black_suit_fem"
|
||||
item_state = "black_suit_fem"
|
||||
item_color = "black_suit_fem"
|
||||
|
||||
/obj/item/clothing/under/suit_jacket/red
|
||||
name = "red suit"
|
||||
desc = "A red suit and blue tie. Somewhat formal."
|
||||
icon_state = "red_suit"
|
||||
item_state = "r_suit"
|
||||
item_color = "red_suit"
|
||||
|
||||
/obj/item/clothing/under/suit_jacket/charcoal
|
||||
name = "charcoal suit"
|
||||
desc = "A charcoal suit and red tie. Very professional."
|
||||
icon_state = "charcoal_suit"
|
||||
item_state = "charcoal_suit"
|
||||
item_color = "charcoal_suit"
|
||||
|
||||
/obj/item/clothing/under/suit_jacket/navy
|
||||
name = "navy suit"
|
||||
desc = "A navy suit and red tie, intended for the station's finest."
|
||||
icon_state = "navy_suit"
|
||||
item_state = "navy_suit"
|
||||
item_color = "navy_suit"
|
||||
|
||||
/obj/item/clothing/under/suit_jacket/burgundy
|
||||
name = "burgundy suit"
|
||||
desc = "A burgundy suit and black tie. Somewhat formal."
|
||||
icon_state = "burgundy_suit"
|
||||
item_state = "burgundy_suit"
|
||||
item_color = "burgundy_suit"
|
||||
|
||||
/obj/item/clothing/under/suit_jacket/checkered
|
||||
name = "checkered suit"
|
||||
desc = "That's a very nice suit you have there. Shame if something were to happen to it, eh?"
|
||||
icon_state = "checkered_suit"
|
||||
item_state = "checkered_suit"
|
||||
item_color = "checkered_suit"
|
||||
|
||||
/obj/item/clothing/under/suit_jacket/tan
|
||||
name = "tan suit"
|
||||
desc = "A tan suit with a yellow tie. Smart, but casual."
|
||||
icon_state = "tan_suit"
|
||||
item_state = "tan_suit"
|
||||
item_color = "tan_suit"
|
||||
|
||||
/obj/item/clothing/under/suit_jacket/white
|
||||
name = "white suit"
|
||||
desc = "A white suit and jacket with a blue shirt. You wanna play rough? OKAY!."
|
||||
icon_state = "white_suit"
|
||||
item_state = "white_suit"
|
||||
item_color = "white_suit"
|
||||
|
||||
/obj/item/clothing/under/burial
|
||||
name = "burial garments"
|
||||
desc = "Traditional burial garments from the early 22nd century."
|
||||
icon_state = "burial"
|
||||
item_state = "burial"
|
||||
item_color = "burial"
|
||||
|
||||
/obj/item/clothing/under/blackskirt
|
||||
name = "black skirt"
|
||||
desc = "A black skirt, very fancy!"
|
||||
icon_state = "blackskirt"
|
||||
item_color = "blackskirt"
|
||||
body_parts_covered = CHEST|GROIN|ARMS
|
||||
fitted = FEMALE_UNIFORM_TOP
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/blueskirt
|
||||
name = "blue skirt"
|
||||
desc = "A blue, casual skirt."
|
||||
icon_state = "blueskirt"
|
||||
item_color = "blueskirt"
|
||||
item_state = "b_suit"
|
||||
body_parts_covered = CHEST|GROIN|ARMS
|
||||
fitted = FEMALE_UNIFORM_TOP
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/blueskirt/redskirt
|
||||
name = "red skirt"
|
||||
desc = "A red, casual skirt."
|
||||
icon_state = "redskirt"
|
||||
item_color = "redskirt"
|
||||
item_state = "r_suit"
|
||||
|
||||
/obj/item/clothing/under/schoolgirl
|
||||
name = "blue schoolgirl uniform"
|
||||
desc = "It's just like one of my Japanese animes!"
|
||||
icon_state = "schoolgirl"
|
||||
item_state = "schoolgirl"
|
||||
item_color = "schoolgirl"
|
||||
body_parts_covered = CHEST|GROIN|ARMS
|
||||
fitted = FEMALE_UNIFORM_TOP
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/schoolgirl/red
|
||||
name = "red schoolgirl uniform"
|
||||
icon_state = "schoolgirlred"
|
||||
item_state = "schoolgirlred"
|
||||
item_color = "schoolgirlred"
|
||||
|
||||
/obj/item/clothing/under/schoolgirl/green
|
||||
name = "green schoolgirl uniform"
|
||||
icon_state = "schoolgirlgreen"
|
||||
item_state = "schoolgirlgreen"
|
||||
item_color = "schoolgirlgreen"
|
||||
|
||||
/obj/item/clothing/under/schoolgirl/orange
|
||||
name = "orange schoolgirl uniform"
|
||||
icon_state = "schoolgirlorange"
|
||||
item_state = "schoolgirlorange"
|
||||
item_color = "schoolgirlorange"
|
||||
|
||||
/obj/item/clothing/under/overalls
|
||||
name = "laborer's overalls"
|
||||
desc = "A set of durable overalls for getting the job done."
|
||||
icon_state = "overalls"
|
||||
item_state = "lb_suit"
|
||||
item_color = "overalls"
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/pirate
|
||||
name = "pirate outfit"
|
||||
desc = "Yarr."
|
||||
icon_state = "pirate"
|
||||
item_state = "pirate"
|
||||
item_color = "pirate"
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/soviet
|
||||
name = "soviet uniform"
|
||||
desc = "For the Motherland!"
|
||||
icon_state = "soviet"
|
||||
item_state = "soviet"
|
||||
item_color = "soviet"
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/redcoat
|
||||
name = "redcoat uniform"
|
||||
desc = "Looks old."
|
||||
icon_state = "redcoat"
|
||||
item_state = "redcoat"
|
||||
item_color = "redcoat"
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/kilt
|
||||
name = "kilt"
|
||||
desc = "Includes shoes and plaid."
|
||||
icon_state = "kilt"
|
||||
item_state = "kilt"
|
||||
item_color = "kilt"
|
||||
body_parts_covered = CHEST|GROIN|FEET
|
||||
fitted = FEMALE_UNIFORM_TOP
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/sexymime
|
||||
name = "sexy mime outfit"
|
||||
desc = "The only time when you DON'T enjoy looking at someone's rack."
|
||||
icon_state = "sexymime"
|
||||
item_state = "sexymime"
|
||||
item_color = "sexymime"
|
||||
body_parts_covered = CHEST|GROIN|LEGS
|
||||
fitted = FEMALE_UNIFORM_TOP
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/gladiator
|
||||
name = "gladiator uniform"
|
||||
desc = "Are you not entertained? Is that not why you are here?"
|
||||
icon_state = "gladiator"
|
||||
item_state = "gladiator"
|
||||
item_color = "gladiator"
|
||||
body_parts_covered = CHEST|GROIN|ARMS
|
||||
fitted = NO_FEMALE_UNIFORM
|
||||
can_adjust = 0
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/under/sundress
|
||||
name = "sundress"
|
||||
desc = "Makes you want to frolic in a field of daisies."
|
||||
icon_state = "sundress"
|
||||
item_state = "sundress"
|
||||
item_color = "sundress"
|
||||
body_parts_covered = CHEST|GROIN
|
||||
fitted = FEMALE_UNIFORM_TOP
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/captainparade
|
||||
name = "captain's parade uniform"
|
||||
desc = "A captain's luxury-wear, for special occasions."
|
||||
icon_state = "captain_parade"
|
||||
item_state = "by_suit"
|
||||
item_color = "captain_parade"
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/hosparademale
|
||||
name = "head of security's parade uniform"
|
||||
desc = "A male head of security's luxury-wear, for special occasions."
|
||||
icon_state = "hos_parade_male"
|
||||
item_state = "r_suit"
|
||||
item_color = "hos_parade_male"
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/hosparadefem
|
||||
name = "head of security's parade uniform"
|
||||
desc = "A female head of security's luxury-wear, for special occasions."
|
||||
icon_state = "hos_parade_fem"
|
||||
item_state = "r_suit"
|
||||
item_color = "hos_parade_fem"
|
||||
fitted = FEMALE_UNIFORM_TOP
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/assistantformal
|
||||
name = "assistant's formal uniform"
|
||||
desc = "An assistant's formal-wear. Why an assistant needs formal-wear is still unknown."
|
||||
icon_state = "assistant_formal"
|
||||
item_state = "gy_suit"
|
||||
item_color = "assistant_formal"
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/blacktango
|
||||
name = "black tango dress"
|
||||
desc = "Filled with Latin fire."
|
||||
icon_state = "black_tango"
|
||||
item_state = "wcoat"
|
||||
item_color = "black_tango"
|
||||
fitted = FEMALE_UNIFORM_TOP
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/stripeddress
|
||||
name = "striped dress"
|
||||
desc = "Fashion in space."
|
||||
icon_state = "striped_dress"
|
||||
item_state = "stripeddress"
|
||||
item_color = "striped_dress"
|
||||
fitted = FEMALE_UNIFORM_FULL
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/sailordress
|
||||
name = "sailor dress"
|
||||
desc = "Formal wear for a leading lady."
|
||||
icon_state = "sailor_dress"
|
||||
item_state = "sailordress"
|
||||
item_color = "sailor_dress"
|
||||
fitted = FEMALE_UNIFORM_TOP
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/redeveninggown
|
||||
name = "red evening gown"
|
||||
desc = "Fancy dress for space bar singers."
|
||||
icon_state = "red_evening_gown"
|
||||
item_state = "redeveninggown"
|
||||
item_color = "red_evening_gown"
|
||||
fitted = FEMALE_UNIFORM_TOP
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/maid
|
||||
name = "maid costume"
|
||||
desc = "Maid in China."
|
||||
icon_state = "maid"
|
||||
item_state = "maid"
|
||||
item_color = "maid"
|
||||
body_parts_covered = CHEST|GROIN
|
||||
fitted = FEMALE_UNIFORM_TOP
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/janimaid
|
||||
name = "maid uniform"
|
||||
desc = "A simple maid uniform for housekeeping."
|
||||
icon_state = "janimaid"
|
||||
item_state = "janimaid"
|
||||
item_color = "janimaid"
|
||||
body_parts_covered = CHEST|GROIN
|
||||
fitted = FEMALE_UNIFORM_TOP
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/plaid_skirt
|
||||
name = "red plaid skirt"
|
||||
desc = "A preppy red skirt with a white blouse."
|
||||
icon_state = "plaid_red"
|
||||
item_state = "plaid_red"
|
||||
item_color = "plaid_red"
|
||||
fitted = FEMALE_UNIFORM_TOP
|
||||
can_adjust = 1
|
||||
alt_covers_chest = 1
|
||||
|
||||
/obj/item/clothing/under/plaid_skirt/blue
|
||||
name = "blue plaid skirt"
|
||||
desc = "A preppy blue skirt with a white blouse."
|
||||
icon_state = "plaid_blue"
|
||||
item_state = "plaid_blue"
|
||||
item_color = "plaid_blue"
|
||||
fitted = FEMALE_UNIFORM_TOP
|
||||
can_adjust = 1
|
||||
alt_covers_chest = 1
|
||||
|
||||
/obj/item/clothing/under/plaid_skirt/purple
|
||||
name = "purple plaid skirt"
|
||||
desc = "A preppy purple skirt with a white blouse."
|
||||
icon_state = "plaid_purple"
|
||||
item_state = "plaid_purple"
|
||||
item_color = "plaid_purple"
|
||||
fitted = FEMALE_UNIFORM_TOP
|
||||
can_adjust = 1
|
||||
alt_covers_chest = 1
|
||||
|
||||
/obj/item/clothing/under/plaid_skirt/green
|
||||
name = "green plaid skirt"
|
||||
desc = "A preppy green skirt with a white blouse."
|
||||
icon_state = "plaid_green"
|
||||
item_state = "plaid_green"
|
||||
item_color = "plaid_green"
|
||||
fitted = FEMALE_UNIFORM_TOP
|
||||
can_adjust = 1
|
||||
alt_covers_chest = 1
|
||||
|
||||
/obj/item/clothing/under/jester
|
||||
name = "jester suit"
|
||||
desc = "A jolly dress, well suited to entertain your master, nuncle."
|
||||
icon_state = "jester"
|
||||
item_color = "jester"
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/plasmaman
|
||||
name = "Plasma-man Jumpsuit"
|
||||
desc = "A specially designed suit that allows Plasma based life forms to exist in an oxygenated environment."
|
||||
icon_state = "plasmaman"
|
||||
item_state = "plasmaman"
|
||||
item_color = "plasmaman"
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 0)
|
||||
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
can_adjust = 0
|
||||
strip_delay = 80
|
||||
var/next_extinguish = 0
|
||||
var/extinguish_cooldown = 100
|
||||
var/extinguishes_left = 5
|
||||
|
||||
|
||||
/obj/item/clothing/under/plasmaman/examine(mob/user)
|
||||
..()
|
||||
user << "<span class='notice'>There are [extinguishes_left] extinguisher canisters left in this suit.</span>"
|
||||
|
||||
|
||||
/obj/item/clothing/under/plasmaman/proc/Extinguish(mob/living/carbon/human/H)
|
||||
if(!istype(H))
|
||||
return
|
||||
|
||||
if(H.on_fire)
|
||||
if(extinguishes_left)
|
||||
if(next_extinguish > world.time)
|
||||
return
|
||||
next_extinguish = world.time + extinguish_cooldown
|
||||
extinguishes_left--
|
||||
H.visible_message("<span class='warning'>[H]'s suit automatically extinguishes them!</span>","<span class='warning'>Your suit automatically extinguishes you.</span>")
|
||||
H.ExtinguishMob()
|
||||
PoolOrNew(/obj/effect/particle_effect/water, get_turf(H))
|
||||
return 0
|
||||
|
||||
/obj/item/clothing/under/plasmaman/attackby(obj/item/E, mob/user, params)
|
||||
if (istype(E, /obj/item/device/extinguisher_refill))
|
||||
if (extinguishes_left == 5)
|
||||
user << "<span class='notice'>The inbuilt extinguisher is full.</span>"
|
||||
return
|
||||
else
|
||||
extinguishes_left = 5
|
||||
user << "<span class='notice'>You refill the suits inbuilt extinguisher, using up the refill pack.</span>"
|
||||
qdel(E)
|
||||
return
|
||||
return
|
||||
return
|
||||
|
||||
/obj/item/device/extinguisher_refill
|
||||
name = "Plasma-man jumpsuit refill pack"
|
||||
desc = "A compressed water pack used to refill plasma-man jumpsuit auto-extinguishers."
|
||||
icon_state = "plasmarefill"
|
||||
origin_tech = "materials=2;plasmatech=3;biotech=1"
|
||||
|
||||
/obj/item/clothing/under/rank/security/navyblue/russian
|
||||
name = "russian officer's uniform"
|
||||
desc = "The latest in fashionable russian outfits."
|
||||
icon_state = "hostanclothes"
|
||||
item_state = "hostanclothes"
|
||||
item_color = "hostanclothes"
|
||||
@@ -0,0 +1,77 @@
|
||||
/obj/item/clothing/under/pants
|
||||
gender = PLURAL
|
||||
body_parts_covered = GROIN|LEGS
|
||||
fitted = NO_FEMALE_UNIFORM
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/pants/classicjeans
|
||||
name = "classic jeans"
|
||||
desc = "You feel cooler already."
|
||||
icon_state = "jeansclassic"
|
||||
item_color = "jeansclassic"
|
||||
|
||||
/obj/item/clothing/under/pants/mustangjeans
|
||||
name = "Must Hang jeans"
|
||||
desc = "Made in the finest space jeans factory this side of Alpha Centauri."
|
||||
icon_state = "jeansmustang"
|
||||
item_color = "jeansmustang"
|
||||
|
||||
/obj/item/clothing/under/pants/blackjeans
|
||||
name = "black jeans"
|
||||
desc = "Only for those who can pull it off."
|
||||
icon_state = "jeansblack"
|
||||
item_color = "jeansblack"
|
||||
|
||||
/obj/item/clothing/under/pants/youngfolksjeans
|
||||
name = "Young Folks jeans"
|
||||
desc = "For those tired of boring old jeans. Relive the passion of your youth!"
|
||||
icon_state = "jeansyoungfolks"
|
||||
item_color = "jeansyoungfolks"
|
||||
|
||||
/obj/item/clothing/under/pants/white
|
||||
name = "white pants"
|
||||
desc = "Plain white pants. Boring."
|
||||
icon_state = "whitepants"
|
||||
item_color = "whitepants"
|
||||
|
||||
/obj/item/clothing/under/pants/red
|
||||
name = "red pants"
|
||||
desc = "Bright red pants. Overflowing with personality."
|
||||
icon_state = "redpants"
|
||||
item_color = "redpants"
|
||||
|
||||
/obj/item/clothing/under/pants/black
|
||||
name = "black pants"
|
||||
desc = "These pants are dark, like your soul."
|
||||
icon_state = "blackpants"
|
||||
item_color = "blackpants"
|
||||
|
||||
/obj/item/clothing/under/pants/tan
|
||||
name = "tan pants"
|
||||
desc = "Some tan pants. You look like a white collar worker with these on."
|
||||
icon_state = "tanpants"
|
||||
item_color = "tanpants"
|
||||
|
||||
/obj/item/clothing/under/pants/track
|
||||
name = "track pants"
|
||||
desc = "A pair of track pants, for the athletic."
|
||||
icon_state = "trackpants"
|
||||
item_color = "trackpants"
|
||||
|
||||
/obj/item/clothing/under/pants/jeans
|
||||
name = "jeans"
|
||||
desc = "A nondescript pair of tough blue jeans."
|
||||
icon_state = "jeans"
|
||||
item_color = "jeans"
|
||||
|
||||
/obj/item/clothing/under/pants/khaki
|
||||
name = "khaki pants"
|
||||
desc = "A pair of dust beige khaki pants."
|
||||
icon_state = "khaki"
|
||||
item_color = "khaki"
|
||||
|
||||
/obj/item/clothing/under/pants/camo
|
||||
name = "camo pants"
|
||||
desc = "A pair of woodland camouflage pants. Probably not the best choice for a space station."
|
||||
icon_state = "camopants"
|
||||
item_color = "camopants"
|
||||
@@ -0,0 +1,31 @@
|
||||
/obj/item/clothing/under/shorts
|
||||
name = "athletic shorts"
|
||||
desc = "95% Polyester, 5% Spandex!"
|
||||
gender = PLURAL
|
||||
body_parts_covered = GROIN
|
||||
fitted = NO_FEMALE_UNIFORM
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/shorts/red
|
||||
icon_state = "redshorts"
|
||||
item_color = "redshorts"
|
||||
|
||||
/obj/item/clothing/under/shorts/green
|
||||
icon_state = "greenshorts"
|
||||
item_color = "greenshorts"
|
||||
|
||||
/obj/item/clothing/under/shorts/blue
|
||||
icon_state = "blueshorts"
|
||||
item_color = "blueshorts"
|
||||
|
||||
/obj/item/clothing/under/shorts/black
|
||||
icon_state = "blackshorts"
|
||||
item_color = "blackshorts"
|
||||
|
||||
/obj/item/clothing/under/shorts/grey
|
||||
icon_state = "greyshorts"
|
||||
item_color = "greyshorts"
|
||||
|
||||
/obj/item/clothing/under/shorts/purple
|
||||
icon_state = "purpleshorts"
|
||||
item_color = "purpleshorts"
|
||||
@@ -0,0 +1,40 @@
|
||||
/obj/item/clothing/under/syndicate
|
||||
name = "tactical turtleneck"
|
||||
desc = "A non-descript and slightly suspicious looking turtleneck with digital camouflage cargo pants."
|
||||
icon_state = "syndicate"
|
||||
item_state = "bl_suit"
|
||||
item_color = "syndicate"
|
||||
has_sensor = 0
|
||||
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
alt_covers_chest = 1
|
||||
|
||||
/obj/item/clothing/under/syndicate/tacticool
|
||||
name = "tacticool turtleneck"
|
||||
desc = "Just looking at it makes you want to buy an SKS, go into the woods, and -operate-."
|
||||
icon_state = "tactifool"
|
||||
item_state = "bl_suit"
|
||||
item_color = "tactifool"
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
|
||||
/obj/item/clothing/under/syndicate/sniper
|
||||
name = "Tactical turtleneck suit"
|
||||
desc = "A double seamed tactical turtleneck disguised as a civillian grade silk suit. Intended for the most formal operator. The collar is really sharp"
|
||||
icon_state = "really_black_suit"
|
||||
item_state = "bl_suit"
|
||||
item_color = "black_suit"
|
||||
|
||||
/obj/item/clothing/under/syndicate/camo
|
||||
name = "camouflage fatigues"
|
||||
desc = "A green military camouflage uniform."
|
||||
icon_state = "camogreen"
|
||||
item_state = "g_suit"
|
||||
item_color = "camogreen"
|
||||
|
||||
/obj/item/clothing/under/syndicate/soviet
|
||||
name = "Ratnik 5 tracksuit"
|
||||
desc = "Badly translated labels tell you to clean this in Vodka. Great for squatting in."
|
||||
icon_state = "trackpants"
|
||||
item_color = "trackpants"
|
||||
can_adjust = 0
|
||||
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
burn_state = FIRE_PROOF
|
||||
@@ -0,0 +1,323 @@
|
||||
/obj/item/clothing/tie
|
||||
name = "tie"
|
||||
desc = "A neosilk clip-on tie."
|
||||
icon = 'icons/obj/clothing/ties.dmi'
|
||||
icon_state = "bluetie"
|
||||
item_state = "" //no inhands
|
||||
item_color = "bluetie"
|
||||
slot_flags = 0
|
||||
w_class = 2
|
||||
|
||||
/obj/item/clothing/tie/blue
|
||||
name = "blue tie"
|
||||
icon_state = "bluetie"
|
||||
item_color = "bluetie"
|
||||
|
||||
/obj/item/clothing/tie/red
|
||||
name = "red tie"
|
||||
icon_state = "redtie"
|
||||
item_color = "redtie"
|
||||
|
||||
/obj/item/clothing/tie/black
|
||||
name = "black tie"
|
||||
icon_state = "blacktie"
|
||||
item_color = "blacktie"
|
||||
|
||||
/obj/item/clothing/tie/horrible
|
||||
name = "horrible tie"
|
||||
desc = "A neosilk clip-on tie. This one is disgusting."
|
||||
icon_state = "horribletie"
|
||||
item_color = "horribletie"
|
||||
|
||||
/obj/item/clothing/tie/waistcoat
|
||||
name = "waistcoat"
|
||||
desc = "For some classy, murderous fun."
|
||||
icon_state = "waistcoat"
|
||||
item_state = "waistcoat"
|
||||
item_color = "waistcoat"
|
||||
|
||||
/obj/item/clothing/tie/stethoscope
|
||||
name = "stethoscope"
|
||||
desc = "An outdated medical apparatus for listening to the sounds of the human body. It also makes you look like you know what you're doing."
|
||||
icon_state = "stethoscope"
|
||||
item_color = "stethoscope"
|
||||
|
||||
/obj/item/clothing/tie/stethoscope/attack(mob/living/carbon/human/M, mob/living/user)
|
||||
if(ishuman(M) && isliving(user))
|
||||
if(user.a_intent == "help")
|
||||
var/body_part = parse_zone(user.zone_selected)
|
||||
if(body_part)
|
||||
var/their = "their"
|
||||
switch(M.gender)
|
||||
if(MALE)
|
||||
their = "his"
|
||||
if(FEMALE)
|
||||
their = "her"
|
||||
|
||||
var/sound = "pulse"
|
||||
var/sound_strength
|
||||
|
||||
if(M.stat == DEAD || (M.status_flags&FAKEDEATH))
|
||||
sound_strength = "cannot hear"
|
||||
sound = "anything"
|
||||
else
|
||||
sound_strength = "hear a weak"
|
||||
switch(body_part)
|
||||
if("chest")
|
||||
if(M.oxyloss < 50)
|
||||
sound_strength = "hear a healthy"
|
||||
sound = "pulse and respiration"
|
||||
if("eyes","mouth")
|
||||
sound_strength = "cannot hear"
|
||||
sound = "anything"
|
||||
else
|
||||
sound_strength = "hear a weak"
|
||||
|
||||
user.visible_message("[user] places [src] against [M]'s [body_part] and listens attentively.", "You place [src] against [their] [body_part]. You [sound_strength] [sound].")
|
||||
return
|
||||
return ..(M,user)
|
||||
|
||||
//////////
|
||||
//Medals//
|
||||
//////////
|
||||
|
||||
/obj/item/clothing/tie/medal
|
||||
name = "bronze medal"
|
||||
desc = "A bronze medal."
|
||||
icon_state = "bronze"
|
||||
item_color = "bronze"
|
||||
materials = list(MAT_METAL=1000)
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
//Pinning medals on people
|
||||
/obj/item/clothing/tie/medal/attack(mob/living/carbon/human/M, mob/living/user)
|
||||
if(ishuman(M) && (user.a_intent == "help"))
|
||||
|
||||
if(M.wear_suit)
|
||||
if((M.wear_suit.flags_inv & HIDEJUMPSUIT)) //Check if the jumpsuit is covered
|
||||
user << "<span class='warning'>Medals can only be pinned on jumpsuits.</span>"
|
||||
return
|
||||
|
||||
if(M.w_uniform)
|
||||
var/obj/item/clothing/under/U = M.w_uniform
|
||||
if(U.attachTie(src, user, 0)) //Attach it, do not notify the user of the attachment
|
||||
if(user == M)
|
||||
user << "<span class='notice'>You attach [src] to [U].</span>"
|
||||
else
|
||||
user.visible_message("[user] pins \the [src] on [M]'s chest.", \
|
||||
"<span class='notice'>You pin \the [src] on [M]'s chest.</span>")
|
||||
|
||||
else user << "<span class='warning'>Medals can only be pinned on jumpsuits!</span>"
|
||||
else ..()
|
||||
|
||||
/obj/item/clothing/tie/medal/conduct
|
||||
name = "distinguished conduct medal"
|
||||
desc = "A bronze medal awarded for distinguished conduct. Whilst a great honor, this is the most basic award given by Nanotrasen. It is often awarded by a captain to a member of his crew."
|
||||
|
||||
/obj/item/clothing/tie/medal/bronze_heart
|
||||
name = "bronze heart medal"
|
||||
desc = "A bronze heart-shaped medal awarded for sacrifice. It is often awarded posthumously or for severe injury in the line of duty."
|
||||
icon_state = "bronze_heart"
|
||||
|
||||
/obj/item/clothing/tie/medal/nobel_science
|
||||
name = "nobel sciences award"
|
||||
desc = "A bronze medal which represents significant contributions to the field of science or engineering."
|
||||
|
||||
/obj/item/clothing/tie/medal/silver
|
||||
name = "silver medal"
|
||||
desc = "A silver medal."
|
||||
icon_state = "silver"
|
||||
item_color = "silver"
|
||||
materials = list(MAT_SILVER=1000)
|
||||
|
||||
/obj/item/clothing/tie/medal/silver/valor
|
||||
name = "medal of valor"
|
||||
desc = "A silver medal awarded for acts of exceptional valor."
|
||||
|
||||
/obj/item/clothing/tie/medal/silver/security
|
||||
name = "robust security award"
|
||||
desc = "An award for distinguished combat and sacrifice in defence of Nanotrasen's commercial interests. Often awarded to security staff."
|
||||
|
||||
/obj/item/clothing/tie/medal/gold
|
||||
name = "gold medal"
|
||||
desc = "A prestigious golden medal."
|
||||
icon_state = "gold"
|
||||
item_color = "gold"
|
||||
materials = list(MAT_GOLD=1000)
|
||||
|
||||
/obj/item/clothing/tie/medal/gold/captain
|
||||
name = "medal of captaincy"
|
||||
desc = "A golden medal awarded exclusively to those promoted to the rank of captain. It signifies the codified responsibilities of a captain to Nanotrasen, and their undisputable authority over their crew."
|
||||
|
||||
/obj/item/clothing/tie/medal/gold/heroism
|
||||
name = "medal of exceptional heroism"
|
||||
desc = "An extremely rare golden medal awarded only by Centcom. To receive such a medal is the highest honor and as such, very few exist. This medal is almost never awarded to anybody but commanders."
|
||||
|
||||
////////////
|
||||
//Armbands//
|
||||
////////////
|
||||
|
||||
/obj/item/clothing/tie/armband
|
||||
name = "red armband"
|
||||
desc = "An fancy red armband!"
|
||||
icon_state = "redband"
|
||||
item_color = "redband"
|
||||
|
||||
/obj/item/clothing/tie/armband/deputy
|
||||
name = "security deputy armband"
|
||||
desc = "An armband, worn by personnel authorized to act as a deputy of station security."
|
||||
|
||||
/obj/item/clothing/tie/armband/cargo
|
||||
name = "cargo bay guard armband"
|
||||
desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is brown."
|
||||
icon_state = "cargoband"
|
||||
item_color = "cargoband"
|
||||
|
||||
/obj/item/clothing/tie/armband/engine
|
||||
name = "engineering guard armband"
|
||||
desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is orange with a reflective strip!"
|
||||
icon_state = "engieband"
|
||||
item_color = "engieband"
|
||||
|
||||
/obj/item/clothing/tie/armband/science
|
||||
name = "science guard armband"
|
||||
desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is purple."
|
||||
icon_state = "rndband"
|
||||
item_color = "rndband"
|
||||
|
||||
/obj/item/clothing/tie/armband/hydro
|
||||
name = "hydroponics guard armband"
|
||||
desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is green and blue."
|
||||
icon_state = "hydroband"
|
||||
item_color = "hydroband"
|
||||
|
||||
/obj/item/clothing/tie/armband/med
|
||||
name = "medical guard armband"
|
||||
desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is white."
|
||||
icon_state = "medband"
|
||||
item_color = "medband"
|
||||
|
||||
/obj/item/clothing/tie/armband/medblue
|
||||
name = "medical guard armband"
|
||||
desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is white and blue."
|
||||
icon_state = "medblueband"
|
||||
item_color = "medblueband"
|
||||
|
||||
///////////
|
||||
//SCARVES//
|
||||
///////////
|
||||
|
||||
/obj/item/clothing/tie/scarf
|
||||
name = "scarf"
|
||||
desc = "A stylish scarf. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their necks."
|
||||
dog_fashion = /datum/dog_fashion/head
|
||||
|
||||
/obj/item/clothing/tie/scarf/red
|
||||
name = "red scarf"
|
||||
icon_state = "redscarf"
|
||||
item_color = "redscarf"
|
||||
|
||||
/obj/item/clothing/tie/scarf/green
|
||||
name = "green scarf"
|
||||
icon_state = "greenscarf"
|
||||
item_color = "greenscarf"
|
||||
|
||||
/obj/item/clothing/tie/scarf/darkblue
|
||||
name = "dark blue scarf"
|
||||
icon_state = "darkbluescarf"
|
||||
item_color = "darkbluescarf"
|
||||
|
||||
/obj/item/clothing/tie/scarf/purple
|
||||
name = "purple scarf"
|
||||
icon_state = "purplescarf"
|
||||
item_color = "purplescarf"
|
||||
|
||||
/obj/item/clothing/tie/scarf/yellow
|
||||
name = "yellow scarf"
|
||||
icon_state = "yellowscarf"
|
||||
item_color = "yellowscarf"
|
||||
|
||||
/obj/item/clothing/tie/scarf/orange
|
||||
name = "orange scarf"
|
||||
icon_state = "orangescarf"
|
||||
item_color = "orangescarf"
|
||||
|
||||
/obj/item/clothing/tie/scarf/lightblue
|
||||
name = "light blue scarf"
|
||||
icon_state = "lightbluescarf"
|
||||
item_color = "lightbluescarf"
|
||||
|
||||
/obj/item/clothing/tie/scarf/white
|
||||
name = "white scarf"
|
||||
icon_state = "whitescarf"
|
||||
item_color = "whitescarf"
|
||||
|
||||
/obj/item/clothing/tie/scarf/black
|
||||
name = "black scarf"
|
||||
icon_state = "blackscarf"
|
||||
item_color = "blackscarf"
|
||||
|
||||
/obj/item/clothing/tie/scarf/zebra
|
||||
name = "zebra scarf"
|
||||
icon_state = "zebrascarf"
|
||||
item_color = "zebrascarf"
|
||||
|
||||
/obj/item/clothing/tie/scarf/christmas
|
||||
name = "christmas scarf"
|
||||
icon_state = "christmasscarf"
|
||||
item_color = "christmasscarf"
|
||||
|
||||
//The three following scarves don't have the scarf subtype
|
||||
//This is because Ian can equip anything from that subtype
|
||||
//However, these 3 don't have corgi versions of their sprites
|
||||
/obj/item/clothing/tie/stripedredscarf
|
||||
name = "striped red scarf"
|
||||
icon_state = "stripedredscarf"
|
||||
item_color = "stripedredscarf"
|
||||
|
||||
/obj/item/clothing/tie/stripedgreenscarf
|
||||
name = "striped green scarf"
|
||||
icon_state = "stripedgreenscarf"
|
||||
item_color = "stripedgreenscarf"
|
||||
|
||||
/obj/item/clothing/tie/stripedbluescarf
|
||||
name = "striped blue scarf"
|
||||
icon_state = "stripedbluescarf"
|
||||
item_color = "stripedbluescarf"
|
||||
|
||||
/obj/item/clothing/tie/petcollar //don't really wear this though please c'mon seriously guys
|
||||
name = "pet collar"
|
||||
desc = "It's for pets. Though you probably could wear it yourself, you'd doubtless be the subject of ridicule."
|
||||
icon_state = "petcollar"
|
||||
item_color = "petcollar"
|
||||
var/tagname = null
|
||||
|
||||
/obj/item/clothing/tie/petcollar/attack_self(mob/user)
|
||||
tagname = copytext(sanitize(input(user, "Would you like to change the name on the tag?", "Name your new pet", "Spot") as null|text),1,MAX_NAME_LEN)
|
||||
name = "[initial(name)] - [tagname]"
|
||||
|
||||
//////////////
|
||||
//DOPE BLING//
|
||||
//////////////
|
||||
|
||||
/obj/item/clothing/tie/dope_necklace
|
||||
name = "gold necklace"
|
||||
desc = "Damn, it feels good to be a gangster."
|
||||
icon = 'icons/obj/clothing/ties.dmi'
|
||||
icon_state = "bling"
|
||||
item_state = "" //no inhands
|
||||
item_color = "bling"
|
||||
|
||||
////////////////
|
||||
//OONGA BOONGA//
|
||||
////////////////
|
||||
|
||||
/obj/item/clothing/tie/talisman
|
||||
name = "bone talisman"
|
||||
desc = "A hunter's talisman, some say the old gods smile on those who wear it."
|
||||
icon = 'icons/obj/clothing/ties.dmi'
|
||||
icon_state = "talisman"
|
||||
item_state = ""
|
||||
item_color = "talisman"
|
||||
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS|HEAD
|
||||
armor = list(melee = 5, bullet = 5, laser = 5, energy = 5, bomb = 50, bio = 65, rad = 5) //Faith is the best armor. //This won't actually work because of accessories kill me with a fucking knife jesus christ I hate code
|
||||
Reference in New Issue
Block a user