feat(currency_wars): complete systems, settlement Rank SS, damage report, camera and recovery fixes
This commit is contained in:
1 parent
c008243f11
commit
0995055296
78 files changed
+33840
-9525
No files matched your search
@@ -49,9 +49,11 @@ func buildCurrencyWarsBattle(s *Session, catalog *common.CurrencyWarsCatalog, ru
|
||||
grid.StageInfo = &pb.KJFEHJMAIAA{FMNPBOJGLFI: v.FMNPBOJGLFI}
|
||||
}
|
||||
}
|
||||
if stage == nil || run.DivisionId != grid.AACGBEBGDPE || run.IsOverlock != grid.IsOverlock {
|
||||
division, err := catalog.CapturedStage(run.DivisionId)
|
||||
if err != nil || stage == nil || run.IsOverlock != grid.IsOverlock {
|
||||
return nil, fmt.Errorf("CW battle envelope has not been captured for this mode/division")
|
||||
}
|
||||
grid.AACGBEBGDPE = division.ID
|
||||
var node *pb.OHMDHKGAEMM
|
||||
for _, n := range stage.OOMMIIKPHBC {
|
||||
if n.SectionId == stage.SectionId && n.DCAHJELNJNP == stage.DCAHJELNJNP {
|
||||
@@ -83,13 +85,14 @@ func buildCurrencyWarsBattle(s *Session, catalog *common.CurrencyWarsCatalog, ru
|
||||
return nil, fmt.Errorf("CW battle mode envelope missing")
|
||||
}
|
||||
ext.GLHDCCPOGHL.IHHNLLAJAGB = 0
|
||||
runtime, _ := cwBonfireRuntime(catalog, run)
|
||||
// These fields contain the reference party's traits, buffs and battle events.
|
||||
// They cannot be reused for another party. Derived trait/equipment effects
|
||||
// remain a separate implementation task; don't silently inherit its bonuses.
|
||||
grid.GridGameRoleList = nil
|
||||
grid.GridGameNpcList = nil
|
||||
grid.OPHONCKPNMG = nil
|
||||
grid.GridFightTraitInfo = nil
|
||||
grid.GridFightTraitInfo = cwCalculateBattleTraits(catalog, run, runtime)
|
||||
grid.POCKGKDFLKK = nil
|
||||
grid.KCOMPKMJCMC = nil
|
||||
grid.SyncAugmentInfo = nil
|
||||
@@ -102,6 +105,50 @@ func buildCurrencyWarsBattle(s *Session, catalog *common.CurrencyWarsCatalog, ru
|
||||
}
|
||||
info.BattleAvatarList = nil
|
||||
info.BuffList = nil
|
||||
if runtime != nil && runtime.Rules != nil {
|
||||
tbCat, _ := common.LoadCurrencyWarsTrailblaze()
|
||||
if tbCat != nil {
|
||||
var ownerIndex uint32
|
||||
hasOwner := false
|
||||
for _, r := range team.GridGameRoleList {
|
||||
if r != nil && r.Pos > 0 && r.Pos < benchFirstPos {
|
||||
if variant, err := catalog.CapturedRoleVariant(r.Id, r.RoleStar); err == nil {
|
||||
for _, tid := range variant.Config.TraitList {
|
||||
if tid == cwTrailblazeTrait {
|
||||
if !hasOwner || r.Pos < ownerIndex {
|
||||
ownerIndex = r.Pos
|
||||
hasOwner = true
|
||||
}
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if hasOwner {
|
||||
for _, good := range tbCat.GoodsList {
|
||||
if good.Kind == "maze_buff" && len(good.Params) == 1 && tbBoughtCount(runtime, good.ID) > 0 {
|
||||
superseded := false
|
||||
for _, child := range tbCat.GoodsList {
|
||||
if child.Father == good.ID && tbBoughtCount(runtime, child.ID) > 0 {
|
||||
superseded = true
|
||||
break
|
||||
}
|
||||
}
|
||||
if !superseded {
|
||||
info.BuffList = append(info.BuffList, &pb.BattleBuff{
|
||||
Id: good.Params[0],
|
||||
Level: 1,
|
||||
OwnerId: ownerIndex,
|
||||
WaveFlag: 0xFFFFFFFF,
|
||||
TargetIndexList: []uint32{ownerIndex},
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
info.BattleEvent = nil
|
||||
supported, err := supportedRelicIDs()
|
||||
if err != nil {
|
||||
|
||||
Reference in new issue
Block a user