forked from github/server
weiterer schritt in der neugestaltung
funktioniert noch ncht wieder
This commit is contained in:
parent
e6acc66053
commit
525125dd68
|
@ -711,73 +711,6 @@ cinfo_holyground(void * obj, typ_t typ, curse *c, int self)
|
||||||
curseid(c));
|
curseid(c));
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
|
||||||
cinfo_cursed_by_the_gods(void * obj, typ_t typ, curse *c, int self)
|
|
||||||
{
|
|
||||||
region *r;
|
|
||||||
unused(typ);
|
|
||||||
unused(self);
|
|
||||||
|
|
||||||
assert(typ == TYP_REGION);
|
|
||||||
r = (region *)obj;
|
|
||||||
if (rterrain(r)!=T_OCEAN){
|
|
||||||
sprintf(buf,
|
|
||||||
"Diese Region wurde von den Göttern verflucht. Stinkende Nebel ziehen "
|
|
||||||
"über die tote Erde und furchtbare Kreaturen ziehen über das Land. Die Brunnen "
|
|
||||||
"sind vergiftet, und die wenigen essbaren Früchte sind von einem rosa Pilz "
|
|
||||||
"überzogen. Niemand kann hier lange überleben. (%s)", curseid(c));
|
|
||||||
} else {
|
|
||||||
sprintf(buf,
|
|
||||||
"Diese Region wurde von den Göttern verflucht. Das Meer ist eine ekelige Brühe, "
|
|
||||||
"braunschwarze, stinkende Gase steigen aus den unergründlichen Tiefen hervor, und "
|
|
||||||
"untote Seeungeheuer, Schiffe zerfressend und giftige grüne Galle "
|
|
||||||
"geifernd, sind der Schrecken aller Seeleute, die diese Gewässer durchqueren. "
|
|
||||||
"Niemand kann hier lange überleben. (%s)", curseid(c));
|
|
||||||
}
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* C_GBDREAM, */
|
|
||||||
static int
|
|
||||||
cinfo_dreamcurse(void * obj, typ_t typ, curse *c, int self)
|
|
||||||
{
|
|
||||||
unused(self);
|
|
||||||
unused(typ);
|
|
||||||
unused(obj);
|
|
||||||
assert(typ == TYP_REGION);
|
|
||||||
|
|
||||||
if (c->effect > 0){
|
|
||||||
sprintf(buf, "Die Leute haben schöne Träume. (%s)", curseid(c));
|
|
||||||
}else{
|
|
||||||
sprintf(buf, "Albträume plagen die Leute. (%s)", curseid(c));
|
|
||||||
}
|
|
||||||
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* C_AURA */
|
|
||||||
/* erhöht/senkt regeneration und maxaura um effect% */
|
|
||||||
static int
|
|
||||||
cinfo_auraboost(void * obj, typ_t typ, curse *c, int self)
|
|
||||||
{
|
|
||||||
unit *u;
|
|
||||||
unused(typ);
|
|
||||||
assert(typ == TYP_UNIT);
|
|
||||||
u = (unit *)obj;
|
|
||||||
|
|
||||||
if (self){
|
|
||||||
if (c->effect > 100){
|
|
||||||
sprintf(buf, "%s fühlt sich von starken magischen Energien "
|
|
||||||
"durchströmt. (%s)", u->name, curseid(c));
|
|
||||||
}else{
|
|
||||||
sprintf(buf, "%s hat Schwierigkeiten seine magischen Energien "
|
|
||||||
"zu sammeln. (%s)", u->name, curseid(c));
|
|
||||||
}
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
/* C_BLESSEDHARVEST, */
|
/* C_BLESSEDHARVEST, */
|
||||||
static int
|
static int
|
||||||
cinfo_blessedharvest(void * obj, typ_t typ, curse *c, int self)
|
cinfo_blessedharvest(void * obj, typ_t typ, curse *c, int self)
|
||||||
|
@ -817,30 +750,6 @@ cinfo_badlearn(void * obj, typ_t typ, curse *c, int self)
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
/* C_SHIP_NODRIFT */
|
|
||||||
static int
|
|
||||||
cinfo_shipnodrift(void * obj, typ_t typ, curse *c, int self)
|
|
||||||
{
|
|
||||||
ship * sh;
|
|
||||||
unused(typ);
|
|
||||||
|
|
||||||
assert(typ == TYP_SHIP);
|
|
||||||
sh = (ship*)obj;
|
|
||||||
|
|
||||||
if (self){
|
|
||||||
sprintf(buf, "%s ist mit guten Wind gesegnet", sh->name);
|
|
||||||
if (c->duration <= 2){
|
|
||||||
scat(", doch der Zauber beginnt sich bereits aufzulösen");
|
|
||||||
}
|
|
||||||
scat(".");
|
|
||||||
} else {
|
|
||||||
sprintf(buf, "Ein silberner Schimmer umgibt das Schiff.");
|
|
||||||
}
|
|
||||||
scat(" (");
|
|
||||||
scat(itoa36(c->no));
|
|
||||||
scat(")");
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
/* C_DEPRESSION */
|
/* C_DEPRESSION */
|
||||||
static int
|
static int
|
||||||
cinfo_depression(void * obj, typ_t typ, curse *c, int self)
|
cinfo_depression(void * obj, typ_t typ, curse *c, int self)
|
||||||
|
@ -853,49 +762,6 @@ cinfo_depression(void * obj, typ_t typ, curse *c, int self)
|
||||||
sprintf(buf, "Die Bauern sind unzufrieden. (%s)", curseid(c));
|
sprintf(buf, "Die Bauern sind unzufrieden. (%s)", curseid(c));
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
/* C_MAGICSTONE*/
|
|
||||||
static int
|
|
||||||
cinfo_magicstone(void * obj, typ_t typ, curse *c, int self)
|
|
||||||
{
|
|
||||||
building * b;
|
|
||||||
unused(typ);
|
|
||||||
|
|
||||||
assert(typ == TYP_BUILDING);
|
|
||||||
b = (building*)obj;
|
|
||||||
|
|
||||||
if (self){
|
|
||||||
sprintf(buf, "Die Mauern von %s wirken, als wären sie "
|
|
||||||
"aus der Erde gewachsen. (%s)", b->name, curseid(c));
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
/* C_MAGICSTONE*/
|
|
||||||
static int
|
|
||||||
cinfo_magicrunes(void * obj, typ_t typ, curse *c, int self)
|
|
||||||
{
|
|
||||||
|
|
||||||
if (typ == TYP_BUILDING){
|
|
||||||
building * b;
|
|
||||||
b = (building*)obj;
|
|
||||||
if (self){
|
|
||||||
sprintf(buf, "Auf den Mauern von %s erkennt man seltsame Runen. (%s)",
|
|
||||||
b->name, curseid(c));
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
} else if (typ == TYP_SHIP) {
|
|
||||||
ship *sh;
|
|
||||||
sh = (ship*)obj;
|
|
||||||
if (self){
|
|
||||||
sprintf(buf, "Auf den Planken von %s erkennt man seltsame Runen. (%s)",
|
|
||||||
sh->name, curseid(c));
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* C_GENEROUS */
|
/* C_GENEROUS */
|
||||||
static int
|
static int
|
||||||
|
@ -950,47 +816,68 @@ cinfo_regconf(void * obj, typ_t typ, curse *c, int self)
|
||||||
sprintf(buf, "Ein Schleier der Verwirrung liegt über der Region. (%s)",
|
sprintf(buf, "Ein Schleier der Verwirrung liegt über der Region. (%s)",
|
||||||
curseid(c));
|
curseid(c));
|
||||||
|
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
/* C_MAGICSTREET */
|
/* C_RIOT */
|
||||||
static int
|
static int
|
||||||
cinfo_magicstreet(void * obj, typ_t typ, curse *c, int self)
|
cinfo_riot(void * obj, typ_t typ, curse *c, int self)
|
||||||
{
|
{
|
||||||
unused(typ);
|
unused(typ);
|
||||||
unused(self);
|
unused(self);
|
||||||
unused(obj);
|
unused(obj);
|
||||||
|
|
||||||
assert(typ == TYP_REGION);
|
assert(typ == TYP_REGION);
|
||||||
|
sprintf(buf, "Die Region befindet sich in Aufruhr.(%s)", curseid(c));
|
||||||
sprintf(buf, "Die Straßen sind erstaunlich trocken und gut begehbar");
|
|
||||||
/* Warnung vor auflösung!*/
|
|
||||||
if (c->duration <= 2){
|
|
||||||
scat(", doch an manchen Stellen bilden sich wieder die erste Schlammlöcher");
|
|
||||||
}
|
|
||||||
scat(". (");
|
|
||||||
scat(itoa36(c->no));
|
|
||||||
scat(")");
|
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
/* C_SLAVE */
|
|
||||||
|
/* Building */
|
||||||
|
|
||||||
|
/* C_MAGICSTONE*/
|
||||||
static int
|
static int
|
||||||
cinfo_slave(void * obj, typ_t typ, curse *c, int self)
|
cinfo_magicstone(void * obj, typ_t typ, curse *c, int self)
|
||||||
{
|
{
|
||||||
unit *u;
|
building * b;
|
||||||
unused(typ);
|
unused(typ);
|
||||||
|
|
||||||
assert(typ == TYP_UNIT);
|
assert(typ == TYP_BUILDING);
|
||||||
u = (unit *)obj;
|
b = (building*)obj;
|
||||||
|
|
||||||
if (self){
|
if (self){
|
||||||
sprintf(buf, "%s wird noch %d Woche%s unter unserem Bann stehen. (%s)",
|
sprintf(buf, "Die Mauern von %s wirken, als wären sie "
|
||||||
u->name, c->duration, (c->duration == 1)? "":"n", curseid(c));
|
"aus der Erde gewachsen. (%s)", b->name, curseid(c));
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
/* C_MAGICSTONE*/
|
||||||
|
static int
|
||||||
|
cinfo_magicrunes(void * obj, typ_t typ, curse *c, int self)
|
||||||
|
{
|
||||||
|
|
||||||
|
if (typ == TYP_BUILDING){
|
||||||
|
building * b;
|
||||||
|
b = (building*)obj;
|
||||||
|
if (self){
|
||||||
|
sprintf(buf, "Auf den Mauern von %s erkennt man seltsame Runen. (%s)",
|
||||||
|
b->name, curseid(c));
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
} else if (typ == TYP_SHIP) {
|
||||||
|
ship *sh;
|
||||||
|
sh = (ship*)obj;
|
||||||
|
if (self){
|
||||||
|
sprintf(buf, "Auf den Planken von %s erkennt man seltsame Runen. (%s)",
|
||||||
|
sh->name, curseid(c));
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/* C_DISORIENTATION */
|
/* C_DISORIENTATION */
|
||||||
static int
|
static int
|
||||||
cinfo_disorientation(void * obj, typ_t typ, curse *c, int self)
|
cinfo_disorientation(void * obj, typ_t typ, curse *c, int self)
|
||||||
|
@ -1006,245 +893,6 @@ cinfo_disorientation(void * obj, typ_t typ, curse *c, int self)
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
/* C_CALM */
|
|
||||||
static int
|
|
||||||
cinfo_calm(void * obj, typ_t typ, curse *c, int self)
|
|
||||||
{
|
|
||||||
unit *u;
|
|
||||||
const race * rc;
|
|
||||||
faction *f;
|
|
||||||
unused(typ);
|
|
||||||
|
|
||||||
assert(typ == TYP_UNIT);
|
|
||||||
u = (unit *)obj;
|
|
||||||
if (c->magician){
|
|
||||||
rc = c->magician->irace;
|
|
||||||
f = c->magician->faction;
|
|
||||||
if (self) {
|
|
||||||
sprintf(buf, "%s mag %s", u->name, factionname(f));
|
|
||||||
} else {
|
|
||||||
sprintf(buf, "%s scheint %s zu mögen", u->name, LOC(f->locale, rc_name(rc, 1)));
|
|
||||||
}
|
|
||||||
scat(". (");
|
|
||||||
scat(itoa36(c->no));
|
|
||||||
scat(")");
|
|
||||||
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
/* C_SPEED */
|
|
||||||
static int
|
|
||||||
cinfo_speed(void * obj, typ_t typ, curse *c, int self)
|
|
||||||
{
|
|
||||||
unit *u;
|
|
||||||
curse_unit * cu;
|
|
||||||
unused(typ);
|
|
||||||
|
|
||||||
assert(typ == TYP_UNIT);
|
|
||||||
u = (unit *)obj;
|
|
||||||
cu = (curse_unit *)c->data;
|
|
||||||
|
|
||||||
if (self){
|
|
||||||
sprintf(buf, "%d Person%s von %s %s noch %d Woche%s beschleunigt. (%s)",
|
|
||||||
cu->cursedmen, (cu->cursedmen == 1)? "":"en", u->name,
|
|
||||||
(cu->cursedmen == 1)? "ist":"sind", c->duration,
|
|
||||||
(c->duration == 1)? "":"n",
|
|
||||||
curseid(c));
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
/* C_ORC */
|
|
||||||
static int
|
|
||||||
cinfo_orc(void * obj, typ_t typ, curse *c, int self)
|
|
||||||
{
|
|
||||||
unit *u;
|
|
||||||
unused(typ);
|
|
||||||
|
|
||||||
assert(typ == TYP_UNIT);
|
|
||||||
u = (unit *)obj;
|
|
||||||
|
|
||||||
if (self){
|
|
||||||
sprintf(buf, "%s stürzt sich von einem amourösen Abenteuer ins "
|
|
||||||
"nächste. (%s)", u->name, curseid(c));
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* C_KAELTESCHUTZ */
|
|
||||||
static int
|
|
||||||
cinfo_kaelteschutz(void * obj, typ_t typ, curse *c, int self)
|
|
||||||
{
|
|
||||||
unit *u;
|
|
||||||
curse_unit * cu;
|
|
||||||
unused(typ);
|
|
||||||
|
|
||||||
assert(typ == TYP_UNIT);
|
|
||||||
u = (unit *)obj;
|
|
||||||
cu = (curse_unit *)c->data;
|
|
||||||
|
|
||||||
if (self){
|
|
||||||
sprintf(buf, "%d Person%s von %s %s sich vor Kälte geschützt. (%s)",
|
|
||||||
cu->cursedmen, (cu->cursedmen == 1)? "":"en", u->name,
|
|
||||||
(cu->cursedmen == 1)? "fühlt":"fühlen",
|
|
||||||
curseid(c));
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* C_SPARKLE */
|
|
||||||
static int
|
|
||||||
cinfo_sparkle(void * obj, typ_t typ, curse *c, int self)
|
|
||||||
{
|
|
||||||
const char * effects[] = {
|
|
||||||
NULL, /* end grau*/
|
|
||||||
"%s ist im Traum eine Fee erschienen.",
|
|
||||||
"%s wird von bösen Alpträumen geplagt.",
|
|
||||||
NULL, /* end traum */
|
|
||||||
"%s wird von einem glitzernden Funkenregen umgeben.",
|
|
||||||
"Ein schimmernder Lichterkranz umgibt %s.",
|
|
||||||
NULL, /* end tybied */
|
|
||||||
"Eine Melodie erklingt, und %s tanzt bis spät in die Nacht hinein.",
|
|
||||||
"%s findet eine kleine Flöte, die eine wundersame Melodie spielt.",
|
|
||||||
"Die Frauen des nahegelegenen Dorfes bewundern %s verstohlen.",
|
|
||||||
"Eine Gruppe vorbeiziehender Bergarbeiter rufen %s eindeutig Zweideutiges nach.",
|
|
||||||
NULL, /* end cerrdor */
|
|
||||||
"%s bekommt von einer Schlange einen Apfel angeboten.",
|
|
||||||
"Ein Einhorn berührt %s mit seinem Horn und verschwindet kurz darauf im Unterholz.",
|
|
||||||
"Vogelzwitschern begleitet %s auf all seinen Wegen.",
|
|
||||||
"Leuchtende Blumen erblühen rund um das Lager von %s.",
|
|
||||||
NULL, /* end gwyrrd */
|
|
||||||
"Über %s zieht eine Gruppe Geier ihre Kreise.",
|
|
||||||
"Der Kopf von %s hat sich in einen grinsenden Totenschädel verwandelt.",
|
|
||||||
"Ratten folgen %s auf Schritt und Tritt.",
|
|
||||||
"Pestbeulen befallen den Körper von %s.",
|
|
||||||
"Eine dunkle Fee erscheint %s im Schlaf. Sie ist von schauriger Schönheit.",
|
|
||||||
"Fäulnisgeruch dringt %s aus allen Körperöffnungen.",
|
|
||||||
NULL, /* end draig */
|
|
||||||
};
|
|
||||||
int m, begin=0, end=0;
|
|
||||||
unit *u;
|
|
||||||
unused(typ);
|
|
||||||
|
|
||||||
assert(typ == TYP_UNIT);
|
|
||||||
u = (unit *)obj;
|
|
||||||
|
|
||||||
if(!c->magician || !c->magician->faction) return 0;
|
|
||||||
|
|
||||||
for(m=0;m!=c->magician->faction->magiegebiet;++m) {
|
|
||||||
while (effects[end]!=NULL) ++end;
|
|
||||||
begin = end+1;
|
|
||||||
end = begin;
|
|
||||||
}
|
|
||||||
|
|
||||||
while (effects[end]!=NULL) ++end;
|
|
||||||
if (end==begin) return 0;
|
|
||||||
else sprintf(buf, effects[begin + c->effect % (end-begin)], u->name);
|
|
||||||
scat(" (");
|
|
||||||
scat(itoa36(c->no));
|
|
||||||
scat(")");
|
|
||||||
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* C_STRENGTH */
|
|
||||||
static int
|
|
||||||
cinfo_strength(void * obj, typ_t typ, curse *c, int self)
|
|
||||||
{
|
|
||||||
unused(c);
|
|
||||||
unused(typ);
|
|
||||||
|
|
||||||
assert(typ == TYP_UNIT);
|
|
||||||
unused(obj);
|
|
||||||
|
|
||||||
if (self){
|
|
||||||
sprintf(buf, "Die Leute strotzen nur so vor Kraft. (%s)",
|
|
||||||
curseid(c));
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
/* C_ALLSKILLS */
|
|
||||||
static int
|
|
||||||
cinfo_allskills(void * obj, typ_t typ, curse *c, int self)
|
|
||||||
{
|
|
||||||
unused(obj);
|
|
||||||
unused(typ);
|
|
||||||
unused(c);
|
|
||||||
|
|
||||||
assert(typ == TYP_UNIT);
|
|
||||||
|
|
||||||
if (self){
|
|
||||||
sprintf(buf, "Wird von einem Alp geritten. (%s)", curseid(c));
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
/* C_SKILL */
|
|
||||||
static int
|
|
||||||
cinfo_skill(void * obj, typ_t typ, curse *c, int self)
|
|
||||||
{
|
|
||||||
unit *u = (unit *)obj;
|
|
||||||
int sk = (int)c->data;
|
|
||||||
|
|
||||||
unused(typ);
|
|
||||||
|
|
||||||
if (self){
|
|
||||||
sprintf(buf, "%s ist in %s ungewöhnlich ungeschickt. (%s)", u->name,
|
|
||||||
skillname((skill_t)sk, u->faction->locale), curseid(c));
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
/* C_ITEMCLOAK */
|
|
||||||
static int
|
|
||||||
cinfo_itemcloak(void * obj, typ_t typ, curse *c, int self)
|
|
||||||
{
|
|
||||||
unit *u;
|
|
||||||
unused(typ);
|
|
||||||
|
|
||||||
assert(typ == TYP_UNIT);
|
|
||||||
u = (unit *)obj;
|
|
||||||
|
|
||||||
if (self) {
|
|
||||||
sprintf(buf, "Die Ausrüstung von %s scheint unsichtbar. (%s)",
|
|
||||||
u->name, curseid(c));
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
|
||||||
cinfo_fumble(void * obj, typ_t typ, curse *c, int self)
|
|
||||||
{
|
|
||||||
unit * u = (unit*)obj;
|
|
||||||
unused(typ);
|
|
||||||
|
|
||||||
assert(typ == TYP_UNIT);
|
|
||||||
|
|
||||||
if (self){
|
|
||||||
sprintf(buf, "%s kann sich kaum konzentrieren.i (%s)",
|
|
||||||
u->name, curseid(c));
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
/* C_RIOT */
|
|
||||||
static int
|
|
||||||
cinfo_riot(void * obj, typ_t typ, curse *c, int self)
|
|
||||||
{
|
|
||||||
unused(typ);
|
|
||||||
unused(self);
|
|
||||||
unused(obj);
|
|
||||||
|
|
||||||
assert(typ == TYP_REGION);
|
|
||||||
sprintf(buf, "Die Region befindet sich in Aufruhr.(%s)", curseid(c));
|
|
||||||
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
read_skill(FILE * F, curse * c)
|
read_skill(FILE * F, curse * c)
|
||||||
|
|
|
@ -0,0 +1,125 @@
|
||||||
|
/* vi: set ts=2:
|
||||||
|
*
|
||||||
|
* Eressea PB(E)M host Copyright (C) 1998-2000
|
||||||
|
* Christian Schlittchen (corwin@amber.kn-bremen.de)
|
||||||
|
* Katja Zedel (katze@felidae.kn-bremen.de)
|
||||||
|
* Henning Peters (faroul@beyond.kn-bremen.de)
|
||||||
|
* Enno Rehling (enno@eressea-pbem.de)
|
||||||
|
* Ingo Wilken (Ingo.Wilken@informatik.uni-oldenburg.de)
|
||||||
|
*
|
||||||
|
* This program may not be used, modified or distributed without
|
||||||
|
* prior permission by the authors of Eressea.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <config.h>
|
||||||
|
#include "eressea.h"
|
||||||
|
#include "regioncurse.h"
|
||||||
|
|
||||||
|
/* kernel includes */
|
||||||
|
#include "message.h"
|
||||||
|
#include "nrmessage.h"
|
||||||
|
#include "objtypes.h"
|
||||||
|
#include "curse.h"
|
||||||
|
|
||||||
|
/* util includes */
|
||||||
|
#include <message.h>
|
||||||
|
|
||||||
|
/* libc includes */
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <assert.h>
|
||||||
|
|
||||||
|
|
||||||
|
static int
|
||||||
|
cinfo_region(const locale * lang, void * obj, typ_t typ, curse *c, int self)
|
||||||
|
{
|
||||||
|
message * msg;
|
||||||
|
|
||||||
|
unused(typ);
|
||||||
|
unused(self);
|
||||||
|
unused(obj);
|
||||||
|
|
||||||
|
assert(typ == TYP_REGION);
|
||||||
|
|
||||||
|
msg = msg_message(mkname("curseinfo", c->type->cname), "id", c->no);
|
||||||
|
nr_render(msg, lang, buf, sizeof(buf), NULL);
|
||||||
|
msg_release(msg);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* CurseInfo mit Spezialabfragen */
|
||||||
|
|
||||||
|
static int
|
||||||
|
cinfo_cursed_by_the_gods(void * obj, typ_t typ, curse *c, int self)
|
||||||
|
{
|
||||||
|
region *r;
|
||||||
|
message * msg;
|
||||||
|
|
||||||
|
unused(typ);
|
||||||
|
unused(self);
|
||||||
|
|
||||||
|
assert(typ == TYP_REGION);
|
||||||
|
r = (region *)obj;
|
||||||
|
if (rterrain(r)!=T_OCEAN){
|
||||||
|
msg = msg_message("curseinfo::godcurse", "id", c->no);
|
||||||
|
sprintf(buf,
|
||||||
|
"Diese Region wurde von den Göttern verflucht. Stinkende Nebel ziehen "
|
||||||
|
"über die tote Erde und furchtbare Kreaturen ziehen über das Land. Die Brunnen "
|
||||||
|
"sind vergiftet, und die wenigen essbaren Früchte sind von einem rosa Pilz "
|
||||||
|
"überzogen. Niemand kann hier lange überleben. (%s)", curseid(c));
|
||||||
|
} else {
|
||||||
|
msg = msg_message("curseinfo::godcurseocean", "id", c->no);
|
||||||
|
sprintf(buf,
|
||||||
|
"Diese Region wurde von den Göttern verflucht. Das Meer ist eine ekelige Brühe, "
|
||||||
|
"braunschwarze, stinkende Gase steigen aus den unergründlichen Tiefen hervor, und "
|
||||||
|
"untote Seeungeheuer, Schiffe zerfressend und giftige grüne Galle "
|
||||||
|
"geifernd, sind der Schrecken aller Seeleute, die diese Gewässer durchqueren. "
|
||||||
|
"Niemand kann hier lange überleben. (%s)", curseid(c));
|
||||||
|
}
|
||||||
|
nr_render(msg, lang, buf, sizeof(buf), NULL);
|
||||||
|
msg_release(msg);
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
/* C_GBDREAM, */
|
||||||
|
static int
|
||||||
|
cinfo_dreamcurse(void * obj, typ_t typ, curse *c, int self)
|
||||||
|
{
|
||||||
|
unused(self);
|
||||||
|
unused(typ);
|
||||||
|
unused(obj);
|
||||||
|
assert(typ == TYP_REGION);
|
||||||
|
|
||||||
|
if (c->effect > 0){
|
||||||
|
msg = msg_message("curseinfo::gooddream", "id", c->no);
|
||||||
|
sprintf(buf, "Die Leute haben schöne Träume. (%s)", curseid(c));
|
||||||
|
}else{
|
||||||
|
msg = msg_message("curseinfo::baddream", "id", c->no);
|
||||||
|
sprintf(buf, "Albträume plagen die Leute. (%s)", curseid(c));
|
||||||
|
}
|
||||||
|
nr_render(msg, lang, buf, sizeof(buf), NULL);
|
||||||
|
msg_release(msg);
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
/* C_MAGICSTREET */
|
||||||
|
static int
|
||||||
|
cinfo_magicstreet(void * obj, typ_t typ, curse *c, int self)
|
||||||
|
{
|
||||||
|
unused(typ);
|
||||||
|
unused(self);
|
||||||
|
unused(obj);
|
||||||
|
|
||||||
|
assert(typ == TYP_REGION);
|
||||||
|
|
||||||
|
sprintf(buf, "Die Straßen sind erstaunlich trocken und gut begehbar");
|
||||||
|
/* Warnung vor auflösung!*/
|
||||||
|
if (c->duration <= 2){
|
||||||
|
scat(", doch an manchen Stellen bilden sich wieder die erste Schlammlöcher");
|
||||||
|
}
|
||||||
|
scat(". (");
|
||||||
|
scat(itoa36(c->no));
|
||||||
|
scat(")");
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
/* vi: set ts=2:
|
||||||
|
*
|
||||||
|
* Eressea PB(E)M host Copyright (C) 1998-2000
|
||||||
|
* Christian Schlittchen (corwin@amber.kn-bremen.de)
|
||||||
|
* Katja Zedel (katze@felidae.kn-bremen.de)
|
||||||
|
* Henning Peters (faroul@beyond.kn-bremen.de)
|
||||||
|
* Enno Rehling (enno@eressea-pbem.de)
|
||||||
|
* Ingo Wilken (Ingo.Wilken@informatik.uni-oldenburg.de)
|
||||||
|
*
|
||||||
|
* This program may not be used, modified or distributed without
|
||||||
|
* prior permission by the authors of Eressea.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _RCURSE_H
|
||||||
|
#define _RCURSE_H
|
||||||
|
|
||||||
|
/*
|
||||||
|
static int cinfo_region(const locale * lang, void * obj, typ_t typ, curse *c, int self);
|
||||||
|
*/
|
||||||
|
|
||||||
|
#endif /* _RCURSE_H */
|
|
@ -0,0 +1,100 @@
|
||||||
|
/* vi: set ts=2:
|
||||||
|
*
|
||||||
|
* Eressea PB(E)M host Copyright (C) 1998-2000
|
||||||
|
* Christian Schlittchen (corwin@amber.kn-bremen.de)
|
||||||
|
* Katja Zedel (katze@felidae.kn-bremen.de)
|
||||||
|
* Henning Peters (faroul@beyond.kn-bremen.de)
|
||||||
|
* Enno Rehling (enno@eressea-pbem.de)
|
||||||
|
* Ingo Wilken (Ingo.Wilken@informatik.uni-oldenburg.de)
|
||||||
|
*
|
||||||
|
* This program may not be used, modified or distributed without
|
||||||
|
* prior permission by the authors of Eressea.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <config.h>
|
||||||
|
#include "eressea.h"
|
||||||
|
#include "regioncurse.h"
|
||||||
|
|
||||||
|
/* kernel includes */
|
||||||
|
#include "message.h"
|
||||||
|
#include "nrmessage.h"
|
||||||
|
#include "objtypes.h"
|
||||||
|
#include "curse.h"
|
||||||
|
|
||||||
|
/* util includes */
|
||||||
|
#include <message.h>
|
||||||
|
|
||||||
|
/* libc includes */
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <assert.h>
|
||||||
|
|
||||||
|
|
||||||
|
static int
|
||||||
|
cinfo_ship(const locale * lang, void * obj, typ_t typ, curse *c, int self)
|
||||||
|
{
|
||||||
|
message * msg;
|
||||||
|
ship * sh;
|
||||||
|
|
||||||
|
unused(typ);
|
||||||
|
|
||||||
|
assert(typ == TYP_SHIP);
|
||||||
|
sh = (ship*)obj;
|
||||||
|
|
||||||
|
if (self){
|
||||||
|
msg = msg_message(mkname("curseinfo", c->type->cname), "id", c->no);
|
||||||
|
} else {
|
||||||
|
msg = msg_message(mkname("curseinfo", "shipunknown"), "id", c->no);
|
||||||
|
}
|
||||||
|
nr_render(msg, lang, buf, sizeof(buf), NULL);
|
||||||
|
msg_release(msg);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
cinfo_ship_onlyowner(const locale * lang, void * obj, typ_t typ, curse *c, int self)
|
||||||
|
{
|
||||||
|
message * msg;
|
||||||
|
ship * sh;
|
||||||
|
|
||||||
|
unused(typ);
|
||||||
|
|
||||||
|
assert(typ == TYP_SHIP);
|
||||||
|
sh = (ship*)obj;
|
||||||
|
|
||||||
|
if (self){
|
||||||
|
msg = msg_message(mkname("curseinfo", c->type->cname), "id", c->no);
|
||||||
|
nr_render(msg, lang, buf, sizeof(buf), NULL);
|
||||||
|
msg_release(msg);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* CurseInfo mit Spezialabfragen */
|
||||||
|
|
||||||
|
/* C_SHIP_NODRIFT */
|
||||||
|
static int
|
||||||
|
cinfo_shipnodrift(void * obj, typ_t typ, curse *c, int self)
|
||||||
|
{
|
||||||
|
ship * sh;
|
||||||
|
unused(typ);
|
||||||
|
|
||||||
|
assert(typ == TYP_SHIP);
|
||||||
|
sh = (ship*)obj;
|
||||||
|
|
||||||
|
if (self){
|
||||||
|
sprintf(buf, "%s ist mit guten Wind gesegnet", sh->name);
|
||||||
|
if (c->duration <= 2){
|
||||||
|
scat(", doch der Zauber beginnt sich bereits aufzulösen");
|
||||||
|
}
|
||||||
|
scat(".");
|
||||||
|
} else {
|
||||||
|
sprintf(buf, "Ein silberner Schimmer umgibt das Schiff.");
|
||||||
|
}
|
||||||
|
scat(" (");
|
||||||
|
scat(itoa36(c->no));
|
||||||
|
scat(")");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,337 @@
|
||||||
|
/* vi: set ts=2:
|
||||||
|
*
|
||||||
|
* Eressea PB(E)M host Copyright (C) 1998-2000
|
||||||
|
* Christian Schlittchen (corwin@amber.kn-bremen.de)
|
||||||
|
* Katja Zedel (katze@felidae.kn-bremen.de)
|
||||||
|
* Henning Peters (faroul@beyond.kn-bremen.de)
|
||||||
|
* Enno Rehling (enno@eressea-pbem.de)
|
||||||
|
* Ingo Wilken (Ingo.Wilken@informatik.uni-oldenburg.de)
|
||||||
|
*
|
||||||
|
* This program may not be used, modified or distributed without
|
||||||
|
* prior permission by the authors of Eressea.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <config.h>
|
||||||
|
#include "eressea.h"
|
||||||
|
|
||||||
|
/* kernel includes */
|
||||||
|
#include "message.h"
|
||||||
|
#include "nrmessage.h"
|
||||||
|
#include "objtypes.h"
|
||||||
|
#include "curse.h"
|
||||||
|
|
||||||
|
/* util includes */
|
||||||
|
#include <message.h>
|
||||||
|
|
||||||
|
/* libc includes */
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <assert.h>
|
||||||
|
|
||||||
|
static int
|
||||||
|
cinfo_unit(const locale * lang, void * obj, typ_t typ, curse *c, int self)
|
||||||
|
{
|
||||||
|
message * msg;
|
||||||
|
|
||||||
|
unused(typ);
|
||||||
|
unused(self);
|
||||||
|
unused(obj);
|
||||||
|
|
||||||
|
assert(typ == TYP_UNIT);
|
||||||
|
|
||||||
|
msg = msg_message(mkname("curseinfo", c->type->cname), "id", c->no);
|
||||||
|
nr_render(msg, lang, buf, sizeof(buf), NULL);
|
||||||
|
msg_release(msg);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
cinfo_unit_onlyowner(const locale * lang, void * obj, typ_t typ, curse *c, int self)
|
||||||
|
{
|
||||||
|
message * msg;
|
||||||
|
unit *u;
|
||||||
|
|
||||||
|
unused(typ);
|
||||||
|
|
||||||
|
assert(typ == TYP_UNIT);
|
||||||
|
u = (unit *)obj;
|
||||||
|
|
||||||
|
if (self){
|
||||||
|
msg = msg_message(mkname("curseinfo", c->type->cname), "id", c->no);
|
||||||
|
nr_render(msg, lang, buf, sizeof(buf), NULL);
|
||||||
|
msg_release(msg);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* CurseInfo mit Spezialabfragen */
|
||||||
|
|
||||||
|
/* C_AURA */
|
||||||
|
/* erhöht/senkt regeneration und maxaura um effect% */
|
||||||
|
static int
|
||||||
|
cinfo_auraboost(void * obj, typ_t typ, curse *c, int self)
|
||||||
|
{
|
||||||
|
unit *u;
|
||||||
|
unused(typ);
|
||||||
|
assert(typ == TYP_UNIT);
|
||||||
|
u = (unit *)obj;
|
||||||
|
|
||||||
|
if (self){
|
||||||
|
if (c->effect > 100){
|
||||||
|
sprintf(buf, "%s fühlt sich von starken magischen Energien "
|
||||||
|
"durchströmt. (%s)", u->name, curseid(c));
|
||||||
|
}else{
|
||||||
|
sprintf(buf, "%s hat Schwierigkeiten seine magischen Energien "
|
||||||
|
"zu sammeln. (%s)", u->name, curseid(c));
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* C_SLAVE */
|
||||||
|
static int
|
||||||
|
cinfo_slave(void * obj, typ_t typ, curse *c, int self)
|
||||||
|
{
|
||||||
|
unit *u;
|
||||||
|
unused(typ);
|
||||||
|
|
||||||
|
assert(typ == TYP_UNIT);
|
||||||
|
u = (unit *)obj;
|
||||||
|
|
||||||
|
if (self){
|
||||||
|
sprintf(buf, "%s wird noch %d Woche%s unter unserem Bann stehen. (%s)",
|
||||||
|
u->name, c->duration, (c->duration == 1)? "":"n", curseid(c));
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* C_CALM */
|
||||||
|
static int
|
||||||
|
cinfo_calm(void * obj, typ_t typ, curse *c, int self)
|
||||||
|
{
|
||||||
|
unit *u;
|
||||||
|
const race * rc;
|
||||||
|
faction *f;
|
||||||
|
unused(typ);
|
||||||
|
|
||||||
|
assert(typ == TYP_UNIT);
|
||||||
|
u = (unit *)obj;
|
||||||
|
if (c->magician){
|
||||||
|
rc = c->magician->irace;
|
||||||
|
f = c->magician->faction;
|
||||||
|
if (self) {
|
||||||
|
sprintf(buf, "%s mag %s", u->name, factionname(f));
|
||||||
|
} else {
|
||||||
|
sprintf(buf, "%s scheint %s zu mögen", u->name, LOC(f->locale, rc_name(rc, 1)));
|
||||||
|
}
|
||||||
|
scat(". (");
|
||||||
|
scat(itoa36(c->no));
|
||||||
|
scat(")");
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
/* C_SPEED */
|
||||||
|
static int
|
||||||
|
cinfo_speed(void * obj, typ_t typ, curse *c, int self)
|
||||||
|
{
|
||||||
|
unit *u;
|
||||||
|
curse_unit * cu;
|
||||||
|
unused(typ);
|
||||||
|
|
||||||
|
assert(typ == TYP_UNIT);
|
||||||
|
u = (unit *)obj;
|
||||||
|
cu = (curse_unit *)c->data;
|
||||||
|
|
||||||
|
if (self){
|
||||||
|
sprintf(buf, "%d Person%s von %s %s noch %d Woche%s beschleunigt. (%s)",
|
||||||
|
cu->cursedmen, (cu->cursedmen == 1)? "":"en", u->name,
|
||||||
|
(cu->cursedmen == 1)? "ist":"sind", c->duration,
|
||||||
|
(c->duration == 1)? "":"n",
|
||||||
|
curseid(c));
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
/* C_ORC */
|
||||||
|
static int
|
||||||
|
cinfo_orc(void * obj, typ_t typ, curse *c, int self)
|
||||||
|
{
|
||||||
|
unit *u;
|
||||||
|
unused(typ);
|
||||||
|
|
||||||
|
assert(typ == TYP_UNIT);
|
||||||
|
u = (unit *)obj;
|
||||||
|
|
||||||
|
if (self){
|
||||||
|
sprintf(buf, "%s stürzt sich von einem amourösen Abenteuer ins "
|
||||||
|
"nächste. (%s)", u->name, curseid(c));
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* C_KAELTESCHUTZ */
|
||||||
|
static int
|
||||||
|
cinfo_kaelteschutz(void * obj, typ_t typ, curse *c, int self)
|
||||||
|
{
|
||||||
|
unit *u;
|
||||||
|
curse_unit * cu;
|
||||||
|
unused(typ);
|
||||||
|
|
||||||
|
assert(typ == TYP_UNIT);
|
||||||
|
u = (unit *)obj;
|
||||||
|
cu = (curse_unit *)c->data;
|
||||||
|
|
||||||
|
if (self){
|
||||||
|
sprintf(buf, "%d Person%s von %s %s sich vor Kälte geschützt. (%s)",
|
||||||
|
cu->cursedmen, (cu->cursedmen == 1)? "":"en", u->name,
|
||||||
|
(cu->cursedmen == 1)? "fühlt":"fühlen",
|
||||||
|
curseid(c));
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* C_SPARKLE */
|
||||||
|
static int
|
||||||
|
cinfo_sparkle(void * obj, typ_t typ, curse *c, int self)
|
||||||
|
{
|
||||||
|
const char * effects[] = {
|
||||||
|
NULL, /* end grau*/
|
||||||
|
"%s ist im Traum eine Fee erschienen.",
|
||||||
|
"%s wird von bösen Alpträumen geplagt.",
|
||||||
|
NULL, /* end traum */
|
||||||
|
"%s wird von einem glitzernden Funkenregen umgeben.",
|
||||||
|
"Ein schimmernder Lichterkranz umgibt %s.",
|
||||||
|
NULL, /* end tybied */
|
||||||
|
"Eine Melodie erklingt, und %s tanzt bis spät in die Nacht hinein.",
|
||||||
|
"%s findet eine kleine Flöte, die eine wundersame Melodie spielt.",
|
||||||
|
"Die Frauen des nahegelegenen Dorfes bewundern %s verstohlen.",
|
||||||
|
"Eine Gruppe vorbeiziehender Bergarbeiter rufen %s eindeutig Zweideutiges nach.",
|
||||||
|
NULL, /* end cerrdor */
|
||||||
|
"%s bekommt von einer Schlange einen Apfel angeboten.",
|
||||||
|
"Ein Einhorn berührt %s mit seinem Horn und verschwindet kurz darauf im Unterholz.",
|
||||||
|
"Vogelzwitschern begleitet %s auf all seinen Wegen.",
|
||||||
|
"Leuchtende Blumen erblühen rund um das Lager von %s.",
|
||||||
|
NULL, /* end gwyrrd */
|
||||||
|
"Über %s zieht eine Gruppe Geier ihre Kreise.",
|
||||||
|
"Der Kopf von %s hat sich in einen grinsenden Totenschädel verwandelt.",
|
||||||
|
"Ratten folgen %s auf Schritt und Tritt.",
|
||||||
|
"Pestbeulen befallen den Körper von %s.",
|
||||||
|
"Eine dunkle Fee erscheint %s im Schlaf. Sie ist von schauriger Schönheit.",
|
||||||
|
"Fäulnisgeruch dringt %s aus allen Körperöffnungen.",
|
||||||
|
NULL, /* end draig */
|
||||||
|
};
|
||||||
|
int m, begin=0, end=0;
|
||||||
|
unit *u;
|
||||||
|
unused(typ);
|
||||||
|
|
||||||
|
assert(typ == TYP_UNIT);
|
||||||
|
u = (unit *)obj;
|
||||||
|
|
||||||
|
if(!c->magician || !c->magician->faction) return 0;
|
||||||
|
|
||||||
|
for(m=0;m!=c->magician->faction->magiegebiet;++m) {
|
||||||
|
while (effects[end]!=NULL) ++end;
|
||||||
|
begin = end+1;
|
||||||
|
end = begin;
|
||||||
|
}
|
||||||
|
|
||||||
|
while (effects[end]!=NULL) ++end;
|
||||||
|
if (end==begin) return 0;
|
||||||
|
else sprintf(buf, effects[begin + c->effect % (end-begin)], u->name);
|
||||||
|
scat(" (");
|
||||||
|
scat(itoa36(c->no));
|
||||||
|
scat(")");
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* C_STRENGTH */
|
||||||
|
static int
|
||||||
|
cinfo_strength(void * obj, typ_t typ, curse *c, int self)
|
||||||
|
{
|
||||||
|
unused(c);
|
||||||
|
unused(typ);
|
||||||
|
|
||||||
|
assert(typ == TYP_UNIT);
|
||||||
|
unused(obj);
|
||||||
|
|
||||||
|
if (self){
|
||||||
|
sprintf(buf, "Die Leute strotzen nur so vor Kraft. (%s)",
|
||||||
|
curseid(c));
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
/* C_ALLSKILLS */
|
||||||
|
static int
|
||||||
|
cinfo_allskills(void * obj, typ_t typ, curse *c, int self)
|
||||||
|
{
|
||||||
|
unused(obj);
|
||||||
|
unused(typ);
|
||||||
|
unused(c);
|
||||||
|
|
||||||
|
assert(typ == TYP_UNIT);
|
||||||
|
|
||||||
|
if (self){
|
||||||
|
sprintf(buf, "Wird von einem Alp geritten. (%s)", curseid(c));
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
/* C_SKILL */
|
||||||
|
static int
|
||||||
|
cinfo_skill(void * obj, typ_t typ, curse *c, int self)
|
||||||
|
{
|
||||||
|
unit *u = (unit *)obj;
|
||||||
|
int sk = (int)c->data;
|
||||||
|
|
||||||
|
unused(typ);
|
||||||
|
|
||||||
|
if (self){
|
||||||
|
sprintf(buf, "%s ist in %s ungewöhnlich ungeschickt. (%s)", u->name,
|
||||||
|
skillname((skill_t)sk, u->faction->locale), curseid(c));
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
/* C_ITEMCLOAK */
|
||||||
|
static int
|
||||||
|
cinfo_itemcloak(void * obj, typ_t typ, curse *c, int self)
|
||||||
|
{
|
||||||
|
unit *u;
|
||||||
|
unused(typ);
|
||||||
|
|
||||||
|
assert(typ == TYP_UNIT);
|
||||||
|
u = (unit *)obj;
|
||||||
|
|
||||||
|
if (self) {
|
||||||
|
sprintf(buf, "Die Ausrüstung von %s scheint unsichtbar. (%s)",
|
||||||
|
u->name, curseid(c));
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
cinfo_fumble(void * obj, typ_t typ, curse *c, int self)
|
||||||
|
{
|
||||||
|
unit * u = (unit*)obj;
|
||||||
|
unused(typ);
|
||||||
|
|
||||||
|
assert(typ == TYP_UNIT);
|
||||||
|
|
||||||
|
if (self){
|
||||||
|
sprintf(buf, "%s kann sich kaum konzentrieren.i (%s)",
|
||||||
|
u->name, curseid(c));
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue