OSDN Git Service

Detail activate description is dynamically built using activation_info table
authorhabu <habu@0568b783-4c39-0410-ac80-bf13821ea2a2>
Fri, 1 Feb 2013 04:35:20 +0000 (04:35 +0000)
committerhabu <habu@0568b783-4c39-0410-ac80-bf13821ea2a2>
Fri, 1 Feb 2013 04:35:20 +0000 (04:35 +0000)
src/artifact.c
src/externs.h
src/object1.c
src/tables.c
src/types.h

index 64096ee..9792581 100644 (file)
@@ -1975,7 +1975,7 @@ bool create_artifact(object_type *o_ptr, bool a_scroll)
 }
 
 
-static const activation_type* find_activation_info(const object_type *o_ptr)
+const activation_type* find_activation_info(const object_type *o_ptr)
 {
        const activation_type* p;
 
index d53f743..3984f62 100644 (file)
@@ -1522,6 +1522,7 @@ extern void one_resistance(object_type *o_ptr);
 extern void one_ability(object_type *o_ptr);
 extern bool create_artifact(object_type *o_ptr, bool a_scroll);
 extern bool activate_random_artifact(object_type * o_ptr);
+extern const activation_type* find_activation_info(const object_type *o_ptr);
 extern void get_bloody_moon_flags(object_type *o_ptr);
 extern void random_artifact_resistance(object_type * o_ptr, artifact_type *a_ptr);
 extern bool create_named_art(int a_idx, int y, int x);
index 40fbdad..181f3df 100644 (file)
@@ -330,7 +330,7 @@ void object_flags_known(object_type *o_ptr, u32b flgs[TR_FLAG_SIZE])
 }
 
 
-cptr item_activation_dragon_breath(object_type *o_ptr)
+static cptr item_activation_dragon_breath(object_type *o_ptr)
 {
        static char desc[256];
        u32b flgs[4]; /* for resistance flags */
@@ -349,18 +349,108 @@ cptr item_activation_dragon_breath(object_type *o_ptr)
                }
        }
 
-       strcat(desc, _("¤Î¥Ö¥ì¥¹(250) : 200+d200 ¥¿¡¼¥óËè"," every 200+d200 turns"));
+       strcat(desc, _("¤Î¥Ö¥ì¥¹(250)", ""));
 
        return (desc);
 }
 
