mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-19 02:54:41 +01:00
Magic Overhaul Part Deux
This commit is contained in:
@@ -154,6 +154,7 @@
|
||||
#include "code\datums\spells\area_teleport.dm"
|
||||
#include "code\datums\spells\charge.dm"
|
||||
#include "code\datums\spells\conjure.dm"
|
||||
#include "code\datums\spells\construct_spells.dm"
|
||||
#include "code\datums\spells\dumbfire.dm"
|
||||
#include "code\datums\spells\emplosion.dm"
|
||||
#include "code\datums\spells\ethereal_jaunt.dm"
|
||||
|
||||
@@ -48,6 +48,9 @@
|
||||
I.max_charges = 0
|
||||
burnt_out = 1
|
||||
I.charges = I.max_charges
|
||||
if(istype(item,/obj/item/weapon/gun/magic/wand) && I.max_charges != 0)
|
||||
var/obj/item/weapon/gun/magic/W = item
|
||||
W.icon_state = initial(W.icon_state)
|
||||
charged_item = I
|
||||
break
|
||||
else if(istype(item, /obj/item/weapon/cell/))
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
if(H.stat == 2 || !(H.client)) continue
|
||||
if(H.mind)
|
||||
if(H.mind.special_role == "Wizard" || H.mind.special_role == "apprentice") continue
|
||||
if(prob(25))
|
||||
if(prob(25) && !(H.mind in ticker.mode.traitors))
|
||||
ticker.mode.traitors += H.mind
|
||||
H.mind.special_role = "traitor"
|
||||
var/datum/objective/survive/survive = new
|
||||
@@ -20,7 +20,7 @@
|
||||
H << "<B>Objective #[obj_count]</B>: [OBJ.explanation_text]"
|
||||
obj_count++
|
||||
var/randomizeguns = pick("taser","egun","laser","revolver","detective","smg","nuclear","deagle","gyrojet","pulse","silenced","cannon","doublebarrel","shotgun","combatshotgun","mateba","smg","uzi","crossbow","saw")
|
||||
var/randomizemagic = pick("fireball","smoke","blind","mindswap","forcewall","knock","horsemask","charge","wandnothing", "wanddeath", "wandresurrection", "wandpolymorph", "wandteleport", "wanddoor", "wandfireball", "staffchange", "staffanimation", "staffhealing", "armor", "scrying")
|
||||
var/randomizemagic = pick("fireball","smoke","blind","mindswap","forcewall","knock","horsemask","charge","wandnothing", "wanddeath", "wandresurrection", "wandpolymorph", "wandteleport", "wanddoor", "wandfireball", "staffchange", "staffhealing", "armor", "scrying")
|
||||
if(!summon_type)
|
||||
switch (randomizeguns)
|
||||
if("taser")
|
||||
@@ -96,8 +96,6 @@
|
||||
new /obj/item/weapon/gun/magic/wand/door(get_turf(H))
|
||||
if("staffchange")
|
||||
new /obj/item/weapon/gun/magic/staff/change(get_turf(H))
|
||||
if("staffanimation")
|
||||
new /obj/item/weapon/gun/magic/staff/animate(get_turf(H))
|
||||
if("staffhealing")
|
||||
new /obj/item/weapon/gun/magic/staff/healing(get_turf(H))
|
||||
if("armor")
|
||||
|
||||
@@ -795,7 +795,7 @@
|
||||
/obj/item/clothing/suit/wizrobe/fake = 1,/obj/item/clothing/head/wizard/fake = 1,/obj/item/weapon/staff = 3,/obj/item/clothing/mask/gas/sexyclown = 1,
|
||||
/obj/item/clothing/under/sexyclown = 1,/obj/item/clothing/mask/gas/sexymime = 1,/obj/item/clothing/under/sexymime = 1,/obj/item/clothing/suit/apron/overalls = 1,
|
||||
/obj/item/clothing/head/rabbitears =1) //Pretty much everything that had a chance to spawn.
|
||||
contraband = list(/obj/item/clothing/suit/cardborg = 1,/obj/item/clothing/head/cardborg = 1,/obj/item/clothing/suit/judgerobe = 1,/obj/item/clothing/head/powdered_wig = 1)
|
||||
contraband = list(/obj/item/clothing/suit/cardborg = 1,/obj/item/clothing/head/cardborg = 1,/obj/item/clothing/suit/judgerobe = 1,/obj/item/clothing/head/powdered_wig = 1,/obj/item/weapon/gun/magic/wand = 1)
|
||||
premium = list(/obj/item/clothing/suit/hgpirate = 1, /obj/item/clothing/head/hgpiratecap = 1, /obj/item/clothing/head/helmet/roman = 1, /obj/item/clothing/head/helmet/roman/legionaire = 1, /obj/item/clothing/under/roman = 1, /obj/item/clothing/shoes/roman = 1, /obj/item/weapon/shield/riot/roman = 1)
|
||||
refill_canister = /obj/item/weapon/vending_refill/autodrobe
|
||||
/obj/machinery/vending/dinnerware
|
||||
|
||||
@@ -117,6 +117,8 @@
|
||||
<A href='?src=\ref[src];secretsfun=fakeguns'>Make all items look like guns</A><BR>
|
||||
<A href='?src=\ref[src];secretsfun=schoolgirl'>Japanese Animes Mode</A><BR>
|
||||
<A href='?src=\ref[src];secretsfun=eagles'>Egalitarian Station Mode</A><BR>
|
||||
<A href='?src=\ref[src];secretsfun=guns'>Summon Guns</A><BR>
|
||||
<A href='?src=\ref[src];secretsfun=magic'>Summon Magic</A><BR>
|
||||
<BR>
|
||||
<A href='?src=\ref[src];secretsfun=securitylevel0'>Change Security Level To Green</A><BR>
|
||||
<A href='?src=\ref[src];secretsfun=securitylevel1'>Change Security Level To Blue</A><BR>
|
||||
|
||||
@@ -2274,6 +2274,14 @@
|
||||
feedback_add_details("admin_secrets_fun_used","OO")
|
||||
usr.client.only_one()
|
||||
// message_admins("[key_name_admin(usr)] has triggered a battle to the death (only one)")
|
||||
if("guns")
|
||||
feedback_inc("admin_secrets_fun_used",1)
|
||||
feedback_add_details("admin_secrets_fun_used","SG")
|
||||
usr.rightandwrong(0)
|
||||
if("magic")
|
||||
feedback_inc("admin_secrets_fun_used",1)
|
||||
feedback_add_details("admin_secrets_fun_used","SM")
|
||||
usr.rightandwrong(1)
|
||||
if("securitylevel0")
|
||||
set_security_level(0)
|
||||
message_admins("\blue [key_name_admin(usr)] change security level to Green.", 1)
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
name = "wand of nothing"
|
||||
desc = "It's not just a stick, it's a MAGIC stick!"
|
||||
projectile_type = "/obj/item/projectile/magic"
|
||||
icon_state = "wand6"
|
||||
icon_state = "nothingwand"
|
||||
item_state = "wand"
|
||||
w_class = 2
|
||||
can_charge = 0
|
||||
@@ -35,11 +35,12 @@
|
||||
..()
|
||||
|
||||
/obj/item/weapon/gun/magic/wand/afterattack(atom/target as mob, mob/living/user as mob)
|
||||
if(!charges)
|
||||
user << "<span class='warning'>The [name] whizzles quietly.<span>"
|
||||
icon_state = "[icon_state]-drained"
|
||||
return
|
||||
if(target == user)
|
||||
if(charges)
|
||||
zap_self(user)
|
||||
else
|
||||
user << "<span class='caution'>The [name] whizzles quietly.<span>"
|
||||
zap_self(user)
|
||||
else
|
||||
..()
|
||||
|
||||
@@ -50,7 +51,7 @@
|
||||
name = "wand of death"
|
||||
desc = "This deadly wand overwhelms the victim's body with pure energy, slaying them without fail."
|
||||
projectile_type = "/obj/item/projectile/magic/death"
|
||||
icon_state = "wand4"
|
||||
icon_state = "deathwand"
|
||||
max_charges = 3 //3, 2, 2, 1
|
||||
|
||||
/obj/item/weapon/gun/magic/wand/death/zap_self(mob/living/user as mob)
|
||||
@@ -66,7 +67,7 @@
|
||||
name = "wand of resurrection"
|
||||
desc = "This wand uses healing magics to heal and revive. They are rarely utilized within the Wizard Federation for some reason."
|
||||
projectile_type = "/obj/item/projectile/magic/resurrection"
|
||||
icon_state = "wand1"
|
||||
icon_state = "revivewand"
|
||||
max_charges = 3 //3, 2, 2, 1
|
||||
|
||||
/obj/item/weapon/gun/magic/wand/resurrection/zap_self(mob/living/user as mob)
|
||||
@@ -87,7 +88,7 @@
|
||||
name = "wand of polymorph"
|
||||
desc = "This wand is attuned to chaos and will radically alter the victim's form."
|
||||
projectile_type = "/obj/item/projectile/magic/change"
|
||||
icon_state = "wand5"
|
||||
icon_state = "polywand"
|
||||
max_charges = 10 //10, 5, 5, 4
|
||||
|
||||
/obj/item/weapon/gun/magic/wand/polymorph/zap_self(mob/living/user as mob)
|
||||
@@ -100,7 +101,7 @@
|
||||
name = "wand of teleportation"
|
||||
desc = "This wand will wrench targets through space and time to move them somewhere else."
|
||||
projectile_type = "/obj/item/projectile/magic/teleport"
|
||||
icon_state = "wand3"
|
||||
icon_state = "telewand"
|
||||
max_charges = 10 //10, 5, 5, 4
|
||||
|
||||
/obj/item/weapon/gun/magic/wand/teleport/zap_self(mob/living/user as mob)
|
||||
@@ -115,7 +116,7 @@
|
||||
name = "wand of door creation"
|
||||
desc = "This particular wand can create doors in any wall for the unscrupulous wizard who shuns teleportation magics."
|
||||
projectile_type = "/obj/item/projectile/magic/door"
|
||||
icon_state = "wand0"
|
||||
icon_state = "doorwand"
|
||||
max_charges = 20 //20, 10, 10, 7
|
||||
|
||||
/obj/item/weapon/gun/magic/wand/door/zap_self()
|
||||
@@ -125,7 +126,7 @@
|
||||
name = "wand of fireball"
|
||||
desc = "This wand shoots scorching balls of fire that explode into destructive flames."
|
||||
projectile_type = "/obj/item/projectile/magic/fireball"
|
||||
icon_state = "wand2"
|
||||
icon_state = "firewand"
|
||||
max_charges = 8 //8, 4, 4, 3
|
||||
|
||||
/obj/item/weapon/gun/magic/wand/fireball/zap_self(mob/living/user as mob)
|
||||
|
||||
@@ -38,21 +38,26 @@
|
||||
|
||||
if(istype(target,/mob))
|
||||
var/old_stat = target.stat
|
||||
if(target.stat == DEAD)
|
||||
dead_mob_list -= target
|
||||
living_mob_list += target
|
||||
target.stat = CONSCIOUS
|
||||
target.tod = null
|
||||
target.setToxLoss(0)
|
||||
target.setOxyLoss(0)
|
||||
target.setCloneLoss(0)
|
||||
target.SetParalysis(0)
|
||||
target.SetStunned(0)
|
||||
target.SetWeakened(0)
|
||||
target.radiation = 0
|
||||
target.heal_overall_damage(target.getBruteLoss(), target.getFireLoss())
|
||||
target.reagents.clear_reagents()
|
||||
target.suiciding = 0
|
||||
if(isanimal(target) && target.stat == DEAD)
|
||||
var/mob/living/simple_animal/O = target
|
||||
var/mob/living/simple_animal/A = new O.type(O.loc)
|
||||
A.real_name = O.real_name
|
||||
A.name = O.name
|
||||
if(iscorgi(O))
|
||||
var/mob/living/simple_animal/corgi/C = O
|
||||
if(C.inventory_head)
|
||||
C.inventory_head.loc = C.loc
|
||||
if(C.inventory_back)
|
||||
C.inventory_back.loc = C.loc
|
||||
if(O.mind)
|
||||
O.mind.transfer_to(A)
|
||||
else
|
||||
A.key = O.key
|
||||
del(O)
|
||||
target = A
|
||||
else
|
||||
target.revive()
|
||||
target.suiciding = 0
|
||||
if(!target.ckey)
|
||||
for(var/mob/dead/observer/ghost in player_list)
|
||||
if(target.real_name == ghost.real_name)
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 49 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB |
Reference in New Issue
Block a user