refactoring ship speed, extract total skills of sailors into a function.

This commit is contained in:
Enno Rehling 2015-04-17 16:31:52 +02:00
parent eb1d3e4664
commit afbc4c816b
5 changed files with 48 additions and 50 deletions

View File

@ -5854,11 +5854,10 @@
das 50fache und auch im Kampf werden sich die
erhöhte Kraft und die trollisch zähe Haut
positiv auswirken.</text>
<text locale="en">This artifact gives the one wearing it
<text locale="en">This artifact gives the wearer
the strength of a cavetroll. He will be able to
carry fifty times as much as normal and also in
combat his enhanced strength and tough troll
skin will serve him well.</text>
carry fifty times his normal load, as well as
gain strength and tough troll skin in combat.</text>
</string>
<string name="auraleak">
<text locale="de">Der Schwarzmagier kann mit diesem
@ -5868,7 +5867,7 @@
Region werden einen Großteil ihrer Aura
verlieren.</text>
<text locale="en">With this dark ritual the
chaossorcerer causes a deep rift to appear in
chaos sorcerer causes a deep rift to appear in
the astral balance that will tear all magical
power from a region. All spellcasters in that
region will lose most of their aura.</text>

View File

@ -348,10 +348,6 @@ int shipspeed(const ship * sh, const unit * u)
c = c->nexthash;
}
#ifdef SHIPSPEED
k *= SHIPSPEED;
#endif
if (sh->damage>0) {
int size = sh->size * DAMAGE_SCALE;
k *= (size - sh->damage);

View File

@ -1807,7 +1807,7 @@ void scale_number(unit * u, int n)
const struct race *u_irace(const struct unit *u)
{
if (u->irace && skill_enabled(SK_STEALTH)) {
if (u->irace) {
return u->irace;
}
return u->_race;

View File

@ -4582,7 +4582,7 @@ int sp_illusionary_shapeshift(castorder * co)
irace = u_irace(u);
if (irace == u_race(u)) {
trigger *trestore = trigger_changerace(u, NULL, irace);
add_trigger(&u->attribs, "timer", trigger_timeout((int)power + 2,
add_trigger(&u->attribs, "timer", trigger_timeout((int)power + 3,
trestore));
u->irace = rc;
}

View File

@ -214,7 +214,6 @@ int setstealth_cmd(unit * u, struct order *ord)
char token[64];
const char *s;
int level, rule;
const race *trace;
init_order(ord);
s = gettoken(token, sizeof(token));
@ -237,47 +236,51 @@ int setstealth_cmd(unit * u, struct order *ord)
return 0;
}
trace = findrace(s, u->faction->locale);
if (trace) {
/* demons can cloak as other player-races */
if (u_race(u) == get_race(RC_DAEMON)) {
race_t allowed[] = { RC_DWARF, RC_ELF, RC_ORC, RC_GOBLIN, RC_HUMAN,
RC_TROLL, RC_DAEMON, RC_INSECT, RC_HALFLING, RC_CAT, RC_AQUARIAN,
NORACE
};
int i;
for (i = 0; allowed[i] != NORACE; ++i)
if (get_race(allowed[i]) == trace)
break;
if (get_race(allowed[i]) == trace) {
u->irace = trace;
if (u_race(u)->flags & RCF_SHAPESHIFTANY && get_racename(u->attribs))
set_racename(&u->attribs, NULL);
if (skill_enabled(SK_STEALTH)) { /* hack! E3 erlaubt keine Tarnung */
const race *trace;
trace = findrace(s, u->faction->locale);
if (trace) {
/* demons can cloak as other player-races */
if (u_race(u) == get_race(RC_DAEMON)) {
race_t allowed[] = { RC_DWARF, RC_ELF, RC_ORC, RC_GOBLIN, RC_HUMAN,
RC_TROLL, RC_DAEMON, RC_INSECT, RC_HALFLING, RC_CAT, RC_AQUARIAN,
NORACE
};
int i;
for (i = 0; allowed[i] != NORACE; ++i)
if (get_race(allowed[i]) == trace)
break;
if (get_race(allowed[i]) == trace) {
u->irace = trace;
if (u_race(u)->flags & RCF_SHAPESHIFTANY && get_racename(u->attribs))
set_racename(&u->attribs, NULL);
}
return 0;
}
/* Singdrachen koennen sich nur als Drachen tarnen */
if (u_race(u) == get_race(RC_SONGDRAGON)
|| u_race(u) == get_race(RC_BIRTHDAYDRAGON)) {
if (trace == get_race(RC_SONGDRAGON) || trace == get_race(RC_FIREDRAGON)
|| trace == get_race(RC_DRAGON) || trace == get_race(RC_WYRM)) {
u->irace = trace;
if (u_race(u)->flags & RCF_SHAPESHIFTANY && get_racename(u->attribs))
set_racename(&u->attribs, NULL);
}
return 0;
}
/* Daemomen und Illusionsparteien koennen sich als andere race tarnen */
if (u_race(u)->flags & RCF_SHAPESHIFT) {
if (playerrace(trace)) {
u->irace = trace;
if ((u_race(u)->flags & RCF_SHAPESHIFTANY) && get_racename(u->attribs))
set_racename(&u->attribs, NULL);
}
}
return 0;
}
/* Singdrachen koennen sich nur als Drachen tarnen */
if (u_race(u) == get_race(RC_SONGDRAGON)
|| u_race(u) == get_race(RC_BIRTHDAYDRAGON)) {
if (trace == get_race(RC_SONGDRAGON) || trace == get_race(RC_FIREDRAGON)
|| trace == get_race(RC_DRAGON) || trace == get_race(RC_WYRM)) {
u->irace = trace;
if (u_race(u)->flags & RCF_SHAPESHIFTANY && get_racename(u->attribs))
set_racename(&u->attribs, NULL);
}
return 0;
}
/* Daemomen und Illusionsparteien koennen sich als andere race tarnen */
if (u_race(u)->flags & RCF_SHAPESHIFT) {
if (playerrace(trace)) {
u->irace = trace;
if ((u_race(u)->flags & RCF_SHAPESHIFTANY) && get_racename(u->attribs))
set_racename(&u->attribs, NULL);
}
}
return 0;
}
switch (findparam(s, u->faction->locale)) {