You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
2.0 KiB
76 lines
2.0 KiB
4 months ago
|
package config
|
||
|
|
||
|
var Utils = manageController{}
|
||
|
|
||
|
type manageController struct {
|
||
|
}
|
||
|
|
||
|
func (c *manageController) GetEventsByType(config map[int32]*BehaviourType, id int32) (res []int32) {
|
||
|
data := map[int32][]int32{}
|
||
|
for k, v := range config {
|
||
|
if len(data[k]) == 0 {
|
||
|
data[k] = []int32{}
|
||
|
}
|
||
|
data[k] = append(data[k], v.BehaviourEventId1)
|
||
|
data[k] = append(data[k], v.BehaviourEventId2)
|
||
|
data[k] = append(data[k], v.BehaviourEventId3)
|
||
|
data[k] = append(data[k], v.BehaviourEventId4)
|
||
|
}
|
||
|
|
||
|
return data[id]
|
||
|
}
|
||
|
|
||
|
func (c *manageController) GetEventWeightsByType(config map[int32]*BehaviourType, id int32) (res []int32) {
|
||
|
data := map[int32][]int32{}
|
||
|
for k, v := range config {
|
||
|
if len(data[k]) == 0 {
|
||
|
data[k] = []int32{}
|
||
|
}
|
||
|
data[k] = append(data[k], v.InjuryProbability)
|
||
|
data[k] = append(data[k], v.DistractedProbability)
|
||
|
data[k] = append(data[k], v.SpecialItemProbability)
|
||
|
data[k] = append(data[k], v.OtherProbability)
|
||
|
data[k] = append(data[k], 100-v.InjuryProbability-v.DistractedProbability-v.SpecialItemProbability-v.OtherProbability)
|
||
|
}
|
||
|
|
||
|
return data[id]
|
||
|
}
|
||
|
|
||
|
func (c *manageController) GetIdByGroupIdAndIndex(config map[int32]*BehaviourEvent, id int32, index int32) int32 {
|
||
|
data := map[int32][]int32{}
|
||
|
for _, v := range config {
|
||
|
if len(data[v.GroupId]) == 0 {
|
||
|
data[v.GroupId] = []int32{}
|
||
|
}
|
||
|
data[v.GroupId] = append(data[v.GroupId], v.Id)
|
||
|
}
|
||
|
|
||
|
return data[id][index]
|
||
|
}
|
||
|
|
||
|
func (c *manageController) GetWeightsByGroupId(config map[int32]*BehaviourEvent, id int32) (res []int32) {
|
||
|
data := map[int32][]int32{}
|
||
|
for _, v := range config {
|
||
|
if len(data[v.GroupId]) == 0 {
|
||
|
data[v.GroupId] = []int32{}
|
||
|
}
|
||
|
|
||
|
data[v.GroupId] = append(data[v.GroupId], v.Weight)
|
||
|
}
|
||
|
|
||
|
return data[id]
|
||
|
}
|
||
|
|
||
|
func (c *manageController) Get(config map[int32]*BehaviourEvent, id int32) (res []int32) {
|
||
|
data := map[int32][]int32{}
|
||
|
for _, v := range config {
|
||
|
if len(data[v.GroupId]) == 0 {
|
||
|
data[v.GroupId] = []int32{}
|
||
|
}
|
||
|
|
||
|
data[v.GroupId] = append(data[v.GroupId], v.Weight)
|
||
|
}
|
||
|
|
||
|
return data[id]
|
||
|
}
|