UNPKG

@zerospacegg/vynthra

Version:
186 lines (176 loc) • 9.1 kB
/** * Test different display formats for tech trees in Discord */ function generateTestFormats() { // Sample tech tree data for testing const sampleData = { faction: "Protectorate", emoji: "šŸ¤–", tree: { "Operating Tower": { children: [ { name: "Supply Platform", children: [ { name: "Prot Barracks", children: [ { name: "Factory", children: [{ name: "Advanced Factory", children: [] }] }, { name: "Ranger", children: [] }, { name: "Sentry", children: [] } ] } ] }, { name: "Research Lab", children: [ { name: "Specialized Research Lab", children: [] }, { name: "Mechanical Research Lab", children: [] } ] } ] } } }; const formats = {}; // FORMAT 1: Simple Bullet Lists with Emojis formats["bullet_lists"] = `šŸ¤– **PROTECTORATE TECH TREE** šŸ¤– šŸ­ **Operating Tower** - <https://zerospace.gg/library/operating-tower> ā”œļø šŸ—ļø **Supply Platform** - <https://zerospace.gg/library/supply-platform> │ ā””ļø šŸ° **Prot Barracks** - <https://zerospace.gg/library/prot-barracks> │ ā”œļø šŸ­ **Factory** - <https://zerospace.gg/library/factory> │ │ ā””ļø šŸ­ **Advanced Factory** - <https://zerospace.gg/library/advanced-factory> │ ā”œļø šŸŽÆ **Ranger** - <https://zerospace.gg/library/ranger> │ ā””ļø šŸ›”ļø **Sentry** - <https://zerospace.gg/library/sentry> ā””ļø šŸ”¬ **Research Lab** - <https://zerospace.gg/library/research-lab> ā”œļø šŸ”¬ **Specialized Research Lab** - <https://zerospace.gg/library/specialized-research-lab> ā””ļø šŸ”§ **Mechanical Research Lab** - <https://zerospace.gg/library/mechanical-research-lab>`; // FORMAT 2: Code Block with ASCII formats["code_block"] = `šŸ¤– **PROTECTORATE TECH TREE** šŸ¤– \`\`\` Operating Tower ā”œā”€ Supply Platform │ └─ Prot Barracks │ ā”œā”€ Factory │ │ └─ Advanced Factory │ ā”œā”€ Ranger │ └─ Sentry └─ Research Lab ā”œā”€ Specialized Research Lab └─ Mechanical Research Lab \`\`\` **Links:** • Operating Tower: <https://zerospace.gg/library/operating-tower> • Supply Platform: <https://zerospace.gg/library/supply-platform> • Prot Barracks: <https://zerospace.gg/library/prot-barracks> • Factory: <https://zerospace.gg/library/factory> • Advanced Factory: <https://zerospace.gg/library/advanced-factory> • Ranger: <https://zerospace.gg/library/ranger> • Sentry: <https://zerospace.gg/library/sentry> • Research Lab: <https://zerospace.gg/library/research-lab> • Specialized Research Lab: <https://zerospace.gg/library/specialized-research-lab> • Mechanical Research Lab: <https://zerospace.gg/library/mechanical-research-lab>`; // FORMAT 3: Simple Indented Lists formats["indented_lists"] = `šŸ¤– **PROTECTORATE TECH TREE** šŸ¤– **šŸ­ Operating Tower** <https://zerospace.gg/library/operating-tower> **šŸ—ļø Supply Platform** <https://zerospace.gg/library/supply-platform> **šŸ° Prot Barracks** <https://zerospace.gg/library/prot-barracks> **šŸ­ Factory** <https://zerospace.gg/library/factory> **šŸ­ Advanced Factory** <https://zerospace.gg/library/advanced-factory> **šŸŽÆ Ranger** <https://zerospace.gg/library/ranger> **šŸ›”ļø Sentry** <https://zerospace.gg/library/sentry> **šŸ”¬ Research Lab** <https://zerospace.gg/library/research-lab> **šŸ”¬ Specialized Research Lab** <https://zerospace.gg/library/specialized-research-lab> **šŸ”§ Mechanical Research Lab** <https://zerospace.gg/library/mechanical-research-lab>`; // FORMAT 4: Emoji Tree Structure formats["emoji_tree"] = `šŸ¤– **PROTECTORATE TECH TREE** šŸ¤– šŸ­ Operating Tower <https://zerospace.gg/library/operating-tower> ┣━ šŸ—ļø Supply Platform <https://zerospace.gg/library/supply-platform> ā”ƒ ┗━ šŸ° Prot Barracks <https://zerospace.gg/library/prot-barracks> ā”ƒ ┣━ šŸ­ Factory <https://zerospace.gg/library/factory> ā”ƒ ā”ƒ ┗━ šŸ­ Advanced Factory <https://zerospace.gg/library/advanced-factory> ā”ƒ ┣━ šŸŽÆ Ranger <https://zerospace.gg/library/ranger> ā”ƒ ┗━ šŸ›”ļø Sentry <https://zerospace.gg/library/sentry> ┗━ šŸ”¬ Research Lab <https://zerospace.gg/library/research-lab> ┣━ šŸ”¬ Specialized Research Lab <https://zerospace.gg/library/specialized-research-lab> ┗━ šŸ”§ Mechanical Research Lab <https://zerospace.gg/library/mechanical-research-lab>`; // FORMAT 5: Layered Approach formats["layered"] = `šŸ¤– **PROTECTORATE TECH TREE** šŸ¤– **šŸ† Tier 1 - Foundation** šŸ­ Operating Tower <https://zerospace.gg/library/operating-tower> **šŸ† Tier 2 - Infrastructure** šŸ—ļø Supply Platform <https://zerospace.gg/library/supply-platform> *(requires Operating Tower)* šŸ”¬ Research Lab <https://zerospace.gg/library/research-lab> *(requires Operating Tower)* **šŸ† Tier 3 - Military & Research** šŸ° Prot Barracks <https://zerospace.gg/library/prot-barracks> *(requires Supply Platform)* šŸ”¬ Specialized Research Lab <https://zerospace.gg/library/specialized-research-lab> *(requires Research Lab)* šŸ”§ Mechanical Research Lab <https://zerospace.gg/library/mechanical-research-lab> *(requires Research Lab)* **šŸ† Tier 4 - Units & Advanced** šŸ­ Factory <https://zerospace.gg/library/factory> *(requires Prot Barracks)* šŸŽÆ Ranger <https://zerospace.gg/library/ranger> *(requires Prot Barracks)* šŸ›”ļø Sentry <https://zerospace.gg/library/sentry> *(requires Prot Barracks)* **šŸ† Tier 5 - Elite** šŸ­ Advanced Factory <https://zerospace.gg/library/advanced-factory> *(requires Factory)*`; return formats; } export const techTreeDisplayTestSubcommand = { name: "tech-tree-test", description: "Test different display formats for tech trees", builder: (subcommand) => subcommand .setName("tech-tree-test") .setDescription("Test different display formats for tech trees") .addStringOption((option) => option .setName("format") .setDescription("Display format to test") .setRequired(true) .addChoices({ name: "šŸ”ø Bullet Lists with Emojis", value: "bullet_lists" }, { name: "šŸ“ Code Block + Links", value: "code_block" }, { name: "šŸ“‹ Simple Indented", value: "indented_lists" }, { name: "🌲 Emoji Tree Structure", value: "emoji_tree" }, { name: "šŸ† Layered by Tier", value: "layered" })) .addBooleanOption((option) => option .setName("public") .setDescription("Show results to everyone (default: private)") .setRequired(false)), async execute(interaction) { const format = interaction.options.getString("format", true); const isPublic = interaction.options.getBoolean("public") ?? false; try { await interaction.deferReply({ ephemeral: !isPublic }); const formats = generateTestFormats(); const selectedFormat = formats[format]; if (!selectedFormat) { await interaction.editReply("āŒ Invalid format selected"); return; } // Add format info header const formatNames = { bullet_lists: "šŸ”ø Bullet Lists with Emojis", code_block: "šŸ“ Code Block + Links", indented_lists: "šŸ“‹ Simple Indented", emoji_tree: "🌲 Emoji Tree Structure", layered: "šŸ† Layered by Tier", }; const response = `**TESTING: ${formatNames[format]}**\n\n${selectedFormat}`; // Handle message length if (response.length <= 2000) { await interaction.editReply(response); } else { // Split the message if too long const chunks = response.match(/.{1,2000}(?=\s|$)/g) || [response]; await interaction.editReply(chunks[0]); for (let i = 1; i < chunks.length; i++) { await interaction.followUp({ content: chunks[i], ephemeral: !isPublic, }); } } } catch (error) { console.error("Tech tree display test failed:", error); await interaction.editReply({ content: `āŒ Error: ${error instanceof Error ? error.message : "Unknown error"}`, }); } }, }; //# sourceMappingURL=tech-tree-display-test.js.map