Einzelne Gruppenmitglieder, Austritt per Redesign, Ladebalken beim Abgleich
Bei einem CC mit mehreren Nutzern gibt es zwei Ebenen, und bisher liess sich nur die obere bedienen. Jetzt beide: Ein Spieler kann seinen Anteil redesignen und steigt damit aus - er bekommt einen eigenen CC, die Gruppe laeuft unberuehrt weiter. Fuer ihn ist es ein Tausch wie jeder andere: der Gruppenplatz geht weg, der eigene CC kommt an seine Stelle, es kommt keiner hinzu. Wohin er gewechselt ist, bleibt an der Mitgliedschaft festgehalten und steht bei den frueheren Nutzern. Das Redesign der ganzen Gruppe, bei dem alle mitwandern, gibt es unveraendert daneben. Ebenso koennen einzelne Nutzer ausfallen, ohne die uebrigen zu beruehren: bei einem Trio kann einer im Rollenspiel sterben, waehrend die anderen weiterspielen, und ebenso koennen alle nacheinander wegfallen. Grund und Begruendung haengen jetzt auch an der Mitgliedschaft. Die Rueckkehr folgt denselben Regeln wie beim eigenen CC - geputzt gratis, entzogen gegen Guthaben, gestorben nur durch einen Administrator mit Begruendung. Wer ausgefallen ist, sieht seinen CC weiter auf der Spielerseite; sonst gaebe es nichts, worueber er zurueckkehren koennte. Ein freiwilliger Austritt bleibt davon getrennt: dort gibt es nichts zurueckzuholen, ein Wiedereintritt kostet neu. Der GExtension-Abgleich hat denselben Ladebalken wie der Forumslauf bekommen, fuer alle Spieler wie fuer einzelne, samt Protokoll. Beide teilen sich jetzt dieselbe Anzeige. Dabei aufgefallen: Zeitplan und Handklick konnten denselben Abgleich doppelt starten und haetten dieselben Profile zweimal abgerufen. Die Sperre sitzt jetzt im Lauf selbst statt im Starter, damit sie fuer beide Wege gilt.
This commit is contained in:
@@ -241,6 +241,8 @@ model Character {
|
||||
members CharacterMember[]
|
||||
/// Beitritte, für die dieser CC aufgegeben wurde.
|
||||
givenUpFor CharacterMember[] @relation("MemberPredecessor")
|
||||
/// Austritte, aus denen dieser CC hervorgegangen ist.
|
||||
grewOutOf CharacterMember[] @relation("MemberSuccessor")
|
||||
|
||||
createdById Int?
|
||||
createdBy User? @relation("CharacterCreatedBy", fields: [createdById], references: [id], onDelete: SetNull)
|
||||
@@ -426,10 +428,18 @@ model CharacterMember {
|
||||
player Player @relation(fields: [playerId], references: [id], onDelete: Cascade)
|
||||
|
||||
joinedAt DateTime @default(now())
|
||||
/// Gesetzt, sobald der Spieler ausgestiegen ist. Der Eintrag bleibt stehen,
|
||||
/// damit nachvollziehbar ist, wer den CC wann genutzt hat.
|
||||
/// Gesetzt, sobald der Spieler den CC nicht mehr nutzt - ob freiwillig
|
||||
/// ausgetreten, geputzt oder im Rollenspiel gestorben. Der Eintrag bleibt
|
||||
/// stehen, damit nachvollziehbar ist, wer den CC wann genutzt hat.
|
||||
leftAt DateTime?
|
||||
|
||||
/// Warum er nicht mehr dabei ist. Leer bei einem einfachen Austritt; bei
|
||||
/// einem Gruppen-CC kann ein einzelner Spieler sterben oder geputzt werden,
|
||||
/// während die übrigen weiterspielen. Die Rückkehr folgt denselben Regeln
|
||||
/// wie bei einem eigenen CC.
|
||||
inactiveReason InactiveReason?
|
||||
inactiveNote String?
|
||||
|
||||
/// Womit der Platz bezahlt wurde. Leer beim Ersteller, dessen Buchung am
|
||||
/// CC selbst hängt.
|
||||
paidWith CreditKind?
|
||||
@@ -441,6 +451,12 @@ model CharacterMember {
|
||||
predecessorId Int?
|
||||
predecessor Character? @relation("MemberPredecessor", fields: [predecessorId], references: [id], onDelete: SetNull)
|
||||
|
||||
/// Der CC, in den der Spieler von hier aus gewechselt ist. Gesetzt, wenn er
|
||||
/// seinen Anteil am Gruppen-CC redesignt hat und damit ausgestiegen ist -
|
||||
/// die Gruppe läuft dabei unberührt weiter.
|
||||
successorId Int?
|
||||
successor Character? @relation("MemberSuccessor", fields: [successorId], references: [id], onDelete: SetNull)
|
||||
|
||||
createdById Int?
|
||||
|
||||
/// Ein Spieler kann demselben CC nicht zweimal angehören.
|
||||
|
||||
Reference in New Issue
Block a user