87 lines
2.4 KiB
JavaScript
87 lines
2.4 KiB
JavaScript
|
|
// 測試所有事件
|
|||
|
|
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
|