Compare commits
1 Commits
jimFirstDe
...
master
Author | SHA1 | Date |
---|---|---|
Felix Stupp | dfb1db7900 | 6 years ago |
@ -0,0 +1,179 @@
|
|||||||
|
// Name und Beschreibung als Oberklasse/Interface herausziehen
|
||||||
|
// TODO AP Kosten
|
||||||
|
|
||||||
|
// TODO Custom Vor-/Nachteile (Angst vor ...)
|
||||||
|
// TODO Profession Sortierung
|
||||||
|
// TODO Kristina Regelwerk Profession Talent AP Berechnung
|
||||||
|
// TODO Zauber Spezialfertigkeit
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Sonderfertigkeiten
|
||||||
|
- Allgemein
|
||||||
|
- Schicksalspunkte
|
||||||
|
- Kampf
|
||||||
|
- Magische
|
||||||
|
- Karmale
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Regelwerk:
|
||||||
|
- Name
|
||||||
|
- Erscheinungsdatum
|
||||||
|
- Erfahrungsgrad //TODO Klasse
|
||||||
|
- Maximum Eigenschaft
|
||||||
|
- Maximum Fertigkeit
|
||||||
|
- Maximum Kampftechnik
|
||||||
|
- Maximum Eigenschaftspunkte
|
||||||
|
- Maximum Zahl Zauber / Liturgien
|
||||||
|
- davon maximal Fremdzauber (bezogen auf )
|
||||||
|
- Sonstiges:
|
||||||
|
- Vor-/Nachteile Begrenzung (AP, getrennt)
|
||||||
|
- Talentwert Obergrenze (bei uns 10)
|
||||||
|
- Kampftechnik Basiswert
|
||||||
|
|
||||||
|
- Liste Sozialstatus
|
||||||
|
|
||||||
|
- Liste Eigenschaften
|
||||||
|
- Liste Basiswerte (abgeleitet)
|
||||||
|
- Liste Zusatzwerte (bspw. Schicksalspunkte)
|
||||||
|
|
||||||
|
- Liste aller Spezies
|
||||||
|
- Liste aller Kulturen
|
||||||
|
- Liste aller Professionen
|
||||||
|
|
||||||
|
- Liste aller Vor- / Nachteile
|
||||||
|
- Liste aller Sonderfertigkeitsarten
|
||||||
|
- Liste aller Sonderfertigkeiten
|
||||||
|
|
||||||
|
- Liste aller Ausrüstungsgegenstände
|
||||||
|
|
||||||
|
- Liste aller Talentkategorien
|
||||||
|
- Liste aller Talente
|
||||||
|
- Liste aller Kampftechniken
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Charakter:
|
||||||
|
- Name des Charakters
|
||||||
|
- Abenteuerpunkte gesamt
|
||||||
|
//TODO Andere Eigenschaften ergänzen
|
||||||
|
- Sozialstatus
|
||||||
|
- Spezies
|
||||||
|
- Kultur
|
||||||
|
- Profession
|
||||||
|
- Werte der Eigenschaften
|
||||||
|
- Liste von Vor-/Nachteilen (Zusatzobjekt mit Stufe, kann ignoriert werden beim Speichern, dann Objectreferenz direkt)
|
||||||
|
- Liste von Sonderfertigkeiten (siehe Stufensystem)
|
||||||
|
- Liste von Kampfsonderfertigkeiten (siehe Stufensystem)
|
||||||
|
|
||||||
|
- Liste der Talentwerte (Zusatzobjekt mit Anzahl und Referenz)
|
||||||
|
- Liste von Ausrüstungsgegenstände (Zusatzobjekt mit Anzahl und Referenz)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Anforderung ist jeweils spezialisiert für Vor-/Nachteil, Sonderfertigkeiten.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Effekt ist jeweils spezialisiert für was es effektiert.
|
||||||
|
|
||||||
|
NoneEffekt:
|
||||||
|
|
||||||
|
EigenschaftEffekt:
|
||||||
|
|
||||||
|
EigenschaftGrenzeEffekt: //TODO kompliziert
|
||||||
|
|
||||||
|
BasiswertEffekt:
|
||||||
|
|
||||||
|
TelentEffekt:
|
||||||
|
- spezifisch / nicht spezifisch
|
||||||
|
|
||||||
|
TalentObergrenzeEffekt:
|
||||||
|
|
||||||
|
KampftechnikEffekt:
|
||||||
|
|
||||||
|
ZusatzwertEffekt:
|
||||||
|
|
||||||
|
//TODO ...
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Spezies:
|
||||||
|
- Name (ID)
|
||||||
|
- Effekte (Objects)
|
||||||
|
- Übliche Kulturen (Referenz)
|
||||||
|
|
||||||
|
// Enum: untypisch, typisch, empfohlen, dringend erforderlich (oder Int-Level)
|
||||||
|
- Zwingende Vor-/Nachteile
|
||||||
|
- Übliche Vor-/Nachteile (Referenz) (Wichtigkeit von 2 bis -2)
|
||||||
|
|
||||||
|
- Augen und Haarfarbe (auf Würfel aufgeteilt)
|
||||||
|
- Größe und Gewicht (Grundwert + Würfel)
|
||||||
|
- Gewicht (Größe + Grundwert + Würfel (speziell pro Würfelwert, +/-))
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Kulturen: // Keine AP-Kosten an sich
|
||||||
|
- Name (ID)
|
||||||
|
- Effekte (Objects)
|
||||||
|
- Automatische Sonderfertigkeiten (Sprache/Schrift) (Kosten werden zusätzlich berechnet)
|
||||||
|
- Sozialstatus
|
||||||
|
- Übliche Professionen
|
||||||
|
- Bewertete Vor-/Nachteile (siehe Spezies)
|
||||||
|
- Bewertete Talente
|
||||||
|
- Namensvorschläge
|
||||||
|
- Kulturpaket (Set an Talentwertminima, optional)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Profession:
|
||||||
|
- Name (ID)
|
||||||
|
- Oberprofession (Referenz)
|
||||||
|
- Sprach/Schrift AP Maximum
|
||||||
|
- Automatische Talente (Effekt)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Vor- und Nachteil:
|
||||||
|
- Name (ID)
|
||||||
|
- Beschreibung
|
||||||
|
- Maximale Stufe (> 0, meist 1)
|
||||||
|
- Liste der Anforderungen (sub object)
|
||||||
|
- Effekt(e)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
// Vergleiche mit Vor- und Nachteile
|
||||||
|
Sonderfertigkeit:
|
||||||
|
- Name (ID)
|
||||||
|
- Sonderfertigkeitsart
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Zauber:
|
||||||
|
- Name (ID)
|
||||||
|
- Beschreibung
|
||||||
|
- Würfelschema
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
// Later
|
||||||
|
Liturgie:
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
// Later
|
||||||
|
Rituale:
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Talent:
|
||||||
|
- Name (ID)
|
||||||
|
- Kategorie
|
||||||
|
- Würfelschema
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Ausrüstungsgegenstand:
|
||||||
|
- Name (ID)
|
@ -1,22 +0,0 @@
|
|||||||
package de.banananetwork.dsa;
|
|
||||||
|
|
||||||
import de.banananetwork.dsa.currencies.Currency;
|
|
||||||
import de.banananetwork.dsa.aspects.Aspect;
|
|
||||||
import de.banananetwork.dsa.professions.Profession;
|
|
||||||
import de.banananetwork.dsa.species.Species;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class Regulations {
|
|
||||||
|
|
||||||
List<Currency> currencies;
|
|
||||||
List<Aspect> aspects;
|
|
||||||
List<Profession> professions;
|
|
||||||
List<Species> species;
|
|
||||||
// TODO Zauber
|
|
||||||
// TODO Liturgen
|
|
||||||
// TODO Artefakte
|
|
||||||
// TODO Ausrüstung
|
|
||||||
// TODO Waffen
|
|
||||||
|
|
||||||
}
|
|
@ -1,36 +0,0 @@
|
|||||||
package de.banananetwork.dsa.abilities;
|
|
||||||
|
|
||||||
import de.banananetwork.dsa.descriptions.Descriptiable;
|
|
||||||
import de.banananetwork.dsa.descriptions.Description;
|
|
||||||
import de.banananetwork.dsa.requirements.AdventurePointsPriceLabeled;
|
|
||||||
import de.banananetwork.dsa.requirements.HasRequirement;
|
|
||||||
import de.banananetwork.dsa.requirements.Requirement;
|
|
||||||
|
|
||||||
public class Ability implements Descriptiable, AdventurePointsPriceLabeled, HasRequirement {
|
|
||||||
|
|
||||||
private final Description description;
|
|
||||||
private final int apCosts;
|
|
||||||
private final Requirement requirement;
|
|
||||||
|
|
||||||
public Ability(Description description, int apCosts, Requirement requirement) {
|
|
||||||
this.description = description;
|
|
||||||
this.apCosts = apCosts;
|
|
||||||
this.requirement = requirement;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Description getDescription() {
|
|
||||||
return description;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getRequiredAdventurePoints() {
|
|
||||||
return apCosts;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Requirement getRequirement() {
|
|
||||||
return requirement;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
package de.banananetwork.dsa.abilities;
|
|
@ -1,29 +0,0 @@
|
|||||||
package de.banananetwork.dsa.aspects;
|
|
||||||
|
|
||||||
import de.banananetwork.dsa.descriptions.Descriptiable;
|
|
||||||
import de.banananetwork.dsa.descriptions.Description;
|
|
||||||
import de.banananetwork.dsa.requirements.AdventurePointsPriceLabeled;
|
|
||||||
|
|
||||||
public class Aspect implements Descriptiable, AdventurePointsPriceLabeled {
|
|
||||||
|
|
||||||
private final Kind kind;
|
|
||||||
private final Description description;
|
|
||||||
private final int apCost;
|
|
||||||
private final Aspect opposite;
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Description getDescription() {
|
|
||||||
return description;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getRequiredAdventurePoints() {
|
|
||||||
return apCost;
|
|
||||||
}
|
|
||||||
|
|
||||||
public enum Kind {
|
|
||||||
ADVANTAGE, DISADVANTAGE
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
/**
|
|
||||||
* Enthält alles, was mit Aspekten (gemeint sind die Vor- und Nachteile) von Charakteren zu tun hat.
|
|
||||||
*/
|
|
||||||
package de.banananetwork.dsa.aspects;
|
|
@ -1,31 +0,0 @@
|
|||||||
package de.banananetwork.dsa.characters;
|
|
||||||
|
|
||||||
import de.banananetwork.dsa.Regulations;
|
|
||||||
import de.banananetwork.dsa.aspects.Aspect;
|
|
||||||
import de.banananetwork.dsa.cultures.Culture;
|
|
||||||
import de.banananetwork.dsa.professions.Profession;
|
|
||||||
import de.banananetwork.dsa.species.Species;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class Character {
|
|
||||||
|
|
||||||
Regulations regulations;
|
|
||||||
|
|
||||||
String name;
|
|
||||||
|
|
||||||
Species species;
|
|
||||||
Culture culture;
|
|
||||||
Profession profession;
|
|
||||||
List<Aspect> modifications;
|
|
||||||
// TODO Skills
|
|
||||||
// TODO Zauber
|
|
||||||
// TODO Liturgen
|
|
||||||
// TODO Ausrüstung
|
|
||||||
// TODO Waffen
|
|
||||||
|
|
||||||
// Modifizierter, aktueller Wert
|
|
||||||
int money;
|
|
||||||
int maxAp;
|
|
||||||
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
package de.banananetwork.dsa.characters;
|
|
@ -1,5 +0,0 @@
|
|||||||
package de.banananetwork.dsa.cultures;
|
|
||||||
|
|
||||||
public class Culture {
|
|
||||||
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
package de.banananetwork.dsa.cultures;
|
|
@ -1,38 +0,0 @@
|
|||||||
package de.banananetwork.dsa.currencies;
|
|
||||||
|
|
||||||
public enum Currency {
|
|
||||||
// TODO Transfer from constant values to variable ones
|
|
||||||
// TODO Add some other currencies (https://de.wiki-aventurica.de/wiki/Aventurische_W%C3%A4hrungen)
|
|
||||||
MITTELREICH_KREUZER(1), // Base Value
|
|
||||||
MITTELREICH_NICKEL(2),
|
|
||||||
MITTELREICH_HELLER(10),
|
|
||||||
MITTELREICH_SILBERTALER(MITTELREICH_HELLER, 10),
|
|
||||||
MITTELREICH_DUKATEN(MITTELREICH_SILBERTALER, 10);
|
|
||||||
|
|
||||||
private final int multiplier;
|
|
||||||
|
|
||||||
Currency(int multiplier) {
|
|
||||||
this.multiplier = multiplier;
|
|
||||||
}
|
|
||||||
|
|
||||||
Currency(Currency reference, int multiplier) {
|
|
||||||
this.multiplier = reference.multiplier * multiplier;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int transferTo(int baseValue) {
|
|
||||||
return baseValue / multiplier;
|
|
||||||
}
|
|
||||||
|
|
||||||
public double transferToExact(int baseValue) {
|
|
||||||
return (double) baseValue / multiplier;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int transferFrom(int coinValue) {
|
|
||||||
return coinValue * multiplier;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getMultiplier() {
|
|
||||||
return multiplier;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,37 +0,0 @@
|
|||||||
package de.banananetwork.dsa.currencies
|
|
||||||
|
|
||||||
import java.util.*
|
|
||||||
import kotlin.collections.ArrayList
|
|
||||||
|
|
||||||
class CurrencySet private constructor(private val currencies: Array<Currency>) {
|
|
||||||
|
|
||||||
fun transferToSet(baseValue: Int): Map<Currency, Int> {
|
|
||||||
var modBaseValue = baseValue
|
|
||||||
val values = EnumMap<Currency, Int>(Currency::class.java)
|
|
||||||
for (currency in currencies) {
|
|
||||||
val value = currency.transferTo(modBaseValue)
|
|
||||||
values[currency] = value
|
|
||||||
modBaseValue -= currency.transferFrom(value)
|
|
||||||
}
|
|
||||||
if (modBaseValue != 0)
|
|
||||||
throw RuntimeException() // TODO Change to ValueNotRepresentableException
|
|
||||||
return values
|
|
||||||
}
|
|
||||||
|
|
||||||
class Builder {
|
|
||||||
|
|
||||||
private val currencies = ArrayList<Currency>()
|
|
||||||
|
|
||||||
fun add(currency: Currency): Builder {
|
|
||||||
currencies.add(currency)
|
|
||||||
return this
|
|
||||||
}
|
|
||||||
|
|
||||||
fun create(): CurrencySet {
|
|
||||||
currencies.sortBy { it.multiplier }
|
|
||||||
return CurrencySet(currencies.toTypedArray())
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
package de.banananetwork.dsa.currencies;
|
|
@ -1,7 +0,0 @@
|
|||||||
package de.banananetwork.dsa.descriptions;
|
|
||||||
|
|
||||||
public interface Descriptiable {
|
|
||||||
|
|
||||||
Description getDescription();
|
|
||||||
|
|
||||||
}
|
|
@ -1,23 +0,0 @@
|
|||||||
package de.banananetwork.dsa.descriptions;
|
|
||||||
|
|
||||||
public class Description {
|
|
||||||
|
|
||||||
public static final Description EMPTY = new Description(null, null);
|
|
||||||
|
|
||||||
private final String title;
|
|
||||||
private final String description;
|
|
||||||
|
|
||||||
public Description(String title, String description) {
|
|
||||||
this.title = title;
|
|
||||||
this.description = description;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getTitle() {
|
|
||||||
return title;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDescription() {
|
|
||||||
return description;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
package de.banananetwork.dsa.descriptions;
|
|
@ -1,5 +0,0 @@
|
|||||||
package de.banananetwork.dsa.professions;
|
|
||||||
|
|
||||||
public class Profession {
|
|
||||||
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
package de.banananetwork.dsa.professions;
|
|
@ -1,7 +0,0 @@
|
|||||||
package de.banananetwork.dsa.requirements;
|
|
||||||
|
|
||||||
public interface AdventurePointsPriceLabeled {
|
|
||||||
|
|
||||||
int getRequiredAdventurePoints();
|
|
||||||
|
|
||||||
}
|
|
@ -1,8 +0,0 @@
|
|||||||
package de.banananetwork.dsa.requirements;
|
|
||||||
|
|
||||||
public class AspectRequirement implements Requirement {
|
|
||||||
@Override
|
|
||||||
public boolean checkCorrect() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,8 +0,0 @@
|
|||||||
package de.banananetwork.dsa.requirements;
|
|
||||||
|
|
||||||
public class CombatValueRequirement implements Requirement {
|
|
||||||
@Override
|
|
||||||
public boolean checkCorrect() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,13 +0,0 @@
|
|||||||
package de.banananetwork.dsa.requirements;
|
|
||||||
|
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
public interface HasRequirement { //TODO Rename
|
|
||||||
|
|
||||||
Requirement getRequirement();
|
|
||||||
|
|
||||||
default boolean hasRequirement() {
|
|
||||||
return !Objects.isNull(getRequirement());
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,8 +0,0 @@
|
|||||||
package de.banananetwork.dsa.requirements;
|
|
||||||
|
|
||||||
public class OptionalRequirements implements Requirement {
|
|
||||||
@Override
|
|
||||||
public boolean checkCorrect() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,8 +0,0 @@
|
|||||||
package de.banananetwork.dsa.requirements;
|
|
||||||
|
|
||||||
public class RequiredRequirement implements Requirement {
|
|
||||||
@Override
|
|
||||||
public boolean checkCorrect() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,5 +0,0 @@
|
|||||||
package de.banananetwork.dsa.requirements;
|
|
||||||
|
|
||||||
public interface Requirement {
|
|
||||||
boolean checkCorrect();
|
|
||||||
}
|
|
@ -1,8 +0,0 @@
|
|||||||
package de.banananetwork.dsa.requirements;
|
|
||||||
|
|
||||||
public class StatRequirement implements Requirement {
|
|
||||||
@Override
|
|
||||||
public boolean checkCorrect() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,8 +0,0 @@
|
|||||||
package de.banananetwork.dsa.requirements;
|
|
||||||
|
|
||||||
public class TalentRequirement implements Requirement {
|
|
||||||
@Override
|
|
||||||
public boolean checkCorrect() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
package de.banananetwork.dsa.requirements;
|
|
@ -1,5 +0,0 @@
|
|||||||
package de.banananetwork.dsa.species;
|
|
||||||
|
|
||||||
public class Species {
|
|
||||||
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
package de.banananetwork.dsa.species;
|
|
Loading…
Reference in New Issue