mob/Enemies/New()
src.HP=src.MaxHP
spawn(-1) src.CombatAI()
return ..()
mob/Enemies/proc/CombatAI()
while(src)
for(var/mob/Player/M in oview())
if(get_dist(src,M)<=1)
src.dir=get_dir(src,M)
src.Attack()
flick("attack",src)
sleep(rand(20,40))
else
if(get_dist(src,M)<=2)
step_to(src,M)
flick("walking",src)
break
sleep(rand(4,8))
-------------------
mob
verb
Attack()
flick("attack",src)
for(var/mob/M in get_step(src,src.dir))
var/Damage=rand(0,str)
view(M)<<"[src] hit [M] for [Damage] Damage!"
M.TakeDamage(Damage,src)
--------------------
DeathCheck(var/mob/Killer)
if(src.HP<=0)
if(src.client)
world<<"[Killer] Killed [src]!"
src.HP=src.MaxHP
src.loc=locate(5,5,1)
else
Killer<<"You Killed [src] for [src.exp] Exp"
Killer.exp+=src.exp
Killer.LevelCheck()
del src
TakeDamage(var/Damage,var/mob/Attacker)
src.HP-=Damage
src.DeathCheck(Attacker)
(The dashes separate different code files)