mob/var/tmp
Flame_Cooldown=0
mob/pyro/verb/Forest()
set category="Techniques"
set name="Flame Burst"
if(!usr.Flame_Cooldown)
if(usr.energy>200)
usr.energy-=200
usr.Flame_Cooldown = 1
usr<<"You begin expanding the untapped fire in your body..."
sleep(10)
view(5)<<"[usr.name]: Flame Burst!!!"
//var/damage = usr.edamage*1.25
var/obj/A = new/obj/Flame(usr.loc)
A.owner = usr
var/obj/B = new/obj/Flame(usr.loc)
B.owner = usr
var/obj/C = new/obj/Flame(usr.loc)
C.owner = usr
var/obj/D = new/obj/Flame(usr.loc)
D.owner = usr
var/obj/E = new/obj/Flame2(usr.loc)
E.owner = usr
var/obj/F = new/obj/Flame2(usr.loc)
F.owner = usr
var/obj/G = new/obj/Flame2(usr.loc)
G.owner = usr
var/obj/H = new/obj/Flame2(usr.loc)
H.owner = usr
//A.damage = damage
//B.damage = damage
//C.damage = damage
//D.damage = damage
//E.damage = damage
//F.damage = damage
//G.damage = damage
//H.damage = damage
A.dir = NORTHEAST
B.dir = NORTHWEST
C.dir = SOUTHEAST
D.dir = SOUTHWEST
E.dir = NORTH
F.dir = WEST
G.dir = EAST
H.dir = SOUTH
walk(A,A.dir)
walk(B,B.dir)
walk(C,C.dir)
walk(D,D.dir)
walk(E,E.dir)
walk(F,F.dir)
walk(G,G.dir)
walk(H,H.dir)
usr.move=0
sleep(5)
for(var/obj/Flame/T in world)
if(T.owner == usr)
walk(T,0)
T.density = 0
for(var/obj/Flame2/T in world)
if(T.owner == usr)
walk(T,0)
T.density = 0
sleep(60)
for(var/obj/Flame/T in world)
if(T.owner == usr)
del(T)
for(var/obj/Flame2/T in world)
if(T.owner == usr)
del(T)
for(var/obj/FlameTrail/T in world)
if(T.owner == usr)
del(T)
for(var/obj/FlameTrail2/T in world)
if(T.owner == usr)
del(T)
sleep(300)
usr<<"<b>You can now use Flame Burst again!</b>"
usr.Flame_Cooldown = 0
else
usr<<"Not enough energy! (Need 100)"
obj/Flame
icon = 'Flame.dmi'
layer = MOB_LAYER+1
density = 1
var/damage
New()
..()
pixel_y = rand(-5,5)
pixel_x = rand(-5,5)
// spawn(100)
// del(src)
Bump(A)
if(ismob(A))
var/mob/M = A
var/mob/O = src.owner
src.damage = O.edamage*1.5 - M.edefense
M.power-=src.damage
M.wound+=rand(2,5)
view(6,M)<<"<font color=red>[M] was hit by [O.name]'s Fire Blast for [src.damage] Damage!"
M.kocheck()
if(istype(A,/turf/))
var/turf/M = A
src.loc=M.loc
del(src)
if(istype(A,/obj/))
var/obj/M = A
src.loc=M.loc
Move()
var/mob/O = src.owner
var/C = new/obj/FlameTrail(src.loc)
C:dir = src.dir
C:owner = O
var/C2 = new/obj/FlameTrail2(src.loc)
C2:dir = src.dir
C2:owner = O
..()
var/A = new/obj/Flame2(src.loc)
var/B = new/obj/Flame2(src.loc)
A:owner=O
B:owner=O
A:damage = src.damage
B:damage = src.damage
if(src.dir==NORTHEAST)
A:dir = NORTH
B:dir = EAST
if(src.dir==SOUTHEAST)
A:dir = EAST
B:dir = SOUTH
if(src.dir==NORTHWEST)
A:dir = NORTH
B:dir = WEST
if(src.dir==SOUTHWEST)
A:dir = SOUTH
B:dir = WEST
walk(A,A:dir)
walk(B,B:dir)
obj/Flame2
icon = 'Flame.dmi'
layer = MOB_LAYER-1
density = 1
var/damage
New()
..()
pixel_y = rand(-5,5)
pixel_x = rand(-5,5)
// spawn(100)
// del(src)
Bump(A)
if(ismob(A))
var/mob/M = A
var/mob/O = src.owner
src.loc=M.loc
src.damage = O.edamage*1.2 - M.edefense
M.power -= damage
M.kocheck()
if(istype(A,/turf/))
var/turf/M = A
src.loc=M.loc
del(src)
if(istype(A,/obj/))
var/obj/M = A
src.loc=M.loc
Move()
var/mob/O = src.owner
var/C = new/obj/FlameTrail(src.loc)
C:dir = src.dir
C:owner = O
var/C2 = new/obj/FlameTrail2(src.loc)
C2:dir = src.dir
C2:owner = O
..()
obj
FlameTrail2
icon = 'Flame.dmi'
layer = MOB_LAYER-1
New()
..()
pixel_y = rand(-5,5)
pixel_x = rand(-5,5)
obj
FlameTrail
icon = 'Flame.dmi'
layer = MOB_LAYER+1
New()
..()
pixel_y = rand(-5,5)
pixel_x = rand(-5,5)
// spawn(100)
// del(src)
//KO Check right here (yes I know I should use /mob/whatever type of monster it is but honestly it doesn't matter
mob
proc
deathcheck()
if(wound >= 100 && Dead == 0 && client)
view() << "[src] has fallen!"
power = maxpower
loc = (locate(12,9,2))
strength += 1
defense += 1
wound = 0
overlays += 'halo.dmi'
Dead = 1
else
return
mob
proc
kocheck()
if(src.power <= 0 && src.client)
view(6) << "<b>[src] has been knocked out!!</b>"
ko = 1
usr.overlays+='KO.dmi'
src.move_allowed=0
wound += 20
deathcheck()
sleep(50)
usr.overlays-='KO.dmi'
view(6) << "<b>[src] has woken up!!</b>"
src.ko = 0
src.move_allowed = 1
else
if(src.name=="Starter Demon" && src.power <= 0)
view()<<"<b><font color=red>[src] has been killed by [usr]!</font>"
GlobalRepopWithDelay()
/*line 65*/usr.exp += rand(15000,20000)
usr.Levelup()
if(usr.onquest)
usr.questkilled+=1
usr.questcomplete()
del(src)
if(src.name=="Hydra" && src.power <= 0)
view()<<"<b><font color=red>[src] has been killed by [usr]!</font>"
GlobalRepopWithDelay()
usr.exp += rand(50000,100000)
usr.Levelup()
if(usr.onquest2)
usr.questkilled+=1
usr.questcomplete()
del(src)
proc/GlobalRepopWithDelay()
spawn(1000)
world.Repop()
Problem description:
So I get this runtime error.
runtime error: Cannot read 0.exp
proc name: kocheck (/mob/proc/kocheck)
source file: battle.dm,65
usr: 0
src: Starter Demon (/mob/monster/demon)
src.loc: the dirt (39,101,2) (/turf/dirt)
call stack:
Starter Demon (/mob/monster/demon): kocheck()
Flame (/obj/Flame): Bump(Starter Demon (/mob/monster/demon))
Flame (/obj/Flame): Move(the dirt (39,101,2) (/turf/dirt), 9)
Any help would be appreciated thnx :)