Kills off /obj/item/device (#6561)

This commit is contained in:
kevinz000
2018-04-29 22:06:58 -07:00
committed by Poojawa
parent ab3035a4ea
commit 3369c804b2
538 changed files with 6728 additions and 6707 deletions
+33 -32
View File
@@ -1,6 +1,7 @@
/obj/item/device/assembly/flash
/obj/item/assembly/flash
name = "flash"
desc = "A powerful and versatile flashbulb device, with applications ranging from disorienting attackers to acting as visual receptors in robot production."
icon = 'icons/obj/device.dmi'
icon_state = "flash"
item_state = "flashtool"
lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi'
@@ -15,7 +16,7 @@
var/cooldown = 0
var/last_trigger = 0 //Last time it was successfully triggered.
/obj/item/device/assembly/flash/suicide_act(mob/living/user)
/obj/item/assembly/flash/suicide_act(mob/living/user)
if (crit_fail)
user.visible_message("<span class='suicide'>[user] raises \the [src] up to [user.p_their()] eyes and activates it ... but its burnt out!</span>")
return SHAME
@@ -26,7 +27,7 @@
attack(user,user)
return FIRELOSS
/obj/item/device/assembly/flash/update_icon(flash = FALSE)
/obj/item/assembly/flash/update_icon(flash = FALSE)
cut_overlays()
attached_overlays = list()
if(crit_fail)
@@ -39,13 +40,13 @@
if(holder)
holder.update_icon()
/obj/item/device/assembly/flash/proc/clown_check(mob/living/carbon/human/user)
/obj/item/assembly/flash/proc/clown_check(mob/living/carbon/human/user)
if(user.has_trait(TRAIT_CLUMSY) && prob(50))
flash_carbon(user, user, 15, 0)
return FALSE
return TRUE
/obj/item/device/assembly/flash/proc/burn_out() //Made so you can override it if you want to have an invincible flash from R&D or something.
/obj/item/assembly/flash/proc/burn_out() //Made so you can override it if you want to have an invincible flash from R&D or something.
if(!crit_fail)
crit_fail = TRUE
update_icon()
@@ -56,7 +57,7 @@
var/turf/T = get_turf(src)
T.visible_message("<span class='danger'>[src] burns out!</span>")
/obj/item/device/assembly/flash/proc/flash_recharge(interval = 10)
/obj/item/assembly/flash/proc/flash_recharge(interval = 10)
var/deciseconds_passed = world.time - last_used
for(var/seconds = deciseconds_passed / 10, seconds >= interval, seconds -= interval) //get 1 charge every interval
times_used--
@@ -68,7 +69,7 @@
return TRUE
//BYPASS CHECKS ALSO PREVENTS BURNOUT!
/obj/item/device/assembly/flash/proc/AOE_flash(bypass_checks = FALSE, range = 3, power = 5, targeted = FALSE, mob/user)
/obj/item/assembly/flash/proc/AOE_flash(bypass_checks = FALSE, range = 3, power = 5, targeted = FALSE, mob/user)
if(!bypass_checks && !try_use_flash())
return FALSE
var/list/mob/targets = get_flash_targets(get_turf(src), range, FALSE)
@@ -78,7 +79,7 @@
flash_carbon(C, user, power, targeted, TRUE)
return TRUE
/obj/item/device/assembly/flash/proc/get_flash_targets(atom/target_loc, range = 3, override_vision_checks = FALSE)
/obj/item/assembly/flash/proc/get_flash_targets(atom/target_loc, range = 3, override_vision_checks = FALSE)
if(!target_loc)
target_loc = loc
if(override_vision_checks)
@@ -88,7 +89,7 @@
else
return typecache_filter_list(target_loc.GetAllContents(), typecacheof(list(/mob/living)))
/obj/item/device/assembly/flash/proc/try_use_flash(mob/user = null)
/obj/item/assembly/flash/proc/try_use_flash(mob/user = null)
if(crit_fail || (world.time < last_trigger + cooldown))
return FALSE
last_trigger = world.time
@@ -100,7 +101,7 @@
return FALSE
return TRUE
/obj/item/device/assembly/flash/proc/flash_carbon(mob/living/carbon/M, mob/user, power = 15, targeted = TRUE, generic_message = FALSE)
/obj/item/assembly/flash/proc/flash_carbon(mob/living/carbon/M, mob/user, power = 15, targeted = TRUE, generic_message = FALSE)
if(!istype(M))
return
add_logs(user, M, "[targeted? "flashed(targeted)" : "flashed(AOE)"]", src)
@@ -127,7 +128,7 @@
if(M.flash_act())
M.confused += power
/obj/item/device/assembly/flash/attack(mob/living/M, mob/user)
/obj/item/assembly/flash/attack(mob/living/M, mob/user)
if(!try_use_flash(user))
return FALSE
if(iscarbon(M))
@@ -145,26 +146,26 @@
user.visible_message("<span class='disarm'>[user] fails to blind [M] with the flash!</span>", "<span class='warning'>You fail to blind [M] with the flash!</span>")
/obj/item/device/assembly/flash/attack_self(mob/living/carbon/user, flag = 0, emp = 0)
/obj/item/assembly/flash/attack_self(mob/living/carbon/user, flag = 0, emp = 0)
if(holder)
return FALSE
if(!AOE_flash(FALSE, 3, 5, FALSE, user))
return FALSE
to_chat(user, "<span class='danger'>[src] emits a blinding light!</span>")
/obj/item/device/assembly/flash/emp_act(severity)
/obj/item/assembly/flash/emp_act(severity)
if(!try_use_flash())
return FALSE
AOE_flash()
burn_out()
. = ..()
/obj/item/device/assembly/flash/activate()//AOE flash on signal recieved
/obj/item/assembly/flash/activate()//AOE flash on signal recieved
if(!..())
return
AOE_flash()
/obj/item/device/assembly/flash/proc/terrible_conversion_proc(mob/living/carbon/human/H, mob/user)
/obj/item/assembly/flash/proc/terrible_conversion_proc(mob/living/carbon/human/H, mob/user)
if(istype(H) && ishuman(user) && H.stat != DEAD)
if(user.mind)
var/datum/antagonist/rev/head/converter = user.mind.has_antag_datum(/datum/antagonist/rev/head)
@@ -182,43 +183,43 @@
to_chat(user, "<span class='warning'>This mind seems resistant to the flash!</span>")
/obj/item/device/assembly/flash/cyborg
/obj/item/assembly/flash/cyborg
/obj/item/device/assembly/flash/cyborg/attack(mob/living/M, mob/user)
/obj/item/assembly/flash/cyborg/attack(mob/living/M, mob/user)
..()
new /obj/effect/temp_visual/borgflash(get_turf(src))
/obj/item/device/assembly/flash/cyborg/attack_self(mob/user)
/obj/item/assembly/flash/cyborg/attack_self(mob/user)
..()
new /obj/effect/temp_visual/borgflash(get_turf(src))
/obj/item/device/assembly/flash/cyborg/attackby(obj/item/W, mob/user, params)
/obj/item/assembly/flash/cyborg/attackby(obj/item/W, mob/user, params)
return
/obj/item/device/assembly/flash/memorizer
/obj/item/assembly/flash/memorizer
name = "memorizer"
desc = "If you see this, you're not likely to remember it any time soon."
icon = 'icons/obj/device.dmi'
icon_state = "memorizer"
item_state = "nullrod"
/obj/item/device/assembly/flash/handheld //this is now the regular pocket flashes
/obj/item/assembly/flash/handheld //this is now the regular pocket flashes
/obj/item/device/assembly/flash/armimplant
/obj/item/assembly/flash/armimplant
name = "photon projector"
desc = "A high-powered photon projector implant normally used for lighting purposes, but also doubles as a flashbulb weapon. Self-repair protocals fix the flashbulb if it ever burns out."
var/flashcd = 20
var/overheat = 0
var/obj/item/organ/cyberimp/arm/flash/I = null
/obj/item/device/assembly/flash/armimplant/burn_out()
/obj/item/assembly/flash/armimplant/burn_out()
if(I && I.owner)
to_chat(I.owner, "<span class='warning'>Your photon projector implant overheats and deactivates!</span>")
I.Retract()
overheat = TRUE
addtimer(CALLBACK(src, .proc/cooldown), flashcd * 2)
/obj/item/device/assembly/flash/armimplant/try_use_flash(mob/user = null)
/obj/item/assembly/flash/armimplant/try_use_flash(mob/user = null)
if(overheat)
if(I && I.owner)
to_chat(I.owner, "<span class='warning'>Your photon projector is running too hot to be used again so quickly!</span>")
@@ -230,10 +231,10 @@
return TRUE
/obj/item/device/assembly/flash/armimplant/proc/cooldown()
/obj/item/assembly/flash/armimplant/proc/cooldown()
overheat = FALSE
/obj/item/device/assembly/flash/shield
/obj/item/assembly/flash/shield
name = "strobe shield"
desc = "A shield with a built in, high intensity light capable of blinding and disorienting suspects. Takes regular handheld flashes as bulbs."
icon = 'icons/obj/items_and_weapons.dmi'
@@ -252,15 +253,15 @@
block_chance = 50
armor = list("melee" = 50, "bullet" = 50, "laser" = 50, "energy" = 0, "bomb" = 30, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 70)
/obj/item/device/assembly/flash/shield/flash_recharge(interval=10)
/obj/item/assembly/flash/shield/flash_recharge(interval=10)
if(times_used >= 4)
burn_out()
return FALSE
return TRUE
/obj/item/device/assembly/flash/shield/attackby(obj/item/W, mob/user)
if(istype(W, /obj/item/device/assembly/flash/handheld))
var/obj/item/device/assembly/flash/handheld/flash = W
/obj/item/assembly/flash/shield/attackby(obj/item/W, mob/user)
if(istype(W, /obj/item/assembly/flash/handheld))
var/obj/item/assembly/flash/handheld/flash = W
if(flash.crit_fail)
to_chat(user, "No sense replacing it with a broken bulb.")
return
@@ -278,7 +279,7 @@
return
..()
/obj/item/device/assembly/flash/shield/update_icon(flash = FALSE)
/obj/item/assembly/flash/shield/update_icon(flash = FALSE)
icon_state = "flashshield"
item_state = "flashshield"
@@ -293,6 +294,6 @@
if(holder)
holder.update_icon()
/obj/item/device/assembly/flash/shield/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
/obj/item/assembly/flash/shield/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
activate()
return ..()