diff --git a/src/server/game/mod/endless/Endless.go b/src/server/game/mod/endless/Endless.go index 28f59309..e49bff1a 100644 --- a/src/server/game/mod/endless/Endless.go +++ b/src/server/game/mod/endless/Endless.go @@ -2,9 +2,11 @@ package endless import ( "fmt" + "math" endlessCfg "server/conf/endless" "server/game/mod/item" "server/msg" + "sort" ) type EndlessMod struct { @@ -40,13 +42,22 @@ func (e *EndlessMod) ZeroUpdate(MaxMoney float64, Lv int) { if MaxMoney > 0 { m := MaxMoney / 10 GradeList := []float64{1.99, 3.99, 5.99, 9.99} - for i := 0; i < len(GradeList); i++ { - if m < GradeList[i] { - FirstMoney = GradeList[i] - break - } + type duch struct { + Grade float64 + Num float64 } - + duchList := make([]duch, 0, len(GradeList)) + for _, v := range GradeList { + duchList = append(duchList, duch{ + Grade: v, + Num: math.Abs(v - m), + }) + } + // 按照Num升序排序 + sort.Slice(duchList, func(i, j int) bool { + return duchList[i].Num < duchList[j].Num + }) + FirstMoney = duchList[0].Grade if FirstMoney == 0 { FirstMoney = 9.99 } diff --git a/src/server/game/mod_factory.go b/src/server/game/mod_factory.go index 18319b79..2a22b68d 100644 --- a/src/server/game/mod_factory.go +++ b/src/server/game/mod_factory.go @@ -1,9 +1,12 @@ package game import ( + "server/game/mod/base" "server/game/mod/card" + "server/game/mod/charge" "server/game/mod/chess" "server/game/mod/decorate" + "server/game/mod/endless" limitedTimeEvent "server/game/mod/limited_time_event" "server/game/mod/playroom" ) @@ -27,3 +30,15 @@ func (p *Player) GetCardMod() *card.CardMod { func (p *Player) GetPlayroomMod() *playroom.PlayroomMod { return p.PlayMod.getPlayroomMod() } + +func (p *Player) GetEndlessMod() *endless.EndlessMod { + return p.PlayMod.getEndlessMod() +} + +func (p *Player) GetBaseMod() *base.Base { + return p.PlayMod.getBaseMod() +} + +func (p *Player) GetChargeMod() *charge.ChargeMod { + return p.PlayMod.getChargeMod() +} diff --git a/src/server/test/fix_test.go b/src/server/test/fix_test.go index 3df0bbb0..fe3769fa 100644 --- a/src/server/test/fix_test.go +++ b/src/server/test/fix_test.go @@ -5,7 +5,6 @@ import ( decorateCfg "server/conf/decorate" "server/db" "server/game" - "server/game/mod/quest" "server/pkg/github.com/name5566/leaf/log" "testing" ) @@ -83,8 +82,17 @@ func TestFixUserData(t *testing.T) { func TestRandInt(t *testing.T) { p1 := new(game.Player) p1.InitPlayer("3625212") - PlayroomMod := p1.GetPlayroomMod() - PlayroomMod.InitDailyTask() - p1.QuestTrigger(&quest.Trigger{Label: quest.TRIGGER_LABEL_PETDRESS, A: []interface{}{9}}) - p1.ProcessTrigger() + BaseMod := p1.GetBaseMod() + ChargeMod := p1.GetChargeMod() + EndlessMod := p1.GetEndlessMod() + EndlessMod.ZeroUpdate(ChargeMod.GetMaxCharge(), BaseMod.GetLevel()) +} + +func TestEndless(t *testing.T) { + p1 := new(game.Player) + p1.InitPlayer("3625212") + BaseMod := p1.GetBaseMod() + ChargeMod := p1.GetChargeMod() + EndlessMod := p1.GetEndlessMod() + EndlessMod.ZeroUpdate(ChargeMod.GetMaxCharge(), BaseMod.GetLevel()) }