quarkshologridledger/tongo-core/internal/domain/entity/event.go

41 lines
1.2 KiB
Go

package entity
// EventCategory classifies the type of random event.
type EventCategory string
const (
EventCategoryCombat EventCategory = "combat"
EventCategoryEnvironmental EventCategory = "environmental"
EventCategoryFaction EventCategory = "faction"
EventCategoryMarket EventCategory = "market"
)
// EventSeverity indicates the impact level.
type EventSeverity string
const (
EventSeverityMinor EventSeverity = "minor"
EventSeverityMajor EventSeverity = "major"
EventSeverityCritical EventSeverity = "critical"
)
// MatchEvent represents something that happened during a match.
type MatchEvent struct {
ID string `json:"id"`
TemplateID string `json:"templateId"`
Name string `json:"name"`
Description string `json:"description"`
Tick int `json:"tick"`
Category EventCategory `json:"category"`
Severity EventSeverity `json:"severity"`
Effects []EventEffect `json:"effects"`
Duration int `json:"duration"`
}
// EventEffect describes a single modification caused by an event.
type EventEffect struct {
Target string `json:"target"`
Stat string `json:"stat"`
Operation string `json:"operation"`
Value float64 `json:"value"`
}