Just fuck my shit up fam

This commit is contained in:
as334
2015-11-29 13:48:58 -05:00
181 changed files with 3361 additions and 1092 deletions
+16 -10
View File
@@ -41,6 +41,7 @@ var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin
var/spell_level = 0 //if a spell can be taken multiple times, this raises
var/level_max = 4 //The max possible level_max is 4
var/cooldown_min = 0 //This defines what spell quickened four times has as a cooldown. Make sure to set this for every spell
var/player_lock = 1 //If it can be used by simple mobs
var/overlay = 0
var/overlay_icon = 'icons/obj/wizard.dmi'
@@ -62,9 +63,13 @@ var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin
/obj/effect/proc_holder/spell/proc/cast_check(skipcharge = 0,mob/user = usr) //checks if the spell can be cast based on its settings; skipcharge is used when an additional cast_check is called inside the spell
if(((!user.mind) || !(src in user.mind.spell_list)) && !(src in user.mob_spell_list))
user << "<span class='warning'>You shouldn't have this spell! Something's wrong.</span>"
return 0
if(player_lock)
if(!user.mind || !(src in user.mind.spell_list) && !(src in user.mob_spell_list))
user << "<span class='warning'>You shouldn't have this spell! Something's wrong.</span>"
return 0
else
if(!(src in user.mob_spell_list))
return 0
if(user.z == ZLEVEL_CENTCOM && !centcom_cancast) //Certain spells are not allowed on the centcom zlevel
return 0
@@ -170,8 +175,9 @@ var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin
/obj/effect/proc_holder/spell/proc/perform(list/targets, recharge = 1, mob/user = usr) //if recharge is started is important for the trigger spells
before_cast(targets)
invocation()
user.attack_log += text("\[[time_stamp()]\] <span class='danger'>[user.real_name] ([user.ckey]) cast the spell [name].</span>")
invocation(user)
if(user.ckey)
user.attack_log += text("\[[time_stamp()]\] <span class='danger'>[user.real_name] ([user.ckey]) cast the spell [name].</span>")
spawn(0)
if(charge_type == "recharge" && recharge)
start_recharge()
@@ -180,7 +186,7 @@ var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin
if(prob(critfailchance))
critfail(targets)
else
cast(targets)
cast(targets,user=user)
after_cast(targets)
/obj/effect/proc_holder/spell/proc/before_cast(list/targets)
@@ -227,7 +233,7 @@ var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin
smoke.start()
/obj/effect/proc_holder/spell/proc/cast(list/targets)
/obj/effect/proc_holder/spell/proc/cast(list/targets,mob/user = usr)
return
/obj/effect/proc_holder/spell/proc/critfail(list/targets)
@@ -334,7 +340,7 @@ var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin
revert_cast(user)
return
perform(targets)
perform(targets,user=user)
return
@@ -349,7 +355,7 @@ var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin
revert_cast()
return
perform(targets)
perform(targets,user=user)
return
@@ -418,7 +424,7 @@ var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin
if(!user)
revert_cast()
return
perform(user)
perform(null,user=user)
/obj/effect/proc_holder/spell/self/basic_heal //This spell exists mainly for debugging purposes, and also to show how casting works
name = "Lesser Heal"
+9 -9
View File
@@ -32,8 +32,8 @@
return thearea
/obj/effect/proc_holder/spell/targeted/area_teleport/cast(list/targets,area/thearea)
playsound(get_turf(usr), sound1, 50,1)
/obj/effect/proc_holder/spell/targeted/area_teleport/cast(list/targets,area/thearea,mob/user = usr)
playsound(get_turf(user), sound1, 50,1)
for(var/mob/living/target in targets)
var/list/L = list()
for(var/turf/T in get_area_turfs(thearea.type))
@@ -67,22 +67,22 @@
if(!success)
target.loc = pick(L)
playsound(get_turf(usr), sound2, 50,1)
playsound(get_turf(user), sound2, 50,1)
return
/obj/effect/proc_holder/spell/targeted/area_teleport/invocation(area/chosenarea = null)
/obj/effect/proc_holder/spell/targeted/area_teleport/invocation(area/chosenarea = null,mob/user = usr)
if(!invocation_area || !chosenarea)
..()
else
switch(invocation_type)
if("shout")
usr.say("[invocation] [uppertext(chosenarea.name)]")
if(usr.gender==MALE)
playsound(usr.loc, pick('sound/misc/null.ogg','sound/misc/null.ogg'), 100, 1)
user.say("[invocation] [uppertext(chosenarea.name)]")
if(user.gender==MALE)
playsound(user.loc, pick('sound/misc/null.ogg','sound/misc/null.ogg'), 100, 1)
else
playsound(usr.loc, pick('sound/misc/null.ogg','sound/misc/null.ogg'), 100, 1)
playsound(user.loc, pick('sound/misc/null.ogg','sound/misc/null.ogg'), 100, 1)
if("whisper")
usr.whisper("[invocation] [uppertext(chosenarea.name)]")
user.whisper("[invocation] [uppertext(chosenarea.name)]")
return
+10 -10
View File
@@ -12,9 +12,9 @@
include_user = 1
/obj/effect/proc_holder/spell/targeted/charge/cast(list/targets)
for(var/mob/living/user in targets)
var/list/hand_items = list(user.get_active_hand(),user.get_inactive_hand())
/obj/effect/proc_holder/spell/targeted/charge/cast(list/targets,mob/user = usr)
for(var/mob/living/L in targets)
var/list/hand_items = list(L.get_active_hand(),L.get_inactive_hand())
var/charged_item = null
var/burnt_out = 0
for(var/obj/item in hand_items)
@@ -38,15 +38,15 @@
if(istype(item, /obj/item/weapon/spellbook/oneuse))
var/obj/item/weapon/spellbook/oneuse/I = item
if(prob(80))
user.visible_message("<span class='warning'>[I] catches fire!</span>")
L.visible_message("<span class='warning'>[I] catches fire!</span>")
qdel(I)
else
I.used = 0
charged_item = I
break
else
user << "<span class='caution'>Glowing red letters appear on the front cover...</span>"
user << "<span class='warning'>[pick("NICE TRY BUT NO!","CLEVER BUT NOT CLEVER ENOUGH!", "SUCH FLAGRANT CHEESING IS WHY WE ACCEPTED YOUR APPLICATION!", "CUTE!", "YOU DIDN'T THINK IT'D BE THAT EASY, DID YOU?")]</span>"
L << "<span class='caution'>Glowing red letters appear on the front cover...</span>"
L << "<span class='warning'>[pick("NICE TRY BUT NO!","CLEVER BUT NOT CLEVER ENOUGH!", "SUCH FLAGRANT CHEESING IS WHY WE ACCEPTED YOUR APPLICATION!", "CUTE!", "YOU DIDN'T THINK IT'D BE THAT EASY, DID YOU?")]</span>"
burnt_out = 1
else if(istype(item, /obj/item/weapon/gun/magic))
var/obj/item/weapon/gun/magic/I = item
@@ -86,9 +86,9 @@
charged_item = item
break
if(!charged_item)
user << "<span class='notice'>you feel magical power surging to your hands, but the feeling rapidly fades...</span>"
L << "<span class='notice'>you feel magical power surging to your hands, but the feeling rapidly fades...</span>"
else if(burnt_out)
user << "<span class='caution'>[charged_item] doesn't seem to be reacting to the spell...</span>"
L << "<span class='caution'>[charged_item] doesn't seem to be reacting to the spell...</span>"
else
playsound(get_turf(usr), "sound/magic/Charge.ogg", 50, 1)
user << "<span class='notice'>[charged_item] suddenly feels very warm!</span>"
playsound(get_turf(L), "sound/magic/Charge.ogg", 50, 1)
L << "<span class='notice'>[charged_item] suddenly feels very warm!</span>"
+2 -2
View File
@@ -15,8 +15,8 @@
var/cast_sound = 'sound/items/welder.ogg'
/obj/effect/proc_holder/spell/aoe_turf/conjure/cast(list/targets)
playsound(get_turf(usr), cast_sound, 50,1)
/obj/effect/proc_holder/spell/aoe_turf/conjure/cast(list/targets,mob/user = usr)
playsound(get_turf(user), cast_sound, 50,1)
for(var/turf/T in targets)
if(T.density && !summon_ignore_density)
targets -= T
+7 -7
View File
@@ -22,13 +22,13 @@
/obj/effect/proc_holder/spell/dumbfire/choose_targets(mob/user = usr)
var/turf/T = get_turf(usr)
var/turf/T = get_turf(user)
for(var/i = 1; i < range; i++)
var/turf/new_turf = get_step(T, usr.dir)
var/turf/new_turf = get_step(T, user.dir)
if(new_turf.density)
break
T = new_turf
perform(list(T))
perform(list(T),user = user)
/obj/effect/proc_holder/spell/dumbfire/cast(list/targets, mob/user = usr)
playMagSound()
@@ -46,7 +46,7 @@
projectile.dir = get_dir(projectile, target)
projectile.name = proj_name
var/current_loc = usr.loc
var/current_loc = user.loc
projectile.loc = current_loc
@@ -60,12 +60,12 @@
step(projectile, projectile.dir)
if(projectile.loc == current_loc || i == proj_lifespan)
projectile.cast(current_loc)
projectile.cast(current_loc,user=user)
break
var/mob/living/L = locate(/mob/living) in range(projectile, proj_trigger_range) - usr
var/mob/living/L = locate(/mob/living) in range(projectile, proj_trigger_range) - user
if(L && L.stat != DEAD)
projectile.cast(L.loc)
projectile.cast(L.loc,user=user)
break
if(proj_trail && projectile)
+2 -2
View File
@@ -8,8 +8,8 @@
action_icon_state = "emp"
sound = "sound/weapons/ZapBang.ogg"
/obj/effect/proc_holder/spell/targeted/emplosion/cast(list/targets)
playsound(get_turf(usr), sound, 50,1)
/obj/effect/proc_holder/spell/targeted/emplosion/cast(list/targets,mob/user = usr)
playsound(get_turf(user), sound, 50,1)
for(var/mob/living/target in targets)
empulse(target.loc, emp_heavy, emp_light)
+3 -3
View File
@@ -15,8 +15,8 @@
var/jaunt_duration = 50 //in deciseconds
action_icon_state = "jaunt"
/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/cast(list/targets) //magnets, so mostly hardcoded
playsound(get_turf(usr), 'sound/magic/Ethereal_Enter.ogg', 50, 1, -1)
/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/cast(list/targets,mob/user = usr) //magnets, so mostly hardcoded
playsound(get_turf(user), 'sound/magic/Ethereal_Enter.ogg', 50, 1, -1)
for(var/mob/living/target in targets)
target.notransform = 1 //protects the mob from being transformed (replaced) midjaunt and getting stuck in bluespace
spawn(0)
@@ -50,7 +50,7 @@
jaunt_steam(mobloc)
target.canmove = 0
holder.reappearing = 1
playsound(get_turf(usr), 'sound/magic/Ethereal_Exit.ogg', 50, 1, -1)
playsound(get_turf(user), 'sound/magic/Ethereal_Exit.ogg', 50, 1, -1)
sleep(20)
jaunt_reappear(animation, target)
sleep(5)
+1 -1
View File
@@ -7,7 +7,7 @@
var/ex_light = 3
var/ex_flash = 4
/obj/effect/proc_holder/spell/targeted/explosion/cast(list/targets)
/obj/effect/proc_holder/spell/targeted/explosion/cast(list/targets,mob/user = usr)
for(var/mob/living/target in targets)
explosion(target.loc,ex_severe,ex_heavy,ex_light,ex_flash)
+1 -1
View File
@@ -15,7 +15,7 @@
6th bit - ?
*/
/obj/effect/proc_holder/spell/targeted/genetic/cast(list/targets)
/obj/effect/proc_holder/spell/targeted/genetic/cast(list/targets,mob/user = usr)
playMagSound()
for(var/mob/living/carbon/target in targets)
if(!target.dna)
+1 -1
View File
@@ -19,7 +19,7 @@
var/summon_type = null //this will put an obj at the target's location
/obj/effect/proc_holder/spell/targeted/inflict_handler/cast(list/targets)
/obj/effect/proc_holder/spell/targeted/inflict_handler/cast(list/targets,mob/user = usr)
for(var/mob/living/target in targets)
playsound(target,sound, 50,1)
+2 -2
View File
@@ -12,8 +12,8 @@
action_icon_state = "knock"
/obj/effect/proc_holder/spell/aoe_turf/knock/cast(list/targets)
usr << sound("sound/magic/Knock.ogg")
/obj/effect/proc_holder/spell/aoe_turf/knock/cast(list/targets,mob/user = usr)
user << sound("sound/magic/Knock.ogg")
for(var/turf/T in targets)
for(var/obj/machinery/door/door in T.contents)
spawn(1)
+22 -22
View File
@@ -34,35 +34,35 @@
ticker.mode.round_ends_with_antag_death = 1
..()
/obj/effect/proc_holder/spell/targeted/lichdom/cast(list/targets)
for(var/mob/user in targets)
/obj/effect/proc_holder/spell/targeted/lichdom/cast(list/targets,mob/user = usr)
for(var/mob/M in targets)
var/list/hand_items = list()
if(iscarbon(user))
hand_items = list(user.get_active_hand(),user.get_inactive_hand())
if(iscarbon(M))
hand_items = list(M.get_active_hand(),M.get_inactive_hand())
if(marked_item && !stat_allowed) //sanity, shouldn't happen without badminry
marked_item = null
return
if(stat_allowed) //Death is not my end!
if(user.stat == CONSCIOUS && iscarbon(user))
user << "<span class='notice'>You aren't dead enough to revive!</span>" //Usually a good problem to have
if(M.stat == CONSCIOUS && iscarbon(M))
M << "<span class='notice'>You aren't dead enough to revive!</span>" //Usually a good problem to have
charge_counter = charge_max
return
if(!marked_item || qdeleted(marked_item)) //Wait nevermind
user << "<span class='warning'>Your phylactery is gone!</span>"
M << "<span class='warning'>Your phylactery is gone!</span>"
return
var/turf/user_turf = get_turf(user)
var/turf/user_turf = get_turf(M)
var/turf/item_turf = get_turf(marked_item)
if(user_turf.z != item_turf.z)
user << "<span class='warning'>Your phylactery is out of range!</span>"
M << "<span class='warning'>Your phylactery is out of range!</span>"
return
if(isobserver(user))
var/mob/dead/observer/O = user
if(isobserver(M))
var/mob/dead/observer/O = M
O.reenter_corpse()
var/mob/living/carbon/human/lich = new /mob/living/carbon/human(item_turf)
@@ -72,8 +72,8 @@
lich.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe/black(lich), slot_wear_suit)
lich.equip_to_slot_or_del(new /obj/item/clothing/head/wizard/black(lich), slot_head)
lich.real_name = user.mind.name
user.mind.transfer_to(lich)
lich.real_name = M.mind.name
M.mind.transfer_to(lich)
lich.hardset_dna(null,null,lich.real_name,null,/datum/species/skeleton)
lich << "<span class='warning'>Your bones clatter and shutter as they're pulled back into this world!</span>"
charge_max += 600
@@ -99,15 +99,15 @@
if(ABSTRACT in item.flags || NODROP in item.flags)
continue
marked_item = item
user << "<span class='warning'>You begin to focus your very being into the [item.name]...</span>"
M << "<span class='warning'>You begin to focus your very being into the [item.name]...</span>"
break
if(!marked_item)
user << "<span class='caution'>You must hold an item you wish to make your phylactery...</span>"
M << "<span class='caution'>You must hold an item you wish to make your phylactery...</span>"
spawn(50)
if(marked_item.loc != user) //I changed my mind I don't want to put my soul in a cheeseburger!
user << "<span class='warning'>Your soul snaps back to your body as you drop the [marked_item.name]!</span>"
if(marked_item.loc != M) //I changed my mind I don't want to put my soul in a cheeseburger!
M << "<span class='warning'>Your soul snaps back to your body as you drop the [marked_item.name]!</span>"
marked_item = null
return
name = "RISE!"
@@ -118,11 +118,11 @@
marked_item.name = "Ensouled [marked_item.name]"
marked_item.desc = "A terrible aura surrounds this item, its very existence is offensive to life itself..."
marked_item.color = "#003300"
user << "<span class='userdanger'>With a hideous feeling of emptiness you watch in horrified fascination as skin sloughs off bone! Blood boils, nerves disintegrate, eyes boil in their sockets! As your organs crumble to dust in your fleshless chest you come to terms with your choice. You're a lich!</span>"
user.set_species(/datum/species/skeleton)
current_body = user.mind.current
if(ishuman(user))
var/mob/living/carbon/human/H = user
M << "<span class='userdanger'>With a hideous feeling of emptiness you watch in horrified fascination as skin sloughs off bone! Blood boils, nerves disintegrate, eyes boil in their sockets! As your organs crumble to dust in your fleshless chest you come to terms with your choice. You're a lich!</span>"
M.set_species(/datum/species/skeleton)
current_body = M.mind.current
if(ishuman(M))
var/mob/living/carbon/human/H = M
H.unEquip(H.wear_suit)
H.unEquip(H.head)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe/black(H), slot_wear_suit)
+3 -3
View File
@@ -27,7 +27,7 @@
Snd = new/sound('sound/magic/lightning_chargeup.ogg',channel = 7)
halo = image("icon"='icons/effects/effects.dmi',"icon_state" ="electricity","layer" = EFFECTS_LAYER)
user.overlays.Add(halo)
playsound(get_turf(usr), Snd, 50, 0)
playsound(get_turf(user), Snd, 50, 0)
if(do_mob(user,user,100,uninterruptible=1))
if(ready && cast_check(skipcharge=1))
choose_targets()
@@ -48,13 +48,13 @@
ready = 0
var/mob/living/carbon/target = targets[1]
Snd=sound(null, repeat = 0, wait = 1, channel = Snd.channel) //byond, why you suck?
playsound(get_turf(usr),Snd,50,0)// Sorry MrPerson, but the other ways just didn't do it the way i needed to work, this is the only way.
playsound(get_turf(user),Snd,50,0)// Sorry MrPerson, but the other ways just didn't do it the way i needed to work, this is the only way.
if(get_dist(user,target)>range)
user << "<span class='notice'>They are too far away!</span>"
Reset(user)
return
playsound(get_turf(usr), 'sound/magic/lightningbolt.ogg', 50, 1)
playsound(get_turf(user), 'sound/magic/lightningbolt.ogg', 50, 1)
user.Beam(target,icon_state="lightning",icon='icons/effects/effects.dmi',time=5)
Bolt(user,target,30,5,user)
+1 -1
View File
@@ -53,7 +53,7 @@
still_recharging_msg = "<span class='warning'>You'll have to wait before you can give your vow of silence again!</span>"
..()
/obj/effect/proc_holder/spell/targeted/mime/speak/cast(list/targets)
/obj/effect/proc_holder/spell/targeted/mime/speak/cast(list/targets,mob/user = usr)
for(var/mob/living/carbon/human/H in targets)
H.mind.miming=!H.mind.miming
if(H.mind.miming)
+2 -2
View File
@@ -38,7 +38,7 @@
projectile.dir = get_dir(target,projectile)
projectile.name = proj_name
var/current_loc = usr.loc
var/current_loc = user.loc
projectile.loc = current_loc
@@ -76,7 +76,7 @@
qdel(trail)
if(projectile.loc in range(target.loc,proj_trigger_range))
projectile.perform(list(target))
projectile.perform(list(target),user=user)
break
current_loc = projectile.loc
+1 -1
View File
@@ -15,7 +15,7 @@
var/list/current_shapes = list()
var/list/current_casters = list()
/obj/effect/proc_holder/spell/targeted/shapeshift/cast(list/targets)
/obj/effect/proc_holder/spell/targeted/shapeshift/cast(list/targets,mob/user = usr)
for(var/mob/living/M in targets)
if(M in current_shapes)
Restore(M)
+15 -15
View File
@@ -15,9 +15,9 @@
action_icon_state = "summons"
/obj/effect/proc_holder/spell/targeted/summonitem/cast(list/targets)
for(var/mob/living/user in targets)
var/list/hand_items = list(user.get_active_hand(),user.get_inactive_hand())
/obj/effect/proc_holder/spell/targeted/summonitem/cast(list/targets,mob/user = usr)
for(var/mob/living/L in targets)
var/list/hand_items = list(L.get_active_hand(),L.get_inactive_hand())
var/butterfingers = 0
var/message
@@ -58,7 +58,7 @@
var/obj/item/organ/internal/organ = item_to_retrive
if(organ.owner)
// If this code ever runs I will be happy
add_logs(user, organ.owner, "magically removed [organ.name] from", addition="INTENT: [uppertext(user.a_intent)]")
add_logs(L, organ.owner, "magically removed [organ.name] from", addition="INTENT: [uppertext(L.a_intent)]")
organ.Remove(organ.owner)
else
while(!isturf(item_to_retrive.loc) && infinite_recursion < 10) //if it's in something you get the whole thing.
@@ -67,7 +67,7 @@
if(issilicon(M)) //Items in silicons warp the whole silicon
M.loc.visible_message("<span class='warning'>[M] suddenly disappears!</span>")
M.loc = user.loc
M.loc = L.loc
M.loc.visible_message("<span class='caution'>[M] suddenly appears!</span>")
item_to_retrive = null
break
@@ -95,22 +95,22 @@
item_to_retrive.loc.visible_message("<span class='warning'>The [item_to_retrive.name] suddenly disappears!</span>")
if(user.hand) //left active hand
if(!user.equip_to_slot_if_possible(item_to_retrive, slot_l_hand, 0, 1, 1))
if(!user.equip_to_slot_if_possible(item_to_retrive, slot_r_hand, 0, 1, 1))
if(L.hand) //left active hand
if(!L.equip_to_slot_if_possible(item_to_retrive, slot_l_hand, 0, 1, 1))
if(!L.equip_to_slot_if_possible(item_to_retrive, slot_r_hand, 0, 1, 1))
butterfingers = 1
else //right active hand
if(!user.equip_to_slot_if_possible(item_to_retrive, slot_r_hand, 0, 1, 1))
if(!user.equip_to_slot_if_possible(item_to_retrive, slot_l_hand, 0, 1, 1))
if(!L.equip_to_slot_if_possible(item_to_retrive, slot_r_hand, 0, 1, 1))
if(!L.equip_to_slot_if_possible(item_to_retrive, slot_l_hand, 0, 1, 1))
butterfingers = 1
if(butterfingers)
item_to_retrive.loc = user.loc
item_to_retrive.loc = L.loc
item_to_retrive.loc.visible_message("<span class='caution'>The [item_to_retrive.name] suddenly appears!</span>")
playsound(get_turf(user),"sound/magic/SummonItems_generic.ogg",50,1)
playsound(get_turf(L),"sound/magic/SummonItems_generic.ogg",50,1)
else
item_to_retrive.loc.visible_message("<span class='caution'>The [item_to_retrive.name] suddenly appears in [user]'s hand!</span>")
playsound(get_turf(user),"sound/magic/SummonItems_generic.ogg",50,1)
item_to_retrive.loc.visible_message("<span class='caution'>The [item_to_retrive.name] suddenly appears in [L]'s hand!</span>")
playsound(get_turf(L),"sound/magic/SummonItems_generic.ogg",50,1)
if(message)
user << message
L << message
+3 -3
View File
@@ -14,10 +14,10 @@
return 0
..()
/obj/effect/proc_holder/spell/targeted/touch/cast(list/targets)
for(var/mob/living/carbon/user in targets)
/obj/effect/proc_holder/spell/targeted/touch/cast(list/targets,mob/user = usr)
for(var/mob/living/carbon/C in targets)
if(!attached_hand)
if(!ChargeHand(user))
if(!ChargeHand(C))
return 0
while(attached_hand) //hibernate untill the spell is actually used
charge_counter = 0
+1 -1
View File
@@ -19,7 +19,7 @@
starting_spells = null
return ..()
/obj/effect/proc_holder/spell/targeted/trigger/cast(list/targets)
/obj/effect/proc_holder/spell/targeted/trigger/cast(list/targets,mob/user = usr)
playMagSound()
for(var/mob/living/target in targets)
for(var/obj/effect/proc_holder/spell/spell in contents)
+3 -3
View File
@@ -11,8 +11,8 @@
var/sound1 = "sound/weapons/ZapBang.ogg"
var/sound2 = "sound/weapons/ZapBang.ogg"
/obj/effect/proc_holder/spell/targeted/turf_teleport/cast(list/targets)
playsound(get_turf(usr), sound1, 50,1)
/obj/effect/proc_holder/spell/targeted/turf_teleport/cast(list/targets,mob/user = usr)
playsound(get_turf(user), sound1, 50,1)
for(var/mob/living/target in targets)
var/list/turfs = new/list()
for(var/turf/T in range(target,outer_tele_radius))
@@ -41,4 +41,4 @@
if(target.buckled_mob)
target.unbuckle_mob(force=1)
target.loc = picked
playsound(get_turf(usr), sound2, 50,1)
playsound(get_turf(user), sound2, 50,1)
+5 -6
View File
@@ -273,7 +273,7 @@
action_icon_state = "fireball"
sound = "sound/magic/Fireball.ogg"
/obj/effect/proc_holder/spell/turf/fireball/cast(turf/T)
/obj/effect/proc_holder/spell/turf/fireball/cast(turf/T,mob/user = usr)
explosion(T, -1, 0, 2, 3, 0, flame_range = 2)
@@ -303,8 +303,7 @@
action_icon_state = "repulse"
/obj/effect/proc_holder/spell/aoe_turf/repulse/cast(list/targets)
var/mob/user = usr
/obj/effect/proc_holder/spell/aoe_turf/repulse/cast(list/targets,mob/user = usr)
var/list/thrownatoms = list()
var/atom/throwtarget
var/distfromcaster
@@ -351,9 +350,9 @@
action_icon_state = "tailsweep"
action_background_icon_state = "bg_alien"
/obj/effect/proc_holder/spell/aoe_turf/repulse/xeno/cast(list/targets)
if(istype(usr, /mob/living/carbon))
var/mob/living/carbon/C = usr
/obj/effect/proc_holder/spell/aoe_turf/repulse/xeno/cast(list/targets,mob/user = usr)
if(istype(user, /mob/living/carbon))
var/mob/living/carbon/C = user
playsound(C.loc, 'sound/voice/hiss5.ogg', 80, 1, 1)
C.spin(6,1)
..()
+11 -3
View File
@@ -373,7 +373,6 @@ var/list/uplink_items = list()
desc = "A box of shurikens from ancient Earth martial arts. They are highly effective throwing weapons, and will embed into limbs when possible."
item = /obj/item/weapon/storage/box/throwing_stars
cost = 6
excludefrom = list(/datum/game_mode/nuclear)
/datum/uplink_item/stealthy_weapons/edagger
name = "Energy Dagger"
@@ -583,6 +582,16 @@ var/list/uplink_items = list()
cost = 8
excludefrom = list(/datum/game_mode/gang)
/datum/uplink_item/device_tools/hardsuit
name = "Elite Syndicate Hardsuit"
desc = "The elite Syndicate hardsuit is worn by only the best nuclear agents. Features much better armoring and complete fireproofing, as well as a built in jetpack. \
When the built in helmet is deployed your identity will be protected, even in death, as the suit cannot be removed by outside forces. Toggling the suit into combat mode \
will allow you all the mobility of a loose fitting uniform without sacrificing armoring. Additionally the suit is collapsible, small enough to fit within a backpack. \
Nanotrasen crewmembers are trained to report red space suit sightings; these suits in particular are known to drive employees into a panic."
item = /obj/item/clothing/suit/space/hardsuit/syndi/elite
cost = 8
gamemodes = list(/datum/game_mode/nuclear)
/datum/uplink_item/device_tools/thermal
name = "Thermal Imaging Glasses"
desc = "These goggles can be turned to resemble common eyewears throughout the station. \
@@ -793,7 +802,6 @@ var/list/uplink_items = list()
You can also play card games with them or leave them on your victims."
item = /obj/item/toy/cards/deck/syndicate
cost = 1
excludefrom = list(/datum/game_mode/nuclear)
surplus = 40
/datum/uplink_item/badass/syndiecash
@@ -874,4 +882,4 @@ var/list/uplink_items = list()
U.purchase_log += "<BIG>\icon[C]</BIG>"
for(var/item in bought_items)
new item(C)
U.purchase_log += "<BIG>\icon[item]</BIG>"
U.purchase_log += "<BIG>\icon[item]</BIG>"