Die Stelle in der Kette bestimmt die Buchung
Bisher blieb eine Buchung, wie sie beim Anlegen entstand - auch wenn der Eintrag danach an eine ganz andere Stelle wanderte. Damit stand ein CC, der in eine Kette geschoben wurde, weiter als gekauftes Paket im Konto, obwohl er inzwischen ein Redesign war. Jetzt folgt die Buchung der Position: Das unterste Glied ist der gekaufte CC und verbraucht ein CC-Paket, alles darueber sind Redesigns. Wandert ein Eintrag, wandert seine Bedeutung mit - in beide Richtungen. Wer mitten in eine Kette rutscht, wird zum Redesign und gibt sein CC-Guthaben zurueck; wer an den Anfang kommt oder herausgeloest wird, belegt einen eigenen Platz und kostet wieder ein Paket. Umgebucht wird ueber eine Gegenbuchung, nicht durch Ueberschreiben. Reicht das Guthaben nicht, geht das Konto ins Minus und zeigt es an - wie bei jedem Vorab-CC. Zwischen bezahltem Redesign und Kulanz wird nicht gewechselt: das ist eine Entscheidung, keine Folge der Reihenfolge. Eintraege ohne Buchung bleiben unangetastet. Dabei zaehlt die Buchung dessen, dem die Kette gehoert - der Spieler, der unten steht. Bei einem fremden Gruppen-CC in seiner Kette ist das seine Beitrittsbuchung; die des Erstellers bleibt, denn fuer den ist es sein eigener Platz in seiner eigenen Kette. Damit liess sich der Gruppen-CC ueberhaupt erst einreihen: Der Besitzer-Check fragte nach dem Ersteller, und der ist bei einem Gruppen-CC ein anderer als der, dessen Seite man gerade ordnet. Jetzt entscheidet die Beteiligung - wer an beidem beteiligt war, darf einreihen, ein Unbeteiligter nicht. Fehler beim Ziehen stehen ausserdem neben den Ketten statt am Seitenkopf: wer unten zieht, sieht dort oben nichts.
This commit is contained in:
@@ -209,6 +209,9 @@ export async function characterRoutes(app: FastifyInstance): Promise<void> {
|
||||
z.object({
|
||||
lineageId: z.string().trim().min(1).max(64),
|
||||
afterId: z.number().int().positive().nullable().optional(),
|
||||
/// Wessen Seite gerade geordnet wird - bei einem Gruppen-CC ist das
|
||||
/// nicht zwingend sein Ersteller.
|
||||
forPlayerId: z.number().int().positive().optional(),
|
||||
}),
|
||||
request.body,
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user