Fixed failing tests and action engine props

This commit is contained in:
Thaum Rystra
2024-02-22 09:11:00 +02:00
parent b41d26b3ad
commit 5141704e23
18 changed files with 181 additions and 140 deletions

View File

@@ -9,16 +9,16 @@ import InputProvider from '/imports/api/engine/action/functions/InputProvider';
// DamagePropTask promises a number of actual damage done
export default async function applyTask(
action: EngineAction, task: DamagePropTask, userInput: InputProvider
action: EngineAction, task: DamagePropTask, inputProvider: InputProvider
): Promise<number>
// Other tasks promise nothing
export default async function applyTask(
action: EngineAction, task: PropTask | ItemAsAmmoTask, userInput: InputProvider
action: EngineAction, task: PropTask | ItemAsAmmoTask, inputProvider: InputProvider
): Promise<void>
export default async function applyTask(
action: EngineAction, task: Task, userInput: InputProvider
action: EngineAction, task: Task, inputProvider: InputProvider
): Promise<void | number> {
action.taskCount += 1;
if (action.taskCount > 100) throw 'Only 100 properties can be applied at once';
@@ -28,9 +28,9 @@ export default async function applyTask(
action.results.push(result);
switch (task.subtaskFn) {
case 'damageProp':
return applyDamagePropTask(task, action, result, userInput);
return applyDamagePropTask(task, action, result, inputProvider);
case 'consumeItemAsAmmo':
return applyItemAsAmmoTask(task, action, result, userInput);
return applyItemAsAmmoTask(task, action, result, inputProvider);
}
} else {
// Get property
@@ -47,7 +47,7 @@ export default async function applyTask(
for (const triggerId of prop.triggerIds.before) {
const trigger = await getSingleProperty(action.creatureId, triggerId);
if (!trigger) continue;
await applyTask(action, { prop: trigger, targetIds: task.targetIds }, userInput);
await applyTask(action, { prop: trigger, targetIds: task.targetIds }, inputProvider);
}
}
@@ -57,6 +57,6 @@ export default async function applyTask(
action.results.push(result);
// Apply the property
return applyProperties[prop.type]?.(task, action, result, userInput);
return applyProperties[prop.type]?.(task, action, result, inputProvider);
}
}