Commit Graph

198 Commits

Author SHA1 Message Date
Enno Rehling ee2363a4d9 use init_order, it is better than the init_tokens+skip_token pattern.
test for new_units.
additional testing for init_order (renamed from init_command)and init_tokens.
fixed a memory access error when kwd==NOKEYWORD.
2014-08-23 06:45:20 +02:00
Enno Rehling cc0b0ad71b added a test for addfaction.
removing struct player, since it is not in use.
2014-08-20 23:42:33 +02:00
Enno Rehling acfe72f24e add a test for get_monsters().
I want to make sure I don't break this in the future.
2014-08-20 07:00:58 +02:00
Enno Rehling 3fde10d9e8 Configurable monster attack chance, default to 40%.
E3 chance to attack is only 10%.
2014-08-19 15:24:30 +02:00
Enno Rehling 59ccf23db6 Repair MAKE, which broke when I changed MAKE TEMP.
You can now also write MAKETEMP as one word, and we treat it that way.
Added unit test coverage for MAKE order parsing.
2014-08-17 14:47:39 +02:00
Enno Rehling 99124f3d6d Merge branch 'master' of https://github.com/eressea/server 2014-08-17 07:37:50 +02:00
Enno Rehling b385bfc4d2 Merge branch 'fixes-891'
Conflicts:
	src/kernel/faction.c
2014-08-17 07:23:07 +02:00
Enno Rehling 138a4c10a0 properly create missing monster faction when spawning dragons.
remove cached monster faction (static).
Conflicts:
	src/kernel/faction.c
2014-08-17 07:14:47 +02:00
Enno Rehling cef068fe9b cut the number of allocations for order-data in half.
started writing a test file for orders.
2014-08-16 23:26:31 +02:00
Enno Rehling 8803a9e9a8 properly create missing monster faction when spawning dragons. 2014-08-16 13:46:34 +02:00
Enno Rehling 90ec28fed3 fix missing monster factions. 2014-08-16 13:33:47 +02:00
Enno Rehling fa52bb4192 pointless assert triggers when new units are created and placed.
spawning dragons was causing this to fail.
2014-08-16 13:19:00 +02:00
Enno Rehling 9587e9f0cd remove unused variables 2014-08-16 12:02:45 +02:00
Enno Rehling 2fd085d1e5 Merge branch 'master' of https://github.com/eressea/server 2014-08-16 11:59:20 +02:00
Enno Rehling c79dd33bfb smarter processing of MAKE TEMP.
the order gets its own keyword. parsing is hard - composite commands are an anti-pattern.
this eliminates a lot of unnecessary mallocs for pushing/poping parser state.
2014-08-16 11:41:19 +02:00
Enno Rehling 41d42fa248 localization of alliance status "ALL".
fix for https://bugs.eressea.de/view.php?id=1993
2014-08-16 03:07:37 +02:00
Enno Rehling 61ebd1d6b7 fix accidental assignment instead of comparison. 2014-08-14 20:08:29 +02:00
Enno Rehling fa0c999d3e Merge branch 'Bug-1525-and-1872' of github.com:CTD1/eressea-server-bugfixing into CTD1-Bug-1525-and-1872 2014-08-14 20:06:14 +02:00
Enno Rehling 158d4f8d4b MSVC: compile cleanly with level 4 warnings 2014-08-14 19:39:45 +02:00
CTD 7dd86959a9 Bewegung durch Region blockieren
Etwas größerer Umbau. Befreundete Wachen erlauben nicht mehr automatisch
die Durchreise.  Es werden sowohl die Befreundeten als auch die
Feindlichen Bewacher in der Region gezählt, und die Differenz mit
rules.guard.guard_number_stop_prob multipliziert. Bei 700 Feindlichen
und keinen freundlichen Wachen ist die Chance dann 100%. Bei 100
Feindlichen und 400 freundlichen ist sie 0.
Zusätzlich gibt rules.guard.castle_stop_prob 10% pro Burgenlevel für den
Burgenbesitzer.
rules.guard.region_type_stop_prob gibt 10% für Regionen mit weniger
Begehbaren Pfaden (Berge und Vulkane) und das doppelte für sehr schwer
passierbare Regionen (Sümpfe und Gletscher).

Für Spiele mit Wahrnehmung (E2) sollten die Werte für:
rules.guard.skill_stop_prob
rules.guard.castle_stop_prob
rules.guard.region_type_stop_prob

auf 5% Angepasst werden.
2014-08-14 12:37:59 +02:00
Enno Rehling ff73358b9c Some tiny errors that slipped through Visual Studio's warnings. 2014-08-14 09:59:33 +02:00
Enno Rehling dafe71f4b8 micro optimizations.
removing a lot of mallocs through strdup  by replacing getcommand calls with get_command, which takes a buffer. only one left.
removing mkname calls with a static buffer for keyword-tokens.
commit the schema file I had lying around.
2014-08-14 09:57:05 +02:00
Enno Rehling 38352ef3bf add the build number to saves.
this should make future debugging sessions easier, telling us what bugs were or were not fixed at the time of an incident.
added a test to make sure data file can be read/written, and at a minimum, sets global data-version.
also clean up test framework a bit, and introduce a helpful macro.
2014-08-14 05:06:36 +02:00
Enno Rehling b6f627a5d8 Merge branch 'Feature-1865' of github.com:CTD1/eressea-server-bugfixing into CTD1-Feature-1865
Conflicts:
	src/economy.c
2014-08-13 19:44:57 +02:00
Enno Rehling 3c2ae7ca93 preview script and logging cleanup
1. all log messages will be terminated with \n, whether the user provided
	it or not.
