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;
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];
};
/*
- * 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[] =
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;
}
}
/* 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;
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 }
+};
int dir;
} travel_type;
#endif
+
+typedef struct {
+ cptr flag;
+ byte index;
+ byte level;
+ s32b value;
+} activation_type;