feat(content): add action costs and multi-yield schema
This commit is contained in:
@@ -11,7 +11,7 @@ function testContent() {
|
||||
id: 'forage',
|
||||
name: 'Forage',
|
||||
durationMs: 300,
|
||||
yields: { resourceId: 'gold', amount: 1 },
|
||||
yields: [{ resourceId: 'gold', amount: 1 }],
|
||||
},
|
||||
],
|
||||
});
|
||||
|
||||
@@ -6,7 +6,7 @@ function testContent() {
|
||||
return buildContent({
|
||||
resources: [{ id: 'gold', name: 'Gold', startAmount: 5 }],
|
||||
actions: [
|
||||
{ id: 'forage', name: 'Forage', durationMs: 300, yields: { resourceId: 'gold', amount: 2 } },
|
||||
{ id: 'forage', name: 'Forage', durationMs: 300, yields: [{ resourceId: 'gold', amount: 2 }] },
|
||||
],
|
||||
});
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ function testContent() {
|
||||
return buildContent({
|
||||
resources: [{ id: 'gold', name: 'Gold', startAmount: 0 }],
|
||||
actions: [
|
||||
{ id: 'forage', name: 'Forage', durationMs: 3000, yields: { resourceId: 'gold', amount: 1 } },
|
||||
{ id: 'forage', name: 'Forage', durationMs: 3000, yields: [{ resourceId: 'gold', amount: 1 }] },
|
||||
],
|
||||
});
|
||||
}
|
||||
|
||||
+3
-1
@@ -50,6 +50,8 @@ export function tickGame(state: GameState, content: Content, tickMs: number): vo
|
||||
state.actionElapsedMs += tickMs;
|
||||
while (state.actionElapsedMs >= action.durationMs) {
|
||||
state.actionElapsedMs -= action.durationMs;
|
||||
state.resources[action.yields.resourceId] += action.yields.amount;
|
||||
for (const y of action.yields) {
|
||||
state.resources[y.resourceId] += y.amount;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user