Add the advanced mimery kit to mime uplinks

Also adds :
Mime specific spellbooks
TG wizard forcewall (mime is a subtype, will implement for wiz later
probably)
Fake finger gun spellbook in arcade
This commit is contained in:
datlo
2018-11-23 07:23:34 +00:00
parent 484a591a7d
commit a80efa4924
13 changed files with 240 additions and 3 deletions
+107 -2
View File
@@ -1,5 +1,5 @@
/obj/effect/proc_holder/spell/aoe_turf/conjure/mime_wall
name = "Invisible wall"
name = "Invisible Wall"
desc = "The mime's performance transmutates into physical reality."
school = "mime"
panel = "Mime"
@@ -12,7 +12,7 @@
range = 0
cast_sound = null
human_req = 1
action_icon_state = "mime"
action_background_icon_state = "bg_mime"
@@ -60,3 +60,108 @@
to_chat(H, "<span class='notice'>You make a vow of silence.</span>")
else
to_chat(H, "<span class='notice'>You break your vow of silence.</span>")
//Advanced Mimery traitor item spells
/obj/effect/proc_holder/spell/targeted/forcewall/mime
name = "Invisible Greater Wall"
desc = "Form an invisible three tile wide blockade."
school = "mime"
panel = "Mime"
wall_type = /obj/effect/forcefield/mime/advanced
invocation_type = "emote"
invocation_emote_self = "<span class='notice'>You form a blockade in front of yourself.</span>"
charge_max = 600
sound = null
clothes_req = FALSE
range = -1
include_user = TRUE
action_icon_state = "mime"
action_background_icon_state = "bg_mime"
/obj/effect/proc_holder/spell/targeted/forcewall/mime/Click()
if(usr && usr.mind)
if(!usr.mind.miming)
to_chat(usr, "<span class='notice'>You must dedicate yourself to silence first.</span>")
return
invocation = "<B>[usr.real_name]</B> looks as if a blockade is in front of [usr.p_them()]."
else
invocation_type ="none"
..()
/obj/effect/proc_holder/spell/targeted/mime/fingergun
name = "Finger Gun"
desc = "Shoot stunning, invisible bullets out of your fingers! 6 bullets available per cast."
school = "mime"
panel = "Mime"
clothes_req = 0
charge_max = 600
range = -1
include_user = 1
human_req = 1
action_icon_state = "fingergun"
action_background_icon_state = "bg_mime"
var/gun = /obj/item/gun/projectile/revolver/fingergun
/obj/effect/proc_holder/spell/targeted/mime/fingergun/cast(list/targets, mob/user = usr)
for(var/mob/living/carbon/human/C in targets)
if(!istype(C.get_active_hand(), gun) && !istype(C.get_inactive_hand(), gun))
to_chat(user, "<span class='notice'>You draw your fingers!</span>")
C.drop_item()
C.put_in_hands(new gun)
else
to_chat(user, "<span class='notice'>Holster your fingers first.</span>")
revert_cast(user)
/obj/effect/proc_holder/spell/targeted/mime/fingergun/fake
desc = "Pretend you're shooting bullets out of your fingers! 6 bullets available per cast."
gun = /obj/item/gun/projectile/revolver/fingergun/fake
/obj/item/spellbook/oneuse/mime
spell = /obj/effect/proc_holder/spell/aoe_turf/conjure/mime_wall
spellname = "Invisible Wall"
name = "Miming Manual : "
desc = "It contains various pictures of mimes mid-performance, aswell as some illustrated tutorials."
icon_state = "bookmime"
/obj/item/spellbook/oneuse/mime/attack_self(mob/user)
var/obj/effect/proc_holder/spell/S = new spell
for(var/obj/effect/proc_holder/spell/knownspell in user.mind.spell_list)
if(knownspell.type == S.type)
if(user.mind)
to_chat(user, "<span class='notice'>You've already read this one.</span>")
return
if(used)
recoil(user)
else
user.mind.AddSpell(S)
to_chat(user, "<span class='notice'>You flip through the pages. Your understanding of the boundaries of reality increases. You can cast [spellname]!</span>")
user.create_attack_log("<font color='orange'>[key_name(user)] learned the spell [spellname] ([S]).</font>")
onlearned(user)
/obj/item/spellbook/oneuse/mime/recoil(mob/user)
to_chat(user, "<span class='notice'>You flip through the pages. Nothing of interest to you.</span>")
/obj/item/spellbook/oneuse/mime/onlearned(mob/user)
used = 1
var/obj/effect/proc_holder/spell/S = new /obj/effect/proc_holder/spell/targeted/mime/speak
for(var/obj/effect/proc_holder/spell/knownspell in user.mind.spell_list)
if(knownspell.type == S.type)
return
user.mind.AddSpell(S) //add vow of silence if not known by user
to_chat(user, "<span class='notice'>You have learned how to use silence to improve your performance.</span>")
/obj/item/spellbook/oneuse/mime/fingergun
spell = /obj/effect/proc_holder/spell/targeted/mime/fingergun
spellname = "Finger Gun"
desc = "It contains illustrations of guns and how to mime them."
/obj/item/spellbook/oneuse/mime/fingergun/fake
spell = /obj/effect/proc_holder/spell/targeted/mime/fingergun/fake
/obj/item/spellbook/oneuse/mime/greaterwall
spell = /obj/effect/proc_holder/spell/targeted/forcewall/mime
spellname = "Invisible Greater Wall"
desc = "It contains illustrations of the great walls of human history."
+26
View File
@@ -166,6 +166,32 @@
action_icon_state = "shield"
cast_sound = 'sound/magic/ForceWall.ogg'
/obj/effect/proc_holder/spell/targeted/forcewall
name = "Greater Forcewall"
desc = "Create a magical barrier that only you can pass through."
school = "transmutation"
charge_max = 100
clothes_req = FALSE
invocation = "TARCOL MINTI ZHERI"
invocation_type = "shout"
sound = 'sound/magic/ForceWall.ogg'
action_icon_state = "shield"
range = -1
include_user = TRUE
cooldown_min = 50 //12 deciseconds reduction per rank
var/wall_type = /obj/effect/forcefield/wizard
/obj/effect/proc_holder/spell/targeted/forcewall/cast(list/targets,mob/user = usr)
new wall_type(get_turf(user),user)
if(user.dir == SOUTH || user.dir == NORTH)
new wall_type(get_step(user, EAST),user)
new wall_type(get_step(user, WEST),user)
else
new wall_type(get_step(user, NORTH),user)
new wall_type(get_step(user, SOUTH),user)
/obj/effect/proc_holder/spell/aoe_turf/conjure/timestop
name = "Stop Time"
desc = "This spell stops time for everyone except for you, allowing you to move freely while your enemies and even projectiles are frozen."
+8
View File
@@ -146,6 +146,14 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
cost = 10
job = list("Mime")
/datum/uplink_item/jobspecific/mimery
name = "Guide to Advanced Mimery Series"
desc = "Contains two manuals to teach you advanced Mime skills. You will be able to shoot stunning bullets out of your fingers, and creates large walls that can block an entire hallway!"
reference = "AM"
item = /obj/item/storage/box/syndie_kit/mimery
cost = 10
job = list("Mime")
//Chef
/datum/uplink_item/jobspecific/specialsauce
name = "Chef Excellence's Special Sauce"