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 stacks integer
|
||||
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 противоречия)
|
||||
for i, ef in ipairs(self.effectsPriority) do
|
||||
if ef == effect then
|
||||
@ -59,16 +64,6 @@ function behavior:addEffect(effect, stacks, intensity)
|
||||
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 amount integer
|
||||
@ -88,6 +83,36 @@ function behavior:deleteStacks(effect, amount)
|
||||
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()
|
||||
for i, ef in pairs(self.effectsPriority) do
|
||||
@ -98,4 +123,24 @@ function behavior:afterTurn()
|
||||
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
|
||||
|
||||
@ -20,6 +20,9 @@ function behavior.new(spellbook)
|
||||
end
|
||||
|
||||
function behavior:endCast()
|
||||
self.owner:try(Tree.behaviors.effects, function(effects)
|
||||
effects:afterCast()
|
||||
end)
|
||||
self.state = "idle"
|
||||
self.cast = nil
|
||||
Tree.level.turnOrder:reorder()
|
||||
|
||||
@ -36,6 +36,15 @@ function bleeding:afterTurn(owner, intensity)
|
||||
behavior:deleteStacks(self, 1)
|
||||
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 = {
|
||||
bleeding = bleeding
|
||||
}
|
||||
|
||||
@ -135,6 +135,10 @@ function spell.new(data)
|
||||
caster:try(Tree.behaviors.spellcaster, function(spellcaster)
|
||||
spellcaster.cooldowns[self.tag] = self.baseCooldown
|
||||
end)
|
||||
|
||||
caster:try(Tree.behaviors.effects, function(effects)
|
||||
effects:beforeCast()
|
||||
end)
|
||||
return data.onCast(caster, target)
|
||||
end
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user