mirror of
https://github.com/setube/ogame-vue-ts.git
synced 2026-05-12 16:05:12 +08:00
feat: 新增NPC与外交逻辑,优化UI组件结构
重构并精简了部分UI组件,移除冗余弹窗与详情组件,新增NPC相关逻辑(npcBehaviorLogic、npcGrowthLogic、npcStore等)及外交逻辑(diplomaticLogic、DiplomacyView)。完善分页、标签、复选框等通用UI组件。优化战报弹窗,调整README下载链接为相对路径,修复部分国际化内容。
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { defineStore } from 'pinia'
|
||||
import type { Planet, Player, BuildQueueItem, FleetMission, BattleResult, SpyReport, Officer } from '@/types/game'
|
||||
import type { Planet, Player, BuildQueueItem, FleetMission, BattleResult, SpyReport, Officer, SpiedNotification, NPCActivityNotification, IncomingFleetAlert } from '@/types/game'
|
||||
import { TechnologyType, OfficerType } from '@/types/game'
|
||||
import type { Locale } from '@/locales'
|
||||
import pkg from '../../package.json'
|
||||
@@ -18,7 +18,14 @@ export const useGameStore = defineStore('game', {
|
||||
researchQueue: [] as BuildQueueItem[],
|
||||
fleetMissions: [] as FleetMission[],
|
||||
battleReports: [] as BattleResult[],
|
||||
spyReports: [] as SpyReport[]
|
||||
spyReports: [] as SpyReport[],
|
||||
spiedNotifications: [] as SpiedNotification[],
|
||||
npcActivityNotifications: [] as NPCActivityNotification[],
|
||||
missionReports: [],
|
||||
incomingFleetAlerts: [] as IncomingFleetAlert[],
|
||||
giftNotifications: [],
|
||||
giftRejectedNotifications: [],
|
||||
points: 0
|
||||
} as Player,
|
||||
currentPlanetId: '',
|
||||
isDark: '',
|
||||
|
||||
23
src/stores/npcStore.ts
Normal file
23
src/stores/npcStore.ts
Normal file
@@ -0,0 +1,23 @@
|
||||
import { defineStore } from 'pinia'
|
||||
import type { NPC } from '@/types/game'
|
||||
import pkg from '../../package.json'
|
||||
import { encryptData, decryptData } from '@/utils/crypto'
|
||||
|
||||
/**
|
||||
* NPC Store
|
||||
* 存储和管理所有NPC数据
|
||||
*/
|
||||
export const useNPCStore = defineStore('npc', {
|
||||
state: () => ({
|
||||
npcs: [] as NPC[],
|
||||
lastGrowthCheck: {} as Record<string, number> // npcId -> timestamp
|
||||
}),
|
||||
persist: {
|
||||
key: `${pkg.name}-npcs`,
|
||||
storage: localStorage,
|
||||
serializer: {
|
||||
serialize: state => encryptData(state),
|
||||
deserialize: value => decryptData(value)
|
||||
}
|
||||
}
|
||||
})
|
||||
Reference in New Issue
Block a user