+static cptr item_activation_aux(object_type *o_ptr)
+{
+       static char activation_detail[256];
+       cptr desc;
+       char timeout[32];
+       int constant, dice;
+       const activation_type* act_ptr = find_activation_info(o_ptr);
+
+       if (!act_ptr) return _("̤ÄêµÁ", "something undefined");
+
+       desc = act_ptr->desc;
+
+       /* Overwrite description if it is special */
+       switch (o_ptr->xtra2) {
+       case ACT_BR_FIRE:
+               if ((o_ptr->tval == TV_RING) && (o_ptr->sval == SV_RING_FLAMES))
+                       desc = _("²Ð±ê¤Î¥Ö¥ì¥¹ (200) ¤È²Ð¤Ø¤ÎÂÑÀ­", "breath of fire (200) and resist fire");
+               break;
+       case ACT_BR_COLD:
+               if ((o_ptr->tval == TV_RING) && (o_ptr->sval == SV_RING_ICE))
+                       desc = _("Î䵤¤Î¥Ö¥ì¥¹ (200) ¤ÈÎ䵤¤Ø¤ÎÂÑÀ­", "breath of cold (200) and resist cold");
+               break;
+       case ACT_BR_DRAGON:
+               desc = item_activation_dragon_breath(o_ptr);
+               break;
+       case ACT_AGGRAVATE:
+               if (o_ptr->name1 == ART_HYOUSIGI)
+                       desc = _("Çï»ÒÌÚ¤òÂǤÁ¤Ê¤é¤¹", "beat wooden clappers");
+               break;
+       case ACT_RESIST_ACID:
+               if ((o_ptr->tval == TV_RING) && (o_ptr->sval == SV_RING_ACID))
+                       desc = _("¥¢¥·¥Ã¥É¡¦¥Ü¡¼¥ë (100) ¤È»À¤Ø¤ÎÂÑÀ­", "ball of acid (100) and resist acid");
+               break;
+       case ACT_RESIST_FIRE:
+               if ((o_ptr->tval == TV_RING) && (o_ptr->sval == SV_RING_FLAMES))
+                       desc = _("¥Õ¥¡¥¤¥¢¡¦¥Ü¡¼¥ë (100) ¤È²Ð¤Ø¤ÎÂÑÀ­", "ball of fire (100) and resist fire");
+               break;
+       case ACT_RESIST_COLD:
+               if ((o_ptr->tval == TV_RING) && (o_ptr->sval == SV_RING_ICE))
+                       desc = _("¥¢¥¤¥¹¡¦¥Ü¡¼¥ë (100) ¤ÈÎ䵤¤Ø¤ÎÂÑÀ­", "ball of cold (100) and resist cold");
+               break;
+       case ACT_RESIST_ELEC:
+               if ((o_ptr->tval == TV_RING) && (o_ptr->sval == SV_RING_ELEC))
+                       desc = _("¥µ¥ó¥À¡¼¡¦¥Ü¡¼¥ë (100) ¤ÈÅÅ·â¤Ø¤ÎÂÑÀ­", "ball of elec (100) and resist elec");
+               break;
+       }
+
+       /* Timeout description */
+       constant = act_ptr->timeout.constant;
+       dice = act_ptr->timeout.dice;
+       if (constant == 0 && dice == 0) {
+               /* We can activate it every turn */
+               strcpy(timeout, _("¤¤¤Ä¤Ç¤â", "every turn"));
+       } else if (constant < 0) {
+               /* Activations that have special timeout */
+               switch (o_ptr->xtra2) {
+               case ACT_BR_FIRE:
+                       sprintf(timeout, _("%d ¥¿¡¼¥óËè", "every %d turns"),
+                               ((o_ptr->tval == TV_RING) && (o_ptr->sval == SV_RING_FLAMES)) ? 200 : 250);
+                       break;
+               case ACT_BR_COLD:
+                       sprintf(timeout, _("%d ¥¿¡¼¥óËè", "every %d turns"),
+                               ((o_ptr->tval == TV_RING) && (o_ptr->sval == SV_RING_ICE)) ? 200 : 250);
+                       break;
+               case ACT_TERROR:
+                       strcpy(timeout, _("3*(¥ì¥Ù¥ë+10) ¥¿¡¼¥óËè", "every 3 * (level+10) turns"));
+                       break;
+               case ACT_MURAMASA:
+                       strcpy(timeout, _("³ÎΨ50%¤Ç²õ¤ì¤ë", "(destroyed 50%)"));
+                       break;
+               default:
+                       strcpy(timeout, "undefined");
+                       break;
+               }
+       } else {
+               /* Normal timeout activations */
+               char constant_str[16], dice_str[16];
+               sprintf(constant_str, "%d", constant);
+               sprintf(dice_str, "d%d", dice);
+               sprintf(timeout, _("%s%s%s ¥¿¡¼¥óËè", "every %s%s%s turns"),
+                       (constant > 0) ? constant_str : "",
+                       (constant > 0 && dice > 0) ? "+" : "",
+                       (dice > 0) ? dice_str : "");
+       }
+
+       /* Build detail activate description */
+       sprintf(activation_detail, _("%s : %s", "%s %s"), desc, timeout);
+
+       return activation_detail;
+}
+
 /*
  * Determine the "Activation" (if any) for an artifact
  * Return a string, or NULL for "no activation"
  */
 cptr item_activation(object_type *o_ptr)
 {
-       static char *buf[256];
        u32b flgs[TR_FLAG_SIZE];
 
        /* Extract the flags */
@@ -436,545 +526,7 @@ cptr item_activation(object_type *o_ptr)
        /* if ((object_is_artifact(o_ptr) || object_is_ego(o_ptr)) && (o_ptr->xtra2)) */
        if (o_ptr->xtra2)
        {
-               switch (o_ptr->xtra2)
-               {
-#ifdef JP
-                       /* General activation */
-
-                       case ACT_SUNLIGHT:
-                               return "ÂÀÍÛ¸÷Àþ : 10 ¥¿¡¼¥óËè";
-                       case ACT_BO_MISS_1:
-                               return "¥Þ¥¸¥Ã¥¯¡¦¥ß¥µ¥¤¥ë(2d6) : 2 ¥¿¡¼¥óËè";
-                       case ACT_BA_POIS_1:
-                               return "°­½­±À(12) : 4+d4 ¥¿¡¼¥óËè";
-                       case ACT_BO_ELEC_1:
-                               return "¥µ¥ó¥À¡¼¡¦¥Ü¥ë¥È(4d8) : 5+d5 ¥¿¡¼¥óËè";
-                       case ACT_BO_ACID_1:
-                               return "¥¢¥·¥Ã¥É¡¦¥Ü¥ë¥È(5d8) : 6+d6 ¥¿¡¼¥óËè";
-                       case ACT_BO_COLD_1:
-                               return "¥¢¥¤¥¹¡¦¥Ü¥ë¥È(6d8) : 7+d7 ¥¿¡¼¥óËè";
-                       case ACT_BO_FIRE_1:
-                               return "¥Õ¥¡¥¤¥¢¡¦¥Ü¥ë¥È(9d8) : 8+d8 ¥¿¡¼¥óËè";
-                       case ACT_BA_COLD_1:
-                               return "¥¢¥¤¥¹¡¦¥Ü¡¼¥ë(48) : 6+d6 ¥¿¡¼¥óËè";
-                       case ACT_BA_FIRE_1:
-                               return "¥Õ¥¡¥¤¥¢¡¦¥Ü¡¼¥ë(72) : 9+d9 ¥¿¡¼¥óËè";
-                       case ACT_DRAIN_1:
-                               return "Ã⩹¶·â(100) : 100+d100 ¥¿¡¼¥óËè";
-                       case ACT_BA_COLD_2:
-                               return "¥¢¥¤¥¹¡¦¥Ü¡¼¥ë(100) : 12+d12 ¥¿¡¼¥óËè";
-                       case ACT_BA_ELEC_2:
-                               return "¥µ¥ó¥À¡¼¡¦¥Ü¡¼¥ë(100) : 12+d12 ¥¿¡¼¥óËè";
-                       case ACT_DRAIN_2:
-                               return "À¸Ì¿Îϵۼý(120) : 400 ¥¿¡¼¥óËè";
-                       case ACT_VAMPIRE_1:
-                               return "µÛ·ì¥É¥ì¥¤¥ó(3*50) : 400 ¥¿¡¼¥óËè";
-                       case ACT_BO_MISS_2:
-                               return "Ìð(150) : 90+d90 ¥¿¡¼¥óËè";
-                       case ACT_BA_FIRE_3:
-                               return "µðÂç¥Õ¥¡¥¤¥¢¡¦¥Ü¡¼¥ë(300) : 225+d225 ¥¿¡¼¥óËè";
-                       case ACT_BA_COLD_3:
-                               return "µðÂ祢¥¤¥¹¡¦¥Ü¡¼¥ë(400) : 325+d325 ¥¿¡¼¥óËè";
-                       case ACT_BA_ELEC_3:
-                               return "µðÂ祵¥ó¥À¡¼¡¦¥Ü¡¼¥ë(500) : 425+d425 ¥¿¡¼¥óËè";
-                       case ACT_WHIRLWIND:
-                               return "¥«¥Þ¥¤¥¿¥Á : 250 ¥¿¡¼¥óËè";
-                       case ACT_VAMPIRE_2:
-                               return "µÛ·ì¥É¥ì¥¤¥ó(3*100) : 400 ¥¿¡¼¥óËè";
-                       case ACT_CALL_CHAOS:
-                               return "º®ÆÙ¾¤Íè : 350 ¥¿¡¼¥óËè"; /*nuke me*/
-                       case ACT_ROCKET:
-                               return "¥í¥±¥Ã¥È(120+¥ì¥Ù¥ë) : 400 ¥¿¡¼¥óËè";
-                       case ACT_DISP_EVIL:
-                               return "¼Ù°­Â໶(x5) : 100+d100 ¥¿¡¼¥óËè";
-                       case ACT_BA_MISS_3:
-                               return "¥¨¥ì¥á¥ó¥È¤Î¥Ö¥ì¥¹(300) : 200+d200 ¥¿¡¼¥óËè";
-                       case ACT_DISP_GOOD:
-                               return "Á±ÎÉÂ໶(x5) : 100+d100 ¥¿¡¼¥óËè";
-                       case ACT_BO_MANA:
-                               return "ËâË¡¤ÎÌð(150) : 90+d90 ¥¿¡¼¥óËè";
-                       case ACT_BA_FIRE_2:
-                               return "µðÂç¥Õ¥¡¥¤¥¢¡¦¥Ü¡¼¥ë(120) : 15 ¥¿¡¼¥óËè";
-                       case ACT_BA_WATER:
-                               return "¥¦¥©¡¼¥¿¡¼¡¦¥Ü¡¼¥ë(200) : 250 ¥¿¡¼¥óËè";
-                       case ACT_BA_STAR:
-                               return "µðÂ祹¥¿¡¼¡¦¥Ü¡¼¥ë(200) : 200+d200 ¥¿¡¼¥óËè";
-                       case ACT_BA_DARK:
-                               return "°Å¹õ¤ÎÍò(250) : 150+d150 ¥¿¡¼¥óËè";
-                       case ACT_BA_MANA:
-                               return "ËâÎϤÎÍò(250) : 150+d150 ¥¿¡¼¥óËè";
-                       case ACT_PESTICIDE:
-                               return "³²Ãî¤Î¶î½ü : 55+d55¥¿¡¼¥óËè";
-                       case ACT_BLINDING_LIGHT:
-                               return "âÁ¤·¤¤¸÷ : 250 ¥¿¡¼¥óËè";
-                       case ACT_BIZARRE:
-                               return "¿®¤¸Æñ¤¤¤³¤È : 450+d450 ¥¿¡¼¥óËè";
-                       case ACT_CAST_BA_STAR:
-                               return "¥¹¥¿¡¼¡¦¥Ü¡¼¥ë¡¦¥À¥¹¥È(150) : 1000 ¥¿¡¼¥óËè";
-                       case ACT_BLADETURNER:
-                               return "¥¨¥ì¥á¥ó¥È¤Î¥Ö¥ì¥¹(300), »Îµ¤¹âÍÈ¡¢½ËÊ¡¡¢ÂÑÀ­ : 400 ¥¿¡¼¥óËè";
-                       case ACT_BA_ACID_1:
-                               return "¥¢¥·¥Ã¥É¡¦¥Ü¡¼¥ë(100) : 12+d12 ¥¿¡¼¥óËè";
-                       case ACT_BR_FIRE:
-                               if ((o_ptr->tval == TV_RING) && (o_ptr->sval == SV_RING_FLAMES))
-                                       return "²Ð±ê¤Î¥Ö¥ì¥¹ (200) ¤È²Ð¤Ø¤ÎÂÑÀ­ : 200 ¥¿¡¼¥óËè";
-                               return "²Ð±ê¤Î¥Ö¥ì¥¹ (200) : 250 ¥¿¡¼¥óËè";
-                       case ACT_BR_COLD:
-                               if ((o_ptr->tval == TV_RING) && (o_ptr->sval == SV_RING_ICE))
-                                       return "Î䵤¤Î¥Ö¥ì¥¹ (200) ¤ÈÎ䵤¤Ø¤ÎÂÑÀ­ : 200 ¥¿¡¼¥óËè";
-                               return "Î䵤¤Î¥Ö¥ì¥¹ (200) : 250 ¥¿¡¼¥óËè";
-                       case ACT_BR_DRAGON:
-                               return item_activation_dragon_breath(o_ptr);
-
-                       case ACT_CONFUSE:
-                               return "¥Ñ¥Ë¥Ã¥¯¡¦¥â¥ó¥¹¥¿¡¼ : 15 ¥¿¡¼¥óËè";
-                       case ACT_SLEEP:
-                               return "¼þ°Ï¤Î¥â¥ó¥¹¥¿¡¼¤ò̲¤é¤»¤ë : 55 ¥¿¡¼¥óËè";
-                       case ACT_QUAKE:
-                               return "ÃÏ¿Ì : 50 ¥¿¡¼¥óËè";
-                       case ACT_TERROR:
-                               return "¶²¹² : 3*(¥ì¥Ù¥ë+10) ¥¿¡¼¥óËè";
-                       case ACT_TELE_AWAY:
-                               return "¥Æ¥ì¥Ý¡¼¥È¡¦¥¢¥¦¥§¥¤ : 150 ¥¿¡¼¥óËè";
-                       case ACT_BANISH_EVIL:
-                               return "¼Ù°­¾ÃÌÇ : 250+d250 ¥¿¡¼¥óËè";
-                       case ACT_GENOCIDE:
-                               return "Ëõ»¦ : 500 ¥¿¡¼¥óËè";
-                       case ACT_MASS_GENO:
-                               return "¼þÊÕËõ»¦ : 1000 ¥¿¡¼¥óËè";
-                       case ACT_SCARE_AREA:
-                               return "¥â¥ó¥¹¥¿¡¼¶²¹² : 40+d40¥¿¡¼¥óËè";
-                       case ACT_AGGRAVATE:
-                               if(o_ptr->name1 != ART_HYOUSIGI) return "¥â¥ó¥¹¥¿¡¼¤òÅܤ餻¤ë : ¤¤¤Ä¤Ç¤â";
-                               return "Çï»ÒÌÚ¤òÂǤÁ¤Ê¤é¤¹ : ¤¤¤Ä¤Ç¤â";
-                       case ACT_CHARM_ANIMAL:
-                               return "ưʪ̥λ : 200 ¥¿¡¼¥óËè";
-                       case ACT_CHARM_UNDEAD:
-                               return "¥¢¥ó¥Ç¥Ã¥É½¾Â° : 333 ¥¿¡¼¥óËè";
-                       case ACT_CHARM_OTHER:
-                               return "¥â¥ó¥¹¥¿¡¼Ì¥Î» : 400 ¥¿¡¼¥óËè";
-                       case ACT_CHARM_ANIMALS:
-                               return "ưʪͧÏ : 500 ¥¿¡¼¥óËè";
-                       case ACT_CHARM_OTHERS:
-                               return "¼þÊÕ̥λ : 750 ¥¿¡¼¥óËè";
-                       case ACT_SUMMON_ANIMAL:
-                               return "ưʪ¾¤´­ : 200+d300 ¥¿¡¼¥óËè";
-                       case ACT_SUMMON_PHANTOM:
-                               return "¸¸Î´­ : 200+d200 ¥¿¡¼¥óËè";
-                       case ACT_SUMMON_ELEMENTAL:
-                               return "¥¨¥ì¥á¥ó¥¿¥ë¾¤´­ : 750 ¥¿¡¼¥óËè";
-                       case ACT_SUMMON_DEMON:
-                               return "°­Ë⾤´­ : 666+d333 ¥¿¡¼¥óËè";
-                       case ACT_SUMMON_UNDEAD:
-                               return "¥¢¥ó¥Ç¥Ã¥É¾¤´­ : 666+d333 ¥¿¡¼¥óËè";
-                       case ACT_SUMMON_HOUND:
-                               return "¥Ï¥¦¥ó¥É¾¤´­ : 300+d150 ¥¿¡¼¥óËè";
-                       case ACT_SUMMON_DAWN:
-                               return "¶Ç¤Î»ÕÃľ¤´­ : 500+d500 ¥¿¡¼¥óËè";
-                       case ACT_SUMMON_OCTOPUS:
-                               return "Âý¤ÎÂç·²¾¤´­ : 300+d150¥¿¡¼¥óËè";
-
-                       case ACT_CHOIR_SINGS:
-                               return "²óÉü(777)¡¢Ìþ¤·¡¢»Îµ¤¹âÍÈ : 300 ¥¿¡¼¥óËè";
-                       case ACT_CURE_LW:
-                               return "¶²Éݽüµî/ÂÎÎϲóÉü(30) : 10 ¥¿¡¼¥óËè";
-                       case ACT_CURE_MW:
-                               return "½ý²óÉü(4d8) : 3+d3 ¥¿¡¼¥óËè";
-                       case ACT_CURE_POISON:
-                               return "¶²Éݽüµî/ÆǾä· : 5 ¥¿¡¼¥óËè";
-                       case ACT_REST_LIFE:
-                               return "·Ð¸³ÃÍÉü³è : 450 ¥¿¡¼¥óËè";
-                       case ACT_REST_ALL:
-                               return "Á´¥¹¥Æ¡¼¥¿¥¹¤È·Ð¸³ÃÍÉü³è : 750 ¥¿¡¼¥óËè";
-                       case ACT_CURE_700:
-                               return "ÂÎÎϲóÉü(700) : 250 ¥¿¡¼¥óËè";
-                       case ACT_CURE_1000:
-                               return "ÂÎÎϲóÉü(1000) : 888 ¥¿¡¼¥óËè";
-                       case ACT_CURING:
-                               return "Ìþ¤· : 100¥¿¡¼¥óËè";
-                       case ACT_CURE_MANA_FULL:
-                               return "ËâÎÏÉü³è: 777 ¥¿¡¼¥óËè";
-                       case ACT_ESP:
-                               return "¥Æ¥ì¥Ñ¥·¡¼(´ü´Ö 25+d30) : 200 ¥¿¡¼¥óËè";
-                       case ACT_BERSERK:
-                               /* return "»Îµ¤¹âÍȤȽËÊ¡(´ü´Ö 50+d50) : 100+d100 ¥¿¡¼¥óËè"; */
-                               return "¶¸Àï»Î²½(25+d25¥¿¡¼¥ó) : 75+d75 ¥¿¡¼¥óËè";
-                       case ACT_PROT_EVIL:
-                               return "Âмٰ­·ë³¦(´ü´Ö 3*¥ì¥Ù¥ë+d25) : 200+d200 ¥¿¡¼¥óËè";
-                       case ACT_RESIST_ALL:
-                               return "Á´ÂÑÀ­(´ü´Ö 20+d20) : 111 ¥¿¡¼¥óËè";
-                       case ACT_SPEED:
-                               return "²Ã®(´ü´Ö 20+d20) : 250 ¥¿¡¼¥óËè";
-                       case ACT_XTRA_SPEED:
-                               return "²Ã®(´ü´Ö 75+d75) : 200+d200 ¥¿¡¼¥óËè";
-                       case ACT_WRAITH:
-                               return "Í©Âβ½(´ü´Ö (¥ì¥Ù¥ë/2)+d(¥ì¥Ù¥ë/2)) : 1000 ¥¿¡¼¥óËè";
-                       case ACT_INVULN:
-                               return "̵Ũ²½(´ü´Ö 8+d8) : 1000 ¥¿¡¼¥óËè";
-                       case ACT_HELO:
-                               return "»Îµ¤¹âÍÈ : 30+d30¥¿¡¼¥óËè";
-                       case ACT_HELO_SPEED:
-                               return "»Îµ¤¹âÍÈ, ¥¹¥Ô¡¼¥É(´ü´Ö 50+d50¥¿¡¼¥ó) : 100+d200 ¥¿¡¼¥óËè";
-                       case ACT_RESIST_ACID:
-                               if ((o_ptr->tval == TV_RING) && (o_ptr->sval == SV_RING_ACID))
-                                       return "¥¢¥·¥Ã¥É¡¦¥Ü¡¼¥ë (100) ¤È»À¤Ø¤ÎÂÑÀ­ : 40+d40 ¥¿¡¼¥óËè";
-                               return "»À¤Ø¤ÎÂÑÀ­(´ü´Ö 20+d20) : 40+d40 ¥¿¡¼¥óËè";
-                       case ACT_RESIST_FIRE:
-                               if ((o_ptr->tval == TV_RING) && (o_ptr->sval == SV_RING_FLAMES))
-                                       return "¥Õ¥¡¥¤¥¢¡¦¥Ü¡¼¥ë (100) ¤È²Ð¤Ø¤ÎÂÑÀ­ : 40+d40 ¥¿¡¼¥óËè";
-                               return "²Ð±ê¤Ø¤ÎÂÑÀ­(´ü´Ö 20+d20) : 40+d40 ¥¿¡¼¥óËè";
-                       case ACT_RESIST_COLD:
-                               if ((o_ptr->tval == TV_RING) && (o_ptr->sval == SV_RING_ICE))
-                                       return "¥¢¥¤¥¹¡¦¥Ü¡¼¥ë (100) ¤ÈÎ䵤¤Ø¤ÎÂÑÀ­ : 40+d40 ¥¿¡¼¥óËè";
-                               return "Î䵤¤Ø¤ÎÂÑÀ­(´ü´Ö 20+d20) : 40+d40 ¥¿¡¼¥óËè";
-                       case ACT_RESIST_ELEC:
-                               if ((o_ptr->tval == TV_RING) && (o_ptr->sval == SV_RING_ELEC))
-                                       return "¥µ¥ó¥À¡¼¡¦¥Ü¡¼¥ë (100) ¤ÈÅÅ·â¤Ø¤ÎÂÑÀ­ : 40+d40 ¥¿¡¼¥óËè";
-                               return "ÅÅ·â¤Ø¤ÎÂÑÀ­(´ü´Ö 20+d20) : 40+d40 ¥¿¡¼¥óËè";
-                       case ACT_RESIST_POIS:
-                               return "ÆǤؤÎÂÑÀ­(´ü´Ö 20+d20) : 40+d40 ¥¿¡¼¥óËè";
-
-                       case ACT_LIGHT:
-                               return "¥¤¥ë¥ß¥Í¡¼¥·¥ç¥ó : 10+d10 ¥¿¡¼¥óËè";
-                       case ACT_MAP_LIGHT:
-                               return "ËâË¡¤ÎÃϿޤȸ÷ : 50+d50 ¥¿¡¼¥óËè";
-                       case ACT_DETECT_ALL:
-                               return "Á´´¶ÃΠ: 55+d55 ¥¿¡¼¥óËè";
-                       case ACT_DETECT_XTRA:
-                               return "Á´´¶ÃΡ¢Ãµº÷¡¢*´ÕÄê* : 100 ¥¿¡¼¥óËè";
-                       case ACT_ID_FULL:
-                               return "*´ÕÄê* : 75 ¥¿¡¼¥óËè";
-                       case ACT_ID_PLAIN:
-                               return "´ÕÄê : 10 ¥¿¡¼¥óËè";
-                       case ACT_RUNE_EXPLO:
-                               return "Çúȯ¤Î¥ë¡¼¥ó : 200 ¥¿¡¼¥óËè";
-                       case ACT_RUNE_PROT:
-                               return "¼é¤ê¤Î¥ë¡¼¥ó : 400 ¥¿¡¼¥óËè";
-                       case ACT_SATIATE:
-                               return "¶õÊ¢½¼Â­ : 200 ¥¿¡¼¥óËè";
-                       case ACT_DEST_DOOR:
-                               return "¥É¥¢Ç˲õ : 10 ¥¿¡¼¥óËè";
-                       case ACT_STONE_MUD:
-                               return "´äÀÐÍϲò : 3 ¥¿¡¼¥óËè";
-                       case ACT_RECHARGE:
-                               return "ËâÎϽ¼Å¶ : 70 ¥¿¡¼¥óËè";
-                       case ACT_ALCHEMY:
-                               return "Ï£¶â½Ñ : 500 ¥¿¡¼¥óËè";
-                       case ACT_DIM_DOOR:
-                               return "¼¡¸µ¤ÎÈâ : 100 ¥¿¡¼¥óËè";
-                       case ACT_TELEPORT:
-                               return "¥Æ¥ì¥Ý¡¼¥È : 25 ¥¿¡¼¥óËè";
-                       case ACT_RECALL:
-                               return "µ¢´Ô¤Î¾Û : 200 ¥¿¡¼¥óËè";
-                       case ACT_JUDGE:
-                               return "ÂÎÎϤȰú¤­Âؤ¨¤ËÀéΤ´ã¤Èµ¢´Ô : 20+d20 ¥¿¡¼¥óËè";
-                       case ACT_TELEKINESIS:
-                               return "ʪÂΤò°ú¤­´ó¤»¤ë(½ÅÎÌ25kg¤Þ¤Ç) : 25+d25¥¿¡¼¥óËè";
-                       case ACT_DETECT_UNIQUE:
-                               return "¤³¤Î³¬¤Ë¤¤¤ë¥æ¥Ë¡¼¥¯¥â¥ó¥¹¥¿¡¼¤òɽ¼¨ : 200¥¿¡¼¥óËè";
-                       case ACT_ESCAPE:
-                               return "ƨÁö : 35 ¥¿¡¼¥óËè";
-                       case ACT_DISP_CURSE_XTRA:
-                               return "*²ò¼ö*¤ÈÄ´ºº: ¤¤¤Ä¤Ç¤â";
-                       case ACT_BRAND_FIRE_BOLTS:
-                               return "¿ÏÀè¤Î¥Õ¥¡¥¤¥¢¡¦¥Ü¥ë¥È : 999 ¥¿¡¼¥óËè";
-                       case ACT_RECHARGE_XTRA:
-                               return "ËâÎϽ¼Å¶ : 200 ¥¿¡¼¥óËè";
-                       case ACT_LORE:
-                               return "´í¸±¤òȼ¤¦´ÕÄê : ¤¤¤Ä¤Ç¤â";
-                       case ACT_SHIKOFUMI:
-                               return "»Í¸ÔƧ¤ß : 100+d100 ¥¿¡¼¥óËè";
-                       case ACT_PHASE_DOOR:
-                               return "¥·¥ç¡¼¥È¡¦¥Æ¥ì¥Ý¡¼¥È : 10 ¥¿¡¼¥óËè";
-                       case ACT_DETECT_ALL_MONS:
-                               return "Á´¥â¥ó¥¹¥¿¡¼´¶ÃΠ: 150 ¥¿¡¼¥óËè";
-                       case ACT_ULTIMATE_RESIST:
-                               return "»Îµ¤¹âÍÈ¡¢½ËÊ¡¡¢µæ¶Ë¤ÎÂÑÀ­ : 777 ¥¿¡¼¥óËè";
-
-                       /* Unique activation */
-                       case ACT_FISHING:
-                               return "Äà¤ê¤ò¤¹¤ë : ¤¤¤Ä¤Ç¤â";
-                       case ACT_INROU:
-                               return "Îã¤Î¥¢¥ì : 150+d150 ¥¿¡¼¥óËè";
-                       case ACT_MURAMASA:
-                               return "ÏÓÎϤξ徺 : ³ÎΨ50%¤Ç²õ¤ì¤ë";
-                       case ACT_BLOODY_MOON:
-                               return "°À­Êѹ¹ : 3333 ¥¿¡¼¥óËè";
-                       case ACT_CRIMSON:
-                               return "¥Õ¥¡¥¤¥¢¡ª : 15 ¥¿¡¼¥óËè";
-
-                       default:
-                               return "̤ÄêµÁ";
-#else
-                       /* General activation */
-
-                       case ACT_SUNLIGHT:
-                               return "beam of sunlight every 10 turns";
-                       case ACT_BO_MISS_1:
-                               return "magic missile (2d6) every 2 turns";
-                       case ACT_BA_POIS_1:
-                               return "stinking cloud (12) every 4+d4 turns";
-                       case ACT_BO_ELEC_1:
-                               return "lightning bolt (4d8) every 5+d5 turns";
-                       case ACT_BO_ACID_1:
-                               return "acid bolt (5d8) every 6+d6 turns";
-                       case ACT_BO_COLD_1:
-                               return "frost bolt (6d8) every 7+d7 turns";
-                       case ACT_BO_FIRE_1:
-                               return "fire bolt (9d8) every 8+d8 turns";
-                       case ACT_BA_COLD_1:
-                               return "ball of cold (48) every 6+d6 turns";
-                       case ACT_BA_FIRE_1:
-                               return "ball of fire (72) every 9+d9 turns";
-                       case ACT_DRAIN_1:
-                               return "a strangling attack (100) every 100+d100 turns";
-                       case ACT_BA_COLD_2:
-                               return "ball of cold (100) every 12+d12 turns";
-                       case ACT_BA_ELEC_2:
-                               return "ball of lightning (100) every 12+d12 turns";
-                       case ACT_DRAIN_2:
-                               return "drain life (120) every 400 turns";
-                       case ACT_VAMPIRE_1:
-                               return "vampiric drain (3*50) every 400 turns";
-                       case ACT_BO_MISS_2:
-                               return "arrows (150) every 90+d90 turns";
-                       case ACT_BA_FIRE_2:
-                               return "fire ball (300) every 225+d225 turns";
-                       case ACT_BA_COLD_3:
-                               return "ball of cold (400) every 325+d325 turns";
-                       case ACT_BA_ELEC_3:
-                               return "ball of lightning (500) every 425+d425 turns";
-                       case ACT_WHIRLWIND:
-                               return "whirlwind attack every 250 turns";
-                       case ACT_VAMPIRE_2:
-                               return "vampiric drain (3*100) every 400 turns";
-                       case ACT_CALL_CHAOS:
-                               return "call chaos every 350 turns";
-                       case ACT_ROCKET:
-                               return "launch rocket (120+level) every 400 turns";
-                       case ACT_DISP_EVIL:
-                               return "dispel evil (x5) every 100+d100 turns";
-                       case ACT_BA_MISS_3:
-                               return "elemental breath (300) every 200+d200 turns";
-                       case ACT_DISP_GOOD:
-                               return "dispel good (x5) every 100+d100 turns";
-                       case ACT_BO_MANA:
-                               return "a magical arrow (150) every 90+d90 turns";
-                       case ACT_BA_FIRE_2:
-                               return "large fire ball (120) every 15 turns";
-                       case ACT_BA_WATER:
-                               return "water ball (200) every 250 turns";
-                       case ACT_BA_STAR:
-                               return "large star ball (200) every 200+d200 turns";
-                       case ACT_BA_DARK:
-                               return "darkness storm (250) every 150+d150 turns";
-                       case ACT_BA_MANA:
-                               return "a mana storm (250) every 150+d150 turns";
-                       case ACT_PESTICIDE:
-                               return "dispel small life every 55+d55 turns";
-                       case ACT_BLINDING_LIGHT:
-                               return "blinding light every 250 turns";
-                       case ACT_BIZARRE:
-                               return "bizarre things every 450+d450 turns";
-                       case ACT_CAST_BA_STAR:
-                               return "cast star balls (150) every 1000 turns";
-                       case ACT_BLADETURNER:
-                               return "breathe elements (300), hero, bless, and resistance every 400 turns";
-                       case ACT_BA_ACID_1:
-                               return "ball of acid (100) every 12+d12 turns";
-                       case ACT_BR_FIRE:
-                               if ((o_ptr->tval == TV_RING) && (o_ptr->sval == SV_RING_FLAMES))
-                                       return "breath of fire (200) and resist fire every 200 turns";
-                               return "fire breath (200) every 250 turns";
-                       case ACT_BR_COLD:
-                               if ((o_ptr->tval == TV_RING) && (o_ptr->sval == SV_RING_ICE))
-                                       return "breath of cold (200) and resist cold every 200 turns";
-                               return "cold breath (200) every 250 turns";
-                       case ACT_BR_DRAGON:
-                               return item_activation_dragon_breath(o_ptr);
-
-                       case ACT_CONFUSE:
-                               return "confuse monster every 15 turns";
-                       case ACT_SLEEP:
-                               return "sleep nearby monsters every 55 turns";
-                       case ACT_QUAKE:
-                               return "earthquake every 50 turns";
-                       case ACT_TERROR:
-                               return "terror every 3 * (level+10) turns";
-                       case ACT_TELE_AWAY:
-                               return "teleport away every 200 turns";
-                       case ACT_BANISH_EVIL:
-                               return "banish evil every 250+d250 turns";
-                       case ACT_GENOCIDE:
-                               return "genocide every 500 turns";
-                       case ACT_MASS_GENO:
-                               return "mass genocide every 1000 turns";
-                       case ACT_SCARE_AREA:
-                               return "frighten monsters every 40+d40 turns";
-                       case ACT_AGGRAVATE:
-                               if (o_ptr->name1 == ART_HYOUSIGI) return "beat wooden clappers every turn";
-                               return "aggravete monsters every turn";
-
-                       case ACT_CHARM_ANIMAL:
-                               return "charm animal every 200 turns";
-                       case ACT_CHARM_UNDEAD:
-                               return "enslave undead every 333 turns";
-                       case ACT_CHARM_OTHER:
-                               return "charm monster every 400 turns";
-                       case ACT_CHARM_ANIMALS:
-                               return "animal friendship every 500 turns";
-                       case ACT_CHARM_OTHERS:
-                               return "mass charm every 750 turns";
-                       case ACT_SUMMON_ANIMAL:
-                               return "summon animal every 200+d300 turns";
-                       case ACT_SUMMON_PHANTOM:
-                               return "summon phantasmal servant every 200+d200 turns";
-                       case ACT_SUMMON_ELEMENTAL:
-                               return "summon elemental every 750 turns";
-                       case ACT_SUMMON_DEMON:
-                               return "summon demon every 666+d333 turns";
-                       case ACT_SUMMON_UNDEAD:
-                               return "summon undead every 666+d333 turns";
-                       case ACT_SUMMON_HOUND:
-                               return "summon hound every 300+d150 turns";
-                       case ACT_SUMMON_DAWN:
-                               return "summon the Legion of the Dawn every 500+d500 turns";
-                       case ACT_SUMMON_OCTOPUS:
-                               return "summon octopus every 300+d150 turns";
-
-                       case ACT_CHOIR_SINGS:
-                               return "heal 777 hit points, curing and heloism every 300 turns";
-                       case ACT_CURE_LW:
-                               return "remove fear and heal 30 hp every 10 turns";
-                       case ACT_CURE_MW:
-                               return "heal 4d8 and wounds every 3+d3 turns";
-                       case ACT_CURE_POISON:
-                               return "remove fear and cure poison every 5 turns";
-                       case ACT_REST_LIFE:
-                               return "restore life levels every 450 turns";
-                       case ACT_REST_ALL:
-                               return "restore stats and life levels every 750 turns";
-                       case ACT_CURE_700:
-                               return "heal 700 hit points every 250 turns";
-                       case ACT_CURE_1000:
-                               return "heal 1000 hit points every 888 turns";
-                       case ACT_CURING:
-                               return "curing every 100 turns";
-                       case ACT_CURE_MANA_FULL:
-                               return "restore mana every 777 turns";
-                       case ACT_ESP:
-                               return "telepathy (dur 25+d30) every 200 turns";
-                       case ACT_BERSERK:
-                               /* return "heroism and blessed (dur 50+d50) every 100+d100 turns"; */
-                               return "berserk (25+d25 turns) every 75+d75 turns";
-                       case ACT_PROT_EVIL:
-                               return "protect evil (dur level*3 + d25) every 200+d200 turns";
-                       case ACT_RESIST_ALL:
-                               return "resist elements (dur 20+d20) every 111 turns";
-                       case ACT_SPEED:
-                               return "speed (dur 20+d20) every 100+d100 turns";
-                       case ACT_XTRA_SPEED:
-                               return "speed (dur 75+d75) every 100+d100 turns";
-                       case ACT_WRAITH:
-                               return "wraith form (dur level/2 + d(level/2)) every 1000 turns";
-                       case ACT_INVULN:
-                               return "invulnerability (dur 8+d8) every 1000 turns";
-                       case ACT_HELO:
-                               return "heroism every 30+d30 turns";
-                       case ACT_HELO_SPEED:
-                               return "hero and +10 to speed (50) every 100+200d turns";
-                       case ACT_RESIST_ACID:
-                               if ((o_ptr->tval == TV_RING) && (o_ptr->sval == SV_RING_ACID))
-                                       return "ball of acid (100) and resist acid every 40+d40 turns";
-                               return "resist acid (dur 20+d20) every 40+d40 turns";
-                       case ACT_RESIST_FIRE:
-                               if ((o_ptr->tval == TV_RING) && (o_ptr->sval == SV_RING_FLAMES))
-                                       return "ball of fire (100) and resist fire every 40+d40 turns";
-                               return "resist fire (dur 20+d20) every 40+d40 turns";
-                       case ACT_RESIST_COLD:
-                               if ((o_ptr->tval == TV_RING) && (o_ptr->sval == SV_RING_ICE))
-                                       return "ball of cold (100) and resist cold every 40+d40 turns";
-                               return "resist cold (dur 20+d20) every 40+d40 turns";
-                       case ACT_RESIST_ELEC:
-                               if ((o_ptr->tval == TV_RING) && (o_ptr->sval == SV_RING_ELEC))
-                                       return "ball of elec (100) and resist elec every 40+d40 turns";
-                               return "resist thunder (dur 20+d20) every 40+d40 turns";
-                       case ACT_RESIST_POIS:
-                               return "resist poison (dur 20+d20) every 40+d40 turns";
-
-                       case ACT_LIGHT:
-                               return "light area (dam 2d15) every 10+d10 turns";
-                       case ACT_MAP_LIGHT:
-                               return "light (dam 2d15) & map area every 50+d50 turns";
-                       case ACT_DETECT_ALL:
-                               return "detection every 55+d55 turns";
-                       case ACT_DETECT_XTRA:
-                               return "detection, probing and identify true every 100 turns";
-                       case ACT_ID_FULL:
-                               return "identify true every 75 turns";
-                       case ACT_ID_PLAIN:
-                               return "identify spell every 10 turns";
-                       case ACT_RUNE_EXPLO:
-                               return "explosive rune every 200 turns";
-                       case ACT_RUNE_PROT:
-                               return "rune of protection every 400 turns";
-                       case ACT_SATIATE:
-                               return "satisfy hunger every 200 turns";
-                       case ACT_DEST_DOOR:
-                               return "destroy doors every 10 turns";
-                       case ACT_STONE_MUD:
-                               return "stone to mud every 3 turns";
-                       case ACT_RECHARGE:
-                               return "recharging every 70 turns";
-                       case ACT_ALCHEMY:
-                               return "alchemy every 500 turns";
-                       case ACT_DIM_DOOR:
-                               return "dimension door every 100 turns";
-                       case ACT_TELEPORT:
-                               return "teleport every 25 turns";
-                       case ACT_RECALL:
-                               return "word of recall every 200 turns";
-                       case ACT_TELEKINESIS:
-                               return "a telekinesis (500 lb) every 25+d25 turns";
-                       case ACT_JUDGE:
-                               return "clairvoyance and recall, draining you every 20+d20 turns";
-                       case ACT_DETECT_UNIQUE:
-                               return "list of the uniques on the level every 200 turns";
-                       case ACT_ESCAPE:
-                               return "a getaway every 35 turns";
-                       case ACT_DISP_CURSE_XTRA:
-                               return "dispel curse and probing every turn";
-                       case ACT_BRAND_FIRE_BOLTS:
-                               return "fire branding of bolts every 999 turns";
-                       case ACT_RECHARGE_XTRA:
-                               return "recharge item every 200 turns";
-                       case ACT_LORE:
-                               return "perilous identify every turn";
-                       case ACT_SHIKOFUMI:
-                               return "shiko every 100+d100 turns";
-                       case ACT_PHASE_DOOR:
-                               return "blink every 10 turns";
-                       case ACT_DETECT_ALL_MONS:
-                               return "detect all monsters every 150 turns";
-                       case ACT_ULTIMATE_RESIST:
-                               return "hero, bless, and ultimate resistance every 777 turns";
-
-                       /* Unique activation */
-                       case ACT_FISHING:
-                               return "fishing : every time";
-                       case ACT_INROU:
-                               return "reveal your identity every 150+d150 turns";
-                       case ACT_MURAMASA:
-                               return "increase STR (destroyed 50%)";
-                       case ACT_BLOODY_MOON:
-                               return "change zokusei every 3333 turns";
-                       case ACT_CRIMSON:
-                               return "fire! every 15 turns";
-
-                       default:
-                               return "something undefined";
-#endif
-               }
+               return item_activation_aux(o_ptr);
        }
 
        /* Special items */
index 7f710a1..4d5888e 100644 (file)
@@ -6683,133 +6683,255 @@ dragonbreath_type dragonbreath_info[] = {
  */
 activation_type activation_info[] =
 {
-       { "SUNLIGHT", ACT_SUNLIGHT, 10, 250, {10, 0} },
-       { "BO_MISS_1", ACT_BO_MISS_1, 10, 250, {2, 0} },
-       { "BA_POIS_1", ACT_BA_POIS_1, 10, 300, {4, 4} },
-       { "BO_ELEC_1", ACT_BO_ELEC_1, 20, 250, {5, 5} },
-       { "BO_ACID_1", ACT_BO_ACID_1, 20, 250, {6, 6} },
-       { "BO_COLD_1", ACT_BO_COLD_1, 20, 250, {7, 7} },
-       { "BO_FIRE_1", ACT_BO_FIRE_1, 20, 250, {8, 8} },
-       { "BA_COLD_1", ACT_BA_COLD_1, 30, 750, {6, 6} },
-       { "BA_FIRE_1", ACT_BA_FIRE_1, 30, 1000, {9, 9} },
-       { "DRAIN_1", ACT_DRAIN_1, 30, 500, {100, 100} },
-       { "BA_COLD_2", ACT_BA_COLD_2, 40, 1250, {12, 12} },
-       { "BA_ELEC_2", ACT_BA_ELEC_2, 40, 1500, {12, 12} },
-       { "BA_FIRE_2", ACT_BA_FIRE_2, 40, 1500, {15, 0} },
-       { "DRAIN_2", ACT_DRAIN_2, 40, 750, {400, 0} },
-       { "VAMPIRE_1", ACT_VAMPIRE_1, 40, 1000, {400, 0} },
-       { "BO_MISS_2", ACT_BO_MISS_2, 40, 1000, {90, 90} },
-       { "BA_FIRE_3", ACT_BA_FIRE_3, 60, 1750, {225, 225} },
-       { "BA_COLD_3", ACT_BA_COLD_3, 70, 2500, {325, 325} },
-       { "BA_ELEC_3", ACT_BA_ELEC_3, 70, 2500, {425, 425} },
-       { "WHIRLWIND", ACT_WHIRLWIND, 50, 7500, {250, 0} },
-       { "VAMPIRE_2", ACT_VAMPIRE_2, 50, 2500, {400, 0} },
-       { "CALL_CHAOS", ACT_CALL_CHAOS, 70, 5000, {350, 0} },
-       { "ROCKET", ACT_ROCKET, 70, 5000, {400, 0} },
-       { "DISP_EVIL", ACT_DISP_EVIL, 50, 4000, {100, 100} },
-       { "BA_MISS_3", ACT_BA_MISS_3, 50, 1500, {200, 200} },
-       { "DISP_GOOD", ACT_DISP_GOOD, 50, 3500, {100, 100} },
-       { "BO_MANA", ACT_BO_MANA, 40, 1500, {90, 90} },
-       { "BA_WATER", ACT_BA_WATER, 50, 2000, {250, 0} },
-       { "BA_STAR", ACT_BA_STAR, 50, 2200, {200, 200} },
-       { "BA_DARK", ACT_BA_DARK, 50, 2200, {150, 150} },
-       { "BA_MANA", ACT_BA_MANA, 70, 2500, {150, 150} },
-       { "PESTICIDE", ACT_PESTICIDE, 10, 500, {55, 55} },
-       { "BLINDING_LIGHT", ACT_BLINDING_LIGHT, 30, 5000, {250, 0} },
-       { "BIZARRE", ACT_BIZARRE, 90, 10000, {450, 450} },
-       { "CAST_BA_STAR", ACT_CAST_BA_STAR, 70, 7500, {1000, 0} },
-       { "BLADETURNER", ACT_BLADETURNER, 80, 20000, {400, 0} },
-       { "BA_ACID_1", ACT_BA_ACID_1, 30, 1000, {12, 12} },
-       { "BR_FIRE", ACT_BR_FIRE, 50, 5000, {-1, 0} },
-       { "BR_COLD", ACT_BR_COLD, 50, 5000, {-1, 0} },
-       { "BR_DRAGON", ACT_BR_DRAGON, 70, 10000, { 200, 200 } },
-
-       { "CONFUSE", ACT_CONFUSE, 10, 500, {15, 0} },
-       { "SLEEP", ACT_SLEEP, 10, 750, {55, 0} },
-       { "QUAKE", ACT_QUAKE, 30, 600, {50, 0} },
-       { "TERROR", ACT_TERROR, 20, 2500, {-1, 0} },
-       { "TELE_AWAY", ACT_TELE_AWAY, 20, 2000, {150, 0} },
-       { "BANISH_EVIL", ACT_BANISH_EVIL, 40, 2000, {250, 250} },
-       { "GENOCIDE", ACT_GENOCIDE, 50, 10000, {500, 0} },
-       { "MASS_GENO", ACT_MASS_GENO, 50, 10000, {1000, 0} },
-       { "SCARE_AREA", ACT_SCARE_AREA, 20, 2500, {40, 40} },
-       { "AGGRAVATE", ACT_AGGRAVATE, 0, 100, {0, 0} },
-
-       { "CHARM_ANIMAL", ACT_CHARM_ANIMAL, 40, 7500, {200, 0} },
-       { "CHARM_UNDEAD", ACT_CHARM_UNDEAD, 40, 10000, {333, 0} },
-       { "CHARM_OTHER", ACT_CHARM_OTHER, 40, 10000, {400, 0} },
-       { "CHARM_ANIMALS", ACT_CHARM_ANIMALS, 40, 12500, {500, 0} },
-       { "CHARM_OTHERS", ACT_CHARM_OTHERS, 40, 17500, {750, 0} },
-       { "SUMMON_ANIMAL", ACT_SUMMON_ANIMAL, 50, 10000, {200, 300} },
-       { "SUMMON_PHANTOM", ACT_SUMMON_PHANTOM, 50, 12000, {200, 200} },
-       { "SUMMON_ELEMENTAL", ACT_SUMMON_ELEMENTAL, 50, 15000, {750, 0} },
-       { "SUMMON_DEMON", ACT_SUMMON_DEMON, 50, 20000, {666, 333} },
-       { "SUMMON_UNDEAD", ACT_SUMMON_UNDEAD, 50, 20000, {666, 333} },
-       { "SUMMON_HOUND", ACT_SUMMON_HOUND, 50, 15000, {300, 150} },
-       { "SUMMON_DAWN", ACT_SUMMON_DAWN, 50, 15000, {500, 500} },
-       { "SUMMON_OCTOPUS", ACT_SUMMON_OCTOPUS, 50, 15000, {300, 150} },
-
-       { "CHOIR_SINGS", ACT_CHOIR_SINGS, 60, 20000, {300, 0} },
-       { "CURE_LW", ACT_CURE_LW, 10, 500, {10, 0} },
-       { "CURE_MW", ACT_CURE_MW, 20, 750, {3, 3} },
-       { "CURE_POISON", ACT_CURE_POISON, 10, 1000, {5, 0} },
-       { "REST_LIFE", ACT_REST_LIFE, 40, 7500, {450, 0} },
-       { "REST_ALL", ACT_REST_ALL, 30, 15000, {750, 0} },
-       { "CURE_700", ACT_CURE_700, 40, 10000, {250, 0} },
-       { "CURE_1000", ACT_CURE_1000, 50, 15000, {888, 0} },
-       { "CURING", ACT_CURING, 30, 5000, {100, 0} },
-       { "CURE_MANA_FULL", ACT_CURE_MANA_FULL, 60, 20000, {777, 0} },
-
-       { "ESP", ACT_ESP, 30, 1500, {200, 0} },
-       { "BERSERK", ACT_BERSERK, 10, 800, {75, 75} },
-       { "PROT_EVIL", ACT_PROT_EVIL, 30, 5000, {200, 200} },
-       { "RESIST_ALL", ACT_RESIST_ALL, 30, 5000, {111, 0} },
-       { "SPEED", ACT_SPEED, 40, 15000, {250, 0} },
-       { "XTRA_SPEED", ACT_XTRA_SPEED, 40, 25000, {200, 200} },
-       { "WRAITH", ACT_WRAITH, 90, 25000, {1000, 0} },
-       { "INVULN", ACT_INVULN, 90, 25000, {1000, 0} },
-       { "HELO", ACT_HELO, 10, 500, {30, 30} },
-       { "HELO_SPEED", ACT_HELO_SPEED, 30, 20000, {100, 200} },
-       { "RESIST_ACID", ACT_RESIST_ACID, 20, 2000, {40, 40} },
-       { "RESIST_FIRE", ACT_RESIST_FIRE, 20, 2000, {40, 40} },
-       { "RESIST_COLD", ACT_RESIST_COLD, 20, 2000, {40, 40} },
-       { "RESIST_ELEC", ACT_RESIST_ELEC, 20, 2000, {40, 40} },
-       { "RESIST_POIS", ACT_RESIST_POIS, 20, 2000, {40, 40} },
-
-       { "LIGHT", ACT_LIGHT, 10, 150, {10, 10} },
-       { "MAP_LIGHT", ACT_MAP_LIGHT, 30, 500, {50, 50} },
-       { "DETECT_ALL", ACT_DETECT_ALL, 30, 1000, {55, 55} },
-       { "DETECT_XTRA", ACT_DETECT_XTRA, 50, 12500, {100, 0} },
-       { "ID_FULL", ACT_ID_FULL, 50, 10000, {75, 0} },
-       { "ID_PLAIN", ACT_ID_PLAIN, 20, 1250, {10, 0} },
-       { "RUNE_EXPLO", ACT_RUNE_EXPLO, 40, 4000, {200, 0} },
-       { "RUNE_PROT", ACT_RUNE_PROT, 60, 10000, {400, 0} },
-       { "SATIATE", ACT_SATIATE, 10, 2000, {200, 0} },
-       { "DEST_DOOR", ACT_DEST_DOOR, 10, 100, {10, 0} },
-       { "STONE_MUD", ACT_STONE_MUD, 20, 1000, {3, 0} },
-       { "RECHARGE", ACT_RECHARGE, 30, 1000, {70, 0} },
-       { "ALCHEMY", ACT_ALCHEMY, 50, 10000, {500, 0} },
-       { "DIM_DOOR", ACT_DIM_DOOR, 50, 10000, {100, 0} },
-       { "TELEPORT", ACT_TELEPORT, 10, 2000, {25, 0} },
-       { "RECALL", ACT_RECALL, 30, 7500, {200, 0} },
-       { "JUDGE", ACT_JUDGE, 90, 50000, {20, 20} },
-       { "TELEKINESIS", ACT_TELEKINESIS, 20, 5500, {25, 25} },
-       { "DETECT_UNIQUE", ACT_DETECT_UNIQUE, 40, 10000, {200, 0} },
-       { "ESCAPE", ACT_ESCAPE, 10, 3000, {35, 0} },
-       { "DISP_CURSE_XTRA", ACT_DISP_CURSE_XTRA, 40, 30000, {0, 0} },
-       { "BRAND_FIRE_BOLTS", ACT_BRAND_FIRE_BOLTS, 40, 20000, {999, 0} },
-       { "RECHARGE_XTRA", ACT_RECHARGE_XTRA, 70, 30000, {200, 0} },
-       { "LORE", ACT_LORE, 10, 30000, {0, 0} },
-       { "SHIKOFUMI", ACT_SHIKOFUMI, 10, 10000, {100, 100} },
-       { "PHASE_DOOR", ACT_PHASE_DOOR, 10, 1500, {10, 0} },
-       { "DETECT_ALL_MONS", ACT_DETECT_ALL_MONS, 30, 3000, {150, 0} },
-       { "ULTIMATE_RESIST", ACT_ULTIMATE_RESIST, 90, 20000, {777, 0} },
-
-       { "FISHING", ACT_FISHING, 0, 100, {0, 0} },
-       { "INROU", ACT_INROU, 40, 15000, {150, 150} },
-       { "MURAMASA", ACT_MURAMASA, 0, 0, {-1, 0} },
-       { "BLOODY_MOON", ACT_BLOODY_MOON, 0, 0, {3333, 0} },
-       { "CRIMSON", ACT_CRIMSON, 0, 50000, {15, 0} },
-
-       { NULL, 0, 0, 0, {0, 0} }
+       { "SUNLIGHT", ACT_SUNLIGHT, 10, 250, {10, 0},
+         _("ÂÀÍÛ¸÷Àþ", "beam of sunlight") },
+       { "BO_MISS_1", ACT_BO_MISS_1, 10, 250, {2, 0},
+         _("¥Þ¥¸¥Ã¥¯¡¦¥ß¥µ¥¤¥ë(2d6)", "magic missile (2d6)") },
+       { "BA_POIS_1", ACT_BA_POIS_1, 10, 300, {4, 4},
+         _("°­½­±À(12)", "stinking cloud (12)") },
+       { "BO_ELEC_1", ACT_BO_ELEC_1, 20, 250, {5, 5},
+         _("¥µ¥ó¥À¡¼¡¦¥Ü¥ë¥È(4d8)", "lightning bolt (4d8)") },
+       { "BO_ACID_1", ACT_BO_ACID_1, 20, 250, {6, 6},
+         _("¥¢¥·¥Ã¥É¡¦¥Ü¥ë¥È(5d8)", "acid bolt (5d8)") },
+       { "BO_COLD_1", ACT_BO_COLD_1, 20, 250, {7, 7},
+         _("¥¢¥¤¥¹¡¦¥Ü¥ë¥È(6d8)", "frost bolt (6d8)") },
+       { "BO_FIRE_1", ACT_BO_FIRE_1, 20, 250, {8, 8},
+         _("¥Õ¥¡¥¤¥¢¡¦¥Ü¥ë¥È(9d8)", "fire bolt (9d8)") },
+       { "BA_COLD_1", ACT_BA_COLD_1, 30, 750, {6, 6},
+         _("¥¢¥¤¥¹¡¦¥Ü¡¼¥ë(48)", "ball of cold (48)") },
+       { "BA_FIRE_1", ACT_BA_FIRE_1, 30, 1000, {9, 9},
+         _("¥Õ¥¡¥¤¥¢¡¦¥Ü¡¼¥ë(72)", "ball of fire (72)") },
+       { "DRAIN_1", ACT_DRAIN_1, 30, 500, {100, 100},
+         _("Ã⩹¶·â(100)", "a strangling attack (100)") },
+       { "BA_COLD_2", ACT_BA_COLD_2, 40, 1250, {12, 12},
+         _("¥¢¥¤¥¹¡¦¥Ü¡¼¥ë(100)", "ball of cold (100)") },
+       { "BA_ELEC_2", ACT_BA_ELEC_2, 40, 1500, {12, 12},
+         _("¥µ¥ó¥À¡¼¡¦¥Ü¡¼¥ë(100)", "ball of lightning (100)") },
+       { "BA_FIRE_2", ACT_BA_FIRE_2, 40, 1500, {15, 0},
+         _("µðÂç¥Õ¥¡¥¤¥¢¡¦¥Ü¡¼¥ë(120)", "large fire ball (120)") },
+       { "DRAIN_2", ACT_DRAIN_2, 40, 750, {400, 0},
+         _("À¸Ì¿Îϵۼý(120)", "drain life (120)") },
+       { "VAMPIRE_1", ACT_VAMPIRE_1, 40, 1000, {400, 0},
+         _("µÛ·ì¥É¥ì¥¤¥ó(3*50)", "vampiric drain (3*50)") },
+       { "BO_MISS_2", ACT_BO_MISS_2, 40, 1000, {90, 90},
+         _("Ìð(150)", "arrows (150)") },
+       { "BA_FIRE_3", ACT_BA_FIRE_3, 60, 1750, {225, 225},
+         _("µðÂç¥Õ¥¡¥¤¥¢¡¦¥Ü¡¼¥ë(300)", "fire ball (300)") },
+       { "BA_COLD_3", ACT_BA_COLD_3, 70, 2500, {325, 325},
+         _("µðÂ祢¥¤¥¹¡¦¥Ü¡¼¥ë(400)", "ball of cold (400)") },
+       { "BA_ELEC_3", ACT_BA_ELEC_3, 70, 2500, {425, 425},
+         _("µðÂ祵¥ó¥À¡¼¡¦¥Ü¡¼¥ë(500)", "ball of lightning (500)") },
+       { "WHIRLWIND", ACT_WHIRLWIND, 50, 7500, {250, 0},
+         _("¥«¥Þ¥¤¥¿¥Á", "whirlwind attack") },
+       { "VAMPIRE_2", ACT_VAMPIRE_2, 50, 2500, {400, 0},
+         _("µÛ·ì¥É¥ì¥¤¥ó(3*100)", "vampiric drain (3*100)") },
+       { "CALL_CHAOS", ACT_CALL_CHAOS, 70, 5000, {350, 0},
+         _("º®ÆÙ¾¤Íè", "call chaos") },
+       { "ROCKET", ACT_ROCKET, 70, 5000, {400, 0},
+         _("¥í¥±¥Ã¥È(120+¥ì¥Ù¥ë)", "launch rocket (120+level)") },
+       { "DISP_EVIL", ACT_DISP_EVIL, 50, 4000, {100, 100},
+         _("¼Ù°­Â໶(x5)", "dispel evil (x5)") },
+       { "BA_MISS_3", ACT_BA_MISS_3, 50, 1500, {200, 200},
+         _("¥¨¥ì¥á¥ó¥È¤Î¥Ö¥ì¥¹(300)", "elemental breath (300)") },
+       { "DISP_GOOD", ACT_DISP_GOOD, 50, 3500, {100, 100},
+         _("Á±ÎÉÂ໶(x5)", "dispel good (x5)") },
+       { "BO_MANA", ACT_BO_MANA, 40, 1500, {90, 90},
+         _("ËâË¡¤ÎÌð(150)", "a magical arrow (150)") },
+       { "BA_WATER", ACT_BA_WATER, 50, 2000, {250, 0},
+         _("¥¦¥©¡¼¥¿¡¼¡¦¥Ü¡¼¥ë(200)", "water ball (200)") },
+       { "BA_STAR", ACT_BA_STAR, 50, 2200, {200, 200},
+         _("µðÂ祹¥¿¡¼¡¦¥Ü¡¼¥ë(200)", "large star ball (200)") },
+       { "BA_DARK", ACT_BA_DARK, 50, 2200, {150, 150},
+         _("°Å¹õ¤ÎÍò(250)", "darkness storm (250)") },
+       { "BA_MANA", ACT_BA_MANA, 70, 2500, {150, 150},
+         _("ËâÎϤÎÍò(250)", "a mana storm (250)") },
+       { "PESTICIDE", ACT_PESTICIDE, 10, 500, {55, 55},
+         _("³²Ãî¤Î¶î½ü", "dispel small life") },
+       { "BLINDING_LIGHT", ACT_BLINDING_LIGHT, 30, 5000, {250, 0},
+         _("âÁ¤·¤¤¸÷", "blinding light") },
+       { "BIZARRE", ACT_BIZARRE, 90, 10000, {450, 450},
+         _("¿®¤¸Æñ¤¤¤³¤È", "bizarre things") },
+       { "CAST_BA_STAR", ACT_CAST_BA_STAR, 70, 7500, {1000, 0},
+         _("¥¹¥¿¡¼¡¦¥Ü¡¼¥ë¡¦¥À¥¹¥È(150)", "cast star balls (150)") },
+       { "BLADETURNER", ACT_BLADETURNER, 80, 20000, {400, 0},
+         _("¥¨¥ì¥á¥ó¥È¤Î¥Ö¥ì¥¹(300), »Îµ¤¹âÍÈ¡¢½ËÊ¡¡¢ÂÑÀ­", "breathe elements (300), hero, bless, and resistance") },
+       { "BA_ACID_1", ACT_BA_ACID_1, 30, 1000, {12, 12},
+         _("¥¢¥·¥Ã¥É¡¦¥Ü¡¼¥ë(100)", "ball of acid (100)") },
+       { "BR_FIRE", ACT_BR_FIRE, 50, 5000, {-1, 0},
+         _("²Ð±ê¤Î¥Ö¥ì¥¹ (200)", "fire breath (200)") },
+       { "BR_COLD", ACT_BR_COLD, 50, 5000, {-1, 0},
+         _("Î䵤¤Î¥Ö¥ì¥¹ (200)", "cold breath (200)") },
+       { "BR_DRAGON", ACT_BR_DRAGON, 70, 10000, { 200, 200 },
+         "" /* built by item_activation_dragon_breath() */ },
+
+       { "CONFUSE", ACT_CONFUSE, 10, 500, {15, 0},
+         _("¥Ñ¥Ë¥Ã¥¯¡¦¥â¥ó¥¹¥¿¡¼", "confuse monster") },
+       { "SLEEP", ACT_SLEEP, 10, 750, {55, 0},
+         _("¼þ°Ï¤Î¥â¥ó¥¹¥¿¡¼¤ò̲¤é¤»¤ë", "sleep nearby monsters") },
+       { "QUAKE", ACT_QUAKE, 30, 600, {50, 0},
+         _("ÃÏ¿Ì", "earthquake") },
+       { "TERROR", ACT_TERROR, 20, 2500, {-1, 0},
+         _("¶²¹²", "terror") },
+       { "TELE_AWAY", ACT_TELE_AWAY, 20, 2000, {150, 0},
+         _("¥Æ¥ì¥Ý¡¼¥È¡¦¥¢¥¦¥§¥¤", "teleport away") },
+       { "BANISH_EVIL", ACT_BANISH_EVIL, 40, 2000, {250, 250},
+         _("¼Ù°­¾ÃÌÇ", "banish evil") },
+       { "GENOCIDE", ACT_GENOCIDE, 50, 10000, {500, 0},
+         _("Ëõ»¦", "genocide") },
+       { "MASS_GENO", ACT_MASS_GENO, 50, 10000, {1000, 0},
+         _("¼þÊÕËõ»¦", "mass genocide") },
+       { "SCARE_AREA", ACT_SCARE_AREA, 20, 2500, {40, 40},
+         _("¥â¥ó¥¹¥¿¡¼¶²¹²", "frighten monsters") },
+       { "AGGRAVATE", ACT_AGGRAVATE, 0, 100, {0, 0},
+         _("¥â¥ó¥¹¥¿¡¼¤òÅܤ餻¤ë", "aggravete monsters") },
+
+       { "CHARM_ANIMAL", ACT_CHARM_ANIMAL, 40, 7500, {200, 0},
+         _("ưʪ̥λ", "charm animal") },
+       { "CHARM_UNDEAD", ACT_CHARM_UNDEAD, 40, 10000, {333, 0},
+         _("¥¢¥ó¥Ç¥Ã¥É½¾Â°", "enslave undead") },
+       { "CHARM_OTHER", ACT_CHARM_OTHER, 40, 10000, {400, 0},
+         _("¥â¥ó¥¹¥¿¡¼Ì¥Î»", "charm monster") },
+       { "CHARM_ANIMALS", ACT_CHARM_ANIMALS, 40, 12500, {500, 0},
+         _("ưʪͧÏÂ", "animal friendship") },
+       { "CHARM_OTHERS", ACT_CHARM_OTHERS, 40, 17500, {750, 0},
+         _("¼þÊÕ̥λ", "mass charm") },
+       { "SUMMON_ANIMAL", ACT_SUMMON_ANIMAL, 50, 10000, {200, 300},
+         _("ưʪ¾¤´­", "summon animal") },
+       { "SUMMON_PHANTOM", ACT_SUMMON_PHANTOM, 50, 12000, {200, 200},
+         _("¸¸Î´­", "summon phantasmal servant") },
+       { "SUMMON_ELEMENTAL", ACT_SUMMON_ELEMENTAL, 50, 15000, {750, 0},
+         _("¥¨¥ì¥á¥ó¥¿¥ë¾¤´­", "summon elemental") },
+       { "SUMMON_DEMON", ACT_SUMMON_DEMON, 50, 20000, {666, 333},
+         _("°­Ë⾤´­", "summon demon") },
+       { "SUMMON_UNDEAD", ACT_SUMMON_UNDEAD, 50, 20000, {666, 333},
+         _("¥¢¥ó¥Ç¥Ã¥É¾¤´­", "summon undead") },
+       { "SUMMON_HOUND", ACT_SUMMON_HOUND, 50, 15000, {300, 150},
+         _("¥Ï¥¦¥ó¥É¾¤´­", "summon hound") },
+       { "SUMMON_DAWN", ACT_SUMMON_DAWN, 50, 15000, {500, 500},
+         _("¶Ç¤Î»ÕÃľ¤´­", "summon the Legion of the Dawn") },
+       { "SUMMON_OCTOPUS", ACT_SUMMON_OCTOPUS, 50, 15000, {300, 150},
+         _("Âý¤ÎÂç·²¾¤´­", "summon octopus") },
+
+       { "CHOIR_SINGS", ACT_CHOIR_SINGS, 60, 20000, {300, 0},
+         _("²óÉü(777)¡¢Ìþ¤·¡¢»Îµ¤¹âÍÈ", "heal 777 hit points, curing and heloism") },
+       { "CURE_LW", ACT_CURE_LW, 10, 500, {10, 0},
+         _("¶²Éݽüµî/ÂÎÎϲóÉü(30)", "remove fear and heal 30 hp") },
+       { "CURE_MW", ACT_CURE_MW, 20, 750, {3, 3},
+         _("½ý²óÉü(4d8)", "heal 4d8 and wounds") },
+       { "CURE_POISON", ACT_CURE_POISON, 10, 1000, {5, 0},
+         _("¶²Éݽüµî/ÆǾä·", "remove fear and cure poison") },
+       { "REST_LIFE", ACT_REST_LIFE, 40, 7500, {450, 0},
+         _("·Ð¸³ÃÍÉü³è", "restore life levels") },
+       { "REST_ALL", ACT_REST_ALL, 30, 15000, {750, 0},
+         _("Á´¥¹¥Æ¡¼¥¿¥¹¤È·Ð¸³ÃÍÉü³è", "restore stats and life levels") },
+       { "CURE_700", ACT_CURE_700, 40, 10000, {250, 0},
+         _("ÂÎÎϲóÉü(700)", "heal 700 hit points") },
+       { "CURE_1000", ACT_CURE_1000, 50, 15000, {888, 0},
+         _("ÂÎÎϲóÉü(1000)", "heal 1000 hit points") },
+       { "CURING", ACT_CURING, 30, 5000, {100, 0},
+         _("Ìþ¤·", "curing") },
+       { "CURE_MANA_FULL", ACT_CURE_MANA_FULL, 60, 20000, {777, 0},
+         _("ËâÎÏÉü³è", "restore mana") },
+
+       { "ESP", ACT_ESP, 30, 1500, {200, 0},
+         _("¥Æ¥ì¥Ñ¥·¡¼(´ü´Ö 25+d30)", "telepathy (dur 25+d30)") },
+       { "BERSERK", ACT_BERSERK, 10, 800, {75, 75},
+         _("¶¸Àï»Î²½(25+d25¥¿¡¼¥ó)", "berserk (25+d25 turns)") },
+       { "PROT_EVIL", ACT_PROT_EVIL, 30, 5000, {200, 200},
+         _("Âмٰ­·ë³¦(´ü´Ö 3*¥ì¥Ù¥ë+d25)", "protect evil (dur level*3 + d25)") },
+       { "RESIST_ALL", ACT_RESIST_ALL, 30, 5000, {111, 0},
+         _("Á´ÂÑÀ­(´ü´Ö 20+d20)", "resist elements (dur 20+d20)") },
+       { "SPEED", ACT_SPEED, 40, 15000, {250, 0},
+         _("²Ã®(´ü´Ö 20+d20)", "speed (dur 20+d20)") },
+       { "XTRA_SPEED", ACT_XTRA_SPEED, 40, 25000, {200, 200},
+         _("²Ã®(´ü´Ö 75+d75)", "speed (dur 75+d75)") },
+       { "WRAITH", ACT_WRAITH, 90, 25000, {1000, 0},
+         _("Í©Âβ½(´ü´Ö (¥ì¥Ù¥ë/2)+d(¥ì¥Ù¥ë/2))", "wraith form (dur level/2 + d(level/2))") },
+       { "INVULN", ACT_INVULN, 90, 25000, {1000, 0},
+         _("̵Ũ²½(´ü´Ö 8+d8)", "invulnerability (dur 8+d8)") },
+       { "HELO", ACT_HELO, 10, 500, {30, 30},
+         _("»Îµ¤¹âÍÈ", "heroism") },
+       { "HELO_SPEED", ACT_HELO_SPEED, 30, 20000, {100, 200},
+         _("»Îµ¤¹âÍÈ, ¥¹¥Ô¡¼¥É(´ü´Ö 50+d50¥¿¡¼¥ó)", "hero and +10 to speed (50)") },
+       { "RESIST_ACID", ACT_RESIST_ACID, 20, 2000, {40, 40},
+         _("»À¤Ø¤ÎÂÑÀ­(´ü´Ö 20+d20)", "resist acid (dur 20+d20)") },
+       { "RESIST_FIRE", ACT_RESIST_FIRE, 20, 2000, {40, 40},
+         _("²Ð±ê¤Ø¤ÎÂÑÀ­(´ü´Ö 20+d20)", "resist fire (dur 20+d20)") },
+       { "RESIST_COLD", ACT_RESIST_COLD, 20, 2000, {40, 40},
+         _("Î䵤¤Ø¤ÎÂÑÀ­(´ü´Ö 20+d20)", "resist cold (dur 20+d20)") },
+       { "RESIST_ELEC", ACT_RESIST_ELEC, 20, 2000, {40, 40},
+         _("ÅÅ·â¤Ø¤ÎÂÑÀ­(´ü´Ö 20+d20)", "resist elec (dur 20+d20)") },
+       { "RESIST_POIS", ACT_RESIST_POIS, 20, 2000, {40, 40},
+         _("ÆǤؤÎÂÑÀ­(´ü´Ö 20+d20)", "resist poison (dur 20+d20)") },
+
+       { "LIGHT", ACT_LIGHT, 10, 150, {10, 10},
+         _("¥¤¥ë¥ß¥Í¡¼¥·¥ç¥ó", "light area (dam 2d15)") },
+       { "MAP_LIGHT", ACT_MAP_LIGHT, 30, 500, {50, 50},
+         _("ËâË¡¤ÎÃϿޤȸ÷", "light (dam 2d15) & map area") },
+       { "DETECT_ALL", ACT_DETECT_ALL, 30, 1000, {55, 55},
+         _("Á´´¶ÃÎ", "detection") },
+       { "DETECT_XTRA", ACT_DETECT_XTRA, 50, 12500, {100, 0},
+         _("Á´´¶ÃΡ¢Ãµº÷¡¢*´ÕÄê*", "detection, probing and identify true") },
+       { "ID_FULL", ACT_ID_FULL, 50, 10000, {75, 0},
+         _("*´ÕÄê*", "identify true") },
+       { "ID_PLAIN", ACT_ID_PLAIN, 20, 1250, {10, 0},
+         _("´ÕÄê", "identify spell") },
+       { "RUNE_EXPLO", ACT_RUNE_EXPLO, 40, 4000, {200, 0},
+         _("Çúȯ¤Î¥ë¡¼¥ó", "explosive rune") },
+       { "RUNE_PROT", ACT_RUNE_PROT, 60, 10000, {400, 0},
+         _("¼é¤ê¤Î¥ë¡¼¥ó", "rune of protection") },
+       { "SATIATE", ACT_SATIATE, 10, 2000, {200, 0},
+         _("¶õÊ¢½¼Â­", "satisfy hunger") },
+       { "DEST_DOOR", ACT_DEST_DOOR, 10, 100, {10, 0},
+         _("¥É¥¢Ç˲õ", "destroy doors") },
+       { "STONE_MUD", ACT_STONE_MUD, 20, 1000, {3, 0},
+         _("´äÀÐÍϲò", "stone to mud") },
+       { "RECHARGE", ACT_RECHARGE, 30, 1000, {70, 0},
+         _("ËâÎϽ¼Å¶", "recharging") },
+       { "ALCHEMY", ACT_ALCHEMY, 50, 10000, {500, 0},
+         _("Ï£¶â½Ñ", "alchemy") },
+       { "DIM_DOOR", ACT_DIM_DOOR, 50, 10000, {100, 0},
+         _("¼¡¸µ¤ÎÈâ", "dimension door") },
+       { "TELEPORT", ACT_TELEPORT, 10, 2000, {25, 0},
+         _("¥Æ¥ì¥Ý¡¼¥È", "teleport") },
+       { "RECALL", ACT_RECALL, 30, 7500, {200, 0},
+         _("µ¢´Ô¤Î¾Û", "word of recall") },
+       { "JUDGE", ACT_JUDGE, 90, 50000, {20, 20},
+         _("ÂÎÎϤȰú¤­Âؤ¨¤ËÀéΤ´ã¤Èµ¢´Ô", "a telekinesis (500 lb)") },
+       { "TELEKINESIS", ACT_TELEKINESIS, 20, 5500, {25, 25},
+         _("ʪÂΤò°ú¤­´ó¤»¤ë(½ÅÎÌ25kg¤Þ¤Ç)", "clairvoyance and recall, draining you") },
+       { "DETECT_UNIQUE", ACT_DETECT_UNIQUE, 40, 10000, {200, 0},
+         _("¤³¤Î³¬¤Ë¤¤¤ë¥æ¥Ë¡¼¥¯¥â¥ó¥¹¥¿¡¼¤òɽ¼¨", "list of the uniques on the level") },
+       { "ESCAPE", ACT_ESCAPE, 10, 3000, {35, 0},
+         _("ƨÁö", "a getaway") },
+       { "DISP_CURSE_XTRA", ACT_DISP_CURSE_XTRA, 40, 30000, {0, 0},
+         _("*²ò¼ö*¤ÈÄ´ºº", "dispel curse and probing") },
+       { "BRAND_FIRE_BOLTS", ACT_BRAND_FIRE_BOLTS, 40, 20000, {999, 0},
+         _("¿ÏÀè¤Î¥Õ¥¡¥¤¥¢¡¦¥Ü¥ë¥È", "fire branding of bolts") },
+       { "RECHARGE_XTRA", ACT_RECHARGE_XTRA, 70, 30000, {200, 0},
+         _("ËâÎϽ¼Å¶", "recharge item") },
+       { "LORE", ACT_LORE, 10, 30000, {0, 0},
+         _("´í¸±¤òȼ¤¦´ÕÄê", "perilous identify") },
+       { "SHIKOFUMI", ACT_SHIKOFUMI, 10, 10000, {100, 100},
+         _("»Í¸ÔƧ¤ß", "shiko") },
+       { "PHASE_DOOR", ACT_PHASE_DOOR, 10, 1500, {10, 0},
+         _("¥·¥ç¡¼¥È¡¦¥Æ¥ì¥Ý¡¼¥È", "blink") },
+       { "DETECT_ALL_MONS", ACT_DETECT_ALL_MONS, 30, 3000, {150, 0},
+         _("Á´¥â¥ó¥¹¥¿¡¼´¶ÃÎ", "detect all monsters") },
+       { "ULTIMATE_RESIST", ACT_ULTIMATE_RESIST, 90, 20000, {777, 0},
+         _("»Îµ¤¹âÍÈ¡¢½ËÊ¡¡¢µæ¶Ë¤ÎÂÑÀ­", "hero, bless, and ultimate resistance") },
+
+       { "FISHING", ACT_FISHING, 0, 100, {0, 0},
+         _("Äà¤ê¤ò¤¹¤ë", "fishing") },
+       { "INROU", ACT_INROU, 40, 15000, {150, 150},
+         _("Îã¤Î¥¢¥ì", "reveal your identity") },
+       { "MURAMASA", ACT_MURAMASA, 0, 0, {-1, 0},
+         _("ÏÓÎϤξ徺", "increase STR") },
+       { "BLOODY_MOON", ACT_BLOODY_MOON, 0, 0, {3333, 0},
+         _("°À­Êѹ¹", "change zokusei") },
+       { "CRIMSON", ACT_CRIMSON, 0, 50000, {15, 0},
+         _("¥Õ¥¡¥¤¥¢¡ª", "fire!") },
+
+       { NULL, 0, 0, 0, {0, 0},
+         "" }
 };
index 2fa51ae..7f3b165 100644 (file)
@@ -1721,6 +1721,7 @@ typedef struct {
                int constant;
                int dice;
        } timeout;
+       cptr desc;
 } activation_type;
 
 typedef struct {