fix attack spell
This commit is contained in:
parent
78f9347b86
commit
a0ddd5f7cd
@ -28,6 +28,7 @@ function selector:update(dt)
|
|||||||
return self:select(selectedId)
|
return self:select(selectedId)
|
||||||
else
|
else
|
||||||
local char = Tree.level.characters[self.id]
|
local char = Tree.level.characters[self.id]
|
||||||
|
|
||||||
char:try(Tree.behaviors.spellcaster, function(b)
|
char:try(Tree.behaviors.spellcaster, function(b)
|
||||||
if not b.cast then
|
if not b.cast then
|
||||||
self:select(selectedId)
|
self:select(selectedId)
|
||||||
|
|||||||
@ -87,15 +87,18 @@ end
|
|||||||
local attack = setmetatable({}, spell)
|
local attack = setmetatable({}, spell)
|
||||||
|
|
||||||
function attack:cast(caster, target)
|
function attack:cast(caster, target)
|
||||||
-- caster:try(Tree.behaviors.map, function(map)
|
if caster:try(Tree.behaviors.map, function(map)
|
||||||
-- local dist = math.ceil((target - map.position):length())
|
local dist = math.max(math.abs(map.position.x - target.x), math.abs(map.position.y - target.y))
|
||||||
-- if dist >= 2 then
|
print("dist:", dist)
|
||||||
-- return false
|
return dist >= 2
|
||||||
-- end
|
end) then
|
||||||
-- end)
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
--- @type Character
|
--- @type Character
|
||||||
local targetCharacter = Tree.level.characterGrid:get(target)
|
local targetCharacterId = Tree.level.characterGrid:get(target)
|
||||||
|
if not targetCharacterId then return false end
|
||||||
|
local targetCharacter = Tree.level.characters[targetCharacterId]
|
||||||
targetCharacter:try(Tree.behaviors.stats, function(stats)
|
targetCharacter:try(Tree.behaviors.stats, function(stats)
|
||||||
stats.hp = stats.hp - 4
|
stats.hp = stats.hp - 4
|
||||||
end)
|
end)
|
||||||
@ -103,22 +106,24 @@ function attack:cast(caster, target)
|
|||||||
caster:try(Tree.behaviors.sprite, function(sprite)
|
caster:try(Tree.behaviors.sprite, function(sprite)
|
||||||
sprite:play("attack", function()
|
sprite:play("attack", function()
|
||||||
sprite:play("idle")
|
sprite:play("idle")
|
||||||
caster:has(Tree.behaviors.spellcaster):endCast()
|
targetCharacter:try(Tree.behaviors.sprite, function(targetSprite)
|
||||||
end)
|
targetSprite:play("hurt", function()
|
||||||
end)
|
targetSprite:play("idle")
|
||||||
targetCharacter:try(Tree.behaviors.sprite, function(sprite)
|
caster:has(Tree.behaviors.spellcaster):endCast()
|
||||||
sprite:play("hurt", function()
|
end)
|
||||||
sprite:play("idle")
|
end)
|
||||||
end)
|
end)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
local spellbook = {
|
local spellbook = {
|
||||||
walk = walk,
|
walk = walk,
|
||||||
regenerateMana = regenerateMana
|
regenerateMana = regenerateMana,
|
||||||
|
attack = attack
|
||||||
}
|
}
|
||||||
|
|
||||||
--- Создает новый спеллбук с уникальными спеллами (а не ссылками на шаблоны)
|
--- Создает новый спеллбук с уникальными спеллами (а не ссылками на шаблоны)
|
||||||
|
|||||||
@ -43,9 +43,9 @@ function layout:build()
|
|||||||
local r =
|
local r =
|
||||||
ui.Row {
|
ui.Row {
|
||||||
children = {
|
children = {
|
||||||
setmetatable({ owner = Tree.level.characters[id], spellId = 1 }, { __index = SkillButton }),
|
ui.Padding { padding = { left = 4, right = 4 }, child = setmetatable({ owner = Tree.level.characters[id], spellId = 1 }, { __index = SkillButton }) },
|
||||||
setmetatable({ owner = Tree.level.characters[id], spellId = 2 }, { __index = SkillButton }),
|
ui.Padding { padding = { left = 4, right = 4 }, child = setmetatable({ owner = Tree.level.characters[id], spellId = 2 }, { __index = SkillButton }) },
|
||||||
setmetatable({ owner = Tree.level.characters[id], spellId = 3 }, { __index = SkillButton })
|
ui.Padding { padding = { left = 4, right = 4 }, child = setmetatable({ owner = Tree.level.characters[id], spellId = 3 }, { __index = SkillButton }) },
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
skillRows[id] = r
|
skillRows[id] = r
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user