The High Powered Camera a flash disgusied as a camera

This commit is contained in:
Darkmight9
2019-01-06 19:05:24 -05:00
parent 000ce96c1c
commit 8f5f3d44c6
2 changed files with 107 additions and 15 deletions
+100 -15
View File
@@ -17,7 +17,8 @@
var/last_used = 0 //last world.time it was used.
var/battery_panel = 0 //whether the flash can be modified with a cell or not
var/overcharged = 0 //if overcharged the flash will set people on fire then immediately burn out (does so even if it doesn't blind them).
var/can_overcharge = TRUE //set this to FALSE if you don't want your flash to be overcharge capable
var/use_sound = 'sound/weapons/flash.ogg'
/obj/item/flash/proc/clown_check(mob/user)
if(user && (CLUMSY in user.mutations) && prob(50))
@@ -26,19 +27,20 @@
return 1
/obj/item/flash/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/screwdriver))
if(battery_panel)
to_chat(user, "<span class='notice'>You close the battery compartment on the [src].</span>")
battery_panel = 0
else
to_chat(user, "<span class='notice'>You open the battery compartment on the [src].</span>")
battery_panel = 1
if(battery_panel && !overcharged)
if(istype(W, /obj/item/stock_parts/cell))
to_chat(user, "<span class='notice'>You jam the cell into battery compartment on the [src].</span>")
qdel(W)
overcharged = 1
overlays += "overcharge"
if(can_overcharge)
if(istype(W, /obj/item/screwdriver))
if(battery_panel)
to_chat(user, "<span class='notice'>You close the battery compartment on the [src].</span>")
battery_panel = 0
else
to_chat(user, "<span class='notice'>You open the battery compartment on the [src].</span>")
battery_panel = 1
if(battery_panel && !overcharged)
if(istype(W, /obj/item/stock_parts/cell))
to_chat(user, "<span class='notice'>You jam the cell into battery compartment on the [src].</span>")
qdel(W)
overcharged = 1
overlays += "overcharge"
/obj/item/flash/random/New()
..()
@@ -71,7 +73,7 @@
if(broken)
return 0
playsound(src.loc, 'sound/weapons/flash.ogg', 100, 1)
playsound(src.loc, use_sound, 100, 1)
flick("[initial(icon_state)]2", src)
times_used++
@@ -186,6 +188,89 @@
..()
new /obj/effect/temp_visual/borgflash(get_turf(src))
/obj/item/flash/cameraflash //todo list give it charges, (change the sound to camera sound?)
name = "camera"
icon = 'icons/obj/items.dmi'
desc = "A polaroid camera. 10 photos left."
icon_state = "camera"
item_state = "electropack" //spelling, a coders worst enemy
w_class = WEIGHT_CLASS_SMALL
slot_flags = SLOT_BELT
can_overcharge = FALSE
var/flash_max_charges = 5
var/flash_cur_charges = 5
var/charge_tick = 0
use_sound = 'sound/items/polaroid1.ogg'
/obj/item/flash/cameraflash/burn_out() //stops from burning out
return
/obj/item/flash/cameraflash/New()
..()
processing_objects.Add(src)
/obj/item/flash/cameraflash/Destroy()
processing_objects.Remove(src)
return ..()
/obj/item/flash/cameraflash/process() //charging works now
charge_tick++
if(charge_tick < 10)
return FALSE
charge_tick = 0
flash_cur_charges = min(flash_cur_charges+1, flash_max_charges)
return TRUE
/obj/item/flash/cameraflash/attack(mob/living/M, mob/user)
if(flash_cur_charges > 0)
flash_cur_charges -= 1
to_chat(user, "[src] now has [flash_cur_charges] charge\s.")
if(!try_use_flash(user))
return 0
if(iscarbon(M))
flash_carbon(M, user, 5, 1)
if(overcharged)
M.adjust_fire_stacks(6)
M.IgniteMob()
burn_out()
return 1
else if(issilicon(M))
if(isrobot(M))
var/mob/living/silicon/robot/R = M
if(R.module) // Perhaps they didn't choose a module yet
for(var/obj/item/borg/combat/shield/S in R.module.modules)
if(R.activated(S))
add_attack_logs(user, M, "Flashed with [src]")
user.visible_message("<span class='disarm'>[user] tries to overloads [M]'s sensors with the [src.name], but is blocked by [M]'s shield!</span>", "<span class='danger'>You try to overload [M]'s sensors with the [src.name], but are blocked by [M.p_their()] shield!</span>")
return 1
add_attack_logs(user, M, "Flashed with [src]")
if(M.flash_eyes(affect_silicon = 1))
M.Weaken(rand(5,10))
user.visible_message("<span class='disarm'>[user] overloads [M]'s sensors with the [src.name]!</span>", "<span class='danger'>You overload [M]'s sensors with the [src.name]!</span>")
return 1
user.visible_message("<span class='disarm'>[user] fails to blind [M] with the [src.name]!</span>", "<span class='warning'>You fail to blind [M] with the [src.name]!</span>")
else
to_chat(user, "<span class='warning'>\The [src] needs time to recharge!</span>")
return
/obj/item/flash/cameraflash/attack_self(mob/living/carbon/user, flag = 0)
if(flash_cur_charges > 0)
flash_cur_charges -= 1
to_chat(user, "[src] now has [flash_cur_charges] charge\s.")
if(!try_use_flash(user))
return 0
user.visible_message("<span class='disarm'>[user]'s [src.name] emits a blinding light!</span>", "<span class='danger'>Your [src.name] emits a blinding light!</span>")
for(var/mob/living/carbon/M in oviewers(3, null))
flash_carbon(M, user, 3, 0)
else
to_chat(user, "<span class='warning'>\The [src] needs time to recharge!</span>")
return
/obj/item/flash/memorizer
name = "memorizer"
desc = "If you see this, you're not likely to remember it any time soon."