mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-23 12:07:27 +01:00
Logs wizard spell names instead of initialisms to the DB (#21136)
* improve wizard feedback data * review 1 * readability improvement
This commit is contained in:
@@ -4,7 +4,6 @@
|
||||
var/spell_type = null
|
||||
var/desc = ""
|
||||
var/category = "Offensive"
|
||||
var/log_name = null //What it shows up as in logs
|
||||
var/cost = 2
|
||||
var/refundable = TRUE
|
||||
var/obj/effect/proc_holder/spell/S = null //Since spellbooks can be used by only one person anyway we can track the actual spell
|
||||
@@ -50,7 +49,7 @@
|
||||
aspell.on_purchase_upgrade()
|
||||
return TRUE
|
||||
//No same spell found - just learn it
|
||||
SSblackbox.record_feedback("tally", "wizard_spell_learned", 1, log_name)
|
||||
SSblackbox.record_feedback("tally", "wizard_spell_learned", 1, name)
|
||||
user.mind.AddSpell(newspell)
|
||||
to_chat(user, "<span class='notice'>You have learned [newspell.name].</span>")
|
||||
return TRUE
|
||||
@@ -99,137 +98,116 @@
|
||||
/datum/spellbook_entry/blind
|
||||
name = "Blind"
|
||||
spell_type = /obj/effect/proc_holder/spell/trigger/blind
|
||||
log_name = "BD"
|
||||
category = "Offensive"
|
||||
cost = 1
|
||||
|
||||
/datum/spellbook_entry/lightningbolt
|
||||
name = "Lightning Bolt"
|
||||
spell_type = /obj/effect/proc_holder/spell/charge_up/bounce/lightning
|
||||
log_name = "LB"
|
||||
category = "Offensive"
|
||||
cost = 1
|
||||
|
||||
/datum/spellbook_entry/cluwne
|
||||
name = "Curse of the Cluwne"
|
||||
spell_type = /obj/effect/proc_holder/spell/touch/cluwne
|
||||
log_name = "CC"
|
||||
category = "Offensive"
|
||||
|
||||
/datum/spellbook_entry/banana_touch
|
||||
name = "Banana Touch"
|
||||
spell_type = /obj/effect/proc_holder/spell/touch/banana
|
||||
log_name = "BT"
|
||||
cost = 1
|
||||
|
||||
/datum/spellbook_entry/mime_malaise
|
||||
name = "Mime Malaise"
|
||||
spell_type = /obj/effect/proc_holder/spell/touch/mime_malaise
|
||||
log_name = "MI"
|
||||
cost = 1
|
||||
|
||||
/datum/spellbook_entry/horseman
|
||||
name = "Curse of the Horseman"
|
||||
spell_type = /obj/effect/proc_holder/spell/horsemask
|
||||
log_name = "HH"
|
||||
category = "Offensive"
|
||||
|
||||
/datum/spellbook_entry/disintegrate
|
||||
name = "Disintegrate"
|
||||
spell_type = /obj/effect/proc_holder/spell/touch/disintegrate
|
||||
log_name = "DG"
|
||||
category = "Offensive"
|
||||
|
||||
/datum/spellbook_entry/fireball
|
||||
name = "Fireball"
|
||||
spell_type = /obj/effect/proc_holder/spell/fireball
|
||||
log_name = "FB"
|
||||
category = "Offensive"
|
||||
|
||||
/datum/spellbook_entry/fleshtostone
|
||||
name = "Flesh to Stone"
|
||||
spell_type = /obj/effect/proc_holder/spell/touch/flesh_to_stone
|
||||
log_name = "FS"
|
||||
category = "Offensive"
|
||||
|
||||
/datum/spellbook_entry/mutate
|
||||
name = "Mutate"
|
||||
spell_type = /obj/effect/proc_holder/spell/genetic/mutate
|
||||
log_name = "MU"
|
||||
category = "Offensive"
|
||||
|
||||
/datum/spellbook_entry/rod_form
|
||||
name = "Rod Form"
|
||||
spell_type = /obj/effect/proc_holder/spell/rod_form
|
||||
log_name = "RF"
|
||||
category = "Offensive"
|
||||
|
||||
/datum/spellbook_entry/infinite_guns
|
||||
name = "Lesser Summon Guns"
|
||||
spell_type = /obj/effect/proc_holder/spell/infinite_guns
|
||||
log_name = "IG"
|
||||
category = "Offensive"
|
||||
|
||||
//Defensive
|
||||
/datum/spellbook_entry/disabletech
|
||||
name = "Disable Tech"
|
||||
spell_type = /obj/effect/proc_holder/spell/emplosion/disable_tech
|
||||
log_name = "DT"
|
||||
category = "Defensive"
|
||||
cost = 1
|
||||
|
||||
/datum/spellbook_entry/forcewall
|
||||
name = "Force Wall"
|
||||
spell_type = /obj/effect/proc_holder/spell/forcewall
|
||||
log_name = "FW"
|
||||
category = "Defensive"
|
||||
cost = 1
|
||||
|
||||
/datum/spellbook_entry/rathens
|
||||
name = "Rathen's Secret"
|
||||
spell_type = /obj/effect/proc_holder/spell/rathens
|
||||
log_name = "RS"
|
||||
category = "Defensive"
|
||||
cost = 2
|
||||
|
||||
/datum/spellbook_entry/repulse
|
||||
name = "Repulse"
|
||||
spell_type = /obj/effect/proc_holder/spell/aoe/repulse
|
||||
log_name = "RP"
|
||||
category = "Defensive"
|
||||
cost = 1
|
||||
|
||||
/datum/spellbook_entry/smoke
|
||||
name = "Smoke"
|
||||
spell_type = /obj/effect/proc_holder/spell/smoke
|
||||
log_name = "SM"
|
||||
category = "Defensive"
|
||||
cost = 1
|
||||
|
||||
/datum/spellbook_entry/lichdom
|
||||
name = "Bind Soul"
|
||||
spell_type = /obj/effect/proc_holder/spell/lichdom
|
||||
log_name = "LD"
|
||||
category = "Defensive"
|
||||
is_ragin_restricted = TRUE
|
||||
|
||||
/datum/spellbook_entry/magicm
|
||||
name = "Magic Missile"
|
||||
spell_type = /obj/effect/proc_holder/spell/projectile/magic_missile
|
||||
log_name = "MM"
|
||||
category = "Defensive"
|
||||
|
||||
/datum/spellbook_entry/timestop
|
||||
name = "Time Stop"
|
||||
spell_type = /obj/effect/proc_holder/spell/aoe/conjure/timestop
|
||||
log_name = "TS"
|
||||
category = "Defensive"
|
||||
|
||||
/datum/spellbook_entry/sacred_flame
|
||||
name = "Sacred Flame and Fire Immunity"
|
||||
spell_type = /obj/effect/proc_holder/spell/sacred_flame
|
||||
cost = 1
|
||||
log_name = "SF"
|
||||
category = "Defensive"
|
||||
|
||||
/datum/spellbook_entry/sacred_flame/LearnSpell(mob/living/carbon/human/user, obj/item/spellbook/book, obj/effect/proc_holder/spell/newspell)
|
||||
@@ -248,67 +226,57 @@
|
||||
/datum/spellbook_entry/knock
|
||||
name = "Knock"
|
||||
spell_type = /obj/effect/proc_holder/spell/aoe/knock
|
||||
log_name = "KN"
|
||||
category = "Mobility"
|
||||
cost = 1
|
||||
|
||||
/datum/spellbook_entry/blink
|
||||
name = "Blink"
|
||||
spell_type = /obj/effect/proc_holder/spell/turf_teleport/blink
|
||||
log_name = "BL"
|
||||
category = "Mobility"
|
||||
|
||||
/datum/spellbook_entry/jaunt
|
||||
name = "Ethereal Jaunt"
|
||||
spell_type = /obj/effect/proc_holder/spell/ethereal_jaunt
|
||||
log_name = "EJ"
|
||||
category = "Mobility"
|
||||
|
||||
/datum/spellbook_entry/spacetime_dist
|
||||
name = "Spacetime Distortion"
|
||||
spell_type = /obj/effect/proc_holder/spell/spacetime_dist
|
||||
cost = 1 //Better defence than greater forcewall (maybe) but good luck hitting anyone, so 1 point.
|
||||
log_name = "STD" //listen it can't be SD and no one ever sees this unless they are stat profiling
|
||||
category = "Mobility"
|
||||
|
||||
/datum/spellbook_entry/greaterknock
|
||||
name = "Greater Knock"
|
||||
spell_type = /obj/effect/proc_holder/spell/aoe/knock/greater
|
||||
log_name = "GK"
|
||||
category = "Mobility"
|
||||
refundable = 0 //global effect on cast
|
||||
|
||||
/datum/spellbook_entry/mindswap
|
||||
name = "Mindswap"
|
||||
spell_type = /obj/effect/proc_holder/spell/mind_transfer
|
||||
log_name = "MT"
|
||||
category = "Mobility"
|
||||
|
||||
/datum/spellbook_entry/teleport
|
||||
name = "Teleport"
|
||||
spell_type = /obj/effect/proc_holder/spell/area_teleport/teleport
|
||||
log_name = "TP"
|
||||
category = "Mobility"
|
||||
|
||||
//Assistance
|
||||
/datum/spellbook_entry/charge
|
||||
name = "Charge"
|
||||
spell_type = /obj/effect/proc_holder/spell/charge
|
||||
log_name = "CHG"
|
||||
category = "Assistance"
|
||||
cost = 1
|
||||
|
||||
/datum/spellbook_entry/summonitem
|
||||
name = "Summon Item"
|
||||
spell_type = /obj/effect/proc_holder/spell/summonitem
|
||||
log_name = "IS"
|
||||
category = "Assistance"
|
||||
cost = 1
|
||||
|
||||
/datum/spellbook_entry/noclothes
|
||||
name = "Remove Clothes Requirement"
|
||||
spell_type = /obj/effect/proc_holder/spell/noclothes
|
||||
log_name = "NC"
|
||||
category = "Assistance"
|
||||
|
||||
//Rituals
|
||||
@@ -338,7 +306,6 @@
|
||||
name = "Summon Ghosts"
|
||||
desc = "Spook the crew out by making them see dead people. Be warned, ghosts are capricious and occasionally vindicative, and some will use their incredibly minor abilities to frustrate you."
|
||||
cost = 0
|
||||
log_name = "SGH"
|
||||
is_ragin_restricted = TRUE
|
||||
|
||||
/datum/spellbook_entry/summon/ghosts/Buy(mob/living/carbon/human/user, obj/item/spellbook/book)
|
||||
@@ -352,7 +319,6 @@
|
||||
name = "Silence Ghosts"
|
||||
desc = "Tired of people talking behind your back, and spooking you? Why not silence them, and make the dead deader."
|
||||
cost = 2
|
||||
log_name = "SLG"
|
||||
is_ragin_restricted = TRUE //Salt needs to flow here, to be honest
|
||||
|
||||
/datum/spellbook_entry/summon/slience_ghosts/Buy(mob/living/carbon/human/user, obj/item/spellbook/book)
|
||||
@@ -367,11 +333,10 @@
|
||||
name = "Summon Guns"
|
||||
desc = "Nothing could possibly go wrong with arming a crew of lunatics just itching for an excuse to kill you. There is a good chance that they will shoot each other first. Hopefully. Gives you 2 extra spell points on purchase."
|
||||
cost = -2
|
||||
log_name = "SG"
|
||||
is_ragin_restricted = TRUE
|
||||
|
||||
/datum/spellbook_entry/summon/guns/Buy(mob/living/carbon/human/user, obj/item/spellbook/book)
|
||||
SSblackbox.record_feedback("tally", "wizard_spell_learned", 1, log_name)
|
||||
SSblackbox.record_feedback("tally", "wizard_spell_learned", 1, name)
|
||||
rightandwrong(SUMMON_GUNS, user, 10)
|
||||
active = TRUE
|
||||
playsound(get_turf(user), 'sound/magic/castsummon.ogg', 50, TRUE)
|
||||
@@ -382,11 +347,10 @@
|
||||
name = "Summon Magic"
|
||||
desc = "Share the wonders of magic with the crew and show them why they aren't to be trusted with it at the same time. Gives you 2 extra spell points on purchase."
|
||||
cost = -2
|
||||
log_name = "SU"
|
||||
is_ragin_restricted = TRUE
|
||||
|
||||
/datum/spellbook_entry/summon/magic/Buy(mob/living/carbon/human/user, obj/item/spellbook/book)
|
||||
SSblackbox.record_feedback("tally", "wizard_spell_learned", 1, log_name)
|
||||
SSblackbox.record_feedback("tally", "wizard_spell_learned", 1, name)
|
||||
rightandwrong(SUMMON_MAGIC, user, 10)
|
||||
active = TRUE
|
||||
playsound(get_turf(user), 'sound/magic/castsummon.ogg', 50, TRUE)
|
||||
@@ -406,7 +370,7 @@
|
||||
user.put_in_hands(new item_path)
|
||||
else
|
||||
new item_path(user.loc)
|
||||
SSblackbox.record_feedback("tally", "wizard_spell_learned", 1, log_name)
|
||||
SSblackbox.record_feedback("tally", "wizard_spell_learned", 1, name)
|
||||
return 1
|
||||
|
||||
/datum/spellbook_entry/item/GetInfo()
|
||||
@@ -421,21 +385,18 @@
|
||||
name = "A Necromantic Stone"
|
||||
desc = "A Necromantic stone is able to resurrect three dead individuals as skeletal thralls for you to command."
|
||||
item_path = /obj/item/necromantic_stone
|
||||
log_name = "NS"
|
||||
category = "Artefacts"
|
||||
|
||||
/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/scrying
|
||||
log_name = "SO"
|
||||
category = "Artefacts"
|
||||
|
||||
/datum/spellbook_entry/item/soulstones
|
||||
name = "Six Soul Stone Shards and the spell Artificer"
|
||||
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/storage/belt/soulstone/full
|
||||
log_name = "SS"
|
||||
category = "Artefacts"
|
||||
|
||||
/datum/spellbook_entry/item/soulstones/Buy(mob/living/carbon/human/user, obj/item/spellbook/book)
|
||||
@@ -448,7 +409,6 @@
|
||||
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/storage/belt/wands/full
|
||||
log_name = "WA"
|
||||
category = "Artefacts"
|
||||
|
||||
/datum/spellbook_entry/item/magic_nanny_bag
|
||||
@@ -465,7 +425,6 @@
|
||||
name = "Cursed Heart"
|
||||
desc = "A heart that has been empowered with magic to heal the user. The user must ensure the heart is manually beaten or their blood circulation will suffer, but every beat heals their injuries. It must beat every 6 seconds. Not reccomended for first time wizards."
|
||||
item_path = /obj/item/organ/internal/heart/cursed/wizard
|
||||
log_name = "CH"
|
||||
cost = 1
|
||||
category = "Artefacts"
|
||||
|
||||
@@ -473,14 +432,12 @@
|
||||
name = "Voice of God"
|
||||
desc = "A magical vocal cord that can be used to yell out with the voice of a god, be it to harm, help, or confuse the target."
|
||||
item_path = /obj/item/organ/internal/vocal_cords/colossus/wizard
|
||||
log_name = "VG"
|
||||
category = "Artefacts"
|
||||
|
||||
/datum/spellbook_entry/item/warp_cubes
|
||||
name = "Warp Cubes"
|
||||
desc = "Two magic cubes, that when they are twisted in hand, teleports the user to the location of the other cube instantly. Great for silently teleporting to a fixed location, or teleporting you to an apprentice, or vice versa. Do not leave on the wizard den, it will not work."
|
||||
item_path = /obj/item/warp_cube/red
|
||||
log_name = "WC"
|
||||
cost = 1
|
||||
spawn_on_floor = TRUE // breaks if spawned in hand
|
||||
category = "Artefacts"
|
||||
@@ -489,7 +446,6 @@
|
||||
name = "Everfull Mug"
|
||||
desc = "A magical mug that can be filled with omnizine at will, though beware of addiction! It can also produce alchohol and other less useful substances."
|
||||
item_path = /obj/item/reagent_containers/food/drinks/everfull
|
||||
log_name = "EM"
|
||||
cost = 1
|
||||
category = "Artefacts"
|
||||
|
||||
@@ -500,7 +456,6 @@
|
||||
item_path = /obj/item/clothing/suit/space/hardsuit/shielded/wizard
|
||||
limit = 1
|
||||
category = "Weapons and Armors"
|
||||
log_name = "BMA"
|
||||
|
||||
/datum/spellbook_entry/item/battlemage_charge
|
||||
name = "Battlemage Armour Charges"
|
||||
@@ -508,20 +463,17 @@
|
||||
item_path = /obj/item/wizard_armour_charge
|
||||
category = "Weapons and Armors"
|
||||
cost = 1
|
||||
log_name = "BMAC"
|
||||
|
||||
/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/twohanded/mjollnir
|
||||
log_name = "MJ"
|
||||
category = "Weapons and Armors"
|
||||
|
||||
/datum/spellbook_entry/item/singularity_hammer
|
||||
name = "Singularity Hammer"
|
||||
desc = "A hammer that creates an intensely powerful field of gravity where it strikes, pulling everything nearby to the point of impact."
|
||||
item_path = /obj/item/twohanded/singularityhammer
|
||||
log_name = "SI"
|
||||
category = "Weapons and Armors"
|
||||
|
||||
/datum/spellbook_entry/item/cursed_katana
|
||||
@@ -529,14 +481,12 @@
|
||||
desc = "A cursed artefact, used to seal a horrible being inside the katana, which has now reformed. Can be used to make multiple powerful combos, examine it to see them. Can not be dropped. On death, you will dust."
|
||||
item_path = /obj/item/organ/internal/cyberimp/arm/katana
|
||||
cost = 1
|
||||
log_name = "CK"
|
||||
category = "Weapons and Armors"
|
||||
|
||||
/datum/spellbook_entry/item/spell_blade
|
||||
name = "Spellblade"
|
||||
desc = "A magical sword that can be enchanted by using it in hand to have a unique on-hit effect. Lighting: arcs electricity between nearby targets, stunning and damaging them. Fire: creates a massive ball of fire on hit, and makes the wielder immune to fire. Bluespace: allows you to strike people from a range, teleporting you to them. Forceshield: on hit, makes you stun immune for 3 seconds and reduces damage by half."
|
||||
item_path = /obj/item/melee/spellblade
|
||||
log_name = "SB"
|
||||
category = "Weapons and Armors"
|
||||
|
||||
/datum/spellbook_entry/item/meat_hook
|
||||
@@ -544,7 +494,6 @@
|
||||
desc = "An enchanted hook, that can be used to hook people, hurt them, and bring them right to you. Quite bulky, works well as a belt though."
|
||||
item_path = /obj/item/gun/magic/hook
|
||||
cost = 1
|
||||
log_name = "MH"
|
||||
category = "Weapons and Armors"
|
||||
|
||||
//Staves
|
||||
@@ -552,7 +501,6 @@
|
||||
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."
|
||||
item_path = /obj/item/gun/magic/staff/door
|
||||
log_name = "SD"
|
||||
category = "Staves"
|
||||
cost = 1
|
||||
|
||||
@@ -560,7 +508,6 @@
|
||||
name = "Staff of Healing"
|
||||
desc = "An altruistic staff that can heal the lame and raise the dead."
|
||||
item_path = /obj/item/gun/magic/staff/healing
|
||||
log_name = "SH"
|
||||
category = "Staves"
|
||||
cost = 1
|
||||
|
||||
@@ -568,7 +515,6 @@
|
||||
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"
|
||||
category = "Staves"
|
||||
cost = 1
|
||||
|
||||
@@ -576,14 +522,12 @@
|
||||
name = "Staff of Animation"
|
||||
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/gun/magic/staff/animate
|
||||
log_name = "SA"
|
||||
category = "Staves"
|
||||
|
||||
/datum/spellbook_entry/item/staffchange
|
||||
name = "Staff of Change"
|
||||
desc = "An artefact that spits bolts of coruscating energy which cause the target's very form to reshape itself."
|
||||
item_path = /obj/item/gun/magic/staff/change
|
||||
log_name = "ST"
|
||||
category = "Staves"
|
||||
is_ragin_restricted = TRUE
|
||||
|
||||
@@ -591,7 +535,6 @@
|
||||
name = "Staff of Chaos"
|
||||
desc = "A caprious tool that can fire all sorts of magic without any rhyme or reason. Using it on people you care about is not recommended."
|
||||
item_path = /obj/item/gun/magic/staff/chaos
|
||||
log_name = "SC"
|
||||
category = "Staves"
|
||||
|
||||
//Summons
|
||||
@@ -599,7 +542,6 @@
|
||||
name = "Bottle of Ooze"
|
||||
desc = "A bottle of magically infused ooze, which will awake an all-consuming Morph, capable of cunningly disguising itself as any object it comes in contact with and even casting some very basic spells. Be careful though, as Morph diet includes Wizards."
|
||||
item_path = /obj/item/antag_spawner/morph
|
||||
log_name = "BO"
|
||||
category = "Summons"
|
||||
limit = 3
|
||||
cost = 1
|
||||
@@ -614,7 +556,6 @@
|
||||
damaging. The crew's reaction to the other hand could be very \
|
||||
destructive."
|
||||
item_path = /obj/item/antag_spawner/slaughter_demon/laughter
|
||||
log_name = "HB"
|
||||
category = "Summons"
|
||||
limit = 3
|
||||
cost = 1 // Non-destructive; it's just a jape, sibling!
|
||||
@@ -623,7 +564,6 @@
|
||||
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/antag_spawner/slaughter_demon
|
||||
log_name = "BB"
|
||||
category = "Summons"
|
||||
limit = 3
|
||||
|
||||
@@ -631,7 +571,6 @@
|
||||
name = "Bottle of Shadows"
|
||||
desc = "A bottle of pure darkness, the smell of which will attract extradimensional beings when broken. Be careful though, the kinds of creatures summoned from the shadows are indiscriminate in their killing, and you yourself may become a victim."
|
||||
item_path = /obj/item/antag_spawner/slaughter_demon/shadow
|
||||
log_name = "BOS"
|
||||
category = "Summons"
|
||||
limit = 3
|
||||
cost = 1 //Unless you blackout the station this ain't going to do much, wizard doesn't get NV, still dies easily to a group of 2 and it doesn't eat bodies.
|
||||
@@ -640,7 +579,6 @@
|
||||
name = "Bottle of Ectoplasm"
|
||||
desc = "A magically infused bottle of ectoplasm, effectively pure salt from the spectral realm. Be careful though, these salty spirits are indiscriminate in their harvesting, and you yourself may become a victim."
|
||||
item_path = /obj/item/antag_spawner/revenant
|
||||
log_name = "RB"
|
||||
category = "Summons"
|
||||
limit = 3
|
||||
cost = 1 //Needs essence to live. Needs crew to die for essence, doubt xenobio will be making many monkeys. As such, weaker. Also can hardstun the wizard.
|
||||
@@ -649,7 +587,6 @@
|
||||
name = "Contract of Apprenticeship"
|
||||
desc = "A magical contract binding an apprentice wizard to your service, using it will summon them to your side."
|
||||
item_path = /obj/item/contract
|
||||
log_name = "CT"
|
||||
category = "Summons"
|
||||
|
||||
/datum/spellbook_entry/item/tarotdeck
|
||||
@@ -657,7 +594,6 @@
|
||||
desc = "A deck of guardian tarot cards, capable of binding a personal guardian to your body. There are multiple types of guardian available, but all of them will transfer some amount of damage to you. \
|
||||
It would be wise to avoid buying these with anything capable of causing you to swap bodies with others."
|
||||
item_path = /obj/item/guardiancreator
|
||||
log_name = "TD"
|
||||
category = "Summons"
|
||||
limit = 1
|
||||
|
||||
|
||||
@@ -2,33 +2,30 @@
|
||||
|
||||
//Standard loadouts, which are meant to be suggestions for beginners. Should always be worth exactly 10 spell points, and only contain standard wizard spells/items.
|
||||
/datum/spellbook_entry/loadout/mutant
|
||||
name = "Offense Focus : Mutant"
|
||||
name = "Offense Focus - Mutant"
|
||||
desc = "A spellset focused around the Mutate spell as its main source of damage, which provides stun protection, laser eyes, and strong punches. <br> \
|
||||
Ethereal Jaunt and Blink provide escape and mobility, while Magic Missile and Disintegrate can be used together for dangerous or key targets. <br> \
|
||||
As this set lacks any form of healing or resurrection, healing items should be acquired from the station, and you should be careful to avoid being hurt in the first place. <br><br> \
|
||||
</i>Provides Mutate, Ethereal Jaunt, Blink, Magic Missile, and Disintegrate.<i>"
|
||||
log_name = "OM"
|
||||
spells_path = list(/obj/effect/proc_holder/spell/genetic/mutate, /obj/effect/proc_holder/spell/ethereal_jaunt, /obj/effect/proc_holder/spell/turf_teleport/blink, \
|
||||
/obj/effect/proc_holder/spell/projectile/magic_missile, /obj/effect/proc_holder/spell/touch/disintegrate)
|
||||
|
||||
/datum/spellbook_entry/loadout/lich
|
||||
name = "Defense Focus : Lich"
|
||||
name = "Defense Focus - Lich"
|
||||
desc = "This spellset uses the Bind Soul spell to safeguard your life as a lich and allow for more dangerous offensive spells to be used. <br> \
|
||||
Ethereal Jaunt provides escape, Fireball and Rod Form are your offensive spells, and Disable Tech and Forcewall provides utility in disabling sec equipment or blocking their path. <br> \
|
||||
Care should be taken in hiding the item you choose as your phylactery after using Bind Soul, as you cannot revive if it destroyed or too far from your body! <br><br> \
|
||||
</i>Provides Bind Soul, Ethereal Jaunt, Fireball, Rod Form, Disable Tech, and Greater Forcewall.<i>"
|
||||
log_name = "DL"
|
||||
spells_path = list(/obj/effect/proc_holder/spell/lichdom, /obj/effect/proc_holder/spell/ethereal_jaunt, /obj/effect/proc_holder/spell/fireball, \
|
||||
/obj/effect/proc_holder/spell/rod_form, /obj/effect/proc_holder/spell/emplosion/disable_tech, /obj/effect/proc_holder/spell/forcewall)
|
||||
is_ragin_restricted = TRUE
|
||||
|
||||
/datum/spellbook_entry/loadout/wands
|
||||
name = "Utility Focus : Wands"
|
||||
name = "Utility Focus - Wands"
|
||||
desc = "This set contain a Belt of Wands, providing offensive, defensive, and utility wands. Wands have limited charges, but can be partially recharged with the Charge spell included. <br> \
|
||||
Ethereal Jaunt and Blink provide escape and mobility, while Disintegrate and Repulse can be used to annihilate or push away anyone that gets too close to you. <br> \
|
||||
Do not lose any of your wands to the station's crew, as they are extremely deadly even in their hands. Remember that the Revive wand can be used on yourself for a full heal! <br><br> \
|
||||
</i>Provides a Belt of Wands, Charge, Ethereal Jaunt, Blink, Repulse, and Disintegrate.<i>"
|
||||
log_name = "UW"
|
||||
items_path = list(/obj/item/storage/belt/wands/full)
|
||||
spells_path = list(/obj/effect/proc_holder/spell/charge, /obj/effect/proc_holder/spell/ethereal_jaunt, /obj/effect/proc_holder/spell/turf_teleport/blink, \
|
||||
/obj/effect/proc_holder/spell/aoe/repulse, /obj/effect/proc_holder/spell/touch/disintegrate)
|
||||
@@ -38,7 +35,6 @@
|
||||
name = "Silencio"
|
||||
desc = "...<br><br> \
|
||||
</i>Provides Finger Gun and Invisible Greater Wall manuals, Mime Robes, a Cane and Duct Tape, Ethereal Jaunt, Blink, Teleport, Mime Malaise, Knock, and Stop Time.<i>"
|
||||
log_name = "SHH"
|
||||
items_path = list(/obj/item/spellbook/oneuse/mime/fingergun, /obj/item/spellbook/oneuse/mime/greaterwall, /obj/item/clothing/suit/wizrobe/mime, /obj/item/clothing/head/wizard/mime, \
|
||||
/obj/item/clothing/mask/gas/mime/wizard, /obj/item/clothing/shoes/sandal/marisa, /obj/item/cane, /obj/item/stack/tape_roll)
|
||||
spells_path = list(/obj/effect/proc_holder/spell/ethereal_jaunt, /obj/effect/proc_holder/spell/turf_teleport/blink, /obj/effect/proc_holder/spell/area_teleport/teleport, \
|
||||
@@ -57,7 +53,6 @@
|
||||
Bring them to the afterlife, one trigger pull at a time. <br> \
|
||||
You will likely need to scavenge additional ammo or weapons aboard the station. <br><br>\
|
||||
</i>Provides a .357 Revolver, 4 speedloaders of ammo, Ethereal Jaunt, Blink, Summon Item, No Clothes, and Bind Soul, with a unique outfit.<i>"
|
||||
log_name = "GR"
|
||||
items_path = list(/obj/item/gun/projectile/revolver, /obj/item/ammo_box/a357, /obj/item/ammo_box/a357, /obj/item/ammo_box/a357, /obj/item/ammo_box/a357, /obj/item/clothing/under/syndicate)
|
||||
spells_path = list(/obj/effect/proc_holder/spell/ethereal_jaunt, /obj/effect/proc_holder/spell/turf_teleport/blink, \
|
||||
/obj/effect/proc_holder/spell/summonitem, /obj/effect/proc_holder/spell/noclothes, /obj/effect/proc_holder/spell/lichdom/gunslinger)
|
||||
@@ -77,7 +72,6 @@
|
||||
Open His Grace's latch once you are ready to kill by using It in your hand. Keep It fed or you will be Its next meal.<br> \
|
||||
You might want to raid the Armory or loot a Security Officer to get ranged weapons like a disabler, His Grace's Hunger has little patience.<br><br> \
|
||||
</i>Provides His Grace, an Ancient Jumpsuit, an Assistant ID, a Gas Mask and Shoes, Insulated Gloves, a full Toolbelt, Ethereal Jaunt, Force Wall, Knock and No Clothes.<i>"
|
||||
log_name = "GT"
|
||||
items_path = list(/obj/item/his_grace, /obj/item/clothing/under/color/grey/glorf, /obj/item/clothing/mask/gas, /obj/item/clothing/shoes/black, \
|
||||
/obj/item/clothing/gloves/color/yellow, /obj/item/storage/belt/utility/full/multitool)
|
||||
spells_path = list(/obj/effect/proc_holder/spell/ethereal_jaunt, /obj/effect/proc_holder/spell/forcewall, \
|
||||
|
||||
@@ -12,17 +12,3 @@
|
||||
Fail("uplink reference [uplink_ref] is used multiple times")
|
||||
uplink_refs += uplink_ref
|
||||
|
||||
/datum/unit_test/spellbook_refs/Run()
|
||||
var/list/spell_refs = list()
|
||||
var/list/blacklist = list(/datum/spellbook_entry/summon,
|
||||
/datum/spellbook_entry/item,
|
||||
/datum/spellbook_entry/loadout,)
|
||||
for(var/datum/spellbook_entry/entry as anything in subtypesof(/datum/spellbook_entry) - blacklist)
|
||||
var/spell_ref = initial(entry.log_name)
|
||||
if(isnull(spell_ref))
|
||||
Fail("spellbook entry [initial(entry.name)] has no reference")
|
||||
continue
|
||||
if(spell_ref in spell_refs)
|
||||
Fail("spellbook reference [spell_ref] is used multiple times")
|
||||
spell_refs += spell_ref
|
||||
|
||||
|
||||
@@ -0,0 +1,74 @@
|
||||
{
|
||||
"HS": "Mastercrafted Armor Set",
|
||||
"GFW": "Greater Force Wall",
|
||||
|
||||
"BMAC": "Battlemage Armour Charges",
|
||||
"STD": "Spacetime Distortion",
|
||||
"CHG": "Charge",
|
||||
"BMA": "Battlemage Armour",
|
||||
"BOS": "Bottle of Shadows",
|
||||
"SHH": "Silencio",
|
||||
"SGH": "Summon Ghosts",
|
||||
"SLG": "Silence Ghosts",
|
||||
"BD": "Blind",
|
||||
"LB": "Lightning Bolt",
|
||||
"CC": "Curse of the Cluwne",
|
||||
"BT": "Banana Touch",
|
||||
"MI": "Mime Malaise",
|
||||
"HH": "Curse of the Horseman",
|
||||
"DG": "Disintegrate",
|
||||
"FB": "Fireball",
|
||||
"FS": "Flesh to Stone",
|
||||
"MU": "Mutate",
|
||||
"RF": "Rod Form",
|
||||
"IG": "Lesser Summon Guns",
|
||||
"DT": "Disable Tech",
|
||||
"FW": "Force Wall",
|
||||
"RS": "Rathen's Secret",
|
||||
"RP": "Repulse",
|
||||
"SM": "Smoke",
|
||||
"LD": "Bind Soul",
|
||||
"MM": "Magic Missile",
|
||||
"TS": "Time Stop",
|
||||
"SF": "Sacred Flame and Fire Immunity",
|
||||
"KN": "Knock",
|
||||
"BL": "Blink",
|
||||
"EJ": "Ethereal Jaunt",
|
||||
"GK": "Greater Knock",
|
||||
"MT": "Mindswap",
|
||||
"TP": "Teleport",
|
||||
"IS": "Summon Item",
|
||||
"NC": "Remove Clothes Requirement",
|
||||
"SG": "Summon Guns",
|
||||
"SU": "Summon Magic",
|
||||
"NS": "A Necromantic Stone",
|
||||
"SO": "Scrying Orb",
|
||||
"SS": "Six Soul Stone Shards and the spell Artificer",
|
||||
"WA": "Wand Assortment",
|
||||
"CH": "Cursed Heart",
|
||||
"VG": "Voice of God",
|
||||
"WC": "Warp Cubes",
|
||||
"EM": "Everfull Mug",
|
||||
"MJ": "Mjolnir",
|
||||
"SI": "Singularity Hammer",
|
||||
"CK": "Cursed Katana",
|
||||
"SB": "Spellblade",
|
||||
"MH": "Meat hook",
|
||||
"SD": "Staff of Door Creation",
|
||||
"SH": "Staff of Healing",
|
||||
"SL": "Staff of Slipping",
|
||||
"SA": "Staff of Animation",
|
||||
"ST": "Staff of Change",
|
||||
"SC": "Staff of Chaos",
|
||||
"BO": "Bottle of Ooze",
|
||||
"HB": "Bottle of Tickles",
|
||||
"BB": "Bottle of Blood",
|
||||
"RB": "Bottle of Ectoplasm",
|
||||
"CT": "Contract of Apprenticeship",
|
||||
"TD": "Guardian Deck",
|
||||
"OM": "Offense Focus - Mutant",
|
||||
"DL": "Defense Focus - Lich",
|
||||
"UW": "Utility Focus - Wands",
|
||||
"GR": "Gunslinging Reaper",
|
||||
"GT": "Tyde the Grey"
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
import mysql.connector, argparse, json, time, sys
|
||||
from mysql.connector import errorcode
|
||||
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("--address", help="SQL server address (Use 127.0.0.1 for the current computer)")
|
||||
parser.add_argument("--username", help="SQL login username")
|
||||
parser.add_argument("--password", help="SQL login password")
|
||||
parser.add_argument("--database", help="Database name (Default: paradise_gamedb)")
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
try:
|
||||
db = mysql.connector.connect(host=args.address, user=args.username, password=args.password, database=args.database)
|
||||
except mysql.connector.Error as exception:
|
||||
if exception.errno == errorcode.ER_ACCESS_DENIED_ERROR:
|
||||
print("Provided username and/or password invalid.")
|
||||
elif exception.errno == errorcode.ER_BAD_DB_ERROR:
|
||||
print("Database does not exist.")
|
||||
else:
|
||||
print(exception)
|
||||
sys.exit()
|
||||
|
||||
cursor = db.cursor()
|
||||
|
||||
startwatch = time.time()
|
||||
|
||||
try:
|
||||
with open('spell_converter.json') as json_file:
|
||||
convert_dict = json.load(json_file)
|
||||
except FileNotFoundError:
|
||||
print("Could not find the conversion file. Please make sure you're running the script from tools/wizard_spell_converter/, not the repo root!")
|
||||
sys.exit()
|
||||
|
||||
for spell in convert_dict:
|
||||
query = "UPDATE feedback SET json = replace(json, %s, %s) WHERE key_name = 'wizard_spell_learned'"
|
||||
cursor.execute(query, (spell, convert_dict[spell]))
|
||||
db.commit()
|
||||
|
||||
stopwatch = time.time()
|
||||
print("Database updated in {} seconds!".format(round(stopwatch - startwatch)))
|
||||
Reference in New Issue
Block a user