diff --git a/src/server/game/mod/limited_time_event/limited_time_event.go b/src/server/game/mod/limited_time_event/limited_time_event.go index fa12fe2c..410ab9c7 100644 --- a/src/server/game/mod/limited_time_event/limited_time_event.go +++ b/src/server/game/mod/limited_time_event/limited_time_event.go @@ -368,6 +368,23 @@ func (l *LimitedTimeEventMod) SelectProgressReward(Id, Lv, Energy int) ([]*item. return Item, limitedTimeEventCfg.GetProgressRewardType(RewardId), OrderNum, RewardList, nil } +func (l *LimitedTimeEventMod) DebugProgressRewardList(Lv, Energy int) map[int]int { + // 重新生成进度奖励 + SelectNum := limitedTimeEventCfg.GetProgressSelectNum(Lv) + BonusLv := limitedTimeEventCfg.GetBonusLv(Lv) + RandMap := limitedTimeEventCfg.GetProgressRewardRand(BonusLv) + // 体力小于200 high roller事件不进池子 + if Energy < limitedTimeEventCfg.GetHighRollerNeedEnergy() { + delete(RandMap, limitedTimeEventCfg.GetJackpotIdByType(EVENT_TYPE_HIGH_ROLLER)) + } + if GoUtil.Now()-l.LastCatDaySale < limitedTimeEventCfg.GetCatSaleCD() { + // 参与猫咪大甩卖活动时,猫咪大甩卖事件不进池子 + delete(RandMap, limitedTimeEventCfg.GetJackpotIdByType(EVENT_TYPE_CAT_DAY_SALE)) + } + l.fillProgressReward(RandMap, SelectNum) + return l.ProgressReward +} + // fillProgressReward 随机填充进度奖励(最多尝试10次避免与上次相同) func (l *LimitedTimeEventMod) fillProgressReward(RandMap map[int]int, SelectNum int) { LastOption := l.LastOption diff --git a/src/server/test/limit_test.go b/src/server/test/limit_test.go index 39ade1dd..7e815878 100644 --- a/src/server/test/limit_test.go +++ b/src/server/test/limit_test.go @@ -1,6 +1,7 @@ package test import ( + "fmt" "server/game" limitedTimeEvent "server/game/mod/limited_time_event" "testing" @@ -42,3 +43,14 @@ func TestSenceDash(t *testing.T) { } t.Logf("Scene dash reward: Id=%d, items=%v", Id, items) } + +func TestProgressReward(t *testing.T) { + p := new(game.Player) + p.InitPlayer("3625212") + LimitEventMod := p.GetLimitEventMod() + BaseMod := p.GetBaseMod() + for i := 0; i < 100; i++ { + res := LimitEventMod.DebugProgressRewardList(38, BaseMod.Energy) // 输出当前进度奖励列表 + fmt.Printf("Current progress reward list: %v\n", res) + } +}