Fixes drone and cyborg not being affected by mounted flashers.

Remove eye stat damage from flashbang's bang() proc (eye damage is already handled in carbon/flash_eyes())
Changed many flash producing effect to affect all carbons instead of only humans.
The experimental weldingtool now produces less light than regular welding tool and can be used safely with only sunglasses.
This commit is contained in:
phil235
2015-07-17 17:12:16 +02:00
parent ed1d1c1919
commit e2d76a0116
12 changed files with 30 additions and 24 deletions
+1 -1
View File
@@ -88,7 +88,7 @@
if (get_dist(src, L) > range)
continue
if(L.flash_eyes())
if(L.flash_eyes(affect_silicon = 1))
L.Weaken(strength)
if(L.weakeyes)
L.Weaken(strength * 1.5)
@@ -34,8 +34,7 @@
M.Stun(15)
M.eye_stat += 8
if(M.flash_eyes())
M.eye_stat += rand(1, 3)
if(M.flash_eyes(affect_silicon = 1))
M.Stun(max(10/distance, 3))
M.Weaken(max(10/distance, 3))
@@ -14,8 +14,8 @@
// Make a quick flash
var/turf/T = get_turf(src)
playsound(T, 'sound/effects/phasein.ogg', 100, 1)
for(var/mob/living/carbon/human/M in viewers(T, null))
M.flash_eyes()
for(var/mob/living/carbon/C in viewers(T, null))
C.flash_eyes()
for(var/i=1, i<=deliveryamt, i++)
var/atom/movable/x = new spawner_type
+4 -2
View File
@@ -162,6 +162,7 @@
var/max_fuel = 20 //The max amount of fuel the welder can hold
var/change_icons = 1
var/can_off_process = 0
var/light_intensity = 2 //how powerful the emitted light is when used.
/obj/item/weapon/weldingtool/New()
..()
@@ -289,7 +290,7 @@
reagents.remove_reagent("welding_fuel", amount)
check_fuel()
if(M)
M.flash_eyes(2)
M.flash_eyes(light_intensity)
return 1
else
if(M)
@@ -409,7 +410,7 @@
/obj/item/weapon/weldingtool/experimental
name = "experimental welding tool"
desc = "An experimental welder capable of self-fuel generation."
desc = "An experimental welder capable of self-fuel generation and less harmful to the eyes."
icon_state = "exwelder"
item_state = "exwelder"
max_fuel = 40
@@ -418,6 +419,7 @@
var/last_gen = 0
change_icons = 0
can_off_process = 1
light_intensity = 1
//Proc to make the experimental welder generate fuel, optimized as fuck -Sieve
+3 -3
View File
@@ -43,9 +43,9 @@
priority_announce("Massive bluespace translocation detected.", "Anomaly Alert")
var/list/flashers = list()
for(var/mob/living/carbon/human/M in viewers(TO, null))
if(M.flash_eyes())
flashers += M
for(var/mob/living/carbon/C in viewers(TO, null))
if(C.flash_eyes())
flashers += C
var/y_distance = TO.y - FROM.y
var/x_distance = TO.x - FROM.x
+1 -1
View File
@@ -153,7 +153,7 @@
playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
/mob/living/carbon/flash_eyes(intensity = 1, override_blindness_check = 0)
/mob/living/carbon/flash_eyes(intensity = 1, override_blindness_check = 0, affect_silicon = 0)
var/damage = intensity - check_eye_prot()
if(..()) // we've been flashed
if(weakeyes)
+1 -1
View File
@@ -687,7 +687,7 @@ Sorry Giacom. Please don't be mad :(
floating = 0
//called when the mob receives a bright flash
/mob/living/proc/flash_eyes(intensity = 1, override_blindness_check = 0)
/mob/living/proc/flash_eyes(intensity = 1, override_blindness_check = 0, affect_silicon = 0)
if(check_eye_prot() < intensity && (override_blindness_check || !(disabilities & BLIND)))
flick("e_flash", flash)
return 1
+3
View File
@@ -823,3 +823,6 @@ var/list/ai_list = list()
loc = card//Throw AI into the card.
src << "You have been downloaded to a mobile storage device. Remote device connection severed."
user << "<span class='boldnotice'>Transfer successful</span>: [name] ([rand(1000,9999)].exe) removed from host terminal and stored within local memory."
/mob/living/silicon/ai/flash_eyes(intensity = 1, override_blindness_check = 0, affect_silicon = 0)
return // no eyes, no flashing
+5 -4
View File
@@ -422,12 +422,13 @@
/mob/living/silicon/setEarDamage()
return
/mob/living/silicon/check_eye_prot()
return 2
/mob/living/silicon/proc/GetPhoto()
if (aicamera)
return aicamera.selectpicture(aicamera)
/mob/living/silicon/grabbedby(mob/living/user)
return
return
/mob/living/silicon/flash_eyes(intensity = 1, override_blindness_check = 0, affect_silicon = 0)
if(affect_silicon)
return ..()
@@ -173,8 +173,9 @@
if(cleared)
src << "--- [class] alarm in [A.name] has been cleared."
/mob/living/simple_animal/drone/check_eye_prot()
return 2
/mob/living/simple_animal/drone/handle_temperature_damage()
return
/mob/living/simple_animal/drone/flash_eyes(intensity = 1, override_blindness_check = 0, affect_silicon = 0)
if(affect_silicon)
return ..()
+2 -2
View File
@@ -67,8 +67,8 @@
playsound(get_turf(holder.my_atom), 'sound/effects/phasein.ogg', 100, 1)
for(var/mob/living/carbon/human/H in viewers(get_turf(holder.my_atom), null))
H.flash_eyes()
for(var/mob/living/carbon/C in viewers(get_turf(holder.my_atom), null))
C.flash_eyes()
for(var/i = 1, i <= amount_to_spawn, i++)
var/chosen = pick(critters)
var/mob/living/simple_animal/hostile/C = new chosen
@@ -159,8 +159,8 @@
playsound(get_turf(holder.my_atom), 'sound/effects/phasein.ogg', 100, 1)
for(var/mob/living/carbon/human/M in viewers(get_turf(holder.my_atom), null))
M.flash_eyes()
for(var/mob/living/carbon/C in viewers(get_turf(holder.my_atom), null))
C.flash_eyes()
for(var/i = 1, i <= 4 + rand(1,2), i++)
var/chosen = pick(borks)
@@ -191,7 +191,7 @@
playsound(get_turf(holder.my_atom), 'sound/effects/phasein.ogg', 100, 1)
for(var/mob/living/carbon/human/M in viewers(get_turf(holder.my_atom), null))
for(var/mob/living/carbon/M in viewers(get_turf(holder.my_atom), null))
M.flash_eyes()
for(var/i = 1, i <= 4 + rand(1,2), i++)