summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorzelgadis <zelgadis@c06c8d41-db1a-0410-9941-cceddc491573>2007-10-15 04:03:33 +0000
committerzelgadis <zelgadis@c06c8d41-db1a-0410-9941-cceddc491573>2007-10-15 04:03:33 +0000
commita1b82e6be0343a691d342b48dd9f9076ad53453a (patch)
tree444c3d51a7c14d0de579df58fc798fd68626eb85
parentcce629f112f720f195dc5b31a94dab10bdacd52e (diff)
downloadcrawl-ref-a1b82e6be0343a691d342b48dd9f9076ad53453a.tar.gz
crawl-ref-a1b82e6be0343a691d342b48dd9f9076ad53453a.zip
Removed amnesia/forgetfullness trap, mutation and scroll. The
mutation has been replaced with an involuntary shouting mutation, and the trap with an alarm trap. The scroll hasn't been replaced with anything, and the frequency of scrolls of random uselessness has thus doubled; someone needs to re-do the scroll frequencies. Also added a "drifting" mutation, which causes the player to sometimes drift in a random direction after moving. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@2464 c06c8d41-db1a-0410-9941-cceddc491573
-rw-r--r--crawl-ref/source/acr.cc48
-rw-r--r--crawl-ref/source/debug.cc4
-rw-r--r--crawl-ref/source/decks.cc2
-rw-r--r--crawl-ref/source/describe.cc7
-rw-r--r--crawl-ref/source/direct.cc4
-rw-r--r--crawl-ref/source/dungeon.cc2
-rw-r--r--crawl-ref/source/effects.cc38
-rw-r--r--crawl-ref/source/effects.h2
-rw-r--r--crawl-ref/source/enum.h5
-rw-r--r--crawl-ref/source/item_use.cc6
-rw-r--r--crawl-ref/source/itemname.cc1
-rw-r--r--crawl-ref/source/itemprop.h5
-rw-r--r--crawl-ref/source/items.cc9
-rw-r--r--crawl-ref/source/makeitem.cc4
-rw-r--r--crawl-ref/source/mstuff2.cc34
-rw-r--r--crawl-ref/source/mutation.cc41
-rw-r--r--crawl-ref/source/output.cc4
-rw-r--r--crawl-ref/source/player.cc10
-rw-r--r--crawl-ref/source/shopping.cc1
-rw-r--r--crawl-ref/source/traps.cc18
20 files changed, 173 insertions, 72 deletions
diff --git a/crawl-ref/source/acr.cc b/crawl-ref/source/acr.cc
index 322dc850cb..c52b723e25 100644
--- a/crawl-ref/source/acr.cc
+++ b/crawl-ref/source/acr.cc
@@ -3577,8 +3577,45 @@ static void do_berserk_no_combat_penalty(void)
} // end do_berserk_no_combat_penalty()
-// Called when the player moves by walking/running. Also calls
-// attack function and trap function etc when necessary.
+static void drift_player(int move_x, int move_y)
+{
+ int drift_dir = -1;
+ int okay_dirs = 0;
+
+ for (int i = 0; i < 8; i++)
+ {
+ const coord_def drift_delta = Compass[i];
+ const coord_def new_pos = you.pos() + drift_delta;
+ const unsigned short targ_monst = mgrd(new_pos);
+
+ if (you.can_pass_through(new_pos)
+ && !is_grid_dangerous(grd(new_pos))
+ && (targ_monst == NON_MONSTER ||
+ mons_is_submerged(&menv[targ_monst])))
+ {
+ if (one_chance_in(++okay_dirs))
+ drift_dir = i;
+ }
+ }
+
+ if (okay_dirs > 0)
+ {
+ const coord_def drift_delta = Compass[drift_dir];
+ const coord_def new_pos = you.pos() + drift_delta;
+
+ if (drift_delta == coord_def(-move_x, -move_y))
+ mpr("You drift backwards.");
+ else if (drift_delta == coord_def(move_x, move_y))
+ mpr("You drift forwards.");
+ else
+ mpr("You drift.");
+
+ move_player_to_grid(new_pos.x, new_pos.y, true, true, false);
+ }
+}
+
+// Called when the player moves by walking/running. Also calls attack
+// function etc when necessary.
static void move_player(int move_x, int move_y)
{
bool attacking = false;
@@ -3683,12 +3720,19 @@ static void move_player(int move_x, int move_y)
you.time_taken /= 10;
move_player_to_grid(targ_x, targ_y, true, false, swap);
+ if (you.mutation[MUT_DRIFTING]
+ && (random2(100) <= you.mutation[MUT_DRIFTING] * 5) )
+ {
+ drift_player(move_x, move_y);
+ }
+
move_x = 0;
move_y = 0;
you.turn_is_over = true;
// item_check( false );
request_autopickup();
+
}
// BCR - Easy doors single move
diff --git a/crawl-ref/source/debug.cc b/crawl-ref/source/debug.cc
index 07e26b7dad..598702147d 100644
--- a/crawl-ref/source/debug.cc
+++ b/crawl-ref/source/debug.cc
@@ -1814,7 +1814,7 @@ static const char *mutation_type_names[] = {
"horns",
"strong stiff",
"flexible weak",
- "lost",
+ "scream",
"clarity",
"berserk",
"deterioration",
@@ -1845,7 +1845,7 @@ static const char *mutation_type_names[] = {
"big wings",
"blue marks",
"green marks",
- "",
+ "drifting",
"",
"",
"",
diff --git a/crawl-ref/source/decks.cc b/crawl-ref/source/decks.cc
index bfd196c69d..2801839ee8 100644
--- a/crawl-ref/source/decks.cc
+++ b/crawl-ref/source/decks.cc
@@ -1772,7 +1772,7 @@ static void helix_card(int power, deck_rarity_type rarity)
{
mutation_type bad_mutations[] = {
MUT_FAST_METABOLISM, MUT_WEAK, MUT_DOPEY, MUT_CLUMSY,
- MUT_TELEPORT, MUT_DEFORMED, MUT_LOST, MUT_DETERIORATION,
+ MUT_TELEPORT, MUT_DEFORMED, MUT_SCREAM, MUT_DETERIORATION,
MUT_BLURRY_VISION, MUT_FRAIL
};
diff --git a/crawl-ref/source/describe.cc b/crawl-ref/source/describe.cc
index 89a43389fe..10b89729ea 100644
--- a/crawl-ref/source/describe.cc
+++ b/crawl-ref/source/describe.cc
@@ -366,7 +366,7 @@ static void randart_descrip( std::string &description, const item_def &item )
static const char *trap_names[] =
{
"dart", "arrow", "spear", "axe",
- "teleport", "amnesia", "blade",
+ "teleport", "alarm", "blade",
"bolt", "net", "zot", "needle",
"shaft"
};
@@ -2405,11 +2405,6 @@ static std::string describe_scroll( const item_def &item )
"of one who reads it. ";
break;
- case SCR_FORGETFULNESS:
- description += "This scroll induces "
- "an irritating disorientation. ";
- break;
-
case SCR_ACQUIREMENT:
description += "This wonderful scroll causes the "
"creation of a valuable item to "
diff --git a/crawl-ref/source/direct.cc b/crawl-ref/source/direct.cc
index 4315930792..a05d27bdf4 100644
--- a/crawl-ref/source/direct.cc
+++ b/crawl-ref/source/direct.cc
@@ -1479,8 +1479,8 @@ std::string raw_feature_description(dungeon_feature_type grid,
return ("axe trap");
case TRAP_TELEPORT:
return ("teleportation trap");
- case TRAP_AMNESIA:
- return ("amnesia trap");
+ case TRAP_ALARM:
+ return ("alarm trap");
case TRAP_BLADE:
return ("blade trap");
case TRAP_BOLT:
diff --git a/crawl-ref/source/dungeon.cc b/crawl-ref/source/dungeon.cc
index d2e05fcb30..17116e79f2 100644
--- a/crawl-ref/source/dungeon.cc
+++ b/crawl-ref/source/dungeon.cc
@@ -2015,7 +2015,7 @@ static trap_type random_trap_for_level(int level_number)
if (one_chance_in(20))
type = TRAP_TELEPORT;
if (one_chance_in(40))
- type = TRAP_AMNESIA;
+ type = TRAP_ALARM;
return (type);
}
diff --git a/crawl-ref/source/effects.cc b/crawl-ref/source/effects.cc
index 931f61498f..5b8761cd37 100644
--- a/crawl-ref/source/effects.cc
+++ b/crawl-ref/source/effects.cc
@@ -1687,18 +1687,12 @@ bool recharge_wand(void)
return (true);
} // end recharge_wand()
-void yell(void)
+void yell(bool force)
{
bool targ_prev = false;
int mons_targd = MHITNOT;
struct dist targ;
- if (silenced(you.x_pos, you.y_pos) || you.cannot_speak())
- {
- mpr("You are unable to make a sound!");
- return;
- }
-
const std::string shout_verb = you.shout_verb();
std::string cap_shout = shout_verb;
cap_shout[0] = toupper(cap_shout[0]);
@@ -1710,6 +1704,36 @@ void yell(void)
noise_level = 18;
else if (shout_verb == "hiss")
noise_level = 8;
+ else if (shout_verb == "squeak")
+ noise_level = 4;
+ else if (shout_verb == "__NONE")
+ noise_level = 0;
+
+ if (silenced(you.x_pos, you.y_pos) || you.cannot_speak())
+ noise_level = 0;
+
+ if (noise_level == 0)
+ {
+ if (force)
+ {
+ if (shout_verb == "__NONE")
+ mpr("You must scream but have no lips!");
+ else
+ mprf("A %s rips itself from your lips, but you make no sound!",
+ shout_verb.c_str());
+ }
+ else
+ mpr("You are unable to make a sound!");
+
+ return;
+ }
+
+ if (force)
+ {
+ mprf("A %s rips itself from your lips!", shout_verb.c_str());
+ noisy( noise_level, you.x_pos, you.y_pos );
+ return;
+ }
mpr("What do you say?", MSGCH_PROMPT);
mprf(" ! - %s", cap_shout.c_str());
diff --git a/crawl-ref/source/effects.h b/crawl-ref/source/effects.h
index 3c3d741816..de4c71841a 100644
--- a/crawl-ref/source/effects.h
+++ b/crawl-ref/source/effects.h
@@ -92,7 +92,7 @@ void mons_direct_effect(struct bolt &pbolt, int i);
/* ***********************************************************************
* called from: acr
* *********************************************************************** */
-void yell(void);
+void yell(bool force = false);
// last updated 12may2000 {dlb}
diff --git a/crawl-ref/source/enum.h b/crawl-ref/source/enum.h
index fad1046349..0f19033534 100644
--- a/crawl-ref/source/enum.h
+++ b/crawl-ref/source/enum.h
@@ -1980,7 +1980,7 @@ enum mutation_type
MUT_HORNS,
MUT_STRONG_STIFF,
MUT_FLEXIBLE_WEAK,
- MUT_LOST, // 35
+ MUT_SCREAM, // 35
MUT_CLARITY,
MUT_BERSERK,
MUT_DETERIORATION,
@@ -2011,6 +2011,7 @@ enum mutation_type
MUT_BIG_WINGS,
MUT_BLUE_MARKS, // 64 - decorative, as in "mark of the devil"
MUT_GREEN_MARKS, // 65
+ MUT_DRIFTING,
MUT_RED_SCALES = 70, // 70
MUT_NACREOUS_SCALES,
MUT_GREY2_SCALES,
@@ -2499,7 +2500,7 @@ enum trap_type // env.trap_type[]
TRAP_SPEAR,
TRAP_AXE,
TRAP_TELEPORT,
- TRAP_AMNESIA, // 5
+ TRAP_ALARM, // 5
TRAP_BLADE,
TRAP_BOLT,
TRAP_NET,
diff --git a/crawl-ref/source/item_use.cc b/crawl-ref/source/item_use.cc
index 6ae8789bb0..8de97f4e69 100644
--- a/crawl-ref/source/item_use.cc
+++ b/crawl-ref/source/item_use.cc
@@ -3714,12 +3714,6 @@ void read_scroll(void)
}
break;
- case SCR_FORGETFULNESS:
- mpr("You feel momentarily disoriented.");
- if (!wearing_amulet(AMU_CLARITY))
- forget_map(50 + random2(50));
- break;
-
case SCR_MAGIC_MAPPING:
if (you.level_type == LEVEL_PANDEMONIUM)
{
diff --git a/crawl-ref/source/itemname.cc b/crawl-ref/source/itemname.cc
index 20cea75f1c..5b8792a5d3 100644
--- a/crawl-ref/source/itemname.cc
+++ b/crawl-ref/source/itemname.cc
@@ -532,7 +532,6 @@ static const char* scroll_type_name(int scrolltype)
case SCR_BLINKING: return "blinking";
case SCR_PAPER: return "paper";
case SCR_MAGIC_MAPPING: return "magic mapping";
- case SCR_FORGETFULNESS: return "forgetfulness";
case SCR_ACQUIREMENT: return "acquirement";
case SCR_ENCHANT_WEAPON_II: return "enchant weapon II";
case SCR_VORPALISE_WEAPON: return "vorpalise weapon";
diff --git a/crawl-ref/source/itemprop.h b/crawl-ref/source/itemprop.h
index c9e037dc14..8e49e6c198 100644
--- a/crawl-ref/source/itemprop.h
+++ b/crawl-ref/source/itemprop.h
@@ -310,11 +310,10 @@ enum scroll_type
SCR_BLINKING,
SCR_PAPER, // 15
SCR_MAGIC_MAPPING,
- SCR_FORGETFULNESS,
SCR_ACQUIREMENT,
SCR_ENCHANT_WEAPON_II,
- SCR_VORPALISE_WEAPON, // 20
- SCR_RECHARGING,
+ SCR_VORPALISE_WEAPON,
+ SCR_RECHARGING, // 20
SCR_ENCHANT_WEAPON_III,
NUM_SCROLLS
};
diff --git a/crawl-ref/source/items.cc b/crawl-ref/source/items.cc
index d14aa7ebd3..268f47cac2 100644
--- a/crawl-ref/source/items.cc
+++ b/crawl-ref/source/items.cc
@@ -2655,10 +2655,11 @@ void handle_time( long time_delta )
// jmf: moved huge thing to religion.cc
handle_god_time();
- // If the player has the lost mutation forget portions of the map
- if (you.mutation[MUT_LOST] && !wearing_amulet(AMU_CLARITY) &&
- (random2(100) <= you.mutation[MUT_LOST] * 5) )
- forget_map(5 + random2(you.mutation[MUT_LOST] * 10));
+ if (you.mutation[MUT_SCREAM]
+ && (random2(100) <= you.mutation[MUT_SCREAM] * 5) )
+ {
+ yell(true);
+ }
// Update all of the corpses and food chunks on the floor
update_corpses(time_delta);
diff --git a/crawl-ref/source/makeitem.cc b/crawl-ref/source/makeitem.cc
index 75e6e33508..70808ca83e 100644
--- a/crawl-ref/source/makeitem.cc
+++ b/crawl-ref/source/makeitem.cc
@@ -2530,8 +2530,8 @@ int items( int allow_uniques, // not just true-false,
(temp_rand > 464) ? SCR_FEAR : // 3.26%
(temp_rand > 434) ? SCR_NOISE : // 3.26%
(temp_rand > 404) ? SCR_MAGIC_MAPPING : // 3.26%
- (temp_rand > 374) ? SCR_FORGETFULNESS : // 3.26%
- (temp_rand > 344) ? SCR_RANDOM_USELESSNESS :// 3.26%
+ //(temp_rand > 374) ? SCR_FORGETFULNESS : // 3.26%
+ (temp_rand > 344) ? SCR_RANDOM_USELESSNESS :// 6.52%
(temp_rand > 314) ? SCR_CURSE_WEAPON : // 3.26%
(temp_rand > 284) ? SCR_CURSE_ARMOUR : // 3.26%
(temp_rand > 254) ? SCR_RECHARGING : // 3.26%
diff --git a/crawl-ref/source/mstuff2.cc b/crawl-ref/source/mstuff2.cc
index 0d3e6f288b..aa6adb931a 100644
--- a/crawl-ref/source/mstuff2.cc
+++ b/crawl-ref/source/mstuff2.cc
@@ -145,13 +145,33 @@ void mons_trap(struct monsters *monster)
case TRAP_TELEPORT:
monster_teleport(monster, true);
break;
- // amnesia traps do not affect monsters (yet) and
- // only monsters of normal+ IQ will direct a msg
- // to the player - also, *never* revealed: {dlb}
- case TRAP_AMNESIA:
- if (mons_intel(monster->type) > I_ANIMAL)
- simple_monster_message(monster,
- " seems momentarily disoriented.");
+ // alarm trap aren't set off by hostile monsters, because that would
+ // be way too nasty for the player.
+ case TRAP_ALARM:
+ if (!mons_friendly(monster) || silenced(monster->x, monster->y))
+ {
+ if (trapKnown && you.can_see(monster)
+ && !silenced(you.x_pos, you.y_pos))
+ {
+ mpr("The alarm trap makes no noise.");
+ }
+ return;
+ }
+
+ noisy(12, monster->x, monster->y);
+
+ if (!silenced(you.x_pos, you.y_pos))
+ {
+ if (monsterNearby)
+ {
+ mpr("You hear a blaring wail!", MSGCH_SOUND);
+ if (you.can_see(monster))
+ revealTrap = true;
+ }
+ else
+ mpr("You hear a distant blaring wail!", MSGCH_SOUND);
+ }
+
break;
// blade traps sometimes fail to trigger altogether,
// resulting in an "early return" from this f(x) for
diff --git a/crawl-ref/source/mutation.cc b/crawl-ref/source/mutation.cc
index 0eca7d0cfe..befe0be844 100644
--- a/crawl-ref/source/mutation.cc
+++ b/crawl-ref/source/mutation.cc
@@ -191,9 +191,9 @@ const char *mutation_descrip[][3] = {
"Your muscles are very flexible (Dex +2), but weak (Str -2).",
"Your muscles are extremely flexible (Dex +3), but weak (Str -3)."},
- {"You occasionally forget where you are.",
- "You sometimes forget where you are.",
- "You frequently forget where you are."},
+ {"You occasionally scream uncontrollably.",
+ "You sometimes scream uncontrollably.",
+ "You frequently scream uncontrollably."},
{"You possess an exceptional clarity of mind.",
"You possess an unnatural clarity of mind.",
@@ -279,7 +279,9 @@ const char *mutation_descrip[][3] = {
"There are several green sigils on your chest and abdomen.",
"Your chest, abdomen and neck are covered in intricate, arcane green writing."},
- {"", "", ""},
+ {"You occasionally drift when moving.",
+ "You sometimes drift when moving.",
+ "You frequently drift when moving."},
{"", "", ""},
{"", "", ""},
{"", "", ""},
@@ -460,8 +462,8 @@ const char *gain_mutation[][3] = {
{"Your muscles feel sore.", "Your muscles feel sore.",
"Your muscles feel sore."},
- {"Your muscles feel loose.", "Your muscles feel loose.",
- "Your muscles feel loose."},
+ {"You feel the urge to scream.", "You feel the urge to scream.",
+ "You feel the urge to scream."},
{"You feel a little disoriented.", "You feel a little disoriented.",
"Where the Hells are you?"},
@@ -526,7 +528,9 @@ const char *gain_mutation[][3] = {
{"Your chest itches.", "Your chest and abdomen itch.",
"Your chest, abdomen and neck itch."},
- {"", "", ""},
+ {"Your movements feel uncertain.",
+ "Your movements feel even more uncertian.",
+ "Your movements feel even more uncertian."},
{"", "", ""},
{"", "", ""},
{"", "", ""},
@@ -686,8 +690,8 @@ const char *lose_mutation[][3] = {
{"Your muscles feel sore.", "Your muscles feel sore.",
"Your muscles feel sore."},
- {"You feel less disoriented.", "You feel less disoriented.",
- "You feel less disoriented."},
+ {"Your urge to scream disappears.", "Your urge to scream lessens.",
+ "Your urge to scream lessens."},
{"Your thinking seems confused.", "Your thinking seems confused.",
"Your thinking seems confused."},
@@ -742,7 +746,9 @@ const char *lose_mutation[][3] = {
// 65
{"", "", ""},
- {"", "", ""},
+ {"Your movements feel completely certain again.",
+ "Your movements feel more certain.",
+ "Your movements feel more certain."},
{"", "", ""},
{"", "", ""},
{"", "", ""},
@@ -844,7 +850,7 @@ static const mutation_def mutation_defs[] = {
{ MUT_HORNS, 7, 3 },
{ MUT_STRONG_STIFF, 10, 3 },
{ MUT_FLEXIBLE_WEAK, 10, 3 },
- { MUT_LOST, 6, 3 },
+ { MUT_SCREAM, 6, 3 },
{ MUT_CLARITY, 6, 1 },
{ MUT_BERSERK, 7, 3 },
{ MUT_DETERIORATION, 10, 3 },
@@ -878,10 +884,12 @@ static const mutation_def mutation_defs[] = {
{ MUT_STINGER, 0, 3 },
{ MUT_BIG_WINGS, 0, 3 },
{ MUT_BLUE_MARKS, 0, 3 },
+
+// 65
{ MUT_GREEN_MARKS, 0, 3 },
+ { MUT_DRIFTING, 3, 3 },
- // Four placeholders:
- { RANDOM_MUTATION, 0, 3 },
+ // Three placeholders:
{ RANDOM_MUTATION, 0, 3 },
{ RANDOM_MUTATION, 0, 3 },
{ RANDOM_MUTATION, 0, 3 },
@@ -1268,7 +1276,7 @@ static int calc_mutation_amusement_value(mutation_type which_mutation)
case MUT_BREATHE_FLAMES:
case MUT_BLINK:
case MUT_HORNS:
- case MUT_LOST:
+ case MUT_SCREAM:
case MUT_BERSERK:
case MUT_DETERIORATION:
case MUT_BLURRY_VISION:
@@ -1281,6 +1289,7 @@ static int calc_mutation_amusement_value(mutation_type which_mutation)
case MUT_BIG_WINGS:
case MUT_BLUE_MARKS:
case MUT_GREEN_MARKS:
+ case MUT_DRIFTING:
amusement *= 2; // funny!
break;
@@ -1390,7 +1399,7 @@ bool mutate(mutation_type which_mutation, bool failMsg, bool force_mutation,
case 1: mutat = MUT_DOPEY; break;
case 2: mutat = MUT_CLUMSY; break;
case 3: mutat = MUT_DEFORMED; break;
- case 4: mutat = MUT_LOST; break;
+ case 4: mutat = MUT_SCREAM; break;
case 5: mutat = MUT_DETERIORATION; break;
case 6: mutat = MUT_BLURRY_VISION; break;
case 7: mutat = MUT_FRAIL; break;
@@ -2376,7 +2385,7 @@ bool give_bad_mutation(bool forceMutation, bool failMsg)
(temp_rand == 6) ? MUT_CLUMSY :
(temp_rand == 5) ? MUT_TELEPORT :
(temp_rand == 4) ? MUT_DEFORMED :
- (temp_rand == 3) ? MUT_LOST :
+ (temp_rand == 3) ? MUT_SCREAM :
(temp_rand == 2) ? MUT_DETERIORATION :
(temp_rand == 1) ? MUT_BLURRY_VISION
: MUT_FRAIL);
diff --git a/crawl-ref/source/output.cc b/crawl-ref/source/output.cc
index 27b9a16a17..cf601eb4a1 100644
--- a/crawl-ref/source/output.cc
+++ b/crawl-ref/source/output.cc
@@ -1949,10 +1949,10 @@ std::string status_mut_abilities()
Str_change -= level;
Dex_change += level;
break;
- case MUT_LOST:
+ case MUT_SCREAM:
if (have_any)
text += ", ";
- snprintf(info, INFO_SIZE, "forgetfulness %d", level);
+ snprintf(info, INFO_SIZE, "screaming %d", level);
text += info;
have_any = true;
break;
diff --git a/crawl-ref/source/player.cc b/crawl-ref/source/player.cc
index 6d7e083a11..77a94ded67 100644
--- a/crawl-ref/source/player.cc
+++ b/crawl-ref/source/player.cc
@@ -5540,11 +5540,19 @@ std::string player::shout_verb() const
switch (transform)
{
case TRAN_DRAGON:
+ case TRAN_SERPENT_OF_HELL:
return "roar";
case TRAN_SPIDER:
return "hiss";
+ case TRAN_BAT:
+ return "squeak";
+ case TRAN_AIR:
+ return "__NONE";
default:
- return "yell";
+ if (you.mutation[MUT_SCREAM])
+ return "scream";
+ else
+ return "yell";
}
}
diff --git a/crawl-ref/source/shopping.cc b/crawl-ref/source/shopping.cc
index 8b7f000c5e..5397844e43 100644
--- a/crawl-ref/source/shopping.cc
+++ b/crawl-ref/source/shopping.cc
@@ -1260,7 +1260,6 @@ unsigned int item_value( item_def item, bool ident )
break;
case SCR_CURSE_ARMOUR:
case SCR_CURSE_WEAPON:
- case SCR_FORGETFULNESS:
case SCR_PAPER:
case SCR_IMMOLATION:
valued++;
diff --git a/crawl-ref/source/traps.cc b/crawl-ref/source/traps.cc
index 4de5def889..2773566b34 100644
--- a/crawl-ref/source/traps.cc
+++ b/crawl-ref/source/traps.cc
@@ -356,10 +356,18 @@ void handle_traps(trap_type trt, int i, bool trap_known)
you_teleport_now( true );
break;
- case TRAP_AMNESIA:
- mpr("You feel momentarily disoriented.");
- if (!wearing_amulet(AMU_CLARITY))
- forget_map(random2avg(100, 2));
+ case TRAP_ALARM:
+ if (silenced(you.x_pos, you.y_pos))
+ {
+ if (trap_known)
+ mpr("The alarm is silenced.");
+ else
+ grd[you.x_pos][you.y_pos] = DNGN_UNDISCOVERED_TRAP;
+ return;
+ }
+
+ noisy(12, you.x_pos, you.y_pos, "An alarm trap emits a blaring wail!");
+
break;
case TRAP_BLADE:
@@ -837,7 +845,7 @@ dungeon_feature_type trap_category(trap_type type)
return (DNGN_TRAP_NATURAL);
case TRAP_TELEPORT:
- case TRAP_AMNESIA:
+ case TRAP_ALARM:
case TRAP_ZOT:
return (DNGN_TRAP_MAGICAL);