| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- package data
- import (
- "f1-game/internal/enum"
- "f1-game/internal/types"
- )
- // 兵种类型等级配置 key 兵种来源 value [key 等级 value *ArmTypeRow]
- var heroFetterMap map[int32]types.Set[int32]
- func (p *heroFetterConfig) OnAfterLoad(_ bool) {
- tempHeroFetterMap := map[int32]types.Set[int32]{}
- for _, row := range p.list {
- for _, heroID := range row.HeroIDs {
- fetterSet := tempHeroFetterMap[heroID]
- if fetterSet == nil {
- fetterSet = types.NewSet[int32]()
- tempHeroFetterMap[heroID] = fetterSet
- }
- fetterSet.Add(row.ID)
- }
- }
- heroFetterMap = tempHeroFetterMap
- }
- // 通过英雄id获取羁绊id列表
- func (p *heroFetterConfig) GetFetterIDs(heroID int32) types.Set[int32] {
- return heroFetterMap[heroID]
- }
- // 获取怪物属性
- func (p *HeroFetterRow) GetAttrs() types.Attrs {
- attrs := types.NewAttrs()
- attrs.Set(enum.Attr_Speed, p.Speed)
- attrs.Set(enum.Attr_MinAttack, p.MinAttack)
- attrs.Set(enum.Attr_MaxAttack, p.MaxAttack)
- attrs.Set(enum.Attr_AttackSpeed, p.AttackSpeed)
- attrs.Set(enum.Attr_MinDefense, p.MinDefense)
- attrs.Set(enum.Attr_MaxDefense, p.MaxDefense)
- attrs.Set(enum.Attr_HP, p.Hp)
- attrs.Set(enum.Attr_MaxHP, p.Hp)
- attrs.Set(enum.Attr_CriticalHitChance, p.CriticalHitChance)
- attrs.Set(enum.Attr_CriticalHitResistance, p.CriticalHitResistance)
- attrs.Set(enum.Attr_CriticalHitDamage, p.CriticalHitDamage)
- attrs.Set(enum.Attr_CriticalHitDamageResistance, p.CriticalHitDamageResistance)
- attrs.Set(enum.Attr_Luck, p.Luck)
- attrs.Set(enum.Attr_DamageBonus, p.DamageBonus)
- attrs.Set(enum.Attr_DamageReduction, p.DamageReduction)
- attrs.Set(enum.Attr_SquadAttackBonus, p.SquadAttackBonus)
- attrs.Set(enum.Attr_SquadHealthBonus, p.SquadHealthBonus)
- return attrs
- }
|