ID:180623
 

this was a turf and it worked. but now i dont get any erors but it wont work



obj/catapult
density = 0
name = "dont sit here!"
icon = 'select.dmi'
var/direction = NORTH //see below

verb/Launch()
set src = oview(1) //implicit source
for(var/mob/M in src) //fling all mobs
CatapultFling(M, src.direction, rand(18,22))
for(var/obj/O in src) //fling all objs
CatapultFling(O, src.direction, rand(18,22))

proc/CatapultFling(O, dir, length=20)
if(length)
O:loc = get_step(O, dir)
spawn(3) CatapultFling(O,dir,--length)
else //landing!
O:Land()

i can type the verb but nothing happens


i can type the verb but nothing happens

Look right here:

for(var/mob/M in src) //fling all mobs
CatapultFling(M, src.direction, rand(18,22))

It's trying to fling everything inside the object. In a turf, this would make sense. But in the case of having your catapult as an obj, you would need to change that just slightly.

for(var/mob/M in src.loc) //fling all mobs in my loc
CatapultFling(M, src.direction, rand(18,22))