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"
+18 -1
View File
@@ -11,6 +11,18 @@
/obj/effect/forcefield/CanAtmosPass(turf/T)
return !density
/obj/effect/forcefield/wizard
var/mob/wizard
/obj/effect/forcefield/wizard/Initialize(mapload, mob/summoner)
. = ..()
wizard = summoner
/obj/effect/forcefield/wizard/CanPass(atom/movable/mover, turf/target)
if(mover == wizard)
return TRUE
return FALSE
///////////Mimewalls///////////
/obj/effect/forcefield/mime
@@ -22,4 +34,9 @@
/obj/effect/forcefield/mime/New()
..()
if(lifetime)
QDEL_IN(src, lifetime)
QDEL_IN(src, lifetime)
/obj/effect/forcefield/mime/advanced
name = "invisible blockade"
desc = "You might be here a while."
lifetime = 60 SECONDS
@@ -215,6 +215,13 @@
new /obj/item/ammo_casing/shotgun/dart/assassination(src)
new /obj/item/gun/projectile/revolver/doublebarrel/improvised/cane(src)
/obj/item/storage/box/syndie_kit/mimery
name = "mimery kit"
/obj/item/storage/box/syndie_kit/mimery/New()
..()
new /obj/item/spellbook/oneuse/mime/greaterwall(src)
new /obj/item/spellbook/oneuse/mime/fingergun(src)
/obj/item/storage/box/syndie_kit/atmosgasgrenades
name = "Atmos Grenades"
+6
View File
@@ -222,6 +222,12 @@ var/global/datum/prizes/global_prizes = new
typepath = /obj/item/spellbook/oneuse/fake_gib
cost = 100
/datum/prize_item/fakefingergun
name = "Miming Manual : Finger Gun"
desc = "..."
typepath = /obj/item/spellbook/oneuse/mime/fingergun/fake
cost = 100
/datum/prize_item/magic_conch
name = "Magic Conch Shell"
desc = "All hail the magic conch!"
@@ -29,6 +29,12 @@
icon_state = "r-casing"
projectile_type = /obj/item/projectile/bullet/weakbullet2
/obj/item/ammo_casing/c38/invisible
projectile_type = /obj/item/projectile/bullet/weakbullet2/invisible
/obj/item/ammo_casing/c38/invisible/fake
projectile_type = /obj/item/projectile/bullet/weakbullet2/invisible/fake
/obj/item/ammo_casing/c10mm
desc = "A 10mm bullet casing."
caliber = "10mm"
@@ -61,6 +61,14 @@
caliber = "38"
max_ammo = 6
/obj/item/ammo_box/magazine/internal/cylinder/rev38/invisible
name = "finger gun cylinder"
desc = "Wait, what?"
ammo_type = /obj/item/ammo_casing/c38/invisible
/obj/item/ammo_box/magazine/internal/cylinder/rev38/invisible/fake
ammo_type = /obj/item/ammo_casing/c38/invisible/fake
/obj/item/ammo_box/magazine/internal/cylinder/rev762
name = "nagant revolver cylinder"
ammo_type = /obj/item/ammo_casing/n762
@@ -142,6 +142,48 @@
desc = initial(desc)
to_chat(user, "<span class='notice'>You remove the modifications on [src]. Now it will fire .38 rounds.</span>")
/obj/item/gun/projectile/revolver/fingergun //Summoned by the Finger Gun spell, from advanced mimery traitor item
name = "\improper finger gun"
desc = "Bang bang bang!"
icon_state = "fingergun"
mag_type = /obj/item/ammo_box/magazine/internal/cylinder/rev38/invisible
origin_tech = ""
flags = ABSTRACT | NODROP | DROPDEL
slot_flags = null
fire_sound = null
fire_sound_text = null
lefthand_file = null
righthand_file = null
clumsy_check = 0 //Stole your uplink! Honk!
needs_permit = 0 //go away beepsky
/obj/item/gun/projectile/revolver/fingergun/fake
desc = "Pew pew pew!"
mag_type = /obj/item/ammo_box/magazine/internal/cylinder/rev38/invisible/fake
/obj/item/gun/projectile/revolver/fingergun/New()
..()
verbs -= /obj/item/gun/projectile/revolver/verb/spin
/obj/item/gun/projectile/revolver/fingergun/shoot_with_empty_chamber(/*mob/living/user as mob|obj*/)
to_chat(usr, "<span class='warning'>You are out of ammo! You holster your fingers.</span>")
qdel(src)
return
/obj/item/gun/projectile/revolver/fingergun/afterattack(atom/target, mob/living/user, flag, params)
if(!user.mind.miming)
to_chat(usr, "<span class='warning'>You must dedicate yourself to silence first.</span>")
return
..()
/obj/item/gun/projectile/revolver/fingergun/attackby(obj/item/A, mob/user, params)
return
/obj/item/gun/projectile/revolver/fingergun/attack_self(mob/living/user)
to_chat(usr, "<span class='notice'>You holster your fingers. Another time.</span>")
qdel(src)
return
/obj/item/gun/projectile/revolver/mateba
name = "\improper Unica 6 auto-revolver"
desc = "A retro high-powered autorevolver typically used by officers of the New Russia military. Uses .357 ammo." //>10mm hole >.357
@@ -37,6 +37,18 @@
stamina = 60
icon_state = "bullet-r"
/obj/item/projectile/bullet/weakbullet2/invisible //finger gun bullets
name = "invisible bullet"
damage = 0
icon_state = null
hitsound_wall = null
/obj/item/projectile/bullet/weakbullet2/invisible/fake
weaken = 0
stamina = 0
nodamage = 1
log_override = TRUE
/obj/item/projectile/bullet/weakbullet3
damage = 20