Edit in skill view (#32)
* added editing to SkillView * added bonus for leiteigenschaft to skill
This commit is contained in:
@@ -191,6 +191,12 @@ func ToFeChar(object *models.Char) *models.FeChar {
|
||||
feC := &models.FeChar{
|
||||
Char: *object,
|
||||
}
|
||||
for idx, fertigkeit := range object.Fertigkeiten {
|
||||
fertigkeit.Bonus = GetSkillBonus(&object.Eigenschaften, &fertigkeit)
|
||||
if fertigkeit.Bonus > 0 {
|
||||
object.Fertigkeiten[idx].Bonus = fertigkeit.Bonus
|
||||
}
|
||||
}
|
||||
skills, innateSkills, categories := splitSkills(object.Fertigkeiten)
|
||||
feC.Fertigkeiten = skills
|
||||
feC.InnateSkills = innateSkills
|
||||
@@ -199,6 +205,32 @@ func ToFeChar(object *models.Char) *models.FeChar {
|
||||
return feC
|
||||
}
|
||||
|
||||
func GetSkillBonus(eigenschaften *[]models.Eigenschaft, skill *models.SkFertigkeit) int {
|
||||
bonus := 0
|
||||
gsmsk := skill.GetSkillByName()
|
||||
if gsmsk.Bonuseigenschaft != "check" {
|
||||
for _, eigenschaft := range *eigenschaften {
|
||||
if eigenschaft.Name == gsmsk.Bonuseigenschaft {
|
||||
if eigenschaft.Value < 6 {
|
||||
bonus = -2
|
||||
break
|
||||
} else if eigenschaft.Value < 21 {
|
||||
bonus = -1
|
||||
break
|
||||
} else if eigenschaft.Value > 81 && eigenschaft.Value < 96 {
|
||||
bonus = 1
|
||||
break
|
||||
} else if eigenschaft.Value >= 96 {
|
||||
bonus = 2
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
skill.Bonus = bonus
|
||||
return bonus
|
||||
}
|
||||
|
||||
func splitSkills(object []models.SkFertigkeit) ([]models.SkFertigkeit, []models.SkFertigkeit, map[string][]models.SkFertigkeit) {
|
||||
var normSkills []models.SkFertigkeit
|
||||
var innateSkills []models.SkFertigkeit
|
||||
|
||||
Reference in New Issue
Block a user