Bleeding edgy refresh (#303)
* not code stuff * other things * global vars, defines, helpers * onclick hud stuff, orphans, world.dm * controllers and datums * game folder * everything not client/mobs in modules * client folder * stage 1 mob stuff * simple animal things * silicons * carbon things * ayylmaos and monkeys * hyoomahn * icons n shit * sprite fixes * compile fixes * some fixes I cherrypicked. * qdel fixes * forgot brain refractors
This commit is contained in:
@@ -35,7 +35,7 @@
|
||||
for(var/obj/effect/proc_holder/spell/aspell in user.mind.spell_list)
|
||||
if(initial(S.name) == initial(aspell.name)) // Not using directly in case it was learned from one spellbook then upgraded in another
|
||||
if(aspell.spell_level >= aspell.level_max)
|
||||
user << "<span class='warning'>This spell cannot be improved further.</span>"
|
||||
to_chat(user, "<span class='warning'>This spell cannot be improved further.</span>")
|
||||
return 0
|
||||
else
|
||||
aspell.name = initial(aspell.name)
|
||||
@@ -45,24 +45,24 @@
|
||||
aspell.charge_counter = aspell.charge_max
|
||||
switch(aspell.spell_level)
|
||||
if(1)
|
||||
user << "<span class='notice'>You have improved [aspell.name] into Efficient [aspell.name].</span>"
|
||||
to_chat(user, "<span class='notice'>You have improved [aspell.name] into Efficient [aspell.name].</span>")
|
||||
aspell.name = "Efficient [aspell.name]"
|
||||
if(2)
|
||||
user << "<span class='notice'>You have further improved [aspell.name] into Quickened [aspell.name].</span>"
|
||||
to_chat(user, "<span class='notice'>You have further improved [aspell.name] into Quickened [aspell.name].</span>")
|
||||
aspell.name = "Quickened [aspell.name]"
|
||||
if(3)
|
||||
user << "<span class='notice'>You have further improved [aspell.name] into Free [aspell.name].</span>"
|
||||
to_chat(user, "<span class='notice'>You have further improved [aspell.name] into Free [aspell.name].</span>")
|
||||
aspell.name = "Free [aspell.name]"
|
||||
if(4)
|
||||
user << "<span class='notice'>You have further improved [aspell.name] into Instant [aspell.name].</span>"
|
||||
to_chat(user, "<span class='notice'>You have further improved [aspell.name] into Instant [aspell.name].</span>")
|
||||
aspell.name = "Instant [aspell.name]"
|
||||
if(aspell.spell_level >= aspell.level_max)
|
||||
user << "<span class='notice'>This spell cannot be strengthened any further.</span>"
|
||||
to_chat(user, "<span class='notice'>This spell cannot be strengthened any further.</span>")
|
||||
return 1
|
||||
//No same spell found - just learn it
|
||||
feedback_add_details("wizard_spell_learned",log_name)
|
||||
user.mind.AddSpell(S)
|
||||
user << "<span class='notice'>You have learned [S.name].</span>"
|
||||
to_chat(user, "<span class='notice'>You have learned [S.name].</span>")
|
||||
return 1
|
||||
|
||||
/datum/spellbook_entry/proc/CanRefund(mob/living/carbon/human/user,obj/item/weapon/spellbook/book)
|
||||
@@ -78,7 +78,7 @@
|
||||
/datum/spellbook_entry/proc/Refund(mob/living/carbon/human/user,obj/item/weapon/spellbook/book) //return point value or -1 for failure
|
||||
var/area/wizard_station/A = locate()
|
||||
if(!(user in A.contents))
|
||||
user << "<span clas=='warning'>You can only refund spells at the wizard lair</span>"
|
||||
to_chat(user, "<span clas=='warning'>You can only refund spells at the wizard lair</span>")
|
||||
return -1
|
||||
if(!S)
|
||||
S = new spell_type()
|
||||
@@ -277,6 +277,14 @@
|
||||
category = "Defensive"
|
||||
cost = 1
|
||||
|
||||
/datum/spellbook_entry/the_traps
|
||||
name = "The Traps!"
|
||||
spell_type = /obj/effect/proc_holder/spell/aoe_turf/conjure/the_traps
|
||||
log_name = "TT"
|
||||
category = "Offensive"
|
||||
cost = 1
|
||||
|
||||
|
||||
/datum/spellbook_entry/item
|
||||
name = "Buy Item"
|
||||
refundable = 0
|
||||
@@ -493,6 +501,25 @@
|
||||
dat += "<b>Already cast!</b><br>"
|
||||
return dat
|
||||
|
||||
/datum/spellbook_entry/summon/ghosts
|
||||
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 abilties to frustrate you."
|
||||
log_name = "SGH"
|
||||
|
||||
/datum/spellbook_entry/summon/ghosts/IsAvailible()
|
||||
if(!ticker.mode)
|
||||
return FALSE
|
||||
else
|
||||
return TRUE
|
||||
|
||||
/datum/spellbook_entry/summon/ghosts/Buy(mob/living/carbon/human/user, obj/item/weapon/spellbook/book)
|
||||
feedback_add_details("wizard_spell_learned", log_name)
|
||||
new /datum/round_event/wizard/ghost()
|
||||
active = TRUE
|
||||
to_chat(user, "<span class='notice'>You have cast summon ghosts!</span>")
|
||||
playsound(get_turf(user), 'sound/effects/ghost2.ogg', 50, 1)
|
||||
return TRUE
|
||||
|
||||
/datum/spellbook_entry/summon/guns
|
||||
name = "Summon Guns"
|
||||
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!"
|
||||
@@ -508,7 +535,7 @@
|
||||
rightandwrong(0, user, 25)
|
||||
active = 1
|
||||
playsound(get_turf(user), 'sound/magic/CastSummon.ogg', 50, 1)
|
||||
user << "<span class='notice'>You have cast summon guns!</span>"
|
||||
to_chat(user, "<span class='notice'>You have cast summon guns!</span>")
|
||||
return 1
|
||||
|
||||
/datum/spellbook_entry/summon/magic
|
||||
@@ -526,7 +553,7 @@
|
||||
rightandwrong(1, user, 25)
|
||||
active = 1
|
||||
playsound(get_turf(user), 'sound/magic/CastSummon.ogg', 50, 1)
|
||||
user << "<span class='notice'>You have cast summon magic!</span>"
|
||||
to_chat(user, "<span class='notice'>You have cast summon magic!</span>")
|
||||
return 1
|
||||
|
||||
/datum/spellbook_entry/summon/events
|
||||
@@ -546,7 +573,7 @@
|
||||
summonevents()
|
||||
times++
|
||||
playsound(get_turf(user), 'sound/magic/CastSummon.ogg', 50, 1)
|
||||
user << "<span class='notice'>You have cast summon events.</span>"
|
||||
to_chat(user, "<span class='notice'>You have cast summon events.</span>")
|
||||
return 1
|
||||
|
||||
/datum/spellbook_entry/summon/events/GetInfo()
|
||||
@@ -574,9 +601,9 @@
|
||||
/obj/item/weapon/spellbook/examine(mob/user)
|
||||
..()
|
||||
if(owner)
|
||||
user << "There is a small signature on the front cover: \"[owner]\"."
|
||||
to_chat(user, "There is a small signature on the front cover: \"[owner]\".")
|
||||
else
|
||||
user << "It appears to have no author."
|
||||
to_chat(user, "It appears to have no author.")
|
||||
|
||||
/obj/item/weapon/spellbook/Initialize()
|
||||
..()
|
||||
@@ -594,16 +621,16 @@
|
||||
if(istype(O, /obj/item/weapon/antag_spawner/contract))
|
||||
var/obj/item/weapon/antag_spawner/contract/contract = O
|
||||
if(contract.used)
|
||||
user << "<span class='warning'>The contract has been used, you can't get your points back now!</span>"
|
||||
to_chat(user, "<span class='warning'>The contract has been used, you can't get your points back now!</span>")
|
||||
else
|
||||
user << "<span class='notice'>You feed the contract back into the spellbook, refunding your points.</span>"
|
||||
to_chat(user, "<span class='notice'>You feed the contract back into the spellbook, refunding your points.</span>")
|
||||
uses++
|
||||
for(var/datum/spellbook_entry/item/contract/CT in entries)
|
||||
if(!isnull(CT.limit))
|
||||
CT.limit++
|
||||
qdel(O)
|
||||
else if(istype(O, /obj/item/weapon/antag_spawner/slaughter_demon))
|
||||
user << "<span class='notice'>On second thought, maybe summoning a demon is a bad idea. You refund your points.</span>"
|
||||
to_chat(user, "<span class='notice'>On second thought, maybe summoning a demon is a bad idea. You refund your points.</span>")
|
||||
uses++
|
||||
for(var/datum/spellbook_entry/item/bloodbottle/BB in entries)
|
||||
if(!isnull(BB.limit))
|
||||
@@ -662,11 +689,11 @@
|
||||
|
||||
/obj/item/weapon/spellbook/attack_self(mob/user)
|
||||
if(!owner)
|
||||
user << "<span class='notice'>You bind the spellbook to yourself.</span>"
|
||||
to_chat(user, "<span class='notice'>You bind the spellbook to yourself.</span>")
|
||||
owner = user
|
||||
return
|
||||
if(user != owner)
|
||||
user << "<span class='warning'>The [name] does not recognize you as its owner and refuses to open!</span>"
|
||||
to_chat(user, "<span class='warning'>The [name] does not recognize you as its owner and refuses to open!</span>")
|
||||
return
|
||||
user.set_machine(src)
|
||||
var/dat = ""
|
||||
@@ -773,8 +800,8 @@
|
||||
recoil(user)
|
||||
else
|
||||
user.mind.AddSpell(S)
|
||||
user <<"<span class='notice'>you rapidly read through the arcane book. Suddenly you realize you understand [spellname]!</span>"
|
||||
user.attack_log += text("\[[time_stamp()]\] <font color='orange'>[user.real_name] ([user.ckey]) learned the spell [spellname] ([S]).</font>")
|
||||
user <<"<span class='notice'>You rapidly read through the arcane book. Suddenly you realize you understand [spellname]!</span>"
|
||||
user.log_message("<font color='orange'>learned the spell [spellname] ([S]).</font>", INDIVIDUAL_ATTACK_LOG)
|
||||
onlearned(user)
|
||||
|
||||
/obj/item/weapon/spellbook/oneuse/proc/recoil(mob/user)
|
||||
|
||||
Reference in New Issue
Block a user