From a72a43c384a21bb93c10bf9dc1f1ea009065280c Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Sun, 2 Oct 2005 15:54:24 +0000 Subject: [PATCH] starting equipment & skills for new factions is read from the equipment.xml file instead of hardcoded. Makes give_starting_equipment a lot smaller and reduces the number of I_* item-constants used in the code. --- src/common/gamecode/economy.c | 1 - src/common/kernel/item.c | 2 + src/common/kernel/race.c | 123 +- src/common/kernel/race.h | 3 +- src/common/kernel/xmlreader.c | 82 +- src/eressea/lua/eressea.cpp | 8 +- src/res/de/strings.xml | 4 +- src/res/en/strings.xml | 4 +- src/res/equipment.xml | 48 + src/res/eressea.xml | 1 + src/res/fr/strings.xml | 4166 ++++++++++++++++----------------- src/res/tutorial.xml | 1 + src/res/vinyambar-wdw.xml | 1 + src/scripts/default.lua | 13 +- src/scripts/eressea.lua | 12 +- src/scripts/wdw-setup.lua | 2 +- 16 files changed, 2301 insertions(+), 2170 deletions(-) diff --git a/src/common/gamecode/economy.c b/src/common/gamecode/economy.c index 57f61a642..4ae5d9e6d 100644 --- a/src/common/gamecode/economy.c +++ b/src/common/gamecode/economy.c @@ -978,7 +978,6 @@ gebaeude_stuerzt_ein(region * r, building * b) { unit *u; int n, i; - direction_t d; int opfer = 0; int road = 0; struct message * msg; diff --git a/src/common/kernel/item.c b/src/common/kernel/item.c index 9caa7fbfb..e409c6fd8 100644 --- a/src/common/kernel/item.c +++ b/src/common/kernel/item.c @@ -394,8 +394,10 @@ static const char * it_aliases[][2] = { { "p12", "truthpotion" }, { "p1", "goliathwater" }, { "p5", "peasantblood" }, + { "p8", "nestwarmth" }, { NULL, NULL }, }; + static const char * it_alias(const char * zname) { diff --git a/src/common/kernel/race.c b/src/common/kernel/race.c index 689821c2e..32b64417d 100644 --- a/src/common/kernel/race.c +++ b/src/common/kernel/race.c @@ -172,41 +172,89 @@ set_show_item(faction *f, item_t i) a->data.v = (void*)olditemtype[i]; } -static item * equipment; -void add_equipment(const item_type * itype, int number) +typedef struct equipment { + const struct race * rc; + item * items; + int skills[MAXSKILLS]; + struct equipment * next; +} equipment; + +static equipment * starting_equipment; + +static equipment * +make_equipment(const struct race * rc) { - if (itype!=NULL) i_change(&equipment, itype, number); + equipment ** eqp = &starting_equipment; + while (*eqp) { + struct equipment * eq = *eqp; + if (eq->rc==rc) break; + eqp = &eq->next; + } + if (*eqp == NULL) { + struct equipment * eq = malloc(sizeof(equipment)); + eq->rc = rc; + eq->next = NULL; + eq->items = NULL; + memset(eq->skills, 0, sizeof(eq->skills)); + *eqp = eq; + } else { + struct equipment * eq = *eqp; + eq->rc = rc; + eq->items = NULL; + } + return *eqp; +} + +void +startup_skill(skill_t sk, int value, const struct race * rc) +{ + if (value>0) { + equipment * eq = make_equipment(rc); + eq->skills[sk] = value; + } +} + +void +startup_equipment(const item_type * itype, int number, const struct race * rc) +{ + if (itype!=NULL && number>0) { + equipment * eq = make_equipment(rc); + i_change(&eq->items, itype, number); + } +} + +void +give_equipment(unit * u, const struct race * rc) +{ + equipment * eq = starting_equipment; + while (eq && eq->rc!=rc) { + eq = eq->next; + } + if (eq) { + skill_t sk; + item * itm; + for (sk=0;sk!=MAXSKILLS;++sk) { + if (eq->skills[sk]>0) { + set_level(u, sk, eq->skills[sk]); + } + } + for (itm=eq->items;itm!=NULL;itm=itm->next) { + i_add(&u->items, i_new(itm->type, itm->number)); + } + } } void give_starting_equipment(struct region *r, struct unit *u) { - item * itm = equipment; - while (itm!=NULL) { - i_add(&u->items, i_new(itm->type, itm->number)); - itm=itm->next; - } + give_equipment(u, NULL); + give_equipment(u, u->race); switch(old_race(u->race)) { - case RC_DWARF: - set_level(u, SK_SWORD, 1); - set_item(u, I_AXE, 1); - set_item(u, I_CHAIN_MAIL, 1); - break; case RC_ELF: - set_item(u, I_FEENSTIEFEL, 1); set_show_item(u->faction, I_FEENSTIEFEL); break; - case RC_ORC: - case RC_URUK: - set_level(u, SK_SPEAR, 4); - set_level(u, SK_SWORD, 4); - set_level(u, SK_CROSSBOW, 4); - set_level(u, SK_LONGBOW, 4); - set_level(u, SK_CATAPULT, 4); - break; case RC_GOBLIN: - set_item(u, I_RING_OF_INVISIBILITY, 1); set_show_item(u->faction, I_RING_OF_INVISIBILITY); scale_number(u, 10); break; @@ -218,34 +266,7 @@ give_starting_equipment(struct region *r, struct unit *u) fset(u, UFL_OWNER); } break; - case RC_TROLL: - set_level(u, SK_BUILDING, 1); - set_level(u, SK_OBSERVATION, 3); - set_item(u, I_STONE, 50); - break; - case RC_DAEMON: - set_level(u, SK_AUSDAUER, 15); - u->hp = unit_max_hp(u); - break; - case RC_INSECT: - /* TODO: Potion-Beschreibung ausgeben */ - i_change(&u->items, oldpotiontype[P_WARMTH]->itype, 9); - break; - case RC_HALFLING: - set_level(u, SK_TRADE, 1); - set_level(u, SK_RIDING, 2); - set_item(u, I_HORSE, 2); - set_item(u, I_WAGON, 1); - set_item(u, I_BALM, 5); - set_item(u, I_SPICES, 5); - set_item(u, I_JEWELERY, 5); - set_item(u, I_MYRRH, 5); - set_item(u, I_OIL, 5); - set_item(u, I_SILK, 5); - set_item(u, I_INCENSE, 5); - break; case RC_CAT: - set_item(u, I_RING_OF_INVISIBILITY, 1); set_show_item(u->faction, I_RING_OF_INVISIBILITY); break; case RC_AQUARIAN: @@ -255,12 +276,12 @@ give_starting_equipment(struct region *r, struct unit *u) u->ship = sh; fset(u, UFL_OWNER); } - set_level(u, SK_SAILING, 1); break; case RC_CENTAUR: rsethorses(r, 250+rand()%51+rand()%51); break; } + u->hp = unit_max_hp(u); } int diff --git a/src/common/kernel/race.h b/src/common/kernel/race.h index d87d43ade..273f1181d 100644 --- a/src/common/kernel/race.h +++ b/src/common/kernel/race.h @@ -181,7 +181,8 @@ extern int read_race_reference(const struct race ** rp, FILE * F); extern const char * raceprefix(const struct unit *u); -extern void add_equipment(const struct item_type * itype, int number); +extern void startup_equipment(const struct item_type * itype, int number, const struct race * rc); +extern void startup_skill(skill_t sk, int value, const struct race * rc); extern void give_starting_equipment(struct region *r, struct unit *u); #ifdef __cplusplus diff --git a/src/common/kernel/xmlreader.c b/src/common/kernel/xmlreader.c index 435713cc8..f59451397 100644 --- a/src/common/kernel/xmlreader.c +++ b/src/common/kernel/xmlreader.c @@ -868,19 +868,11 @@ parse_resources(xmlDocPtr doc) return 0; } -static int -parse_equipment(xmlDocPtr doc) +static void +add_items(xmlNodeSetPtr nsetItems, const race * rc) { - xmlXPathContextPtr xpath = xmlXPathNewContext(doc); - xmlXPathObjectPtr items; - xmlNodeSetPtr nsetItems; - int i; - - /* reading eressea/races/race */ - items = xmlXPathEvalExpression(BAD_CAST "/eressea/equipment/item", xpath); - nsetItems = items->nodesetval; - if (nsetItems!=NULL) { + int i; for (i=0;i!=nsetItems->nodeNr;++i) { xmlNodePtr node = nsetItems->nodeTab[i]; xmlChar * property; @@ -897,11 +889,75 @@ parse_equipment(xmlDocPtr doc) num = atoi((const char*)property); xmlFree(property); } - add_equipment(itype, num); + startup_equipment(itype, num, rc); } } } - xmlXPathFreeObject(items); +} + +static void +add_skills(xmlNodeSetPtr nsetSkills, const race * rc) +{ + if (nsetSkills!=NULL) { + int i; + for (i=0;i!=nsetSkills->nodeNr;++i) { + xmlNodePtr node = nsetSkills->nodeTab[i]; + xmlChar * property; + skill_t sk; + + property = xmlGetProp(node, BAD_CAST "name"); + assert(property!=NULL); + sk = sk_find((const char*)property); + xmlFree(property); + if (sk!=NOSKILL) { + int num = 0; + property = xmlGetProp(node, BAD_CAST "level"); + if (property!=NULL) { + num = atoi((const char*)property); + xmlFree(property); + } + startup_skill(sk, num, rc); + } + } + } +} + +static int +parse_equipment(xmlDocPtr doc) +{ + xmlXPathContextPtr xpath = xmlXPathNewContext(doc); + xmlXPathObjectPtr xpathRaces; + + /* reading eressea/races/race */ + xpathRaces = xmlXPathEvalExpression(BAD_CAST "/eressea/equipment/startup", xpath); + if (xpathRaces->nodesetval) { + xmlNodeSetPtr nsetRaces = xpathRaces->nodesetval; + int i; + + for (i=0;i!=nsetRaces->nodeNr;++i) { + xmlNodePtr node = nsetRaces->nodeTab[i]; + const struct race * rc = NULL; + xmlChar * property = xmlGetProp(node, BAD_CAST "race"); + xmlXPathObjectPtr xpathResult; + + if (property!=NULL) { + rc = rc_find((const char*)property); + assert(rc!=NULL); + } + + xpath->node = node; + xpathResult = xmlXPathEvalExpression(BAD_CAST "item", xpath); + add_items(xpathResult->nodesetval, rc); + xmlXPathFreeObject(xpathResult); + + xpath->node = node; + xpathResult = xmlXPathEvalExpression(BAD_CAST "skill", xpath); + add_skills(xpathResult->nodesetval, rc); + xmlXPathFreeObject(xpathResult); + } + } + + xmlXPathFreeObject(xpathRaces); xmlXPathFreeContext(xpath); return 0; diff --git a/src/eressea/lua/eressea.cpp b/src/eressea/lua/eressea.cpp index 69c288743..db4c798b5 100644 --- a/src/eressea/lua/eressea.cpp +++ b/src/eressea/lua/eressea.cpp @@ -37,11 +37,13 @@ using namespace luabind; static int -lua_addequipment(const char * iname, int number) +lua_addequipment(const char * iname, int number, const char * rcname) { + race * rc = rc_find(rcname); const struct item_type * itype = it_find(iname); + if (rc==NULL && strlen(rcname)>0) return -1; if (itype==NULL) return -1; - add_equipment(itype, number); + startup_equipment(itype, number, rc); return 0; } @@ -226,7 +228,7 @@ bind_eressea(lua_State * L) def("write_summary", &write_summary), def("read_orders", &readorders), def("process_orders", &process_orders), - def("add_equipment", &lua_addequipment), + def("startup_equipment", &lua_addequipment), def("get_turn", &get_turn), def("remove_empty_units", &remove_empty_units), diff --git a/src/res/de/strings.xml b/src/res/de/strings.xml index 30ed68306..4e80ddcdb 100644 --- a/src/res/de/strings.xml +++ b/src/res/de/strings.xml @@ -1799,7 +1799,7 @@ Dumpfbackenbrot - + Nestwärme @@ -1845,7 +1845,7 @@ Dumpfbackenbrote - + Nestwärme diff --git a/src/res/en/strings.xml b/src/res/en/strings.xml index 048119287..57e143984 100644 --- a/src/res/en/strings.xml +++ b/src/res/en/strings.xml @@ -1128,10 +1128,10 @@ duncebuns - + potion of nest warmth - + potions of nest warmth diff --git a/src/res/equipment.xml b/src/res/equipment.xml index 88f57f64c..7e7e8e064 100644 --- a/src/res/equipment.xml +++ b/src/res/equipment.xml @@ -6,5 +6,53 @@ --> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/res/eressea.xml b/src/res/eressea.xml index 61df10495..a6260d7b7 100644 --- a/src/res/eressea.xml +++ b/src/res/eressea.xml @@ -13,6 +13,7 @@ + Game specific diff --git a/src/res/fr/strings.xml b/src/res/fr/strings.xml index 3a200a29c..054a1bfb9 100644 --- a/src/res/fr/strings.xml +++ b/src/res/fr/strings.xml @@ -4,2113 +4,2113 @@ - OPTION [x] - - PASSAGE - - - XEPOTION - - - XEBALLON - - - XELAEN - - - GUERRE - - - PAIX - - - XONTORMIA - - - ALLIANCE - - - ADRESSES - - - RAPPORT - - - BZIP2 - - - ORDINATEUR - - - DEBOGUER - - - RESSOURCES COMMUNES - - - SCORE - - - ARGENT COMMUN - - - STATISTIQUES - - - EXPRESS - - - ZIPPE - - - MODELE - - - MODIFICATIONS - + OPTION [x] + + PASSAGE + + + XEPOTION + + + XEBALLON + + + XELAEN + + + GUERRE + + + PAIX + + + XONTORMIA + + + ALLIANCE + + + ADRESSES + + + RAPPORT + + + BZIP2 + + + ORDINATEUR + + + DEBOGUER + + + RESSOURCES COMMUNES + + + SCORE + + + ARGENT COMMUN + + + STATISTIQUES + + + EXPRESS + + + ZIPPE + + + MODELE + + + MODIFICATIONS + - - INFO - + + INFO + - ship types - - nef - - - chaloupe - - - barge - - - drakkar - - - galère - - - ballon - + ship types + + nef + + + chaloupe + + + barge + + + drakkar + + + galère + + + ballon + - Schiffstypen - - une nef - - - une chaloupe - - - une barge - - - un ballon - - - un drakkar - - - une galère - + Schiffstypen + + une nef + + + une chaloupe + + + une barge + + + un ballon + + + un drakkar + + + une galère + - Terraintypen - - volcan actif - - - couloir - - - désert - - - mur de feu - - - brume - - - forêt - - - glacier - - - prairie - - - vestibule - - - l'enfer - - - colline - - - iceberg - - - maelström - - - montagne - - - océan - - - plaine - - - marais - - - brouillard - - - volcan - - - tempête magique - + Terraintypen + + volcan actif + + + couloir + + + désert + + + mur de feu + + + brume + + + forêt + + + glacier + + + prairie + + + vestibule + + + l'enfer + + + colline + + + iceberg + + + maelström + + + montagne + + + océan + + + plaine + + + marais + + + brouillard + + + volcan + + + tempête magique + - - le volcan %s - - - un %s - - - le désert de %s - - - un %s - - - fog_trail %s - - - la forêt de %s - - - le glacier de %s - - - la prairie de %s - - - le %s - - - %s - - - les collines de %s - - - un %s - - - un %s - - - les montagnes de %s - - - l'%s - - - la plaine de %s - - - les marais de %s - - - %s - - - le volcan de %s - - - une %s - + + le volcan %s + + + un %s + + + le désert de %s + + + un %s + + + fog_trail %s + + + la forêt de %s + + + le glacier de %s + + + la prairie de %s + + + le %s + + + %s + + + les collines de %s + + + un %s + + + un %s + + + les montagnes de %s + + + l'%s + + + la plaine de %s + + + les marais de %s + + + %s + + + le volcan de %s + + + une %s + - - caldera - - - portail - + + caldera + + + portail + - directions - - NO - - - NE - - - Est - - - SE - - - SO - - - Ouest - + directions + + NO + + + NE + + + Est + + + SE + + + SO + + + Ouest + - - ouest - - - nord-ouest - - - nord-est - - - est - - - sud-ouest - - - sud-est - + + ouest + + + nord-ouest + + + nord-est + + + est + + + sud-ouest + + + sud-est + - - une unité inconnue - + + une unité inconnue + - - Messages et Evénements - - - Avertissements et Erreurs - - - Economie et Commerce - - - Ressources et Production - - - Magie et Reliques - - - Déplacements et Voyages - - - Apprentissage et Enseignement - - - Batailles - - - Divers - - - Nouveaux Sorts - + + Messages et Evénements + + + Avertissements et Erreurs + + + Economie et Commerce + + + Ressources et Production + + + Magie et Reliques + + + Déplacements et Voyages + + + Apprentissage et Enseignement + + + Batailles + + + Divers + + + Nouveaux Sorts + - Building Types - - université - - - cromlech sacré - - - caravansérail - - - barrage - - - bâtiment - - - port - - - château illusoire - - - auberge - - - phare - - - donjon - - - mine - - - monument - - - carrière - - - scierie - - - forge - - - écurie - - - cromlech - - - tunnel - + Building Types + + université + + + cromlech sacré + + + caravansérail + + + barrage + + + bâtiment + + + port + + + château illusoire + + + auberge + + + phare + + + donjon + + + mine + + + monument + + + carrière + + + scierie + + + forge + + + écurie + + + cromlech + + + tunnel + - Burgausbaustufen - - palissade - - - comptoir - - - rempart - - - tour - - - château - - - place-forte - - - citadelle - + Burgausbaustufen + + palissade + + + comptoir + + + rempart + + + tour + + + château + + + place-forte + + + citadelle + - Items - - plante - - - fiole - - - fioles - + Items + + plante + + + fiole + + + fioles + - Resourcen - - écu - - - écus - - - point de vie - - - points de vie - - - aura - - - aura - - - aura permanente - - - aura permanente - - - paysan - - - paysans - + Resourcen + + écu + + + écus + + + point de vie + + + points de vie + + + aura + + + aura + + + aura permanente + + + aura permanente + + + paysan + + + paysans + - items - - amande - - - amandes - - - amulette - - - amulettes - - - cristal antimagie - - - cristaux antimagie - - - amulette de chasteté - - - amulettes de chasteté - - - oeil du démon - - - oeil du démon - - - amulette du chaton - - - amulettes du chaton - - - amulette de ténèbres - - - amulettes de ténèbres - - - amulette de rassemblement - - - amulettes de rassemblement - - - amulette de soin - - - amulettes de soin - - - amulette de vérité - - - amulettes de vérité - - - pomme - - - pommes - - - focus - - - foci - - - hache - - - haches - - - arc - - - arcs - - - chariot - - - chariots - - - catapulte - - - catapultes - - - cotte de mailles - - - cottes de mailles - - - gâteau - - - gâteaux - - - arbalète - - - arbalètes - - - dauphin - - - dauphins - - - sang de dragon - - - sang de dragon - - - tête de dragon - - - têtes de dragons - - - trésor de dragon - - - oniroeil - - - oniryeux - - - cheval elfique - - - chevaux elfiques - - - oeil de dragon - - - yeux de dragon - - - bottes elfiques - - - bottes elfiques - - - épée ardente - - - épées ardentes - - - grand arc - - - grands arcs - - - claymore - - - claymores - - - aile du griffon - - - ailes du griffon - - - halebarde - - - halebardes - - - potion de soin - - - potions de soin - - - sac de plantes - - - sacs de plantes - - - cheval - - - chevaux - - - lingot - - - lingots - - - laen - - - laen - - - cotte en laen - - - cottes en laen - - - bouclier en laen - - - boucliers en laen - - - épée en laen - - - épées en laen - - - lance - - - lances - - - stère - - - stères - - - sac magique - - - sacs magiques - - - sac de conservation - - - sacs de conservation - - - mallorn - - - mallorn - - - arc en mallorn - - - arcs en mallorn - - - arbalète en mallorn - - - arbalètes en mallorn - - - lance en mallorn - - - lances en mallorn - - - épieu en mallorn - - - épieux en mallorn - - - bourse - - - cassette - - - returnticket for the grand museum - - - returntickets for the grand museum - - - ticket to the grand museum - - - tickets to the grand museum - - - noix - - - noix - - - pégase - - - pégases - - - homme - - - hommes - - - armure de plates - - - armures de plates - - - carte de presse - - - cartes de presse - - - anneau d'invisibilité - - - anneaux d'invisibilité - - - anneau de pouvoir - - - anneaux de pouvoir - - - anneau de dextérité - - - anneaux de dextérité - - - anneau de régénération - - - anneaux de régénération - - - épée runique - - - épées runiques - - - cotte de mailles rouillée - - - cottes de mailles rouillées - - - bouclier rouillé - - - boucliers rouillés - - - épée rouillée - - - épées rouillées - - - tête de serpent de mer - - - têtes de serpents de mer - - - bouclier - - - boucliers - - - pierre de protection - - - pierres de protection - - - sac de contenance - - - sacs de contenance - - - épieu - - - épieux - - - pierre - - - pierres - - - épée - - - épées - - - pot de bave de crapaud - - - pots de bave de crapaud - - - ceinture de troll - - - ceintures de trolls - - - unité - - - unités - - - potion de compétences - - - potions de compétences - - - cristal astral - - - cristaux astraux - - - graine - - - graines - - - graine de mallorn - - - graines de mallorn - - - feu d'artifice - - - feux d'artifice - - - coeur de pain d'épices - - - coeurs de pain d'épices - + items + + amande + + + amandes + + + amulette + + + amulettes + + + cristal antimagie + + + cristaux antimagie + + + amulette de chasteté + + + amulettes de chasteté + + + oeil du démon + + + oeil du démon + + + amulette du chaton + + + amulettes du chaton + + + amulette de ténèbres + + + amulettes de ténèbres + + + amulette de rassemblement + + + amulettes de rassemblement + + + amulette de soin + + + amulettes de soin + + + amulette de vérité + + + amulettes de vérité + + + pomme + + + pommes + + + focus + + + foci + + + hache + + + haches + + + arc + + + arcs + + + chariot + + + chariots + + + catapulte + + + catapultes + + + cotte de mailles + + + cottes de mailles + + + gâteau + + + gâteaux + + + arbalète + + + arbalètes + + + dauphin + + + dauphins + + + sang de dragon + + + sang de dragon + + + tête de dragon + + + têtes de dragons + + + trésor de dragon + + + oniroeil + + + oniryeux + + + cheval elfique + + + chevaux elfiques + + + oeil de dragon + + + yeux de dragon + + + bottes elfiques + + + bottes elfiques + + + épée ardente + + + épées ardentes + + + grand arc + + + grands arcs + + + claymore + + + claymores + + + aile du griffon + + + ailes du griffon + + + halebarde + + + halebardes + + + potion de soin + + + potions de soin + + + sac de plantes + + + sacs de plantes + + + cheval + + + chevaux + + + lingot + + + lingots + + + laen + + + laen + + + cotte en laen + + + cottes en laen + + + bouclier en laen + + + boucliers en laen + + + épée en laen + + + épées en laen + + + lance + + + lances + + + stère + + + stères + + + sac magique + + + sacs magiques + + + sac de conservation + + + sacs de conservation + + + mallorn + + + mallorn + + + arc en mallorn + + + arcs en mallorn + + + arbalète en mallorn + + + arbalètes en mallorn + + + lance en mallorn + + + lances en mallorn + + + épieu en mallorn + + + épieux en mallorn + + + bourse + + + cassette + + + returnticket for the grand museum + + + returntickets for the grand museum + + + ticket to the grand museum + + + tickets to the grand museum + + + noix + + + noix + + + pégase + + + pégases + + + homme + + + hommes + + + armure de plates + + + armures de plates + + + carte de presse + + + cartes de presse + + + anneau d'invisibilité + + + anneaux d'invisibilité + + + anneau de pouvoir + + + anneaux de pouvoir + + + anneau de dextérité + + + anneaux de dextérité + + + anneau de régénération + + + anneaux de régénération + + + épée runique + + + épées runiques + + + cotte de mailles rouillée + + + cottes de mailles rouillées + + + bouclier rouillé + + + boucliers rouillés + + + épée rouillée + + + épées rouillées + + + tête de serpent de mer + + + têtes de serpents de mer + + + bouclier + + + boucliers + + + pierre de protection + + + pierres de protection + + + sac de contenance + + + sacs de contenance + + + épieu + + + épieux + + + pierre + + + pierres + + + épée + + + épées + + + pot de bave de crapaud + + + pots de bave de crapaud + + + ceinture de troll + + + ceintures de trolls + + + unité + + + unités + + + potion de compétences + + + potions de compétences + + + cristal astral + + + cristaux astraux + + + graine + + + graines + + + graine de mallorn + + + graines de mallorn + + + feu d'artifice + + + feux d'artifice + + + coeur de pain d'épices + + + coeurs de pain d'épices + - luxury goods - - baume - - - épices - - - joyau - - - joyaux - - - myrrhe - - - huile - - - soie - - - encens - - - baume - - - épices - - - myrrhe - - - huile - - - soie - - - encens - + luxury goods + + baume + + + épices + + + joyau + + + joyaux + + + myrrhe + + + huile + + + soie + + + encens + + + baume + + + épices + + + myrrhe + + + huile + + + soie + + + encens + - Spezialitems - - Ceinture des Légendes - - - Ceintures des Légendes - + Spezialitems + + Ceinture des Légendes + + + Ceintures des Légendes + - intranslatables: - - astragale - - - astragales - - - méritoine - - - méritoines - - - oeil de hibou - - - yeux de hibou - - - soie d'araignée - - - soies d'araignée - - - obbadion - - - obbadions - - - cheveux d'elfe - - - cheveux d'elfe - - - ortigal - - - ortigals - - - tubercule de respiplante - - - tubercules de respiplante - - - oreille de morille - - - oreilles de morille - - - hydropousse - - - hydropousses - - - ossiphage - - - ossiphages - - - fleur de souffre - - - fleurs de souffre - - - feuille de Tshaï - - - feuilles de Tshaï - - - bélidane - - - bélidanes - - - racine de mandragore - - - racines de mandragore - - - percepierre - - - percepierres - - - tanemiel - - - tanemiels - - - boralme - - - boralmes - - - ficoïde à cristaux - - - ficoïdes à cristaux - - - blémissure - - - blémissures - - - rose des neiges - - - roses des neiges - - - thé de sept lieues - - - thé de sept lieues - - - breuvage de Goliath - - - breuvage de Goliath - - - élixir de vie - - - élixir de vie - - - vin du travail acharné - - - vin du travail acharné - - - onguent de soin - - - onguents de soin - - - fiole d'essence vitale - - - fioles d'essence vitale - - - huile de cogitation - - - huile de cogitation - - - petit pain rance - - - petits pains rances - - - extrait de canicule - - - extraits de canicule - - - fourrage de l'étalon - - - fourrage de l'étalon - - - vin de folie - - - vin de folie - - - philtre d'amour - - - philtres d'amour - - - sirop de claivoyance - - - sirops de claivoyance - - - elixir d'endurance - - - elixir d'endurance - - - potion de survie - - - potions de survie - + intranslatables: + + astragale + + + astragales + + + méritoine + + + méritoines + + + oeil de hibou + + + yeux de hibou + + + soie d'araignée + + + soies d'araignée + + + obbadion + + + obbadions + + + cheveux d'elfe + + + cheveux d'elfe + + + ortigal + + + ortigals + + + tubercule de respiplante + + + tubercules de respiplante + + + oreille de morille + + + oreilles de morille + + + hydropousse + + + hydropousses + + + ossiphage + + + ossiphages + + + fleur de souffre + + + fleurs de souffre + + + feuille de Tshaï + + + feuilles de Tshaï + + + bélidane + + + bélidanes + + + racine de mandragore + + + racines de mandragore + + + percepierre + + + percepierres + + + tanemiel + + + tanemiels + + + boralme + + + boralmes + + + ficoïde à cristaux + + + ficoïdes à cristaux + + + blémissure + + + blémissures + + + rose des neiges + + + roses des neiges + + + thé de sept lieues + + + thé de sept lieues + + + breuvage de Goliath + + + breuvage de Goliath + + + élixir de vie + + + élixir de vie + + + vin du travail acharné + + + vin du travail acharné + + + onguent de soin + + + onguents de soin + + + fiole d'essence vitale + + + fioles d'essence vitale + + + huile de cogitation + + + huile de cogitation + + + petit pain rance + + + petits pains rances + + + extrait de canicule + + + extraits de canicule + + + fourrage de l'étalon + + + fourrage de l'étalon + + + vin de folie + + + vin de folie + + + philtre d'amour + + + philtres d'amour + + + sirop de claivoyance + + + sirops de claivoyance + + + elixir d'endurance + + + elixir d'endurance + + + potion de survie + + + potions de survie + - Parameters - - AGRESSIF - - - TOUT - - - NOMBRE - - - AURA - - - ARBRES - - - PAYSANS - - - SOUTIEN - - - GUARDE - - - CHATEAU - - - DEFENSIF - - - UNITE - - - ERESSEA - - - FUITE - - - ETRANGER - - - BATIMENT - - - OBJETS - - - DONNER - - - PITIE - - - AIDE - - - DERRIERE - - - APRES - - - CONTROLE - - - PLANTES - - - COMBAT - - - NON - - - SUIVANT - - - FACTION - - - CAMOUFLAGE - - - PAUSE - - - HOMMES - - - PRIVE - - - REGION - - - BATEAU - - - ECUS - - - ROUTES - - - NIVEAU - - - TEMPORAIRE - - - POTIONS - - - POUR - - - AVANT - - - DEVANT - - - SORTS - + Parameters + + AGRESSIF + + + TOUT + + + NOMBRE + + + AURA + + + ARBRES + + + PAYSANS + + + SOUTIEN + + + GUARDE + + + CHATEAU + + + DEFENSIF + + + UNITE + + + ERESSEA + + + FUITE + + + ETRANGER + + + BATIMENT + + + OBJETS + + + DONNER + + + PITIE + + + AIDE + + + DERRIERE + + + APRES + + + CONTROLE + + + PLANTES + + + COMBAT + + + NON + + + SUIVANT + + + FACTION + + + CAMOUFLAGE + + + PAUSE + + + HOMMES + + + PRIVE + + + REGION + + + BATEAU + + + ECUS + + + ROUTES + + + NIVEAU + + + TEMPORAIRE + + + POTIONS + + + POUR + + + AVANT + + + DEVANT + + + SORTS + - Skills - - alchimie - - - armurier - - - arc - - - maçon - - - charron - - - catapulte - - - arbalète - - - divertissement - - - espionnage - - - bucheron - - - herboriste - - - magie - - - mêlée - - - mineur - - - observation - - - hast - - - perrayeur - - - équitation - - - cantonnier - - - navigation - - - charpentier - - - endurance - - - discrétion - - - tactique - - - percepteur - - - commerce - - - dresseur - - - mains-nues - - - fourbisseur - + Skills + + alchimie + + + armurier + + + arc + + + maçon + + + charron + + + catapulte + + + arbalète + + + divertissement + + + espionnage + + + bucheron + + + herboriste + + + magie + + + mêlée + + + mineur + + + observation + + + hast + + + perrayeur + + + équitation + + + cantonnier + + + navigation + + + charpentier + + + endurance + + + discrétion + + + tactique + + + percepteur + + + commerce + + + dresseur + + + mains-nues + + + fourbisseur + - Keywords - - // - - - TRAVAILLER - - - ATTAQUER - - - ANNONCE - - - VOLER - - - ASSIEGER - - - NOMMER - - - UTILISER - - - DECRIRE - - - PRIER - - - ENTRER - - - GUARDER - - - OFFRIR - - - MESSAGE - - - DEFAUT - - - EMAIL - - - FIN - - - CHEVAUCHER - - - SUIVRE - - - CHERCHER - - - GM - - - GROUPER - - - AIDER - - - JIHAD - - - PREPARER - - - ACHETER - - - CONTACTER - - - COMBATTRE - - - ENSEIGNER - - - APPRENDRE - - - FOURNIR - - - LOCAL - - - FAIRE - - - SPHERE - - - OPINION - - - ALLER - - - RECOMMENCER - - - NOMBRE - - - SACRIFIER - - - OPTION - - - PASSWORD - - - PLANTER - - - PIRATERIE - - - PREFIXE - - - RECRUTER - - - RAPPORT - - - RESERVER - - - TRAJET - - - SABOTER - - - TRIER - - - ESPIONNER - - - ABANDONNER - - - SYNONYME - - - CACHER - - - TRANSPORTER - - - TAXER - - - DIVERTIR - - - ORIGINE - - - OUBLIER - - - VENDRE - - - SORTIR - - - INCANTER - - - MONTRER - - - DETRUIRE - - - ACCROITRE - - - METAMORPHOSE - + Keywords + + // + + + TRAVAILLER + + + ATTAQUER + + + ANNONCE + + + VOLER + + + ASSIEGER + + + NOMMER + + + UTILISER + + + DECRIRE + + + PRIER + + + ENTRER + + + GUARDER + + + OFFRIR + + + MESSAGE + + + DEFAUT + + + EMAIL + + + FIN + + + CHEVAUCHER + + + SUIVRE + + + CHERCHER + + + GM + + + GROUPER + + + AIDER + + + JIHAD + + + PREPARER + + + ACHETER + + + CONTACTER + + + COMBATTRE + + + ENSEIGNER + + + APPRENDRE + + + FOURNIR + + + LOCAL + + + FAIRE + + + SPHERE + + + OPINION + + + ALLER + + + RECOMMENCER + + + NOMBRE + + + SACRIFIER + + + OPTION + + + PASSWORD + + + PLANTER + + + PIRATERIE + + + PREFIXE + + + RECRUTER + + + RAPPORT + + + RESERVER + + + TRAJET + + + SABOTER + + + TRIER + + + ESPIONNER + + + ABANDONNER + + + SYNONYME + + + CACHER + + + TRANSPORTER + + + TAXER + + + DIVERTIR + + + ORIGINE + + + OUBLIER + + + VENDRE + + + SORTIR + + + INCANTER + + + MONTRER + + + DETRUIRE + + + ACCROITRE + + + METAMORPHOSE + - - - sangsunicornes - - - sangsunicorne - - - cauchemars - - - cauchemar - - - ombreillards - - - ombreillard - - - draco tenebrae - - - draco tenebrae - - - orques - - - orque - - - nains - - - nain - - - elfes - - - elfe - - - orques - - - orque - - - snotlings - - - snotling - - - gobelins - - - gobelin - - - humains - - - humain - - - trolls - - - troll - - - démons - - - démons - - - insectes - - - insecte - - - hobbits - - - hobbit - - - chats - - - chat - - - atlantes - - - atlante - - - morts-vivants - - - mort-vivant - - - illusions - - - illusion - - - dragonnets - - - dragonnet - - - dragons - - - dragon - - - wyrms - - - wyrm - - - ents - - - ent - - - dragons-chats - - - dragon-chat - - - draconiens - - - draconien - - - spéciaux - - - spécial - - - enchantements - - - enchantement - - - golems de fer - - - golem de fer - - - golems de pierre - - - golem de pierre - - - ombres - - - ombre - - - lémures - - - lémure - - - yétis - - - yéti - - - quauquemaires - - - quauquemaire - - - crapauds - - - crapaud - - - céphalophages - - - céphalophage - - - paysans - - - paysan - - - wargs - - - warg - - - lynx - - - lynx - - - vers des profondeurs - - - ver des profondeurs - - - rats - - - rat - - - dragons chinois - - - dragon chinois - - - loups - - - loup - - - fantômes - - - fantôme - - - chats des rêves - - - chat des rêves - - - chats de l'Enfer - - - chat de l'Enfer - - - tigres - - - tigre - - - dauphins - - - dauphin - - - tortues géantes - - - tortue géante - - - krakens - - - kraken - - - serpents de mer - - - serpent de mer - - - guerriers illusoires - - - guerrier illusoire - - - diablotins - - - diablotin - - - nymphes - - - nymphe - - - licornes - - - licorne - - - hiboux - - - hibou - - - fées - - - fée - - - aigles - - - aigle - - - centaures - - - centaure - - - squelettes - - - squelette - - - liches - - - liche - - - zombies - - - zombie - - - zombies juju - - - zombie juju - - - goules - - - goule - - - spectres - - - spectre - - - fantômes du musée - - - fantôme du musée - - - gnomes - - - gnome - - - modèles - - - modèle - - - métamorphes - - - métamorphe - - + + + sangsunicornes + + + sangsunicorne + + + cauchemars + + + cauchemar + + + ombreillards + + + ombreillard + + + draco tenebrae + + + draco tenebrae + + + orques + + + orque + + + nains + + + nain + + + elfes + + + elfe + + + orques + + + orque + + + snotlings + + + snotling + + + gobelins + + + gobelin + + + humains + + + humain + + + trolls + + + troll + + + démons + + + démons + + + insectes + + + insecte + + + hobbits + + + hobbit + + + chats + + + chat + + + atlantes + + + atlante + + + morts-vivants + + + mort-vivant + + + illusions + + + illusion + + + dragonnets + + + dragonnet + + + dragons + + + dragon + + + wyrms + + + wyrm + + + ents + + + ent + + + dragons-chats + + + dragon-chat + + + draconiens + + + draconien + + + spéciaux + + + spécial + + + enchantements + + + enchantement + + + golems de fer + + + golem de fer + + + golems de pierre + + + golem de pierre + + + ombres + + + ombre + + + lémures + + + lémure + + + yétis + + + yéti + + + quauquemaires + + + quauquemaire + + + crapauds + + + crapaud + + + céphalophages + + + céphalophage + + + paysans + + + paysan + + + wargs + + + warg + + + lynx + + + lynx + + + vers des profondeurs + + + ver des profondeurs + + + rats + + + rat + + + dragons chinois + + + dragon chinois + + + loups + + + loup + + + fantômes + + + fantôme + + + chats des rêves + + + chat des rêves + + + chats de l'Enfer + + + chat de l'Enfer + + + tigres + + + tigre + + + dauphins + + + dauphin + + + tortues géantes + + + tortue géante + + + krakens + + + kraken + + + serpents de mer + + + serpent de mer + + + guerriers illusoires + + + guerrier illusoire + + + diablotins + + + diablotin + + + nymphes + + + nymphe + + + licornes + + + licorne + + + hiboux + + + hibou + + + fées + + + fée + + + aigles + + + aigle + + + centaures + + + centaure + + + squelettes + + + squelette + + + liches + + + liche + + + zombies + + + zombie + + + zombies juju + + + zombie juju + + + goules + + + goule + + + spectres + + + spectre + + + fantômes du musée + + + fantôme du musée + + + gnomes + + + gnome + + + modèles + + + modèle + + + métamorphes + + + métamorphe + + - NR generieren - - Options - - - Niveau - - - Statut Politique - - - Plantes nécessaires - - - en construction - - - de dégâts - - - Votre faction a été éliminée. Nous espérons que vous vous êtes bien amusé malgré tout, et vous encourageons à vous réincrire pour une nouvelle partie. - - TODO: calendar ist noch komplexer - - compétences - - - possessions - - - taille - - - sorts - - - sorts de combat - - - aucun - - - Adresses - - - anonyme - - - attaque - - - défense - - - armure - - - dégâts - + NR generieren + + Options + + + Niveau + + + Statut Politique + + + Plantes nécessaires + + + en construction + + + de dégâts + + + Votre faction a été éliminée. Nous espérons que vous vous êtes bien amusé malgré tout, et vous encourageons à vous réincrire pour une nouvelle partie. + + TODO: calendar ist noch komplexer + + compétences + + + possessions + + + taille + + + sorts + + + sorts de combat + + + aucun + + + Adresses + + + anonyme + + + attaque + + + défense + + + armure + + + dégâts + - Testitem - - baguette - - - baguettes - + Testitem + + baguette + + + baguettes + - Küsten - - côte nord-ouest - - - côte nord-est - - - côte est - - - côte sud-est - - - côte sud-ouest - - - côte ouest - + Küsten + + côte nord-ouest + + + côte nord-est + + + côte est + + + côte sud-est + + + côte sud-ouest + + + côte ouest + - - Aucun ordre reçu pour votre faction ! - + + Aucun ordre reçu pour votre faction ! + diff --git a/src/res/tutorial.xml b/src/res/tutorial.xml index ad1b137dd..3c7d22303 100644 --- a/src/res/tutorial.xml +++ b/src/res/tutorial.xml @@ -14,6 +14,7 @@ + Game specific diff --git a/src/res/vinyambar-wdw.xml b/src/res/vinyambar-wdw.xml index 1a453dfc9..0a6d0d82b 100644 --- a/src/res/vinyambar-wdw.xml +++ b/src/res/vinyambar-wdw.xml @@ -13,6 +13,7 @@ + Game specific diff --git a/src/scripts/default.lua b/src/scripts/default.lua index a853435f4..16678a42a 100644 --- a/src/scripts/default.lua +++ b/src/scripts/default.lua @@ -19,6 +19,12 @@ function write_emails() end function process(orders) + -- initialize starting equipment for new players + startup_equipment("conquesttoken", 1, ""); + startup_equipment("wood", 30, ""); + startup_equipment("stone", 30, ""); + startup_equipment("money", 4200, ""); + file = "" .. get_turn() if read_game(file)~=0 then print("could not read game") @@ -32,13 +38,6 @@ function process(orders) plan_monsters() process_orders() - -- initialize starting equipment for new players - -- probably not necessary, since mapper sets new players, not server - add_equipment("conquesttoken", 1); - add_equipment("wood", 30); - add_equipment("stone", 30); - add_equipment("money", 4200); - -- use newfactions file to place out new players autoseed(basepath .. "/newfactions", true) diff --git a/src/scripts/eressea.lua b/src/scripts/eressea.lua index 6d0a3b217..331b18509 100644 --- a/src/scripts/eressea.lua +++ b/src/scripts/eressea.lua @@ -53,6 +53,12 @@ function write_emails() end function process(orders) + -- initialize starting equipment for new players + startup_equipment("conquesttoken", 1, ""); + startup_equipment("log", 30, ""); + startup_equipment("stone", 30, ""); + startup_equipment("money", 4200, ""); + file = "" .. get_turn() if read_game(file)~=0 then print("could not read game") @@ -70,12 +76,6 @@ function process(orders) end run_scripts() - -- initialize starting equipment for new players - add_equipment("conquesttoken", 1); - add_equipment("log", 30); - add_equipment("stone", 30); - add_equipment("money", 4200); - plan_monsters() process_orders() diff --git a/src/scripts/wdw-setup.lua b/src/scripts/wdw-setup.lua index d31ac7503..c6007e859 100644 --- a/src/scripts/wdw-setup.lua +++ b/src/scripts/wdw-setup.lua @@ -124,7 +124,7 @@ skills = { function wdw_setup() -- initialize starting equipment for new players - -- add_equipment("magicskillboost", 1) + -- startup_equipment("magicskillboost", 1, "") init_positions()