41 lines
1.2 KiB
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"`
|
|
}
|