You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
23 lines
999 B
Go
23 lines
999 B
Go
package model
|
|
|
|
// AdventureLogEvent is persisted and sent over WebSocket.
|
|
// Code is a phrase key (dot-separated), e.g. log.defeated_enemy, roadside.silence_loading, town_visit.merchant.bell_traveler_pack.
|
|
// Args must be structured only: stable ids (enemyType, npcKey, questKey, achievementId), numbers, bools — no display sentences.
|
|
type AdventureLogEvent struct {
|
|
Code string `json:"code"`
|
|
Args map[string]any `json:"args,omitempty"`
|
|
}
|
|
|
|
// AdventureLogLine is written to the DB and sent over WebSocket.
|
|
// Message is legacy plain text only; new rows use Event with phrase key and empty Message.
|
|
type AdventureLogLine struct {
|
|
Message string `json:"message,omitempty"`
|
|
Event *AdventureLogEvent `json:"event,omitempty"`
|
|
}
|
|
|
|
// Wandering merchant (road encounter) — stable keys for other packages (NPC labels live in client i18n).
|
|
const (
|
|
WanderingMerchantNPCKey = "npc.wandering_merchant.v1"
|
|
WanderingMerchantDialogueKey = "npc.wandering_merchant.dialogue.v1"
|
|
)
|