pet_data/public/test-events.js

87 lines
2.4 KiB
JavaScript
Raw 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