// 攻擊描述資料庫 - 完整版本 const attackDescriptions = { // 國文攻擊描述 chinese: { thresholds: [0.15, 0.08], // 強力攻擊閾值:15%以上,中等攻擊:8%以上 strong: [ "📚 文字的力量如詩如畫!古典文學爆發驚人威力,詩詞歌賦化作利劍直刺雞排怪心臟!", "✍️ 修辭技巧形成強大攻擊!比喻擬人如雷電交加,文學底蘊震撼全場!", "🎭 國學底蘊展現深厚功力!四書五經的智慧凝聚成無堅不摧的文字風暴!", "📖 千年文化傳承爆發!從詩經到現代文學,文字的魅力摧枯拉朽!", "🖋️ 筆墨紙硯化作神兵利器!書法的韻律與文學的美感完美融合!" ], medium: [ "📝 語文能力發揮穩定效果!閱讀理解與寫作技巧並重,文字攻擊命中目標!", "📄 作文技巧形成有效攻擊!起承轉合的結構展現文學素養!", "✏️ 語言表達展現實力!詞彙運用恰到好處,語法結構清晰有力!", "📚 文學知識穩定輸出!從古典到現代,文學史的脈絡清晰可見!", "🎨 文字藝術展現美感!修辭手法運用得當,語言文字生動有趣!" ], weak: [ "📄 文學攻擊略顯不足...字詞運用需要加強,多閱讀經典作品吧!", "🤷 語文基礎有待提升...句型結構稍顯混亂,需要多練習寫作!", "😐 國文攻擊力有限...古文理解需要努力,建議多背誦經典篇章!", "📝 文字表達能力待加強...詞彙量需要擴充,多讀書多寫作!", "🤔 語言運用不夠靈活...修辭技巧需要練習,文學素養有待提升!" ] }, // 英文攻擊描述 english: { thresholds: [0.12, 0.06], strong: [ "🌟 English power strikes like lightning! Grammar mastery unleashed with devastating force!", "🚀 Vocabulary explosion creates massive damage! Ten thousand words become weapons of mass instruction!", "⭐ Perfect pronunciation forms devastating attack! Fluency dominates the battlefield with eloquence!", "💫 Advanced grammar structures demolish the enemy! Complex sentences weave a web of linguistic destruction!", "🎯 Idioms and phrases rain down like arrows! Native-level expression overwhelms all opposition!" ], medium: [ "📘 英語能力發揮穩定效果!單字記憶與文法概念並重,語言攻擊命中目標!", "🗣️ 聽說讀寫技能均衡發展!英語溝通能力展現實力!", "📚 英文基礎紮實穩固!文法概念清晰,單字運用得當!", "🎧 語言技能穩定輸出!聽力理解與口語表達相得益彰!", "📖 閱讀理解能力良好!英文文章的脈絡掌握得宜!" ], weak: [ "📝 英文攻擊力道不足...單字量需要擴充,多背誦常用詞彙!", "🤔 語法概念有些混亂...時態變化需要練習,建議多做文法練習!", "😅 英語表達略顯生澀...口語能力待加強,多聽多說很重要!", "📚 英文基礎需要鞏固...從基本文法開始,循序漸進學習!", "🙄 語言運用不夠流暢...需要多接觸英語環境,培養語感!" ] }, // 數學攻擊描述 math: { thresholds: [0.18, 0.10], strong: [ "🔥 數學公式如雷電般劈向雞排怪!微積分的威力無人能擋,極限與導數交織成毀滅之網!", "⚡ 幾何定理爆發出驚人能量!三角函數與解析幾何完美結合,數學之美震撼全場!", "💥 代數方程式形成強大攻擊波!複數與矩陣的力量超越想像!", "🌌 數學邏輯展現絕對真理!從基礎運算到高等數學,理性思維無堅不摧!", "🧮 數字的奧秘完全展現!統計機率與數學分析融為一體,精確計算摧毀一切!" ], medium: [ "📊 數學運算穩定發揮!代數與幾何並重,邏輯思維清晰有序!", "📐 計算能力展現實力!基礎運算與進階概念相輔相成!", "🔢 數學概念理解良好!從算術到代數,數學基礎紮實穩固!", "📈 數學思維邏輯清晰!問題解決能力與計算技巧並重!", "🎯 數學應用能力不錯!理論與實際相結合,數學素養展現!" ], weak: [ "📝 數字攻擊略有成效...基礎運算需要加強,多練習計算題!", "🤔 數學概念有些模糊...公式記憶需要複習,理解比背誦更重要!", "😅 數學攻擊力道不足...邏輯思維需要訓練,多做推理題目!", "📚 數學基礎待鞏固...從基本概念開始,循序漸進學習!", "🙄 計算能力需要提升...細心與耐心同樣重要,避免粗心錯誤!" ] }, // 自然科學攻擊描述 science: { thresholds: [0.12, 0.06], strong: [ "🔬 科學知識爆發驚人威力!實驗精神與理論基礎完美結合,科學真理震撼全場!", "⚗️ 化學反應形成強大攻擊!元素週期表的奧秘與分子結構的美妙交織成毀滅之力!", "🌌 物理定律展現深奧力量!從牛頓力學到量子物理,宇宙法則無所不能!", "🧬 生物科學展現生命奧秘!DNA的雙螺旋結構與進化論的智慧融為一體!", "🌍 地球科學揭示自然威力!板塊運動與氣候變化的力量超越想像!" ], medium: [ "🧪 自然科學穩定發揮!觀察實驗與理論學習並重,科學素養展現!", "🔍 科學方法運用得當!假設驗證與數據分析相輔相成!", "📊 實驗技能展現實力!從觀察到結論,科學思維邏輯清晰!", "🌿 自然現象理解良好!生物多樣性與生態平衡概念清楚!", "⚛️ 科學概念掌握不錯!物理化學基礎知識紮實穩固!" ], weak: [ "🤓 科學攻擊需要加強...實驗技巧有待提升,多動手做實驗!", "😵 理論概念稍顯模糊...科學原理需要複習,理解比記憶重要!", "🙄 自然科學力道不足...觀察能力待加強,培養科學好奇心!", "📚 科學基礎需要鞏固...從基本概念開始,建立完整知識體系!", "🤔 科學思維待培養...邏輯推理與批判思考同樣重要!" ] }, // 社會科學攻擊描述 social: { thresholds: [0.10, 0.05], strong: [ "🏛️ 社會科學知識重擊敵人!歷史智慧與地理知識完美融合,人文素養威力無窮!", "🗺️ 地理知識爆發強大能量!從地形氣候到人文地理,空間概念震撼全場!", "⚖️ 公民意識形成正義攻擊!民主法治與人權觀念凝聚成不可撼動的力量!", "📜 歷史智慧穿越時空!從古代文明到現代社會,歷史脈絡清晰可見!", "🌍 全球視野展現格局!國際關係與文化交流的深度理解超越想像!" ], medium: [ "📚 社會科學穩定發揮!歷史地理與公民知識並重,人文素養展現!", "🏛️ 人文關懷展現實力!社會議題與公民責任意識清晰!", "🌍 地理概念掌握良好!空間分布與區域特色理解得當!", "📜 歷史脈絡理解不錯!時代背景與因果關係掌握得宜!", "⚖️ 公民素養展現水準!民主參與與法治觀念具備!" ], weak: [ "📚 社會科攻擊力有限...歷史脈絡需要梳理,多讀史書增廣見聞!", "🤷 地理概念稍顯模糊...空間認知待加強,多看地圖培養方向感!", "😐 人文素養有待提升...社會議題需要關注,培養公民意識!", "📖 社會科學基礎待鞏固...從基本概念開始,建立完整知識架構!", "🤔 批判思考能力需要培養...多元觀點與獨立思考同樣重要!" ] } }; // 隨機獲取攻擊描述的函數 function getRandomAttackDescription(subject, attackPower, totalHP) { // 將科目名稱對應到描述資料庫的鍵值 const subjectMap = { '國文': 'chinese', '英文': 'english', '數學': 'math', '自科': 'science', '社會': 'social' }; const mappedSubject = subjectMap[subject]; if (!mappedSubject || !attackDescriptions[mappedSubject]) { return null; } const subjectData = attackDescriptions[mappedSubject]; const ratio = attackPower / totalHP; let descriptions; if (ratio >= subjectData.thresholds[0]) { descriptions = subjectData.strong; } else if (ratio >= subjectData.thresholds[1]) { descriptions = subjectData.medium; } else { descriptions = subjectData.weak; } // 隨機選擇一個描述 const randomIndex = Math.floor(Math.random() * descriptions.length); return descriptions[randomIndex]; } // 獲取攻擊強度等級的函數 function getAttackLevel(subject, attackPower, totalHP) { const subjectMap = { '國文': 'chinese', '英文': 'english', '數學': 'math', '自科': 'science', '社會': 'social' }; const mappedSubject = subjectMap[subject]; if (!mappedSubject || !attackDescriptions[mappedSubject]) { return 'weak'; } const subjectData = attackDescriptions[mappedSubject]; const ratio = attackPower / totalHP; if (ratio >= subjectData.thresholds[0]) { return 'strong'; } else if (ratio >= subjectData.thresholds[1]) { return 'medium'; } else { return 'weak'; } } // 獲取所有科目的攻擊閾值資訊 function getAttackThresholds() { const thresholds = {}; for (const [subject, data] of Object.entries(attackDescriptions)) { thresholds[subject] = { strong: data.thresholds[0], medium: data.thresholds[1] }; } return thresholds; }