эффекты и недописанная литературная шизофрения
This commit is contained in:
parent
ce7b93fecd
commit
8cb6e62845
40
lib/character/behaviors/effects.lua
Normal file
40
lib/character/behaviors/effects.lua
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
--- ===========ЛОГИКА ЭФФЕКТОВ И ЧТО С ЭТИМ ЕДЯТ===========
|
||||||
|
--- Лайфтайм эффектов можно поделить на три этапа: рождение, тихая жизнь у моря, смерть
|
||||||
|
---
|
||||||
|
--- Рождение: Самый важный этап в жизни эффекта, потому что от него буквально зависит вся его судьба.
|
||||||
|
--- Когда мы применяем к объекту эффект, мы в первую очередь смотрим и ищем те эффекты, которые ему
|
||||||
|
--- противоречат, и если такие есть то один из них мы убиваем (чуть позже в этом слове будет больше смысла),
|
||||||
|
--- а накладываемый эффект не применяем. Например: мы невероятно влажные (по какой-то причине) и в нас
|
||||||
|
--- кидают фаерболл. После того как в нас попадает сей чудный огненный шар, к нам пытается примениться
|
||||||
|
--- эффект горения, но мы слишком мокрые для этого, поэтому вместо добавления одного эффекта мы теряем
|
||||||
|
--- один. После этого мы смотрим, есть ли у этих эффектов какая-то "сумма", и применяем её в
|
||||||
|
--- соответствии с правилами описанными в ней же. То есть, продолжая этот же пример, вокруг нас должен
|
||||||
|
--- образоваться пар, что (например) мешает обзору на один ход.
|
||||||
|
---
|
||||||
|
--- Тихая жизнь: На самом деле не очень тихая. Если эффект применён к персонажу, который находится в
|
||||||
|
--- очереди ходов, то эффект после своего рождения применяется в конце хода своего владельца.
|
||||||
|
|
||||||
|
--- behavior thats holds all effects that we applied
|
||||||
|
--- @class EffectsBehavior : Behavior
|
||||||
|
--- @field effects table<Effect, integer>
|
||||||
|
local behavior = {}
|
||||||
|
behavior.__index = behavior
|
||||||
|
behavior.id = "effects"
|
||||||
|
|
||||||
|
--- @return EffectsBehavior
|
||||||
|
function behavior.new()
|
||||||
|
return setmetatable({}, behavior)
|
||||||
|
end
|
||||||
|
|
||||||
|
--- проверяет, можно ли наложить эффект и при наложении его применяет
|
||||||
|
--- @param effect Effect
|
||||||
|
function behavior:addEffect(effect)
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
--- должен вызываться в конце хода;
|
||||||
|
function behavior:updateEffects()
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
return behavior
|
||||||
17
lib/spell/effect.lua
Normal file
17
lib/spell/effect.lua
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
--- @class Effect
|
||||||
|
local effect = {}
|
||||||
|
effect.__index = effect
|
||||||
|
|
||||||
|
function effect:update(dt)
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
function effect:draw()
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
function effect.new()
|
||||||
|
return setmetatable({}, effect)
|
||||||
|
end
|
||||||
|
|
||||||
|
return effect
|
||||||
Loading…
x
Reference in New Issue
Block a user