Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
1b70332
Achievements Scaffolding
bb-froggy Jan 29, 2026
be14b87
Achievement: Win n games
bb-froggy Jan 29, 2026
2ade8cd
Prepare AchievementRepository.java
bb-froggy Feb 2, 2026
335253e
Correctly wire the achievement events
bb-froggy Feb 3, 2026
4457c90
Improved Achievements Layout
bb-froggy Feb 3, 2026
5e7609d
Additional achievement types
bb-froggy Feb 3, 2026
412661f
Improve Achievements layout
bb-froggy Feb 3, 2026
53918d2
Buy n Castles Achievement
bb-froggy Feb 4, 2026
cdf7144
Win with only n castles Achievement and separate tracker for in-game …
bb-froggy Feb 4, 2026
1b83982
Refactor: Count things in tracker and make Achievements leaner
bb-froggy Feb 4, 2026
9dc167d
re-order achievements on resize
bb-froggy Feb 19, 2026
0ecde90
WIP: Achievement for winning n games in a row
bb-froggy Feb 19, 2026
988d79a
Detecting a very-hard win streak
bb-froggy Feb 19, 2026
9784dc1
Check map sizes
bb-froggy Feb 22, 2026
0038afe
Better colors for achievements
bb-froggy Feb 26, 2026
2d6a94e
Move TitleLabel into achievement box, event if it has two rows
bb-froggy Feb 26, 2026
3ffb1b9
Change achievements title color (questionable decision)
bb-froggy Feb 26, 2026
262e7b9
AI Level Display name in Achievement DisplayName
bb-froggy Feb 26, 2026
a5db590
Achievement "Win in n rounds"
bb-froggy Mar 3, 2026
49c4c9b
Achievement "Lose against weak AI"
bb-froggy Mar 3, 2026
1810eb3
Achievement: Win and there are still many surviving enemies
bb-froggy Mar 4, 2026
ced6e24
Achievement: Win, but need more than n rounds
bb-froggy Mar 4, 2026
b77fa45
Win in more than n rounds -> Just play more than n rounds
bb-froggy Mar 4, 2026
a37d868
Fancy names for each achievement category
bb-froggy Mar 5, 2026
bbb3030
Fix Achievement UI scrolling layout
bb-froggy Mar 5, 2026
1261791
Small UI improvement
bb-froggy Mar 5, 2026
114c55c
HRR Henry VI as emperor without castle
bb-froggy Mar 5, 2026
091963f
Remove AchievementGameStateTracker and the two achievements depending…
bb-froggy Mar 9, 2026
59f017c
Separate data structure for history persons and events
bb-froggy Mar 9, 2026
6b08021
Add border around achievement boxes and improve AchievementDetail
bb-froggy Mar 9, 2026
9092992
Louis XI. as winning against 5 enemies
bb-froggy Mar 9, 2026
d84f2e8
WinWhenStartingLastAchievement.java
bb-froggy Mar 14, 2026
d358104
WinWhenStartingLastAchievement: It must also be the very hard AI
bb-froggy Mar 16, 2026
ad07af2
Fix wrong victory condition in WinWhenStartingLastAchievement
bb-froggy Mar 17, 2026
febcf13
Unit tests for achievements
bb-froggy Mar 17, 2026
0b8fdc9
Fine-tuned some achievement values
bb-froggy Mar 18, 2026
87acc77
More explicit description of WinVeryHardGamesInARowAchievement
bb-froggy Mar 18, 2026
8796c37
Secret achievements
bb-froggy Mar 18, 2026
129dc18
Achievement: John the Posthumous (and a rename of the LoseAgainstWeak…
bb-froggy Mar 18, 2026
05a7839
AbortGameAchievement must be in first round
bb-froggy Apr 8, 2026
5beb604
JavaDoc for achievement code
bb-froggy Apr 8, 2026
f987ce4
Remove unneeded method peekLastMove
bb-froggy Apr 8, 2026
e6786e4
Achievement Headings get their own font
bb-froggy Apr 8, 2026
e2d7e79
Comment explaining why WinWhenStartingLastAchievement does not work
bb-froggy Apr 8, 2026
c24521c
Remove commented-out code
bb-froggy Apr 8, 2026
ef71dc7
Fix for last player detection in WinWhenStartingLastAchievement
bb-froggy Apr 8, 2026
3dd48aa
JavaDoc for AchievementsEventHandler
bb-froggy Apr 8, 2026
53d246f
Use HorizontalGroup instead of manual column calculation
bb-froggy Apr 8, 2026
b7da041
Test improvements: Do not mock value classes -- and saved some redund…
bb-froggy Apr 19, 2026
e8aadc5
Fix failing test and use existing (unused?) MockPreferences
bb-froggy Apr 20, 2026
f1b8ecb
Merge branch 'master' into dev-achievements
bb-froggy Apr 22, 2026
f846283
Import MockPreferences from new correct package
bb-froggy Apr 22, 2026
6cb7b45
The achievement classes decide whether they are secret
bb-froggy Apr 22, 2026
2b0396a
Move AchievementsEventHandler.java out of ui
bb-froggy Apr 22, 2026
a935aeb
Redesign architecture for less coupling and more use of services
bb-froggy May 11, 2026
f758e4a
Achievements store their status via events
bb-froggy May 12, 2026
bb2738a
proper equals and hash code calculation
bb-froggy May 13, 2026
e36a518
Merge branch 'master' into dev-achievements
bb-froggy May 13, 2026
e67d5dc
Fix compilation errors after merging i18n code
bb-froggy May 13, 2026
8b6779a
Fix full achievement serialization issue
bb-froggy May 13, 2026
31c2ceb
fix json de-serialization (hopefully for real this time)
bb-froggy May 14, 2026
4f8e0fb
fix: Refresh achievements on every showing of the AchievementsScreen
bb-froggy May 14, 2026
6d6316b
Achievements directly return whether they have been changed after Map…
bb-froggy May 14, 2026
1adf032
Register click events in AchievementsScreen instead of a lower-level …
bb-froggy May 18, 2026
2a2b65e
Make the heading in the achievement details a little larger
bb-froggy May 19, 2026
fccc18f
Make AchievementBox use defined size
bb-froggy May 20, 2026
fcb7eb6
Refactor: Where are Achievements constructed and where are the values…
bb-froggy May 20, 2026
d1dbfa4
Removed unneeded imports
bb-froggy May 20, 2026
ef56491
Singular class names AchievementService and -Repository to plural Ach…
bb-froggy May 20, 2026
50b820c
Merge branch 'master' into dev-achievements
bb-froggy May 20, 2026
a2dec22
Fix build issues after merging master
bb-froggy May 20, 2026
7b97534
begin moving strings to translation file
Sesu8642 Jun 6, 2026
e0f93e0
make some more strings translatable
Sesu8642 Jun 18, 2026
51f629c
refactor and fix achievement translations
Sesu8642 Jun 20, 2026
7175802
translate ai level for WinAgainstAiLevelAchievement
Sesu8642 Jun 21, 2026
2325190
remove broken tests
Sesu8642 Jun 21, 2026
0f9ed82
translate map size for WinOnMapSizeAchievement
Sesu8642 Jul 7, 2026
d923eae
add initial German translations for achievements
Sesu8642 Jul 7, 2026
1c0ab51
improve texts
Sesu8642 Aug 10, 2026
1f2dd8c
fix crash
Sesu8642 Aug 10, 2026
8db29c7
refactor achievement dialog and headline font
Sesu8642 Aug 10, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 1 addition & 4 deletions .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions assets/i18n/prompts.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# for translating to a new language
The following is a properties file containing translatable strings for the game Feudal Tactics, a medieval strategy game.
Translate the values to <Language>. Do not change the keys. Consider the comments for context. Preserve all comments exactly as they appear, do not translate them. A natural, fitting translation is preferred over a literal one. Leave English loanwords that are commonly used in the target language unchanged. For example, the word “Tutorial” is often kept in English in many languages. Make sure that reoccurring words are translated consistently, unless the context requires a different translation. Do not insert special characters like non-breaking spaces that are not present in the original.

# for translating a new section
The following is a properties file containing translatable strings for the game Feudal Tactics, a medieval strategy game.
Translate the values in the <section> section to <Language>. Do not change the keys. Consider the comments for context. Preserve all comments exactly as they appear, do not translate them. A natural, fitting translation is preferred over a literal one. Leave English loanwords that are commonly used in the target language unchanged. For example, the word “Tutorial” is often kept in English in many languages. Make sure that reoccurring words are translated consistently, unless the context requires a different translation. Do not insert special characters like non-breaking spaces that are not present in the original.
67 changes: 67 additions & 0 deletions assets/i18n/strings.properties
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ menu-button-tutorial=Tutorial
menu-button-changelog=Changelog
menu-button-dependency-licenses=Software Licenses
menu-button-privacy-policy=Privacy Policy ↗
menu-button-achievements=Achievements
menu-button-statistics=Statistics
menu-dialog-text-tutorial-nag=Do you know how to play?\n
menu-dialog-text-game-updated=The game was updated. See the changelog for details.\n
Expand Down Expand Up @@ -166,6 +167,72 @@ hud-status-text-savings-info=Savings: {0} ({1})
hud-status-text-select-kingdom=Your turn \u2013 select a kingdom.
editor-hud-text-map-size-info=Map Size: {0}

# achievements
achievements-description-is-secret=This achievement is still secret. Unlock it to see the full description.
achievements-description-is-unlocked=Status: Unlocked
achievements-description-progress=Progress: {0} / {1}
achievements-summary-is-unlocked=Unlocked
achievement-win-n-games-title=Win {0,choice,1#1 Game|1<{0,number,integer} Games}
achievement-win-n-games-description=Win {0,choice,1#1 game|1<{0,number,integer} games}, either by defeating your enemies or by having them surrender. Any difficulty and map size are allowed.
achievement-win-n-games-historic-title=Charlemagne
achievement-win-n-games-historic-description=Charlemagne (747–814) was King of the Franks and Lombards and Emperor of the Romans. He won many battles and united much of Western Europe during the early Middle Ages.
achievement-win-in-n-rounds-title=Win in {0} Rounds
achievement-win-in-n-rounds-description=Win a game in {0} rounds or fewer. The enemies must be 'very strong', and the map size must be at least 'medium'.
achievement-win-in-n-rounds-historic-title=Jeanne d'Arc
achievement-win-in-n-rounds-historic-description=Jeanne d'Arc (1412–1431) was a French heroine and saint. She led the French army to important victories while still a teenager.
achievement-play-more-than-n-rounds-title=Win in More Than {0} Rounds
achievement-play-more-than-n-rounds-description=Win a game that lasts at least {0} rounds.
achievement-play-more-than-n-rounds-historic-title=Thirty Years' War
achievement-play-more-than-n-rounds-historic-description=The Thirty Years' War was a series of wars in Central Europe from 1618 to 1648.
achievement-play-more-than-n-rounds-historic2-title=Hundred Years' War
achievement-play-more-than-n-rounds-historic2-description=The Hundred Years' War was a series of conflicts waged from 1337 to 1453.
achievement-lose-against-weakest-ai-title=Lose Against 'Easy' Enemies
achievement-lose-against-weakest-ai-description=Lose a game against the weakest enemies. Aborting does not count.
achievement-lose-against-weakest-ai-historic-title=Road to Canossa
achievement-lose-against-weakest-ai-historic-description=Holy Roman Emperor Henry IV went to Canossa to seek absolution from Pope Gregory VII. This was a humiliating event for the emperor.
achievement-win-very-hard-games-in-a-row-title=Win {0} 'Very Hard' Games in a Row
achievement-win-very-hard-games-in-a-row-description=Win {0} games in a row against 'very hard' enemies. Any map size is allowed, but you must win consecutively without losing or aborting, and you must not regenerate the map (always use the first generated map). You must not change any setting; always play the game you are presented with. Therefore, you must always play with the same color and the same map size you started with. You also must not play a game on a lower difficulty in between, and you must not go back to the main menu once you have looked at the map.
achievement-win-very-hard-games-in-a-row-historic-title=William the Conqueror
achievement-win-very-hard-games-in-a-row-historic-description=William I (1028–1087) was the first Norman King of England. He won many battles in a row, including the famous Battle of Hastings in 1066.
achievement-win-on-map-size-title=Win on a '{0}' Map
achievement-win-on-map-size-title-param-size-small=Small
achievement-win-on-map-size-title-param-size-medium=Medium
achievement-win-on-map-size-title-param-size-large=Large
achievement-win-on-map-size-title-param-size-xlarge=Huge
achievement-win-on-map-size-title-param-size-xxlarge=Gigantic
achievement-win-on-map-size-description=Win a game on a '{0}' map, either by defeating your enemies or by having them surrender. Any difficulty is allowed.
achievement-win-on-map-size-description-param-size-small=small
achievement-win-on-map-size-description-param-size-medium=medium
achievement-win-on-map-size-description-param-size-large=large
achievement-win-on-map-size-description-param-size-xlarge=huge
achievement-win-on-map-size-description-param-size-xxlarge=gigantic
achievement-win-on-map-size-historic-title=Richard the Lionheart
achievement-win-on-map-size-historic-description=Richard I (1157–1199) was King of England. He fought many battles, especially in the Third Crusade, far from his home.
achievement-win-against-ai-level-title=Win a Game on Difficulty {0}
achievement-win-against-ai-level-title-param-difficulty-easy=Easy
achievement-win-against-ai-level-title-param-difficulty-medium=Medium
achievement-win-against-ai-level-title-param-difficulty-hard=Hard
achievement-win-against-ai-level-title-param-difficulty-very-hard=Very Hard
achievement-win-against-ai-level-description=Win a game on difficulty {0}. It must be exactly that difficulty, not higher.
achievement-win-against-ai-level-description-param-difficulty-easy=easy
achievement-win-against-ai-level-description-param-difficulty-medium=medium
achievement-win-against-ai-level-description-param-difficulty-hard=hard
achievement-win-against-ai-level-description-param-difficulty-very-hard=very hard
achievement-win-against-ai-level-historic-title=Frederick the Great
achievement-win-against-ai-level-historic-description=Frederick II (1712–1786) was King of Prussia. He won many battles and is also known as a patron of education and the arts.
achievement-win-against-many-enemies-title=Win With {0} Surviving Enemies
achievement-win-against-many-enemies-description=Win a game where your enemies surrender and there are still {0} or more enemies with surviving kingdoms.
achievement-win-against-many-enemies-historic-title=Louis XI
achievement-win-against-many-enemies-historic-description=Louis XI (1423–1483) was King of France and had the nickname 'The Universal Spider', as he carried out intrigues to turn his enemies against each other. He is known for his cunning and deviousness, but also for uniting France after the Hundred Years' War.
achievement-win-when-starting-last-title=Win When Starting Last
achievement-win-when-starting-last-description=Win a game against very hard enemies when starting last in the turn order.
achievement-win-when-starting-last-historic-title=Tokugawa Ieyasu
achievement-win-when-starting-last-historic-description=Tokugawa Ieyasu (1543–1616) was born into a samurai family, not a noble one. Although he was not initially in a position of power, he eventually became shogun of Japan in 1603 at age 60.
achievement-abort-game-title=Abort in Round 1
achievement-abort-game-description=Abort a game in the very first round.
achievement-abort-game-historic-title=John the Posthumous
achievement-abort-game-historic-description=John the Posthumous (1316–1316) was King of France for only five days, from his birth to his early death.

# used in several places
menu-label-version=Version
copy-button=Copy
Expand Down
67 changes: 67 additions & 0 deletions assets/i18n/strings_de.properties
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ menu-button-tutorial=Tutorial
menu-button-changelog=Änderungsprotokoll
menu-button-dependency-licenses=Software‑Lizenzen
menu-button-privacy-policy=Datenschutzerklärung ↗
menu-button-achievements=Erfolge
menu-button-statistics=Statistiken
menu-dialog-text-tutorial-nag=Weißt du, wie man spielt?\n
menu-dialog-text-game-updated=Das Spiel wurde aktualisiert. Details gibt es im Änderungsprotokoll.\n
Expand Down Expand Up @@ -166,6 +167,72 @@ hud-status-text-savings-info=Ersparnisse: {0} ({1})
hud-status-text-select-kingdom=Dein Zug – wähle ein Königreich.
editor-hud-text-map-size-info=Kartengröße: {0}

# achievements
achievements-description-is-secret=Dieses Achievement ist noch geheim. Schalte es frei, um die vollständige Beschreibung zu sehen.
achievements-description-is-unlocked=Status: Freigeschaltet
achievements-description-progress=Fortschritt: {0} / {1}
achievements-summary-is-unlocked=Freigeschaltet
achievement-win-n-games-title=Gewinne {0,choice,1#1 Spiel|1<{0,number,integer} Spiele}
achievement-win-n-games-description=Gewinne {0,choice,1#1 Spiel|1<{0,number,integer} Spiele}, indem du entweder deine Feinde besiegst oder sie zur Kapitulation zwingst. Jede Schwierigkeit und jede Kartengröße ist erlaubt.
achievement-win-n-games-historic-title=Karl der Große
achievement-win-n-games-historic-description=Karl der Große (747–814) war König der Franken und Langobarden, römischer Kaiser und vereinte weite Teile Westeuropas im frühen Mittelalter.
achievement-win-in-n-rounds-title=Gewinne in {0} Runden
achievement-win-in-n-rounds-description=Gewinne ein Spiel in höchstens {0} Runden. Die Gegner müssen 'sehr stark' sein, die Kartengröße mindestens 'mittel'.
achievement-win-in-n-rounds-historic-title=Jeanne d'Arc
achievement-win-in-n-rounds-historic-description=Jeanne d'Arc (1412–1431) war eine französische Nationalheldin und Heilige, die bereits als Teenager die französische Armee zu wichtigen Siegen führte.
achievement-play-more-than-n-rounds-title=Gewinne in mehr als {0} Runden
achievement-play-more-than-n-rounds-description=Gewinne ein Spiel, das mindestens {0} Runden dauert.
achievement-play-more-than-n-rounds-historic-title=Dreißigjähriger Krieg
achievement-play-more-than-n-rounds-historic-description=Der Dreißigjährige Krieg war eine Reihe von Kriegen in Mitteleuropa zwischen 1618 und 1648.
achievement-play-more-than-n-rounds-historic2-title=Hundertjähriger Krieg
achievement-play-more-than-n-rounds-historic2-description=Der Hundertjährige Krieg war eine Serie von Konflikten von 1337 bis 1453.
achievement-lose-against-weakest-ai-title=Verliere gegen 'einfache' Gegner
achievement-lose-against-weakest-ai-description=Verliere ein Spiel gegen die schwächsten Gegner. Abbrechen zählt nicht!
achievement-lose-against-weakest-ai-historic-title=Weg nach Canossa
achievement-lose-against-weakest-ai-historic-description=Der römisch-deutsche Kaiser Heinrich IV. ging nach Canossa, um von Papst Gregor VII. Verzeihung zu erbitten – ein demütigendes Ereignis für den Kaiser.
achievement-win-very-hard-games-in-a-row-title=Gewinne {0} 'sehr schwere' Spiele hintereinander
achievement-win-very-hard-games-in-a-row-description=Gewinne {0} Spiele in Folge gegen 'sehr schwere' Gegner. Jede Kartengröße ist erlaubt, aber du musst ohne Niederlage oder Abbruch hintereinander gewinnen, die Karte nie neu generieren (immer die zuerst erzeugte Karte nutzen) und stets mit derselben Farbe und Größe spielen. Zwischendurch darfst du nicht auf leichterer Schwierigkeit spielen und nicht ins Hauptmenü zurückkehren, sobald du die Karte angesehen hast.
achievement-win-very-hard-games-in-a-row-historic-title=Wilhelm der Eroberer
achievement-win-very-hard-games-in-a-row-historic-description=Wilhelm I. (1028–1087) war der erste normannische König von England. Er gewann viele Schlachten hintereinander, darunter die berühmte Schlacht von Hastings 1066.
achievement-win-on-map-size-title=Gewinne auf einer '{0}' Karte
achievement-win-on-map-size-title-param-size-small=kleinen
achievement-win-on-map-size-title-param-size-medium=mittleren
achievement-win-on-map-size-title-param-size-large=großen
achievement-win-on-map-size-title-param-size-xlarge=riesigen
achievement-win-on-map-size-title-param-size-xxlarge=gigantischen
achievement-win-on-map-size-description=Gewinne ein Spiel auf einer '{0}' Karte, indem du entweder deine Feinde besiegst oder sie zur Kapitulation zwingst. Jede Schwierigkeit ist erlaubt.
achievement-win-on-map-size-description-param-size-small=kleinen
achievement-win-on-map-size-description-param-size-medium=mittleren
achievement-win-on-map-size-description-param-size-large=großen
achievement-win-on-map-size-description-param-size-xlarge=riesigen
achievement-win-on-map-size-description-param-size-xxlarge=gigantischen
achievement-win-on-map-size-historic-title=Richard Löwenherz
achievement-win-on-map-size-historic-description=Richard I. (1157–1199) war König von England. Er kämpfte in vielen Schlachten, besonders im Dritten Kreuzzug, weit entfernt von seiner Heimat.
achievement-win-against-ai-level-title=Gewinne ein Spiel auf der Schwierigkeit '{0}'
achievement-win-against-ai-level-title-param-difficulty-easy=leicht
achievement-win-against-ai-level-title-param-difficulty-medium=mittel
achievement-win-against-ai-level-title-param-difficulty-hard=schwer
achievement-win-against-ai-level-title-param-difficulty-very-hard=sehr schwer
achievement-win-against-ai-level-description=Gewinne ein Spiel auf der Schwierigkeit '{0}'. Es muss genau diese Schwierigkeit sein, nicht höher.
achievement-win-against-ai-level-description-param-difficulty-easy=leicht
achievement-win-against-ai-level-description-param-difficulty-medium=mittel
achievement-win-against-ai-level-description-param-difficulty-hard=schwer
achievement-win-against-ai-level-description-param-difficulty-very-hard=sehr schwer
achievement-win-against-ai-level-historic-title=Friedrich der Große
achievement-win-against-ai-level-historic-description=Friedrich II. (1712–1786) war König von Preußen. Er gewann viele Schlachten und ist zudem als Förderer von Bildung und Kunst bekannt.
achievement-win-against-many-enemies-title=Gewinne mit {0} verbliebenen Gegnern
achievement-win-against-many-enemies-description=Gewinne ein Spiel, in dem deine Gegner kapitulieren und es noch mindestens {0} verschiedene Gegner mit verbliebenen Königreichen gibt.
achievement-win-against-many-enemies-historic-title=Louis XI.
achievement-win-against-many-enemies-historic-description=Louis XI. (1423–1483) war König von Frankreich und trug den Beinamen „Die universelle Spinne“, weil er Intrigen nutzte, um Gegner gegeneinander auszuspielen. Er ist für List und Gerissenheit bekannt und vereinte Frankreich nach dem Hundertjährigen Krieg.
achievement-win-when-starting-last-title=Gewinne, wenn du zuletzt an der Reihe bist
achievement-win-when-starting-last-description=Gewinne ein Spiel gegen sehr schwere Gegner, wenn du als Letzter am Zug bist.
achievement-win-when-starting-last-historic-title=Tokugawa Ieyasu
achievement-win-when-starting-last-historic-description=Tokugawa Ieyasu (1543–1616) wurde in eine Samurai-Familie geboren und war nicht adlig. Obwohl er zunächst keine Machtposition hatte, wurde er 1603 im Alter von 60 Jahren zum Shogun von Japan.
achievement-abort-game-title=Brich in Runde 1 ab
achievement-abort-game-description=Brich ein Spiel in der allerersten Runde ab.
achievement-abort-game-historic-title=Johannes der Posthume
achievement-abort-game-historic-description=Johannes der Posthume (1316–1316) war für nur fünf Tage König von Frankreich, von seiner Geburt bis zu seinem frühen Tod.

# used in several places
menu-label-version=Version
copy-button=Kopieren
Expand Down
Binary file modified assets/skin/pixthulhu-ui.json
Binary file not shown.
Loading