- item "grail"
This commit is contained in:
Enno Rehling 2005-01-06 23:37:43 +00:00
parent 5eb4f6a222
commit 7bb61ccab4
4 changed files with 59 additions and 68 deletions

View File

@ -1009,6 +1009,7 @@ cansee(const faction * f, const region * r, const unit * u, int modifier)
int n;
boolean cansee = false;
unit *u2;
static const item_type * itype_grail = (const item_type *)0xdeadbeef;
if (u->faction == f || omniscient(f)) {
return true;
@ -1023,6 +1024,10 @@ cansee(const faction * f, const region * r, const unit * u, int modifier)
return false;
}
}
if (itype_grail==(const item_type *)0xdeadbeef) itype_grail = it_find("grail");
if (itype_grail!=NULL && i_get(u->items, itype_grail)) return true;
n = eff_stealth(u, r) - modifier;
for (u2 = r->units; u2; u2 = u2->next) {
if (u2->faction == f) {
@ -1053,73 +1058,6 @@ cansee(const faction * f, const region * r, const unit * u, int modifier)
return cansee;
}
#if 0
boolean
cansee(faction * f, region * r, unit * u, int modifier)
/* r kann != u->region sein, wenn es um durchreisen geht */
/* und es muss niemand aus f in der region sein, wenn sie vom Turm
* erblickt wird */
{
boolean cansee = false;
unit *u2;
#if FAST_CANSEE
static region * lastr = NULL;
static faction * lastf = NULL;
static int maxskill = INT_MIN;
#endif
int n = 0;
boolean ring = false;
if (u->faction == f || omniscient(f)) return true;
#if FAST_CANSEE /* buggy */
if (lastr==r && lastf==f) {
n = eff_stealth(u, r) - modifier;
if (n<=maxskill) return true;
}
else {
lastf=f;
lastr=r;
maxskill=INT_MIN;
}
#endif
if (old_race(u->race) == RC_SPELL || u->number == 0) return false;
else {
boolean xcheck = false;
int o = INT_MIN;
ring = (boolean)(ring || (invisible(u) >= u->number));
n = n || eff_stealth(u, r) - modifier;
for (u2 = r->units; u2; u2 = u2->next) {
if (u2->faction == f) {
if (!xcheck && (getguard(u) || usiege(u) || u->building || u->ship)) {
cansee = true;
break;
}
else
xcheck = true;
#if NEWATSROI == 0
if (ring && !get_item(u2, I_AMULET_OF_TRUE_SEEING))
continue;
#endif
o = eff_skill(u2, SK_OBSERVATION, r);
#ifdef NIGHTEYES
if (u2->enchanted == SP_NIGHT_EYES && o < NIGHT_EYE_TALENT)
o = NIGHT_EYE_TALENT;
#endif
if (o >= n) {
cansee = true;
break;
}
}
}
#if FAST_CANSEE
maxskill = o;
#endif
}
return cansee;
}
#endif
boolean
cansee_durchgezogen(const faction * f, const region * r, const unit * u, int modifier)

View File

@ -6024,4 +6024,14 @@
</text>
</string>
<string name="grail">
<text locale="de">Gral</text>
<text locale="en">grail</text>
</string>
<string name="grail_p">
<text locale="de">Grale</text>
<text locale="en">grails</text>
</string>
</strings>

View File

@ -0,0 +1,41 @@
<?xml version="1.0"?>
<resources>
<resource name="grail">
<!-- LMS reward -->
<function name="change" value="changeitem"/>
<item cursed="yes" notlost="yes" weight="0"/>
</resource>
<resource name="greatbow">
<function name="change" value="changeitem"/>
<item weight="100">
<construction skill="sk_weaponsmithing" minskill="5" reqsize="1">
<modifier function="mod_elves_only"/>
<requirement type="mallorn" quantity="2"/>
</construction>
<weapon pierce="true" missile="true" skill="sk_bow" offmod="0" defmod="0" reload="0" magres="0.0">
<damage type="rider" value="2d6+4"/>
<damage type="footman" value="2d6+4"/>
<modifier type="missile_target" value="2"/>
<modifier type="damage" value="1">
<race name="elf"/>
</modifier>
</weapon>
</item>
</resource>
<resource name="halberd">
<item weight="200">
<construction skill="sk_weaponsmithing" minskill="3" reqsize="1">
<requirement type="log" quantity="2"/>
<requirement type="iron" quantity="1"/>
</construction>
<weapon cut="true" skill="sk_polearm" offmod="-1" defmod="2" magres="0.0">
<damage type="rider" value="2d6+3"/>
<damage type="footman" value="2d6+3"/>
<modifier type="skill" value="1" walking="true" against_riding="true" defensive="true"/>
</weapon>
</item>
</resource>
</resources>

View File

@ -23,6 +23,7 @@
<game name="HSE" welcome="eressea">
<comment>Game specific</comment>
<order name="MEINUNG" disable="yes"/>
<order name="NUMMER" disable="yes"/>
<order name="MAGIEGEBIET" disable="yes"/>
<param name="entertain.base" value="15"/>
<param name="entertain.perlevel" value="5"/>
@ -38,6 +39,7 @@
<xi:include href="eressea/en/strings.xml"/>
<xi:include href="eressea/races.xml"/>
<xi:include href="eressea/items.xml"/>
<xi:include href="eressea/items-hse05.xml"/>
<xi:include href="eressea/dungeons.xml"/>
<xi:include href="eressea/temple.xml"/>
<strings>