diff --git a/code/game/gamemodes/wizard/spellbook.dm b/code/game/gamemodes/wizard/spellbook.dm index 0cc5fcf0ca5..ce10eb23b20 100644 --- a/code/game/gamemodes/wizard/spellbook.dm +++ b/code/game/gamemodes/wizard/spellbook.dm @@ -290,6 +290,13 @@ item_path = /obj/item/gun/magic/staff/chaos log_name = "SC" +/datum/spellbook_entry/item/staffslipping + name = "Staff of Slipping" + desc = "A staff that shoots magical bananas. These bananas will either slip or stun the target when hit. Surprisingly reliable!" + item_path = /obj/item/gun/magic/staff/slipping + log_name = "SL" + cost = 1 + /datum/spellbook_entry/item/staffdoor name = "Staff of Door Creation" desc = "A particular staff that can mold solid metal into ornate wooden doors. Useful for getting around in the absence of other transportation. Does not work on glass." diff --git a/code/modules/projectiles/ammunition/special.dm b/code/modules/projectiles/ammunition/special.dm index 1af728100f8..21a1ae76356 100644 --- a/code/modules/projectiles/ammunition/special.dm +++ b/code/modules/projectiles/ammunition/special.dm @@ -30,13 +30,13 @@ /obj/item/ammo_casing/magic/spellblade projectile_type = /obj/item/projectile/magic/spellblade +/obj/item/ammo_casing/magic/slipping + projectile_type = /obj/item/projectile/magic/slipping + /obj/item/ammo_casing/magic/chaos/newshot() projectile_type = pick(typesof(/obj/item/projectile/magic)) ..() -/obj/item/ammo_casing/magic/honk - projectile_type = /obj/item/projectile/bullet/honker - /obj/item/ammo_casing/forcebolt projectile_type = /obj/item/projectile/forcebolt diff --git a/code/modules/projectiles/guns/magic/staff.dm b/code/modules/projectiles/guns/magic/staff.dm index a8455d45fc5..87c12c72dcd 100644 --- a/code/modules/projectiles/guns/magic/staff.dm +++ b/code/modules/projectiles/guns/magic/staff.dm @@ -52,14 +52,19 @@ no_den_usage = 1 fire_sound = 'sound/magic/Staff_Door.ogg' -/obj/item/gun/magic/staff/honk +/obj/item/gun/magic/staff/slipping + name = "staff of slipping" + desc = "An artefact that spits... bananas?" + ammo_type = /obj/item/ammo_casing/magic/slipping + icon_state = "staffofslipping" //todo : maybe better sprite + item_state = "staffofdoor" //todo : staff of slipping in hand/back sprite + max_charges = 10 + recharge_rate = 2 + fire_sound = 'sound/items/bikehorn.ogg' + +/obj/item/gun/magic/staff/slipping/honkmother name = "staff of the honkmother" - desc = "Honk" - ammo_type = /obj/item/ammo_casing/magic/honk - icon_state = "honker" - item_state = "honker" - max_charges = 4 - recharge_rate = 8 + desc = "An ancient artefact, sought after by clowns everywhere." fire_sound = 'sound/items/Airhorn.ogg' /obj/item/gun/magic/staff/focus diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm index c55f367d8c3..716be68ec54 100644 --- a/code/modules/projectiles/projectile/bullets.dm +++ b/code/modules/projectiles/projectile/bullets.dm @@ -200,23 +200,6 @@ weaken = 4 stun = 4 -/obj/item/projectile/bullet/honker - name = "banana" - damage = 0 - weaken = 5 - stun = 5 - forcedodge = 1 - nodamage = 1 - pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE - hitsound = 'sound/items/bikehorn.ogg' - icon = 'icons/obj/hydroponics/harvest.dmi' - icon_state = "banana" - range = 200 - -/obj/item/projectile/bullet/honker/New() - ..() - SpinAnimation() - /obj/item/projectile/bullet/mime damage = 0 stun = 5 diff --git a/code/modules/projectiles/projectile/magic.dm b/code/modules/projectiles/projectile/magic.dm index ef6ec862290..542fb60a7b4 100644 --- a/code/modules/projectiles/projectile/magic.dm +++ b/code/modules/projectiles/projectile/magic.dm @@ -301,3 +301,33 @@ flag = "magic" dismemberment = 50 nodamage = 0 + +/obj/item/projectile/magic/slipping + name = "magical banana" + icon = 'icons/obj/hydroponics/harvest.dmi' + icon_state = "banana" + var/slip_stun = 5 + var/slip_weaken = 5 + +/obj/item/projectile/magic/slipping/New() + ..() + SpinAnimation() + +/obj/item/projectile/magic/slipping/on_hit(var/atom/target, var/blocked = 0) + if(ishuman(target)) + var/mob/living/carbon/human/H = target + H.slip(src, slip_stun, slip_weaken, 0, FALSE, TRUE) //Slips even with noslips/magboots on. NO ESCAPE! + else if(isrobot(target)) //You think you're safe, cyborg? FOOL! + var/mob/living/silicon/robot/R = target + if(!R.incapacitated()) + to_chat(target, "You get splatted by [src], HONKING your sensors!") + playsound(target.loc, 'sound/items/bikehorn.ogg', 50, 1, -3) + R.Stun(slip_stun) + else if(ismob(target)) + var/mob/M = target + if(!M.stunned) + to_chat(target, "You get splatted by [src].") + playsound(target.loc, 'sound/items/bikehorn.ogg', 50, 1, -3) + M.Weaken(slip_weaken) + M.Stun(slip_stun) + . = ..() \ No newline at end of file diff --git a/icons/obj/guns/magic.dmi b/icons/obj/guns/magic.dmi index b057d644918..00be8227d07 100644 Binary files a/icons/obj/guns/magic.dmi and b/icons/obj/guns/magic.dmi differ