tappin/internal/entity/upgrades/price.go
Arthur Khachaturov e307989b9f
init: mvp
2024-08-17 01:20:24 +03:00

37 lines
682 B
Go

package upgrades
import (
"encoding/json"
)
func (u *Upgrades) RecurseUnavailable(item *Item) []*Item {
if item.IsAvailable || (item.Condition == nil || item.Condition.ByUpgrade == nil) {
return []*Item{item}
}
return append(u.RecurseUnavailable((*u)[item.Condition.ByUpgrade.UpgradeID]), item)
}
func (r *Response) UnmarshalJSON(data []byte) error {
type tempType Response
var temp *tempType = (*tempType)(r)
err := json.Unmarshal(data, temp)
if err != nil {
return err
}
r.Upgrades = make(Upgrades)
for _, i := range r.UpgradesArray {
r.Upgrades[i.ID] = i
}
return nil
}
func (r *Response) Tick() {
for _, e := range r.UpgradesArray {
e.Tick()
}
}