Die Rechnung auf eine Regel bringen, plus Knopf zum Nachrechnen
Die Regel lautet: so viele CC-Pakete wie Ketten, so viele Redesigns wie Eintraege minus Ketten. Anders gesagt - wer keinen Vorgaenger hat, ist der Anfang einer Kette und damit ein gekaufter CC; wer einen hat, ist dessen Redesign. In welcher Linie ein Eintrag gefuehrt wird, spielt keine Rolle. Ich hatte das mit einer Sonderbehandlung fuer "Herkunft ausserhalb der Linie" gebaut. Die faellt weg: Sie war ein Umweg um dieselbe Regel und hat sie an einer Stelle verfehlt. Jetzt steht sie direkt im Code, und der Fall mit dem fremden Gruppen-CC folgt von selbst daraus - dessen eigener Strang hat einen Vorgaenger, ist also kein Kauf. Fuer Bestaende, die aus einer Zeit stammen, in der eine Buchung blieb, wo sie beim Anlegen entstand, gibt es "Buchungen nachrechnen" auf der Spielerseite. Es richtet alle Buchungen eines Spielers nach dieser Regel aus, fasst nur an, was nicht passt, bucht ueber Gegenbuchungen um und laesst Kulanz- Entscheidungen stehen. Vier Tests halten die Rechnung fest, einer davon genau in der Form, in der sie formuliert wurde: Ketten zaehlen, Eintraege zaehlen, Buchungen zaehlen, vergleichen.
This commit is contained in:
@@ -26,6 +26,7 @@ import {
|
||||
detachFromChain,
|
||||
changeFunding,
|
||||
addMemberToChain,
|
||||
rebuildFunding,
|
||||
} from '../services/characters.js';
|
||||
import { parseThreadId } from '../lib/forum.js';
|
||||
import { linkThreadToCharacter } from '../services/forum.js';
|
||||
@@ -198,6 +199,15 @@ export async function characterRoutes(app: FastifyInstance): Promise<void> {
|
||||
return changeFunding(id, body.useKind, contextOf(request));
|
||||
});
|
||||
|
||||
/**
|
||||
* Rechnet die Buchungen eines Spielers anhand seiner Ketten nach: jede
|
||||
* Kette beginnt mit einem gekauften CC, alles Weitere sind Redesigns.
|
||||
*/
|
||||
app.post('/api/players/:id/credits/rebuild', { preHandler: requireEditor }, async (request) => {
|
||||
const { id } = parseWith(idParam, request.params);
|
||||
return rebuildFunding(id, contextOf(request));
|
||||
});
|
||||
|
||||
// --- Ketten ---
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user