update
This commit is contained in:
1 parent
1d563b9eec
commit
04fe9716e8
22 files changed
+764
-151
No files matched your search
+52
-13
@@ -1,18 +1,30 @@
|
||||
class_name Skills
|
||||
## Skilltree: Erfahrung sind die verdienten Münzen, je Level ein Skillpunkt, Punkte kaufen Stufen
|
||||
## der Skills in drei Ästen. Münzen kaufen keine Punkte.
|
||||
## der Skills in vier Ästen (PATHS). Jeder Ast ist ein Pfad: der nächste Skill öffnet, sobald der
|
||||
## davor mindestens eine Stufe hat. Münzen kaufen keine Punkte.
|
||||
|
||||
const BRANCHES: Array[String] = ["Sammeln", "Wirtschaft", "Kampf"]
|
||||
## id -> Name, Ast, Höchststufe, Text.
|
||||
const SKILLS := {
|
||||
"packglueck": {"name": "Packglück", "branch": "Sammeln", "max": 3, "text": "Seltenere Karten in Boostern"},
|
||||
"staub": {"name": "Staubsammler", "branch": "Sammeln", "max": 3, "text": "Mehr Staub aus Doppelten und Zerlegen"},
|
||||
"muenzen": {"name": "Münzsegen", "branch": "Wirtschaft", "max": 3, "text": "Mehr Münzen nach jedem Kampf"},
|
||||
"packpreis": {"name": "Händler", "branch": "Wirtschaft", "max": 2, "text": "Booster werden billiger"},
|
||||
"gratisziehen": {"name": "Freies Ziehen", "branch": "Kampf", "max": 1, "text": "Das zweite Ziehen je Zug ist auch gratis"},
|
||||
"startmana": {"name": "Starker Start", "branch": "Kampf", "max": 1, "text": "Mehr Mana im ersten Zug"},
|
||||
const BRANCHES: Array[String] = ["Glück", "Wirtschaft", "Kraft", "Weisheit"]
|
||||
## Ast -> Skills in Pfadreihenfolge (oben nach unten).
|
||||
const PATHS := {
|
||||
"Glück": ["packglueck", "garantie"],
|
||||
"Wirtschaft": ["packpreis", "muenzen", "staub"],
|
||||
"Kraft": ["zaeh", "stark"],
|
||||
"Weisheit": ["gratisziehen", "startmana", "sparsam"],
|
||||
}
|
||||
## Kampfskills geben ein Merkmal (Game.PERKS) im Kampf.
|
||||
## id -> Name, Höchststufe, Text.
|
||||
const SKILLS := {
|
||||
"packglueck": {"name": "Packglück", "max": 3, "text": "Seltenere Karten in Boostern"},
|
||||
"garantie": {"name": "Garantie", "max": 1, "text": "Mindestens eine Super Rare je Booster"},
|
||||
"packpreis": {"name": "Händler", "max": 3, "text": "Booster werden billiger"},
|
||||
"muenzen": {"name": "Münzsegen", "max": 3, "text": "Mehr Münzen nach jedem Kampf"},
|
||||
"staub": {"name": "Staubsammler", "max": 3, "text": "Mehr Staub aus Doppelten und Zerlegen"},
|
||||
"zaeh": {"name": "Zäh", "max": 3, "text": "Eigene Karten haben mehr Leben"},
|
||||
"stark": {"name": "Stark", "max": 3, "text": "Eigene Karten haben mehr Angriff"},
|
||||
"gratisziehen": {"name": "Freies Ziehen", "max": 1, "text": "Zweites Ziehen je Zug auch gratis"},
|
||||
"startmana": {"name": "Starker Start", "max": 1, "text": "Mehr Mana im ersten Zug"},
|
||||
"sparsam": {"name": "Sparsam", "max": 3, "text": "Teure Karten kosten 1 Mana weniger"},
|
||||
}
|
||||
## Diese Skills geben ein Merkmal (Game.PERKS) im Kampf.
|
||||
const PERK_OF := {"gratisziehen": "ziehen_gratis", "startmana": "start_energie"}
|
||||
## Packglück je Stufe: Common gibt ab, die höheren Stufen gewinnen.
|
||||
const LUCK_SHIFT := {"Common": -8.0, "Rare": 3.0, "Super Rare": 2.0, "Ultra Rare": 2.0, "Ultimate Rare": 1.0}
|
||||
@@ -32,7 +44,26 @@ static func level_for(xp: int) -> int:
|
||||
|
||||
|
||||
static func in_branch(branch: String) -> Array:
|
||||
return SKILLS.keys().filter(func(id): return SKILLS[id].branch == branch)
|
||||
return PATHS[branch]
|
||||
|
||||
|
||||
## Der Skill davor im Pfad, "" für den ersten eines Astes.
|
||||
static func previous(id: String) -> String:
|
||||
for b in PATHS:
|
||||
var i: int = PATHS[b].find(id)
|
||||
if i > 0:
|
||||
return PATHS[b][i - 1]
|
||||
return ""
|
||||
|
||||
|
||||
## Sparsam: ab diesen Kosten ist eine Karte 1 Mana billiger (Stufe 1 ab 7, 2 ab 5, 3 ab 3); 99 = nie.
|
||||
static func cheap_from(rank: int) -> int:
|
||||
return 9 - 2 * rank if rank > 0 else 99
|
||||
|
||||
|
||||
## Mindestseltenheit je Booster: Rare, mit Garantie Super Rare.
|
||||
static func pack_floor(garantie: int) -> String:
|
||||
return "Super Rare" if garantie > 0 else "Rare"
|
||||
|
||||
|
||||
## Boosterchancen je Stufe (Reihenfolge Cards.RARITIES) mit Packglück luck.
|
||||
@@ -49,14 +80,22 @@ static func effect(id: String, rank: int) -> String:
|
||||
"packglueck":
|
||||
var w := pack_weights(rank)
|
||||
return TranslationServer.translate("Chancen %d/%d/%d/%d/%d %%") % [int(w[0]), int(w[1]), int(w[2]), int(w[3]), int(w[4])]
|
||||
"garantie":
|
||||
return TranslationServer.translate("Super Rare je Pack sicher" if rank > 0 else "Rare je Pack sicher")
|
||||
"staub":
|
||||
return TranslationServer.translate("+%d %% Staub") % (25 * rank)
|
||||
"muenzen":
|
||||
return TranslationServer.translate("+%d %% Münzen") % (10 * rank)
|
||||
"packpreis":
|
||||
return TranslationServer.translate("Neutral %d, Element %d Münzen") % [roundi(Profile.BOOSTER_COST * (1.0 - 0.1 * rank)), roundi(Profile.ELEMENT_BOOSTER_COST * (1.0 - 0.1 * rank))]
|
||||
return TranslationServer.translate("Neutral %d, Element %d") % [roundi(Profile.BOOSTER_COST * (1.0 - 0.1 * rank)), roundi(Profile.ELEMENT_BOOSTER_COST * (1.0 - 0.1 * rank))]
|
||||
"zaeh":
|
||||
return TranslationServer.translate("+%d Leben") % rank
|
||||
"stark":
|
||||
return TranslationServer.translate("+%d Angriff") % rank
|
||||
"gratisziehen":
|
||||
return TranslationServer.translate("zwei Karten je Zug gratis" if rank > 0 else "eine Karte je Zug gratis")
|
||||
"startmana":
|
||||
return TranslationServer.translate("erster Zug: %d Mana") % (Game.START_MANA + (2 if rank > 0 else 0))
|
||||
"sparsam":
|
||||
return TranslationServer.translate("ab %d Mana 1 billiger") % cheap_from(rank) if rank > 0 else TranslationServer.translate("voller Preis")
|
||||
return ""
|
||||
Reference in new issue
Block a user