mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-22 11:37:40 +01:00
lesser summon guns, wizman update
This commit is contained in:
@@ -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 = 750
|
||||
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)
|
||||
@@ -3,9 +3,9 @@
|
||||
|
||||
var/spell_type = null
|
||||
var/desc = ""
|
||||
var/category = "Offensive Spells"
|
||||
var/category = "Offensive"
|
||||
var/log_name = "XX" //What it shows up as in logs
|
||||
var/cost = 1
|
||||
var/cost = 2
|
||||
var/refundable = 1
|
||||
var/surplus = -1 // -1 for infinite, not used by anything atm
|
||||
var/obj/effect/proc_holder/spell/S = null //Since spellbooks can be used by only one person anyway we can track the actual spell
|
||||
@@ -99,6 +99,7 @@
|
||||
name = "Remove Clothes Requirement"
|
||||
spell_type = /obj/effect/proc_holder/spell/noclothes
|
||||
log_name = "NC"
|
||||
category = "Defensive"
|
||||
|
||||
/datum/spellbook_entry/fireball
|
||||
name = "Fireball"
|
||||
@@ -109,6 +110,7 @@
|
||||
name = "Magic Missile"
|
||||
spell_type = /obj/effect/proc_holder/spell/targeted/projectile/magic_missile
|
||||
log_name = "MM"
|
||||
category = "Defensive"
|
||||
|
||||
/datum/spellbook_entry/disintegrate
|
||||
name = "Disintegrate"
|
||||
@@ -119,12 +121,14 @@
|
||||
name = "Disable Tech"
|
||||
spell_type = /obj/effect/proc_holder/spell/targeted/emplosion/disable_tech
|
||||
log_name = "DT"
|
||||
category = "Utility Spells"
|
||||
category = "Defensive"
|
||||
cost = 1
|
||||
|
||||
/datum/spellbook_entry/repulse
|
||||
name = "Repulse"
|
||||
spell_type = /obj/effect/proc_holder/spell/aoe_turf/repulse
|
||||
log_name = "RP"
|
||||
category = "Defensive"
|
||||
|
||||
/datum/spellbook_entry/timestop
|
||||
name = "Time Stop"
|
||||
@@ -136,59 +140,57 @@
|
||||
name = "Smoke"
|
||||
spell_type = /obj/effect/proc_holder/spell/targeted/smoke
|
||||
log_name = "SM"
|
||||
category = "Utility Spells"
|
||||
category = "Defensive"
|
||||
cost = 1
|
||||
|
||||
/datum/spellbook_entry/blind
|
||||
name = "Blind"
|
||||
spell_type = /obj/effect/proc_holder/spell/targeted/trigger/blind
|
||||
log_name = "BD"
|
||||
cost = 1
|
||||
|
||||
/datum/spellbook_entry/mindswap
|
||||
name = "Mindswap"
|
||||
spell_type = /obj/effect/proc_holder/spell/targeted/mind_transfer
|
||||
log_name = "MT"
|
||||
category = "Utility Spells"
|
||||
category = "Mobility"
|
||||
|
||||
/datum/spellbook_entry/forcewall
|
||||
name = "Force Wall"
|
||||
spell_type = /obj/effect/proc_holder/spell/aoe_turf/conjure/forcewall
|
||||
log_name = "FW"
|
||||
category = "Utility Spells"
|
||||
category = "Defensive"
|
||||
cost = 1
|
||||
|
||||
/datum/spellbook_entry/blink
|
||||
name = "Blink"
|
||||
spell_type = /obj/effect/proc_holder/spell/targeted/turf_teleport/blink
|
||||
log_name = "BL"
|
||||
category = "Utility Spells"
|
||||
category = "Mobility"
|
||||
|
||||
/datum/spellbook_entry/teleport
|
||||
name = "Teleport"
|
||||
spell_type = /obj/effect/proc_holder/spell/targeted/area_teleport/teleport
|
||||
log_name = "TP"
|
||||
category = "Utility Spells"
|
||||
category = "Mobility"
|
||||
|
||||
/datum/spellbook_entry/mutate
|
||||
name = "Mutate"
|
||||
spell_type = /obj/effect/proc_holder/spell/targeted/genetic/mutate
|
||||
log_name = "MU"
|
||||
category = "Utility Spells"
|
||||
|
||||
/datum/spellbook_entry/jaunt
|
||||
name = "Ethereal Jaunt"
|
||||
spell_type = /obj/effect/proc_holder/spell/targeted/ethereal_jaunt
|
||||
log_name = "EJ"
|
||||
category = "Utility Spells"
|
||||
category = "Mobility"
|
||||
|
||||
/datum/spellbook_entry/knock
|
||||
name = "Knock"
|
||||
spell_type = /obj/effect/proc_holder/spell/aoe_turf/knock
|
||||
log_name = "KN"
|
||||
category = "Utility Spells"
|
||||
|
||||
/datum/spellbook_entry/horseman
|
||||
name = "Curse of The Horseman"
|
||||
spell_type = /obj/effect/proc_holder/spell/targeted/horsemask
|
||||
log_name = "HH"
|
||||
category = "Mobility"
|
||||
cost = 1
|
||||
|
||||
/datum/spellbook_entry/fleshtostone
|
||||
name = "Flesh to Stone"
|
||||
@@ -199,26 +201,45 @@
|
||||
name = "Summon Item"
|
||||
spell_type = /obj/effect/proc_holder/spell/targeted/summonitem
|
||||
log_name = "IS"
|
||||
category = "Utility Spells"
|
||||
category = "Assistance"
|
||||
cost = 1
|
||||
|
||||
/datum/spellbook_entry/lichdom
|
||||
name = "Bind Soul"
|
||||
spell_type = /obj/effect/proc_holder/spell/targeted/lichdom
|
||||
log_name = "LD"
|
||||
category = "Utility Spells"
|
||||
category = "Defensive"
|
||||
|
||||
/datum/spellbook_entry/lightningbolt
|
||||
name = "Lightning Bolt"
|
||||
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"
|
||||
cost = 4
|
||||
|
||||
/datum/spellbook_entry/horseman
|
||||
name = "Curse of The Horseman"
|
||||
spell_type = /obj/effect/proc_holder/spell/targeted/horsemask
|
||||
log_name = "HH"
|
||||
|
||||
/datum/spellbook_entry/charge
|
||||
name = "Charge"
|
||||
spell_type = /obj/effect/proc_holder/spell/targeted/charge
|
||||
log_name = "CH"
|
||||
category = "Assistance"
|
||||
cost = 1
|
||||
|
||||
/datum/spellbook_entry/item
|
||||
name = "Buy Item"
|
||||
category = "Artifacts"
|
||||
refundable = 0
|
||||
buy_word = "Summon"
|
||||
var/item_path= null
|
||||
|
||||
|
||||
/datum/spellbook_entry/item/Buy(var/mob/living/carbon/human/user,var/obj/item/weapon/spellbook/book)
|
||||
new item_path(get_turf(user))
|
||||
feedback_add_details("wizard_spell_learned",log_name)
|
||||
@@ -244,6 +265,7 @@
|
||||
desc = "An arcane staff capable of shooting bolts of eldritch energy which cause inanimate objects to come to life. This magic doesn't affect machines."
|
||||
item_path = /obj/item/weapon/gun/magic/staff/animate
|
||||
log_name = "SA"
|
||||
category = "Assistance"
|
||||
|
||||
/datum/spellbook_entry/item/staffchaos
|
||||
name = "Staff of Chaos"
|
||||
@@ -256,26 +278,23 @@
|
||||
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."
|
||||
item_path = /obj/item/weapon/gun/magic/staff/door
|
||||
log_name = "SD"
|
||||
cost = 1
|
||||
category = "Mobility"
|
||||
|
||||
/datum/spellbook_entry/item/staffhealing
|
||||
name = "Staff of Healing"
|
||||
desc = "An altruistic staff that can heal the lame and raise the dead."
|
||||
item_path = /obj/item/weapon/gun/magic/staff/healing
|
||||
log_name = "SH"
|
||||
cost = 1
|
||||
category = "Defensive"
|
||||
|
||||
/datum/spellbook_entry/item/scryingorb
|
||||
name = "Scrying Orb"
|
||||
desc = "An incandescent orb of crackling energy, using it will allow you to ghost while alive, allowing you to spy upon the station with ease. In addition, buying it will permanently grant you x-ray vision."
|
||||
item_path = /obj/item/weapon/scrying
|
||||
log_name = "SO"
|
||||
|
||||
/datum/spellbook_entry/item/bloodbottle
|
||||
name = "Bottle of Blood"
|
||||
desc = "A bottle of magically infused blood, the smell of which will attract extradimensional beings when broken. Be careful though, the kinds of creatures summoned by blood magic are indiscriminate in their killing, and you yourself may become a victim."
|
||||
item_path = /obj/item/weapon/antag_spawner/slaughter_demon
|
||||
log_name = "BB"
|
||||
limit = 3
|
||||
|
||||
/datum/spellbook_entry/item/tarotdeck
|
||||
name = "Tarot Deck"
|
||||
desc = "A deck of tarot cards that can be used to summon a spirit companion for the wizard."
|
||||
item_path = /obj/item/weapon/guardiancreator
|
||||
log_name = "TD"
|
||||
limit = 1
|
||||
category = "Defensive"
|
||||
|
||||
/datum/spellbook_entry/item/scryingorb/Buy(var/mob/living/carbon/human/user,var/obj/item/weapon/spellbook/book)
|
||||
if(..())
|
||||
@@ -293,6 +312,7 @@
|
||||
desc = "Soul Stone Shards are ancient tools capable of capturing and harnessing the spirits of the dead and dying. The spell Artificer allows you to create arcane machines for the captured souls to pilot."
|
||||
item_path = /obj/item/weapon/storage/belt/soulstone/full
|
||||
log_name = "SS"
|
||||
category = "Assistance"
|
||||
|
||||
/datum/spellbook_entry/item/soulstones/Buy(var/mob/living/carbon/human/user,var/obj/item/weapon/spellbook/book)
|
||||
. =..()
|
||||
@@ -305,18 +325,21 @@
|
||||
desc = "A Necromantic stone is able to resurrect three dead individuals as skeletal thralls for you to command."
|
||||
item_path = /obj/item/device/necromantic_stone
|
||||
log_name = "NS"
|
||||
category = "Assistance"
|
||||
|
||||
/datum/spellbook_entry/item/wands
|
||||
name = "Wand Assortment"
|
||||
desc = "A collection of wands that allow for a wide variety of utility. Wands do not recharge, so be conservative in use. Comes in a handy belt."
|
||||
item_path = /obj/item/weapon/storage/belt/wands/full
|
||||
log_name = "WA"
|
||||
category = "Defensive"
|
||||
|
||||
/datum/spellbook_entry/item/armor
|
||||
name = "Mastercrafted Armor Set"
|
||||
desc = "An artefact suit of armor that allows you to cast spells while providing more protection against attacks and the void of space."
|
||||
item_path = /obj/item/clothing/suit/space/rig/wizard
|
||||
log_name = "HS"
|
||||
category = "Defensive"
|
||||
|
||||
/datum/spellbook_entry/item/armor/Buy(var/mob/living/carbon/human/user,var/obj/item/weapon/spellbook/book)
|
||||
. = ..()
|
||||
@@ -330,6 +353,35 @@
|
||||
desc = "A magical contract binding an apprentice wizard to your service, using it will summon them to your side."
|
||||
item_path = /obj/item/weapon/contract
|
||||
log_name = "CT"
|
||||
category = "Assistance"
|
||||
|
||||
/datum/spellbook_entry/item/bloodbottle
|
||||
name = "Bottle of Blood"
|
||||
desc = "A bottle of magically infused blood, the smell of which will attract extradimensional beings when broken. Be careful though, the kinds of creatures summoned by blood magic are indiscriminate in their killing, and you yourself may become a victim."
|
||||
item_path = /obj/item/weapon/antag_spawner/slaughter_demon
|
||||
log_name = "BB"
|
||||
limit = 3
|
||||
category = "Assistance"
|
||||
|
||||
/datum/spellbook_entry/item/tarotdeck
|
||||
name = "Tarot Deck"
|
||||
desc = "A deck of tarot cards that can be used to summon a spirit companion for the wizard."
|
||||
item_path = /obj/item/weapon/guardiancreator
|
||||
log_name = "TD"
|
||||
limit = 1
|
||||
category = "Assistance"
|
||||
|
||||
/datum/spellbook_entry/item/mjolnir
|
||||
name = "Mjolnir"
|
||||
desc = "A mighty hammer on loan from Thor, God of Thunder. It crackles with barely contained power."
|
||||
item_path = /obj/item/weapon/twohanded/mjollnir
|
||||
log_name = "MJ"
|
||||
|
||||
/datum/spellbook_entry/item/singularity_hammer
|
||||
name = "Singularity Hammer"
|
||||
desc = "A hammer that creates an intensely powerful field of gravity where it strikes, pulling everthing nearby to the point of impact."
|
||||
item_path = /obj/item/weapon/twohanded/singularityhammer
|
||||
log_name = "SI"
|
||||
|
||||
/datum/spellbook_entry/summon
|
||||
name = "Summon Stuff"
|
||||
@@ -355,7 +407,7 @@
|
||||
|
||||
/datum/spellbook_entry/summon/guns
|
||||
name = "Summon Guns"
|
||||
category = "Challenges"
|
||||
category = "Rituals"
|
||||
desc = "Nothing could possibly go wrong with arming a crew of lunatics just itching for an excuse to kill you. Just be careful not to stand still too long!"
|
||||
cost = 0
|
||||
log_name = "SG"
|
||||
@@ -390,8 +442,8 @@
|
||||
icon_state ="book"
|
||||
throw_speed = 2
|
||||
throw_range = 5
|
||||
w_class = 1.0
|
||||
var/uses = 5
|
||||
w_class = 1
|
||||
var/uses = 10
|
||||
var/temp = null
|
||||
var/op = 1
|
||||
var/tab = null
|
||||
@@ -435,17 +487,26 @@
|
||||
/obj/item/weapon/spellbook/proc/GetCategoryHeader(var/category)
|
||||
var/dat = ""
|
||||
switch(category)
|
||||
if("Offensive Spells")
|
||||
dat += "Spells that can be reused endlessly.<BR>"
|
||||
dat += "The number after the spell name is the cooldown time.<BR>"
|
||||
if("Offensive")
|
||||
dat += "Spells and items geared towards debilitating and destroying.<BR><BR>"
|
||||
dat += "Items are not bound to you and can be stolen. Additionaly they cannot typically be returned once purchased.<BR>"
|
||||
dat += "For spells: the number after the spell name is the cooldown time.<BR>"
|
||||
dat += "You can reduce this number by spending more points on the spell.<BR>"
|
||||
if("Utility Spells")
|
||||
dat += "Spells that can be reused endlessly.<BR>"
|
||||
dat += "The number after the spell name is the cooldown time.<BR>"
|
||||
if("Defensive")
|
||||
dat += "Spells and items geared towards improving your survivabilty or reducing foes ability to attack.<BR><BR>"
|
||||
dat += "Items are not bound to you and can be stolen. Additionaly they cannot typically be returned once purchased.<BR>"
|
||||
dat += "For spells: the number after the spell name is the cooldown time.<BR>"
|
||||
dat += "You can reduce this number by spending more points on the spell.<BR>"
|
||||
if("Mobility")
|
||||
dat += "Spells and items geared towards improving your ability to move. It is a good idea to take at least one.<BR><BR>"
|
||||
dat += "Items are not bound to you and can be stolen. Additionaly they cannot typically be returned once purchased.<BR>"
|
||||
dat += "For spells: the number after the spell name is the cooldown time.<BR>"
|
||||
dat += "You can reduce this number by spending more points on the spell.<BR>"
|
||||
if("Assistance")
|
||||
dat += "Spells and items geared towards bringing in outside forces to aid you or improving upon your other items and abilties.<BR><BR>"
|
||||
dat += "Items are not bound to you and can be stolen. Additionaly they cannot typically be returned once purchased.<BR>"
|
||||
dat += "For spells: the number after the spell name is the cooldown time.<BR>"
|
||||
dat += "You can reduce this number by spending more points on the spell.<BR>"
|
||||
if("Artifacts")
|
||||
dat += "Powerful items imbued with eldritch magics. Summoning one will count towards your maximum number of uses.<BR>"
|
||||
dat += "These items are not bound to you and can be stolen. Additionaly they cannot typically be returned once purchased.<BR>"
|
||||
if("Challenges")
|
||||
dat += "The Wizard Federation typically has hard limits on the potency and number of spells brought to the station based on risk.<BR>"
|
||||
dat += "Arming the station against you will increases the risk, but will grant you one more charge for your spellbook.<BR>"
|
||||
@@ -490,7 +551,7 @@
|
||||
cat_dat[category] = "<hr>"
|
||||
dat += "<li><a [tab==category?"class=selected":""] href='byond://?src=\ref[src];page=[category]'>[category]</a></li>"
|
||||
|
||||
dat += "<li><a><b>Uses remaining : [uses]</b></a></li>"
|
||||
dat += "<li><a><b>Points remaining : [uses]</b></a></li>"
|
||||
dat += "</ul>"
|
||||
|
||||
var/datum/spellbook_entry/E
|
||||
@@ -514,7 +575,7 @@
|
||||
dat += cat_dat[category]
|
||||
dat += "</div>"
|
||||
|
||||
user << browse(wrap(dat), "window=spellbook;size=700x300")
|
||||
user << browse(wrap(dat), "window=spellbook;size=700x500")
|
||||
onclose(user, "spellbook")
|
||||
return
|
||||
|
||||
|
||||
@@ -466,7 +466,7 @@
|
||||
vortex(target,user)
|
||||
|
||||
/obj/item/weapon/twohanded/mjollnir
|
||||
name = "Mjollnir"
|
||||
name = "Mjolnir"
|
||||
desc = "A weapon worthy of a god, able to strike with the force of a lightning bolt. It crackles with barely contained energy."
|
||||
icon_state = "mjollnir0"
|
||||
flags = CONDUCT
|
||||
@@ -474,7 +474,7 @@
|
||||
no_embed = 1
|
||||
force = 5
|
||||
force_unwielded = 5
|
||||
force_wielded = 20
|
||||
force_wielded = 25
|
||||
throwforce = 30
|
||||
throw_range = 7
|
||||
w_class = 5
|
||||
@@ -485,25 +485,30 @@
|
||||
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread()
|
||||
s.set_up(5, 1, target.loc)
|
||||
s.start()
|
||||
target.take_organ_damage(0,30)
|
||||
target.visible_message("<span class='danger'>[target.name] was shocked by the [src.name]!</span>", \
|
||||
"<span class='userdanger'>You feel a powerful shock course through your body sending you flying!</span>", \
|
||||
"<span class='danger'>You hear a heavy electrical crack.</span>")
|
||||
"<span class='italics'>You hear a heavy electrical crack!</span>")
|
||||
var/atom/throw_target = get_edge_target_turf(target, get_dir(src, get_step_away(target, src)))
|
||||
target.throw_at(throw_target, 200, 4)
|
||||
return
|
||||
|
||||
/obj/item/weapon/twohanded/mjollnir/attack(mob/M as mob, mob/user as mob)
|
||||
..()
|
||||
spawn(0)
|
||||
if(wielded)
|
||||
//if(charged == 5)
|
||||
//charged = 0
|
||||
playsound(src.loc, "sparks", 50, 1)
|
||||
if(istype(M, /mob/living))
|
||||
M.Stun(10)
|
||||
M.Stun(3)
|
||||
shock(M)
|
||||
|
||||
/obj/item/weapon/twohanded/mjollnir/throw_impact(atom/target)
|
||||
. = ..()
|
||||
if(istype(target, /mob/living))
|
||||
var/mob/living/L = target
|
||||
L.Stun(3)
|
||||
shock(L)
|
||||
|
||||
/obj/item/weapon/twohanded/mjollnir/update_icon() //Currently only here to fuck with the on-mob icons.
|
||||
icon_state = "mjollnir[wielded]"
|
||||
return
|
||||
|
||||
@@ -125,6 +125,38 @@
|
||||
..(user)
|
||||
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/Fire(atom/target as mob|obj|turf|area, mob/living/carbon/user as mob|obj, params, reflex = 0)
|
||||
..()
|
||||
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()
|
||||
spawn(0)
|
||||
throw_at(pick(oview(7,get_turf(user))),1,1)
|
||||
user.visible_message("<span class='warning'>[user] tosses aside the spent rifle!</span>")
|
||||
|
||||
|
||||
/obj/item/ammo_box/magazine/internal/boltaction/enchanted
|
||||
max_ammo =1
|
||||
|
||||
/////////////////////////////
|
||||
// DOUBLE BARRELED SHOTGUN //
|
||||
/////////////////////////////
|
||||
|
||||
Reference in New Issue
Block a user