场景冲刺逻辑修改
This commit is contained in:
parent
8a79ce2b64
commit
8dbefbe3d9
@ -274,7 +274,16 @@ func (l *LimitedTimeEventMod) GetChestReward(MergeList, EmitList []int) []*item.
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 获取场景冲刺奖励
|
// 获取场景冲刺奖励
|
||||||
func (l *LimitedTimeEventMod) GetSceneDashReward() (int, []*item.Item) {
|
func (l *LimitedTimeEventMod) GetSceneDashReward() (int, []*item.Item, error) {
|
||||||
|
limitInfo, ok := l.EventList[EVENT_TYPE_SENCE_DASH]
|
||||||
|
if !ok {
|
||||||
|
return 0, nil, fmt.Errorf("sence dash not active")
|
||||||
|
}
|
||||||
|
times := GoUtil.Int(limitInfo.Info["Times"])
|
||||||
|
if times <= 0 {
|
||||||
|
return 0, nil, fmt.Errorf("no dash times")
|
||||||
|
}
|
||||||
|
limitInfo.Info["Times"] = times - 1
|
||||||
ProbList := limitedTimeEventCfg.GetSenceJackpotProb()
|
ProbList := limitedTimeEventCfg.GetSenceJackpotProb()
|
||||||
Id := GoUtil.RandMap(ProbList)
|
Id := GoUtil.RandMap(ProbList)
|
||||||
Items := limitedTimeEventCfg.GetSenceJackpotReward(Id)
|
Items := limitedTimeEventCfg.GetSenceJackpotReward(Id)
|
||||||
@ -282,7 +291,7 @@ func (l *LimitedTimeEventMod) GetSceneDashReward() (int, []*item.Item) {
|
|||||||
// 多个奖励时,随机选择一个
|
// 多个奖励时,随机选择一个
|
||||||
Items = []*item.Item{GoUtil.RandItem(Items)}
|
Items = []*item.Item{GoUtil.RandItem(Items)}
|
||||||
}
|
}
|
||||||
return Id, Items
|
return Id, Items, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取连击快手奖励
|
// 获取连击快手奖励
|
||||||
@ -434,6 +443,10 @@ func (l *LimitedTimeEventMod) GetCatTrickReward() ([]*item.Item, error) {
|
|||||||
// #region 事件信息初始化
|
// #region 事件信息初始化
|
||||||
func initEventInfo(E *LTEInfo, EventType int) {
|
func initEventInfo(E *LTEInfo, EventType int) {
|
||||||
switch EventType {
|
switch EventType {
|
||||||
|
case EVENT_TYPE_SENCE_DASH:
|
||||||
|
E.Info = map[string]interface{}{
|
||||||
|
"Times": 0,
|
||||||
|
}
|
||||||
case EVENT_TYPE_FAST_PRODUCE:
|
case EVENT_TYPE_FAST_PRODUCE:
|
||||||
E.Info = map[string]interface{}{
|
E.Info = map[string]interface{}{
|
||||||
"Times": 0,
|
"Times": 0,
|
||||||
@ -515,6 +528,9 @@ func getLimitEventMsg(t int, e *LTEInfo) *msg.LimitEvent {
|
|||||||
case EVENT_TYPE_PAYBACK_DAY:
|
case EVENT_TYPE_PAYBACK_DAY:
|
||||||
d := e.D.(*PaybackDay)
|
d := e.D.(*PaybackDay)
|
||||||
Param[msg.LimitEventParam_PAYBACK_DAY_COUNT.String()] = int32(d.Count)
|
Param[msg.LimitEventParam_PAYBACK_DAY_COUNT.String()] = int32(d.Count)
|
||||||
|
case EVENT_TYPE_SENCE_DASH:
|
||||||
|
Times := GoUtil.Int(e.Info["Times"])
|
||||||
|
Param[msg.LimitEventParam_SENCE_DASH_TIMES.String()] = int32(Times)
|
||||||
}
|
}
|
||||||
return &msg.LimitEvent{
|
return &msg.LimitEvent{
|
||||||
EndTime: EndTime,
|
EndTime: EndTime,
|
||||||
@ -537,3 +553,11 @@ func (l *LimitedTimeEventMod) GetCatDaySaleEndTime() int64 {
|
|||||||
}
|
}
|
||||||
return v.StartT + v.Remian
|
return v.StartT + v.Remian
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (l *LimitedTimeEventMod) AddSenceDashTimes() bool {
|
||||||
|
if _, ok := l.EventList[EVENT_TYPE_SENCE_DASH]; !ok {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
l.EventList[EVENT_TYPE_SENCE_DASH].Info["Times"] = GoUtil.Int(l.EventList[EVENT_TYPE_SENCE_DASH].Info["Times"]) + 1
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|||||||
@ -539,7 +539,12 @@ func ReqDecorate(player *Player, buf []byte) error {
|
|||||||
"item_list": AddItem,
|
"item_list": AddItem,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
// 跨越场景
|
||||||
if DecorateMod.GetAreaId() != AreaId { // 解锁上报
|
if DecorateMod.GetAreaId() != AreaId { // 解锁上报
|
||||||
|
LimitEventMod := player.PlayMod.getLimitedTimeEventMod()
|
||||||
|
if LimitEventMod.AddSenceDashTimes() {
|
||||||
|
player.PushClientRes(LimitEventMod.BackData())
|
||||||
|
}
|
||||||
player.TeLog("plot_unlock", map[string]interface{}{
|
player.TeLog("plot_unlock", map[string]interface{}{
|
||||||
"plot_id": DecorateMod.GetAreaId(),
|
"plot_id": DecorateMod.GetAreaId(),
|
||||||
})
|
})
|
||||||
@ -636,6 +641,15 @@ func ReqDecorateAll(player *Player, buf []byte) error {
|
|||||||
player.TeLog("scene_reward", v.(map[string]interface{}))
|
player.TeLog("scene_reward", v.(map[string]interface{}))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if DecorateMod.GetAreaId() != AreaId { // 解锁上报
|
||||||
|
LimitEventMod := player.PlayMod.getLimitedTimeEventMod()
|
||||||
|
if LimitEventMod.AddSenceDashTimes() {
|
||||||
|
player.PushClientRes(LimitEventMod.BackData())
|
||||||
|
}
|
||||||
|
player.TeLog("plot_unlock", map[string]interface{}{
|
||||||
|
"plot_id": DecorateMod.GetAreaId(),
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
player.PlayMod.save()
|
player.PlayMod.save()
|
||||||
player.PushClientRes(DecorateMod.BackData())
|
player.PushClientRes(DecorateMod.BackData())
|
||||||
@ -1754,9 +1768,16 @@ func ReqLimitSenceReward(player *Player, buf []byte) error {
|
|||||||
return fmt.Errorf("not exist")
|
return fmt.Errorf("not exist")
|
||||||
|
|
||||||
}
|
}
|
||||||
Id, Items := limitedTimeEventMod.GetSceneDashReward()
|
Id, Items, err := limitedTimeEventMod.GetSceneDashReward()
|
||||||
|
if err != nil {
|
||||||
|
player.SendErrClienRes(&msg.ResLimitSenceReward{
|
||||||
|
Code: msg.RES_CODE_FAIL,
|
||||||
|
Msg: err.Error(),
|
||||||
|
})
|
||||||
|
return err
|
||||||
|
}
|
||||||
player.args["ResItemPopId"] = Id
|
player.args["ResItemPopId"] = Id
|
||||||
err := player.HandleItem(Items, msg.ITEM_POP_LABEL_LimitSenceReward.String())
|
err = player.HandleItem(Items, msg.ITEM_POP_LABEL_LimitSenceReward.String())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
player.SendErrClienRes(&msg.ResLimitSenceReward{
|
player.SendErrClienRes(&msg.ResLimitSenceReward{
|
||||||
Code: msg.RES_CODE_FAIL,
|
Code: msg.RES_CODE_FAIL,
|
||||||
|
|||||||
@ -28,3 +28,17 @@ func TestFast(t *testing.T) {
|
|||||||
}
|
}
|
||||||
t.Logf("Fast produce items: %v", items)
|
t.Logf("Fast produce items: %v", items)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestSenceDash(t *testing.T) {
|
||||||
|
p := new(game.Player)
|
||||||
|
p.InitPlayer("3625212")
|
||||||
|
LimitEventMod := p.GetLimitEventMod()
|
||||||
|
LimitEventMod.AddEvent(limitedTimeEvent.EVENT_TYPE_SENCE_DASH, 60)
|
||||||
|
LimitEventMod.AddSenceDashTimes() // 模拟一次场景冲刺
|
||||||
|
Id, items, err := LimitEventMod.GetSceneDashReward()
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("GetSceneDashReward error: %v", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
t.Logf("Scene dash reward: Id=%d, items=%v", Id, items)
|
||||||
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user