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
@@ -2,6 +2,7 @@ package gameserver
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"gac-hkrpg-go/internal/common"
|
||||
pb "gac-hkrpg-go/protocol/proto"
|
||||
)
|
||||
|
||||
@@ -21,7 +22,7 @@ func cwSetEncounterSelection(run *pb.MPIMAEMCEFH, index uint32) (*pb.KFNCAIHIHCM
|
||||
return &pb.KFNCAIHIHCM{MNLCHEJKDHO: &pb.KFNCAIHIHCM_FGODNPLCECH{FGODNPLCECH: &pb.KEPIEGKPFIJ{MOADBALHMFD: index}}}, nil
|
||||
}
|
||||
|
||||
func cwSelectEncounter(run *pb.MPIMAEMCEFH, request *pb.OHAINOHGKCM) (*pb.GridFightSyncUpdateResultScNotify, error) {
|
||||
func cwSelectEncounter(c *common.CurrencyWarsCatalog, run *pb.MPIMAEMCEFH, request *pb.OHAINOHGKCM, runtime *common.CurrencyWarsRuntimeState) (*pb.GridFightSyncUpdateResultScNotify, error) {
|
||||
if run.GetFMIGOKIDKJL().GetBAKAKODKECM() == nil || request == nil {
|
||||
return nil, fmt.Errorf("CW Encounter selection is not active")
|
||||
}
|
||||
@@ -33,11 +34,20 @@ func cwSelectEncounter(run *pb.MPIMAEMCEFH, request *pb.OHAINOHGKCM) (*pb.GridFi
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
difficulty, err := cwXaodevSelectionDifficulty(c, run, runtime)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
// Reference phase transition: SelectingEncounter -> AwaitingBattleReturn,
|
||||
// followed by the ordinary ReturnPreparation action; no battle starts here.
|
||||
pending := &pb.CHCHAJIANIM{QueuePosition: queue + 1, FGLIODAJFML: &pb.CHCHAJIANIM_LGNPHHBGKFH{LGNPHHBGKFH: &pb.HJPDALHDJHC{}}}
|
||||
run.FMIGOKIDKJL = pending
|
||||
return cwNotify(selected, cwFinish(queue), cwUnlock(), &pb.KFNCAIHIHCM{MNLCHEJKDHO: &pb.KFNCAIHIHCM_FMIGOKIDKJL{FMIGOKIDKJL: pending}}), nil
|
||||
notify := cwNotify(selected)
|
||||
if difficulty != nil {
|
||||
notify.GCPNIHHBGGD[0].JKPJFKCBIEM = append(notify.GCPNIHHBGGD[0].JKPJFKCBIEM, difficulty)
|
||||
}
|
||||
notify.GCPNIHHBGGD[0].JKPJFKCBIEM = append(notify.GCPNIHHBGGD[0].JKPJFKCBIEM, cwFinish(queue), cwUnlock(), &pb.KFNCAIHIHCM{MNLCHEJKDHO: &pb.KFNCAIHIHCM_FMIGOKIDKJL{FMIGOKIDKJL: pending}})
|
||||
return notify, nil
|
||||
}
|
||||
|
||||
func init() {
|
||||
@@ -52,10 +62,22 @@ func init() {
|
||||
PacketLog("CW_ENCOUNTER_UPDATE rejected: " + err.Error())
|
||||
return nil
|
||||
}
|
||||
if err = s.saveCurrencyWarsData(data, catalog); err != nil {
|
||||
runtime, err := cwBonfireRuntime(catalog, data.DHFOFLFCLAH)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
difficulty, err := cwXaodevSelectionDifficulty(catalog, data.DHFOFLFCLAH, runtime)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if err = s.saveCurrencyWarsDataWithRuntime(data, catalog, runtime); err != nil {
|
||||
return nil
|
||||
}
|
||||
if err = cwSend(s, cwNotify(selected)); err != nil {
|
||||
notify := cwNotify(selected)
|
||||
if difficulty != nil {
|
||||
notify.GCPNIHHBGGD[0].JKPJFKCBIEM = append(notify.GCPNIHHBGGD[0].JKPJFKCBIEM, difficulty)
|
||||
}
|
||||
if err = cwSend(s, notify); err != nil {
|
||||
return err
|
||||
}
|
||||
rsp.Retcode = 0
|
||||
|
||||
Reference in new issue
Block a user