forked from github/server
- Umstellung castorder->force und curse->vigour von int auf double.
This commit is contained in:
parent
342629298b
commit
1f2eb75678
|
@ -166,7 +166,7 @@ scramble(void *data, int n, size_t width)
|
||||||
buffer = temp;
|
buffer = temp;
|
||||||
do {
|
do {
|
||||||
char * target = ((char*)data)+width*dest;
|
char * target = ((char*)data)+width*dest;
|
||||||
memcpy(buffer, target, width);
|
memmove(buffer, target, width);
|
||||||
memmove(target, src, width);
|
memmove(target, src, width);
|
||||||
k = dest; /* wo das gerettete target hin soll */
|
k = dest; /* wo das gerettete target hin soll */
|
||||||
dest = vec[dest].index;
|
dest = vec[dest].index;
|
||||||
|
|
|
@ -412,7 +412,7 @@ rps(FILE * F, const char * src)
|
||||||
} else if(src != buf) {
|
} else if(src != buf) {
|
||||||
s = strcpy(buf, src);
|
s = strcpy(buf, src);
|
||||||
} else {
|
} else {
|
||||||
s = src;
|
s = (char *)src;
|
||||||
}
|
}
|
||||||
rpsnr(F, s, 0);
|
rpsnr(F, s, 0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -133,23 +133,19 @@ curse_read(attrib * a, FILE * f) {
|
||||||
curse * c = (curse*)a->data.v;
|
curse * c = (curse*)a->data.v;
|
||||||
const curse_type * ct;
|
const curse_type * ct;
|
||||||
|
|
||||||
if (global.data_version >= CURSETYPE_VERSION) {
|
char cursename[64];
|
||||||
char cursename[64];
|
|
||||||
fscanf(f, "%d %s %d %d %d %d %d ", &c->no, cursename, &c->flag,
|
if(global.data_version >= CURSEVIGOURISFLOAT_VERSION) {
|
||||||
|
fscanf(f, "%d %s %d %d %lf %d %d ", &c->no, cursename, &c->flag,
|
||||||
&c->duration, &c->vigour, &mageid, &c->effect.i);
|
&c->duration, &c->vigour, &mageid, &c->effect.i);
|
||||||
ct = ct_find(cursename);
|
|
||||||
} else {
|
} else {
|
||||||
int cspellid;
|
int vigour;
|
||||||
if (global.data_version < CURSE_NO_VERSION) {
|
fscanf(f, "%d %s %d %d %d %d %d ", &c->no, cursename, &c->flag,
|
||||||
fscanf(f, "%d %d %d %d %d %d ",&cspellid, &c->flag, &c->duration,
|
&c->duration, &vigour, &mageid, &c->effect.i);
|
||||||
&c->vigour, &mageid, &c->effect.i);
|
c->vigour = vigour;
|
||||||
c->no = newunitid();
|
|
||||||
} else {
|
|
||||||
fscanf(f, "%d %d %d %d %d %d %d ", &c->no, &cspellid, &c->flag,
|
|
||||||
&c->duration, &c->vigour, &mageid, &c->effect.i);
|
|
||||||
}
|
|
||||||
ct = ct_find(oldcursename(cspellid));
|
|
||||||
}
|
}
|
||||||
|
ct = ct_find(cursename);
|
||||||
|
|
||||||
assert(ct!=NULL);
|
assert(ct!=NULL);
|
||||||
|
|
||||||
#ifdef CONVERT_DBLINK
|
#ifdef CONVERT_DBLINK
|
||||||
|
@ -198,7 +194,7 @@ curse_write(const attrib * a, FILE * f) {
|
||||||
mage_no = -1;
|
mage_no = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf(f, "%d %s %d %d %d %d %d ", c->no, ct->cname, flag,
|
fprintf(f, "%d %s %d %d %f %d %d ", c->no, ct->cname, flag,
|
||||||
c->duration, c->vigour, mage_no, c->effect.i);
|
c->duration, c->vigour, mage_no, c->effect.i);
|
||||||
|
|
||||||
if (c->type->write) c->type->write(f, c);
|
if (c->type->write) c->type->write(f, c);
|
||||||
|
@ -353,7 +349,7 @@ remove_allcurse(attrib **ap, const void * data, boolean(*compare)(const attrib *
|
||||||
/* gibt die allgemeine Stärke der Verzauberung zurück. id2 wird wie
|
/* gibt die allgemeine Stärke der Verzauberung zurück. id2 wird wie
|
||||||
* oben benutzt. Dies ist nicht die Wirkung, sondern die Kraft und
|
* oben benutzt. Dies ist nicht die Wirkung, sondern die Kraft und
|
||||||
* damit der gegen Antimagie wirkende Widerstand einer Verzauberung */
|
* damit der gegen Antimagie wirkende Widerstand einer Verzauberung */
|
||||||
static int
|
static double
|
||||||
get_cursevigour(const curse *c)
|
get_cursevigour(const curse *c)
|
||||||
{
|
{
|
||||||
if (c) return c->vigour;
|
if (c) return c->vigour;
|
||||||
|
@ -362,7 +358,7 @@ get_cursevigour(const curse *c)
|
||||||
|
|
||||||
/* setzt die Stärke der Verzauberung auf i */
|
/* setzt die Stärke der Verzauberung auf i */
|
||||||
static void
|
static void
|
||||||
set_cursevigour(curse *c, int vigour)
|
set_cursevigour(curse *c, double vigour)
|
||||||
{
|
{
|
||||||
assert(c && vigour > 0);
|
assert(c && vigour > 0);
|
||||||
c->vigour = vigour;
|
c->vigour = vigour;
|
||||||
|
@ -372,8 +368,8 @@ set_cursevigour(curse *c, int vigour)
|
||||||
* Stärke zurück. Sollte die Zauberstärke unter Null sinken, löst er
|
* Stärke zurück. Sollte die Zauberstärke unter Null sinken, löst er
|
||||||
* sich auf.
|
* sich auf.
|
||||||
*/
|
*/
|
||||||
int
|
double
|
||||||
curse_changevigour(attrib **ap, curse *c, int vigour)
|
curse_changevigour(attrib **ap, curse *c, double vigour)
|
||||||
{
|
{
|
||||||
vigour += get_cursevigour(c);
|
vigour += get_cursevigour(c);
|
||||||
|
|
||||||
|
@ -449,7 +445,7 @@ curse_setflag(curse *c, int flag)
|
||||||
* dieses Typs geben, gibt es den bestehenden zurück.
|
* dieses Typs geben, gibt es den bestehenden zurück.
|
||||||
*/
|
*/
|
||||||
curse *
|
curse *
|
||||||
set_curse(unit *mage, attrib **ap, const curse_type *ct, int vigour,
|
set_curse(unit *mage, attrib **ap, const curse_type *ct, double vigour,
|
||||||
int duration, int effect, int men)
|
int duration, int effect, int men)
|
||||||
{
|
{
|
||||||
curse *c;
|
curse *c;
|
||||||
|
@ -490,7 +486,7 @@ set_curse(unit *mage, attrib **ap, const curse_type *ct, int vigour,
|
||||||
* passenden Typ verzweigt und die relevanten Variablen weitergegeben.
|
* passenden Typ verzweigt und die relevanten Variablen weitergegeben.
|
||||||
*/
|
*/
|
||||||
curse *
|
curse *
|
||||||
create_curse(unit *magician, attrib **ap, const curse_type *ct, int vigour,
|
create_curse(unit *magician, attrib **ap, const curse_type *ct, double vigour,
|
||||||
int duration, int effect, int men)
|
int duration, int effect, int men)
|
||||||
{
|
{
|
||||||
curse *c;
|
curse *c;
|
||||||
|
@ -550,7 +546,7 @@ do_transfer_curse(curse *c, unit * u, unit * u2, int n)
|
||||||
{
|
{
|
||||||
int flag = c->flag;
|
int flag = c->flag;
|
||||||
int duration = c->duration;
|
int duration = c->duration;
|
||||||
int vigour = c->vigour;
|
double vigour = c->vigour;
|
||||||
unit *magician = c->magician;
|
unit *magician = c->magician;
|
||||||
int effect = c->effect.i;
|
int effect = c->effect.i;
|
||||||
int cursedmen = 0;
|
int cursedmen = 0;
|
||||||
|
@ -673,7 +669,7 @@ is_cursed_with(attrib *ap, curse *c)
|
||||||
* unsigned int mergeflags;
|
* unsigned int mergeflags;
|
||||||
* const char *info_str; Wirkung des curse, wird bei einer gelungenen Zauberanalyse angezeigt
|
* const char *info_str; Wirkung des curse, wird bei einer gelungenen Zauberanalyse angezeigt
|
||||||
* int (*curseinfo)(const struct locale*, const void*, int, curse*, int);
|
* int (*curseinfo)(const struct locale*, const void*, int, curse*, int);
|
||||||
* void (*change_vigour)(curse*, int);
|
* void (*change_vigour)(curse*, double);
|
||||||
* int (*read)(FILE * F, curse * c);
|
* int (*read)(FILE * F, curse * c);
|
||||||
* int (*write)(FILE * F, const curse * c);
|
* int (*write)(FILE * F, const curse * c);
|
||||||
* } curse_type;
|
* } curse_type;
|
||||||
|
|
|
@ -193,7 +193,7 @@ typedef struct curse {
|
||||||
const struct curse_type * type; /* Zeiger auf ein curse_type-struct */
|
const struct curse_type * type; /* Zeiger auf ein curse_type-struct */
|
||||||
int flag; /* generelle Flags wie zb CURSE_ISNEW oder CURSE_NOAGE */
|
int flag; /* generelle Flags wie zb CURSE_ISNEW oder CURSE_NOAGE */
|
||||||
int duration; /* Dauer der Verzauberung. Wird jede Runde vermindert */
|
int duration; /* Dauer der Verzauberung. Wird jede Runde vermindert */
|
||||||
int vigour; /* Stärke der Verzauberung, Widerstand gegen Antimagie */
|
double vigour; /* Stärke der Verzauberung, Widerstand gegen Antimagie */
|
||||||
struct unit *magician; /* Pointer auf den Magier, der den Spruch gewirkt hat */
|
struct unit *magician; /* Pointer auf den Magier, der den Spruch gewirkt hat */
|
||||||
variant effect;
|
variant effect;
|
||||||
void *data; /* pointer auf spezielle curse-unterstructs*/
|
void *data; /* pointer auf spezielle curse-unterstructs*/
|
||||||
|
@ -219,7 +219,7 @@ typedef struct curse_type {
|
||||||
const char *info_str; /* Wirkung des curse, wird bei einer gelungenen
|
const char *info_str; /* Wirkung des curse, wird bei einer gelungenen
|
||||||
Zauberanalyse angezeigt */
|
Zauberanalyse angezeigt */
|
||||||
int (*curseinfo)(const struct locale*, const void*, typ_t, curse*, int);
|
int (*curseinfo)(const struct locale*, const void*, typ_t, curse*, int);
|
||||||
void (*change_vigour)(curse*, int);
|
void (*change_vigour)(curse*, double);
|
||||||
int (*read)(FILE * F, curse * c);
|
int (*read)(FILE * F, curse * c);
|
||||||
int (*write)(FILE * F, const curse * c);
|
int (*write)(FILE * F, const curse * c);
|
||||||
int (*cansee)(const struct faction*, const void*, typ_t, curse *, int);
|
int (*cansee)(const struct faction*, const void*, typ_t, curse *, int);
|
||||||
|
@ -244,7 +244,7 @@ extern int curse_read(struct attrib * a,FILE * f);
|
||||||
*/
|
*/
|
||||||
|
|
||||||
curse * create_curse(struct unit *magician, struct attrib**ap, const curse_type * ctype,
|
curse * create_curse(struct unit *magician, struct attrib**ap, const curse_type * ctype,
|
||||||
int vigour, int duration, int ceffect, int men);
|
double vigour, int duration, int ceffect, int men);
|
||||||
/* Verzweigt automatisch zum passenden struct-typ. Sollte es schon
|
/* Verzweigt automatisch zum passenden struct-typ. Sollte es schon
|
||||||
* einen Zauber dieses Typs geben, so wird der neue dazuaddiert. Die
|
* einen Zauber dieses Typs geben, so wird der neue dazuaddiert. Die
|
||||||
* Zahl der verzauberten Personen sollte beim Aufruf der Funktion
|
* Zahl der verzauberten Personen sollte beim Aufruf der Funktion
|
||||||
|
@ -266,7 +266,7 @@ extern int curse_geteffect(const curse * c);
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
extern int curse_changevigour(struct attrib **ap, curse * c, int i);
|
extern double curse_changevigour(struct attrib **ap, curse * c, double i);
|
||||||
/* verändert die Stärke der Verzauberung um i */
|
/* verändert die Stärke der Verzauberung um i */
|
||||||
|
|
||||||
extern int get_cursedmen(struct unit *u, struct curse *c);
|
extern int get_cursedmen(struct unit *u, struct curse *c);
|
||||||
|
|
|
@ -163,15 +163,16 @@ struct xml_stack;
|
||||||
#define CURSETYPE_VERSION 312
|
#define CURSETYPE_VERSION 312
|
||||||
#define ALLIANCES_VERSION 313
|
#define ALLIANCES_VERSION 313
|
||||||
#define DBLINK_VERSION 314
|
#define DBLINK_VERSION 314
|
||||||
#define REGIONOWNERS_VERSION 315
|
#define CURSEVIGOURISFLOAT_VERSION 315
|
||||||
|
#define REGIONOWNERS_VERSION 316
|
||||||
|
|
||||||
#define MIN_VERSION TYPES_VERSION
|
#define MIN_VERSION ALLIANCES_VERSION
|
||||||
#define UGROUPS_VERSION 400 /* nicht aktivieren, nicht fertig */
|
#define UGROUPS_VERSION 400 /* nicht aktivieren, nicht fertig */
|
||||||
|
|
||||||
#ifdef REGIONOWNERS
|
#ifdef REGIONOWNERS
|
||||||
# define RELEASE_VERSION REGIONOWNERS_VERSION
|
# define RELEASE_VERSION REGIONOWNERS_VERSION
|
||||||
#else
|
#else
|
||||||
# define RELEASE_VERSION DBLINK_VERSION
|
# define RELEASE_VERSION CURSEVIGOURISFLOAT_VERSION
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if RESOURCE_CONVERSION
|
#if RESOURCE_CONVERSION
|
||||||
|
|
|
@ -1097,11 +1097,11 @@ cancast(unit * u, spell * sp, int level, int range, char * cmd)
|
||||||
* Spruchfunktionsroutine ermittelt.
|
* Spruchfunktionsroutine ermittelt.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int
|
double
|
||||||
spellpower(region * r, unit * u, spell * sp, int cast_level)
|
spellpower(region * r, unit * u, spell * sp, int cast_level)
|
||||||
{
|
{
|
||||||
curse * c;
|
curse * c;
|
||||||
int force = cast_level;
|
double force = cast_level;
|
||||||
if (sp==NULL) {
|
if (sp==NULL) {
|
||||||
return 0;
|
return 0;
|
||||||
} else {
|
} else {
|
||||||
|
@ -1130,7 +1130,7 @@ spellpower(region * r, unit * u, spell * sp, int cast_level)
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef MAGICPOWER
|
#ifdef MAGICPOWER
|
||||||
force = (int)(force * MAGICPOWER);
|
force = force * MAGICPOWER;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return max(force, 0);
|
return max(force, 0);
|
||||||
|
@ -2785,7 +2785,8 @@ magic(void)
|
||||||
strlist *so;
|
strlist *so;
|
||||||
int spellrank;
|
int spellrank;
|
||||||
int level, success;
|
int level, success;
|
||||||
int force, range, t_x, t_y;
|
int range, t_x, t_y;
|
||||||
|
double force;
|
||||||
int skiptokens;
|
int skiptokens;
|
||||||
castorder *co;
|
castorder *co;
|
||||||
castorder *cll[MAX_SPELLRANK];
|
castorder *cll[MAX_SPELLRANK];
|
||||||
|
@ -3063,7 +3064,7 @@ magic(void)
|
||||||
|
|
||||||
/* die Stärke kann durch Antimagie auf 0 sinken */
|
/* die Stärke kann durch Antimagie auf 0 sinken */
|
||||||
force = spellpower(target_r, u, sp, level);
|
force = spellpower(target_r, u, sp, level);
|
||||||
if (force < 1) {
|
if (force <= 0) {
|
||||||
sprintf(buf, "%s schafft es nicht genügend Kraft aufzubringen "
|
sprintf(buf, "%s schafft es nicht genügend Kraft aufzubringen "
|
||||||
"um %s dennoch zu zaubern.", unitname(u),
|
"um %s dennoch zu zaubern.", unitname(u),
|
||||||
spell_name(sp, u->faction->locale));
|
spell_name(sp, u->faction->locale));
|
||||||
|
|
|
@ -170,11 +170,11 @@ struct castorder {
|
||||||
castorder *next;
|
castorder *next;
|
||||||
void *magician; /* Magier (kann vom Typ struct unit oder fighter sein) */
|
void *magician; /* Magier (kann vom Typ struct unit oder fighter sein) */
|
||||||
struct unit *familiar; /* Vertrauter, gesetzt, wenn der Spruch durch
|
struct unit *familiar; /* Vertrauter, gesetzt, wenn der Spruch durch
|
||||||
den Vertrauten gezaubert wird */
|
den Vertrauten gezaubert wird */
|
||||||
struct spell *sp; /* Spruch */
|
struct spell *sp; /* Spruch */
|
||||||
int level; /* gewünschte Stufe oder Stufe des Magiers */
|
int level; /* gewünschte Stufe oder Stufe des Magiers */
|
||||||
int force; /* Stärke des Zaubers */
|
float force; /* Stärke des Zaubers */
|
||||||
struct region *rt; /* Zielregion des Spruchs */
|
struct region *rt; /* Zielregion des Spruchs */
|
||||||
int distance; /* Entfernung zur Zielregion */
|
int distance; /* Entfernung zur Zielregion */
|
||||||
char *order; /* Befehl */
|
char *order; /* Befehl */
|
||||||
struct spellparameter *par; /* für weitere Parameter */
|
struct spellparameter *par; /* für weitere Parameter */
|
||||||
|
@ -328,7 +328,7 @@ int change_maxspellpoints(struct unit * u, int csp);
|
||||||
/* verändert die maximalen Magiepunkte einer Einheit */
|
/* verändert die maximalen Magiepunkte einer Einheit */
|
||||||
|
|
||||||
/* Zaubern */
|
/* Zaubern */
|
||||||
int spellpower(struct region *r, struct unit *u, spell *spruch, int cast_level);
|
double spellpower(struct region *r, struct unit *u, spell *spruch, int cast_level);
|
||||||
/* ermittelt die Stärke eines Spruchs */
|
/* ermittelt die Stärke eines Spruchs */
|
||||||
boolean fumble (struct region *r, struct unit *u, spell *spruch, int cast_level);
|
boolean fumble (struct region *r, struct unit *u, spell *spruch, int cast_level);
|
||||||
/* true, wenn der Zauber misslingt, bei false gelingt der Zauber */
|
/* true, wenn der Zauber misslingt, bei false gelingt der Zauber */
|
||||||
|
|
|
@ -672,7 +672,7 @@ sp_destroy_magic(castorder *co)
|
||||||
{
|
{
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int force = co->force;
|
double force = co->force;
|
||||||
spellparameter *pa = co->par;
|
spellparameter *pa = co->par;
|
||||||
curse * c = NULL;
|
curse * c = NULL;
|
||||||
char ts[80];
|
char ts[80];
|
||||||
|
@ -839,7 +839,7 @@ sp_goodwinds(castorder *co)
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int power = co->force;
|
double power = co->force;
|
||||||
int duration = cast_level+1;
|
int duration = cast_level+1;
|
||||||
spellparameter *pa = co->par;
|
spellparameter *pa = co->par;
|
||||||
ship *sh;
|
ship *sh;
|
||||||
|
@ -894,7 +894,7 @@ sp_magicstreet(castorder *co)
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int power = co->force;
|
double power = co->force;
|
||||||
spellparameter *pa = co->par;
|
spellparameter *pa = co->par;
|
||||||
direction_t dir;
|
direction_t dir;
|
||||||
int duration = cast_level+1;
|
int duration = cast_level+1;
|
||||||
|
@ -944,7 +944,7 @@ sp_summonent(castorder *co)
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int power = co->force;
|
double power = co->force;
|
||||||
unit *u;
|
unit *u;
|
||||||
attrib *a;
|
attrib *a;
|
||||||
int ents;
|
int ents;
|
||||||
|
@ -1060,7 +1060,7 @@ sp_maelstrom(castorder *co)
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
curse * c;
|
curse * c;
|
||||||
int power = co->force;
|
double power = co->force;
|
||||||
int duration = power+1;
|
int duration = power+1;
|
||||||
|
|
||||||
if(rterrain(r) != T_OCEAN) {
|
if(rterrain(r) != T_OCEAN) {
|
||||||
|
@ -1150,7 +1150,7 @@ sp_blessedharvest(castorder *co)
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int power = co->force;
|
double power = co->force;
|
||||||
int duration = power+1;
|
int duration = power+1;
|
||||||
|
|
||||||
/* Attribut auf Region.
|
/* Attribut auf Region.
|
||||||
|
@ -1186,7 +1186,7 @@ sp_hain(castorder *co)
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int force = co->force;
|
double force = co->force;
|
||||||
|
|
||||||
if(!r->land) {
|
if(!r->land) {
|
||||||
cmistake(mage, strdup(co->order), 296, MSG_MAGIC);
|
cmistake(mage, strdup(co->order), 296, MSG_MAGIC);
|
||||||
|
@ -1233,7 +1233,7 @@ sp_mallornhain(castorder *co)
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int force = co->force;
|
double force = co->force;
|
||||||
|
|
||||||
if(!r->land) {
|
if(!r->land) {
|
||||||
cmistake(mage, strdup(co->order), 296, MSG_MAGIC);
|
cmistake(mage, strdup(co->order), 296, MSG_MAGIC);
|
||||||
|
@ -1269,7 +1269,7 @@ patzer_ents(castorder *co)
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
/* int cast_level = co->level; */
|
/* int cast_level = co->level; */
|
||||||
int force = co->force;
|
double force = co->force;
|
||||||
|
|
||||||
if(!r->land) {
|
if(!r->land) {
|
||||||
cmistake(mage, strdup(co->order), 296, MSG_MAGIC);
|
cmistake(mage, strdup(co->order), 296, MSG_MAGIC);
|
||||||
|
@ -1316,10 +1316,10 @@ sp_rosthauch(castorder *co)
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int force = co->force;
|
double force = co->force;
|
||||||
spellparameter *pa = co->par;
|
spellparameter *pa = co->par;
|
||||||
|
|
||||||
force = rand()%(force * 10) + force;
|
force = rand()%((int)(force * 10)) + force;
|
||||||
|
|
||||||
/* fuer jede Einheit */
|
/* fuer jede Einheit */
|
||||||
for (n = 0; n < pa->length; n++) {
|
for (n = 0; n < pa->length; n++) {
|
||||||
|
@ -1417,7 +1417,7 @@ sp_kaelteschutz(castorder *co)
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int force = co->force;
|
double force = co->force;
|
||||||
int duration = max(cast_level, force) + 1;
|
int duration = max(cast_level, force) + 1;
|
||||||
spellparameter *pa = co->par;
|
spellparameter *pa = co->par;
|
||||||
|
|
||||||
|
@ -1535,7 +1535,7 @@ sp_create_irongolem(castorder *co)
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int force = co->force;
|
double force = co->force;
|
||||||
/* hier fehlt noch ein wenig zufall */
|
/* hier fehlt noch ein wenig zufall */
|
||||||
int number = 1+(int)(force*8*RESOURCE_QUANTITY);
|
int number = 1+(int)(force*8*RESOURCE_QUANTITY);
|
||||||
|
|
||||||
|
@ -1598,7 +1598,7 @@ sp_create_stonegolem(castorder *co)
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int force = co->force;
|
double force = co->force;
|
||||||
int number = 1+(int)(force*5*RESOURCE_QUANTITY);
|
int number = 1+(int)(force*5*RESOURCE_QUANTITY);
|
||||||
|
|
||||||
if (rterrain(r) == T_SWAMP){
|
if (rterrain(r) == T_SWAMP){
|
||||||
|
@ -1662,7 +1662,7 @@ sp_great_drought(castorder *co)
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int force = co->force;
|
double force = co->force;
|
||||||
int duration = 2;
|
int duration = 2;
|
||||||
|
|
||||||
if(rterrain(r) == T_OCEAN ) {
|
if(rterrain(r) == T_OCEAN ) {
|
||||||
|
@ -1800,7 +1800,7 @@ sp_treewalkenter(castorder *co)
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
spellparameter *pa = co->par;
|
spellparameter *pa = co->par;
|
||||||
int power = co->force;
|
double power = co->force;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
region *rt;
|
region *rt;
|
||||||
unit *u, *u2;
|
unit *u, *u2;
|
||||||
|
@ -1911,7 +1911,7 @@ sp_treewalkexit(castorder *co)
|
||||||
int erfolg = 0;
|
int erfolg = 0;
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int power = co->force;
|
double power = co->force;
|
||||||
spellparameter *pa = co->par;
|
spellparameter *pa = co->par;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
|
|
||||||
|
@ -2056,7 +2056,7 @@ sp_holyground(castorder *co)
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int power = co->force;
|
double power = co->force;
|
||||||
curse * c;
|
curse * c;
|
||||||
message * msg = r_addmessage(r, mage->faction, msg_message("holyground", "mage", mage));
|
message * msg = r_addmessage(r, mage->faction, msg_message("holyground", "mage", mage));
|
||||||
msg_release(msg);
|
msg_release(msg);
|
||||||
|
@ -2092,7 +2092,7 @@ sp_homestone(castorder *co)
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int force = co->force;
|
double force = co->force;
|
||||||
|
|
||||||
if(!mage->building || mage->building->type != bt_find("castle")){
|
if(!mage->building || mage->building->type != bt_find("castle")){
|
||||||
cmistake(mage, strdup(co->order), 197, MSG_MAGIC);
|
cmistake(mage, strdup(co->order), 197, MSG_MAGIC);
|
||||||
|
@ -2153,7 +2153,7 @@ sp_drought(castorder *co)
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int power = co->force;
|
double power = co->force;
|
||||||
int duration = power+1;
|
int duration = power+1;
|
||||||
|
|
||||||
if(rterrain(r) == T_OCEAN ) {
|
if(rterrain(r) == T_OCEAN ) {
|
||||||
|
@ -2223,7 +2223,7 @@ sp_fog_of_confusion(castorder *co)
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int power = co->force;
|
double power = co->force;
|
||||||
int range;
|
int range;
|
||||||
int duration;
|
int duration;
|
||||||
regionlist *rl,*rl2;
|
regionlist *rl,*rl2;
|
||||||
|
@ -2342,7 +2342,7 @@ sp_stormwinds(castorder *co)
|
||||||
int erfolg = 0;
|
int erfolg = 0;
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int power = co->force;
|
double power = co->force;
|
||||||
spellparameter *pa = co->par;
|
spellparameter *pa = co->par;
|
||||||
|
|
||||||
force = power;
|
force = power;
|
||||||
|
@ -2698,7 +2698,7 @@ sp_fumblecurse(castorder *co)
|
||||||
int effect;
|
int effect;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int force = co->force;
|
double force = co->force;
|
||||||
curse * c;
|
curse * c;
|
||||||
spellparameter *pa = co->par;
|
spellparameter *pa = co->par;
|
||||||
|
|
||||||
|
@ -2732,7 +2732,7 @@ patzer_fumblecurse(castorder *co)
|
||||||
{
|
{
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int force = co->force;
|
double force = co->force;
|
||||||
int effect;
|
int effect;
|
||||||
curse * c;
|
curse * c;
|
||||||
int duration = (cast_level/2)+1;
|
int duration = (cast_level/2)+1;
|
||||||
|
@ -2775,7 +2775,7 @@ sp_summondragon(castorder *co)
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
unit *u;
|
unit *u;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int power = co->force;
|
double power = co->force;
|
||||||
regionlist *rl,*rl2;
|
regionlist *rl,*rl2;
|
||||||
faction *f;
|
faction *f;
|
||||||
int time;
|
int time;
|
||||||
|
@ -3052,7 +3052,7 @@ sp_firewall(castorder *co)
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int force = co->force;
|
double force = co->force;
|
||||||
spellparameter *pa = co->par;
|
spellparameter *pa = co->par;
|
||||||
direction_t dir;
|
direction_t dir;
|
||||||
region * r2;
|
region * r2;
|
||||||
|
@ -3136,7 +3136,7 @@ sp_wisps(castorder *co)
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int force = co->force;
|
double force = co->force;
|
||||||
spellparameter *pa = co->par;
|
spellparameter *pa = co->par;
|
||||||
|
|
||||||
dir = finddirection(pa->param[0]->data.s, mage->faction->locale);
|
dir = finddirection(pa->param[0]->data.s, mage->faction->locale);
|
||||||
|
@ -3444,7 +3444,7 @@ sp_summonshadow(castorder *co)
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int force = co->force;
|
double force = co->force;
|
||||||
unit *u;
|
unit *u;
|
||||||
int val;
|
int val;
|
||||||
|
|
||||||
|
@ -3463,7 +3463,7 @@ sp_summonshadow(castorder *co)
|
||||||
set_level(u, SK_OBSERVATION, 1);
|
set_level(u, SK_OBSERVATION, 1);
|
||||||
|
|
||||||
sprintf(buf, "%s beschwört %d Dämonen aus dem Reich der Schatten.",
|
sprintf(buf, "%s beschwört %d Dämonen aus dem Reich der Schatten.",
|
||||||
unitname(mage), force*force);
|
unitname(mage), (int)(force*force));
|
||||||
addmessage(0, mage->faction, buf, MSG_MAGIC, ML_INFO);
|
addmessage(0, mage->faction, buf, MSG_MAGIC, ML_INFO);
|
||||||
|
|
||||||
return cast_level;
|
return cast_level;
|
||||||
|
@ -3493,7 +3493,7 @@ sp_summonshadowlords(castorder *co)
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int force = co->force;
|
double force = co->force;
|
||||||
|
|
||||||
u = createunit(r, mage->faction, force*force, new_race[RC_SHADOWLORD]);
|
u = createunit(r, mage->faction, force*force, new_race[RC_SHADOWLORD]);
|
||||||
if (r==mage->region) {
|
if (r==mage->region) {
|
||||||
|
@ -3507,7 +3507,7 @@ sp_summonshadowlords(castorder *co)
|
||||||
set_level(u, SK_STEALTH, get_level(mage, SK_MAGIC));
|
set_level(u, SK_STEALTH, get_level(mage, SK_MAGIC));
|
||||||
set_level(u, SK_OBSERVATION, 5);
|
set_level(u, SK_OBSERVATION, 5);
|
||||||
sprintf(buf, "%s beschwört %d Schattenmeister.",
|
sprintf(buf, "%s beschwört %d Schattenmeister.",
|
||||||
unitname(mage), force*force);
|
unitname(mage), (int)(force*force));
|
||||||
addmessage(0, mage->faction, buf, MSG_MAGIC, ML_INFO);
|
addmessage(0, mage->faction, buf, MSG_MAGIC, ML_INFO);
|
||||||
return cast_level;
|
return cast_level;
|
||||||
}
|
}
|
||||||
|
@ -3603,7 +3603,7 @@ sp_magicboost(castorder *co)
|
||||||
curse * c;
|
curse * c;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int power = co->force;
|
double power = co->force;
|
||||||
|
|
||||||
/* fehler, wenn schon ein boost */
|
/* fehler, wenn schon ein boost */
|
||||||
if(is_cursed(mage->attribs, C_MBOOST, 0) == true){
|
if(is_cursed(mage->attribs, C_MBOOST, 0) == true){
|
||||||
|
@ -3656,7 +3656,7 @@ sp_bloodsacrifice(castorder *co)
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int aura;
|
int aura;
|
||||||
int skill = eff_skill(mage, SK_MAGIC, mage->region);
|
int skill = eff_skill(mage, SK_MAGIC, mage->region);
|
||||||
int hp = co->force*4;
|
double hp = co->force*4;
|
||||||
|
|
||||||
if (hp <= 0){
|
if (hp <= 0){
|
||||||
report_failure(mage, co->order);
|
report_failure(mage, co->order);
|
||||||
|
@ -3712,7 +3712,7 @@ sp_summonundead(castorder *co)
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int force = co->force;
|
double force = co->force;
|
||||||
const race * race = new_race[RC_SKELETON];
|
const race * race = new_race[RC_SKELETON];
|
||||||
|
|
||||||
if (!r->land || deathcount(r) == 0) {
|
if (!r->land || deathcount(r) == 0) {
|
||||||
|
@ -3892,7 +3892,7 @@ sp_analysesong_obj(castorder *co)
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int force = co->force;
|
double force = co->force;
|
||||||
spellparameter *pa = co->par;
|
spellparameter *pa = co->par;
|
||||||
|
|
||||||
obj = pa->param[0]->typ;
|
obj = pa->param[0]->typ;
|
||||||
|
@ -3942,7 +3942,7 @@ sp_analysesong_unit(castorder *co)
|
||||||
unit *u;
|
unit *u;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int force = co->force;
|
double force = co->force;
|
||||||
spellparameter *pa = co->par;
|
spellparameter *pa = co->par;
|
||||||
|
|
||||||
/* wenn kein Ziel gefunden, Zauber abbrechen */
|
/* wenn kein Ziel gefunden, Zauber abbrechen */
|
||||||
|
@ -3992,7 +3992,7 @@ sp_charmingsong(castorder *co)
|
||||||
skill_t i;
|
skill_t i;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int force = co->force;
|
double force = co->force;
|
||||||
spellparameter *pa = co->par;
|
spellparameter *pa = co->par;
|
||||||
int resist_bonus = 0;
|
int resist_bonus = 0;
|
||||||
int tb = 0;
|
int tb = 0;
|
||||||
|
@ -4030,7 +4030,7 @@ sp_charmingsong(castorder *co)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
duration = 3 + rand()%force;
|
duration = 3 + rand()%(int)force;
|
||||||
{
|
{
|
||||||
trigger * trestore = trigger_changefaction(target, target->faction);
|
trigger * trestore = trigger_changefaction(target, target->faction);
|
||||||
/* läuft die Dauer ab, setze Partei zurück */
|
/* läuft die Dauer ab, setze Partei zurück */
|
||||||
|
@ -4078,7 +4078,7 @@ sp_song_resistmagic(castorder *co)
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int force = co->force;
|
double force = co->force;
|
||||||
int duration = force+1;
|
int duration = force+1;
|
||||||
|
|
||||||
create_curse(mage, &r->attribs, ct_find("goodmagicresistancezone"),
|
create_curse(mage, &r->attribs, ct_find("goodmagicresistancezone"),
|
||||||
|
@ -4109,7 +4109,7 @@ sp_song_susceptmagic(castorder *co)
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int force = co->force;
|
double force = co->force;
|
||||||
int duration = force+1;
|
int duration = force+1;
|
||||||
|
|
||||||
create_curse(mage, &r->attribs, ct_find("badmagicresistancezone"),
|
create_curse(mage, &r->attribs, ct_find("badmagicresistancezone"),
|
||||||
|
@ -4209,7 +4209,7 @@ sp_raisepeasantmob(castorder *co)
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int force = co->force;
|
double force = co->force;
|
||||||
int duration = force+1;
|
int duration = force+1;
|
||||||
|
|
||||||
anteil += rand()%4;
|
anteil += rand()%4;
|
||||||
|
@ -4387,7 +4387,7 @@ sp_song_of_peace(castorder *co)
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int force = co->force;
|
double force = co->force;
|
||||||
|
|
||||||
if(force < 2)
|
if(force < 2)
|
||||||
duration = 0;
|
duration = 0;
|
||||||
|
@ -4432,7 +4432,7 @@ sp_generous(castorder *co)
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int force = co->force;
|
double force = co->force;
|
||||||
int duration = force+1;
|
int duration = force+1;
|
||||||
|
|
||||||
if(is_cursed(r->attribs, C_DEPRESSION, 0)){
|
if(is_cursed(r->attribs, C_DEPRESSION, 0)){
|
||||||
|
@ -4481,7 +4481,7 @@ sp_recruit(castorder *co)
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int force = co->force;
|
double force = co->force;
|
||||||
|
|
||||||
f = mage->faction;
|
f = mage->faction;
|
||||||
|
|
||||||
|
@ -4532,7 +4532,7 @@ sp_bigrecruit(castorder *co)
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int force = co->force;
|
double force = co->force;
|
||||||
|
|
||||||
f = mage->faction;
|
f = mage->faction;
|
||||||
|
|
||||||
|
@ -4658,7 +4658,7 @@ sp_seduce(castorder *co)
|
||||||
spellparameter *pa = co->par;
|
spellparameter *pa = co->par;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
spell *sp = co->sp;
|
spell *sp = co->sp;
|
||||||
int force = co->force;
|
double force = co->force;
|
||||||
|
|
||||||
/* wenn kein Ziel gefunden, Zauber abbrechen */
|
/* wenn kein Ziel gefunden, Zauber abbrechen */
|
||||||
if(pa->param[0]->flag == TARGET_NOTFOUND) return 0;
|
if(pa->param[0]->flag == TARGET_NOTFOUND) return 0;
|
||||||
|
@ -4763,7 +4763,7 @@ sp_calm_monster(castorder *co)
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
spellparameter *pa = co->par;
|
spellparameter *pa = co->par;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int force = co->force;
|
double force = co->force;
|
||||||
spell *sp = co->sp;
|
spell *sp = co->sp;
|
||||||
|
|
||||||
duration = force;
|
duration = force;
|
||||||
|
@ -4875,7 +4875,7 @@ sp_raisepeasants(castorder *co)
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int power = co->force;
|
double power = co->force;
|
||||||
|
|
||||||
if(rpeasants(r) == 0) {
|
if(rpeasants(r) == 0) {
|
||||||
addmessage(r, mage->faction, "Hier gibt es keine Bauern.",
|
addmessage(r, mage->faction, "Hier gibt es keine Bauern.",
|
||||||
|
@ -4926,7 +4926,7 @@ sp_depression(castorder *co)
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int force = co->force;
|
double force = co->force;
|
||||||
int duration = force+1;
|
int duration = force+1;
|
||||||
|
|
||||||
create_curse(mage,&r->attribs, ct_find("depression"), force, duration, 0, 0);
|
create_curse(mage,&r->attribs, ct_find("depression"), force, duration, 0, 0);
|
||||||
|
@ -4965,7 +4965,7 @@ sp_dragonsong(castorder *co)
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
unit *u;
|
unit *u;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int power = co->force;
|
double power = co->force;
|
||||||
regionlist *rl,*rl2;
|
regionlist *rl,*rl2;
|
||||||
faction *f;
|
faction *f;
|
||||||
int range;
|
int range;
|
||||||
|
@ -5020,7 +5020,7 @@ sp_songofAttraction(castorder *co)
|
||||||
region *r = co->rt; /* Zauberregion */
|
region *r = co->rt; /* Zauberregion */
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
/* int power = co->force; */
|
/* double power = co->force; */
|
||||||
|
|
||||||
/* TODO Wander Effekt */
|
/* TODO Wander Effekt */
|
||||||
|
|
||||||
|
@ -5083,7 +5083,7 @@ sp_icastle(castorder *co)
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int power = co->force;
|
double power = co->force;
|
||||||
spellparameter *pa = co->par;
|
spellparameter *pa = co->par;
|
||||||
icastle_data * data;
|
icastle_data * data;
|
||||||
|
|
||||||
|
@ -5095,9 +5095,9 @@ sp_icastle(castorder *co)
|
||||||
|
|
||||||
/* Größe festlegen. */
|
/* Größe festlegen. */
|
||||||
if(type == bt_find("illusion")) {
|
if(type == bt_find("illusion")) {
|
||||||
b->size = (rand()%(power*power)+1)*10;
|
b->size = (rand()%(int)((power*power)+1)*10);
|
||||||
} else if (b->type->maxsize == -1) {
|
} else if (b->type->maxsize == -1) {
|
||||||
b->size = ((rand()%power)+1)*5;
|
b->size = ((rand()%(int)(power))+1)*5;
|
||||||
} else {
|
} else {
|
||||||
b->size = b->type->maxsize;
|
b->size = b->type->maxsize;
|
||||||
}
|
}
|
||||||
|
@ -5109,7 +5109,7 @@ sp_icastle(castorder *co)
|
||||||
data = (icastle_data*)a->data.v;
|
data = (icastle_data*)a->data.v;
|
||||||
data->type = type;
|
data->type = type;
|
||||||
data->building = b;
|
data->building = b;
|
||||||
data->time = 2+(rand()%power+1)*(rand()%power+1);
|
data->time = 2+(rand()%(int)(power)+1)*(rand()%(int)(power)+1);
|
||||||
|
|
||||||
if(mage->region == r) {
|
if(mage->region == r) {
|
||||||
leave(r, mage);
|
leave(r, mage);
|
||||||
|
@ -5147,7 +5147,7 @@ sp_illusionary_shapeshift(castorder *co)
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int power = co->force;
|
double power = co->force;
|
||||||
spellparameter *pa = co->par;
|
spellparameter *pa = co->par;
|
||||||
|
|
||||||
/* wenn kein Ziel gefunden, Zauber abbrechen */
|
/* wenn kein Ziel gefunden, Zauber abbrechen */
|
||||||
|
@ -5307,7 +5307,7 @@ sp_baddreams(castorder *co)
|
||||||
int duration;
|
int duration;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int power = co->force;
|
double power = co->force;
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
curse * c;
|
curse * c;
|
||||||
|
|
||||||
|
@ -5348,7 +5348,7 @@ sp_gooddreams(castorder *co)
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int power = co->force;
|
double power = co->force;
|
||||||
|
|
||||||
/* wirkt erst in der Folgerunde, soll mindestens eine Runde wirken,
|
/* wirkt erst in der Folgerunde, soll mindestens eine Runde wirken,
|
||||||
* also duration+2 */
|
* also duration+2 */
|
||||||
|
@ -5417,7 +5417,7 @@ sp_dreamreading(castorder *co)
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
spellparameter *pa = co->par;
|
spellparameter *pa = co->par;
|
||||||
int power = co->force;
|
double power = co->force;
|
||||||
|
|
||||||
/* wenn kein Ziel gefunden, Zauber abbrechen */
|
/* wenn kein Ziel gefunden, Zauber abbrechen */
|
||||||
if(pa->param[0]->flag == TARGET_NOTFOUND) return 0;
|
if(pa->param[0]->flag == TARGET_NOTFOUND) return 0;
|
||||||
|
@ -5464,7 +5464,7 @@ sp_sweetdreams(castorder *co)
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int power = co->force;
|
double power = co->force;
|
||||||
spellparameter *pa = co->par;
|
spellparameter *pa = co->par;
|
||||||
int men, n;
|
int men, n;
|
||||||
int duration = 1+(power/2);
|
int duration = 1+(power/2);
|
||||||
|
@ -5517,7 +5517,7 @@ sp_disturbingdreams(castorder *co)
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int power = co->force;
|
double power = co->force;
|
||||||
int duration = 1 + (power/6);
|
int duration = 1 + (power/6);
|
||||||
curse * c = create_curse(mage, &r->attribs, ct_find("badlearn"), power, duration, 10, 0);
|
curse * c = create_curse(mage, &r->attribs, ct_find("badlearn"), power, duration, 10, 0);
|
||||||
curse_setflag(c, CURSE_ISNEW);
|
curse_setflag(c, CURSE_ISNEW);
|
||||||
|
@ -5537,7 +5537,7 @@ sp_dream_of_confusion(castorder *co)
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int power = co->force;
|
double power = co->force;
|
||||||
int range = (power-14)/2-1;
|
int range = (power-14)/2-1;
|
||||||
int duration = ((power-14)/2)*2+1;
|
int duration = ((power-14)/2)*2+1;
|
||||||
|
|
||||||
|
@ -5649,7 +5649,7 @@ sp_itemcloak(castorder *co)
|
||||||
unit *target;
|
unit *target;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int power = co->force;
|
double power = co->force;
|
||||||
int duration = power+1;
|
int duration = power+1;
|
||||||
spellparameter *pa = co->par;
|
spellparameter *pa = co->par;
|
||||||
|
|
||||||
|
@ -5690,7 +5690,7 @@ sp_resist_magic_bonus(castorder *co)
|
||||||
int duration = 6;
|
int duration = 6;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int power = co->force;
|
double power = co->force;
|
||||||
spellparameter *pa = co->par;
|
spellparameter *pa = co->par;
|
||||||
|
|
||||||
/* Pro Stufe können bis zu 5 Personen verzaubert werden */
|
/* Pro Stufe können bis zu 5 Personen verzaubert werden */
|
||||||
|
@ -5753,7 +5753,7 @@ sp_enterastral(castorder *co)
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int power = co->force;
|
double power = co->force;
|
||||||
spellparameter *pa = co->par;
|
spellparameter *pa = co->par;
|
||||||
spell *sp = co->sp;
|
spell *sp = co->sp;
|
||||||
|
|
||||||
|
@ -5868,7 +5868,7 @@ sp_pullastral(castorder *co)
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int power = co->force;
|
double power = co->force;
|
||||||
spellparameter *pa = co->par;
|
spellparameter *pa = co->par;
|
||||||
spell *sp = co->sp;
|
spell *sp = co->sp;
|
||||||
|
|
||||||
|
@ -5995,7 +5995,7 @@ sp_leaveastral(castorder *co)
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int power = co->force;
|
double power = co->force;
|
||||||
spellparameter *pa = co->par;
|
spellparameter *pa = co->par;
|
||||||
|
|
||||||
switch(getplaneid(r)) {
|
switch(getplaneid(r)) {
|
||||||
|
@ -6116,7 +6116,7 @@ sp_fetchastral(castorder *co)
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int power = co->force;
|
double power = co->force;
|
||||||
spellparameter *pa = co->par;
|
spellparameter *pa = co->par;
|
||||||
|
|
||||||
switch(getplaneid(r)) {
|
switch(getplaneid(r)) {
|
||||||
|
@ -6233,7 +6233,7 @@ sp_showastral(castorder *co)
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int power = co->force;
|
double power = co->force;
|
||||||
|
|
||||||
switch(getplaneid(r)) {
|
switch(getplaneid(r)) {
|
||||||
case 0:
|
case 0:
|
||||||
|
@ -6363,7 +6363,7 @@ sp_disruptastral(castorder *co)
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int power = co->force;
|
double power = co->force;
|
||||||
int duration = (power/3)+1;
|
int duration = (power/3)+1;
|
||||||
|
|
||||||
switch(getplaneid(r)) {
|
switch(getplaneid(r)) {
|
||||||
|
@ -6479,7 +6479,7 @@ sp_eternizewall(castorder *co)
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int power = co->force;
|
double power = co->force;
|
||||||
spellparameter *pa = co->par;
|
spellparameter *pa = co->par;
|
||||||
|
|
||||||
/* wenn kein Ziel gefunden, Zauber abbrechen */
|
/* wenn kein Ziel gefunden, Zauber abbrechen */
|
||||||
|
@ -6684,7 +6684,7 @@ sp_flying_ship(castorder *co)
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int power = co->force;
|
double power = co->force;
|
||||||
spellparameter *pa = co->par;
|
spellparameter *pa = co->par;
|
||||||
|
|
||||||
/* wenn kein Ziel gefunden, Zauber abbrechen */
|
/* wenn kein Ziel gefunden, Zauber abbrechen */
|
||||||
|
@ -6749,7 +6749,7 @@ sp_stealaura(castorder *co)
|
||||||
unit *u;
|
unit *u;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int power = co->force;
|
double power = co->force;
|
||||||
spellparameter *pa = co->par;
|
spellparameter *pa = co->par;
|
||||||
|
|
||||||
/* wenn kein Ziel gefunden, Zauber abbrechen */
|
/* wenn kein Ziel gefunden, Zauber abbrechen */
|
||||||
|
@ -6766,7 +6766,7 @@ sp_stealaura(castorder *co)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
taura = (get_mage(u)->spellpoints*(rand()%(3*power)+1))/100;
|
taura = (get_mage(u)->spellpoints*(rand()%(int)(3*power)+1))/100;
|
||||||
|
|
||||||
if(taura > 0) {
|
if(taura > 0) {
|
||||||
get_mage(u)->spellpoints -= taura;
|
get_mage(u)->spellpoints -= taura;
|
||||||
|
@ -6838,7 +6838,7 @@ sp_antimagiczone(castorder *co)
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int force = co->force;
|
double force = co->force;
|
||||||
int duration = force+1;
|
int duration = force+1;
|
||||||
|
|
||||||
/* Hält Sprüche bis zu einem summierten Gesamtlevel von power aus.
|
/* Hält Sprüche bis zu einem summierten Gesamtlevel von power aus.
|
||||||
|
@ -6898,7 +6898,7 @@ sp_magicrunes(castorder *co)
|
||||||
int duration;
|
int duration;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int force = co->force;
|
double force = co->force;
|
||||||
spellparameter *pa = co->par;
|
spellparameter *pa = co->par;
|
||||||
|
|
||||||
duration = 3 + rand()%cast_level;
|
duration = 3 + rand()%cast_level;
|
||||||
|
@ -6957,7 +6957,7 @@ sp_speed2(castorder *co)
|
||||||
unit *u;
|
unit *u;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int force = co->force;
|
double force = co->force;
|
||||||
spellparameter *pa = co->par;
|
spellparameter *pa = co->par;
|
||||||
|
|
||||||
maxmen = 2 * cast_level * cast_level;
|
maxmen = 2 * cast_level * cast_level;
|
||||||
|
@ -7017,7 +7017,7 @@ sp_q_antimagie(castorder *co)
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int force = co->force;
|
double force = co->force;
|
||||||
spellparameter *pa = co->par;
|
spellparameter *pa = co->par;
|
||||||
char *ts;
|
char *ts;
|
||||||
|
|
||||||
|
@ -7100,7 +7100,7 @@ sp_destroy_curse(castorder *co)
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
int force = co->force;
|
double force = co->force;
|
||||||
spellparameter *pa = co->par;
|
spellparameter *pa = co->par;
|
||||||
char *ts = NULL;
|
char *ts = NULL;
|
||||||
|
|
||||||
|
@ -7230,18 +7230,18 @@ int
|
||||||
sp_earn_silver(castorder *co)
|
sp_earn_silver(castorder *co)
|
||||||
{
|
{
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
double force = co->force;
|
||||||
region *r = co->rt;
|
region *r = co->rt;
|
||||||
int wanted, earned;
|
int wanted, earned;
|
||||||
|
|
||||||
wanted = cast_level * 50;
|
wanted = force * 50;
|
||||||
earned = min(rmoney(r), wanted);
|
earned = min(rmoney(r), wanted);
|
||||||
rsetmoney(r, rmoney(r) - earned);
|
rsetmoney(r, rmoney(r) - earned);
|
||||||
change_money(mage, earned);
|
change_money(mage, earned);
|
||||||
/* TODO klären: ist das Silber damit schon reserviert? */
|
/* TODO klären: ist das Silber damit schon reserviert? */
|
||||||
|
|
||||||
add_income(mage, IC_MAGIC, wanted, earned);
|
add_income(mage, IC_MAGIC, wanted, earned);
|
||||||
return cast_level;
|
return co->level;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -64,6 +64,7 @@ unit_getskill(const unit& u, const char * skname)
|
||||||
skill_t sk = sk_find(skname);
|
skill_t sk = sk_find(skname);
|
||||||
if (sk!=NOSKILL) {
|
if (sk!=NOSKILL) {
|
||||||
skill * sv = get_skill(&u, sk);
|
skill * sv = get_skill(&u, sk);
|
||||||
|
if (sv==NULL) return 0;
|
||||||
return sv->level;
|
return sv->level;
|
||||||
}
|
}
|
||||||
return -1;
|
return -1;
|
||||||
|
|
|
@ -15,7 +15,7 @@ function write_standings()
|
||||||
local faction
|
local faction
|
||||||
log(file, alliance.id .. ": " .. alliance.name)
|
log(file, alliance.id .. ": " .. alliance.name)
|
||||||
for faction in alliance.factions do
|
for faction in alliance.factions do
|
||||||
log(file, "- " .. faction.name .." (" .. faction.id .. ")")
|
log(file, "- " .. faction.name .." (" .. itoa36(faction.id) .. ")")
|
||||||
end
|
end
|
||||||
log (file, "")
|
log (file, "")
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue