forked from github/server
Fliegende Einheiten ertrinken Aussserdem: Verschieben der Astralraumänderungen (wg. schwerem Magiepatzer)
This commit is contained in:
parent
61e063cb66
commit
b125e84ada
|
@ -3733,7 +3733,7 @@ monthly_healing(void)
|
||||||
if (fval(u, UFL_HUNGER)) continue;
|
if (fval(u, UFL_HUNGER)) continue;
|
||||||
if (fspecial(u->faction, FS_UNDEAD)) continue;
|
if (fspecial(u->faction, FS_UNDEAD)) continue;
|
||||||
|
|
||||||
if (rterrain(r)==T_OCEAN && u->ship==NULL && !canswim(u)) continue;
|
if (rterrain(r)==T_OCEAN && u->ship==NULL && !(canswim(u) || canfly(u))) continue;
|
||||||
|
|
||||||
if(fspecial(u->faction, FS_REGENERATION)) {
|
if(fspecial(u->faction, FS_REGENERATION)) {
|
||||||
u->hp = umhp;
|
u->hp = umhp;
|
||||||
|
|
|
@ -737,7 +737,7 @@ drown(region *r)
|
||||||
ADDMSG(&u->faction->msgs, new_message(u->faction,
|
ADDMSG(&u->faction->msgs, new_message(u->faction,
|
||||||
"drown_amphibian_nodead%u:unit%r:region",u, r));
|
"drown_amphibian_nodead%u:unit%r:region",u, r));
|
||||||
}
|
}
|
||||||
} else if (!canswim(u)) {
|
} else if (!(canswim(u) || canfly(u))) {
|
||||||
scale_number(u, 0);
|
scale_number(u, 0);
|
||||||
ADDMSG(&u->faction->msgs, new_message(u->faction,
|
ADDMSG(&u->faction->msgs, new_message(u->faction,
|
||||||
"drown%u:unit%r:region", u, r));
|
"drown%u:unit%r:region", u, r));
|
||||||
|
|
|
@ -356,10 +356,6 @@ canwalk(unit * u)
|
||||||
boolean
|
boolean
|
||||||
canfly(unit *u)
|
canfly(unit *u)
|
||||||
{
|
{
|
||||||
if (get_movement(&u->attribs, MV_CANNOTMOVE)) return false;
|
|
||||||
|
|
||||||
if (get_item(u, I_HORSE) || get_item(u, I_UNICORN)) return false;
|
|
||||||
|
|
||||||
if (get_item(u, I_PEGASUS) >= u->number && effskill(u, SK_RIDING) >= 4)
|
if (get_item(u, I_PEGASUS) >= u->number && effskill(u, SK_RIDING) >= 4)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
@ -373,10 +369,6 @@ canfly(unit *u)
|
||||||
boolean
|
boolean
|
||||||
canswim(unit *u)
|
canswim(unit *u)
|
||||||
{
|
{
|
||||||
if (get_movement(&u->attribs, MV_CANNOTMOVE)) return false;
|
|
||||||
|
|
||||||
if (get_item(u, I_HORSE) || get_item(u, I_UNICORN)) return false;
|
|
||||||
|
|
||||||
if (get_item(u, I_DOLPHIN) >= u->number && effskill(u, SK_RIDING) >= 4)
|
if (get_item(u, I_DOLPHIN) >= u->number && effskill(u, SK_RIDING) >= 4)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
@ -1247,13 +1239,16 @@ travel_route(unit * u, region_list * route_begin, region_list * route_end, order
|
||||||
|
|
||||||
/* Ozeanfelder können nur von Einheiten mit Schwimmen und ohne
|
/* Ozeanfelder können nur von Einheiten mit Schwimmen und ohne
|
||||||
* Pferde betreten werden. */
|
* Pferde betreten werden. */
|
||||||
if (rterrain(next) == T_OCEAN && !canswim(u)) {
|
if (rterrain(next) == T_OCEAN) {
|
||||||
|
if (!(canswim(u) || canfly(u))) {
|
||||||
ADDMSG(&u->faction->msgs, msg_message("detectocean",
|
ADDMSG(&u->faction->msgs, msg_message("detectocean",
|
||||||
"unit region", u, next));
|
"unit region", u, next));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/* movement blocked by a wall */
|
/* movement blocked by a wall */
|
||||||
if (reldir>=0 && move_blocked(u, current, next)) {
|
if (reldir>=0 && move_blocked(u, current, next)) {
|
||||||
ADDMSG(&u->faction->msgs, msg_message("leavefail",
|
ADDMSG(&u->faction->msgs, msg_message("leavefail",
|
||||||
|
|
|
@ -55,6 +55,7 @@ extern void run_to(struct unit * u, struct region * to);
|
||||||
extern struct unit *is_guarded(struct region * r, struct unit * u, unsigned int mask);
|
extern struct unit *is_guarded(struct region * r, struct unit * u, unsigned int mask);
|
||||||
extern int enoughsailors(const struct ship * sh, const struct region * r);
|
extern int enoughsailors(const struct ship * sh, const struct region * r);
|
||||||
extern boolean canswim(struct unit *u);
|
extern boolean canswim(struct unit *u);
|
||||||
|
extern boolean canfly(struct unit *u);
|
||||||
extern struct unit *get_captain(const struct ship * sh);
|
extern struct unit *get_captain(const struct ship * sh);
|
||||||
extern void travelthru(const struct unit * u, struct region * r);
|
extern void travelthru(const struct unit * u, struct region * r);
|
||||||
extern struct ship * move_ship(struct ship * sh, struct region * from, struct region * to, struct region_list * route);
|
extern struct ship * move_ship(struct ship * sh, struct region * from, struct region * to, struct region_list * route);
|
||||||
|
|
|
@ -5553,7 +5553,7 @@ sp_sweetdreams(castorder *co)
|
||||||
/* Zieleinheit */
|
/* Zieleinheit */
|
||||||
u = pa->param[n]->data.u;
|
u = pa->param[n]->data.u;
|
||||||
|
|
||||||
if (!ucontact(u, mage, HELP_GUARD)) {
|
if (!ucontact(u, mage)) {
|
||||||
cmistake(mage, co->order, 40, MSG_EVENT);
|
cmistake(mage, co->order, 40, MSG_EVENT);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,7 +37,7 @@
|
||||||
#define HUNGER_REDUCES_SKILL /* Hunger reduziert den Talentwert
|
#define HUNGER_REDUCES_SKILL /* Hunger reduziert den Talentwert
|
||||||
auf die Hälfte */
|
auf die Hälfte */
|
||||||
|
|
||||||
#define ASTRAL_ITEM_RESTRICTIONS /* keine grossen dinge im astralraum */
|
#undef ASTRAL_ITEM_RESTRICTIONS /* keine grossen dinge im astralraum */
|
||||||
|
|
||||||
#define MUSEUM_MODULE
|
#define MUSEUM_MODULE
|
||||||
#define ARENA_MODULE
|
#define ARENA_MODULE
|
||||||
|
|
Loading…
Reference in New Issue