pet_data/public/test-events.js

87 lines
2.4 KiB
JavaScript
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// 測試所有事件
async function testAllEvents() {
if (!eventSystem) {
console.log('❌ 系統尚未初始化')
return
}
const events = await apiService.getEvents()
console.log('\n' + '='.repeat(60))
console.log('🧪 開始測試所有事件...')
console.log('='.repeat(60))
for (const event of events) {
console.log(`\n▶️ 測試事件: ${event.id} (${event.type})`)
console.log(' 狀態 BEFORE:')
const stateBefore = petSystem.getState()
console.log(` 飢餓: ${stateBefore.hunger.toFixed(1)} | 快樂: ${stateBefore.happiness.toFixed(1)} | 健康: ${stateBefore.health.toFixed(1)}`)
// 觸發事件
await triggerEvent(event.id)
// 等待更新
await new Promise(resolve => setTimeout(resolve, 100))
console.log(' 狀態 AFTER:')
const stateAfter = petSystem.getState()
console.log(` 飢餓: ${stateAfter.hunger.toFixed(1)} | 快樂: ${stateAfter.happiness.toFixed(1)} | 健康: ${stateAfter.health.toFixed(1)}`)
console.log(' ─'.repeat(30))
}
console.log('\n' + '='.repeat(60))
console.log('✅ 所有事件測試完成')
console.log('='.repeat(60) + '\n')
showStatus()
}
// 測試單個事件(詳細版)
async function testEvent(eventId) {
if (!eventSystem) {
console.log('❌ 系統尚未初始化')
return
}
const events = await apiService.getEvents()
const event = events.find(e => e.id === eventId)
if (!event) {
console.log(`❌ 找不到事件: ${eventId}`)
console.log('💡 使用 listEvents() 查看所有事件')
return
}
console.log('\n' + '='.repeat(60))
console.log(`🧪 測試事件: ${event.id}`)
console.log('='.repeat(60))
console.log(`類型: ${event.type}`)
console.log(`效果數量: ${event.effects.length}`)
console.log('')
// 顯示效果
event.effects.forEach((eff, i) => {
console.log(`效果 ${i + 1}: ${eff.type}`)
if (eff.payload) {
console.log(' payload:', eff.payload)
}
})
console.log('\n觸發前狀態:')
showStatus()
console.log('\n▶ 觸發事件...\n')
await triggerEvent(eventId)
await new Promise(resolve => setTimeout(resolve, 100))
console.log('\n觸發後狀態:')
showStatus()
console.log('='.repeat(60) + '\n')
}
window.testAllEvents = testAllEvents
window.testEvent = testEvent