April sync (#360)
* Maps and things no code/icons * helpers defines globalvars * Onclick world.dm orphaned_procs * subsystems Round vote and shuttle autocall done here too * datums * Game folder * Admin - chatter modules * clothing - mining * modular computers - zambies * client * mob level 1 * mob stage 2 + simple_animal * silicons n brains * mob stage 3 + Alien/Monkey * human mobs * icons updated * some sounds * emitter y u no commit * update tgstation.dme * compile fixes * travis fixes Also removes Fast digest mode, because reasons. * tweaks for travis Mentors are broke again Also fixes Sizeray guns * oxygen loss fix for vore code. * removes unused code * some code updates * bulk fixes * further fixes * outside things * whoops. * Maint bar ported * GLOBs.
This commit is contained in:
@@ -79,47 +79,42 @@
|
||||
if(button)
|
||||
button.name = "Change [chameleon_name] Appearance"
|
||||
|
||||
|
||||
chameleon_blacklist |= typecacheof(target.type)
|
||||
for(var/V in typesof(chameleon_type))
|
||||
if(ispath(V, /obj/item))
|
||||
if(ispath(V) && ispath(V, /obj/item))
|
||||
var/obj/item/I = V
|
||||
if(chameleon_blacklist[V] || (initial(I.flags) & ABSTRACT))
|
||||
continue
|
||||
chameleon_list += I
|
||||
if(!initial(I.icon_state) || !initial(I.item_state))
|
||||
continue
|
||||
var/chameleon_item_name = "[initial(I.name)] ([initial(I.icon_state)])"
|
||||
chameleon_list[chameleon_item_name] = I
|
||||
|
||||
|
||||
/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 into", "Chameleon [chameleon_name]", picked_name) in item_names
|
||||
picked_name = input("Select [chameleon_name] to change into", "Chameleon [chameleon_name]", picked_name) as null|anything in chameleon_list
|
||||
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
|
||||
picked_item = chameleon_list[picked_name]
|
||||
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)
|
||||
var/picked_name = 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)
|
||||
update_look(user, chameleon_list[picked_name])
|
||||
|
||||
// Otherwise, it's likely a random initialisation, so we
|
||||
// don't have to worry
|
||||
|
||||
else
|
||||
update_item(picked_item)
|
||||
update_item(chameleon_list[picked_name])
|
||||
|
||||
/datum/action/item_action/chameleon/change/proc/update_look(mob/user, obj/item/picked_item)
|
||||
if(istype(target, /obj/item/weapon/gun/energy/laser/chameleon))
|
||||
@@ -441,6 +436,7 @@
|
||||
chameleon_gun_vars = list()
|
||||
ammo_copy_vars = list("firing_effect_type")
|
||||
chameleon_ammo_vars = list()
|
||||
recharge_newshot()
|
||||
get_chameleon_projectile(/obj/item/weapon/gun/energy/laser)
|
||||
|
||||
/obj/item/weapon/gun/energy/laser/chameleon/emp_act(severity)
|
||||
@@ -480,7 +476,7 @@
|
||||
if(!istype(P))
|
||||
CRASH("[P] is not /obj/item/projectile!")
|
||||
return FALSE
|
||||
chameleon_projectile_vars = list("name" = "practice laser", "icon" = 'icons/obj/projectiles.dmi', "icon_state" = "laser")
|
||||
chameleon_projectile_vars = list("name" = "practice laser", "icon" = 'icons/obj/projectiles.dmi', "icon_state" = "laser", "nodamage" = TRUE)
|
||||
for(var/V in projectile_copy_vars)
|
||||
if(P.vars[V])
|
||||
chameleon_projectile_vars[V] = P.vars[V]
|
||||
|
||||
@@ -119,6 +119,8 @@
|
||||
|
||||
/obj/item/clothing/dropped(mob/user)
|
||||
..()
|
||||
if(!istype(user))
|
||||
return
|
||||
if(user_vars_remembered && user_vars_remembered.len)
|
||||
for(var/variable in user_vars_remembered)
|
||||
if(variable in user.vars)
|
||||
@@ -141,15 +143,29 @@
|
||||
..()
|
||||
if(damaged_clothes)
|
||||
to_chat(user, "<span class='warning'>It looks damaged!</span>")
|
||||
if(pockets)
|
||||
var/list/how_cool_are_your_threads = list("<span class='notice'>")
|
||||
if(pockets.priority)
|
||||
how_cool_are_your_threads += "Your [src]'s storage opens when clicked.\n"
|
||||
else
|
||||
how_cool_are_your_threads += "Your [src]'s storage opens when dragged to yourself.\n"
|
||||
how_cool_are_your_threads += "Your [src] can store [pockets.storage_slots] item[pockets.storage_slots > 1 ? "s" : ""].\n"
|
||||
how_cool_are_your_threads += "Your [src] can store items that are [weightclass2text(pockets.max_w_class)] or smaller.\n"
|
||||
if(pockets.quickdraw)
|
||||
how_cool_are_your_threads += "You can quickly remove an item from your [src] using Alt-Click.\n"
|
||||
if(pockets.silent)
|
||||
how_cool_are_your_threads += "Adding or Removing items from your [src] makes no noise.\n"
|
||||
how_cool_are_your_threads += "</span>"
|
||||
to_chat(user, how_cool_are_your_threads.Join())
|
||||
|
||||
/obj/item/clothing/obj_break(damage_flag)
|
||||
if(!damaged_clothes)
|
||||
update_clothes_damaged_state(TRUE)
|
||||
|
||||
var/list/damaged_clothes_icons = list()
|
||||
|
||||
/obj/item/clothing/proc/update_clothes_damaged_state(damaging = TRUE)
|
||||
var/index = "\ref[initial(icon)]-[initial(icon_state)]"
|
||||
var/static/list/damaged_clothes_icons = list()
|
||||
if(damaging)
|
||||
damaged_clothes = 1
|
||||
var/icon/damaged_clothes_icon = damaged_clothes_icons[index]
|
||||
@@ -197,6 +213,7 @@ var/list/damaged_clothes_icons = list()
|
||||
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/lighting_alpha
|
||||
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?
|
||||
@@ -369,6 +386,8 @@ BLIND // can't see anything
|
||||
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/offset = 0
|
||||
var/equipped_before_drop = FALSE
|
||||
|
||||
/obj/item/clothing/shoes/worn_overlays(isinhands = FALSE)
|
||||
. = list()
|
||||
@@ -384,6 +403,24 @@ BLIND // can't see anything
|
||||
if(bloody)
|
||||
. += image("icon"='icons/effects/blood.dmi', "icon_state"="shoeblood")
|
||||
|
||||
/obj/item/clothing/shoes/equipped(mob/user, slot)
|
||||
. = ..()
|
||||
if(offset && slot_flags & slotdefine2slotbit(slot))
|
||||
user.pixel_y += offset
|
||||
worn_y_dimension -= (offset * 2)
|
||||
user.update_inv_shoes()
|
||||
equipped_before_drop = TRUE
|
||||
|
||||
/obj/item/clothing/shoes/proc/restore_offsets(mob/user)
|
||||
equipped_before_drop = FALSE
|
||||
user.pixel_y -= offset
|
||||
worn_y_dimension = world.icon_size
|
||||
|
||||
/obj/item/clothing/shoes/dropped(mob/user)
|
||||
if(offset && equipped_before_drop)
|
||||
restore_offsets(user)
|
||||
. = ..()
|
||||
|
||||
/obj/item/clothing/shoes/update_clothes_damaged_state(damaging = TRUE)
|
||||
..()
|
||||
if(ismob(loc))
|
||||
@@ -612,7 +649,7 @@ BLIND // can't see anything
|
||||
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
|
||||
GLOB.female_clothing_icons[index] = female_clothing_icon
|
||||
|
||||
/obj/item/clothing/under/verb/toggle()
|
||||
set name = "Adjust Suit Sensors"
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
vision_flags = SEE_TURFS
|
||||
darkness_view = 1
|
||||
invis_view = SEE_INVISIBLE_MINIMUM
|
||||
lighting_alpha = LIGHTING_PLANE_ALPHA_INVISIBLE
|
||||
to_chat(loc, "<span class='notice'>You toggle the goggles' scanning mode to \[Meson].</span>")
|
||||
invis_update()
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
origin_tech = "magnets=1;engineering=2"
|
||||
darkness_view = 2
|
||||
vision_flags = SEE_TURFS
|
||||
invis_view = SEE_INVISIBLE_MINIMUM
|
||||
lighting_alpha = LIGHTING_PLANE_ALPHA_INVISIBLE
|
||||
glass_colour_type = /datum/client_colour/glass_colour/lightgreen
|
||||
|
||||
/obj/item/clothing/glasses/meson/night
|
||||
@@ -47,6 +47,7 @@
|
||||
item_state = "nvgmeson"
|
||||
origin_tech = "magnets=4;engineering=5;plasmatech=4"
|
||||
darkness_view = 8
|
||||
lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE
|
||||
glass_colour_type = /datum/client_colour/glass_colour/green
|
||||
|
||||
/obj/item/clothing/glasses/meson/gar
|
||||
@@ -84,7 +85,7 @@
|
||||
item_state = "glasses"
|
||||
origin_tech = "materials=4;magnets=4;plasmatech=4;engineering=4"
|
||||
darkness_view = 8
|
||||
invis_view = SEE_INVISIBLE_MINIMUM
|
||||
lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE
|
||||
glass_colour_type = /datum/client_colour/glass_colour/green
|
||||
|
||||
/obj/item/clothing/glasses/eyepatch
|
||||
@@ -322,7 +323,7 @@
|
||||
darkness_view = 8
|
||||
scan_reagents = 1
|
||||
flags = NODROP
|
||||
invis_view = SEE_INVISIBLE_MINIMUM
|
||||
lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE
|
||||
|
||||
/obj/item/clothing/glasses/godeye/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
|
||||
if(istype(W, src) && W != src && W.loc == user)
|
||||
|
||||
@@ -8,13 +8,13 @@
|
||||
/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]
|
||||
var/datum/atom_hud/H = GLOB.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]
|
||||
var/datum/atom_hud/H = GLOB.huds[hud_type]
|
||||
H.remove_hud_from(user)
|
||||
|
||||
/obj/item/clothing/glasses/hud/emp_act(severity)
|
||||
@@ -43,7 +43,7 @@
|
||||
item_state = "glasses"
|
||||
origin_tech = "magnets=4;biotech=4;plasmatech=4;engineering=5"
|
||||
darkness_view = 8
|
||||
invis_view = SEE_INVISIBLE_MINIMUM
|
||||
lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE
|
||||
glass_colour_type = /datum/client_colour/glass_colour/green
|
||||
|
||||
/obj/item/clothing/glasses/hud/health/sunglasses
|
||||
@@ -71,7 +71,7 @@
|
||||
item_state = "glasses"
|
||||
origin_tech = "magnets=4;powerstorage=4;plasmatech=4;engineering=5"
|
||||
darkness_view = 8
|
||||
invis_view = SEE_INVISIBLE_MINIMUM
|
||||
lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE
|
||||
glass_colour_type = /datum/client_colour/glass_colour/green
|
||||
|
||||
/obj/item/clothing/glasses/hud/security
|
||||
@@ -125,7 +125,7 @@
|
||||
icon_state = "securityhudnight"
|
||||
origin_tech = "magnets=4;combat=4;plasmatech=4;engineering=5"
|
||||
darkness_view = 8
|
||||
invis_view = SEE_INVISIBLE_MINIMUM
|
||||
lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE
|
||||
glass_colour_type = /datum/client_colour/glass_colour/green
|
||||
|
||||
/obj/item/clothing/glasses/hud/security/sunglasses/gars
|
||||
@@ -161,7 +161,7 @@
|
||||
return
|
||||
|
||||
if (hud_type)
|
||||
var/datum/atom_hud/H = huds[hud_type]
|
||||
var/datum/atom_hud/H = GLOB.huds[hud_type]
|
||||
H.remove_hud_from(user)
|
||||
|
||||
if (hud_type == DATA_HUD_MEDICAL_ADVANCED)
|
||||
@@ -172,7 +172,7 @@
|
||||
hud_type = DATA_HUD_SECURITY_ADVANCED
|
||||
|
||||
if (hud_type)
|
||||
var/datum/atom_hud/H = huds[hud_type]
|
||||
var/datum/atom_hud/H = GLOB.huds[hud_type]
|
||||
H.add_hud_to(user)
|
||||
|
||||
/obj/item/clothing/glasses/hud/toggle/thermal
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
icon_state = "tophat"
|
||||
item_state = "that"
|
||||
dog_fashion = /datum/dog_fashion/head
|
||||
throwforce = 1
|
||||
|
||||
/obj/item/clothing/head/canada
|
||||
name = "striped red tophat"
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
L.implant(H, null, 1)
|
||||
|
||||
var/obj/item/device/radio/R = H.ears
|
||||
R.set_frequency(CENTCOM_FREQ)
|
||||
R.set_frequency(GLOB.CENTCOM_FREQ)
|
||||
R.freqlock = 1
|
||||
|
||||
var/obj/item/weapon/card/id/W = H.wear_id
|
||||
@@ -188,7 +188,7 @@
|
||||
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.access += GLOB.access_weapons
|
||||
W.assignment = "Centcom Official"
|
||||
W.registered_name = H.real_name
|
||||
W.update_label()
|
||||
|
||||
@@ -239,7 +239,7 @@
|
||||
W.update_label()
|
||||
|
||||
var/obj/item/device/radio/headset/R = H.ears
|
||||
R.set_frequency(CENTCOM_FREQ)
|
||||
R.set_frequency(GLOB.CENTCOM_FREQ)
|
||||
R.freqlock = 1
|
||||
|
||||
/datum/outfit/wizard
|
||||
@@ -355,7 +355,7 @@
|
||||
return
|
||||
|
||||
var/obj/item/device/radio/R = H.ears
|
||||
R.set_frequency(CENTCOM_FREQ)
|
||||
R.set_frequency(GLOB.CENTCOM_FREQ)
|
||||
R.freqlock = 1
|
||||
|
||||
var/obj/item/weapon/implant/mindshield/L = new/obj/item/weapon/implant/mindshield(H)//Here you go Deuryn
|
||||
|
||||
@@ -24,6 +24,8 @@
|
||||
slot_flags = SLOT_BACK
|
||||
resistance_flags = FIRE_PROOF
|
||||
|
||||
var/processing_mode = FLIGHTSUIT_PROCESSING_FULL
|
||||
|
||||
var/obj/item/clothing/suit/space/hardsuit/flightsuit/suit = null
|
||||
var/mob/living/carbon/human/wearer = null
|
||||
var/slowdown_ground = 1
|
||||
@@ -104,14 +106,15 @@
|
||||
|
||||
|
||||
//Start/Stop processing the item to use momentum and flight mechanics.
|
||||
/obj/item/device/flightpack/New()
|
||||
/obj/item/device/flightpack/Initialize()
|
||||
ion_trail = new
|
||||
ion_trail.set_up(src)
|
||||
START_PROCESSING(SSflightpacks, src)
|
||||
..()
|
||||
update_parts()
|
||||
sync_processing(SSflightpacks)
|
||||
..()
|
||||
|
||||
/obj/item/device/flightpack/full/New()
|
||||
/obj/item/device/flightpack/full/Initialize()
|
||||
part_manip = new /obj/item/weapon/stock_parts/manipulator/pico(src)
|
||||
part_scan = new /obj/item/weapon/stock_parts/scanning_module/phasic(src)
|
||||
part_cap = new /obj/item/weapon/stock_parts/capacitor/super(src)
|
||||
@@ -120,6 +123,18 @@
|
||||
assembled = TRUE
|
||||
..()
|
||||
|
||||
/obj/item/device/flightpack/proc/sync_processing(datum/controller/subsystem/processing/flightpacks/FPS)
|
||||
processing_mode = FPS.flightsuit_processing
|
||||
if(processing_mode == FLIGHTSUIT_PROCESSING_NONE)
|
||||
momentum_x = 0
|
||||
momentum_y = 0
|
||||
momentum_speed_x = 0
|
||||
momentum_speed_y = 0
|
||||
momentum_speed = 0
|
||||
boost_charge = 0
|
||||
boost = FALSE
|
||||
update_slowdown()
|
||||
|
||||
/obj/item/device/flightpack/proc/update_parts()
|
||||
boost_chargerate = initial(boost_chargerate)
|
||||
boost_drain = initial(boost_drain)
|
||||
@@ -339,7 +354,7 @@
|
||||
suit.slowdown = slowdown_air
|
||||
|
||||
/obj/item/device/flightpack/process()
|
||||
if(!suit)
|
||||
if(!suit || (processing_mode == FLIGHTSUIT_PROCESSING_NONE))
|
||||
return FALSE
|
||||
update_slowdown()
|
||||
update_icon()
|
||||
@@ -451,7 +466,7 @@
|
||||
wearer.visible_message("[wearer] is knocked flying by the impact!")
|
||||
|
||||
/obj/item/device/flightpack/proc/flight_impact(atom/unmovablevictim, crashdir) //Yes, victim.
|
||||
if((unmovablevictim == wearer) || crashing)
|
||||
if((unmovablevictim == wearer) || crashing || (processing_mode == FLIGHTSUIT_PROCESSING_NONE))
|
||||
return FALSE
|
||||
crashing = TRUE
|
||||
var/crashpower = 0
|
||||
@@ -563,9 +578,12 @@
|
||||
spawn()
|
||||
A.open()
|
||||
wearer.visible_message("<span class='warning'>[wearer] rolls sideways and slips past [A]</span>")
|
||||
wearer.forceMove(get_turf(A))
|
||||
var/turf/target = get_turf(A)
|
||||
if(istype(A, /obj/machinery/door/window) && (get_turf(wearer) == get_turf(A)))
|
||||
target = get_step(A, A.dir)
|
||||
wearer.forceMove(target)
|
||||
if(dragging_through)
|
||||
dragging_through.forceMove(get_turf(A))
|
||||
dragging_through.forceMove(target)
|
||||
wearer.pulling = dragging_through
|
||||
return pass
|
||||
|
||||
@@ -573,30 +591,8 @@
|
||||
/obj/item/device/flightpack/proc/mobknockback(mob/living/victim, power, direction)
|
||||
if(!ismob(victim))
|
||||
return FALSE
|
||||
var/knockmessage = "<span class='warning'>[victim] is knocked back by [wearer] as they narrowly avoid a collision!"
|
||||
if(power == 1)
|
||||
knockmessage = "<span class='warning'>[wearer] soars into [victim], pushing them away!"
|
||||
var/knockback = 0
|
||||
var/stun = boost * 2 + (power - 2)
|
||||
if((stun >= 0) || (power == 3))
|
||||
knockmessage += " [wearer] dashes across [victim] at full impulse, knocking them [stun ? "down" : "away"]!" //Impulse...
|
||||
knockmessage += "</span>"
|
||||
knockback += power
|
||||
knockback += (part_manip.rating / 2)
|
||||
knockback += (part_bin.rating / 2)
|
||||
knockback += boost*2
|
||||
switch(power)
|
||||
if(1)
|
||||
knockback = 1
|
||||
if(2)
|
||||
knockback /= 1.5
|
||||
var/throwdir = pick(alldirs)
|
||||
var/turf/target = get_step(victim, throwdir)
|
||||
for(var/i in 1 to (knockback-1))
|
||||
target = get_step(target, throwdir)
|
||||
wearer.visible_message(knockmessage)
|
||||
victim.throw_at(target, knockback, 1)
|
||||
victim.Weaken(stun)
|
||||
wearer.forceMove(get_turf(victim))
|
||||
wearer.visible_message("<span class='notice'>[wearer] flies over [victim]!</span>")
|
||||
|
||||
/obj/item/device/flightpack/proc/victimknockback(atom/movable/victim, power, direction)
|
||||
if(!victim)
|
||||
@@ -621,7 +617,7 @@
|
||||
for(var/i in 1 to knockback)
|
||||
target = get_step(target, direction)
|
||||
for(var/i in 1 to knockback/3)
|
||||
target = get_step(target, pick(alldirs))
|
||||
target = get_step(target, pick(GLOB.alldirs))
|
||||
if(knockback)
|
||||
victim.throw_at(target, knockback, part_manip.rating)
|
||||
if(isobj(victim))
|
||||
@@ -639,7 +635,7 @@
|
||||
if(move)
|
||||
while(momentum_x != 0 || momentum_y != 0)
|
||||
sleep(2)
|
||||
step(wearer, pick(cardinal))
|
||||
step(wearer, pick(GLOB.cardinal))
|
||||
momentum_decay()
|
||||
adjust_momentum(0, 0, 10)
|
||||
wearer.visible_message("<span class='warning'>[wearer]'s flight suit crashes into the ground!</span>")
|
||||
@@ -1270,13 +1266,13 @@
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/flightsuit/equipped(mob/living/carbon/human/wearer, slot)
|
||||
..()
|
||||
for(var/hudtype in datahuds)
|
||||
var/datum/atom_hud/H = huds[hudtype]
|
||||
var/datum/atom_hud/H = GLOB.huds[hudtype]
|
||||
H.add_hud_to(wearer)
|
||||
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/flightsuit/dropped(mob/living/carbon/human/wearer)
|
||||
..()
|
||||
for(var/hudtype in datahuds)
|
||||
var/datum/atom_hud/H = huds[hudtype]
|
||||
var/datum/atom_hud/H = GLOB.huds[hudtype]
|
||||
H.remove_hud_from(wearer)
|
||||
if(zoom)
|
||||
toggle_zoom(wearer, TRUE)
|
||||
|
||||
@@ -430,13 +430,13 @@
|
||||
to_chat(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]
|
||||
var/datum/atom_hud/DHUD = GLOB.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]
|
||||
var/datum/atom_hud/DHUD = GLOB.huds[DATA_HUD_DIAGNOSTIC]
|
||||
DHUD.remove_hud_from(user)
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/rd
|
||||
|
||||
@@ -308,3 +308,33 @@ Contains:
|
||||
desc = "Peering into the eyes of the helmet is enough to seal damnation."
|
||||
icon_state = "hardsuit0-beserker"
|
||||
item_state = "hardsuit0-beserker"
|
||||
|
||||
/obj/item/clothing/head/helmet/space/fragile
|
||||
name = "emergency space helmet"
|
||||
desc = "A bulky, air-tight helmet meant to protect the user during emergency situations. It doesn't look very durable."
|
||||
icon_state = "syndicate-helm-orange"
|
||||
item_state = "syndicate-helm-orange"
|
||||
armor = list(melee = 5, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 10, fire = 0, acid = 0)
|
||||
strip_delay = 65
|
||||
|
||||
/obj/item/clothing/suit/space/fragile
|
||||
name = "emergency space suit"
|
||||
desc = "A bulky, air-tight suit meant to protect the user during emergency situations. It doesn't look very durable."
|
||||
var/torn = FALSE
|
||||
icon_state = "syndicate-orange"
|
||||
item_state = "syndicate-orange"
|
||||
slowdown = 2
|
||||
armor = list(melee = 5, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 10, fire = 0, acid = 0)
|
||||
strip_delay = 65
|
||||
|
||||
/obj/item/clothing/suit/space/fragile/hit_reaction(mob/living/carbon/human/owner, attack_text, final_block_chance)
|
||||
if(!torn && prob(50))
|
||||
to_chat(owner, "<span class='warning'>[src] tears from the damage, breaking the air-tight seal!</span>")
|
||||
src.flags -= STOPSPRESSUREDMAGE
|
||||
src.name = "torn [src]."
|
||||
src.desc = "A bulky suit meant to protect the user during emergency situations, at least until someone tore a hole in the suit."
|
||||
src.torn = TRUE
|
||||
playsound(loc, 'sound/weapons/slashmiss.ogg', 50, 1)
|
||||
playsound(loc, 'sound/effects/refill.ogg', 50, 1)
|
||||
|
||||
|
||||
|
||||
@@ -179,7 +179,7 @@
|
||||
var/image/I = image(icon = 'icons/mob/robots.dmi' , icon_state = "robot", loc = H)
|
||||
I.override = 1
|
||||
I.add_overlay(image(icon = 'icons/mob/robots.dmi' , icon_state = "robot_e")) //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)
|
||||
H.add_alt_appearance("standard_borg_disguise", I, GLOB.silicon_mobs+H) //you look like a robot to robots! (including yourself because you're totally a robot)
|
||||
|
||||
|
||||
/obj/item/clothing/suit/snowman
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
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)
|
||||
owner.forcesay(GLOB.hit_appends)
|
||||
return 0
|
||||
|
||||
/obj/item/clothing/under/color/blue
|
||||
|
||||
Reference in New Issue
Block a user