diff --git a/src/common/attributes/attributes.c b/src/common/attributes/attributes.c index cdd474eb7..da795f288 100644 --- a/src/common/attributes/attributes.c +++ b/src/common/attributes/attributes.c @@ -28,6 +28,7 @@ #include "overrideroads.h" #include "otherfaction.h" #include "racename.h" +#include "ugroup.h" #ifdef AT_OPTION # include "option.h" #endif @@ -63,4 +64,5 @@ init_attributes(void) #ifdef AT_OPTION init_option(); #endif + init_ugroup(); } diff --git a/src/common/kernel/eressea.c b/src/common/kernel/eressea.c index ab99502e4..23c109a5d 100644 --- a/src/common/kernel/eressea.c +++ b/src/common/kernel/eressea.c @@ -203,7 +203,9 @@ const char *keywords[MAXKEYWORDS] = "SORTIEREN", "JIHAD", "GM", - "INFO" + "INFO", + "JOINVERBAND", + "LEAVEVERBAND" }; const char *report_options[MAX_MSG] = diff --git a/src/common/kernel/eressea.h b/src/common/kernel/eressea.h index d23b5fb43..0b8fd8487 100644 --- a/src/common/kernel/eressea.h +++ b/src/common/kernel/eressea.h @@ -412,6 +412,8 @@ enum { K_SETJIHAD, K_GM, /* perform GM commands */ K_INFO, /* set player-info */ + K_JOINUGROUP, + K_LEAVEUGROUP, MAXKEYWORDS, NOKEYWORD = (keyword_t) - 1 }; diff --git a/src/common/kernel/faction.h b/src/common/kernel/faction.h index 55f018683..1a1656c6c 100644 --- a/src/common/kernel/faction.h +++ b/src/common/kernel/faction.h @@ -41,6 +41,7 @@ typedef struct faction { int options; int no_units; int karma; + struct ugroup *ugroups; struct warning * warnings; struct msglevel * msglevels; struct ally *allies; diff --git a/src/res/de/messages.xml b/src/res/de/messages.xml index 8d7cdcf9a..ed25536bf 100644 --- a/src/res/de/messages.xml +++ b/src/res/de/messages.xml @@ -3762,6 +3762,74 @@ + + + + + + + + + "$unit($unit) in $region($region): '$command' - Wie sollen wir uns tarnen?" + + + + + + + + + + + "$unit in $region: '$command' - Eine Einheit kann nur in einem Verband Mitglied sein." + + + + + + + + + + + "$unit in $region: '$command' - Die Einheit ist in keinem Verband." + + + + + + + + + + + "$unit in $region: '$command' - Mit sich selbst kann man keinen Verband bilden." + + + + + + + + + + + "$unit in $region: '$command' - Verbände können nur zwischen Einheiten derselben Partei gebildet werden." + + + + + + + + + + + "$unit in $region: '$command' - Die Einheiten müssen sich im selben Schiff oder Gebäude aufhalten." + + + + diff --git a/src/tools/prototype-advance/battle.py b/src/tools/prototype-advance/battle.py index 3f1d61a70..9652da755 100755 --- a/src/tools/prototype-advance/battle.py +++ b/src/tools/prototype-advance/battle.py @@ -16,15 +16,16 @@ import re from Graph import * class heer: - def __init__(self, rx, ry, f, o): + def __init__(self, rx, ry, f, p, o): self.rx = rx self.ry = ry self.f = f + self.part = p self.o = o self.attacked = [] def toString(self): - return "("+self.f+","+str(self.rx)+","+str(self.ry)+")" + return "("+self.f+"/"+str(self.part)+","+str(self.rx)+","+str(self.ry)+")" def dist(x1, y1, x2, y2): @@ -52,14 +53,11 @@ def is_neighbour(h, r1, r2): return 0 heere = [ - Node(heer(0,-2, 'D', 'A->C:1,-3')), - Node(heer(1,-3, 'D', '')), - Node(heer(1,-2, 'D', '')), - Node(heer(2,-3, 'D', 'A->C:1,-3')), - Node(heer(1,-2, 'C', 'L->D')), - Node(heer(1,-3, 'C', 'A->D:1,-2')), - Node(heer(0, 0, 'A', '')), - Node(heer(0, 0, 'B', 'L->A')) + Node(heer(0,0, 'A', 1, 'A->B:-1,1')), + Node(heer(0,0, 'A', 2, 'A->B:0,1')), + Node(heer(-1,1, 'B', 1, '')), + Node(heer(1,-1, 'B', 1, '')), + Node(heer(0,1, 'B', 1, '')) ] def find_heer_node(x, y, f):