This commit is contained in:
Robert Janetzko 2022-04-18 11:39:28 +00:00
parent 53c3bc13e7
commit 89c93c2197
7 changed files with 8118 additions and 1524 deletions

View File

@ -82,16 +82,13 @@ func createMetadata(a *AnalyzeData) (*Metadata, error) {
typeNames[k] = strcase.ToCamel(typeName(k)) typeNames[k] = strcase.ToCamel(typeName(k))
} }
for _, n := range util.Keys(double) { for _, n := range util.Keys(double) {
fmt.Println(n)
for _, k := range objectTypes { for _, k := range objectTypes {
if strings.HasSuffix(k, PATH_SEPARATOR+n) { if strings.HasSuffix(k, PATH_SEPARATOR+n) {
fmt.Println(" ", k)
path := strings.Split(k, PATH_SEPARATOR) path := strings.Split(k, PATH_SEPARATOR)
for i := len(path) - 1; i > 0; i-- { for i := len(path) - 1; i > 0; i-- {
sub := strings.Join(path[:i], PATH_SEPARATOR) sub := strings.Join(path[:i], PATH_SEPARATOR)
if ok, _ := isArray(sub, fs); !ok { if ok, _ := isArray(sub, fs); !ok {
typeNames[k] = strcase.ToCamel(typeName(sub) + "_" + typeName(k)) typeNames[k] = strcase.ToCamel(typeName(sub) + "_" + typeName(k))
fmt.Println(" ", typeNames[k])
break break
} }
} }
@ -147,7 +144,19 @@ func createMetadata(a *AnalyzeData) (*Metadata, error) {
} else if !a.Fields[f].NoBool { } else if !a.Fields[f].NoBool {
field.Type = "bool" field.Type = "bool"
} else if a.Fields[f].IsString { } else if a.Fields[f].IsString {
if !a.Fields[f].Enum {
field.Type = "string" field.Type = "string"
} else {
var vs []string
for k := range a.Fields[f].Values {
vs = append(vs, k)
}
sort.Strings(vs)
field.EnumValues = &vs
field.Type = "enum"
el := typeNames[k] + field.Name
field.ElementType = &el
}
} }
objFields[fn] = field objFields[fn] = field
} }

View File

@ -30,6 +30,7 @@ type Field struct {
Legend string `json:"legend"` Legend string `json:"legend"`
Base bool Base bool
Plus bool Plus bool
EnumValues *[]string
} }
func (f Field) Active(plus bool) bool { func (f Field) Active(plus bool) bool {

View File

@ -7,6 +7,7 @@ import (
"go/format" "go/format"
"io/ioutil" "io/ioutil"
"os" "os"
"sort"
"strings" "strings"
"text/template" "text/template"
@ -14,13 +15,20 @@ import (
"github.com/robertjanetzko/LegendsBrowser2/backend/util" "github.com/robertjanetzko/LegendsBrowser2/backend/util"
) )
var backendTemplate = template.Must(template.New("").Parse(`// Code generated by legendsbrowser; DO NOT EDIT. func enumValue(s string) string { return strcase.ToCamel(strings.ReplaceAll(s, "2", " two")) }
func enumString(s string) string { return strcase.ToDelimited(s, ' ') }
var backendTemplate = template.Must(template.New("").Funcs(template.FuncMap{
"enum": enumValue,
"enumString": enumString,
}).Parse(`// Code generated by legendsbrowser; DO NOT EDIT.
package model package model
import ( import (
"encoding/xml" "encoding/xml"
"strconv" "strconv"
"fmt" "fmt"
"encoding/json"
) )
func InitSameFields() { func InitSameFields() {
@ -45,6 +53,44 @@ func InitSameFields() {
{{- range $name, $obj := $.Objects }} {{- range $name, $obj := $.Objects }}
{{- range $fname, $field := $obj.Fields }}
{{- if eq $field.Type "enum" }}
type {{ $obj.Name }}{{ $field.Name }} int
const (
{{ $obj.Name }}{{ $field.Name }}_Unknown {{ $obj.Name }}{{ $field.Name }} = iota
{{- range $i, $v := $field.UniqueEnumValues }}
{{ $obj.Name }}{{ $field.Name }}_{{ enum $v }}
{{- end }}
)
func parse{{ $obj.Name }}{{ $field.Name }}(s string) {{ $obj.Name }}{{ $field.Name }} {
switch s {
{{- range $i, $v := $field.EnumValues }}
case "{{ $v }}":
return {{ $obj.Name }}{{ $field.Name }}_{{ enum $v }}
{{- end }}
}
return {{ $obj.Name }}{{ $field.Name }}_Unknown
}
func (s {{ $obj.Name }}{{ $field.Name }}) String() string {
switch s {
{{- range $i, $v := $field.UniqueEnumValues }}
case {{ $obj.Name }}{{ $field.Name }}_{{ enum $v }}:
return "{{ enumString $v }}"
{{- end }}
}
return "unknown"
}
func (s {{ $obj.Name }}{{ $field.Name }}) MarshalJSON() ([]byte, error) {
return json.Marshal(s.String())
}
{{- end }}
{{- end }}
type {{ $obj.Name }} struct { type {{ $obj.Name }} struct {
{{- range $fname, $field := $obj.Fields }} {{- range $fname, $field := $obj.Fields }}
{{- if not (and (eq $fname "type") (not (not $obj.SubTypes))) }} {{- if not (and (eq $fname "type") (not (not $obj.SubTypes))) }}
@ -207,7 +253,6 @@ func LoadSameFields() error {
func generateBackendCode(objects *Metadata) error { func generateBackendCode(objects *Metadata) error {
LoadSameFields() LoadSameFields()
fmt.Println(sameFields["HistoricalEventAddHfEntityLink"])
file, _ := json.MarshalIndent(objects, "", " ") file, _ := json.MarshalIndent(objects, "", " ")
_ = ioutil.WriteFile("model.json", file, 0644) _ = ioutil.WriteFile("model.json", file, 0644)
@ -259,6 +304,9 @@ func (f Field) TypeLine() string {
if f.Type == "object" { if f.Type == "object" {
t = "*" + *f.ElementType t = "*" + *f.ElementType
} }
if f.Type == "enum" {
t = *f.ElementType
}
j := fmt.Sprintf("`json:\"%s\" legend:\"%s\"`", strcase.ToLowerCamel(f.Name), f.Legend) j := fmt.Sprintf("`json:\"%s\" legend:\"%s\"`", strcase.ToLowerCamel(f.Name), f.Legend)
return fmt.Sprintf("%s %s%s %s", n, m, t, j) return fmt.Sprintf("%s %s%s %s", n, m, t, j)
} }
@ -309,7 +357,7 @@ func (f Field) StartAction(plus bool) string {
} }
} }
if f.Type == "int" || f.Type == "string" || f.Type == "bool" { if f.Type == "int" || f.Type == "string" || f.Type == "bool" || f.Type == "enum" {
return "data = nil" return "data = nil"
} }
@ -332,12 +380,16 @@ func (f Field) EndAction(obj Object) string {
return fmt.Sprintf("obj.%s = string(data)", n) return fmt.Sprintf("obj.%s = string(data)", n)
} else if f.Type == "bool" { } else if f.Type == "bool" {
return fmt.Sprintf("obj.%s = true", n) return fmt.Sprintf("obj.%s = true", n)
} else if f.Type == "enum" {
return fmt.Sprintf("obj.%s = parse%s%s(string(data))", n, obj.Name, n)
} }
} else { } else {
if f.Type == "int" { if f.Type == "int" {
return fmt.Sprintf("obj.%s = append(obj.%s, n(data))", n, n) return fmt.Sprintf("obj.%s = append(obj.%s, n(data))", n, n)
} else if f.Type == "string" { } else if f.Type == "string" {
return fmt.Sprintf("obj.%s = append(obj.%s, string(data))", n, n) return fmt.Sprintf("obj.%s = append(obj.%s, string(data))", n, n)
} else if f.Type == "enum" {
return fmt.Sprintf("obj.%s = append(obj.%s, parse%s%s(string(data)))", n, n, obj.Name, n)
} }
} }
@ -391,3 +443,13 @@ func (f Field) CorrectedName(obj Object) string {
} }
return f.Name return f.Name
} }
func (f Field) UniqueEnumValues() []string {
vs := make(map[string]bool)
for _, k := range *f.EnumValues {
vs[enumValue(k)] = true
}
list := util.Keys(vs)
sort.Strings(list)
return list
}

View File

@ -57,8 +57,6 @@
"HistoricalEventHfDied": { "HistoricalEventHfDied": {
"ArtifactId": "SlayerItemId", "ArtifactId": "SlayerItemId",
"Item": "SlayerItemId", "Item": "SlayerItemId",
"ItemSubtype": "Cause",
"Mat": "Cause",
"Site": "SiteId", "Site": "SiteId",
"SlayerHf": "SlayerHfid", "SlayerHf": "SlayerHfid",
"VictimHf": "Hfid" "VictimHf": "Hfid"
@ -110,9 +108,7 @@
"HistoricalEventRemoveHfSiteLink": { "HistoricalEventRemoveHfSiteLink": {
"Site": "SiteId" "Site": "SiteId"
}, },
"Structure": { "Structure": {},
"Name2": "Subtype"
},
"WrittenContent": { "WrittenContent": {
"Author": "AuthorHfid" "Author": "AuthorHfid"
} }

File diff suppressed because it is too large Load Diff

View File

@ -13,10 +13,6 @@
"Involved": "SiteId", "Involved": "SiteId",
"Site": "SiteId" "Site": "SiteId"
}, },
"HistoricalEventHfDied": {
"ItemSubtype": "Cause",
"Mat": "Cause"
},
"HistoricalEventPeaceAccepted": { "HistoricalEventPeaceAccepted": {
"Site": "SiteId" "Site": "SiteId"
}, },
@ -31,8 +27,5 @@
}, },
"HistoricalFigure": { "HistoricalFigure": {
"Sex": "BreedId" "Sex": "BreedId"
},
"Structure": {
"Name2": "Subtype"
} }
} }