2. remove a bunch of print() calls from scripts to reduce clutter
3. replace printf calls with log_* calls to reduce clutter
4. add the new release preview script
2014-08-11 12:04:12 +02:00
Enno Rehling 45a16681c4 logic fix for FOLLOW (if we are not following a ship, and cannot see the target unit, then exit). 2014-08-08 18:18:17 +02:00
CTD fe0ff71aa1 E2 fähig gemacht
Der Burgenbesitzer sieht nur noch etwas wenn er auch Leuchtturmbesitzer
ist.
Das geht jetzt auch für E2 ohne region_owner rule.
2014-08-08 17:15:12 +02:00
CTD 90cf6d845f replace strstr
Neu Funktion check_param die überprüft ob ein übergebener Wert in dem
Wert des entsprechenden Parameters steht.
2014-08-08 13:29:26 +02:00
Enno Rehling 8dd4b783b1 fix gcc error 2014-08-08 01:26:35 +02:00
Enno Rehling 3767957caa indentation + whitespace changes 2014-08-08 01:24:12 +02:00
Enno Rehling 1918f56990 indentation + whitespace changes 2014-08-08 01:16:35 +02:00
CTD bf4bda36a2 Bug 1610 FOLGE SCHIFF und andere lange Befehle
FOLGE SCHIFF ist genau wie FOLGE EINHEIT jetzt ein Halblanger Befehl.
Das ist konsequent und entfernt an einigen Stellen Spezialbehandlungen.
2014-08-08 01:14:58 +02:00
CTD f33de38812 Piraterie repariert
Die Piraten sind oftmals einfach in ein falsches (leeres) Ozeanfeld
gesegelt, wenn es irgendwo ein Opfer gab.
2014-08-08 01:14:57 +02:00
CTD 0d0aad593a Abtreiben Unabhänig von Wahrnehmung
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.
2014-08-08 01:14:56 +02:00
CTD 549a4fbe5b Bug 1857 abtreiben trotz leuchtturmüberwachung e2
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.
2014-08-08 01:14:55 +02:00
Enno Rehling 13ba2b8362 Merge pull request #24 from CTD1/Bug-1610
Bug 1610 FOLGE SCHIFF und andere lange Befehle
2014-08-08 01:11:31 +02:00
Enno Rehling 1470b56253 Merge pull request #23 from CTD1/Piraterie
Piraterie repariert
2014-08-08 01:06:49 +02:00
Enno Rehling cad82999d0 Merge pull request #22 from CTD1/Bug-1857
Bug 1857 abtreiben trotz leuchtturmüberwachung e2
2014-08-08 01:00:59 +02:00
Enno Rehling b3a58c6a43 fix tabs 2014-08-08 00:37:51 +02:00
Enno Rehling 500e24d71e Merge pull request #18 from CTD1/Bug-1938
Bug 1938 [E3] Magiepatzer kaputt (auraverlust statt kostensteigerung)!
2014-08-08 00:36:36 +02:00
CTD c49c3af1d9 Bug 1610 FOLGE SCHIFF und andere lange Befehle
FOLGE SCHIFF ist genau wie FOLGE EINHEIT jetzt ein Halblanger Befehl.
Das ist konsequent und entfernt an einigen Stellen Spezialbehandlungen.
2014-08-07 18:53:29 +02:00
CTD 7ac56b3fbf Piraterie repariert
Die Piraten sind oftmals einfach in ein falsches (leeres) Ozeanfeld
gesegelt, wenn es irgendwo ein Opfer gab.
2014-08-07 16:02:47 +02:00
CTD 906dd457fc Abtreiben Unabhänig von Wahrnehmung
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.
2014-08-07 14:37:49 +02:00
CTD 37e0226e5b Bug 1857 abtreiben trotz leuchtturmüberwachung e2
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.
2014-08-07 14:04:03 +02:00
CTD 8b9f344484 Fixing server crash
Mit rules.region_owner_pay_building  ein kann es vorkommen, das wegen
einem leeren Gebäude die größte Burg in der Region gesucht wird. Wenn es
aber keine Burg in der Region gibt, wird building_owner mit NULL
aufgerufen. Das musste abgefangen werden.
2014-08-07 11:24:55 +02:00
Enno Rehling 405c63f447 this old race alias stuff has been dead code for years. 2014-08-06 23:44:47 +02:00
Enno Rehling afd41286b5 config file reading based on game name and install location. 2014-08-03 20:37:05 +02:00
CTD 51356b061c Feature 1865 leere unterhaltspflichtige Gebäude
Gebäude ohne Besitzer werden automatisch vom Regionsbesitzer übernommen
(Die Einheit wird sozusagen der neue Gebäudebesitzer). Betreten dann nur
noch wenn Helfe Bewache vom Regionsbesitzer.
Wichtig:
<param name="rules.region_owners" value="1"/>, ist Voraussetzung,  es
geht also nicht in E2.
Es kann für beliebige Gebäude eingeschaltet werden.
Example config :
<param name="rules.region_owner_pay_building" value="market harbour
lighthouse"/>
2014-08-01 16:13:35 +02:00
CTD 8aa356df75 Bug 1938 [E3] Magiepatzer kaputt (auraverlust statt kostensteigerung)!
Erst Bezahlen, dann Patzer. Sonst werden die Kosten im Falle des
"kleinsten" Patzers noch beim aktuellen Spruch erhöht.
2014-07-28 15:38:39 +02:00
Enno Rehling bd2809a975 removing the core directory (moving to res and scripts).
it's from when open-source Eressea was limited, and we no longer need the separation.
JSON configuration for ship flags.
2014-07-28 14:27:30 +02:00