summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/defines.h2
-rw-r--r--src/skills.c44
-rw-r--r--src/util.pkg8
3 files changed, 44 insertions, 10 deletions
diff --git a/src/defines.h b/src/defines.h
index c1dafdf4..2907d2a2 100644
--- a/src/defines.h
+++ b/src/defines.h
@@ -611,6 +611,7 @@
#define MKEY_PIERCING 23
#define MKEY_DEATH_TOUCH 100
#define MKEY_GEOMANCY 101
+#define MKEY_REACH_ATTACK 102
/*** Screen Locations ***/
@@ -4486,7 +4487,6 @@
#define HOOK_KEYPRESS 31
#define HOOK_CHAT 32
#define HOOK_MON_SPEAK 33
-#define HOOK_MKEY 34
#define HOOK_BIRTH_OBJECTS 35
#define HOOK_ACTIVATE_DESC 36
#define HOOK_INIT_GAME 37
diff --git a/src/skills.c b/src/skills.c
index 1dc65fea..4de0b047 100644
--- a/src/skills.c
+++ b/src/skills.c
@@ -1102,8 +1102,50 @@ void do_cmd_activate_skill()
break;
}
+ case MKEY_REACH_ATTACK:
+ {
+ object_type *o_ptr = NULL;
+ int dir, dy, dx, targetx, targety, max_blows, flags;
+
+ o_ptr = get_object(INVEN_WIELD);
+ if (o_ptr->tval == TV_POLEARM)
+ {
+ msg_print("You will need a long polearm for this!");
+ return;
+ }
+
+ if (!get_rep_dir(&dir))
+ {
+ return;
+ }
+
+ dy = ddy[dir];
+ dx = ddx[dir];
+ dy = dy * 2;
+ dx = dx * 2;
+ targety = p_ptr->py + dy;
+ targetx = p_ptr->px + dx;
+
+ max_blows = get_skill_scale(SKILL_POLEARM, p_ptr->num_blow / 2);
+ if (max_blows == 0)
+ {
+ max_blows = 1;
+ }
+
+ energy_use = energy_use + 200;
+
+ flags = PROJECT_BEAM | PROJECT_KILL;
+ if (get_skill(SKILL_POLEARM) < 40)
+ {
+ flags |= PROJECT_STOP;
+ }
+
+ project(0, 0, targety, targetx,
+ max_blows, GF_ATTACK, flags);
+
+ break;
+ }
default:
- process_hooks(HOOK_MKEY, "(d)", x_idx);
break;
}
}
diff --git a/src/util.pkg b/src/util.pkg
index 4e3b6117..33f60a59 100644
--- a/src/util.pkg
+++ b/src/util.pkg
@@ -426,14 +426,6 @@ typedef unsigned int u32b;
*/
#define HOOK_MON_SPEAK 33
-/** @def HOOK_MKEY
- * @brief Player uses skill.\n
- * @param Number x_idx \n the skill to execute.
- * @brief Skill index
- * @note (see file skills.c)
- */
-#define HOOK_MKEY 34
-
/** @def HOOK_BIRTH_OBJECTS
* @brief Player receives objects at birth.
* @note (see file birth.c)