Files
CHOMPStation2/code/modules/projectiles/guns/magic.dm
CHOMPStation2StaffMirrorBot ce2446922e [MIRROR] Initialize fixing (#10335)
Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
2025-03-08 22:22:04 +01:00

61 lines
1.5 KiB
Plaintext

/*
* "Magic" "Guns"
*/
/obj/item/gun/magic
name = "staff of nothing"
desc = "This staff is boring to watch because even though it came first you've seen everything it can do in other staves for years."
icon = 'icons/obj/wizard.dmi'
icon_state = "staffofnothing"
item_icons = list(
slot_l_hand_str = 'icons/mob/items/lefthand_magic.dmi',
slot_r_hand_str = 'icons/mob/items/righthand_magic.dmi',
)
fire_sound = 'sound/weapons/emitter.ogg'
w_class = ITEMSIZE_HUGE
projectile_type = null
var/checks_antimagic = TRUE
var/max_charges = 6
var/charges = 0
var/recharge_rate = 4
var/charge_tick = 0
var/can_charge = TRUE
/obj/item/gun/magic/consume_next_projectile()
if(checks_antimagic && locate(/obj/item/nullrod) in usr) return null
if(!ispath(projectile_type)) return null
if(charges <= 0) return null
charges -= 1
return new projectile_type(src)
/obj/item/gun/magic/Initialize(mapload)
. = ..()
charges = max_charges
if(can_charge)
START_PROCESSING(SSobj, src)
/obj/item/gun/magic/Destroy()
if(can_charge)
STOP_PROCESSING(SSobj, src)
return ..()
/obj/item/gun/magic/process()
if (charges >= max_charges)
charge_tick = 0
return
charge_tick++
if(charge_tick < recharge_rate)
return 0
charge_tick = 0
charges++
return 1
/obj/item/gun/magic/handle_click_empty(mob/user)
if (user)
user.visible_message("*wzhzhzh*", span_danger("The [name] whizzles quietly."))
else
src.visible_message("*wzhzh*")
playsound(src, 'sound/weapons/empty.ogg', 100, 1)