OSDN Git Service

Demon Weapon/Armor have TR_CALL_DEMON at 1/5.
[hengband/hengband.git] / src / racial.c
index 4145154..c129db9 100644 (file)
@@ -1054,7 +1054,7 @@ static bool cmd_racial_power_aux(s32b command)
 #else
                        msg_print("You glare nearby monsters...");
 #endif
-                       slow_monsters();
+                       slow_monsters(p_ptr->lev);
                        stun_monsters(p_ptr->lev * 4);
                        confuse_monsters(p_ptr->lev * 4);
                        turn_monsters(p_ptr->lev * 4);
@@ -1194,7 +1194,12 @@ static bool cmd_racial_power_aux(s32b command)
                }
                case CLASS_MAGIC_EATER:
                {
-                       if (!gain_magic()) return FALSE;
+                       if (command == -3) {
+                               if (!gain_magic()) return FALSE;
+                       } else if (command == -4) {
+                               if (!can_do_cmd_cast()) return FALSE;
+                               if (!do_cmd_magic_eater(FALSE, TRUE)) return FALSE;
+                       }
                        break;
                }
                case CLASS_BARD:
@@ -1659,7 +1664,7 @@ static bool cmd_racial_power_aux(s32b command)
 
                case RACE_HALF_GIANT:
                        if (!get_aim_dir(&dir)) return FALSE;
-                       (void)wall_to_mud(dir);
+                       (void)wall_to_mud(dir, 20 + randint1(30));
                        break;
 
                case RACE_HALF_TITAN:
@@ -2092,7 +2097,7 @@ static bool cmd_racial_power_aux(s32b command)
 #endif
 
                        if (plev < 25) sleep_monsters_touch();
-                       else (void)sleep_monsters();
+                       else (void)sleep_monsters(plev);
                        break;
 
                case RACE_DEMON:
@@ -2540,6 +2545,13 @@ strcpy(power_desc[num].name, "
                power_desc[num].stat = A_INT;
                power_desc[num].fail = 0;
                power_desc[num++].number = -3;
+
+               strcpy(power_desc[num].name, _("¶¯ÎÏȯư", "Powerful Activation"));
+               power_desc[num].level = 10;
+               power_desc[num].cost = 10 + (lvl - 10) / 2;
+               power_desc[num].stat = A_INT;
+               power_desc[num].fail = 0;
+               power_desc[num++].number = -4;
                break;
        }
        case CLASS_BARD: