Update GaCy-GO
This commit is contained in:
1 parent
da8a32f60d
commit
0cbe460e49
345 files changed
+98202
-77559
No files matched your search
@@ -0,0 +1,87 @@
|
||||
package gameserver
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"gac-hkrpg-go/internal/common"
|
||||
pb "gac-hkrpg-go/protocol/proto"
|
||||
)
|
||||
|
||||
func TestCurrencyWarsQuitSettleIsRegistered(t *testing.T) {
|
||||
requestID, ok := pb.CmdIDByName["GridFightQuitSettleCsReq"]
|
||||
if !ok || typedHandlers[uint16(requestID)] == nil {
|
||||
t.Fatal("GridFightQuitSettle must have a typed handler")
|
||||
}
|
||||
if _, ok := dummyResponses[uint16(requestID)]; ok {
|
||||
t.Fatal("GridFightQuitSettle must not use an empty dummy response")
|
||||
}
|
||||
}
|
||||
|
||||
func TestCurrencyWarsAbandonRunPreservesOtherGetData(t *testing.T) {
|
||||
metadata := &pb.CLEDCMIOIPF{}
|
||||
data := &pb.GridFightGetDataScRsp{
|
||||
LFLCDNGALME: metadata,
|
||||
DHFOFLFCLAH: &pb.MPIMAEMCEFH{UniqueId: 42, IsOverlock: true},
|
||||
}
|
||||
|
||||
runID, active := currencyWarsAbandonRun(data)
|
||||
if !active || runID != 42 {
|
||||
t.Fatalf("abandon result = (run %d, active %t); want (42, true)", runID, active)
|
||||
}
|
||||
if data.DHFOFLFCLAH != nil || data.LFLCDNGALME != metadata {
|
||||
t.Fatal("abandon must clear only the active run and preserve season data")
|
||||
}
|
||||
|
||||
if _, active = currencyWarsAbandonRun(data); active {
|
||||
t.Fatal("abandon without an active run must be rejected")
|
||||
}
|
||||
}
|
||||
|
||||
func TestCurrencyWarsQuitSettlementUsesActiveRunData(t *testing.T) {
|
||||
catalog, err := common.LoadCurrencyWarsCatalog()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
divisions := catalog.SeasonDivisions(catalog.ActiveSeasonID)
|
||||
if len(divisions) == 0 {
|
||||
t.Fatal("active season has no captured divisions")
|
||||
}
|
||||
division := divisions[0]
|
||||
run := &pb.MPIMAEMCEFH{
|
||||
UniqueId: 42,
|
||||
DivisionId: division.ID,
|
||||
IsOverlock: true,
|
||||
JLDDDLDNFEF: &pb.CLFABOEKMJI{},
|
||||
NAGDJGMMCBE: []*pb.GridFightGameInfo{
|
||||
{LEOIAOFBBFA: &pb.GridFightGameInfo_FAOCFBOFCJP{FAOCFBOFCJP: &pb.NIHNGPKHEPC{PPKKHHNEOHB: 90, GridFightLineupHp: 72, GDAKCOICIDA: 3}}},
|
||||
{LEOIAOFBBFA: &pb.GridFightGameInfo_EJIPINIKNCK{EJIPINIKNCK: &pb.HKFECLCHBFJ{GridGameRoleList: []*pb.CDEAABODKCP{
|
||||
{Id: 8001, RoleStar: 2, Pos: 1},
|
||||
{Id: 8002, RoleStar: 1, Pos: 2},
|
||||
}}}},
|
||||
{LEOIAOFBBFA: &pb.GridFightGameInfo_KLCPAAHDPJF{KLCPAAHDPJF: &pb.BEEFLEJAOCN{
|
||||
DCAHJELNJNP: 4, EMOHLJHPOPC: 7001, SectionId: 5,
|
||||
}}},
|
||||
},
|
||||
}
|
||||
|
||||
keepWin, settlement, err := currencyWarsQuitSettlement(catalog, run)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if keepWin.EHBLJGIENPI != 3 {
|
||||
t.Fatalf("keep-win count = %d, want 3", keepWin.EHBLJGIENPI)
|
||||
}
|
||||
finish := settlement.BFLLJJBHLDF
|
||||
if settlement.FLHOPMMEGAI != division.ID || finish == nil || finish.Reason != pb.PEIJNEFOCHI_PEIJNEFOCHI_NOCIJDINKPJ {
|
||||
t.Fatalf("quit settlement identity/reason = division %d finish %v", settlement.FLHOPMMEGAI, finish)
|
||||
}
|
||||
if settlement.NMCKJPEMACM != catalog.ActiveSeasonModule().MaxRewardExp || settlement.CDANKDNACJP == 0 {
|
||||
t.Fatalf("settlement season metadata is incomplete: exp=%d highest_division=%d", settlement.NMCKJPEMACM, settlement.CDANKDNACJP)
|
||||
}
|
||||
if finish.NDLIKNEKDLL == nil || finish.NDLIKNEKDLL.LKCJAPIGEND != 90 || finish.NDLIKNEKDLL.PAGPKOKMDBK != 72 || finish.NDLIKNEKDLL.DCAHJELNJNP != 4 || finish.NDLIKNEKDLL.EMOHLJHPOPC != 7001 || finish.NDLIKNEKDLL.SectionId != 5 {
|
||||
t.Fatalf("settlement basic info does not match saved run: %v", finish.NDLIKNEKDLL)
|
||||
}
|
||||
if !finish.IsOverlock || finish.PPJFPNMIFHL == nil || len(finish.PPJFPNMIFHL.GridFightAvatarList) != 2 || finish.PPJFPNMIFHL.GridFightAvatarList[0] != 8001 || finish.PPJFPNMIFHL.GridFightAvatarList[1] != 8002 {
|
||||
t.Fatal("settlement did not preserve mode and sorted team avatar data")
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user