From d44226d452146177561868f7b176502b6e004071 Mon Sep 17 00:00:00 2001 From: Christian Schlittchen Date: Wed, 31 Jan 2001 17:40:53 +0000 Subject: [PATCH] - Neuer Gwyrrd-Zauber --- src/Makefile.include | 2 +- src/common/gamecode/randenc.c | 8 +- src/common/gamecode/spy.c | 34 ++++++- src/common/kernel/curse.c | 30 ++++-- src/common/kernel/curse.h | 5 +- src/common/kernel/race.c | 4 +- src/common/kernel/race.h | 2 +- src/common/kernel/region.c | 4 +- src/common/kernel/spell.c | 81 ++++++++++++--- src/common/kernel/spell.h | 3 +- src/common/kernel/unit.c | 5 +- src/doc/spells_uebersicht.txt | 183 ++++++++++++++++++++++++++++++++++ src/eressea/korrektur.c | 8 +- src/res/messages.de | 5 +- 14 files changed, 336 insertions(+), 38 deletions(-) create mode 100644 src/doc/spells_uebersicht.txt diff --git a/src/Makefile.include b/src/Makefile.include index 4675d3449..984c4bcb7 100644 --- a/src/Makefile.include +++ b/src/Makefile.include @@ -16,7 +16,7 @@ INSTALL = @cp ARFLAGS = cr -CTAGSFLAGS = --langmap=c:.c.h +CTAGSFLAGS = --langmap=c:.c.h --c-types=-m CFLAGS = -I$(ERESSEA) -Wall -Wwrite-strings -Wstrict-prototypes \ -Wpointer-arith -Werror-implicit-function-declaration \ -Wno-char-subscripts \ diff --git a/src/common/gamecode/randenc.c b/src/common/gamecode/randenc.c index 28c013395..cf510f777 100644 --- a/src/common/gamecode/randenc.c +++ b/src/common/gamecode/randenc.c @@ -1,6 +1,6 @@ /* vi: set ts=2: * - * $Id: randenc.c,v 1.3 2001/01/27 19:30:07 enno Exp $ + * $Id: randenc.c,v 1.4 2001/01/31 17:40:49 corwin Exp $ * Eressea PB(E)M host Copyright (C) 1998-2000 * Christian Schlittchen (corwin@amber.kn-bremen.de) * Katja Zedel (katze@felidae.kn-bremen.de) @@ -1303,7 +1303,11 @@ randomevents(void) /* Untote können entstehen */ for (r = regions; r; r = r->next) { - double average = (rpeasants(r)/(PEASANTGROWTH*0.01)/LIFEEXPECTANCY); + double average; + + if(is_cursed(r->attribs, C_HOLYGROUND, 0)) continue; + + average = (rpeasants(r)/(PEASANTGROWTH*0.01)/LIFEEXPECTANCY); /* Chance 0.1% * chaosfactor */ /* nur, wenn Gräber 50% über normal liegen */ diff --git a/src/common/gamecode/spy.c b/src/common/gamecode/spy.c index fa938b61b..73d8a19b5 100644 --- a/src/common/gamecode/spy.c +++ b/src/common/gamecode/spy.c @@ -1,6 +1,6 @@ /* vi: set ts=2: * - * $Id: spy.c,v 1.2 2001/01/26 16:19:39 enno Exp $ + * $Id: spy.c,v 1.3 2001/01/31 17:40:49 corwin Exp $ * Eressea PB(E)M host Copyright (C) 1998-2000 * Christian Schlittchen (corwin@amber.kn-bremen.de) * Katja Zedel (katze@felidae.kn-bremen.de) @@ -410,7 +410,39 @@ sabotage(region * r, unit * u) sink_ship(r, sh, buffer, 1, u); } break; +#if 0 + case P_BUILDING: + if(u->building) { + /* TODO: Gebäude zerstören */ + } else { + building *b = getbuilding(r); + unit *owner; + + if(!b) { + cmistake(u, findorder(u, u->thisorder), 6, MSG_EVENT); + return; + } + owner = buildingowner(r, b); + + if(owner == NULL || eff_skill(u, SK_STEALTH, r) > wahrnehmung(r,owner->faction) { + /* Besser Curse benutzen, einfacher */ + a = a_add(b->attribs, a_new(&at_sabotaged)); + a->data.i = 1+rand()%(eff_skll(u, SK_SPY, r)); + } else if(owner) { /* Ertappt */ + add_message(&u->faction->msgs, + new_message(u->faction, "sabot_building_fail%u:unit", u); + add_message(&r->msgs, + new_message(owner->faction, "sabot_building_detect%u:unit", u); + } else { + } + } + break; +#endif default: cmistake(u, findorder(u, u->thisorder), 9, MSG_EVENT); + return; } + + return; } + diff --git a/src/common/kernel/curse.c b/src/common/kernel/curse.c index 99eaa0048..ad6df1a36 100644 --- a/src/common/kernel/curse.c +++ b/src/common/kernel/curse.c @@ -1,6 +1,6 @@ /* vi: set ts=2: * - * $Id: curse.c,v 1.2 2001/01/26 16:19:39 enno Exp $ + * $Id: curse.c,v 1.3 2001/01/31 17:40:49 corwin Exp $ * Eressea PB(E)M host Copyright (C) 1998-2000 * Christian Schlittchen (corwin@amber.kn-bremen.de) * Katja Zedel (katze@felidae.kn-bremen.de) @@ -550,6 +550,9 @@ create_curse(unit *magician, attrib **ap, curse_t id, int id2, int vigour, if(cursedaten[id].mergeflags & M_VIGOUR){ c->vigour = max(vigour, c->vigour); } + if(cursedaten[id].mergeflags & M_VIGOUR_ADD){ + c->vigour = vigour + c->vigour; + } if(cursedaten[id].mergeflags & M_MEN){ switch (cursedaten[id].typ) { case CURSETYP_UNIT: @@ -717,6 +720,19 @@ cinfo_nocost(void * obj, typ_t typ, curse *c, int self) curseid(c)); return 1; } +/* C_HOLYGROUND */ +static int +cinfo_holyground(void * obj, typ_t typ, curse *c, int self) +{ + unused(typ); + unused(obj); + unused(self); + + assert(typ == TYP_REGION); + sprintf(buf, "Untote schrecken vor dieser Region zurück. (%s)", + curseid(c)); + return 1; +} /* C_GBDREAM, */ static int cinfo_dreamcurse(void * obj, typ_t typ, curse *c, int self) @@ -1232,7 +1248,6 @@ cinfo_riot(void * obj, typ_t typ, curse *c, int self) /* cursedata */ /* ------------------------------------------------------------- */ /* typedef struct cursedata { - * curse_t id; * int typ; * int givemenacting; * int mergeflags; @@ -1475,11 +1490,12 @@ cursedata cursedaten[MAXCURSE] = "auf Ewig stehen.", (cdesc_fun)cinfo_nocost }, - { /* C_FREE_12, */ - CURSETYP_NORM, 0, (NO_MERGE), - "", - "", - NULL + { /* C_HOLYGROUND, */ + CURSETYP_NORM, 0, (M_VIGOUR_ADD), + "Heiliger Boden", + "Verschiedene Naturgeistern sind im Boden der Region gebunden und " + "beschützen diese vor dem der dunklen Magie des lebenden Todes.", + (cdesc_fun)cinfo_holyground }, { /* C_FREE_13, */ CURSETYP_NORM, 0, (NO_MERGE), diff --git a/src/common/kernel/curse.h b/src/common/kernel/curse.h index e1b120bfc..f55f3b265 100644 --- a/src/common/kernel/curse.h +++ b/src/common/kernel/curse.h @@ -1,6 +1,6 @@ /* vi: set ts=2: * - * $Id: curse.h,v 1.2 2001/01/26 16:19:39 enno Exp $ + * $Id: curse.h,v 1.3 2001/01/31 17:40:50 corwin Exp $ * Eressea PB(E)M host Copyright (C) 1998-2000 * Christian Schlittchen (corwin@amber.kn-bremen.de) * Katja Zedel (katze@felidae.kn-bremen.de) @@ -58,7 +58,7 @@ enum { C_FUMBLE, C_RIOT, /*region in Aufruhr */ C_NOCOST, - C_FREE_12, + C_HOLYGROUND, C_FREE_13, C_FREE_14, C_FREE_15, @@ -126,6 +126,7 @@ enum { sich */ #define M_VIGOUR 32 /* das Maximum der beiden Stärken wird die Stärke des neuen Zaubers */ +#define M_VIGOUR_ADD 64 /* Vigour wird addiert */ /* ------------------------------------------------------------- */ /* Allgemeine Zauberwirkungen */ diff --git a/src/common/kernel/race.c b/src/common/kernel/race.c index 848127635..b65fa7472 100644 --- a/src/common/kernel/race.c +++ b/src/common/kernel/race.c @@ -1,6 +1,6 @@ /* vi: set ts=2: * - * $Id: race.c,v 1.2 2001/01/26 16:19:40 enno Exp $ + * $Id: race.c,v 1.3 2001/01/31 17:40:50 corwin Exp $ * Eressea PB(E)M host Copyright (C) 1998-2000 * Christian Schlittchen (corwin@amber.kn-bremen.de) * Katja Zedel (katze@felidae.kn-bremen.de) @@ -1904,7 +1904,7 @@ unit_old_max_hp(unit * u) return h; } -boolean is_undead(unit *u) +boolean is_undead(const unit *u) { return u->race == RC_UNDEAD || u->race == RC_SKELETON || u->race == RC_SKELETON_LORD || u->race == RC_ZOMBIE diff --git a/src/common/kernel/race.h b/src/common/kernel/race.h index f226f3e2d..0990082b9 100644 --- a/src/common/kernel/race.h +++ b/src/common/kernel/race.h @@ -129,7 +129,7 @@ extern struct racedata race[]; void give_starting_equipment(struct region *r, struct unit *u); void give_latestart_bonus(struct region *r, struct unit *u, int b); int unit_old_max_hp(struct unit * u); -boolean is_undead(struct unit *u); +boolean is_undead(const struct unit *u); #define dragon(u) ((u)->race == RC_FIREDRAGON || (u)->race == RC_DRAGON || (u)->race == RC_WYRM || (u)->race == RC_BIRTHDAYDRAGON) #define humanoid(u) (u->race==RC_UNDEAD || u->race==RC_DRACOID || !race[(u)->race].nonplayer) diff --git a/src/common/kernel/region.c b/src/common/kernel/region.c index 6d24e4770..a16039ba7 100644 --- a/src/common/kernel/region.c +++ b/src/common/kernel/region.c @@ -1,6 +1,6 @@ /* vi: set ts=2: * - * $Id: region.c,v 1.3 2001/01/28 08:01:52 enno Exp $ + * $Id: region.c,v 1.4 2001/01/31 17:40:51 corwin Exp $ * Eressea PB(E)M host Copyright (C) 1998-2000 * Christian Schlittchen (corwin@amber.kn-bremen.de) * Katja Zedel (katze@felidae.kn-bremen.de) @@ -29,6 +29,7 @@ #include "item.h" #include "plane.h" #include "region.h" +#include "curse.h" /* util includes */ #include @@ -108,6 +109,7 @@ deathcounts(region * r, int fallen) { attrib * a; if (fallen==0) return; + if (is_cursed(r->attribs, C_HOLYGROUND,0)) return; a = a_find(r->attribs, &at_deathcount); if (!a) a = a_add(&r->attribs, a_new(&at_deathcount)); diff --git a/src/common/kernel/spell.c b/src/common/kernel/spell.c index 00bae462a..7c879918c 100644 --- a/src/common/kernel/spell.c +++ b/src/common/kernel/spell.c @@ -1,6 +1,6 @@ /* vi: set ts=2: * - * $Id: spell.c,v 1.4 2001/01/31 14:32:58 corwin Exp $ + * $Id: spell.c,v 1.5 2001/01/31 17:40:51 corwin Exp $ * Eressea PB(E)M host Copyright (C) 1998-2000 * Christian Schlittchen (corwin@amber.kn-bremen.de) * Katja Zedel (katze@felidae.kn-bremen.de) @@ -1960,6 +1960,39 @@ sp_create_sack_of_conservation(castorder *co) return cast_level; } +/* ------------------------------------------------------------- */ +/* Name: Heiliger Boden + * Stufe: 9 + * Kategorie: perm. Regionszauber + * Gebiet: Gwyrrd + * Wirkung: + * Es entstehen keine Untoten mehr, Untote betreten die Region + * nicht mehr. + * + * ZAUBER "Heiliger Boden" + * Flags: (0) + */ +static int +sp_holyground(castorder *co) +{ + unit *u; + region *r = co->rt; + unit *mage = (unit *)co->magician; + int cast_level = co->level; + int power = co->force; + + create_curse(mage, &r->attribs, C_HOLYGROUND, 0, + power*power, 1, 0, 0); + + set_curseflag(mage->building->attribs, C_HOLYGROUND, 0, CURSE_NOAGE); + + add_message(&r->msgs, new_message(mage->faction, "holyground%u:mage", u)); + + a_removeall(&r->attribs, &at_deathcount); + + return cast_level; +} + /* ------------------------------------------------------------- */ /* Name: Heimstein * Stufe: 7 @@ -1981,17 +2014,17 @@ sp_homestone(castorder *co) region *r = co->rt; unit *mage = (unit *)co->magician; int cast_level = co->level; - int power = co->force; - + int force = co->force; + if(!mage->building || mage->building->type != &bt_castle){ cmistake(mage, strdup(co->order), 197, MSG_MAGIC); return 0; } success = create_curse(mage, &mage->building->attribs, C_MAGICSTONE, 0, - power, 1, 0, 0); + force*force, 1, 0, 0); - if(!success){ /* Es gab schon einen Heimstein */ + if(!success) { cmistake(mage, strdup(co->order), 206, MSG_MAGIC); return 0; } @@ -2003,7 +2036,7 @@ sp_homestone(castorder *co) /* Magieresistenz der Burg erhöht sich um 50% */ create_curse(mage, &mage->building->attribs, C_RESIST_MAGIC, 0, - power, 1, 50, 0); + force*force, 1, 50, 0); set_curseflag(mage->building->attribs, C_RESIST_MAGIC, 0, CURSE_NOAGE); /* melden, 1x pro Partei in der Burg */ @@ -2023,6 +2056,7 @@ sp_homestone(castorder *co) } + /* ------------------------------------------------------------- */ /* Name: Dürre * Stufe: 13 @@ -3040,7 +3074,7 @@ sp_unholypower(castorder *co) int i; int n; - n = dice(cast_level, 10); + n = dice(co->force, 10); for (i = 0; i < pa->length && n > 0; i++) { race_t target_race; @@ -3076,8 +3110,8 @@ sp_unholypower(castorder *co) continue; } - un = createunit(co->rt, u->faction, n, target_race); - scale_number(u, u->number - n); + un = createunit(co->rt, u->faction, 0, target_race); + transfermen(u, un, n); add_message(&co->rt->msgs, new_message(mage->faction, "unholypower_limitedeffect%u:mage%u:target%s:race%i:amount", mage, u, race[u->race].name[n==1?0:1], n)); @@ -6005,7 +6039,7 @@ sp_eternizewall(castorder *co) b = pa->param[0]->data.b; success = create_curse(mage, &b->attribs, C_NOCOST, 0, - power, 1, 0, 0); + power*power, 1, 0, 0); if(!success){ /* ist bereits verzaubert */ cmistake(mage, strdup(co->order), 206, MSG_MAGIC); @@ -7375,13 +7409,30 @@ spell spelldaten[] = {0, 0, 0}}, (spell_f)sp_treewalkexit, patzer }, + + {SPL_HOLYGROUND, "Heiliger Boden", + "Dieses Ritual beschwört verschiedene Naturgeister in den Boden der " + "Region, welche diese fortan bewachen. In einer so gesegneten Region " + "werden niemals wieder die Toten ihre Gräber verlassen, und anderswo " + "entstandene Untote werden sie wann immer möglich meiden.", + NULL, + NULL, + M_DRUIDE, (0), 5, 9, + { + {R_AURA, 80, SPC_FIX}, + {R_PERMAURA, 3, SPC_FIX}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}}, + (spell_f)sp_holyground, patzer + }, {SPL_ARTEFAKT_SACK_OF_CONSERVATION, "Erschaffe einen magischen Kräuterbeutel", - "Der Druide nehme etwas präpäriertes Leder, welches er in einem großen Ritual " - "der Reinigung von allen unreinen Geistern befreie, und binde dann einige kleine " - "Geister der Luft und des Wassers in das Material. Aus dem so vorbereiteten " - "Leder fertige er nun ein kleines Beutelchen, welches in ihm aufbewahrte Kräuter " - "besser zu konservieren vermag.", + "Der Druide nehme etwas präpäriertes Leder, welches er in einem großen " + "Ritual der Reinigung von allen unreinen Geistern befreie, und binde " + "dann einige kleine Geister der Luft und des Wassers in das Material. " + "Aus dem so vorbereiteten Leder fertige er nun ein kleines Beutelchen, " + "welches in ihm aufbewahrte Kräuter besser zu konservieren vermag.", NULL, NULL, M_DRUIDE, (0), 5, 5, diff --git a/src/common/kernel/spell.h b/src/common/kernel/spell.h index 144fd881f..b894d43f9 100644 --- a/src/common/kernel/spell.h +++ b/src/common/kernel/spell.h @@ -1,6 +1,6 @@ /* vi: set ts=2: * - * $Id: spell.h,v 1.4 2001/01/31 14:32:58 corwin Exp $ + * $Id: spell.h,v 1.5 2001/01/31 17:40:51 corwin Exp $ * Eressea PB(E)M host Copyright (C) 1998-2000 * Christian Schlittchen (corwin@amber.kn-bremen.de) * Katja Zedel (katze@felidae.kn-bremen.de) @@ -193,6 +193,7 @@ enum { SPL_ETERNIZEWALL, SPL_PUTTOREST, SPL_UNHOLYPOWER, + SPL_HOLYGROUND, MAXALLSPELLS, NO_SPELL = (spellid_t) -1 }; diff --git a/src/common/kernel/unit.c b/src/common/kernel/unit.c index 0850dc499..bbd75c278 100644 --- a/src/common/kernel/unit.c +++ b/src/common/kernel/unit.c @@ -1,6 +1,6 @@ /* vi: set ts=2: * - * $Id: unit.c,v 1.2 2001/01/26 16:19:40 enno Exp $ + * $Id: unit.c,v 1.3 2001/01/31 17:40:51 corwin Exp $ * Eressea PB(E)M host Copyright (C) 1998-2000 * Christian Schlittchen (corwin@amber.kn-bremen.de) * Katja Zedel (katze@felidae.kn-bremen.de) @@ -622,6 +622,9 @@ can_survive(const unit *u, const region *r) if (get_item(u, I_HORSE) && !(terrain[rterrain(r)].flags & WALK_INTO)) return false; + if(is_undead(u) && is_cursed(r->attribs, C_HOLYGROUND, 0)) + return false; + return true; } return false; diff --git a/src/doc/spells_uebersicht.txt b/src/doc/spells_uebersicht.txt new file mode 100644 index 000000000..8ec6bd1d7 --- /dev/null +++ b/src/doc/spells_uebersicht.txt @@ -0,0 +1,183 @@ +Stufe, Name, Kosten, Auswirkung +Kosten: *L = pro Level, P = Permanente Aura, M = Materialien (zB Holz), + B = Bauern, $ = Silber, H = Hitpoints +(K) = Kampfzauber, (+K) = Prekampfzauber, (K+) = Postkampfzauber + + +Druide/Gwyrrd (38 Sprüche): +--------------------------- + 1 Segen der Erde 1*L Bauern verdienen 1 Silber mehr + 1 Viehheilung 1*L Magier verdient 50$*L + 1 Erschaffe Steingolems 2*L,M Magische Strassen/Burgenbauer + 2 Erschaffe Eisengolems 2*L,M Magische Rüstungsbauer + 2 Hainzauber 2*L,$ Erschafft Bäume + 3 Rostregen 2*L Vernichtet Eisenwaffen + 3 Firuns Fell 2*L Insekten können auf Gletscher + 3 Hagel (K) 1*L verursacht leichten Schaden + 3 Bergwächter 3*L Verhindert Eisenabbau + 4 Magischer Pfad 1*L,M Magische Strasse + 4 Windschild (+K) 2*L behindert Schützen + 4 B... Wasserelementar 1*L Schiffe +1 Bewegung und keine Abdrift + 5 Heilung (K+) 1*L heilt bis zu 11 Personen pro Stufe + 5 Wirbelwind (+K) 15 behindert alle Schützen zu 50% + 5 Astralschutzgeister (+K) 5*L behindert Kampfzauber + 5 E... magischen Kräuterb. 30,1P,M Artefakt + 6 Meditation 2 überträgt Aura + 6 B... einen Erdelementar 25,M Beschädigt alle Gebäude einer Region + 6 B... Sturmelementar 6*L verdoppelt Schiffsbewegung + 6 E... des wahren Sehens 50,$ Artefakt + 6 E... der Unsichtbarkeit 50,$ Artefakt + 7 Heimstein 50,1P verbessert Burg dauerhaft + 7 Wolfsgeheul (+K) 2*L ruft Wölfe für den Kampf + 8 Blick des Basilisken (K) 1*L entfernt Gegner aus Kampf + 8 Starkes Tor und ... (+K) 2*L verbessert Schutz der Burg + 8 Geister bannen 6*L Antimagie + 9 Weg der Bäume 3*L Stufe*5 GE aus Wald in Astralebene + 9 Sog des Lebens 2*L Stufe*5 GE aus Astralebene in Wald + 9 Heiliger Boden 80,3P +10 Erwecke Ents 6*L Erschafft Einheit +10 Vertrauten binden 100,5P Vertrauter +11 Segne Steinkreis 350,5P Wandelt Steinkreis zum gesegneten St. +12 Rindenhaut (+K) 4*L Verbessert Rüstung +13 B... Hitzeelementar 600 halbiert Fruchtbarkeit der Region +14 Nebel der Verwirrung 8*L Bewegung wird zufällig (nur Wald+Ozean) +15 Mahlstrom 200,M Ozeanfeld beschädigt Schiffe schwer +16 T... die Ebene der Hitze 800 stärker als L13, kann Region wandeln + + +Chaos/Draig (27 Sprüche): +------------------------- + 1 Verwünschung 1*L nur Showeffekt + 1 Kleine Flüche 1*L Magier verdient 50$*L + 2 Feuerball (K) 1*L Schaden + 3 Gabe des Chaos 2*L Magicboost + 4 Mächte des Todes 5*L Erschafft Untote + 5 Blutrausch (+K) 5*L,B Verbessert Kampfkraft + 5 Chaosfluch 4*L behindert Zauberer + 6 Rosthauch (K) 2*L zerstört Eisenwaffen + 6 E... des wahren Sehens 50,$ Artefakt + 6 E... der Unsichtbarkeit 50,$ Artefakt + 7 Machtübertragung 2 überträgt Aura + 7 Feuerwand 6*L Wall, macht Schaden + 7 Fluch der Pestilenz 30,B erzeugt Pest + 8 Wahnsinn des Krieges (+K) 3*L,B verwirbelt gegnerische Reihen + 8 Beschwöre Schattendämonen 3*L erzeugt Einheit + 9 E... der Trollstärke 20,1P Artefakt + 9 Astraler Riss 35,M Magier der Region verlieren Aura + 9 Astrales Chaos (+K) 6*L behindert Kampfzauber +10 Feuerteufel 50,M vernichtet Wälder +10 Pentagramm 10*L Antimagie +10 Unheilige Kraft 8*L,M Transformiert Untote +11 Todeswolke 40,H alle Personen der Region verlieren HP +11 Drachenruf 80,M lockt Drachen an +12 Beschwöre Schattenmeister 7*L erzeugt Einheit +12 E... ein Flammenschwert 150,M Artefakt +13 Vertrauten rufen 100,5P Vertrauter +14 Chaossog 150,B nächste Runde Tor zur Astralebene + + +Traum/Illaun (27 Sprüche): +-------------------------- + 1 Traumsenden 1*L nur Showeffekt + 1 Wahrsagen 1*L Magier verdient 50$*L + 1 Schattenritter (+K) 1*L Illusionen, fangen Angriffe ab + 2 Grauen der Schlacht (+K) 1*L verleitet Gegner zur Flucht + 2 Seelenfrieden 3*L,M reduziert deathcount der Region + 3 Traumschlößchen 1*L Illusion einer Burg + 3 Traum der Magie 2 Auratransfer + 3 Gestaltwandlung 1*L Einheit erscheint als andere Rasse + 4 Traumlesen 8 Magier erhält Regionsbericht + 4 Schwere Glieder (+K) 4*L -2 Def, 50% Chance dass keine Att + 5 Wiederbelebung (K+) 1*L holt Tote zurück + 5 Traumbilder analysieren 5*L analysiert Sprüche auf Einheiten + 6 Schlechter Schlaf 18 vermindert Lernrate in einer Region + 6 E... des wahren Sehens 50,$ Artefakt + 6 E... der Unsichtbarkeit 50,$ Artefakt + 7 Schlaf (K) 1*L -2 Def, kein Att, solange bis getroffen + 7 Irrlichter 2*L Bewegung wird zufällig? + 7 Traumdeuten 20 spioniert Einheit aus + 8 Schöne Träume 8*L zeitweilig Bonus auf alle Talente + 8 Traumbilder entwirren 6*L Antimagie + 9 Vertrauten rufen 100,5P Vertrauter +10 Schlechte Träume 9*L zeitweilig -L/4 Talentstufen +11 Tod des Geistes (K) 2*L vermindert Talente, töten bei 0 Tagen +12 Süße Träume 30 Vermehrung wie bei Orks +14 Erschaffe ein Traumauge 10P,M Artefakt +15 Alp 350,5P,M Monster, sucht Opfer => -2 auf Talente +16 Schleier der Verwirrung 7*L mehrere Regionen: Bewegung wird zufällig + + +Barde/Cerddor (33 Sprüche): +--------------------------- + 1 Friedenslied (+K) 2 Magier kann vor Angriff fliehen + 1 Gaukelleien 1*L Magier verdient 50$*L + 2 Lied der Heilung (K+) 1*L heilt Verwundete + 2 Hohes Lied der Gaukelei 2*L Unterhaltungsmaximum zeitweilig doppelt + 3 Regentanz 1*L Bauern verdienen 1 Silber mehr + 3 Gesang der Furcht (K) 1*L Gegner versuchen zu fliehen + 4 Gesang des Werbens 2*L rekrutiert Bauern + 4 Gesang der Verwirrung (+K) 2*L verwirbelt gegnerische Reihen + 4 Plappermaul 10 spioniert Einheit aus + 5 Heldengesang (+K) 2*L Krieger widerstehen einigen Effekten + 5 Gesang des Auratransfers 2 überträgt Aura + 5 G... Lebens analysieren 10 analysiert Zauber auf Einheit + 5 Bannlied (+K) 5*L behindert Kampfzauber + 6 Monster friedlich stimmen 15 verhindert Monsterangriffe + 6 Lied der Verführung 12 Einheit schenkt Magier 50% Besitz + 6 E... des wahren Sehens 50,$ Artefakt + 6 E... der Unsichtbarkeit 50,$ Artefakt + 7 Schaler Wein 4*L,M,$ Opfer vergißt bis 60 Talenttage + 7 Aushorchen 4,$ Magier erhält Regionsbericht + 7 Kriegsgesang (+K) 5*L verbessert Kampfkraft + 8 Gesang der Angst 5*L Malus auf Att und Def + 8 L... Ortes analysieren 3*L analysiert Zauber auf Objekten/Regionen + 8 Lebenslied festigen 5*L Antimagie + 9 Ritual der Aufnahme 3*L,1P*L L Personen können Partei wechseln + 9 Vertrauten rufen 100,5P Vertrauter +10 Mob aufwiegeln 4*L Erzeugt Einheit +10 Gesang des wachen Geistes 2*L verbessert Magieresistenz in Region +11 Gesang der Melancholie 40 kein Unterhaltunssilber verfügbar +11 Miriams flinke Finger 20,1P,$ Artefakt +12 G... schwachen Geistes 2*L vermindert Magieresistenz in Region +12 G... der Friedfertigkeit 20*L verhindert Kämpfe +13 Gesang der Versklavung 40 Opfer wechselt zeitweilig Partei +15 Aufruhr beschwichtigen 30 Löst Mob (L10) auf + + +Astral/Tybied (32 Sprüche): +--------------------------- + 1 Magie analysieren 1*L analysiert Zauber + 1 Schleieraura 1*L verbirgt Ausrüstung einer Einheit + 1 Wunderdoktor 1*L Magier verdient 50$*L + 2 Schutz vor Magie (+K) 3*L behindert Kampfzauber + 2 Astraler Blick 1*L sieht Einheiten in Astralebene + 3 Schutzzauber 5*L verbessert Magieresistenz einer Einheit + 3 Beute bewahren (K+) 1*L vermindert Zerstörung von Gegenständen + 4 Astraler Weg 2*L schiebt (L-3)*15 GE in Astralebene + 4 Astraler Ausgang 2*L schiebt (L-3)*15 GE in Realität + 5 Auratransfer 1 transferiert Aura, auch andere Gebiete + 5 Schockwelle (K) 1*L verhindert nächste Attacke + 5 Astrale Schwächezone 3*L Antimagiezone + 5 E... des wahren Sehens 50,$ Artefakt + 6 Astraler Ruf 2*L zieht (L-3)*15 GE in Astralebene + 6 Ruf der Realität 2*L zieht (L-3)*15 GE in Realität + 6 Stehle Aura 2*L entzieht anderem Magier Aura + 6 Luftschiff 10,M läßt Boot/Langboot fliegen + 6 E... der Unsichtbarkeit 50,$ Artefakt + 7 E... Antimagiekristall 50,$ Item, das Antimagiezone erzeugt + 7 Magiefresser 3*L Antimagie + 8 Runen des Schutzes 20 +20% Magieresistenz bei Burgen/Schiffen + 8 Schild des Fisches (+K) 4*L vermindert Schaden + 9 Beschleunigung (+K) 5*L verdoppelt Attacken + 9 E... einen Ring der Macht 100,$ Artefakt +10 Blick in die Realität 40 sieht Region aus Astralebene +10 E... Negativen Gewichts 30,1P,$ Artefakt +11 Zeitdehnung 5*L Doppelte Bewegung und Angriffe +12 Rüstschild (+K) 4*L verbessert Rüstung +12 Vertrauten rufen 100,5P Vertrauter +13 Belebtes Gestein 10,5P,M Versetzt Burg samt Besatzung +14 Störe Astrale Integrität 140 +15 Opfere Kraft 100 transferiert permanente Aura + + + diff --git a/src/eressea/korrektur.c b/src/eressea/korrektur.c index fe0cc954c..7cc3ccb9c 100644 --- a/src/eressea/korrektur.c +++ b/src/eressea/korrektur.c @@ -1,6 +1,6 @@ /* vi: set ts=2: * - * $Id: korrektur.c,v 1.8 2001/01/31 14:32:59 corwin Exp $ + * $Id: korrektur.c,v 1.9 2001/01/31 17:40:52 corwin Exp $ * Eressea PB(E)M host Copyright (C) 1998-2000 * Christian Schlittchen (corwin@amber.kn-bremen.de) * Katja Zedel (katze@felidae.kn-bremen.de) @@ -998,7 +998,11 @@ show_newspells(void) /* Alle geänderten Zauber in das array newspellids[]. mit SPL_NOSPELL * terminieren */ - spellid_t newspellids[] = { SPL_ETERNIZEWALL, SPL_PUTTOREST, SPL_UNHOLYPOWER, SPL_NOSPELL }; + spellid_t newspellids[] = { SPL_ETERNIZEWALL, + SPL_PUTTOREST, + SPL_UNHOLYPOWER, + SPL_HOLYGROUND, + SPL_NOSPELL }; /* die id's der neuen oder veränderten Sprüche werden in newspellids[] * abgelegt */ diff --git a/src/res/messages.de b/src/res/messages.de index c7c1021e2..16bd6a908 100644 --- a/src/res/messages.de +++ b/src/res/messages.de @@ -1,5 +1,5 @@ # Kommentare sind erlaubt. Endlich. -# $Id: messages.de,v 1.3 2001/01/31 14:32:59 corwin Exp $ +# $Id: messages.de,v 1.4 2001/01/31 17:40:53 corwin Exp $ # Fehlermeldungen: msg_errors;errors:0;de;{string} @@ -279,7 +279,7 @@ error276;errors:0;de;{unit} in {region}: '{command}' - Hier kann man keine Schif error277;errors:0;de;{unit} in {region}: '{command}' - Das kann die Einheit nicht. error278;errors:0;de;{unit} in {region}: '{command}' - Der Name des Gebäudes kann nicht geändert werden. error279;errors:0;de;{unit} in {region}: '{command}' - Die Beschreibung des Gebäudes kann nicht geändert werden. -error280;errors:0;de;{unit} in {region}: '{command}' - Nur Untote können das Ziel dieses Zaubers sein. +error280;errors:0;de;{unit} in {region}: '{command}' - Nur noch nicht gestärkte Untote können das Ziel dieses Zaubers sein. # Meldungen und Ereignisse msg_event;events:0;de;{string} @@ -484,6 +484,7 @@ becomewyrm;magic;2;de;{mage} verwandelt sich in einen Wyrm. puttorest;magic;0;de;{mage} befreit die gequälten Seelen der Toten. unholypower_effect;0;de;{mage} verwandelt {target}. unholypower_effect;0;de;{mage} verwandelt {amount} {race} aus {target}. +holyground;0;de;{mage} beschwört Naturgeister in den Boden der Region. # Kämpfe msg_battle;battle:0;de;{string}