Code:
mob/Pokemon
verb
Attack()
set category="Pokemon Commands"
set name="Attack(Close)"
for(var/mob/M in get_step(usr,usr.dir))
if(M.rank=="Pokemon")
if(M.Faint)
usr<<"This Pokemon is fainted"
else
var/damage = round(usr.Attack*2 - M.Defense)
M.HP -= damage
world<<"[usr.name] did [damage] damage to [M]"
if(M.HP<=0)
M.HP=0
if(M.owner=="None")
del(M)
else
Faint(M)
else
return
mob/Pikachu
verb
Thunderschock()
set category="Pokemon Commands"
set name="Thundershock"
if(firing>=1)
return
else
var/obj/Thundershock/A = new/obj/Thundershock(loc, src)
firing=1
A.loc = usr.loc
if(usr.dir==NORTH)
A.y += 1
if(usr.dir==SOUTH)
A.y -= 1
if(usr.dir==EAST)
A.x += 1
if(usr.dir==WEST)
A.x -= 1
walk(A,usr.dir)
sleep(10)
firing=0
obj
Thundershock
icon='thundershock.dmi'
density=1
var/mob/attacker
New(a, mob/m)
.=..(a)
attacker = m
Bump(atom/A)
if(ismob(A))
var/mob/M = A
if(M.rank=="Pokemon")
if(M.Faint)
attacker << "The [M.name] is fainted"
else
var/damage1 = attacker.AttackD*attacker.Level
var/damage2 = attacker.Attack*2 + damage1
var/damage3 = round(damage2 - M.Defense)
M.HP -= damage3
world<<"[attacker.name] did [damage3] damage to [M]"
del(src)
if(M.HP<=0)
M.HP=0
if(M.owner=="None")
del(M)
else
M.Faint(M)
else
del(src)
return
mob
proc
Faint(mob/M)
M<<"Your Pokemon fainted. Please return it now."
M.overlays+='pokeball.dmi'
M.Faint=1
Problem description:
Thundershock works well and does damage, but for some reason, it wont faint. It gets down to 0 HP, and then I keep attacking it, and nothing. Then I walk up and use the Attack() verb, and it kills it.. Why wont thundershock kill it?
I'm not even going to look at the rest of your code until you call the default parent function after Bump.