| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- package leagueAttr
- import (
- "f1-game/internal/data"
- "f1-game/internal/types"
- "f1-game/nodes/map/internal/db"
- mapFacade "f1-game/nodes/map/internal/facade"
- )
- func Service() *service {
- return &service{}
- }
- type service struct {
- mapFacade.LeagueServiceBase[*db.MapLeagueTable]
- }
- func (p *service) OnInit(leagueTable *db.MapLeagueTable) {
- // 初始化联盟属性
- p.UpdateAttrs(leagueTable)
- leagueTable.Save2Queue()
- }
- // 更新联盟属性
- func (p *service) UpdateAttrs(leagueTable *db.MapLeagueTable) {
- attrs := types.NewAttrs()
- // 联盟等级属性
- if leagueLevelRow, found := data.LeagueLevel.GetByLevel(leagueTable.LeagueInfo.Level); found {
- for k, v := range leagueLevelRow.LevelAttrs {
- attrs.Add(k, v)
- }
- }
- // 联盟科技对应等级的属性
- for _, tech := range leagueTable.Techs.Techs {
- if levelRow, ok := data.LeagueTechLevel.GetByTechIDLevel(tech.TechID, tech.Level); ok {
- for k, v := range levelRow.Attrs {
- attrs.Add(k, v)
- }
- }
- }
- // 联盟建筑增加属性
- for _, build := range leagueTable.Builds.Builds {
- if mapBuildUpgradeRow, ok := data.MapBuildUpgrade.GetByConfigIDLevel(build.ConfigID, build.Level); ok {
- for k, v := range mapBuildUpgradeRow.LeagueBuildAttrs {
- attrs.Add(k, v)
- }
- }
- }
- leagueTable.LeagueInfo.Attrs = attrs
- }
|