OSDN Git Service

Integrate initial flag, level and value settings of activations for random artifacts...
authoriks <iks@0568b783-4c39-0410-ac80-bf13821ea2a2>
Wed, 30 Jan 2013 07:55:39 +0000 (07:55 +0000)
committeriks <iks@0568b783-4c39-0410-ac80-bf13821ea2a2>
Wed, 30 Jan 2013 07:55:39 +0000 (07:55 +0000)
src/cmd6.c
src/externs.h
src/init1.c
src/object2.c
src/tables.c
src/types.h

index 735ca62..a7a6908 100644 (file)
@@ -3980,101 +3980,14 @@ static void do_cmd_activate_aux(int item)
        if (object_is_fixed_artifact(o_ptr)) lev = a_info[o_ptr->name1].level;
        else if (o_ptr->art_name)
        {
-               switch (o_ptr->xtra2)
-               {
-                       case ACT_SUNLIGHT:
-                       case ACT_BO_MISS_1:
-                       case ACT_BA_POIS_1:
-                       case ACT_CONFUSE:
-                       case ACT_SLEEP:
-                       case ACT_CURE_LW:
-                       case ACT_CURE_POISON:
-                       case ACT_BERSERK:
-                       case ACT_LIGHT:
-                       case ACT_DEST_DOOR:
-                       case ACT_TELEPORT:
-                               lev = 10;
-                               break;
-                       case ACT_BO_ELEC_1:
-                       case ACT_BO_ACID_1:
-                       case ACT_BO_COLD_1:
-                       case ACT_BO_FIRE_1:
-                       case ACT_MAP_LIGHT:
-                       case ACT_STONE_MUD:
-                       case ACT_CURE_MW:
-                       case ACT_QUAKE:
-                               lev = 20;
-                               break;
-                       case ACT_DRAIN_1:
-                       case ACT_TELE_AWAY:
-                       case ACT_ESP:
-                       case ACT_RESIST_ALL:
-                       case ACT_DETECT_ALL:
-                       case ACT_RECALL:
-                       case ACT_SATIATE:
-                       case ACT_RECHARGE:
-                               lev = 30;
-                               break;
-                       case ACT_BA_COLD_1:
-                       case ACT_BA_FIRE_1:
-                       case ACT_BA_FIRE_2:
-                       case ACT_TERROR:
-                       case ACT_PROT_EVIL:
-                       case ACT_ID_PLAIN:
-                       case ACT_REST_LIFE:
-                       case ACT_SPEED:
-                       case ACT_BANISH_EVIL:
-                               lev = 40;
-                               break;
-                       case ACT_DRAIN_2:
-                       case ACT_VAMPIRE_1:
-                       case ACT_BO_MISS_2:
-                       case ACT_BA_FIRE_3:
-                       case ACT_WHIRLWIND:
-                       case ACT_CHARM_ANIMAL:
-                       case ACT_SUMMON_ANIMAL:
-                       case ACT_DISP_EVIL:
-                       case ACT_DISP_GOOD:
-                       case ACT_XTRA_SPEED:
-                       case ACT_DETECT_XTRA:
-                       case ACT_ID_FULL:
-                               lev = 50;
-                               break;
-                       case ACT_VAMPIRE_2:
-                       case ACT_BA_COLD_3:
-                       case ACT_BA_ELEC_3:
-                       case ACT_GENOCIDE:
-                       case ACT_CHARM_UNDEAD:
-                       case ACT_CHARM_OTHER:
-                       case ACT_SUMMON_PHANTOM:
-                       case ACT_SUMMON_ELEMENTAL:
-                       case ACT_RUNE_EXPLO:
-                               lev = 60;
-                               break;
-                       case ACT_MASS_GENO:
-                       case ACT_CHARM_ANIMALS:
-                       case ACT_CHARM_OTHERS:
-                       case ACT_CURE_700:
-                       case ACT_RUNE_PROT:
-                       case ACT_ALCHEMY:
-                       case ACT_REST_ALL:
-                               lev = 70;
-                               break;
-                       case ACT_CALL_CHAOS:
-                       case ACT_ROCKET:
-                       case ACT_BA_MISS_3:
-                       case ACT_CURE_1000:
-                       case ACT_DIM_DOOR:
-                       case ACT_SUMMON_UNDEAD:
-                       case ACT_SUMMON_DEMON:
-                               lev = 80;
-                               break;
-                       case ACT_WRAITH:
-                       case ACT_INVULN:
-                               lev = 100;
+               int i;
+               for (i = 0; activation_info[i].flag != NULL; i++)
+               {
+                       if (activation_info[i].index == o_ptr->xtra2)
+                       {
+                               lev = activation_info[i].level;
                                break;
-                       default:
-                               lev = 0;
+                       }
                }
        }
        else if (((o_ptr->tval == TV_RING) || (o_ptr->tval == TV_AMULET)) && o_ptr->name2) lev = e_info[o_ptr->name2].level;
index 56b6bf2..c57bcb3 100644 (file)
@@ -117,6 +117,7 @@ extern cptr monster_powers_short[MAX_MONSPELLS];
 extern cptr ident_info[];
 extern mbe_info_type mbe_info[];
 extern byte feature_action_flags[FF_FLAG_MAX];
+extern activation_type activation_info[];
 
 /* variable.c */
 extern cptr copyright[5];
index c0bc33f..ba9accb 100644 (file)
@@ -814,139 +814,6 @@ static cptr k_info_gen_flags[] =
 };
 
 /*
- * Activate flags
- */
-struct k_info_activation_flag
-{
-       cptr flag;
-       byte index;
-} k_info_activation_flags[] =
-{
-       { "SUNLIGHT", ACT_SUNLIGHT },
-       { "BO_MISS_1", ACT_BO_MISS_1 },
-       { "BA_POIS_1", ACT_BA_POIS_1 },
-       { "BO_ELEC_1", ACT_BO_ELEC_1 },
-       { "BO_ACID_1", ACT_BO_ACID_1 },
-       { "BO_COLD_1", ACT_BO_COLD_1 },
-       { "BO_FIRE_1", ACT_BO_FIRE_1 },
-       { "BA_COLD_1", ACT_BA_COLD_1 },
-       { "BA_FIRE_1", ACT_BA_FIRE_1 },
-       { "DRAIN_1", ACT_DRAIN_1 },
-       { "BA_COLD_2", ACT_BA_COLD_2 },
-       { "BA_ELEC_2", ACT_BA_ELEC_2 },
-       { "DRAIN_2", ACT_DRAIN_2 },
-       { "VAMPIRE_1", ACT_VAMPIRE_1 },
-       { "BO_MISS_2", ACT_BO_MISS_2 },
-       { "BA_FIRE_3", ACT_BA_FIRE_3 },
-       { "BA_COLD_3", ACT_BA_COLD_3 },
-       { "BA_ELEC_3", ACT_BA_ELEC_3 },
-       { "WHIRLWIND", ACT_WHIRLWIND },
-       { "VAMPIRE_2", ACT_VAMPIRE_2 },
-       { "CALL_CHAOS", ACT_CALL_CHAOS },
-       { "ROCKET", ACT_ROCKET },
-       { "DISP_EVIL", ACT_DISP_EVIL },
-       { "BA_MISS_3", ACT_BA_MISS_3 },
-       { "DISP_GOOD", ACT_DISP_GOOD },
-       { "BO_MANA", ACT_BO_MANA },
-       { "BA_FIRE_2", ACT_BA_FIRE_2 },
-       { "BA_WATER", ACT_BA_WATER },
-       { "BA_STAR", ACT_BA_STAR },
-       { "BA_DARK", ACT_BA_DARK },
-       { "BA_MANA", ACT_BA_MANA },
-       { "PESTICIDE", ACT_PESTICIDE },
-       { "BLINDING_LIGHT", ACT_BLINDING_LIGHT },
-       { "BIZARRE", ACT_BIZARRE },
-       { "CAST_BA_STAR", ACT_CAST_BA_STAR },
-       { "BLADETURNER", ACT_BLADETURNER },
-
-       { "CONFUSE", ACT_CONFUSE },
-       { "SLEEP", ACT_SLEEP },
-       { "QUAKE", ACT_QUAKE },
-       { "TERROR", ACT_TERROR },
-       { "TELE_AWAY", ACT_TELE_AWAY },
-       { "BANISH_EVIL", ACT_BANISH_EVIL },
-       { "GENOCIDE", ACT_GENOCIDE },
-       { "MASS_GENO", ACT_MASS_GENO },
-       { "SCARE_AREA", ACT_SCARE_AREA },
-       { "AGGRAVATE", ACT_AGGRAVATE },
-
-       { "CHARM_ANIMAL", ACT_CHARM_ANIMAL },
-       { "CHARM_UNDEAD", ACT_CHARM_UNDEAD },
-       { "CHARM_OTHER", ACT_CHARM_OTHER },
-       { "CHARM_ANIMALS", ACT_CHARM_ANIMALS },
-       { "CHARM_OTHERS", ACT_CHARM_OTHERS },
-       { "SUMMON_ANIMAL", ACT_SUMMON_ANIMAL },
-       { "SUMMON_PHANTOM", ACT_SUMMON_PHANTOM },
-       { "SUMMON_ELEMENTAL", ACT_SUMMON_ELEMENTAL },
-       { "SUMMON_DEMON", ACT_SUMMON_DEMON },
-       { "SUMMON_UNDEAD", ACT_SUMMON_UNDEAD },
-       { "SUMMON_HOUND", ACT_SUMMON_HOUND },
-       { "SUMMON_DAWN", ACT_SUMMON_DAWN },
-       { "SUMMON_OCTOPUS", ACT_SUMMON_OCTOPUS },
-
-       { "CHOIR_SINGS", ACT_CHOIR_SINGS },
-       { "CURE_LW", ACT_CURE_LW },
-       { "CURE_MW", ACT_CURE_MW },
-       { "CURE_POISON", ACT_CURE_POISON },
-       { "REST_LIFE", ACT_REST_LIFE },
-       { "REST_ALL", ACT_REST_ALL },
-       { "CURE_700", ACT_CURE_700 },
-       { "CURE_1000", ACT_CURE_1000 },
-       { "CURING", ACT_CURING },
-       { "CURE_MANA_FULL", ACT_CURE_MANA_FULL },
-
-       { "ESP", ACT_ESP },
-       { "BERSERK", ACT_BERSERK },
-       { "PROT_EVIL", ACT_PROT_EVIL },
-       { "RESIST_ALL", ACT_RESIST_ALL },
-       { "SPEED", ACT_SPEED },
-       { "XTRA_SPEED", ACT_XTRA_SPEED },
-       { "WRAITH", ACT_WRAITH },
-       { "INVULN", ACT_INVULN },
-       { "HELO", ACT_HELO },
-       { "HELO_SPEED", ACT_HELO_SPEED },
-       { "RESIST_ACID", ACT_RESIST_ACID },
-       { "RESIST_FIRE", ACT_RESIST_ACID },
-       { "RESIST_COLD", ACT_RESIST_ACID },
-       { "RESIST_ELEC", ACT_RESIST_ACID },
-       { "RESIST_POIS", ACT_RESIST_ACID },
-
-       { "LIGHT", ACT_LIGHT },
-       { "MAP_LIGHT", ACT_MAP_LIGHT },
-       { "DETECT_ALL", ACT_DETECT_ALL },
-       { "DETECT_XTRA", ACT_DETECT_XTRA },
-       { "ID_FULL", ACT_ID_FULL },
-       { "ID_PLAIN", ACT_ID_PLAIN },
-       { "RUNE_EXPLO", ACT_RUNE_EXPLO },
-       { "RUNE_PROT", ACT_RUNE_PROT },
-       { "SATIATE", ACT_SATIATE },
-       { "DEST_DOOR", ACT_DEST_DOOR },
-       { "STONE_MUD", ACT_STONE_MUD },
-       { "RECHARGE", ACT_RECHARGE },
-       { "ALCHEMY", ACT_ALCHEMY },
-       { "DIM_DOOR", ACT_DIM_DOOR },
-       { "TELEPORT", ACT_TELEPORT },
-       { "RECALL", ACT_RECALL },
-       { "JUDGE", ACT_JUDGE },
-       { "TELEKINESIS", ACT_TELEKINESIS },
-       { "DETECT_UNIQUE", ACT_DETECT_UNIQUE },
-       { "ESCAPE", ACT_ESCAPE },
-       { "DISP_CURSE_XTRA", ACT_DISP_CURSE_XTRA },
-       { "BRAND_FIRE_BOLTS", ACT_BRAND_FIRE_BOLTS },
-       { "RECHARGE_XTRA", ACT_RECHARGE_XTRA },
-       { "LORE", ACT_LORE },
-       { "SHIKOFUMI", ACT_SHIKOFUMI },
-
-       { "FISHING", ACT_FISHING },
-       { "INROU", ACT_INROU },
-       { "MURAMASA", ACT_MURAMASA },
-       { "BLOODY_MOON", ACT_BLOODY_MOON },
-       { "CRIMSON", ACT_CRIMSON },
-
-       { NULL, 0 }
-};
-
-/*
  * Dungeon flags
  */
 static cptr d_info_flags1[] =
