Files
adventureland/files/custom/game.js
T
anima 1ccf4a760b
build container / build (push) Failing after 5m13s
add custom game data overrides
2026-11-01 16:18:38 +01:00

78 lines
2.9 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// Eigene Spieldaten für diese Instanz.
//
// Die Datei liegt auf dem Host unter files/custom/game.js und wird in die
// Container als /app/custom/game.js gemountet. Sie ist kein Teil des Images:
// Änderungen brauchen nur einen Neustart, keinen Rebuild.
//
// docker compose restart al-backend al-game
//
// Regeln:
// - Objekte werden tief zusammengeführt; Arrays ersetzen den bisherigen Wert.
// - Neue IDs sind erlaubt (Items, Monster, NPCs, Conditions, ...), solange
// sie eine vorhandene Grafik aus design/dimensions.js verwenden.
// - Neue Karten sind nicht möglich: ihre Geometrie liegt in MongoDB.
// - `drops` wird an die vorhandene Tabelle angehängt.
// - `phrases` überschreibt Anzeigetexte. "*" gilt für alle Sprachen,
// ein Sprachcode (de, en, ...) hat Vorrang. Das ist nötig, wenn sich
// Zahlen in einem Tooltip ändern.
// - `apply(game)` ist ein Notausgang für alles, was sich nicht als Daten
// ausdrücken lässt; `game` enthält die Design-Objekte und `drops`.
//
// Aktuelles Beispiel: "Lone Wolf" gibt 10× XP statt 3×.
// Der Game-Server liest die Multiplikatoren aus der Condition-Definition
// (siehe docker/patch-custom-game.js); der Tooltip-Text kommt aus `phrases`.
module.exports = {
conditions: {
encouragement_lonewolf: {
gold_multiplier: 3,
xp_multiplier: 10,
luck_multiplier: 3,
// Fallback für Stellen, die die Rohdaten ohne Phrase anzeigen.
explanation:
"3× Gold, 10× XP and 3× Luck while you run one non-merchant character. Merchants may stay online. Extra rewards follow your contribution.",
},
},
phrases: {
"*": {
"condition.encouragement_lonewolf.explanation":
"3× Gold, 10× XP and 3× Luck while you run one non-merchant character. Merchants may stay online. Extra rewards follow your contribution.",
},
de: {
"condition.encouragement_lonewolf.explanation":
"3× Gold, 10× XP und 3× Glück, solange du nur einen Nicht-Händler-Charakter spielst. Händler dürfen online bleiben. Zusätzliche Belohnungen richten sich nach deinem Beitrag.",
},
},
// Weitere Beispiele – einkommentieren und anpassen:
//
// items: {
// "training_sword": {
// type: "weapon",
// wtype: "short_sword",
// skin: "sword", // muss in design/dimensions.js existieren
// name: "Training Sword",
// g: 10,
// },
// },
//
// monsters: {
// "training_goo": {
// skin: "goo",
// name: "Training Goo",
// speed: 6, charge: 12, hp: 100, xp: 100, attack: 5,
// damage_type: "physical", respawn: 1, gold: 20, range: 15,
// frequency: 0.4, aggro: 0, aa: 1,
// // Zusätzlich muss das Monster in einer Karte auftauchen, z. B.:
// // maps: { main: { monsters: [{ type: "training_goo", position: [0, 0], radius: 100, count: 1 }] } },
// },
// },
//
// drops: {
// main: [[0.001, "training_sword"]], // [Chance, Item-ID], wird angehängt
// },
//
// gold: {
// base: 0.8, // Standard 0.64
// },
};