Update GaCy-GO
This commit is contained in:
1 parent
da8a32f60d
commit
0cbe460e49
345 files changed
+98202
-77559
No files matched your search
@@ -128,18 +128,16 @@ func init() {
|
||||
// The revision's request name is misleading. Controlled reference replay
|
||||
// establishes this request's MFFCPLBNHCF arm as portal selection and its
|
||||
// response as GridFightHandlePendingActionScRsp. No numeric alias is used.
|
||||
handleNamed("GridFightHandleBonfireHealHp", "GridFightHandlePendingActionScRsp", func(s *Session, req *goproto.GridFightHandleBonfireHealHpCsReq, rsp *goproto.GridFightHandlePendingActionScRsp) (resultErr error) {
|
||||
cwHandleNamed("GridFightHandleBonfireHealHp", "GridFightHandlePendingActionScRsp", func(s *Session, req *goproto.GridFightHandleBonfireHealHpCsReq, rsp *goproto.GridFightHandlePendingActionScRsp) error {
|
||||
rsp.QueuePosition = req.QueuePosition
|
||||
rsp.Retcode = uint32(goproto.Retcode_RET_GRID_FIGHT_CONF_MISS)
|
||||
defer func() {
|
||||
if resultErr != nil {
|
||||
PacketLog(fmt.Sprintf("CW_PENDING_ACTION failed queue=%d error=%v", req.QueuePosition, resultErr))
|
||||
rsp.Retcode = uint32(goproto.Retcode_RET_GRID_FIGHT_CONF_MISS)
|
||||
resultErr = nil // Send the typed error response so the wait block is released.
|
||||
}
|
||||
}()
|
||||
selection := req.GetMFFCPLBNHCF()
|
||||
if selection == nil && req.GetNNDGEJFLGGF() == nil && req.GetLGNPHHBGKFH() == nil && req.GetIBCHMBNIPLK() == nil && req.GetDKDFDGJGIHM() == nil {
|
||||
if req.GetIIDBLCFAAPC() != nil {
|
||||
if _, active := CURRENT_BATTLE.Load(s.Token); active {
|
||||
return fmt.Errorf("CW Bonfire selection cannot change during Battle")
|
||||
}
|
||||
}
|
||||
if selection == nil && req.GetNNDGEJFLGGF() == nil && req.GetLGNPHHBGKFH() == nil && req.GetIBCHMBNIPLK() == nil && req.GetDKDFDGJGIHM() == nil && req.GetFIKAGBAEOAP() == nil && req.GetBAKAKODKECM() == nil && req.GetIIDBLCFAAPC() == nil {
|
||||
PacketLog(fmt.Sprintf("CW_PENDING_ACTION unsupported queue=%d action=%T", req.QueuePosition, req.FGLIODAJFML))
|
||||
return nil
|
||||
}
|
||||
@@ -166,29 +164,29 @@ func init() {
|
||||
}
|
||||
var after *goproto.MPIMAEMCEFH
|
||||
var notify *goproto.GridFightSyncUpdateResultScNotify
|
||||
var runtime *common.CurrencyWarsRuntimeState
|
||||
if selection != nil {
|
||||
after, notify, err = currencyWarsEntryChoice(catalog, before, req.QueuePosition, selection.JCAPCNLJGFC)
|
||||
} else {
|
||||
after = proto.Clone(before).(*goproto.MPIMAEMCEFH)
|
||||
switch {
|
||||
case req.GetIIDBLCFAAPC() != nil && before.FMIGOKIDKJL.GetIIDBLCFAAPC() != nil:
|
||||
notify, runtime, err = cwSelectBonfire(catalog, after, req.GetIIDBLCFAAPC())
|
||||
case req.GetBAKAKODKECM() != nil && before.FMIGOKIDKJL.GetBAKAKODKECM() != nil:
|
||||
notify, err = cwSelectEncounter(after, req.GetBAKAKODKECM())
|
||||
case req.GetFIKAGBAEOAP() != nil && before.FMIGOKIDKJL.GetFIKAGBAEOAP() != nil:
|
||||
notify, err = cwSelectSupply(catalog, after, req.GetFIKAGBAEOAP())
|
||||
case req.GetDKDFDGJGIHM() != nil && before.FMIGOKIDKJL.GetEEKMIAMGHFL() != nil:
|
||||
notify, err = cwSelectSpotlight(catalog, after, req.GetDKDFDGJGIHM())
|
||||
case req.GetNNDGEJFLGGF() != nil && before.FMIGOKIDKJL.GetNNDGEJFLGGF() != nil:
|
||||
stage, _ := cwStage(after)
|
||||
entries, loadErr := cwNodeTransitions(catalog)
|
||||
isNextRound := false
|
||||
if loadErr == nil && stage != nil {
|
||||
for _, entry := range entries {
|
||||
level := new(goproto.AINFNFIDGFF)
|
||||
if proto.Unmarshal(entry.LevelWire, level) == nil && level.DCAHJELNJNP == stage.DCAHJELNJNP && level.SectionId == stage.SectionId {
|
||||
isNextRound = true
|
||||
}
|
||||
}
|
||||
}
|
||||
if isNextRound {
|
||||
notify, err = cwNextRound(catalog, after)
|
||||
} else {
|
||||
route, loadErr := catalog.RouteNodes(stage.GetEMOHLJHPOPC())
|
||||
if loadErr != nil || len(route) == 0 {
|
||||
err = fmt.Errorf("CW RoundBegin route missing: %v", loadErr)
|
||||
} else if stage.DCAHJELNJNP == route[0].ChapterID && stage.SectionId == route[0].SectionID {
|
||||
notify, err = cwInitialRound(catalog, after)
|
||||
} else {
|
||||
notify, err = cwNextRound(catalog, after)
|
||||
}
|
||||
case req.GetLGNPHHBGKFH() != nil && before.FMIGOKIDKJL.GetLGNPHHBGKFH() != nil:
|
||||
notify, err = cwReturnPreparation(after)
|
||||
@@ -203,12 +201,25 @@ func init() {
|
||||
return nil
|
||||
}
|
||||
data.DHFOFLFCLAH = after
|
||||
if err := s.saveCurrencyWarsData(data, catalog); err != nil {
|
||||
runtime, err = cwApplyBonfireEnemyRules(catalog, after, runtime)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
// Enemy stars and their one-time rule marker must commit together.
|
||||
if stage, _ := cwStage(after); stage != nil && runtime.Rules["PetPalStarDown"] != 0 && stage.GetIMPNAHBCADN().GetMPOBBIPMNNJ() != nil {
|
||||
notify.GCPNIHHBGGD = append(notify.GCPNIHHBGGD, cwNotify(&goproto.KFNCAIHIHCM{MNLCHEJKDHO: &goproto.KFNCAIHIHCM_OOICHLAMNIG{OOICHLAMNIG: &goproto.AINFNFIDGFF{DCAHJELNJNP: stage.DCAHJELNJNP, SectionId: stage.SectionId, IMPNAHBCADN: stage.IMPNAHBCADN}}}).GCPNIHHBGGD...)
|
||||
}
|
||||
if err := s.saveCurrencyWarsDataWithRuntime(data, catalog, runtime); err != nil {
|
||||
return err
|
||||
}
|
||||
if req.GetIIDBLCFAAPC().GetECDACDNDHGO() != nil {
|
||||
player, _, _ := cwComponents(after)
|
||||
stage, _ := cwStage(after)
|
||||
PacketLog(fmt.Sprintf("CW_BONFIRE_TAKE saved old_queue=%d gold=%d level=%d exp=%d next=%d/%d revision=%d", req.QueuePosition, player.Gold, player.EHNJDIDABHD, player.GridFightCurLevelExp, stage.DCAHJELNJNP, stage.SectionId, s.currencyWarsRevision))
|
||||
}
|
||||
// Save before synchronizing, then finish the request after the ordered
|
||||
// notification, matching the reference's pending-action callback flow.
|
||||
if err := s.Send(notify); err != nil {
|
||||
if err := cwSend(s, notify); err != nil {
|
||||
return err
|
||||
}
|
||||
rsp.Retcode = 0
|
||||
|
||||
Reference in new issue
Block a user