@@ -2279,11 +2146,11 @@ static byte grab_one_activation_flag(cptr what)
 
        for (i = 0; ; i++)
        {
-               if (k_info_activation_flags[i].flag == NULL) break;
+               if (activation_info[i].flag == NULL) break;
 
-               if (streq(what, k_info_activation_flags[i].flag))
+               if (streq(what, activation_info[i].flag))
                {
-                       return k_info_activation_flags[i].index;
+                       return activation_info[i].index;
                }
        }
 
index 45578c5..1670ac4 100644 (file)
@@ -1034,101 +1034,15 @@ s32b flag_cost(object_type *o_ptr, int plusses)
        /* Also, give some extra for activatable powers... */
        if (o_ptr->art_name && (have_flag(o_ptr->art_flags, TR_ACTIVATE)))
        {
-               int type = o_ptr->xtra2;
-
-               if (type == ACT_SUNLIGHT) total += 250;
-               else if (type == ACT_BO_MISS_1) total += 250;
-               else if (type == ACT_BA_POIS_1) total += 300;
-               else if (type == ACT_BO_ELEC_1) total += 250;
-               else if (type == ACT_BO_ACID_1) total += 250;
-               else if (type == ACT_BO_COLD_1) total += 250;
-               else if (type == ACT_BO_FIRE_1) total += 250;
-               else if (type == ACT_BA_COLD_1) total += 750;
-               else if (type == ACT_BA_FIRE_1) total += 1000;
-               else if (type == ACT_DRAIN_1) total += 500;
-               else if (type == ACT_BA_COLD_2) total += 1250;
-               else if (type == ACT_BA_ELEC_2) total += 1500;
-               else if (type == ACT_BA_FIRE_2) total += 1500;
-               else if (type == ACT_DRAIN_2) total += 750;
-               else if (type == ACT_VAMPIRE_1) total += 1000;
-               else if (type == ACT_BO_MISS_2) total += 1000;
-               else if (type == ACT_BA_FIRE_3) total += 1750;
-               else if (type == ACT_BA_COLD_3) total += 2500;
-               else if (type == ACT_BA_ELEC_3) total += 2500;
-               else if (type == ACT_WHIRLWIND) total += 7500;
-               else if (type == ACT_VAMPIRE_2) total += 2500;
-               else if (type == ACT_CALL_CHAOS) total += 5000;
-               else if (type == ACT_ROCKET) total += 5000;
-               else if (type == ACT_DISP_EVIL) total += 4000;
-               else if (type == ACT_DISP_GOOD) total += 3500;
-               else if (type == ACT_BO_MANA) total += 1500;
-               else if (type == ACT_BA_WATER) total += 2000;
-               else if (type == ACT_BA_STAR) total += 2200;
-               else if (type == ACT_BA_DARK) total += 2200;
-               else if (type == ACT_BA_MANA) total += 2500;
-               else if (type == ACT_BA_MISS_3) total += 5000;
-               else if (type == ACT_CONFUSE) total += 500;
-               else if (type == ACT_SLEEP) total += 750;
-               else if (type == ACT_QUAKE) total += 600;
-               else if (type == ACT_TERROR) total += 2500;
-               else if (type == ACT_TELE_AWAY) total += 2000;
-               else if (type == ACT_BANISH_EVIL) total += 2000;
-               else if (type == ACT_GENOCIDE) total += 10000;
-               else if (type == ACT_MASS_GENO) total += 10000;
-               else if (type == ACT_CHARM_ANIMAL) total += 7500;
-               else if (type == ACT_CHARM_UNDEAD) total += 10000;
-               else if (type == ACT_CHARM_OTHER) total += 10000;
-               else if (type == ACT_CHARM_ANIMALS) total += 12500;
-               else if (type == ACT_CHARM_OTHERS) total += 17500;
-               else if (type == ACT_SUMMON_ANIMAL) total += 10000;
-               else if (type == ACT_SUMMON_PHANTOM) total += 12000;
-               else if (type == ACT_SUMMON_ELEMENTAL) total += 15000;
-               else if (type == ACT_SUMMON_DEMON) total += 20000;
-               else if (type == ACT_SUMMON_UNDEAD) total += 20000;
-               else if (type == ACT_SUMMON_HOUND) total += 15000;
-               else if (type == ACT_CHOIR_SINGS) total += 20000;
-               else if (type == ACT_CURE_LW) total += 500;
-               else if (type == ACT_CURE_MW) total += 750;
-               else if (type == ACT_CURE_POISON) total += 1000;
-               else if (type == ACT_REST_LIFE) total += 7500;
-               else if (type == ACT_REST_ALL) total += 15000;
-               else if (type == ACT_CURE_700) total += 10000;
-               else if (type == ACT_CURE_1000) total += 15000;
-               else if (type == ACT_CURING) total += 5000;
-               else if (type == ACT_CURE_MANA_FULL) total += 20000;
-               else if (type == ACT_ESP) total += 1500;
-               else if (type == ACT_BERSERK) total += 800;
-               else if (type == ACT_PROT_EVIL) total += 5000;
-               else if (type == ACT_RESIST_ALL) total += 5000;
-               else if (type == ACT_SPEED) total += 15000;
-               else if (type == ACT_XTRA_SPEED) total += 25000;
-               else if (type == ACT_RESIST_ACID) total += 2000;
-               else if (type == ACT_RESIST_FIRE) total += 2000;
-               else if (type == ACT_RESIST_COLD) total += 2000;
-               else if (type == ACT_RESIST_ELEC) total += 2000;
-               else if (type == ACT_RESIST_POIS) total += 2000;
-               else if (type == ACT_WRAITH) total += 25000;
-               else if (type == ACT_INVULN) total += 25000;
-               else if (type == ACT_HELO) total += 500;
-               else if (type == ACT_HELO_SPEED) total += 20000;
-               else if (type == ACT_LIGHT) total += 150;
-               else if (type == ACT_MAP_LIGHT) total += 500;
-               else if (type == ACT_DETECT_ALL) total += 1000;
-               else if (type == ACT_DETECT_XTRA) total += 12500;
-               else if (type == ACT_ID_FULL) total += 10000;
-               else if (type == ACT_ID_PLAIN) total += 1250;
-               else if (type == ACT_RUNE_EXPLO) total += 4000;
-               else if (type == ACT_RUNE_PROT) total += 10000;
-               else if (type == ACT_SATIATE) total += 2000;
-               else if (type == ACT_DEST_DOOR) total += 100;
-               else if (type == ACT_STONE_MUD) total += 1000;
-               else if (type == ACT_RECHARGE) total += 1000;
-               else if (type == ACT_ALCHEMY) total += 10000;
-               else if (type == ACT_DIM_DOOR) total += 10000;
-               else if (type == ACT_TELEPORT) total += 2000;
-               else if (type == ACT_RECALL) total += 7500;
-               else if (type == ACT_TELEKINESIS) total += 5500;
-               else if (type == ACT_BRAND_FIRE_BOLTS) total += 20000;
+               int i;
+               for (i = 0; activation_info[i].flag != NULL; i++)
+               {
+                       if (activation_info[i].index == o_ptr->xtra2)
+                       {
+                               total += activation_info[i].value;
+                               break;
+                       }
+               }
        }
 
        return total;
