function A_PawnChase(actor, var1, var2)
	if not (actor.target) then
		P_SetMobjStateNF(actor, actor.info.spawnstate)
		//actor.state = mobjinfo[actor.type].spawnstate
	end
	
	local range = R_PointToDist2(actor.x, actor.y, actor.target.x, actor.target.y)/FRACUNIT
	if (range > 2800) then
		P_SetMobjStateNF(actor, actor.info.spawnstate)
		//actor.state = mobjinfo[actor.type].spawnstate
	end
	
	//if P_LookForPlayers(actor, 2800, true, false) then 
		//return 
		//end
	if (not actor.target or not (actor.target.flags & MF_SHOOTABLE))
		if (P_LookForPlayers(actor, 2800, true, false))
			return
		end
		P_SetMobjStateNF(actor, actor.info.spawnstate)
		return
	end
	
	
	local angle2 = R_PointToAngle2(actor.x, actor.y, actor.target.x, actor.target.y)
	local diff = actor.angle - angle2
	
	if (diff < 0) then
		actor.angle = $+(ANG10)
	else
		actor.angle = $-(ANG10)
	end
	
	if (range < 250) and (range > 100) then
		actor.angle = angle2
	end
	
	//local tryx, tryy;
	
	
	//tryx = actor.x + P_ReturnThrustX(actor, actor.angle, 2*FRACUNIT);
	//tryy = actor.y + P_ReturnThrustY(actor, actor.angle, 2*FRACUNIT);
	
	//if abs(actor.z - P_FloorzAtPos(tryx, tryy, actor.z, actor.height)) < 128
	
	//if (P_TryMove(actor, tryx, tryy, false)) == true then
		P_Thrust(actor, actor.angle, 2*FRACUNIT)
	//P_Move(actor, 30)
	//if (actor.movecount < 0 || !P_Move(actor, actor.speed))
	//		P_NewChaseDir(actor);
	//P_Thrust(actor, actor.angle, 10*FRACUNIT)

end