* removes the block chance from the Roman Shield. * replaces the Roman Shield in the autodrobe with a toy version with no block chance. * replaces the armoured roman helmets from the autodrobe with fake ones.
336 lines
11 KiB
Plaintext
336 lines
11 KiB
Plaintext
/obj/item/clothing/head/helmet
|
|
name = "helmet"
|
|
desc = "Standard Security gear. Protects the head from impacts."
|
|
icon_state = "helmet"
|
|
item_state = "helmet"
|
|
armor = list("melee" = 35, "bullet" = 30, "laser" = 30,"energy" = 10, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50)
|
|
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
|
|
resistance_flags = NONE
|
|
flags_cover = HEADCOVERSEYES
|
|
flags_inv = HIDEHAIR
|
|
flags_2 = BANG_PROTECT_2
|
|
|
|
dog_fashion = /datum/dog_fashion/head/helmet
|
|
|
|
/obj/item/clothing/head/helmet/sec
|
|
can_flashlight = 1
|
|
|
|
/obj/item/clothing/head/helmet/sec/attackby(obj/item/I, mob/user, params)
|
|
if(issignaler(I))
|
|
var/obj/item/assembly/signaler/S = I
|
|
if(F) //Has a flashlight. Player must remove it, else it will be lost forever.
|
|
to_chat(user, "<span class='warning'>The mounted flashlight is in the way, remove it first!</span>")
|
|
return
|
|
|
|
if(S.secured)
|
|
qdel(S)
|
|
var/obj/item/bot_assembly/secbot/A = new
|
|
user.put_in_hands(A)
|
|
to_chat(user, "<span class='notice'>You add the signaler to the helmet.</span>")
|
|
qdel(src)
|
|
return
|
|
return ..()
|
|
|
|
/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" = 60, "laser" = 10, "energy" = 10, "bomb" = 40, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50)
|
|
can_flashlight = 1
|
|
dog_fashion = null
|
|
|
|
/obj/item/clothing/head/helmet/old
|
|
name = "degrading helmet"
|
|
desc = "Standard issue security helmet. Due to degradation the helmet's visor obstructs the users ability to see long distances."
|
|
tint = 2
|
|
|
|
/obj/item/clothing/head/helmet/blueshirt
|
|
icon_state = "blueshift"
|
|
item_state = "blueshift"
|
|
|
|
/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
|
|
armor = list("melee" = 45, "bullet" = 15, "laser" = 5,"energy" = 5, "bomb" = 5, "bio" = 2, "rad" = 0, "fire" = 50, "acid" = 50)
|
|
flags_inv = HIDEEARS|HIDEFACE
|
|
strip_delay = 80
|
|
actions_types = list(/datum/action/item_action/toggle)
|
|
visor_flags_inv = HIDEFACE
|
|
toggle_cooldown = 0
|
|
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
|
|
visor_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_1 ^= visor_flags
|
|
flags_inv ^= visor_flags_inv
|
|
flags_cover ^= visor_flags_cover
|
|
icon_state = "[initial(icon_state)][up ? "up" : ""]"
|
|
to_chat(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, "fire" = 50, "acid" = 50)
|
|
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_1 = STOPSPRESSUREDMAGE_1
|
|
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, "fire" = 50, "acid" = 50)
|
|
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, "fire" = 100, "acid" = 50)
|
|
resistance_flags = FIRE_PROOF
|
|
icon_state = "roman"
|
|
item_state = "roman"
|
|
strip_delay = 100
|
|
dog_fashion = null
|
|
|
|
/obj/item/clothing/head/helmet/roman/fake
|
|
desc = "An ancient helmet made of plastic and leather."
|
|
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0)
|
|
|
|
/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/roman/legionaire/fake
|
|
desc = "An ancient helmet made of plastic and leather. Has a red crest on top of it."
|
|
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0)
|
|
|
|
/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, "fire" = 0, "acid" = 50)
|
|
// 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, "fire" = 0, "acid" = 50)
|
|
// 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, "fire" = 0, "acid" = 50)
|
|
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR
|
|
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
|
|
strip_delay = 80
|
|
dog_fashion = null
|
|
// old knight helmets do not offer protection against loud noises
|
|
flags_2 = NONE
|
|
|
|
/obj/item/clothing/head/helmet/knight/Initialize(mapload)
|
|
. = ..()
|
|
|
|
/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, "fire" = 40, "acid" = 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(ishuman(loc))
|
|
var/mob/living/carbon/human/H = loc
|
|
H.update_inv_head()
|
|
|
|
/obj/item/clothing/head/helmet/ui_action_click(mob/user, action)
|
|
if(istype(action, /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/flashlight/seclite))
|
|
var/obj/item/flashlight/seclite/S = I
|
|
if(can_flashlight)
|
|
if(!F)
|
|
if(!user.transferItemToLoc(S, src))
|
|
return
|
|
to_chat(user, "<span class='notice'>You click [S] into place on [src].</span>")
|
|
if(S.on)
|
|
set_light(0)
|
|
F = S
|
|
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/screwdriver))
|
|
if(F)
|
|
for(var/obj/item/flashlight/seclite/S in src)
|
|
to_chat(user, "<span class='notice'>You unscrew the seclite from [src].</span>")
|
|
F = null
|
|
S.forceMove(user.drop_location())
|
|
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
|
|
|
|
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
|
|
F.on = !F.on
|
|
to_chat(user, "<span class='notice'>You toggle the helmetlight [F.on ? "on":"off"].</span>")
|
|
|
|
playsound(user, 'sound/weapons/empty.ogg', 100, 1)
|
|
update_helmlight(user)
|
|
|
|
/obj/item/clothing/head/helmet/proc/update_helmlight(mob/user = null)
|
|
if(F)
|
|
if(F.on)
|
|
set_light(F.brightness_on)
|
|
else
|
|
set_light(0)
|
|
update_icon()
|
|
|
|
else
|
|
set_light(0)
|
|
for(var/X in actions)
|
|
var/datum/action/A = X
|
|
A.UpdateButtonIcon()
|