index dd160ad..747cd74 100644 (file)
@@ -6655,3 +6655,133 @@ byte feature_action_flags[FF_FLAG_MAX] =
        0, /* CONVERT */
        0, /* GLASS */
 };
+
+
+/*
+ * Define flags, levels, values of activations
+ */
+activation_type activation_info[] =
+{
+       { "SUNLIGHT", ACT_SUNLIGHT, 10, 250 },
+       { "BO_MISS_1", ACT_BO_MISS_1, 10, 250 },
+       { "BA_POIS_1", ACT_BA_POIS_1, 10, 300 },
+       { "BO_ELEC_1", ACT_BO_ELEC_1, 20, 250 },
+       { "BO_ACID_1", ACT_BO_ACID_1, 20, 250 },
+       { "BO_COLD_1", ACT_BO_COLD_1, 20, 250 },
+       { "BO_FIRE_1", ACT_BO_FIRE_1, 20, 250 },
+       { "BA_COLD_1", ACT_BA_COLD_1, 30, 750 },
+       { "BA_FIRE_1", ACT_BA_FIRE_1, 30, 1000 },
+       { "DRAIN_1", ACT_DRAIN_1, 30, 500 },
+       { "BA_COLD_2", ACT_BA_COLD_2, 40, 1250 },
+       { "BA_ELEC_2", ACT_BA_ELEC_2, 40, 1500 },
+       { "BA_FIRE_2", ACT_BA_FIRE_2, 40, 1500 },
+       { "DRAIN_2", ACT_DRAIN_2, 40, 750 },
+       { "VAMPIRE_1", ACT_VAMPIRE_1, 40, 1000 },
+       { "BO_MISS_2", ACT_BO_MISS_2, 40, 1000 },
+       { "BA_FIRE_3", ACT_BA_FIRE_3, 60, 1750 },
+       { "BA_COLD_3", ACT_BA_COLD_3, 70, 2500 },
+       { "BA_ELEC_3", ACT_BA_ELEC_3, 70, 2500 },
+       { "WHIRLWIND", ACT_WHIRLWIND, 50, 7500 },
+       { "VAMPIRE_2", ACT_VAMPIRE_2, 50, 2500 },
+       { "CALL_CHAOS", ACT_CALL_CHAOS, 70, 5000 },
+       { "ROCKET", ACT_ROCKET, 70, 5000 },
+       { "DISP_EVIL", ACT_DISP_EVIL, 50, 4000 },
+       { "BA_MISS_3", ACT_BA_MISS_3, 50, 1500 },
+       { "DISP_GOOD", ACT_DISP_GOOD, 50, 3500 },
+       { "BO_MANA", ACT_BO_MANA, 40, 1500 },
+       { "BA_WATER", ACT_BA_WATER, 50, 2000 },
+       { "BA_STAR", ACT_BA_STAR, 50, 2200 },
+       { "BA_DARK", ACT_BA_DARK, 50, 2200 },
+       { "BA_MANA", ACT_BA_MANA, 70, 2500 },
+       { "PESTICIDE", ACT_PESTICIDE, 10, 500 },
+       { "BLINDING_LIGHT", ACT_BLINDING_LIGHT, 30, 5000 },
+       { "BIZARRE", ACT_BIZARRE, 90, 10000 },
+       { "CAST_BA_STAR", ACT_CAST_BA_STAR, 70, 7500 },
+       { "BLADETURNER", ACT_BLADETURNER, 80, 20000 },
+
+       { "CONFUSE", ACT_CONFUSE, 10, 500 },
+       { "SLEEP", ACT_SLEEP, 10, 750 },
+       { "QUAKE", ACT_QUAKE, 30, 600 },
+       { "TERROR", ACT_TERROR, 20, 2500 },
+       { "TELE_AWAY", ACT_TELE_AWAY, 20, 2000 },
+       { "BANISH_EVIL", ACT_BANISH_EVIL, 40, 2000 },
+       { "GENOCIDE", ACT_GENOCIDE, 50, 10000 },
+       { "MASS_GENO", ACT_MASS_GENO, 50, 10000 },
+       { "SCARE_AREA", ACT_SCARE_AREA, 20, 2500 },
+       { "AGGRAVATE", ACT_AGGRAVATE, 0, 100 },
+
+       { "CHARM_ANIMAL", ACT_CHARM_ANIMAL, 40, 7500 },
+       { "CHARM_UNDEAD", ACT_CHARM_UNDEAD, 40, 10000 },
+       { "CHARM_OTHER", ACT_CHARM_OTHER, 40, 10000 },
+       { "CHARM_ANIMALS", ACT_CHARM_ANIMALS, 40, 12500 },
+       { "CHARM_OTHERS", ACT_CHARM_OTHERS, 40, 17500 },
+       { "SUMMON_ANIMAL", ACT_SUMMON_ANIMAL, 50, 10000 },
+       { "SUMMON_PHANTOM", ACT_SUMMON_PHANTOM, 50, 12000 },
+       { "SUMMON_ELEMENTAL", ACT_SUMMON_ELEMENTAL, 50, 15000 },
+       { "SUMMON_DEMON", ACT_SUMMON_DEMON, 50, 20000 },
+       { "SUMMON_UNDEAD", ACT_SUMMON_UNDEAD, 50, 20000 },
+       { "SUMMON_HOUND", ACT_SUMMON_HOUND, 50, 15000 },
+       { "SUMMON_DAWN", ACT_SUMMON_DAWN, 50, 15000 },
+       { "SUMMON_OCTOPUS", ACT_SUMMON_OCTOPUS, 50, 15000 },
+
+       { "CHOIR_SINGS", ACT_CHOIR_SINGS, 60, 20000 },
+       { "CURE_LW", ACT_CURE_LW, 10, 500 },
+       { "CURE_MW", ACT_CURE_MW, 20, 750 },
+       { "CURE_POISON", ACT_CURE_POISON, 10, 1000 },
+       { "REST_LIFE", ACT_REST_LIFE, 40, 7500 },
+       { "REST_ALL", ACT_REST_ALL, 30, 15000 },
+       { "CURE_700", ACT_CURE_700, 40, 10000 },
+       { "CURE_1000", ACT_CURE_1000, 50, 15000 },
+       { "CURING", ACT_CURING, 30, 5000 },
+       { "CURE_MANA_FULL", ACT_CURE_MANA_FULL, 60, 20000 },
+
+       { "ESP", ACT_ESP, 30, 1500 },
+       { "BERSERK", ACT_BERSERK, 10, 800 },
+       { "PROT_EVIL", ACT_PROT_EVIL, 30, 5000 },
+       { "RESIST_ALL", ACT_RESIST_ALL, 30, 5000 },
+       { "SPEED", ACT_SPEED, 40, 15000 },
+       { "XTRA_SPEED", ACT_XTRA_SPEED, 40, 25000 },
+       { "WRAITH", ACT_WRAITH, 90, 25000 },
+       { "INVULN", ACT_INVULN, 90, 25000 },
+       { "HELO", ACT_HELO, 10, 500 },
+       { "HELO_SPEED", ACT_HELO_SPEED, 30, 20000 },
+       { "RESIST_ACID", ACT_RESIST_ACID, 20, 2000 },
+       { "RESIST_FIRE", ACT_RESIST_ACID, 20, 2000 },
+       { "RESIST_COLD", ACT_RESIST_ACID, 20, 2000 },
+       { "RESIST_ELEC", ACT_RESIST_ACID, 20, 2000 },
+       { "RESIST_POIS", ACT_RESIST_ACID, 20, 2000 },
+
+       { "LIGHT", ACT_LIGHT, 10, 150 },
+       { "MAP_LIGHT", ACT_MAP_LIGHT, 30, 500 },
+       { "DETECT_ALL", ACT_DETECT_ALL, 30, 1000 },
+       { "DETECT_XTRA", ACT_DETECT_XTRA, 50, 12500 },
+       { "ID_FULL", ACT_ID_FULL, 50, 10000 },
+       { "ID_PLAIN", ACT_ID_PLAIN, 20, 1250 },
+       { "RUNE_EXPLO", ACT_RUNE_EXPLO, 40, 4000 },
+       { "RUNE_PROT", ACT_RUNE_PROT, 60, 10000 },
+       { "SATIATE", ACT_SATIATE, 10, 2000 },
+       { "DEST_DOOR", ACT_DEST_DOOR, 10, 100 },
+       { "STONE_MUD", ACT_STONE_MUD, 20, 1000 },
+       { "RECHARGE", ACT_RECHARGE, 30, 1000 },
+       { "ALCHEMY", ACT_ALCHEMY, 50, 10000 },
+       { "DIM_DOOR", ACT_DIM_DOOR, 50, 10000 },
+       { "TELEPORT", ACT_TELEPORT, 10, 2000 },
+       { "RECALL", ACT_RECALL, 30, 7500 },
+       { "JUDGE", ACT_JUDGE, 90, 50000 },
+       { "TELEKINESIS", ACT_TELEKINESIS, 20, 5500 },
+       { "DETECT_UNIQUE", ACT_DETECT_UNIQUE, 40, 10000 },
+       { "ESCAPE", ACT_ESCAPE, 10, 3000 },
+       { "DISP_CURSE_XTRA", ACT_DISP_CURSE_XTRA, 40, 30000 },
+       { "BRAND_FIRE_BOLTS", ACT_BRAND_FIRE_BOLTS, 40, 20000 },
+       { "RECHARGE_XTRA", ACT_RECHARGE_XTRA, 70, 30000 },
+       { "LORE", ACT_LORE, 10, 30000 },
+       { "SHIKOFUMI", ACT_SHIKOFUMI, 10, 10000 },
+
+       { "FISHING", ACT_FISHING, 0, 100 },
+       { "INROU", ACT_INROU, 40, 15000 },
+       { "MURAMASA", ACT_MURAMASA, 0, 0 },
+       { "BLOODY_MOON", ACT_BLOODY_MOON, 0, 0 },
+       { "CRIMSON", ACT_CRIMSON, 0, 50000 },
+
+       { NULL, 0, 0, 0 }
+};
index 653b599..04062af 100644 (file)
@@ -1709,3 +1709,10 @@ typedef struct {
        int dir;
 } travel_type;
 #endif
+
+typedef struct {
+       cptr flag;
+       byte index;
+       byte level;
+       s32b value;
+} activation_type;