meeeeooooow
added afterCast and beforeCast effect implementation
This commit is contained in:
parent
a9f8816c8e
commit
eecf24c471
BIN
assets/audio/sounds/meow.ogg
Normal file
BIN
assets/audio/sounds/meow.ogg
Normal file
Binary file not shown.
@ -26,7 +26,12 @@ end
|
|||||||
--- @param effect Effect
|
--- @param effect Effect
|
||||||
--- @param stacks integer
|
--- @param stacks integer
|
||||||
function behavior:addEffect(effect, stacks, intensity)
|
function behavior:addEffect(effect, stacks, intensity)
|
||||||
-- if not effect:beforeBirth() then return end
|
if effect.beforeBirth then
|
||||||
|
local task1 = effect:beforeBirth(self.owner, intensity)
|
||||||
|
if task1 then
|
||||||
|
task1(function() end)
|
||||||
|
end
|
||||||
|
end
|
||||||
-- проверяем эффект на возможности суммирования (aka противоречия)
|
-- проверяем эффект на возможности суммирования (aka противоречия)
|
||||||
for i, ef in ipairs(self.effectsPriority) do
|
for i, ef in ipairs(self.effectsPriority) do
|
||||||
if ef == effect then
|
if ef == effect then
|
||||||
@ -59,16 +64,6 @@ function behavior:addEffect(effect, stacks, intensity)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
--- должен вызываться в начале хода
|
|
||||||
function behavior:beforeTurn()
|
|
||||||
for i, ef in ipairs(self.effectsPriority) do
|
|
||||||
local task1 = ef:beforeTurn(self.owner, self.effectsProperties[ef].intensity)
|
|
||||||
if task1 then
|
|
||||||
task1(function() end)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
--- О ДААА ЭТА ФУНКЦИЯ МЕНЯЕТ СОСТОЯНИЕ О ДАААААА О ДАААААААААА
|
--- О ДААА ЭТА ФУНКЦИЯ МЕНЯЕТ СОСТОЯНИЕ О ДАААААА О ДАААААААААА
|
||||||
--- @param effect Effect
|
--- @param effect Effect
|
||||||
--- @param amount integer
|
--- @param amount integer
|
||||||
@ -88,6 +83,36 @@ function behavior:deleteStacks(effect, amount)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- должна вызываться перед смертью персонажа
|
||||||
|
function behavior:beforeDeath()
|
||||||
|
for i, ef in ipairs(self.effectsPriority) do
|
||||||
|
local task1 = ef:beforeDeath(self.owner, self.effectsProperties[ef].intensity)
|
||||||
|
if task1 then
|
||||||
|
task1(function() end)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
--- должна вызываться после смерти персонажа (может ли такая ситуация возникнуть вообще?)
|
||||||
|
function behavior:afterDeath()
|
||||||
|
for i, ef in ipairs(self.effectsPriority) do
|
||||||
|
local task1 = ef:afterDeath(self.owner, self.effectsProperties[ef].intensity)
|
||||||
|
if task1 then
|
||||||
|
task1(function() end)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
--- должен вызываться в начале хода
|
||||||
|
function behavior:beforeTurn()
|
||||||
|
for i, ef in ipairs(self.effectsPriority) do
|
||||||
|
local task1 = ef:beforeTurn(self.owner, self.effectsProperties[ef].intensity)
|
||||||
|
if task1 then
|
||||||
|
task1(function() end)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
--- должен вызываться в конце хода
|
--- должен вызываться в конце хода
|
||||||
function behavior:afterTurn()
|
function behavior:afterTurn()
|
||||||
for i, ef in pairs(self.effectsPriority) do
|
for i, ef in pairs(self.effectsPriority) do
|
||||||
@ -98,4 +123,24 @@ function behavior:afterTurn()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- должен вызываться перед кастом спелла
|
||||||
|
function behavior:beforeCast()
|
||||||
|
for i, ef in ipairs(self.effectsPriority) do
|
||||||
|
local task1 = ef:beforeCast(self.owner, self.effectsProperties[ef].intensity)
|
||||||
|
if task1 then
|
||||||
|
task1(function() end)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
--- должен вызываться после каста спелла
|
||||||
|
function behavior:afterCast()
|
||||||
|
for i, ef in pairs(self.effectsPriority) do
|
||||||
|
local task1 = ef:afterCast(self.owner, self.effectsProperties[ef].intensity)
|
||||||
|
if task1 then
|
||||||
|
task1(function() end)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
return behavior
|
return behavior
|
||||||
|
|||||||
@ -20,6 +20,9 @@ function behavior.new(spellbook)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function behavior:endCast()
|
function behavior:endCast()
|
||||||
|
self.owner:try(Tree.behaviors.effects, function(effects)
|
||||||
|
effects:afterCast()
|
||||||
|
end)
|
||||||
self.state = "idle"
|
self.state = "idle"
|
||||||
self.cast = nil
|
self.cast = nil
|
||||||
Tree.level.turnOrder:reorder()
|
Tree.level.turnOrder:reorder()
|
||||||
|
|||||||
@ -36,6 +36,15 @@ function bleeding:afterTurn(owner, intensity)
|
|||||||
behavior:deleteStacks(self, 1)
|
behavior:deleteStacks(self, 1)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- meow
|
||||||
|
function bleeding:afterCast(owner, intensity)
|
||||||
|
Tree.audio:play(Tree.assets.files.audio.sounds.meow)
|
||||||
|
end
|
||||||
|
|
||||||
|
function bleeding:beforeCast(owner, intensity)
|
||||||
|
Tree.audio:play(Tree.assets.files.audio.sounds.meow)
|
||||||
|
end
|
||||||
|
|
||||||
local effectbook = {
|
local effectbook = {
|
||||||
bleeding = bleeding
|
bleeding = bleeding
|
||||||
}
|
}
|
||||||
|
|||||||
@ -135,6 +135,10 @@ function spell.new(data)
|
|||||||
caster:try(Tree.behaviors.spellcaster, function(spellcaster)
|
caster:try(Tree.behaviors.spellcaster, function(spellcaster)
|
||||||
spellcaster.cooldowns[self.tag] = self.baseCooldown
|
spellcaster.cooldowns[self.tag] = self.baseCooldown
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
caster:try(Tree.behaviors.effects, function(effects)
|
||||||
|
effects:beforeCast()
|
||||||
|
end)
|
||||||
return data.onCast(caster, target)
|
return data.onCast(caster, target)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user