diff --git a/code/datums/configuration.dm b/code/datums/configuration.dm
index d8487b42343..1d40a072495 100644
--- a/code/datums/configuration.dm
+++ b/code/datums/configuration.dm
@@ -23,6 +23,7 @@
var/vote_no_dead = 0 // dead people can't vote (tbi)
var/enable_authentication = 0 // goon authentication
var/del_new_on_log = 1 // del's new players if they log before they spawn in
+ var/feature_object_spell_system = 0 //spawns a spellbook which gives object-type spells instead of verb-type spells for the wizard
var/list/mode_names = list()
var/list/modes = list() // allowed modes
@@ -174,6 +175,9 @@
if ("dont_del_newmob")
config.del_new_on_log = 0
+ if ("feature_object_spell_system")
+ config.feature_object_spell_system = 1
+
if ("probability")
var/prob_pos = findtext(value, " ")
var/prob_name = null
diff --git a/code/datums/spell.dm b/code/datums/spell.dm
index 365e246d5c5..23f1001de6f 100644
--- a/code/datums/spell.dm
+++ b/code/datums/spell.dm
@@ -1,29 +1,40 @@
-var/list/spells = list(/obj/spell/blind,/obj/spell/blink,/obj/spell/conjure,/obj/spell/disintegrate,/obj/spell/ethereal_jaunt,/obj/spell/fireball,/obj/spell/forcewall,/obj/spell/knock,/obj/spell/magic_missile,/obj/spell/mutate,/obj/spell/teleport) //needed for the badmin verb for now
+var/list/spells = list(/obj/spell/blind,/obj/spell/blink,/obj/spell/conjure,/obj/spell/disable_tech,/obj/spell/disintegrate,/obj/spell/ethereal_jaunt,/obj/spell/fireball,/obj/spell/forcewall,/obj/spell/knock,/obj/spell/magic_missile,/obj/spell/mind_transfer,/obj/spell/mutate,/obj/spell/smoke,/obj/spell/teleport) //needed for the badmin verb for now
/obj/spell
name = "Spell"
desc = "A wizard spell"
var/school = "evocation" //not relevant at now, but may be important later if there are changes to how spells work. the ones I used for now will probably be changed... maybe spell presets? lacking flexibility but with some other benefit?
- var/recharge = 100 //recharge time in deciseconds
+ var/charge_type = "recharge" //can be recharge or charges, see charge_max and charge_counter descriptions
+ var/charge_max = 100 //recharge time in deciseconds if charge_type = "recharge" or starting charges if charge_type = "charges"
+ var/charge_counter = 0 //can only cast spells if it equals recharge, ++ each decisecond if charge_type = "recharge" or -- each cast if charge_type = "charges"
var/clothes_req = 1 //see if it requires clothes
var/stat_allowed = 0 //see if it requires being conscious
var/invocation = "HURP DURP" //what is uttered when the wizard casts the spell
var/invocation_type = "none" //can be none, whisper and shout
var/range = 7 //the range of the spell
- var/cast = 0 //the only way I could think of making it temporarily disable
var/message = "derp herp" //whatever it says to the guy affected by it. not always needed
-/obj/spell/proc/cast_check() //checks if the spell can be cast based on its settings, plus handles chanting and recharge
+/obj/spell/proc/cast_check() //checks if the spell can be cast based on its settings
+
if(!(src in usr.spell_list))
usr << "\red You shouldn't have this spell! Something's wrong."
return 0
- if(cast)
- usr << "[name] is still recharging."
- return 0
+
+ switch(charge_type)
+ if("recharge")
+ if(charge_counter != charge_max)
+ usr << "[name] is still recharging."
+ return 0
+ if("charges")
+ if(!charge_counter)
+ usr << "[name] has no charges left."
+ return 0
+
if(usr.stat && !stat_allowed)
usr << "Not when you're incapacitated."
return 0
+
if(clothes_req) //clothes check
if(!istype(usr:wear_suit, /obj/item/clothing/suit/wizrobe))
usr << "I don't feel strong enough without my robe."
@@ -37,14 +48,7 @@ var/list/spells = list(/obj/spell/blind,/obj/spell/blink,/obj/spell/conjure,/obj
return 1
-/obj/spell/proc/invocation() //spelling the spell out and setting it on recharge
-
- src.cast = 1
- var/old_name = src.name
- src.name += " (cast)"
- spawn(recharge)
- src.cast = 0
- src.name = old_name
+/obj/spell/proc/invocation() //spelling the spell out and setting it on recharge/reducing charges amount
switch(invocation_type)
if("shout")
@@ -54,4 +58,20 @@ var/list/spells = list(/obj/spell/blind,/obj/spell/blink,/obj/spell/conjure,/obj
else
playsound(usr.loc, pick('vs_chant_conj_hf.wav','vs_chant_conj_lf.wav','vs_chant_ench_hf.wav','vs_chant_ench_lf.wav','vs_chant_evoc_hf.wav','vs_chant_evoc_lf.wav','vs_chant_illu_hf.wav','vs_chant_illu_lf.wav','vs_chant_necr_hf.wav','vs_chant_necr_lf.wav'), 100, 1)
if("whisper")
- usr.whisper(invocation)
\ No newline at end of file
+ usr.whisper(invocation)
+
+ switch(charge_type)
+ if("recharge")
+ charge_counter = 0
+
+ spawn(0)
+ while(charge_counter < charge_max)
+ sleep(1)
+ charge_counter++
+ if("charges")
+ charge_counter--
+
+/obj/spell/New()
+ ..()
+
+ charge_counter = charge_max
\ No newline at end of file
diff --git a/code/datums/spells/blind.dm b/code/datums/spells/blind.dm
index 660d42e7be4..000cb4ec2d9 100644
--- a/code/datums/spells/blind.dm
+++ b/code/datums/spells/blind.dm
@@ -3,7 +3,7 @@
desc = "This spell temporarly blinds a single person and does not require wizard garb."
school = "transmutation"
- recharge = 300
+ charge_max = 300
clothes_req = 0
invocation = "STI KALY"
invocation_type = "whisper"
@@ -21,6 +21,9 @@
var/mob/M = input("Choose whom to blind", "ABRAKADABRA") as mob in oview(usr,range)
+ if(!M)
+ return
+
invocation()
var/obj/overlay/B = new /obj/overlay( M.loc )
diff --git a/code/datums/spells/blink.dm b/code/datums/spells/blink.dm
index ae8f524ad87..b588422acfd 100644
--- a/code/datums/spells/blink.dm
+++ b/code/datums/spells/blink.dm
@@ -3,7 +3,7 @@
desc = "This spell randomly teleports you a short distance."
school = "abjuration"
- recharge = 20
+ charge_max = 20
clothes_req = 1
invocation = "none"
invocation_type = "none"
@@ -25,6 +25,9 @@
else
M = usr
+ if(!M)
+ return
+
invocation()
var/list/turfs = new/list()
diff --git a/code/datums/spells/body_swap.dm b/code/datums/spells/body_swap.dm
deleted file mode 100644
index 57bce81d028..00000000000
--- a/code/datums/spells/body_swap.dm
+++ /dev/null
@@ -1 +0,0 @@
-//gotta test the framework in its fullest first, since it messes with it
\ No newline at end of file
diff --git a/code/datums/spells/conjure.dm b/code/datums/spells/conjure.dm
index 116f89336df..bd8d365e767 100644
--- a/code/datums/spells/conjure.dm
+++ b/code/datums/spells/conjure.dm
@@ -3,7 +3,7 @@
desc = "This spell conjures an elite carp."
school = "conjuration"
- recharge = 1200
+ charge_max = 1200
clothes_req = 1
invocation = "NOUK FHUNMM SACP RISSKA"
invocation_type = "shout"
diff --git a/code/datums/spells/disable_tech.dm b/code/datums/spells/disable_tech.dm
index 9f58f7c509e..956115ddd24 100644
--- a/code/datums/spells/disable_tech.dm
+++ b/code/datums/spells/disable_tech.dm
@@ -1,8 +1,8 @@
/obj/spell/disable_tech
name = "Disable Tech"
desc = "This spell disables all weapons, cameras and most other technology in range and doesn't require wizard garb."
- recharge = 400
- clothes_req = 0
+ charge_max = 400
+ clothes_req = 1
invocation = "NEC CANTIO"
invocation_type = "whisper"
range = 7
diff --git a/code/datums/spells/disintegrate.dm b/code/datums/spells/disintegrate.dm
index 26fb628c19b..0ca8805f785 100644
--- a/code/datums/spells/disintegrate.dm
+++ b/code/datums/spells/disintegrate.dm
@@ -3,7 +3,7 @@
desc = "This spell instantly kills somebody adjacent to you with the vilest of magick."
school = "evocation"
- recharge = 600
+ charge_max = 600
clothes_req = 1
invocation = "EI NATH"
invocation_type = "shout"
@@ -21,6 +21,9 @@
var/mob/M = input("Choose whom to [kill_type]", "ABRAKADABRA") as mob in oview(usr,range)
+ if(!M)
+ return
+
invocation()
if(sparks_spread)
diff --git a/code/datums/spells/ethereal_jaunt.dm b/code/datums/spells/ethereal_jaunt.dm
index 8ccd652c4cb..b442bf17e52 100644
--- a/code/datums/spells/ethereal_jaunt.dm
+++ b/code/datums/spells/ethereal_jaunt.dm
@@ -3,7 +3,7 @@
desc = "This spell creates your ethereal form, temporarily making you invisible and able to pass through walls."
school = "transmutation"
- recharge = 300
+ charge_max = 300
clothes_req = 1
invocation = "none"
invocation_type = "none"
@@ -23,6 +23,9 @@
else
M = usr
+ if(!M)
+ return
+
invocation()
spawn(0)
diff --git a/code/datums/spells/fireball.dm b/code/datums/spells/fireball.dm
index 1b6319a0861..0f6f63d077c 100644
--- a/code/datums/spells/fireball.dm
+++ b/code/datums/spells/fireball.dm
@@ -3,7 +3,7 @@
desc = "This spell fires a fireball at a target and does not require wizard garb."
school = "evocation"
- recharge = 200
+ charge_max = 200
clothes_req = 0
invocation = "ONI SOMA"
invocation_type = "shout"
@@ -21,7 +21,10 @@
if(!cast_check())
return
- var/mob/M = input("Choose whom to fireball", "ABRAKADABRA") as mob|obj|turf in oview(usr,range)
+ var/mob/M = input("Choose whom to fireball", "ABRAKADABRA") as mob in oview(usr,range)
+
+ if(!M)
+ return
invocation()
diff --git a/code/datums/spells/forcewall.dm b/code/datums/spells/forcewall.dm
index be9486ceee6..0da4c36e75d 100644
--- a/code/datums/spells/forcewall.dm
+++ b/code/datums/spells/forcewall.dm
@@ -3,7 +3,7 @@
desc = "This spell creates an unbreakable wall that lasts for 30 seconds and does not need wizard garb."
school = "transmutation"
- recharge = 100
+ charge_max = 100
clothes_req = 0
invocation = "TARCOL MINTI ZHERI"
invocation_type = "whisper"
diff --git a/code/datums/spells/knock.dm b/code/datums/spells/knock.dm
index 6c88667470a..499ad948928 100644
--- a/code/datums/spells/knock.dm
+++ b/code/datums/spells/knock.dm
@@ -3,7 +3,7 @@
desc = "This spell opens nearby doors and does not require wizard garb."
school = "transmutation"
- recharge = 100
+ charge_max = 100
clothes_req = 0
invocation = "AULIE OXIN FIERA"
invocation_type = "whisper"
diff --git a/code/datums/spells/magic_missile.dm b/code/datums/spells/magic_missile.dm
index e528671d325..ada7698c00a 100644
--- a/code/datums/spells/magic_missile.dm
+++ b/code/datums/spells/magic_missile.dm
@@ -1,9 +1,9 @@
/obj/spell/magic_missile
- name = "Magic missile"
+ name = "Magic Missile"
desc = "This spell fires several, slow moving, magic projectiles at nearby targets."
school = "evocation"
- recharge = 100
+ charge_max = 100
clothes_req = 1
invocation = "FORTI GY AMA"
invocation_type = "shout"
diff --git a/code/datums/spells/mutate.dm b/code/datums/spells/mutate.dm
index 8fc2d57cb07..42c7ad78861 100644
--- a/code/datums/spells/mutate.dm
+++ b/code/datums/spells/mutate.dm
@@ -3,7 +3,7 @@
desc = "This spell causes you to turn into a hulk and gain telekinesis for a short while."
school = "transmutation"
- recharge = 400
+ charge_max = 400
clothes_req = 1
invocation = "BIRUZ BENNAR"
invocation_type = "shout"
@@ -25,6 +25,9 @@
else
M = usr
+ if(!M)
+ return
+
invocation()
M << text("[message]")
diff --git a/code/datums/spells/teleport.dm b/code/datums/spells/teleport.dm
index db68b3b6ec1..22f4f93207f 100644
--- a/code/datums/spells/teleport.dm
+++ b/code/datums/spells/teleport.dm
@@ -3,7 +3,7 @@
desc = "This spell teleports you to a type of area of your selection."
school = "abjuration"
- recharge = 600
+ charge_max = 600
clothes_req = 1
invocation = "SCYAR NILA"
invocation_type = "none" //hardcoded into the spell due to its specifics
@@ -23,6 +23,9 @@
else
M = usr
+ if(!M)
+ return
+
invocation()
var/A
diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm
index de8c322c1f0..12170156c97 100644
--- a/code/defines/obj/weapon.dm
+++ b/code/defines/obj/weapon.dm
@@ -1217,6 +1217,11 @@ Total SMES charging rate should not exceed total power generation rate, or an ov
flags = FPRINT | TABLEPASS
var/uses = 4.0
var/temp = null
+ var/spell_type = "verb"
+ var/max_uses = 5
+
+/obj/item/weapon/spellbook/object_type_spells //used for giving out object spells as opposed to verb spells
+ spell_type = "object"
/obj/item/weapon/staff
name = "wizards staff"
diff --git a/code/game/gamemodes/wizard/wizard.dm b/code/game/gamemodes/wizard/wizard.dm
index 38f105d4a39..96d746e6b02 100644
--- a/code/game/gamemodes/wizard/wizard.dm
+++ b/code/game/gamemodes/wizard/wizard.dm
@@ -189,7 +189,10 @@
wizard_mob.equip_if_possible(new /obj/item/weapon/storage/backpack(wizard_mob), wizard_mob.slot_back)
// wizard_mob.equip_if_possible(new /obj/item/weapon/scrying_gem(wizard_mob), wizard_mob.slot_l_store) For scrying gem.
wizard_mob.equip_if_possible(new /obj/item/weapon/teleportation_scroll(wizard_mob), wizard_mob.slot_r_store)
- wizard_mob.equip_if_possible(new /obj/item/weapon/spellbook(wizard_mob), wizard_mob.slot_r_hand)
+ if(config.feature_object_spell_system) //if it's turned on (in config.txt), spawns an object spell spellbook
+ wizard_mob.equip_if_possible(new /obj/item/weapon/spellbook/object_type_spells(wizard_mob), wizard_mob.slot_r_hand)
+ else
+ wizard_mob.equip_if_possible(new /obj/item/weapon/spellbook(wizard_mob), wizard_mob.slot_r_hand)
wizard_mob << "You will find a list of available spells in your spell book. Choose your magic arsenal carefully."
wizard_mob << "In your pockets you will find two more important, magical artifacts. Use them as needed."
@@ -319,95 +322,124 @@
return 1
if ((usr.contents.Find(src) || (in_range(src,usr) && istype(src.loc, /turf))))
usr.machine = src
- switch(href_list["spell_choice"])
- if ("1")
- if (src.uses >= 1)
- src.uses -= 1
- usr.verbs += /client/proc/magicmissile
- usr.mind.special_verbs += /client/proc/magicmissile
- src.temp = "This spell fires several, slow moving, magic projectiles at nearby targets. If they hit a target, it is paralyzed and takes minor damage."
- if ("2")
- if (src.uses >= 1)
- src.uses -= 1
- usr.verbs += /client/proc/fireball
- usr.mind.special_verbs += /client/proc/fireball
- src.temp = "This spell fires a fireball at a target and does not require wizard garb. Be careful not to fire it at people that are standing next to you."
- if ("3")
- if (src.uses >= 1)
- src.uses -= 1
- usr.verbs += /mob/proc/kill
- usr.mind.special_verbs += /mob/proc/kill
- src.temp = "This spell instantly kills somebody adjacent to you with the vilest of magick. It has a long cooldown."
- if ("4")
- if (src.uses >= 1)
- src.uses -= 1
- usr.verbs += /mob/proc/tech
- usr.mind.special_verbs += /mob/proc/tech
- src.temp = "This spell disables all weapons, cameras and most other technology in range."
- if ("5")
- if (src.uses >= 1)
- src.uses -= 1
- usr.verbs += /client/proc/smokecloud
- usr.mind.special_verbs += /client/proc/smokecloud
- src.temp = "This spell spawns a cloud of choking smoke at your location and does not require wizard garb."
- if ("6")
- if (src.uses >= 1)
- src.uses -= 1
- usr.verbs += /client/proc/blind
- usr.mind.special_verbs += /client/proc/blind
- src.temp = "This spell temporarly blinds a single person and does not require wizard garb."
- if ("7")
- if (src.uses >= 1)
- src.uses -= 1
- usr.verbs += /mob/proc/swap
- src.temp = "This spell allows the user to switch bodies with a target. Careful to not lose your memory in the process."
- if ("8")
- if (src.uses >= 1)
- src.uses -= 1
- usr.verbs += /client/proc/forcewall
- usr.mind.special_verbs += /client/proc/forcewall
- src.temp = "This spell creates an unbreakable wall that lasts for 30 seconds and does not need wizard garb."
- if ("9")
- if (src.uses >= 1)
- src.uses -= 1
- usr.verbs += /client/proc/blink
- usr.mind.special_verbs += /client/proc/blink
- src.temp = "This spell randomly teleports you a short distance. Useful for evasion or getting into areas if you have patience."
- if ("10")
- if (src.uses >= 1)
- src.uses -= 1
- usr.verbs += /mob/proc/teleport
- usr.mind.special_verbs += /mob/proc/teleport
- src.temp = "This spell teleports you to a type of area of your selection. Very useful if you are in danger, but has a decent cooldown, and is unpredictable."
- if ("11")
- if (src.uses >= 1)
- src.uses -= 1
- usr.verbs += /client/proc/mutate
- usr.mind.special_verbs += /client/proc/mutate
- src.temp = "This spell causes you to turn into a hulk and gain telekinesis for a short while."
- if ("12")
- if (src.uses >= 1)
- src.uses -= 1
- usr.verbs += /client/proc/jaunt
- usr.mind.special_verbs += /client/proc/jaunt
- src.temp = "This spell creates your ethereal form, temporarily making you invisible and able to pass through walls."
- if ("13")
- if (src.uses >= 1)
- src.uses -= 1
- usr.verbs += /client/proc/knock
- usr.mind.special_verbs += /client/proc/knock
- src.temp = "This spell opens nearby doors and does not require wizard garb."
- if ("14")
+ if(href_list["spell_choice"])
+ if(src.uses >= 1 && href_list["spell_choice"] != 14)
+ src.uses--
+ if(spell_type == "verb")
+ switch(href_list["spell_choice"])
+ if ("1")
+ usr.verbs += /client/proc/magicmissile
+ usr.mind.special_verbs += /client/proc/magicmissile
+ src.temp = "This spell fires several, slow moving, magic projectiles at nearby targets. If they hit a target, it is paralyzed and takes minor damage."
+ if ("2")
+ usr.verbs += /client/proc/fireball
+ usr.mind.special_verbs += /client/proc/fireball
+ src.temp = "This spell fires a fireball at a target and does not require wizard garb. Be careful not to fire it at people that are standing next to you."
+ if ("3")
+ usr.verbs += /mob/proc/kill
+ usr.mind.special_verbs += /mob/proc/kill
+ src.temp = "This spell instantly kills somebody adjacent to you with the vilest of magick. It has a long cooldown."
+ if ("4")
+ usr.verbs += /mob/proc/tech
+ usr.mind.special_verbs += /mob/proc/tech
+ src.temp = "This spell disables all weapons, cameras and most other technology in range."
+ if ("5")
+ usr.verbs += /client/proc/smokecloud
+ usr.mind.special_verbs += /client/proc/smokecloud
+ src.temp = "This spell spawns a cloud of choking smoke at your location and does not require wizard garb."
+ if ("6")
+ usr.verbs += /client/proc/blind
+ usr.mind.special_verbs += /client/proc/blind
+ src.temp = "This spell temporarly blinds a single person and does not require wizard garb."
+ if ("7")
+ usr.verbs += /mob/proc/swap
+ src.temp = "This spell allows the user to switch bodies with a target. Careful to not lose your memory in the process."
+ if ("8")
+ usr.verbs += /client/proc/forcewall
+ usr.mind.special_verbs += /client/proc/forcewall
+ src.temp = "This spell creates an unbreakable wall that lasts for 30 seconds and does not need wizard garb."
+ if ("9")
+ usr.verbs += /client/proc/blink
+ usr.mind.special_verbs += /client/proc/blink
+ src.temp = "This spell randomly teleports you a short distance. Useful for evasion or getting into areas if you have patience."
+ if ("10")
+ usr.verbs += /mob/proc/teleport
+ usr.mind.special_verbs += /mob/proc/teleport
+ src.temp = "This spell teleports you to a type of area of your selection. Very useful if you are in danger, but has a decent cooldown, and is unpredictable."
+ if ("11")
+ usr.verbs += /client/proc/mutate
+ usr.mind.special_verbs += /client/proc/mutate
+ src.temp = "This spell causes you to turn into a hulk and gain telekinesis for a short while."
+ if ("12")
+ usr.verbs += /client/proc/jaunt
+ usr.mind.special_verbs += /client/proc/jaunt
+ src.temp = "This spell creates your ethereal form, temporarily making you invisible and able to pass through walls."
+ if ("13")
+ usr.verbs += /client/proc/knock
+ usr.mind.special_verbs += /client/proc/knock
+ src.temp = "This spell opens nearby doors and does not require wizard garb."
+ else if(spell_type == "object")
+ var/list/available_spells = list("Magic Missile","Fireball","Disintegrate","Disable Tech","Smoke","Blind","Mind Transfer","Forcewall","Blink","Teleport","Mutate","Ethereal Jaunt","Knock")
+ world << available_spells[text2num(href_list["spell_choice"])] //DEBUG
+ var/already_knows = 0
+ for(var/obj/spell/aspell in usr.spell_list)
+ if(available_spells[text2num(href_list["spell_choice"])] == aspell.name)
+ already_knows = 1
+ src.temp = "You already know that spell."
+ src.uses++
+ break
+ if(!already_knows)
+ switch(href_list["spell_choice"])
+ if ("1")
+ usr.spell_list += new /obj/spell/magic_missile(usr)
+ src.temp = "This spell fires several, slow moving, magic projectiles at nearby targets. If they hit a target, it is paralyzed and takes minor damage."
+ if ("2")
+ usr.spell_list += new /obj/spell/fireball(usr)
+ src.temp = "This spell fires a fireball at a target and does not require wizard garb. Be careful not to fire it at people that are standing next to you."
+ if ("3")
+ usr.spell_list += new /obj/spell/disintegrate(usr)
+ src.temp = "This spell instantly kills somebody adjacent to you with the vilest of magick. It has a long cooldown."
+ if ("4")
+ usr.spell_list += new /obj/spell/disable_tech(usr)
+ src.temp = "This spell disables all weapons, cameras and most other technology in range."
+ if ("5")
+ usr.spell_list += new /obj/spell/smoke(usr)
+ src.temp = "This spell spawns a cloud of choking smoke at your location and does not require wizard garb."
+ if ("6")
+ usr.spell_list += new /obj/spell/blind(usr)
+ src.temp = "This spell temporarly blinds a single person and does not require wizard garb."
+ if ("7")
+ usr.spell_list += new /obj/spell/mind_transfer(usr)
+ src.temp = "This spell allows the user to switch bodies with a target. Careful to not lose your memory in the process."
+ if ("8")
+ usr.spell_list += new /obj/spell/forcewall(usr)
+ src.temp = "This spell creates an unbreakable wall that lasts for 30 seconds and does not need wizard garb."
+ if ("9")
+ usr.spell_list += new /obj/spell/blink(usr)
+ src.temp = "This spell randomly teleports you a short distance. Useful for evasion or getting into areas if you have patience."
+ if ("10")
+ usr.spell_list += new /obj/spell/teleport(usr)
+ src.temp = "This spell teleports you to a type of area of your selection. Very useful if you are in danger, but has a decent cooldown, and is unpredictable."
+ if ("11")
+ usr.spell_list += new /obj/spell/mutate(usr)
+ src.temp = "This spell causes you to turn into a hulk and gain telekinesis for a short while."
+ if ("12")
+ usr.spell_list += new /obj/spell/ethereal_jaunt(usr)
+ src.temp = "This spell creates your ethereal form, temporarily making you invisible and able to pass through walls."
+ if ("13")
+ usr.spell_list += new /obj/spell/knock(usr)
+ src.temp = "This spell opens nearby doors and does not require wizard garb."
+ if (href_list["spell_choice"] == "14")
var/area/wizard_station/A = locate()
if(usr in A.contents)
- src.uses = 5
- usr.spellremove(usr)
+ src.uses = src.max_uses
+ usr.spellremove(usr,spell_type)
src.temp = "All spells have been removed. You may now memorize a new set of spells."
else
src.temp = "You may only re-memorize spells whilst located inside the wizard sanctuary."
- else
- if (href_list["temp"])
- src.temp = null
+ else
+ if (href_list["temp"])
+ src.temp = null
if (istype(src.loc, /mob))
attack_self(src.loc)
else
@@ -593,34 +625,38 @@
//OTHER PROCS
//To batch-remove wizard spells. Linked to mind.dm.
-/mob/proc/spellremove(var/mob/M as mob)
+/mob/proc/spellremove(var/mob/M as mob, var/spell_type = "verb")
// ..()
- if(M.verbs.len)
- M.verbs -= /client/proc/jaunt
- M.verbs -= /client/proc/magicmissile
- M.verbs -= /client/proc/fireball
- M.verbs -= /mob/proc/kill
- M.verbs -= /mob/proc/tech
- M.verbs -= /client/proc/smokecloud
- M.verbs -= /client/proc/blind
- M.verbs -= /client/proc/forcewall
- M.verbs -= /mob/proc/teleport
- M.verbs -= /client/proc/mutate
- M.verbs -= /client/proc/knock
- M.verbs -= /mob/proc/swap
- if(M.mind && M.mind.special_verbs.len)
- M.mind.special_verbs -= /client/proc/jaunt
- M.mind.special_verbs -= /client/proc/magicmissile
- M.mind.special_verbs -= /client/proc/fireball
- M.mind.special_verbs -= /mob/proc/kill
- M.mind.special_verbs -= /mob/proc/tech
- M.mind.special_verbs -= /client/proc/smokecloud
- M.mind.special_verbs -= /client/proc/blind
- M.mind.special_verbs -= /client/proc/forcewall
- M.mind.special_verbs -= /mob/proc/teleport
- M.mind.special_verbs -= /client/proc/mutate
- M.mind.special_verbs -= /client/proc/knock
- M.mind.special_verbs -= /mob/proc/swap
+ if(spell_type == "verb")
+ if(M.verbs.len)
+ M.verbs -= /client/proc/jaunt
+ M.verbs -= /client/proc/magicmissile
+ M.verbs -= /client/proc/fireball
+ M.verbs -= /mob/proc/kill
+ M.verbs -= /mob/proc/tech
+ M.verbs -= /client/proc/smokecloud
+ M.verbs -= /client/proc/blind
+ M.verbs -= /client/proc/forcewall
+ M.verbs -= /mob/proc/teleport
+ M.verbs -= /client/proc/mutate
+ M.verbs -= /client/proc/knock
+ M.verbs -= /mob/proc/swap
+ if(M.mind && M.mind.special_verbs.len)
+ M.mind.special_verbs -= /client/proc/jaunt
+ M.mind.special_verbs -= /client/proc/magicmissile
+ M.mind.special_verbs -= /client/proc/fireball
+ M.mind.special_verbs -= /mob/proc/kill
+ M.mind.special_verbs -= /mob/proc/tech
+ M.mind.special_verbs -= /client/proc/smokecloud
+ M.mind.special_verbs -= /client/proc/blind
+ M.mind.special_verbs -= /client/proc/forcewall
+ M.mind.special_verbs -= /mob/proc/teleport
+ M.mind.special_verbs -= /client/proc/mutate
+ M.mind.special_verbs -= /client/proc/knock
+ M.mind.special_verbs -= /mob/proc/swap
+ else if(spell_type == "object")
+ for(var/obj/spell/spell_to_remove in src.spell_list)
+ src.spell_list -= spell_to_remove
/*Checks if the wizard can cast spells.
Made a proc so this is not repeated 14 (or more) times.*/
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index 527065c0398..d918ff2e745 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -2188,7 +2188,11 @@ note dizziness decrements automatically in the mob's Life() proc.
if (src.spell_list.len)
for(var/obj/spell/S in src.spell_list)
- statpanel("Spells","",S)
+ switch(S.charge_type)
+ if("recharge")
+ statpanel("Spells","[S.charge_counter/10.0]/[S.charge_max/10]",S)
+ if("charges")
+ statpanel("Spells","[S.charge_counter]/[S.charge_max]",S)
/client/proc/station_explosion_cinematic(var/derp)
if(src.mob)
diff --git a/config/config.txt b/config/config.txt
index 8dabbad63e2..dad5fef00d6 100644
--- a/config/config.txt
+++ b/config/config.txt
@@ -81,3 +81,7 @@ GUEST_JOBBAN 1
#Ban appeals URL - usually for a forum or wherever people should go to contact your admins.
#BANAPPEALS http://justanotherday.example.com
+#In-game features
+#spawns a spellbook which gives object-type spells instead of verb-type spells for the wizard
+#FEATURE_OBJECT_SPELL_SYSTEM
+
diff --git a/icons/changelog.html b/icons/changelog.html
index 4499ca11fd5..56fea5bf60d 100644
--- a/icons/changelog.html
+++ b/icons/changelog.html
@@ -45,177 +45,177 @@ Stuff which is in development and not yet visible to players or just code relate
(is. code improvements for expandability, etc.) should not be listed here. They
should be listed in the changelog upon commit tho. Thanks. -->
-2. April 2011, international children's book day
+2. April 2011, international children's book day
Microwave updated:
- - New look for the mining cyborg, jackhammer, kitchen sink.
- - Singularity is now enclosed again (still airless tho).
- - Wizard has a new starting area.
- - Chemists and CMOs now have their own jumpsuits.
+ - New look for the mining cyborg, jackhammer, kitchen sink.
+ - Singularity is now enclosed again (still airless tho).
+ - Wizard has a new starting area.
+ - Chemists and CMOs now have their own jumpsuits.
ConstantA updated:
- - You can now put Mind-machine-interface (MMI)'d brains into mecha.
+ - You can now put Mind-machine-interface (MMI)'d brains into mecha.
Errorage updated:
- - Added smooth lattice.
+ - Added smooth lattice.
-26 March 2011
+26 March 2011
Rastaf0 updated:
- - Food sprites from Farart
- - New food: popcorn (corn in microwave), tofuburger (tofu+flour in microwave), carpburger (carp meat+floor in microwave)
- - Medical belts are finally in medbay (credits belong to errorage, I only added it)
- - Pill bottles now can fit in containers (boxes, medbelts, etc) and in pockets.
- - Cutting camera now leaves fingerprints.
+ - Food sprites from Farart
+ - New food: popcorn (corn in microwave), tofuburger (tofu+flour in microwave), carpburger (carp meat+floor in microwave)
+ - Medical belts are finally in medbay (credits belong to errorage, I only added it)
+ - Pill bottles now can fit in containers (boxes, medbelts, etc) and in pockets.
+ - Cutting camera now leaves fingerprints.
Microwave updated:
- - Armor Can hold revolvers, and so can the detective's coat.
- - Chef's apron is going live, it can carry a knife, and has a slight heat
-resistance (only slight don't run into a fire).
- - Kitty Ears!
- - Various food nutriment changes.
- - Added RIGs to the Mine EVA.
- - Night vision goggles. They have a range of five tiles.
- - Added Foods: Very Berry Pie, Tofu Pie, Tofu Kebab.
- - Modified foods: Custard Pie is now banana cream pie.
+ - Armor Can hold revolvers, and so can the detective's coat.
+ - Chef's apron is going live, it can carry a knife, and has a slight heat
+resistance (only slight don't run into a fire).
+ - Kitty Ears!
+ - Various food nutriment changes.
+ - Added RIGs to the Mine EVA.
+ - Night vision goggles. They have a range of five tiles.
+ - Added Foods: Very Berry Pie, Tofu Pie, Tofu Kebab.
+ - Modified foods: Custard Pie is now banana cream pie.
ConstantA updated:
- - Removed redundand steps from Gygax and HONK construction.
- - Added some mecha equipment designs to R&D.
+ - Removed redundand steps from Gygax and HONK construction.
+ - Added some mecha equipment designs to R&D.
-23 March 2011, World Meteorological Day
+23 March 2011, World Meteorological Day
Neo updated:
- - Fixed PacMan (and affiliates) generator construction.
- - It is now possible to actually eat omelettes with the fork now, instead of just stabbing yourself (or others) in the eye with it.
- - Welding masks can now be flipped up or down. Note that when they're up they don't hide your identity or protect you from welding.
- - Reagent based healing should now work properly.
- - Revolver has been balanced and made cheaper.
- - Tasers now effect borgs.
- - Plastic explosives are now bought in single bricks.
- - Nuke team slightly buffed and their uplink updated with recently added items.
- - Player verbs have been reorganized into tabs.
- - Energy swords now come in blue, green, purple and red.
- - Cameras are now constructable and dismantlable. (Code donated by Powerful Station 13)
- - Updated the change network verb for AIs. (Code donated by Powerful Station 13)
- - Added gold, silver and diamond pickaxes to R&D which mine faster.
+ - Fixed PacMan (and affiliates) generator construction.
+ - It is now possible to actually eat omelettes with the fork now, instead of just stabbing yourself (or others) in the eye with it.
+ - Welding masks can now be flipped up or down. Note that when they're up they don't hide your identity or protect you from welding.
+ - Reagent based healing should now work properly.
+ - Revolver has been balanced and made cheaper.
+ - Tasers now effect borgs.
+ - Plastic explosives are now bought in single bricks.
+ - Nuke team slightly buffed and their uplink updated with recently added items.
+ - Player verbs have been reorganized into tabs.
+ - Energy swords now come in blue, green, purple and red.
+ - Cameras are now constructable and dismantlable. (Code donated by Powerful Station 13)
+ - Updated the change network verb for AIs. (Code donated by Powerful Station 13)
+ - Added gold, silver and diamond pickaxes to R&D which mine faster.
Agouri updated:
- - New look for the Request consoles.
+ - New look for the Request consoles.
Rastaf0 updated:
- - Brig cell timers should now tick closer-to-real seconds.
- - New look for food, including meat pie, carrot cake, loaded baked potato, omelette, pie, xenopie and others. (some sprites by Farart)
- - Hearing in lockers now works as intended.
- - Fixed electronic blink sprite.
- - Added the 'ghost ears' verb, which allows ghosts to not hear anything but deadcast.
+ - Brig cell timers should now tick closer-to-real seconds.
+ - New look for food, including meat pie, carrot cake, loaded baked potato, omelette, pie, xenopie and others. (some sprites by Farart)
+ - Hearing in lockers now works as intended.
+ - Fixed electronic blink sprite.
+ - Added the 'ghost ears' verb, which allows ghosts to not hear anything but deadcast.
XSI updated:
- - New AI core design.
- - HoP now has a coffee machine!
+ - New AI core design.
+ - HoP now has a coffee machine!
Veyveyr updated:
- - Replaced nuke storage with a vault.
- - Redesigned the mint, moved the public autolathe and n2o storage.
- - New look for the coin press. (Sprite by Cheridan)
+ - Replaced nuke storage with a vault.
+ - Redesigned the mint, moved the public autolathe and n2o storage.
+ - New look for the coin press. (Sprite by Cheridan)
Errorage updated:
- - You can now manually add coins into money bags, also fixed money bag interaction window formatting.
- - QM no longer has access to the entire mining station to stop him from stealing supplies.
- - New machine loading sprite for mining machinery. (sprites by Cheridan)
- - Added a messanging server to the server room. It'll be used for messanging, but ignore it for now.
- - The delivery office now requires delivery office access. It's also no longer called "Construction Zone"
- - Almost all the mecha parts now have sprites. (Sprites by Cheridan)
- - Tinted and frosted glass now look darker.
- - There are now more money sprites.
- - Department closets now contain the correct headsets.
+ - You can now manually add coins into money bags, also fixed money bag interaction window formatting.
+ - QM no longer has access to the entire mining station to stop him from stealing supplies.
+ - New machine loading sprite for mining machinery. (sprites by Cheridan)
+ - Added a messanging server to the server room. It'll be used for messanging, but ignore it for now.
+ - The delivery office now requires delivery office access. It's also no longer called "Construction Zone"
+ - Almost all the mecha parts now have sprites. (Sprites by Cheridan)
+ - Tinted and frosted glass now look darker.
+ - There are now more money sprites.
+ - Department closets now contain the correct headsets.
Microwave updated:
- - Bicaridine now heals a lot better than before.
- - Added Diethylamine, Dry Ramen, Hot Ramen, Hell Ramen, Ice, Iced Coffee, Iced Tea, Hot Chocolate. Each with it's own effects.
- - Re-added pest spray to hydroponics.
- - Carrots now contain a little imidazoline.
- - HoS, Warden and Security Officer starting equipment changed.
- - New crate, which contains armored vests and helmets. Requires security access, costs 20.
- - Miner lockers now contain meson scanners and mining jumpsuits.
- - Food crate now contains milk, instead of faggots. Lightbulb crates cost reduced to 5. Riot crates cost reduced to 20. Emergency crate contains 2 med bots instead of floor bots. Hydroponics crate no longer contains weed spray, pest spray. It's latex gloves were replaced with leather ones and an apron.
- - Added chef's apron (can hold a kitchen knife) and a new service borg sprite.
- - Autolathe can now construct kitchen knives.
- - Biosuit and syndicate space suits can now fit into backpacks.
- - Mime's mask can now be used as a gas mask.
- - Added welding helmet 'off' sprites.
+ - Bicaridine now heals a lot better than before.
+ - Added Diethylamine, Dry Ramen, Hot Ramen, Hell Ramen, Ice, Iced Coffee, Iced Tea, Hot Chocolate. Each with it's own effects.
+ - Re-added pest spray to hydroponics.
+ - Carrots now contain a little imidazoline.
+ - HoS, Warden and Security Officer starting equipment changed.
+ - New crate, which contains armored vests and helmets. Requires security access, costs 20.
+ - Miner lockers now contain meson scanners and mining jumpsuits.
+ - Food crate now contains milk, instead of faggots. Lightbulb crates cost reduced to 5. Riot crates cost reduced to 20. Emergency crate contains 2 med bots instead of floor bots. Hydroponics crate no longer contains weed spray, pest spray. It's latex gloves were replaced with leather ones and an apron.
+ - Added chef's apron (can hold a kitchen knife) and a new service borg sprite.
+ - Autolathe can now construct kitchen knives.
+ - Biosuit and syndicate space suits can now fit into backpacks.
+ - Mime's mask can now be used as a gas mask.
+ - Added welding helmet 'off' sprites.
-18 March 2011
+18 March 2011
Errorage updated:
- - You can now use the me command for emotes! It works the same as say "*custom" set to visible.
- - There is now a wave emote.
- - Enjoy your tea!
+ - You can now use the me command for emotes! It works the same as say "*custom" set to visible.
+ - There is now a wave emote.
+ - Enjoy your tea!
Deeaych updated:
- - The exam room has some extra prominence and features.
- - A new costume for the clown or mime to enjoy.
- - Service Cyborgs can be picked! Shaker, dropper, tray, pen, paper, and DOSH to show their class off. When emagged, the friendly butler-borg is able to serve up a deadly last meal.
- - It should now be possible to spawn as a cyborg at round start. Spawned cyborgs have a lower battery life than created cyborgs and begin the round in the AI Foyer.
+ - The exam room has some extra prominence and features.
+ - A new costume for the clown or mime to enjoy.
+ - Service Cyborgs can be picked! Shaker, dropper, tray, pen, paper, and DOSH to show their class off. When emagged, the friendly butler-borg is able to serve up a deadly last meal.
+ - It should now be possible to spawn as a cyborg at round start. Spawned cyborgs have a lower battery life than created cyborgs and begin the round in the AI Foyer.
Rastaf0 updated:
- - Fixed an issue with examining several objects in your hands (such as beakers).
- - Fixed bug with random last name being empty in rare cases.
+ - Fixed an issue with examining several objects in your hands (such as beakers).
+ - Fixed bug with random last name being empty in rare cases.
hunterluthi updated:
- - It is now possible to make 3x3 sets of tables.
- - Fixed some missplaced grilles/lattices on the port solar.
- - There is now a breakroom for the station and atmos engineers. It has everything an intelligent young engineer needs. Namely, Cheesy Honkers and arcade games.
+ - It is now possible to make 3x3 sets of tables.
+ - Fixed some missplaced grilles/lattices on the port solar.
+ - There is now a breakroom for the station and atmos engineers. It has everything an intelligent young engineer needs. Namely, Cheesy Honkers and arcade games.
-15 March 2011, International Day Against Police Brutality
+15 March 2011, International Day Against Police Brutality
- Errorage updated:
- - Autolathe deconstruction fixed.
- - Atmos Entrance fixed.
- - AI no longer gibs themselves if they click on the singularity.
- - Fixed all the issues I knew of about storage items.
- - Redesigned Assembly line and surrounding maintenance shafts.
- - Redesigned Tech storage. (Map by Veyveyr)
+ - Autolathe deconstruction fixed.
+ - Atmos Entrance fixed.
+ - AI no longer gibs themselves if they click on the singularity.
+ - Fixed all the issues I knew of about storage items.
+ - Redesigned Assembly line and surrounding maintenance shafts.
+ - Redesigned Tech storage. (Map by Veyveyr)
- TLE updated:
@@ -225,293 +225,293 @@ resistance (only slight don't run into a fire).
- Neo updated:
- - New R&D Item: The 'Bag of holding'. (Sprite by Cheridan)
- - Getting someone out of the cloner now leaves damage, which can only be fixed in the cryo tube.
- - New reagent: Clonexadone, for use with the cryo tube.
- - Fixed using syringes on plants.
+ - New R&D Item: The 'Bag of holding'. (Sprite by Cheridan)
+ - Getting someone out of the cloner now leaves damage, which can only be fixed in the cryo tube.
+ - New reagent: Clonexadone, for use with the cryo tube.
+ - Fixed using syringes on plants.
- Constanta updated:
- - Added queueing to fabricator.
+ - Added queueing to fabricator.
- Rastaf0 updated:
- - Air alarms upgraded.
- - Fixed problem with AI clicking on mulebot.
- - Airlock controller (as in EVA) now react to commands faster.
- - Fixed toxins mixing airlocks.
+ - Air alarms upgraded.
+ - Fixed problem with AI clicking on mulebot.
+ - Airlock controller (as in EVA) now react to commands faster.
+ - Fixed toxins mixing airlocks.
-6 March 2011
+6 March 2011
- Neo updated:
- - Neo deserves a medal for all the bugfixing he's done! --errorage
+ - Neo deserves a medal for all the bugfixing he's done! --errorage
- Errorage updated:
- No. I did not code on my birthday!
- - Windows can now be rotated clockwise and counter clockwise.
- - Window creating process slightly changed to make it easier.
- - Fixed the newly made reinforced windows bug where they weren't properly unfastened and unscrewed.
- - Examination room has a few windows now.
- - Can you tell I reinstalled Windows?
- - Robotics has health analyzers.
- - Bugfixing.
+ - Windows can now be rotated clockwise and counter clockwise.
+ - Window creating process slightly changed to make it easier.
+ - Fixed the newly made reinforced windows bug where they weren't properly unfastened and unscrewed.
+ - Examination room has a few windows now.
+ - Can you tell I reinstalled Windows?
+ - Robotics has health analyzers.
+ - Bugfixing.
- Deeyach updated:
- - Roboticists now spawn with a lab coat and an engineering pda
+ - Roboticists now spawn with a lab coat and an engineering pda
-2 March 2011, Wednesday
+2 March 2011, Wednesday
- Errorage updated:
- - Mapping updates including Atmospherics department map fixes, CE's office and some lights being added here and there.
+ - Mapping updates including Atmospherics department map fixes, CE's office and some lights being added here and there.
- Mining once again given to the quartermaster and HoP. The CE has no business with mining.
- - Removed the overstuffed Atmos/Engineering supply room.
- - Replaced all 'engineering' doors in mining with maintenance doors as they were causing confusion as to which department mining belongs to.
- - The incinerator is now maintenance access only.
+ - Removed the overstuffed Atmos/Engineering supply room.
+ - Replaced all 'engineering' doors in mining with maintenance doors as they were causing confusion as to which department mining belongs to.
+ - The incinerator is now maintenance access only.
- Neo updated:
- - New look for the advanced energy gun. (Sprite by Cheridan)
- - Mech fabricator accepts non-standard materials.
- - Mules accesses fixed, so they can be unlocked once again.
+ - New look for the advanced energy gun. (Sprite by Cheridan)
+ - Mech fabricator accepts non-standard materials.
+ - Mules accesses fixed, so they can be unlocked once again.
- Atmospherics department mapping overhaul. (Map by Hawk_v3)
- - Added more name options to arcade machines.
+ - Added more name options to arcade machines.
- ConstantA updated:
- - Added mecha control console and mecha tracking beacons.
- - Some changes to gygax construction.
+ - Added mecha control console and mecha tracking beacons.
+ - Some changes to gygax construction.
- Darem updated:
- - R&D minor bugfixes.
- - AI computer can now be deconstructed (right click and select 'accessinternals').
- - Server room updated, added server equipment to use with R&D.
- - Wizard and ghost teleport lists are now in alphabetical order, ghosts can now teleport to the mining station.
- - Rightclicking and examining a constructable frame now tells you what parts still need to be finished.
- - Large grenades added to R&D.
+ - R&D minor bugfixes.
+ - AI computer can now be deconstructed (right click and select 'accessinternals').
+ - Server room updated, added server equipment to use with R&D.
+ - Wizard and ghost teleport lists are now in alphabetical order, ghosts can now teleport to the mining station.
+ - Rightclicking and examining a constructable frame now tells you what parts still need to be finished.
+ - Large grenades added to R&D.
- Deeyach updated:
- - Mining given to the CE. (Reverted by Errorage)
- - Clowns can now pick a new name upon entering the game (like wizards previously).
+ - Mining given to the CE. (Reverted by Errorage)
+ - Clowns can now pick a new name upon entering the game (like wizards previously).
-24 February 2011, Thursday
+24 February 2011, Thursday
- Darem updated:
- - Lighting code fixed for mining and thermite.
- - R&D instruction manual added to the R&D lab.
- - Fixed R&D disk commands not working.
- - Added portable power generators which run on solid plasma.
- - You can now set the numer of coins to produce in the mint.
- - Added two more portable power generators to R&D.
+ - Lighting code fixed for mining and thermite.
+ - R&D instruction manual added to the R&D lab.
+ - Fixed R&D disk commands not working.
+ - Added portable power generators which run on solid plasma.
+ - You can now set the numer of coins to produce in the mint.
+ - Added two more portable power generators to R&D.
- Deeyach updated:
- - New uniform for roboticists
+ - New uniform for roboticists
- Neo updated:
- - Game speed increased
- - Mining stacking machine no longer devours stacks larger than 1 sheet (it was only increasing its stock by 1 when given a stacked stack)
- - Stackable uranium ore added (a better sprite is needed, contributions are welcome)
- - Made Meteor gamemode actually do stuff
- - Made a bigger class of meteor
- - New R&D item: Advanced Energy Gun
- - Law priority clarified with regards to ion laws and law 0.
+ - Game speed increased
+ - Mining stacking machine no longer devours stacks larger than 1 sheet (it was only increasing its stock by 1 when given a stacked stack)
+ - Stackable uranium ore added (a better sprite is needed, contributions are welcome)
+ - Made Meteor gamemode actually do stuff
+ - Made a bigger class of meteor
+ - New R&D item: Advanced Energy Gun
+ - Law priority clarified with regards to ion laws and law 0.
- Veyveyr updated:
- - Minor mapping fixes
+ - Minor mapping fixes
- Uhangi updated:
- - New red bomb suit for security.
+ - New red bomb suit for security.
- Errorage updated:
- - Slight mapping change to arrival hallway.
+ - Slight mapping change to arrival hallway.
-23 February 2011, Red Army Day
+23 February 2011, Red Army Day
- Uhangi updated:
- - Antitox and Inaprovaline now mixable via chemistry.
- - Explosive Ordinance Disosal (EOD) suits added to armory and security.
- - Large beaker now holds 100 units of chemicals. (code by Slith)
+ - Antitox and Inaprovaline now mixable via chemistry.
+ - Explosive Ordinance Disosal (EOD) suits added to armory and security.
+ - Large beaker now holds 100 units of chemicals. (code by Slith)
- Rastaf0 updated:
- - Secbot interface updated.
- - Syringe auto-toggels mode when full.
- - Captain's flask volume increased.
+ - Secbot interface updated.
+ - Syringe auto-toggels mode when full.
+ - Captain's flask volume increased.
- Neo updated:
- - Fixed the 'be syndicate' choice to actually work on nuke rounds.
+ - Fixed the 'be syndicate' choice to actually work on nuke rounds.
- Syndicates no longer win if they detonate the nuke on their ship.
- Errorage updated:
- - Added cloning manual. (Written by Perapsam)
+ - Added cloning manual. (Written by Perapsam)
- K0000 updated:
- Cult mode updates.
- - You can now read the arcane tome. It contains a simple guide for making runes.
- - Converting people doesnt give them word knowledge.
- - Sacrifice monkeys or humans to gain new words.
- - Total number of rune words set to 10
- - Some minor bugfixes.
+ - You can now read the arcane tome. It contains a simple guide for making runes.
+ - Converting people doesnt give them word knowledge.
+ - Sacrifice monkeys or humans to gain new words.
+ - Total number of rune words set to 10
+ - Some minor bugfixes.
-20 February 2011, Sunday
+20 February 2011, Sunday
- Errorage updated:
- - Slight updates to processing unit and stacking machine at the mining outpost.
- - Digging now yields sand, which can be smelted into glass.
- - Stacking machine can now stack reinforced metal, regular and reinforced glass too.
- - Engineers now have two copies of the singularity safety manual.
+ - Slight updates to processing unit and stacking machine at the mining outpost.
+ - Digging now yields sand, which can be smelted into glass.
+ - Stacking machine can now stack reinforced metal, regular and reinforced glass too.
+ - Engineers now have two copies of the singularity safety manual.
- Neo updated:
- - Magboots now have a verb toggle like jumpsuit sensors.
- - Jumpsuit sensors are now in all jumpsuits, except tactical turtlenecks.
- - Tweaks to the AI report at round start.
- - Syndi-cakes now heal traitors/rev heads/etc much more than anyone else.
- - Containment fields zap once again.
- - Fire damage meter no longer lies about fire damage.
+ - Magboots now have a verb toggle like jumpsuit sensors.
+ - Jumpsuit sensors are now in all jumpsuits, except tactical turtlenecks.
+ - Tweaks to the AI report at round start.
+ - Syndi-cakes now heal traitors/rev heads/etc much more than anyone else.
+ - Containment fields zap once again.
+ - Fire damage meter no longer lies about fire damage.
- Darem updated:
- - Mass Spectrometer added to R&D. Load it with a syringe of blood and it will tell you the chemicals in it. Low reliability devices may yield false information.
- - Not all devices have a 100% reliability now.
- - Miners now have access to mint foyer and loading area. Only captain has access to the vault.
- - More stuff can be analyzed in the destructive analyzer, protolathe can produce intelicards.
+ - Mass Spectrometer added to R&D. Load it with a syringe of blood and it will tell you the chemicals in it. Low reliability devices may yield false information.
+ - Not all devices have a 100% reliability now.
+ - Miners now have access to mint foyer and loading area. Only captain has access to the vault.
+ - More stuff can be analyzed in the destructive analyzer, protolathe can produce intelicards.
- Rastaf0 updated:
- - Added blast door button to atmospherics.
- - Toxins timer-igniter assemblies fixed.
- - Engineering secure storage expanded.
- - Added singularity telescreen.
+ - Added blast door button to atmospherics.
+ - Toxins timer-igniter assemblies fixed.
+ - Engineering secure storage expanded.
+ - Added singularity telescreen.
-18 February 2011, Friday
+18 February 2011, Friday
- Errorage updated:
- - New look for the bio suits. (Biosuit and hood sprites by Cheridan)
- - New radiation suits added along with radiation hoods and masks. Must wear complete set to get full protection.
+ - New look for the bio suits. (Biosuit and hood sprites by Cheridan)
+ - New radiation suits added along with radiation hoods and masks. Must wear complete set to get full protection.
- Rastaf0 updated:
- - Binary translator cost reduced to 1 telecrystal.
+ - Binary translator cost reduced to 1 telecrystal.
AtomicTroop updated:
- Mail Sorter job added.
- Disposal system redone to allow for package transfers. Packages are routed to mail sorter room and then routed to the rest of the station
- - Disposal area moved. Old disposal area now just an incinerator and a small disposal into space.
- - New wrapping paper for sending packages.
+ - Disposal area moved. Old disposal area now just an incinerator and a small disposal into space.
+ - New wrapping paper for sending packages.
Veyveyr updates:
- - New machine frame sprite.
- - Braincase sprites for mechs added. Not actually used, yet.
+ - New machine frame sprite.
+ - Braincase sprites for mechs added. Not actually used, yet.
Darem updates:
- - Research and Development system is LIVE. Scientists can now research new advancements in technology. Not much can be made, right now, but the system is there. Technologies are researched by shoving items into the destructive analyzer. Circuit Imprinter, Destructive Analyzer, and Protolathe are controlled from the R&D console.
- - Autolathe, Protolathe, Destructive Analyzer, and Circuit Imprinter can now be built, taken apart, and upgraded. The basic frame for all of the above requires 5 metal.
+ - Research and Development system is LIVE. Scientists can now research new advancements in technology. Not much can be made, right now, but the system is there. Technologies are researched by shoving items into the destructive analyzer. Circuit Imprinter, Destructive Analyzer, and Protolathe are controlled from the R&D console.
+ - Autolathe, Protolathe, Destructive Analyzer, and Circuit Imprinter can now be built, taken apart, and upgraded. The basic frame for all of the above requires 5 metal.
-15 February 2011, Tuesday
+15 February 2011, Tuesday
- Rastaf0 updated:
- - Added radio channels and headsets for miners (:h or :d ("diggers" lol)) and for cargo techs (:h or :q )
- - Added a personal headsets to HoP and QM.
- - Aliens now attack bots instead of opening control window.
- - All bots can be damaged and repaired.
- - All bots are effected to EMP now.
- - Atmos now starts with nitrous oxide in storage tank.
+ - Added radio channels and headsets for miners (:h or :d ("diggers" lol)) and for cargo techs (:h or :q )
+ - Added a personal headsets to HoP and QM.
+ - Aliens now attack bots instead of opening control window.
+ - All bots can be damaged and repaired.
+ - All bots are effected to EMP now.
+ - Atmos now starts with nitrous oxide in storage tank.
- Veyveyr updated:
- - New look for the pipe dispenser.
+ - New look for the pipe dispenser.
- Errorage updated:
- - Mining station will now charge properly.
- - Duffle bags (Money bags) can now be emptied.
+ - Mining station will now charge properly.
+ - Duffle bags (Money bags) can now be emptied.
-14 February 2011, Valentine's day
+14 February 2011, Valentine's day
- Errorage updated:
- - New Job! - Shaft Miners have finally been added and are available to play.
- - Mining outpost - A new mining outpost has been built, the mining dock on SS13 has been updated.
+ - New Job! - Shaft Miners have finally been added and are available to play.
+ - Mining outpost - A new mining outpost has been built, the mining dock on SS13 has been updated.
- ConstantA updated:
- - Slight speed up for combat mechs..
+ - Slight speed up for combat mechs..
- Added H.O.N.K construction
- - Fixed bug with switching intent while in mecha.
+ - Fixed bug with switching intent while in mecha.
diff --git a/tgstation.dme b/tgstation.dme
index 94a87059b48..75e92742bfe 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -197,7 +197,6 @@
#include "code\datums\diseases\xeno_transformation.dm"
#include "code\datums\spells\blind.dm"
#include "code\datums\spells\blink.dm"
-#include "code\datums\spells\body_swap.dm"
#include "code\datums\spells\conjure.dm"
#include "code\datums\spells\disable_tech.dm"
#include "code\datums\spells\disintegrate.dm"
@@ -206,7 +205,9 @@
#include "code\datums\spells\forcewall.dm"
#include "code\datums\spells\knock.dm"
#include "code\datums\spells\magic_missile.dm"
+#include "code\datums\spells\mind_transfer.dm"
#include "code\datums\spells\mutate.dm"
+#include "code\datums\spells\smoke.dm"
#include "code\datums\spells\teleport.dm"
#include "code\defines\atom.dm"
#include "code\defines\client.dm"