无尽礼包优化

This commit is contained in:
hahwu 2026-02-10 17:06:26 +08:00
parent 60785c9909
commit 8328ac6b63

View File

@ -12,27 +12,31 @@ func InitReward(Energy float64, Order, Lv int) []*item.Item {
numRand := map[int]int{1: 30, 2: 60, 3: 10}
Num := Util.RandMap(numRand)
PerEnergy := endlessCfg.GetPerEnergy(item.ITEM_ENERGY_ID)
getNum := func(energy, preEnergy float64) int {
num := int(energy / preEnergy)
num = int(math.Round(float64(num)/5.0) * 5)
return max(num, 5) // 最少5个能量
}
if Num == 1 {
return []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, int(float64(Energy)/PerEnergy))}
ItemNum := getNum(Energy, PerEnergy)
return []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, ItemNum)}
}
if Num == 2 {
ItemId := endlessCfg.GetItemId(Energy, 0, Lv)
if len(ItemId) == 0 {
return []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, int(Energy/PerEnergy))}
return []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, getNum(Energy, PerEnergy))}
}
RandItem := Util.RandSlice(ItemId)
ItemEnergy := endlessCfg.GetEnergyByItemId(RandItem)
LastEnergy := Energy - ItemEnergy
ItemNum := int(LastEnergy / PerEnergy)
ItemNum = int(math.Round(float64(ItemNum)/5.0) * 5) // 道具数量为5的倍数
ItemNum := getNum(LastEnergy, PerEnergy)
return []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, ItemNum), item.NewItem(RandItem, 1)}
}
if Num == 3 {
ItemId := endlessCfg.GetItemId(Energy, 0, Lv)
if len(ItemId) == 0 {
return []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, int(Energy/PerEnergy))}
return []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, getNum(Energy, PerEnergy))}
}
RandItem1 := Util.RandSlice(ItemId)
Type := endlessCfg.GetType(RandItem1)
@ -40,14 +44,13 @@ func InitReward(Energy float64, Order, Lv int) []*item.Item {
LastEnergy := Energy - ItemEnergy
ItemId = endlessCfg.GetItemId(LastEnergy, Type, Lv)
if len(ItemId) == 0 {
ItemNum := int(LastEnergy / PerEnergy)
ItemNum := getNum(LastEnergy, PerEnergy)
return []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, ItemNum), item.NewItem(RandItem1, 1)}
}
RandItem2 := Util.RandSlice(ItemId)
ItemEnergy = endlessCfg.GetEnergyByItemId(RandItem2)
LastEnergy = LastEnergy - ItemEnergy
ItemNum := int(LastEnergy / PerEnergy)
ItemNum = int(math.Round(float64(ItemNum)/5.0) * 5) // 道具数量为5的倍数
ItemNum := getNum(LastEnergy, PerEnergy)
return []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, ItemNum), item.NewItem(RandItem1, 1), item.NewItem(RandItem2, 1)}
}