diff --git a/config/template/config.yaml b/config/template/config.yaml index 5926fdfb..b1cb6661 100644 --- a/config/template/config.yaml +++ b/config/template/config.yaml @@ -16,6 +16,11 @@ enableCubeRecipes: true # Enable cubing of flawlesses and tokens chickenScaryAuras: amplifyDamage: false bloodMana: false + decrepify: false + lowerResist: false + fanaticism: false + might: false + conviction: false health: # Healing configuration, all values in % healingPotionAt: 75 diff --git a/internal/config/config.go b/internal/config/config.go index e741a1ea..e9d57fc0 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -93,6 +93,11 @@ type CharacterCfg struct { ChickenScaryAuras struct { AmplifyDamage bool `yaml:"amplifyDamage"` BloodMana bool `yaml:"bloodMana"` + Decrepify bool `yaml:"decrepify"` + LowerResist bool `yaml:"lowerResist"` + Fanaticism bool `yaml:"fanaticism"` + Might bool `yaml:"might"` + Conviction bool `yaml:"conviction"` } Health struct { HealingPotionAt int `yaml:"healingPotionAt"` diff --git a/internal/health/health_manager.go b/internal/health/health_manager.go index fe676491..351fb49a 100644 --- a/internal/health/health_manager.go +++ b/internal/health/health_manager.go @@ -107,9 +107,9 @@ func (hm *Manager) HandleHealthAndMana() error { } } + // Player scary aura check - great for use on hardcore chickenAurasConfig := hm.data.CharacterCfg.ChickenScaryAuras - // Player dangerous aura check - great for use on hardcore if chickenAurasConfig.AmplifyDamage && hm.data.PlayerUnit.States.HasState(state.Amplifydamage) { return fmt.Errorf("%w: Player has amplify damage aura", ErrChicken) } @@ -128,5 +128,36 @@ func (hm *Manager) HandleHealthAndMana() error { } } + if chickenAurasConfig.Decrepify && hm.data.PlayerUnit.States.HasState(state.Decrepify) { + return fmt.Errorf("%w: Player has decrepify aura", ErrChicken) + } + + if chickenAurasConfig.LowerResist && hm.data.PlayerUnit.States.HasState(state.Lowerresist) { + return fmt.Errorf("%w: Player has lower resist aura", ErrChicken) + } + + if chickenAurasConfig.Fanaticism || chickenAurasConfig.Might || chickenAurasConfig.Conviction { + for _, m := range hm.data.Monsters.Enemies() { + var scaryAura string + + if chickenAurasConfig.Fanaticism && m.States.HasState(state.Fanaticism) { + scaryAura = "fanaticism" + } + + if chickenAurasConfig.Might && m.States.HasState(state.Might) { + scaryAura = "might" + } + + if chickenAurasConfig.Conviction && m.States.HasState(state.Conviction) { + scaryAura = "conviction" + } + + // TODO: Distance check? + if scaryAura != "" { + return fmt.Errorf("%w: Mob has %s aura", ErrChicken, scaryAura) + } + } + } + return nil } diff --git a/internal/server/http_server.go b/internal/server/http_server.go index c82b7b12..028a322a 100644 --- a/internal/server/http_server.go +++ b/internal/server/http_server.go @@ -782,6 +782,11 @@ func (s *HttpServer) characterSettings(w http.ResponseWriter, r *http.Request) { // Chicken Scary Auras Config cfg.ChickenScaryAuras.AmplifyDamage = r.Form.Has("chickenAmplifyDamage") cfg.ChickenScaryAuras.BloodMana = r.Form.Has("chickenBloodMana") + cfg.ChickenScaryAuras.Decrepify = r.Form.Has("chickenDecrepify") + cfg.ChickenScaryAuras.LowerResist = r.Form.Has("chickenLowerResist") + cfg.ChickenScaryAuras.Fanaticism = r.Form.Has("chickenFanaticism") + cfg.ChickenScaryAuras.Might = r.Form.Has("chickenMight") + cfg.ChickenScaryAuras.Conviction = r.Form.Has("chickenConviction") // Health config cfg.Health.HealingPotionAt, _ = strconv.Atoi(r.Form.Get("healingPotionAt")) diff --git a/internal/server/templates/character_settings.gohtml b/internal/server/templates/character_settings.gohtml index 3abb61e7..ef0229c3 100644 --- a/internal/server/templates/character_settings.gohtml +++ b/internal/server/templates/character_settings.gohtml @@ -276,6 +276,44 @@ {{ end }} +

Chicken scary aura settings


+
+

Player debuffs


+
+ + + + +
+

Mob buffs


+
+ + + + +
+

Health settings


-

Chicken scary aura settings


-
-
- - -
+

Belt Layout


{{ range $index, $potionType := .Config.Inventory.BeltColumns }}