From 9e5e7a3e529aa0c383cdf9b5ccfb65699803676c Mon Sep 17 00:00:00 2001 From: CTD Date: Mon, 15 Sep 2014 16:10:57 +0200 Subject: [PATCH 1/2] Hunger und Segeltalent MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Hungernde Einheiten verlieren nur noch einen Punkt Segeln (ab T2), nicht mehr das halbe Talent. Das sollte die meisten Schiffsunfälle durch vergessene Silber derart abschwächen, das die Schiffe noch aus eigener Kraft zum nächsten Hafen kommen. --- src/kernel/unit.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/kernel/unit.c b/src/kernel/unit.c index 375500f15..b7bd1ab43 100644 --- a/src/kernel/unit.c +++ b/src/kernel/unit.c @@ -1304,7 +1304,12 @@ bool noitem) #ifdef HUNGER_REDUCES_SKILL if (fval(u, UFL_HUNGER)) { - skill = skill / 2; + if (sk == SK_SAILING && skill > 2) { + skill = skill - 1; + } + else { + skill = skill / 2; + } } #endif return skill - bskill; From c937f59536f23cdefe7ee3f1a578627c68af7cc7 Mon Sep 17 00:00:00 2001 From: CTD Date: Thu, 25 Sep 2014 09:54:52 +0200 Subject: [PATCH 2/2] =?UTF-8?q?XML=20Option=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Das Segeln nur 1 Skill Level verliert ist Default und somit an. --- src/kernel/unit.c | 15 ++++++++------- src/settings.h | 3 --- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/src/kernel/unit.c b/src/kernel/unit.c index b7bd1ab43..09c821b70 100644 --- a/src/kernel/unit.c +++ b/src/kernel/unit.c @@ -1280,12 +1280,11 @@ static int att_modification(const unit * u, skill_t sk) return (int)result; } -int -get_modifier(const unit * u, skill_t sk, int level, const region * r, -bool noitem) +int get_modifier(const unit * u, skill_t sk, int level, const region * r, bool noitem) { int bskill = level; int skill = bskill; + int hunger_red_skill = -1; if (r && sk == SK_STEALTH) { plane *pl = rplane(r); @@ -1302,16 +1301,18 @@ bool noitem) } skill = skillmod(u->attribs, u, r, sk, skill, SMF_ALWAYS); -#ifdef HUNGER_REDUCES_SKILL - if (fval(u, UFL_HUNGER)) { - if (sk == SK_SAILING && skill > 2) { + if (hunger_red_skill == -1) { + hunger_red_skill = get_param_int(global.parameters, "rules.hunger.reduces_skill", 2); + } + + if (fval(u, UFL_HUNGER) && hunger_red_skill) { + if (sk == SK_SAILING && skill > 2 && hunger_red_skill == 2) { skill = skill - 1; } else { skill = skill / 2; } } -#endif return skill - bskill; } diff --git a/src/settings.h b/src/settings.h index 552e4c1c9..d682d8119 100644 --- a/src/settings.h +++ b/src/settings.h @@ -29,9 +29,6 @@ #define BATTLE_KILLS_PEASANTS 20 #define PEASANTLUCK 10 -#define HUNGER_REDUCES_SKILL /* Hunger reduziert den Talentwert - auf die Hälfte */ - #define ASTRAL_ITEM_RESTRICTIONS /* keine grossen dinge im astralraum */ #define NEW_DAEMONHUNGER_RULE #define NEW_COMBATSKILLS_RULE