View File

@ -180,16 +180,16 @@ export interface Entity {
id: number; id: number;
name: string; name: string;
occasion: Occasion[]; occasion: Occasion[];
profession: string; profession: enum;
race: string; race: string;
type: string; type: enum;
weapon: string[]; weapon: enum[];
worshipId: number[]; worshipId: number[];
} }
export interface EntityEntityLink { export interface EntityEntityLink {
strength: number; strength: number;
target: number; target: number;
type: string; type: enum;
} }
export interface EntityFormerPositionLink { export interface EntityFormerPositionLink {
endYear: number; endYear: number;
@ -253,12 +253,12 @@ export interface EntitySquadLink {
} }
export interface Feature { export interface Feature {
reference: number; reference: number;
type: string; type: enum;
} }
export interface HfLink { export interface HfLink {
hfid: number; hfid: number;
linkStrength: number; linkStrength: number;
linkType: string; linkType: enum;
} }
export interface HfSkill { export interface HfSkill {
skill: string; skill: string;
@ -285,8 +285,8 @@ export interface HistoricalEventAddHfEntityLink {
civId: number; civId: number;
hfid: number; hfid: number;
histfig: number; histfig: number;
link: string; link: enum;
linkType: string; linkType: enum;
position: string; position: string;
positionId: number; positionId: number;
promiseToHfid: number; promiseToHfid: number;
@ -296,18 +296,18 @@ export interface HistoricalEventAddHfHfLink {
hfTarget: number; hfTarget: number;
hfid: number; hfid: number;
hfidTarget: number; hfidTarget: number;
linkType: string; linkType: enum;
} }
export interface HistoricalEventAddHfSiteLink { export interface HistoricalEventAddHfSiteLink {
civ: number; civ: number;
histfig: number; histfig: number;
linkType: string; linkType: enum;
site: number; site: number;
siteId: number; siteId: number;
structure: number; structure: number;
} }
export interface HistoricalEventAgreementFormed { export interface HistoricalEventAgreementFormed {
action: string; action: enum;
agreementId: number; agreementId: number;
agreementSubjectId: number; agreementSubjectId: number;
allyDefenseBonus: number; allyDefenseBonus: number;
@ -315,19 +315,19 @@ export interface HistoricalEventAgreementFormed {
concluderHfid: number; concluderHfid: number;
delegated: boolean; delegated: boolean;
failedJudgmentTest: boolean; failedJudgmentTest: boolean;
method: string; method: enum;
reason: string; reason: enum;
relevantEntityId: number; relevantEntityId: number;
relevantIdForMethod: number; relevantIdForMethod: number;
relevantPositionProfileId: number; relevantPositionProfileId: number;
successful: boolean; successful: boolean;
topFacet: string; topFacet: enum;
topFacetModifier: number; topFacetModifier: number;
topFacetRating: number; topFacetRating: number;
topRelationshipFactor: string; topRelationshipFactor: enum;
topRelationshipModifier: number; topRelationshipModifier: number;
topRelationshipRating: number; topRelationshipRating: number;
topValue: string; topValue: enum;
topValueModifier: number; topValueModifier: number;
topValueRating: number; topValueRating: number;
} }
@ -339,8 +339,8 @@ export interface HistoricalEventAgreementRejected {
} }
export interface HistoricalEventArtifactClaimFormed { export interface HistoricalEventArtifactClaimFormed {
artifactId: number; artifactId: number;
circumstance: string; circumstance: enum;
claim: string; claim: enum;
entityId: number; entityId: number;
histFigureId: number; histFigureId: number;
positionProfileId: number; positionProfileId: number;
@ -362,7 +362,7 @@ export interface HistoricalEventArtifactCreated {
creatorUnitId: number; creatorUnitId: number;
histFigureId: number; histFigureId: number;
nameOnly: boolean; nameOnly: boolean;
reason: string; reason: enum;
sanctifyHf: number; sanctifyHf: number;
site: number; site: number;
siteId: number; siteId: number;
@ -370,7 +370,7 @@ export interface HistoricalEventArtifactCreated {
} }
export interface HistoricalEventArtifactCreatedCircumstance { export interface HistoricalEventArtifactCreatedCircumstance {
defeated: number; defeated: number;
type: string; type: enum;
} }
export interface HistoricalEventArtifactDestroyed { export interface HistoricalEventArtifactDestroyed {
artifactId: number; artifactId: number;
@ -387,7 +387,7 @@ export interface HistoricalEventArtifactGiven {
artifactId: number; artifactId: number;
giverEntityId: number; giverEntityId: number;
giverHistFigureId: number; giverHistFigureId: number;
reason: string; reason: enum;
receiverEntityId: number; receiverEntityId: number;
receiverHistFigureId: number; receiverHistFigureId: number;
} }
@ -400,11 +400,11 @@ export interface HistoricalEventArtifactLost {
} }
export interface HistoricalEventArtifactPossessed { export interface HistoricalEventArtifactPossessed {
artifactId: number; artifactId: number;
circumstance: string; circumstance: enum;
circumstanceId: number; circumstanceId: number;
featureLayerId: number; featureLayerId: number;
histFigureId: number; histFigureId: number;
reason: string; reason: enum;
reasonId: number; reasonId: number;
siteId: number; siteId: number;
subregionId: number; subregionId: number;
@ -457,7 +457,7 @@ export interface HistoricalEventAttackedSite {
siteId: number; siteId: number;
} }
export interface HistoricalEventBodyAbused { export interface HistoricalEventBodyAbused {
abuseType: string; abuseType: enum;
bodies: number[]; bodies: number[];
civ: number; civ: number;
coords: string; coords: string;
@ -465,9 +465,9 @@ export interface HistoricalEventBodyAbused {
histfig: number; histfig: number;
interaction: number; interaction: number;
itemMat: string; itemMat: string;
itemSubtype: string; itemSubtype: enum;
itemType: string; itemType: enum;
pileType: string; pileType: enum;
site: number; site: number;
siteId: number; siteId: number;
structure: number; structure: number;
@ -494,7 +494,7 @@ export interface HistoricalEventCeremony {
subregionId: number; subregionId: number;
} }
export interface HistoricalEventChangeHfBodyState { export interface HistoricalEventChangeHfBodyState {
bodyState: string; bodyState: enum;
coords: string; coords: string;
featureLayerId: number; featureLayerId: number;
hfid: number; hfid: number;
@ -515,11 +515,11 @@ export interface HistoricalEventChangeHfState {
coords: string; coords: string;
featureLayerId: number; featureLayerId: number;
hfid: number; hfid: number;
mood: string; mood: enum;
reason: string; reason: enum;
site: number; site: number;
siteId: number; siteId: number;
state: string; state: enum;
subregionId: number; subregionId: number;
} }
export interface HistoricalEventChangedCreatureType { export interface HistoricalEventChangedCreatureType {
@ -579,7 +579,7 @@ export interface HistoricalEventCollectionBattle {
individualMerc: boolean[]; individualMerc: boolean[];
name: string; name: string;
noncomHfid: number[]; noncomHfid: number[];
outcome: string; outcome: enum;
siteId: number; siteId: number;
subregionId: number; subregionId: number;
warEventcol: number; warEventcol: number;
@ -639,7 +639,7 @@ export interface HistoricalEventCollectionProcession {
ordinal: number; ordinal: number;
} }
export interface HistoricalEventCollectionPurge { export interface HistoricalEventCollectionPurge {
adjective: string; adjective: enum;
ordinal: number; ordinal: number;
siteId: number; siteId: number;
} }
@ -689,7 +689,7 @@ export interface HistoricalEventCreateEntityPosition {
civ: number; civ: number;
histfig: number; histfig: number;
position: string; position: string;
reason: string; reason: enum;
siteCiv: number; siteCiv: number;
} }
export interface HistoricalEventCreatedSite { export interface HistoricalEventCreatedSite {
@ -704,7 +704,7 @@ export interface HistoricalEventCreatedStructure {
builderHfid: number; builderHfid: number;
civ: number; civ: number;
civId: number; civId: number;
rebuild: string; rebuild: enum;
rebuilt: boolean; rebuilt: boolean;
site: number; site: number;
siteCiv: number; siteCiv: number;
@ -733,11 +733,11 @@ export interface HistoricalEventCreatureDevoured {
victim: number; victim: number;
} }
export interface HistoricalEventDanceFormCreated { export interface HistoricalEventDanceFormCreated {
circumstance: string; circumstance: enum;
circumstanceId: number; circumstanceId: number;
formId: number; formId: number;
histFigureId: number; histFigureId: number;
reason: string; reason: enum;
reasonId: number; reasonId: number;
siteId: number; siteId: number;
} }
@ -772,7 +772,7 @@ export interface HistoricalEventEntityCreated {
} }
export interface HistoricalEventEntityDissolved { export interface HistoricalEventEntityDissolved {
entityId: number; entityId: number;
reason: string; reason: enum;
} }
export interface HistoricalEventEntityEquipmentPurchase { export interface HistoricalEventEntityEquipmentPurchase {
entityId: number; entityId: number;
@ -798,8 +798,8 @@ export interface HistoricalEventEntityIncorporated {
export interface HistoricalEventEntityLaw { export interface HistoricalEventEntityLaw {
entityId: number; entityId: number;
histFigureId: number; histFigureId: number;
lawAdd: string; lawAdd: enum;
lawRemove: string; lawRemove: enum;
} }
export interface HistoricalEventEntityOverthrown { export interface HistoricalEventEntityOverthrown {
conspiratorHfid: number[]; conspiratorHfid: number[];
@ -824,7 +824,7 @@ export interface HistoricalEventEntityPersecuted {
targetEnid: number; targetEnid: number;
} }
export interface HistoricalEventEntityPrimaryCriminals { export interface HistoricalEventEntityPrimaryCriminals {
action: string; action: enum;
entity: number; entity: number;
entityId: number; entityId: number;
site: number; site: number;
@ -837,7 +837,7 @@ export interface HistoricalEventEntityRampagedInSite {
siteId: number; siteId: number;
} }
export interface HistoricalEventEntityRelocate { export interface HistoricalEventEntityRelocate {
action: string; action: enum;
entity: number; entity: number;
entityId: number; entityId: number;
site: number; site: number;
@ -846,20 +846,20 @@ export interface HistoricalEventEntityRelocate {
structureId: number; structureId: number;
} }
export interface HistoricalEventEntitySearchedSite { export interface HistoricalEventEntitySearchedSite {
result: string; result: enum;
searcherCivId: number; searcherCivId: number;
siteId: number; siteId: number;
} }
export interface HistoricalEventFailedFrameAttempt { export interface HistoricalEventFailedFrameAttempt {
convicterEnid: number; convicterEnid: number;
crime: string; crime: enum;
fooledHfid: number; fooledHfid: number;
framerHfid: number; framerHfid: number;
plotterHfid: number; plotterHfid: number;
targetHfid: number; targetHfid: number;
} }
export interface HistoricalEventFailedIntrigueCorruption { export interface HistoricalEventFailedIntrigueCorruption {
action: string; action: enum;
allyDefenseBonus: number; allyDefenseBonus: number;
coconspiratorBonus: number; coconspiratorBonus: number;
corruptorHfid: number; corruptorHfid: number;
@ -867,7 +867,7 @@ export interface HistoricalEventFailedIntrigueCorruption {
failedJudgmentTest: boolean; failedJudgmentTest: boolean;
featureLayerId: number; featureLayerId: number;
lureHfid: number; lureHfid: number;
method: string; method: enum;
relevantEntityId: number; relevantEntityId: number;
relevantIdForMethod: number; relevantIdForMethod: number;
relevantPositionProfileId: number; relevantPositionProfileId: number;
@ -875,13 +875,13 @@ export interface HistoricalEventFailedIntrigueCorruption {
subregionId: number; subregionId: number;
targetHfid: number; targetHfid: number;
targetIdentity: number; targetIdentity: number;
topFacet: string; topFacet: enum;
topFacetModifier: number; topFacetModifier: number;
topFacetRating: number; topFacetRating: number;
topRelationshipFactor: string; topRelationshipFactor: enum;
topRelationshipModifier: number; topRelationshipModifier: number;
topRelationshipRating: number; topRelationshipRating: number;
topValue: string; topValue: enum;
topValueModifier: number; topValueModifier: number;
topValueRating: number; topValueRating: number;
} }
@ -927,9 +927,9 @@ export interface HistoricalEventHfConfronted {
coords: string; coords: string;
featureLayerId: number; featureLayerId: number;
hfid: number; hfid: number;
reason: string[]; reason: enum[];
siteId: number; siteId: number;
situation: string; situation: enum;
subregionId: number; subregionId: number;
} }
export interface HistoricalEventHfConvicted { export interface HistoricalEventHfConvicted {
@ -941,7 +941,7 @@ export interface HistoricalEventHfConvicted {
convictedHfid: number; convictedHfid: number;
convicterEnid: number; convicterEnid: number;
corruptConvicterHfid: number; corruptConvicterHfid: number;
crime: string; crime: enum;
deathPenalty: boolean; deathPenalty: boolean;
didNotRevealAllInInterrogation: boolean; didNotRevealAllInInterrogation: boolean;
exiled: boolean; exiled: boolean;
@ -970,13 +970,13 @@ export interface HistoricalEventHfDestroyedSite {
export interface HistoricalEventHfDied { export interface HistoricalEventHfDied {
artifactId: number; artifactId: number;
cause: string; cause: string;
deathCause: string; deathCause: enum;
featureLayerId: number; featureLayerId: number;
hfid: number; hfid: number;
item: number; item: number;
itemSubtype: string; itemSubtype: enum;
itemType: string; itemType: enum;
mat: string; mat: enum;
site: number; site: number;
siteId: number; siteId: number;
slayerCaste: string; slayerCaste: string;
@ -989,7 +989,7 @@ export interface HistoricalEventHfDied {
victimHf: number; victimHf: number;
} }
export interface HistoricalEventHfDisturbedStructure { export interface HistoricalEventHfDisturbedStructure {
action: string; action: enum;
histFigId: number; histFigId: number;
histfig: number; histfig: number;
site: number; site: number;
@ -1031,7 +1031,7 @@ export interface HistoricalEventHfFreed {
} }
export interface HistoricalEventHfGainsSecretGoal { export interface HistoricalEventHfGainsSecretGoal {
hfid: number; hfid: number;
secretGoal: string; secretGoal: enum;
} }
export interface HistoricalEventHfInterrogated { export interface HistoricalEventHfInterrogated {
arrestingEnid: number; arrestingEnid: number;
@ -1045,7 +1045,7 @@ export interface HistoricalEventHfLearnsSecret {
artifact: number; artifact: number;
artifactId: number; artifactId: number;
interaction: string; interaction: string;
secretText: string; secretText: enum;
student: number; student: number;
studentHfid: number; studentHfid: number;
teacher: number; teacher: number;
@ -1069,7 +1069,7 @@ export interface HistoricalEventHfPerformedHorribleExperiments {
subregionId: number; subregionId: number;
} }
export interface HistoricalEventHfPrayedInsideStructure { export interface HistoricalEventHfPrayedInsideStructure {
action: string; action: enum;
histFigId: number; histFigId: number;
histfig: number; histfig: number;
site: number; site: number;
@ -1082,10 +1082,10 @@ export interface HistoricalEventHfPreach {
entity2: number; entity2: number;
siteHfid: number; siteHfid: number;
speakerHfid: number; speakerHfid: number;
topic: string; topic: enum;
} }
export interface HistoricalEventHfProfanedStructure { export interface HistoricalEventHfProfanedStructure {
action: string; action: enum;
histFigId: number; histFigId: number;
histfig: number; histfig: number;
site: number; site: number;
@ -1112,13 +1112,13 @@ export interface HistoricalEventHfRecruitedUnitTypeForEntity {
hfid: number; hfid: number;
siteId: number; siteId: number;
subregionId: number; subregionId: number;
unitType: string; unitType: enum;
} }
export interface HistoricalEventHfRelationshipDenied { export interface HistoricalEventHfRelationshipDenied {
featureLayerId: number; featureLayerId: number;
reason: string; reason: enum;
reasonId: number; reasonId: number;
relationship: string; relationship: enum;
seekerHfid: number; seekerHfid: number;
siteId: number; siteId: number;
subregionId: number; subregionId: number;
@ -1135,7 +1135,7 @@ export interface HistoricalEventHfRevived {
actorHfid: number; actorHfid: number;
disturbance: boolean; disturbance: boolean;
featureLayerId: number; featureLayerId: number;
ghost: string; ghost: enum;
hfid: number; hfid: number;
raisedBefore: boolean; raisedBefore: boolean;
siteId: number; siteId: number;
@ -1147,7 +1147,7 @@ export interface HistoricalEventHfSimpleBattleEvent {
group2Hfid: number; group2Hfid: number;
siteId: number; siteId: number;
subregionId: number; subregionId: number;
subtype: string; subtype: enum;
} }
export interface HistoricalEventHfTravel { export interface HistoricalEventHfTravel {
coords: string; coords: string;
@ -1166,8 +1166,8 @@ export interface HistoricalEventHfViewedArtifact {
export interface HistoricalEventHfWounded { export interface HistoricalEventHfWounded {
bodyPart: number; bodyPart: number;
featureLayerId: number; featureLayerId: number;
injuryType: string; injuryType: enum;
partLost: string; partLost: enum;
site: number; site: number;
siteId: number; siteId: number;
subregionId: number; subregionId: number;
@ -1180,18 +1180,18 @@ export interface HistoricalEventHfWounded {
wounderHfid: number; wounderHfid: number;
} }
export interface HistoricalEventHfsFormedIntrigueRelationship { export interface HistoricalEventHfsFormedIntrigueRelationship {
action: string; action: enum;
allyDefenseBonus: number; allyDefenseBonus: number;
circumstance: string; circumstance: enum;
circumstanceId: number; circumstanceId: number;
coconspiratorBonus: number; coconspiratorBonus: number;
corruptorHfid: number; corruptorHfid: number;
corruptorIdentity: number; corruptorIdentity: number;
corruptorSeenAs: string; corruptorSeenAs: enum;
failedJudgmentTest: boolean; failedJudgmentTest: boolean;
featureLayerId: number; featureLayerId: number;
lureHfid: number; lureHfid: number;
method: string; method: enum;
relevantEntityId: number; relevantEntityId: number;
relevantIdForMethod: number; relevantIdForMethod: number;
relevantPositionProfileId: number; relevantPositionProfileId: number;
@ -1200,21 +1200,21 @@ export interface HistoricalEventHfsFormedIntrigueRelationship {
successful: boolean; successful: boolean;
targetHfid: number; targetHfid: number;
targetIdentity: number; targetIdentity: number;
targetSeenAs: string; targetSeenAs: enum;
topFacet: string; topFacet: enum;
topFacetModifier: number; topFacetModifier: number;
topFacetRating: number; topFacetRating: number;
topRelationshipFactor: string; topRelationshipFactor: enum;
topRelationshipModifier: number; topRelationshipModifier: number;
topRelationshipRating: number; topRelationshipRating: number;
topValue: string; topValue: enum;
topValueModifier: number; topValueModifier: number;
topValueRating: number; topValueRating: number;
} }
export interface HistoricalEventHfsFormedReputationRelationship { export interface HistoricalEventHfsFormedReputationRelationship {
featureLayerId: number; featureLayerId: number;
hfRep1Of2: string; hfRep1Of2: enum;
hfRep2Of1: string; hfRep2Of1: enum;
hfid1: number; hfid1: number;
hfid2: number; hfid2: number;
identityId1: number; identityId1: number;
@ -1227,7 +1227,7 @@ export interface HistoricalEventHolyCityDeclaration {
siteId: number; siteId: number;
} }
export interface HistoricalEventInsurrectionStarted { export interface HistoricalEventInsurrectionStarted {
outcome: string; outcome: enum;
siteId: number; siteId: number;
targetCivId: number; targetCivId: number;
} }
@ -1245,13 +1245,13 @@ export interface HistoricalEventItemStolen {
site: number; site: number;
stashSite: number; stashSite: number;
structure: number; structure: number;
theftMethod: string; theftMethod: enum;
} }
export interface HistoricalEventItemStolenCircumstance { export interface HistoricalEventItemStolenCircumstance {
defeated: number; defeated: number;
histEventCollection: number; histEventCollection: number;
murdered: number; murdered: number;
type: string; type: enum;
} }
export interface HistoricalEventKnowledgeDiscovered { export interface HistoricalEventKnowledgeDiscovered {
first: boolean; first: boolean;
@ -1260,15 +1260,15 @@ export interface HistoricalEventKnowledgeDiscovered {
} }
export interface HistoricalEventMasterpieceArchConstructed { export interface HistoricalEventMasterpieceArchConstructed {
buildingCustom: number; buildingCustom: number;
buildingSubtype: string; buildingSubtype: enum;
buildingType: string; buildingType: enum;
entityId: number; entityId: number;
hfid: number; hfid: number;
maker: number; maker: number;
makerEntity: number; makerEntity: number;
site: number; site: number;
siteId: number; siteId: number;
skillAtTime: string; skillAtTime: enum;
unk2: number; unk2: number;
} }
export interface HistoricalEventMasterpieceEngraving { export interface HistoricalEventMasterpieceEngraving {
@ -1280,7 +1280,7 @@ export interface HistoricalEventMasterpieceEngraving {
makerEntity: number; makerEntity: number;
site: number; site: number;
siteId: number; siteId: number;
skillAtTime: string; skillAtTime: enum;
} }
export interface HistoricalEventMasterpieceFood { export interface HistoricalEventMasterpieceFood {
entityId: number; entityId: number;
@ -1292,8 +1292,8 @@ export interface HistoricalEventMasterpieceItem {
entityId: number; entityId: number;
hfid: number; hfid: number;
itemId: number; itemId: number;
itemSubtype: string; itemSubtype: enum;
itemType: string; itemType: enum;
maker: number; maker: number;
makerEntity: number; makerEntity: number;
mat: string; mat: string;
@ -1310,7 +1310,7 @@ export interface HistoricalEventMasterpieceItemImprovement {
export interface HistoricalEventMasterpieceLost { export interface HistoricalEventMasterpieceLost {
creationEvent: number; creationEvent: number;
histfig: number; histfig: number;
method: string; method: enum;
site: number; site: number;
} }
export interface HistoricalEventMerchant { export interface HistoricalEventMerchant {
@ -1324,17 +1324,17 @@ export interface HistoricalEventMerchant {
traderEntityId: number; traderEntityId: number;
} }
export interface HistoricalEventModifiedBuilding { export interface HistoricalEventModifiedBuilding {
modification: string; modification: enum;
modifierHfid: number; modifierHfid: number;
siteId: number; siteId: number;
structureId: number; structureId: number;
} }
export interface HistoricalEventMusicalFormCreated { export interface HistoricalEventMusicalFormCreated {
circumstance: string; circumstance: enum;
circumstanceId: number; circumstanceId: number;
formId: number; formId: number;
histFigureId: number; histFigureId: number;
reason: string; reason: enum;
reasonId: number; reasonId: number;
siteId: number; siteId: number;
} }
@ -1351,14 +1351,14 @@ export interface HistoricalEventPeaceAccepted {
site: number; site: number;
siteId: number; siteId: number;
source: number; source: number;
topic: string; topic: enum;
} }
export interface HistoricalEventPeaceRejected { export interface HistoricalEventPeaceRejected {
destination: number; destination: number;
site: number; site: number;
siteId: number; siteId: number;
source: number; source: number;
topic: string; topic: enum;
} }
export interface HistoricalEventPerformance { export interface HistoricalEventPerformance {
civId: number; civId: number;
@ -1380,7 +1380,7 @@ export interface HistoricalEventPlunderedSite {
wasRaid: boolean; wasRaid: boolean;
} }
export interface HistoricalEventPoeticFormCreated { export interface HistoricalEventPoeticFormCreated {
circumstance: string; circumstance: enum;
formId: number; formId: number;
histFigureId: number; histFigureId: number;
siteId: number; siteId: number;
@ -1414,7 +1414,7 @@ export interface HistoricalEventRegionpopIncorporatedIntoEntity {
} }
export interface HistoricalEventRelationship { export interface HistoricalEventRelationship {
event: number; event: number;
relationship: string; relationship: enum;
sourceHf: number; sourceHf: number;
targetHf: number; targetHf: number;
year: number; year: number;
@ -1430,8 +1430,8 @@ export interface HistoricalEventRemoveHfEntityLink {
civId: number; civId: number;
hfid: number; hfid: number;
histfig: number; histfig: number;
link: string; link: enum;
linkType: string; linkType: enum;
position: string; position: string;
positionId: number; positionId: number;
} }
@ -1442,7 +1442,7 @@ export interface HistoricalEventRemoveHfHfLink {
export interface HistoricalEventRemoveHfSiteLink { export interface HistoricalEventRemoveHfSiteLink {
civ: number; civ: number;
histfig: number; histfig: number;
linkType: string; linkType: enum;
site: number; site: number;
siteId: number; siteId: number;
structure: number; structure: number;
@ -1466,7 +1466,7 @@ export interface HistoricalEventSiteDied {
siteId: number; siteId: number;
} }
export interface HistoricalEventSiteDispute { export interface HistoricalEventSiteDispute {
dispute: string; dispute: enum;
entityId1: number; entityId1: number;
entityId2: number; entityId2: number;
siteId1: number; siteId1: number;
@ -1494,7 +1494,7 @@ export interface HistoricalEventSiteTakenOver {
export interface HistoricalEventSiteTributeForced { export interface HistoricalEventSiteTributeForced {
attackerCivId: number; attackerCivId: number;
defenderCivId: number; defenderCivId: number;
season: string; season: enum;
siteCivId: number; siteCivId: number;
siteId: number; siteId: number;
} }
@ -1536,7 +1536,7 @@ export interface HistoricalEventTacticalSituation {
dTacticsRoll: number; dTacticsRoll: number;
featureLayerId: number; featureLayerId: number;
siteId: number; siteId: number;
situation: string; situation: enum;
start: boolean; start: boolean;
structureId: number; structureId: number;
subregionId: number; subregionId: number;
@ -1552,10 +1552,10 @@ export interface HistoricalEventTrade {
traderHfid: number; traderHfid: number;
} }
export interface HistoricalEventWrittenContentComposed { export interface HistoricalEventWrittenContentComposed {
circumstance: string; circumstance: enum;
circumstanceId: number; circumstanceId: number;
histFigureId: number; histFigureId: number;
reason: string; reason: enum;
reasonId: number; reasonId: number;
siteId: number; siteId: number;
subregionId: number; subregionId: number;
@ -1585,7 +1585,7 @@ export interface HistoricalFigure {
entitySquadLink: EntitySquadLink; entitySquadLink: EntitySquadLink;
force: boolean; force: boolean;
ghost: boolean; ghost: boolean;
goal: string[]; goal: enum[];
hfLink: HfLink[]; hfLink: HfLink[];
hfSkill: HfSkill[]; hfSkill: HfSkill[];
holdsArtifact: number[]; holdsArtifact: number[];
@ -1610,7 +1610,7 @@ export interface HistoricalFigure {
export interface HistoricalFigureEntityLink { export interface HistoricalFigureEntityLink {
entityId: number; entityId: number;
linkStrength: number; linkStrength: number;
linkType: string; linkType: enum;
} }
export interface HistoricalFigureSiteProperty { export interface HistoricalFigureSiteProperty {
propertyId: number; propertyId: number;
@ -1625,7 +1625,7 @@ export interface Honor {
name: string; name: string;
requiredBattles: number; requiredBattles: number;
requiredKills: number; requiredKills: number;
requiredSkill: string; requiredSkill: enum;
requiredSkillIpTotal: number; requiredSkillIpTotal: number;
requiredYears: number; requiredYears: number;
requiresAnyMeleeOrRangedSkill: boolean; requiresAnyMeleeOrRangedSkill: boolean;
@ -1645,7 +1645,7 @@ export interface Identity {
id: number; id: number;
name: string; name: string;
nemesisId: number; nemesisId: number;
profession: string; profession: enum;
race: string; race: string;
} }
export interface IntrigueActor { export interface IntrigueActor {
@ -1655,8 +1655,8 @@ export interface IntrigueActor {
localId: number; localId: number;
promisedActorImmortality: boolean; promisedActorImmortality: boolean;
promisedMeImmortality: boolean; promisedMeImmortality: boolean;
role: string; role: enum;
strategy: string; strategy: enum;
strategyEnid: number; strategyEnid: number;
strategyEppid: number; strategyEppid: number;
} }
@ -1671,7 +1671,7 @@ export interface IntriguePlot {
parentPlotHfid: number; parentPlotHfid: number;
parentPlotId: number; parentPlotId: number;
plotActor: PlotActor[]; plotActor: PlotActor[];
type: string; type: enum;
} }
export interface Item { export interface Item {
nameString: string; nameString: string;
@ -1707,7 +1707,7 @@ export interface PlotActor {
actorId: number; actorId: number;
agreementHasMessenger: boolean; agreementHasMessenger: boolean;
agreementId: number; agreementId: number;
plotRole: string; plotRole: enum;
} }
export interface PoeticForm { export interface PoeticForm {
description: string; description: string;
@ -1716,15 +1716,15 @@ export interface PoeticForm {
} }
export interface Reference { export interface Reference {
id: number; id: number;
type: string; type: enum;
} }
export interface Region { export interface Region {
coords: string; coords: string;
evilness: string; evilness: enum;
forceId: number; forceId: number;
id: number; id: number;
name: string; name: string;
type: string; type: enum;
} }
export interface RelationshipProfileHfHistorical { export interface RelationshipProfileHfHistorical {
fear: number; fear: number;
@ -1781,11 +1781,11 @@ export interface River {
export interface Schedule { export interface Schedule {
feature: Feature[]; feature: Feature[];
id: number; id: number;
itemSubtype: string; itemSubtype: enum;
itemType: string; itemType: enum;
reference: number; reference: number;
reference2: number; reference2: number;
type: string; type: enum;
} }
export interface Site { export interface Site {
civId: number; civId: number;
@ -1796,11 +1796,11 @@ export interface Site {
rectangle: string; rectangle: string;
siteProperties: { [key:number]:SiteSiteProperty; }; siteProperties: { [key:number]:SiteSiteProperty; };
structures: { [key:number]:Structure; }; structures: { [key:number]:Structure; };
type: string; type: enum;
} }
export interface SiteLink { export interface SiteLink {
entityId: number; entityId: number;
linkType: string; linkType: enum;
occupationId: number; occupationId: number;
siteId: number; siteId: number;
subId: number; subId: number;
@ -1809,7 +1809,7 @@ export interface SiteSiteProperty {
id: number; id: number;
ownerHfid: number; ownerHfid: number;
structureId: number; structureId: number;
type: string; type: enum;
} }
export interface Structure { export interface Structure {
copiedArtifactId: number[]; copiedArtifactId: number[];
@ -1823,15 +1823,15 @@ export interface Structure {
name: string; name: string;
name2: string; name2: string;
religion: number; religion: number;
subtype: string; subtype: enum;
type: string; type: enum;
worshipHfid: number; worshipHfid: number;
} }
export interface UndergroundRegion { export interface UndergroundRegion {
coords: string; coords: string;
depth: number; depth: number;
id: number; id: number;
type: string; type: enum;
} }
export interface VagueRelationship { export interface VagueRelationship {
artisticBuddy: boolean; artisticBuddy: boolean;
@ -1853,13 +1853,13 @@ export interface WorldConstruction {
coords: string; coords: string;
id: number; id: number;
name: string; name: string;
type: string; type: enum;
} }
export interface WrittenContent { export interface WrittenContent {
author: number; author: number;
authorHfid: number; authorHfid: number;
authorRoll: number; authorRoll: number;
form: string; form: enum;
formId: number; formId: number;
id: number; id: number;
pageEnd: number; pageEnd: number;
@ -1867,5 +1867,5 @@ export interface WrittenContent {
reference: Reference[]; reference: Reference[];
style: string[]; style: string[];
title: string; title: string;
type: string; type: enum;
} }