七日签到数值优化
This commit is contained in:
parent
7b18ddbbdd
commit
fdbeb25af2
@ -46,81 +46,94 @@ func randWeekReward(Add, Type int) map[int]Reward {
|
||||
return result
|
||||
}
|
||||
|
||||
func randReward(RewardData *gamedata.SevenLoginRewardData, LastType []int, jackpot []*gamedata.SevenLoginJackpotData, CardPackIds []int, energyPer, EnergyMul float64) (Reward, []int) {
|
||||
func randReward(rewardData *gamedata.SevenLoginRewardData, lastType []int, jackpot []*gamedata.SevenLoginJackpotData, cardPackIds []int, energyPer, energyMul float64) (Reward, []int) {
|
||||
// 奖励1 体力 体力等价钻石占总价值的50%,且1钻≈2.5体力;体力值四舍五入,需以0或5结尾
|
||||
Num := math.Round(float64(RewardData.Energy) * energyPer)
|
||||
energyNum := float64(int(Num/5)) * 5
|
||||
RemainEnergy := RewardData.Energy - energyNum
|
||||
num := math.Round(float64(rewardData.Energy) * energyPer)
|
||||
energyNum := float64(int(num/5)) * 5
|
||||
remainEnergy := rewardData.Energy - energyNum
|
||||
// 召回玩家 每日体力数*2
|
||||
energyNum = energyNum * EnergyMul
|
||||
Item1 := []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, int(energyNum))}
|
||||
energyNum = energyNum * energyMul
|
||||
items1 := []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, int(energyNum))}
|
||||
// 奖励2
|
||||
NewJackpot := make([]*gamedata.SevenLoginJackpotData, 0, len(jackpot))
|
||||
newJackpot := make([]*gamedata.SevenLoginJackpotData, 0, len(jackpot))
|
||||
for _, v := range jackpot {
|
||||
if v.Energy <= RemainEnergy && !GoUtil.InArray(v.Type, LastType) && v.Type != JACKPOT_CARD_TYPE {
|
||||
NewJackpot = append(NewJackpot, v)
|
||||
if v.Energy <= remainEnergy && !GoUtil.InArray(v.Type, lastType) && v.Type != JACKPOT_CARD_TYPE {
|
||||
newJackpot = append(newJackpot, v)
|
||||
}
|
||||
}
|
||||
var Item2 []*item.Item
|
||||
ItemType := []int{}
|
||||
if RewardData.RewardNum == 3 {
|
||||
RemainEnergy -= 5
|
||||
var items2 []*item.Item
|
||||
itemType := []int{}
|
||||
if rewardData.RewardNum == 3 {
|
||||
remainEnergy -= 5
|
||||
}
|
||||
if GoUtil.InArray(RewardData.Id, CardPackIds) {
|
||||
CardJackpot := make([]*gamedata.SevenLoginJackpotData, 0, len(jackpot))
|
||||
if GoUtil.InArray(rewardData.Id, cardPackIds) {
|
||||
cardJackpot := make([]*gamedata.SevenLoginJackpotData, 0, len(jackpot))
|
||||
for _, v := range jackpot {
|
||||
if v.Energy <= RemainEnergy && v.Type == JACKPOT_CARD_TYPE {
|
||||
CardJackpot = append(CardJackpot, v)
|
||||
if v.Energy <= remainEnergy && v.Type == JACKPOT_CARD_TYPE {
|
||||
cardJackpot = append(cardJackpot, v)
|
||||
}
|
||||
}
|
||||
if len(CardJackpot) == 0 {
|
||||
Item2 = []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, int(RemainEnergy))}
|
||||
if len(cardJackpot) == 0 {
|
||||
items2 = []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, int(remainEnergy))}
|
||||
} else {
|
||||
Index := rand.IntN(len(CardJackpot))
|
||||
ItemType = append(ItemType, CardJackpot[Index].Type)
|
||||
Item2 = CardJackpot[Index].Items
|
||||
RemainEnergy -= CardJackpot[Index].Energy
|
||||
index := rand.IntN(len(cardJackpot))
|
||||
itemType = append(itemType, cardJackpot[index].Type)
|
||||
items2 = cardJackpot[index].Items
|
||||
remainEnergy -= cardJackpot[index].Energy
|
||||
}
|
||||
} else {
|
||||
if len(NewJackpot) == 0 {
|
||||
return Reward{Item1: Item1}, nil
|
||||
if len(newJackpot) == 0 {
|
||||
for _, v := range jackpot {
|
||||
if v.Energy <= remainEnergy {
|
||||
newJackpot = append(newJackpot, v)
|
||||
}
|
||||
}
|
||||
if len(newJackpot) == 0 {
|
||||
items2 = []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, int(remainEnergy))}
|
||||
return Reward{Item1: items1, Item2: items2}, nil
|
||||
}
|
||||
sort.Slice(newJackpot, func(i, j int) bool {
|
||||
return newJackpot[i].Energy > newJackpot[j].Energy
|
||||
})
|
||||
itemType = append(itemType, newJackpot[0].Type)
|
||||
return Reward{Item1: items1, Item2: newJackpot[0].Items}, itemType
|
||||
}
|
||||
sort.Slice(NewJackpot, func(i, j int) bool {
|
||||
return NewJackpot[i].Energy > NewJackpot[j].Energy
|
||||
sort.Slice(newJackpot, func(i, j int) bool {
|
||||
return newJackpot[i].Energy > newJackpot[j].Energy
|
||||
})
|
||||
ItemType = append(ItemType, NewJackpot[0].Type)
|
||||
Item2 = NewJackpot[0].Items
|
||||
RemainEnergy -= NewJackpot[0].Energy
|
||||
itemType = append(itemType, newJackpot[0].Type)
|
||||
items2 = newJackpot[0].Items
|
||||
remainEnergy -= newJackpot[0].Energy
|
||||
}
|
||||
var Item3 []*item.Item
|
||||
if RewardData.RewardNum == 3 {
|
||||
RemainEnergy += 5
|
||||
NewJackpot3 := make([]*gamedata.SevenLoginJackpotData, 0, len(jackpot))
|
||||
var items3 []*item.Item
|
||||
if rewardData.RewardNum == 3 {
|
||||
remainEnergy += 5
|
||||
newJackpot3 := make([]*gamedata.SevenLoginJackpotData, 0, len(jackpot))
|
||||
for _, v := range jackpot {
|
||||
if v.Energy <= RemainEnergy && !GoUtil.InArray(v.Type, LastType) && !GoUtil.InArray(v.Type, ItemType) {
|
||||
NewJackpot3 = append(NewJackpot3, v)
|
||||
if v.Energy <= remainEnergy && !GoUtil.InArray(v.Type, lastType) && !GoUtil.InArray(v.Type, itemType) {
|
||||
newJackpot3 = append(newJackpot3, v)
|
||||
}
|
||||
}
|
||||
if len(NewJackpot3) == 0 {
|
||||
Item3 = []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, int(RemainEnergy))}
|
||||
if len(newJackpot3) == 0 {
|
||||
items3 = []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, int(remainEnergy))}
|
||||
return Reward{
|
||||
Item1: Item1,
|
||||
Item2: Item2,
|
||||
Item3: Item3,
|
||||
}, ItemType
|
||||
Item1: items1,
|
||||
Item2: items2,
|
||||
Item3: items3,
|
||||
}, itemType
|
||||
}
|
||||
sort.Slice(NewJackpot3, func(i, j int) bool {
|
||||
return NewJackpot3[i].Energy > NewJackpot3[j].Energy
|
||||
sort.Slice(newJackpot3, func(i, j int) bool {
|
||||
return newJackpot3[i].Energy > newJackpot3[j].Energy
|
||||
})
|
||||
Item3 = NewJackpot3[0].Items
|
||||
ItemType = append(ItemType, NewJackpot3[0].Type)
|
||||
items3 = newJackpot3[0].Items
|
||||
itemType = append(itemType, newJackpot3[0].Type)
|
||||
}
|
||||
|
||||
return Reward{
|
||||
Item1: Item1,
|
||||
Item2: Item2,
|
||||
Item3: Item3,
|
||||
}, ItemType
|
||||
Item1: items1,
|
||||
Item2: items2,
|
||||
Item3: items3,
|
||||
}, itemType
|
||||
}
|
||||
|
||||
func randMonthReward() map[int]Reward {
|
||||
|
||||
@ -19,6 +19,7 @@ func TestSevenLoginZeroUpdate(t *testing.T) {
|
||||
p1.InitPlayer("3625212")
|
||||
SevenLoginMod := p1.GetSevenLoginMod()
|
||||
SevenLoginMod.WeekResetTime = 0
|
||||
SevenLoginMod.MonthResetTime = 0
|
||||
SevenLoginMod.ZeroUpdate(0, 0, p1.GetOrderFactor())
|
||||
SevenLoginMod.BackData()
|
||||
fmt.Printf("order factor:%v\n", p1.GetOrderFactor())
|
||||
@ -27,4 +28,5 @@ func TestSevenLoginZeroUpdate(t *testing.T) {
|
||||
fmt.Printf("id :%d ; Reward:%v\n", k, v)
|
||||
}
|
||||
t.Logf("SevenLoginMod:%v\n", SevenLoginMod.MonthReward)
|
||||
fmt.Printf("SevenLoginMod:%v\n", SevenLoginMod.MonthReward)
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user