Multitiled Mobile Attack (MMA) in Developer Help
|
|
Code:
obj/projectile var/amount = 4 var/damage = 14 var/length = 20 var/delay = 2 var/mob/owner var/list/group = new
proc/ChangeState() if(src.amount <= 9) icon_state = "less than 10" else if(src.amount >= 10 && src.amount <= 25) icon_state = "10-25" else if(src.amount <= 0) del(src) else icon_state = "25-50"
Bump(atom/A) var/mob/O = src.owner if(istype(A,/mob)) var/mob/M = A src.explode() if(M != O) M.Hp -= src.damage world << "[src] hits [M] for [src.damage] damage!" M.DeathCheck(O) src.explode() else if(istype(A,/obj/breakable)) var/obj/breakable/B = A B.durability -= src.damage world << "[src] hits [B] for [src.damage] damage!" B.ChangeState() world << "Dura: [B.durability]/[B.max_durability]" src.explode() else if(istype(A,/obj/dense)) src.explode() else return
New(_loc,mob/_owner,_list) if(_owner) if(_list) src.group = _list src.dir = _owner.dir if(!src.loc) src.loc = get_step(_owner,_owner.dir) src.owner = _owner walk(src, src.dir, src.delay) Move() src.length-- if(!src.length) del(src) .=..() return
proc/explode() for(var/obj/projectile/xx in src.group) del(xx)
Fire1 icon = 'target.dmi' density = 1
Fire2 icon = 'target.dmi' density = 1
proc/Fire(mob/_loc) var/list/flist = new
flist+= new/obj/projectile/Fire1(locate(_loc.x-1,_loc.y-1,_loc.z),_loc,flist) flist+= new/obj/projectile/Fire1(locate(_loc.x+1,_loc.y-1,_loc.z),_loc,flist) flist+= new/obj/projectile/Fire1(locate(_loc.x-1,_loc.y+1,_loc.z),_loc,flist) flist+= new/obj/projectile/Fire1(locate(_loc.x+1,_loc.y+1,_loc.z),_loc,flist)
|
Problem description:I can't seem to get the projectile to delete all it's little pieces all at once so it looks like one big attack.
|