forked from github/server
- Neuer Zauber
This commit is contained in:
parent
56319bcbb3
commit
890691d282
|
@ -3183,6 +3183,8 @@ make_summary(boolean count_new)
|
||||||
|
|
||||||
s->artefakte += get_item(u, I_AMULET_OF_TRUE_SEEING);
|
s->artefakte += get_item(u, I_AMULET_OF_TRUE_SEEING);
|
||||||
s->artefakte += get_item(u, I_RING_OF_INVISIBILITY);
|
s->artefakte += get_item(u, I_RING_OF_INVISIBILITY);
|
||||||
|
s->artefakte += get_item(u, I_SPHERE_OF_INVISIBILITY);
|
||||||
|
s->artefakte += get_item(u, I_SACK_OF_CONSERVATION);
|
||||||
s->artefakte += get_item(u, I_RING_OF_POWER);
|
s->artefakte += get_item(u, I_RING_OF_POWER);
|
||||||
s->artefakte += get_item(u, I_RUNESWORD);
|
s->artefakte += get_item(u, I_RUNESWORD);
|
||||||
|
|
||||||
|
|
|
@ -91,7 +91,7 @@ spy(region * r, unit * u)
|
||||||
* Wahrnehmung als das Ziel Tarnung + Spionage/2 hat */
|
* Wahrnehmung als das Ziel Tarnung + Spionage/2 hat */
|
||||||
observe = eff_skill(target, SK_OBSERVATION, r)
|
observe = eff_skill(target, SK_OBSERVATION, r)
|
||||||
- (effskill(u, SK_STEALTH) + eff_skill(u, SK_SPY, r)/2);
|
- (effskill(u, SK_STEALTH) + eff_skill(u, SK_SPY, r)/2);
|
||||||
if (get_item(u, I_RING_OF_INVISIBILITY) >= u->number &&
|
if (invisible(u) >= u->number &&
|
||||||
get_item(target, I_AMULET_OF_TRUE_SEEING) == 0) {
|
get_item(target, I_AMULET_OF_TRUE_SEEING) == 0) {
|
||||||
observe = min(observe, 0);
|
observe = min(observe, 0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -90,8 +90,7 @@ slipthru(const region * r, const unit * u, const building * b)
|
||||||
|
|
||||||
for (u2 = r->units; u2; u2 = u2->next)
|
for (u2 = r->units; u2; u2 = u2->next)
|
||||||
if (usiege(u2) == b) {
|
if (usiege(u2) == b) {
|
||||||
if (get_item(u, I_RING_OF_INVISIBILITY) &&
|
if (invisible(u) >= u->number &&
|
||||||
get_item(u, I_RING_OF_INVISIBILITY) >= u->number &&
|
|
||||||
!get_item(u2, I_AMULET_OF_TRUE_SEEING))
|
!get_item(u2, I_AMULET_OF_TRUE_SEEING))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
|
|
@ -833,7 +833,7 @@ cansee(const faction * f, const region * r, const unit * u, int modifier)
|
||||||
cansee = true;
|
cansee = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (get_item(u, I_RING_OF_INVISIBILITY) >= u->number
|
if (invisible(u) >= u->number
|
||||||
&& !get_item(u2, I_AMULET_OF_TRUE_SEEING))
|
&& !get_item(u2, I_AMULET_OF_TRUE_SEEING))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
@ -883,7 +883,7 @@ cansee(faction * f, region * r, unit * u, int modifier)
|
||||||
else {
|
else {
|
||||||
boolean xcheck = false;
|
boolean xcheck = false;
|
||||||
int o = INT_MIN;
|
int o = INT_MIN;
|
||||||
ring = (boolean)(ring || (get_item(u, I_RING_OF_INVISIBILITY) >= u->number));
|
ring = (boolean)(ring || (invisible(u) >= u->number));
|
||||||
n = n || eff_stealth(u, r) - modifier;
|
n = n || eff_stealth(u, r) - modifier;
|
||||||
for (u2 = r->units; u2; u2 = u2->next) {
|
for (u2 = r->units; u2; u2 = u2->next) {
|
||||||
if (u2->faction == f) {
|
if (u2->faction == f) {
|
||||||
|
@ -939,7 +939,7 @@ cansee_durchgezogen(const faction * f, const region * r, const unit * u, int mod
|
||||||
cansee = true;
|
cansee = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (get_item(u, I_RING_OF_INVISIBILITY) >= u->number
|
if (invisible(u) >= u->number
|
||||||
&& !get_item(u2, I_AMULET_OF_TRUE_SEEING))
|
&& !get_item(u2, I_AMULET_OF_TRUE_SEEING))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
|
|
@ -371,6 +371,7 @@ enum {
|
||||||
I_RUSTY_SHIELD,
|
I_RUSTY_SHIELD,
|
||||||
I_RUSTY_CHAIN_MAIL,
|
I_RUSTY_CHAIN_MAIL,
|
||||||
I_SACK_OF_CONSERVATION,
|
I_SACK_OF_CONSERVATION,
|
||||||
|
I_SPHERE_OF_INVISIBILITY,
|
||||||
MAX_ITEMS /* do not use outside item.c ! */
|
MAX_ITEMS /* do not use outside item.c ! */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -7225,6 +7225,26 @@ sp_createitem_invisibility(castorder *co)
|
||||||
|
|
||||||
return cast_level;
|
return cast_level;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------- */
|
||||||
|
/* Sphäre der Unsichtbarkeit */
|
||||||
|
int
|
||||||
|
sp_createitem_invisibility2(castorder *co)
|
||||||
|
{
|
||||||
|
unit *mage = (unit *)co->magician;
|
||||||
|
int cast_level = co->level;
|
||||||
|
unit *familiar = (unit *)co->familiar;
|
||||||
|
|
||||||
|
if (familiar){
|
||||||
|
mage = familiar;
|
||||||
|
}
|
||||||
|
|
||||||
|
change_item(mage,I_SPHERE_OF_INVISIBILITY,1);
|
||||||
|
creation_message(mage, I_SPHERE_OF_INVISIBILITY);
|
||||||
|
|
||||||
|
return cast_level;
|
||||||
|
}
|
||||||
|
|
||||||
/* ------------------------------------------------------------- */
|
/* ------------------------------------------------------------- */
|
||||||
/* Keuschheitsgürtel der Orks */
|
/* Keuschheitsgürtel der Orks */
|
||||||
int
|
int
|
||||||
|
@ -9113,6 +9133,22 @@ spell spelldaten[] =
|
||||||
(spell_f)sp_sweetdreams, patzer
|
(spell_f)sp_sweetdreams, patzer
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{SPL_INVISIBILITY2_ILLAUN, "Erschaffe eine Sphäre der Unsichtbarkeit",
|
||||||
|
"Mit diesem Spruch kann der Zauberer eine Sphäre der Unsichtbarkeit "
|
||||||
|
"erschaffen. Die Späre macht ihren Träger sowie einhundert weitere "
|
||||||
|
"Personen in derselben Einheit unsichtbar.",
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
M_TRAUM, (ONSHIPCAST), 5, 13,
|
||||||
|
{
|
||||||
|
{R_AURA, 150, SPC_FIX},
|
||||||
|
{R_SILVER, 30000, SPC_FIX},
|
||||||
|
{R_PERMAURA, 3, SPC_FIX},
|
||||||
|
{0, 0, 0},
|
||||||
|
{0, 0, 0}},
|
||||||
|
(spell_f)sp_createitem_invisibility2, patzer_createitem
|
||||||
|
},
|
||||||
|
|
||||||
{SPL_CREATE_TACTICCRYSTAL, "Erschaffe ein Traumauge",
|
{SPL_CREATE_TACTICCRYSTAL, "Erschaffe ein Traumauge",
|
||||||
"Ein mit diesem Zauber belegtes Drachenauge, welches zum Abendmahle "
|
"Ein mit diesem Zauber belegtes Drachenauge, welches zum Abendmahle "
|
||||||
"verzehrt wird, erlaubt es dem Benutzer, in die Träume einer anderen "
|
"verzehrt wird, erlaubt es dem Benutzer, in die Träume einer anderen "
|
||||||
|
|
|
@ -203,6 +203,7 @@ enum {
|
||||||
SPL_AURA_OF_FEAR, /* 175? */
|
SPL_AURA_OF_FEAR, /* 175? */
|
||||||
SPL_SHADOWCALL, /* 176? */
|
SPL_SHADOWCALL, /* 176? */
|
||||||
SPL_MALLORNTREEGROW,
|
SPL_MALLORNTREEGROW,
|
||||||
|
SPL_INVISIBILITY2_ILLAUN,
|
||||||
MAXALLSPELLS,
|
MAXALLSPELLS,
|
||||||
NO_SPELL = (spellid_t) -1
|
NO_SPELL = (spellid_t) -1
|
||||||
};
|
};
|
||||||
|
|
|
@ -1041,3 +1041,10 @@ eff_skill(const unit * u, skill_t sk, const region * r)
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
invisible(const unit *u)
|
||||||
|
{
|
||||||
|
return get_item(u, I_RING_OF_INVISIBILITY)
|
||||||
|
+ 100 * get_item(u, I_SPHERE_OF_INVISIBILITY);
|
||||||
|
}
|
||||||
|
|
|
@ -154,4 +154,6 @@ extern void set_number(struct unit * u, int count);
|
||||||
extern boolean learn_skill(struct unit * u, skill_t sk, double chance);
|
extern boolean learn_skill(struct unit * u, skill_t sk, double chance);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
extern int invisible(const unit *u);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -4,7 +4,7 @@ ifndef ERESSEA
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Hier definieren, damit nicht '@gcc'
|
# Hier definieren, damit nicht '@gcc'
|
||||||
CC = gcc-3.0 -D_GNU_SOURCE -ansi -pedantic -W
|
CC = gcc-3.0 -D_GNU_SOURCE -ansi -pedantic
|
||||||
DEPEND = @gcc-3.0 -MM -MG -r
|
DEPEND = @gcc-3.0 -MM -MG -r
|
||||||
# CC = gcc -D_GNU_SOURCE
|
# CC = gcc -D_GNU_SOURCE
|
||||||
AR = ar
|
AR = ar
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
#include <modules/museum.h>
|
#include <modules/museum.h>
|
||||||
#include <modules/xecmd.h>
|
#include <modules/xecmd.h>
|
||||||
#include <items/questkeys.h>
|
#include <items/questkeys.h>
|
||||||
|
#include <items/catapultammo.h>
|
||||||
|
|
||||||
/* gamecode includes */
|
/* gamecode includes */
|
||||||
#include <creation.h>
|
#include <creation.h>
|
||||||
|
@ -619,10 +620,7 @@ show_newspells(void)
|
||||||
* terminieren */
|
* terminieren */
|
||||||
|
|
||||||
spellid_t newspellids[] = {
|
spellid_t newspellids[] = {
|
||||||
SPL_IRONKEEPER,
|
SPL_INVISIBILITY2_ILLAUN,
|
||||||
SPL_BLOODSACRIFICE,
|
|
||||||
SPL_TYBIED_DESTROY_MAGIC,
|
|
||||||
SPL_DESTROY_MAGIC,
|
|
||||||
SPL_NOSPELL };
|
SPL_NOSPELL };
|
||||||
|
|
||||||
/* die id's der neuen oder veränderten Sprüche werden in newspellids[]
|
/* die id's der neuen oder veränderten Sprüche werden in newspellids[]
|
||||||
|
@ -2855,6 +2853,21 @@ fix_road_borders(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
give_cammo(void)
|
||||||
|
{
|
||||||
|
faction *f;
|
||||||
|
unit *u;
|
||||||
|
|
||||||
|
for(f=factions; f; f=f->next) {
|
||||||
|
for(u=f->units; u; u=u->nextF) {
|
||||||
|
i_change(&u->items, &it_catapultammo, i_get(u->items, olditemtype[I_CATAPULT]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
korrektur(void)
|
korrektur(void)
|
||||||
{
|
{
|
||||||
|
@ -2950,7 +2963,7 @@ korrektur_end(void)
|
||||||
do_once("peas", peasant_adjustment());
|
do_once("peas", peasant_adjustment());
|
||||||
do_once("orcc", orc_conversion());
|
do_once("orcc", orc_conversion());
|
||||||
#endif
|
#endif
|
||||||
|
do_once("camm", give_cammo());
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
Loading…
Reference in New Issue