mirror of
https://github.com/setube/ogame-vue-ts.git
synced 2026-05-12 16:05:12 +08:00
feat: 添加了浏览器通知和页面内通知
暂包含建造完成和科研完成
This commit is contained in:
@@ -101,7 +101,8 @@ export const generatePositionKey = (galaxy: number, system: number, position: nu
|
||||
export const processGameUpdate = (
|
||||
player: Player,
|
||||
now: number,
|
||||
gameSpeed: number = 1
|
||||
gameSpeed: number = 1,
|
||||
onNotification?: (type: string, itemType: string, level?: number) => void
|
||||
): {
|
||||
updatedResearchQueue: BuildQueueItem[]
|
||||
} => {
|
||||
@@ -113,6 +114,13 @@ export const processGameUpdate = (
|
||||
pointsLogic.addPoints(player, points)
|
||||
}
|
||||
|
||||
// 通知回调
|
||||
const onCompleted = (type: string, itemType: string, level?: number, _quantity?: number) => {
|
||||
if (onNotification) {
|
||||
onNotification(type, itemType, level)
|
||||
}
|
||||
}
|
||||
|
||||
// 更新所有星球资源(直接同步计算,避免 Worker 通信开销)
|
||||
player.planets.forEach(planet => {
|
||||
resourceLogic.updatePlanetResources(planet, now, bonuses, gameSpeed)
|
||||
@@ -121,7 +129,7 @@ export const processGameUpdate = (
|
||||
// 更新所有星球其他状态
|
||||
player.planets.forEach(planet => {
|
||||
// 检查建造队列
|
||||
buildingLogic.completeBuildQueue(planet, now, onPointsEarned)
|
||||
buildingLogic.completeBuildQueue(planet, now, onPointsEarned, onCompleted)
|
||||
|
||||
// 更新星球最大空间
|
||||
if (planet.isMoon) {
|
||||
@@ -133,7 +141,13 @@ export const processGameUpdate = (
|
||||
})
|
||||
|
||||
// 检查研究队列
|
||||
const updatedResearchQueue = researchLogic.completeResearchQueue(player.researchQueue, player.technologies, now, onPointsEarned)
|
||||
const updatedResearchQueue = researchLogic.completeResearchQueue(
|
||||
player.researchQueue,
|
||||
player.technologies,
|
||||
now,
|
||||
onPointsEarned,
|
||||
onCompleted
|
||||
)
|
||||
|
||||
return {
|
||||
updatedResearchQueue
|
||||
|
||||
Reference in New Issue
Block a user