diff options
Diffstat (limited to 'internal/game/core_equip.go')
| -rw-r--r-- | internal/game/core_equip.go | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/internal/game/core_equip.go b/internal/game/core_equip.go new file mode 100644 index 0000000..02b8348 --- /dev/null +++ b/internal/game/core_equip.go @@ -0,0 +1,41 @@ +package game + +import ( + "thehouseoficarus/internal/object" + "thehouseoficarus/internal/player" +) + +func (g *Game) playerEquipBonuses(p *player.Player) object.ItemStats { + var totals object.ItemStats + for _, itemID := range p.Equipment { + def, err := g.ItemStore.Load(itemID) + if err != nil { + continue + } + totals.StabAttack += def.Stats.StabAttack + totals.SlashAttack += def.Stats.SlashAttack + totals.CrushAttack += def.Stats.CrushAttack + totals.ScienceAttack += def.Stats.ScienceAttack + totals.RangedAttack += def.Stats.RangedAttack + totals.StabDefense += def.Stats.StabDefense + totals.SlashDefense += def.Stats.SlashDefense + totals.CrushDefense += def.Stats.CrushDefense + totals.ScienceDefense += def.Stats.ScienceDefense + totals.RangedDefense += def.Stats.RangedDefense + totals.StrengthBonus += def.Stats.StrengthBonus + totals.RangedStrength += def.Stats.RangedStrength + totals.ScienceDamage += def.Stats.ScienceDamage + totals.TechnologyBonus += def.Stats.TechnologyBonus + } + return totals +} + +func (g *Game) playerWeaponSpeed(p *player.Player) float64 { + if itemID, ok := p.Equipment[object.SlotMainHand]; ok { + def, err := g.ItemStore.Load(itemID) + if err == nil && def.Speed > 0 { + return def.Speed + } + } + return 5.0 +} |
