1. Make a confined play area like a zigzag tunnel.
2. If you can't directly observe where you end up: Melee Thread Walk an enemy any number of times.
A quick fix:
Code: Select all
- self:attackTarget(target, nil, t.getDamage(self, t), true)
-- Find a good spot to shoot from
local range = 5
local weapon = self:hasArcheryWeaponQS()
if weapon then range = weapon.combat.range end
local poss = {}
game.logPlayer(self, "range %d", range)
for i = x - range, x + range do
for j = y - range, y + range do
if game.level.map:isBound(i, j) and
core.fov.distance(x, y, i, j) <= range and -- make sure they're within arrow range
core.fov.distance(i, j, self.x, self.y) >= range/2 and
self:canMove(i, j) and target:hasLOS(i, j) then
poss[#poss+1] = {i,j}
end
end
end
- if #poss == 0 then return game.logSeen(self, "The spell fizzles!") end
+ if #poss == 0 then return game.logSeen(self, "The spell fizzles!")
+ else self:attackTarget(target, nil, t.getDamage(self, t), true) end