This repository has been archived on 2024-04-06. You can view files and clone it, but cannot push or open issues or pull requests.
core-old/internal/tw/building_info.go
Dawid Wysokiński 742a9046e0
All checks were successful
continuous-integration/drone/push Build is passing
feat: add ServerConsumer (#16)
Reviewed-on: twhelp/core#16
2022-08-04 05:09:12 +00:00

85 lines
2.4 KiB
Go

package tw
import (
"encoding/xml"
"gitea.dwysokinski.me/twhelp/core/internal/domain"
)
type building struct {
Text string `xml:",chardata"`
MaxLevel int8 `xml:"max_level"`
MinLevel int8 `xml:"min_level"`
Wood int32 `xml:"wood"`
Stone int32 `xml:"stone"`
Iron int32 `xml:"iron"`
Pop int16 `xml:"pop"`
WoodFactor float64 `xml:"wood_factor"`
StoneFactor float64 `xml:"stone_factor"`
IronFactor float64 `xml:"iron_factor"`
PopFactor float64 `xml:"pop_factor"`
BuildTime float64 `xml:"build_time"`
BuildTimeFactor float64 `xml:"build_time_factor"`
}
func (b building) toDomain() domain.Building {
return domain.Building{
MaxLevel: b.MaxLevel,
MinLevel: b.MinLevel,
Wood: b.Wood,
Stone: b.Stone,
Iron: b.Iron,
Pop: b.Pop,
WoodFactor: b.WoodFactor,
StoneFactor: b.StoneFactor,
IronFactor: b.IronFactor,
PopFactor: b.PopFactor,
BuildTime: b.BuildTime,
BuildTimeFactor: b.BuildTimeFactor,
}
}
type buildingInfo struct {
XMLName xml.Name `xml:"config"`
Text string `xml:",chardata"`
Main building `xml:"main"`
Barracks building `xml:"barracks"`
Stable building `xml:"stable"`
Garage building `xml:"garage"`
Watchtower building `xml:"watchtower"`
Snob building `xml:"snob"`
Smith building `xml:"smith"`
Place building `xml:"place"`
Statue building `xml:"statue"`
Market building `xml:"market"`
Wood building `xml:"wood"`
Stone building `xml:"stone"`
Iron building `xml:"iron"`
Farm building `xml:"farm"`
Storage building `xml:"storage"`
Hide building `xml:"hide"`
Wall building `xml:"wall"`
}
func (b buildingInfo) toDomain() domain.BuildingInfo {
return domain.BuildingInfo{
Main: b.Main.toDomain(),
Barracks: b.Barracks.toDomain(),
Stable: b.Stable.toDomain(),
Garage: b.Garage.toDomain(),
Watchtower: b.Watchtower.toDomain(),
Snob: b.Snob.toDomain(),
Smith: b.Smith.toDomain(),
Place: b.Place.toDomain(),
Statue: b.Statue.toDomain(),
Market: b.Market.toDomain(),
Wood: b.Wood.toDomain(),
Stone: b.Stone.toDomain(),
Iron: b.Iron.toDomain(),
Farm: b.Farm.toDomain(),
Storage: b.Storage.toDomain(),
Hide: b.Hide.toDomain(),
Wall: b.Wall.toDomain(),
}
}