UNPKG

dungeon-sdk-drikkx

Version:

Shared types and entities for the Dungeon game

368 lines 13.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DUNGEON_DEFAULTS = void 0; const dungeon_types_1 = require("../types/dungeon.types"); const character_types_1 = require("../types/character.types"); // Fonction helper pour créer un ennemi basé sur un template de personnage const createEnemy = (baseType, level = 1) => { const base = character_types_1.CHARACTER_DEFAULTS[baseType]; return { ...base, level, id: undefined, experience: 0 }; }; // Items de récompense communs const commonRewards = [ { id: '1', name: 'Health Potion', description: 'Restore 50 vitality', type: 'consumable', rarity: 'common', level: 1, effects: [{ trigger: 'onUse', effect: { type: 'hot', stat: 'vitality', value: 50, duration: 1, source: 'item' } }], price: 100, stackable: true, maxStack: 10 }, { id: '2', name: 'Mana Potion', description: 'Restaure une partie des points de mana', type: 'consumable', rarity: 'common', level: 1, effects: [{ trigger: 'onUse', effect: { type: 'hot', stat: 'intelligence', value: 50, duration: 1, source: 'item' } }], price: 100, stackable: true, maxStack: 10 } ]; // Fonction helper pour créer un item d'équipement const createEquipment = (id, name, type, rarity, effects) => ({ id, name, description: `${name} - ${rarity} ${type}`, type, rarity, level: 1, effects: effects.map(effect => ({ trigger: 'onEquip', effect })), price: rarity === 'epic' ? 1000 : rarity === 'rare' ? 500 : 200, stackable: false }); exports.DUNGEON_DEFAULTS = { // Donjon de la Grotte des Débutants cave: { id: '', theme: dungeon_types_1.DungeonTheme.CAVE, difficulty: dungeon_types_1.DungeonDifficulty.EASY, status: dungeon_types_1.DungeonStatus.WAITING, currentRoom: 0, currentWave: 0, totalRooms: 3, totalWaves: 3, party: [], combatHistory: [], completed: false, createdAt: new Date(), startedAt: new Date(), createdById: '', rooms: [ { id: 'room1', dungeonId: '', type: dungeon_types_1.RoomType.COMBAT, roomNumber: 1, status: dungeon_types_1.RoomStatus.PENDING, completed: false, description: 'Une petite grotte faiblement éclairée', createdAt: new Date(), waves: [ { id: 'wave1', roomId: 'room1', waveNumber: 1, status: dungeon_types_1.WaveStatus.PENDING, enemies: [createEnemy('skeleton', 1)], rewards: commonRewards, completed: false, createdAt: new Date() } ] }, { id: 'room2', dungeonId: '', type: dungeon_types_1.RoomType.COMBAT, roomNumber: 2, status: dungeon_types_1.RoomStatus.PENDING, completed: false, description: 'Une caverne avec des cristaux lumineux', createdAt: new Date(), waves: [ { id: 'wave2', roomId: 'room2', waveNumber: 1, status: dungeon_types_1.WaveStatus.PENDING, enemies: [ createEnemy('skeleton', 1), createEnemy('skeleton_archer', 1) ], rewards: [ ...commonRewards, createEquipment('3', 'Crystal Shard', 'material', 'uncommon', []) ], completed: false, createdAt: new Date() } ] }, { id: 'room3', dungeonId: 'cave', type: dungeon_types_1.RoomType.BOSS, roomNumber: 3, status: dungeon_types_1.RoomStatus.PENDING, completed: false, description: 'La chambre du boss, un grand espace avec un trône de pierre', createdAt: new Date(), waves: [ { id: 'wave3', roomId: 'room3', waveNumber: 1, status: dungeon_types_1.WaveStatus.PENDING, enemies: [ createEnemy('skeleton', 1), createEnemy('armored_skeleton', 1), createEnemy('skeleton_archer', 1) ], rewards: [ ...commonRewards, createEquipment('4', 'Knight\'s Shield', 'armor', 'rare', [{ type: 'buff', stat: 'vitality', value: 10, duration: -1, source: 'equipment' }]) ], completed: false, createdAt: new Date() } ] } ] }, // Forêt Mystique forest: { id: '', theme: dungeon_types_1.DungeonTheme.FOREST, difficulty: dungeon_types_1.DungeonDifficulty.MEDIUM, status: dungeon_types_1.DungeonStatus.WAITING, currentRoom: 0, currentWave: 0, totalRooms: 4, totalWaves: 5, party: [], combatHistory: [], completed: false, createdAt: new Date(), startedAt: new Date(), createdById: '', rooms: [ { id: 'room1', dungeonId: 'forest', type: dungeon_types_1.RoomType.COMBAT, roomNumber: 1, status: dungeon_types_1.RoomStatus.PENDING, completed: false, description: 'Une clairière brumeuse', createdAt: new Date(), waves: [ { id: 'wave1', roomId: 'room1', waveNumber: 1, status: dungeon_types_1.WaveStatus.PENDING, enemies: [ createEnemy('archer', 2), createEnemy('archer', 2) ], rewards: commonRewards, completed: false, createdAt: new Date() } ] }, { id: 'room2', dungeonId: 'forest', type: dungeon_types_1.RoomType.COMBAT, roomNumber: 2, status: dungeon_types_1.RoomStatus.PENDING, completed: false, description: 'Un bosquet enchanté', createdAt: new Date(), waves: [ { id: 'wave2', roomId: 'room2', waveNumber: 1, status: dungeon_types_1.WaveStatus.PENDING, enemies: [ createEnemy('priest', 2), createEnemy('swordsman', 2) ], rewards: commonRewards, completed: false, createdAt: new Date() }, { id: 'wave3', roomId: 'room2', waveNumber: 2, status: dungeon_types_1.WaveStatus.PENDING, enemies: [ createEnemy('archer', 2), createEnemy('priest', 2) ], rewards: [ ...commonRewards, createEquipment('5', 'Enchanted Bow', 'weapon', 'rare', [{ type: 'buff', stat: 'strength', value: 5, duration: -1, source: 'equipment' }]) ], completed: false, createdAt: new Date() } ] }, { id: 'room3', dungeonId: 'forest', type: dungeon_types_1.RoomType.ELITE, roomNumber: 3, status: dungeon_types_1.RoomStatus.PENDING, completed: false, description: 'Le sanctuaire des gardiens', createdAt: new Date(), waves: [ { id: 'wave4', roomId: 'room3', waveNumber: 1, status: dungeon_types_1.WaveStatus.PENDING, enemies: [ createEnemy('knight', 3), createEnemy('priest', 3) ], rewards: [ ...commonRewards, createEquipment('6', 'Guardian\'s Amulet', 'armor', 'rare', [ { type: 'buff', stat: 'strength', value: 3, duration: -1, source: 'equipment' }, { type: 'buff', stat: 'agility', value: 3, duration: -1, source: 'equipment' }, { type: 'buff', stat: 'intelligence', value: 3, duration: -1, source: 'equipment' } ]) ], completed: false, createdAt: new Date() } ] }, { id: 'room4', dungeonId: 'forest', type: dungeon_types_1.RoomType.BOSS, roomNumber: 4, status: dungeon_types_1.RoomStatus.PENDING, completed: false, description: 'L\'arbre ancestral', createdAt: new Date(), waves: [ { id: 'wave5', roomId: 'room4', waveNumber: 1, status: dungeon_types_1.WaveStatus.PENDING, enemies: [ createEnemy('knight', 4), createEnemy('priest', 4), createEnemy('archer', 4) ], rewards: [ ...commonRewards, createEquipment('7', 'Ancient Tree Core', 'material', 'epic', []), createEquipment('8', 'Forest Guardian\'s Blade', 'weapon', 'epic', [ { type: 'buff', stat: 'strength', value: 10, duration: -1, source: 'equipment' }, { type: 'buff', stat: 'agility', value: 5, duration: -1, source: 'equipment' } ]) ], completed: false, createdAt: new Date() } ] } ] } }; //# sourceMappingURL=dungeon.defaults.js.map