From 37e0226e5bbc3d70fbe9d7a46a4e652dcd4d016a Mon Sep 17 00:00:00 2001 From: CTD Date: Thu, 7 Aug 2014 14:04:03 +0200 Subject: [PATCH 1/2] =?UTF-8?q?Bug=201857=20abtreiben=20trotz=20leuchtturm?= =?UTF-8?q?=C3=BCberwachung=20e2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Leuchttürme verhindern nicht das Abtreiben sondern reduzieren nur die Chance auf 1/3. Das ist für Automatisierung schlecht, daher Reduzieren Leuchttürme das Abtreiben jetzt auf 0. Für E4 oder zukünftige Spiele habe ich das auch gleich konfigurierbar gemacht. rules.lighthous.stormchancedevisor gibt den Wert an durch den die Sturmchance geteilt wird, 0 = kein Abtreiben wenn Leuchtturm in Reichweite. --- src/kernel/move.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/kernel/move.c b/src/kernel/move.c index a46379bd8..e82cf9f52 100644 --- a/src/kernel/move.c +++ b/src/kernel/move.c @@ -1763,9 +1763,15 @@ sail(unit * u, order * ord, bool move_on_land, region_list ** routep) /* storms should be the first thing we do. */ stormchance = stormyness / shipspeed(sh, u); - if (check_leuchtturm(next_point, NULL)) - stormchance /= 3; - + if (check_leuchtturm(next_point, NULL)) { + int param = get_param_int(global.parameters, "rules.lighthous.stormchancedevisor", 0); + if (param > 0) { + stormchance /= param; + } + else { + stormchance = 0; + } + } if (rng_int() % 10000 < stormchance * sh->type->storm && fval(current_point->terrain, SEA_REGION)) { if (!is_cursed(sh->attribs, C_SHIP_NODRIFT, 0)) { From 906dd457fc4b1598cc3174646cdedda42f92dcf3 Mon Sep 17 00:00:00 2001 From: CTD Date: Thu, 7 Aug 2014 14:37:49 +0200 Subject: [PATCH 2/2] =?UTF-8?q?Abtreiben=20Unabh=C3=A4nig=20von=20Wahrnehm?= =?UTF-8?q?ung?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Der Kapitän sollte den Leuchtturm auch sehen, wenn das Besitzer mangels genug Wahrnehmung das Schiff nicht sieht. Sprich der Sturmschutz des Leuchtturm hängt jetzt nicht mehr vom Wahrnehmungstalent der Insassen sondern nur noch von der Größe des Leuchtturms ab, und davon ob der Unterhalt bezahlt wurde. sail() ruft als einzige Funktion check_leuchtturm() ohne Partei auf, daher der einfach Check ob eine Partei übergeben wurde oder nicht. --- src/kernel/config.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/kernel/config.c b/src/kernel/config.c index 8be554c7d..681f8afee 100644 --- a/src/kernel/config.c +++ b/src/kernel/config.c @@ -1577,7 +1577,7 @@ bool check_leuchtturm(region * r, faction * f) if (fval(b, BLD_WORKING) && b->size >= 10) { int maxd = (int)log10(b->size) + 1; - if (skill_enabled(SK_PERCEPTION)) { + if (skill_enabled(SK_PERCEPTION) && f) { region *r2 = b->region; unit *u; int c = 0;