diff --git a/doc/fixes3-7-0.txt b/doc/fixes3-7-0.txt index 0b6e73913..7fffaf8e3 100644 --- a/doc/fixes3-7-0.txt +++ b/doc/fixes3-7-0.txt @@ -1247,6 +1247,7 @@ the throne room on the Samurai quest home level lacked a throne but gave entered; vary the message rather than add a throne coughing due to stinking cloud wakes up nearby monsters stop occupation when timed levitation or choking issues a message +use #monster to make dragon steed breathe Fixes to 3.7.0-x General Problems Exposed Via git Repository diff --git a/include/extern.h b/include/extern.h index 6fb7e7eb6..3634ebcb7 100644 --- a/include/extern.h +++ b/include/extern.h @@ -630,6 +630,7 @@ extern boolean cursed_object_at(coordxy, coordxy); extern struct obj *droppables(struct monst *); extern int dog_nutrition(struct monst *, struct obj *); extern int dog_eat(struct monst *, struct obj *, coordxy, coordxy, boolean); +extern int pet_ranged_attk(struct monst *); extern int dog_move(struct monst *, int); extern boolean could_reach_item(struct monst *, coordxy, coordxy); extern void finish_meating(struct monst *); diff --git a/src/cmd.c b/src/cmd.c index ffc675724..c108096a0 100644 --- a/src/cmd.c +++ b/src/cmd.c @@ -960,6 +960,9 @@ domonability(void) aggravate(); } else if (is_vampire(uptr) || is_vampshifter(&gy.youmonst)) { return dopoly(); + } else if (u.usteed && can_breathe(u.usteed->data)) { + (void) pet_ranged_attk(u.usteed); + return ECMD_TIME; } else if (Upolyd) { pline("Any special ability you may have is purely reflexive."); } else { diff --git a/src/dogmove.c b/src/dogmove.c index f373fbd00..3261fffd5 100644 --- a/src/dogmove.c +++ b/src/dogmove.c @@ -18,7 +18,6 @@ static int dog_goal(struct monst *, struct edog *, int, int, int); static struct monst *find_targ(struct monst *, int, int, int); static int find_friends(struct monst *, struct monst *, int); static struct monst *best_target(struct monst *); -static int pet_ranged_attk(struct monst *); static long score_targ(struct monst *, struct monst *); static boolean can_reach_location(struct monst *, coordxy, coordxy, coordxy, coordxy); @@ -866,7 +865,7 @@ best_target(struct monst *mtmp) /* Pet */ } /* Pet considers and maybe executes a ranged attack */ -static int +int pet_ranged_attk(struct monst *mtmp) { struct monst *mtarg;