feat: add posture damage & item effect update trigger
This commit is contained in:
@@ -34,6 +34,14 @@ export function onEntityEffectUpkeep(entity: CombatEntity){
|
||||
}
|
||||
}
|
||||
|
||||
export function onEntityPostureDamage(entity: CombatEntity, damage: number){
|
||||
for(const effect of Object.values(entity.effects)){
|
||||
const lifecycle = effect.data.lifecycle;
|
||||
if(lifecycle === 'posture')
|
||||
addEntityEffect(entity, effect.data, -Math.min(damage, effect.stacks));
|
||||
}
|
||||
}
|
||||
|
||||
export function onPlayerItemEffectUpkeep(entity: PlayerEntity){
|
||||
for(const [itemKey, itemEffects] of Object.entries(entity.itemEffects)){
|
||||
for(const effect of Object.values(itemEffects)){
|
||||
@@ -44,6 +52,26 @@ export function onPlayerItemEffectUpkeep(entity: PlayerEntity){
|
||||
}
|
||||
}
|
||||
|
||||
export function onItemPlay(entity: PlayerEntity, itemKey: string){
|
||||
const effects = entity.itemEffects[itemKey];
|
||||
if(!effects)return;
|
||||
for(const effect of Object.values(effects)){
|
||||
if(effect.data.lifecycle === 'itemUntilPlay'){
|
||||
addItemEffect(entity, itemKey, effect.data, -effect.stacks);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export function onItemDiscard(entity: PlayerEntity, itemKey: string){
|
||||
const effects = entity.itemEffects[itemKey];
|
||||
if(!effects)return;
|
||||
for(const effect of Object.values(effects)){
|
||||
if(effect.data.lifecycle === 'itemUntilDiscard'){
|
||||
addItemEffect(entity, itemKey, effect.data, -effect.stacks);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export function* getAliveEnemies(state: CombatState) {
|
||||
for (let enemy of state.enemies) {
|
||||
if (enemy.isAlive) {
|
||||
|
||||
Reference in New Issue
Block a user