diff --git a/code/datums/spells/infinite_guns.dm b/code/datums/spells/infinite_guns.dm new file mode 100644 index 00000000000..e74ac7af043 --- /dev/null +++ b/code/datums/spells/infinite_guns.dm @@ -0,0 +1,22 @@ +/obj/effect/proc_holder/spell/targeted/infinite_guns + name = "Lesser Summon Guns" + desc = "Why reload when you have infinite guns? Summons an unending stream of bolt action rifles. Requires both hands free to use." + invocation_type = "none" + include_user = 1 + range = -1 + + school = "conjuration" + charge_max = 300 + clothes_req = 1 + cooldown_min = 10 //Gun wizard + action_icon_state = "bolt_action" + + + +/obj/effect/proc_holder/spell/targeted/infinite_guns/cast(list/targets, mob/user = usr) + for(var/mob/living/carbon/C in targets) + C.drop_item() + C.swap_hand() + C.drop_item() + var/obj/item/weapon/gun/projectile/shotgun/boltaction/enchanted/GUN = new + C.put_in_hands(GUN) diff --git a/code/game/gamemodes/wizard/spellbook.dm b/code/game/gamemodes/wizard/spellbook.dm index cb04b9085df..9d09dbdd948 100644 --- a/code/game/gamemodes/wizard/spellbook.dm +++ b/code/game/gamemodes/wizard/spellbook.dm @@ -207,6 +207,11 @@ spell_type = /obj/effect/proc_holder/spell/targeted/lightning log_name = "LB" +/datum/spellbook_entry/infinite_guns + name = "Lesser Summon Guns" + spell_type = /obj/effect/proc_holder/spell/targeted/infinite_guns + log_name = "IG" + /datum/spellbook_entry/barnyard name = "Barnyard Curse" spell_type = /obj/effect/proc_holder/spell/targeted/barnyardcurse diff --git a/code/modules/projectiles/guns/projectile/shotgun.dm b/code/modules/projectiles/guns/projectile/shotgun.dm index ff5927f326c..ee8f3198a85 100644 --- a/code/modules/projectiles/guns/projectile/shotgun.dm +++ b/code/modules/projectiles/guns/projectile/shotgun.dm @@ -113,6 +113,40 @@ ..() user << "The bolt is [bolt_open ? "open" : "closed"]." + +/obj/item/weapon/gun/projectile/shotgun/boltaction/enchanted + name = "enchanted bolt action rifle" + desc = "Careful not to lose your head." + var/guns_left = 30 + mag_type = /obj/item/ammo_box/magazine/internal/boltaction/enchanted + +/obj/item/weapon/gun/projectile/shotgun/boltaction/enchanted/New() + ..() + bolt_open = 1 + pump() + +/obj/item/weapon/gun/projectile/shotgun/boltaction/enchanted/dropped() + guns_left = 0 + +/obj/item/weapon/gun/projectile/shotgun/boltaction/enchanted/shoot_live_shot(mob/living/user as mob|obj, pointblank = 0, mob/pbtarget = null, message = 1) + ..() + if(guns_left) + var/obj/item/weapon/gun/projectile/shotgun/boltaction/enchanted/GUN = new + GUN.guns_left = src.guns_left - 1 + user.drop_item() + user.swap_hand() + user.put_in_hands(GUN) + else + user.drop_item() + src.throw_at_fast(pick(oview(7,get_turf(user))),1,1) + user.visible_message("[user] tosses aside the spent rifle!") + + +/obj/item/ammo_box/magazine/internal/boltaction/enchanted + max_ammo =1 + + + ///////////////////////////// // DOUBLE BARRELED SHOTGUN // ///////////////////////////// diff --git a/icons/mob/actions.dmi b/icons/mob/actions.dmi index 263efbbeade..709dade4046 100644 Binary files a/icons/mob/actions.dmi and b/icons/mob/actions.dmi differ diff --git a/tgstation.dme b/tgstation.dme index 72ce5b9b7a2..e246757c731 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -256,6 +256,7 @@ #include "code\datums\spells\ethereal_jaunt.dm" #include "code\datums\spells\explosion.dm" #include "code\datums\spells\genetic.dm" +#include "code\datums\spells\infinite_guns.dm" #include "code\datums\spells\inflict_handler.dm" #include "code\datums\spells\knock.dm" #include "code\datums\spells\lichdom.dm"