summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--crawl-ref/source/acr.cc27
-rw-r--r--crawl-ref/source/dat/descript/spells.txt12
-rw-r--r--crawl-ref/source/effects.cc7
-rw-r--r--crawl-ref/source/externs.h1
-rw-r--r--crawl-ref/source/food.cc16
-rw-r--r--crawl-ref/source/initfile.cc3
-rw-r--r--crawl-ref/source/makeitem.cc14
-rw-r--r--crawl-ref/source/newgame.cc24
-rw-r--r--crawl-ref/source/notes.cc2
-rw-r--r--crawl-ref/source/skills2.cc2
10 files changed, 70 insertions, 38 deletions
diff --git a/crawl-ref/source/acr.cc b/crawl-ref/source/acr.cc
index 69d5fa5115..d934e58972 100644
--- a/crawl-ref/source/acr.cc
+++ b/crawl-ref/source/acr.cc
@@ -153,14 +153,13 @@ const struct coord_def Compass[8] =
};
// Functions in main module
-static void close_door(int move_x, int move_y);
static void do_berserk_no_combat_penalty(void);
static bool initialise(void);
static void input(void);
static void move_player(int move_x, int move_y);
static void open_door(int move_x, int move_y, bool check_confused = true);
-static void start_running( int dir, int mode );
static void close_door(int move_x, int move_y);
+static void start_running( int dir, int mode );
static void prep_input();
static void input();
@@ -2722,7 +2721,17 @@ static void open_door(int move_x, int move_y, bool check_confused)
{
int skill = you.dex + (you.skills[SK_TRAPS_DOORS] + you.skills[SK_STEALTH]) / 2;
- if (one_chance_in(skill) && !silenced(you.x_pos, you.y_pos))
+ if (you.duration[DUR_BERSERKER])
+ {
+ if (silenced(you.x_pos, you.y_pos))
+ mpr("The door flies open!");
+ else
+ {
+ mpr("The door flies open with a bang!");
+ noisy( 15, you.x_pos, you.y_pos );
+ }
+ }
+ else if (one_chance_in(skill) && !silenced(you.x_pos, you.y_pos))
{
mpr( "As you open the door, it creaks loudly!" );
noisy( 10, you.x_pos, you.y_pos );
@@ -2795,7 +2804,17 @@ static void close_door(int door_x, int door_y)
int skill = you.dex + (you.skills[SK_TRAPS_DOORS] + you.skills[SK_STEALTH]) / 2;
- if (one_chance_in(skill) && !silenced(you.x_pos, you.y_pos))
+ if (you.duration[DUR_BERSERKER])
+ {
+ if (silenced(you.x_pos, you.y_pos))
+ mpr("You slam the door shut!");
+ else
+ {
+ mpr("You slam the door shut with an echoing bang!");
+ noisy( 25, you.x_pos, you.y_pos );
+ }
+ }
+ else if (one_chance_in(skill) && !silenced(you.x_pos, you.y_pos))
{
mpr("As you close the door, it creaks loudly!");
noisy( 10, you.x_pos, you.y_pos );
diff --git a/crawl-ref/source/dat/descript/spells.txt b/crawl-ref/source/dat/descript/spells.txt
index ca93efa8bf..04c99f7d92 100644
--- a/crawl-ref/source/dat/descript/spells.txt
+++ b/crawl-ref/source/dat/descript/spells.txt
@@ -45,7 +45,7 @@ This spell banishes one creature to the Abyss. Those wishing to visit that unple
%%%%
Bend
-This spell applies a localized spatial distortion to the detrimentof some nearby creature.
+This spell applies a localized spatial distortion to the detriment of some nearby creature.
%%%%
Berserker Rage
@@ -217,7 +217,7 @@ This spell digs a tunnel through unworked rock.
%%%%
Disintegrate
-This spell violently rends apart anything in a small volume of space. Can be used to cause severe damage.
+This spell violently rends apart anything in a small volume of space. It can be used to cause severe damage.
%%%%
Dispel Undead
@@ -429,11 +429,11 @@ This spell hurls a crackling orb of electrical energy which explodes with immens
%%%%
Ozocubu's Armour
-This spell enaster's body in a protective layer of ice, the power of which depends on his or her skill with ice magic. the caster and the caster's equipment are protected from the cold, but the spell will not function for casters already wearing heavy armour. the effects of this spell are boosted if the caster is in ice form.
+This spell envelops the caster's body in a protective layer of ice, the power of which depends on his or her skill with ice magic. The caster and the caster's equipment are protected from the cold, but the spell will not function for casters already wearing heavy armour. The effects of this spell are boosted if the caster is in ice form.
%%%%
Ozocubu's Refrigeration
-This spell drains the heat from the caster and her surroundings, causing harm to all creatures not resistant to cold.
+This spell drains the heat from the caster and his or her surroundings, causing harm to all creatures not resistant to cold.
%%%%
Pain
@@ -457,7 +457,7 @@ This spell hurls a magical arrow of the most vile and noxious toxin. No living t
%%%%
Poison Weapon
-This spell temporarily coats any sharp bladed weapon with poison. Will only work on weapons without an existing enchantment.
+This spell temporarily coats any sharp bladed weapon with poison. It will only work on weapons without an existing enchantment.
%%%%
Poisonous Cloud
@@ -709,7 +709,7 @@ This spell causes a slight spatial distortion around a monster in line of sight
%%%%
Twisted Resurrection
-This spell allows its caster to imbue a mass of deceased flesh with a magical life force. Casting this spell involves the assembling several corpses together; the greater the combined mass of flesh available, the greater the chances of success.
+This spell allows its caster to imbue a mass of deceased flesh with a magical life force. Casting this spell involves the assembling of several corpses together; the greater the combined mass of flesh available, the greater the chances of success.
%%%%
Vampiric Draining
diff --git a/crawl-ref/source/effects.cc b/crawl-ref/source/effects.cc
index 7df469dd70..522a99f8f6 100644
--- a/crawl-ref/source/effects.cc
+++ b/crawl-ref/source/effects.cc
@@ -512,8 +512,9 @@ static int find_acquirement_subtype(object_class_type class_wanted,
{
// Vampires really don't want any OBJ_FOOD but OBJ_CORPSES
// but it's easier to just give them a potion of blood
- class_wanted = OBJ_POTIONS;
+ // class type is set elsewhere
type_wanted = POT_BLOOD;
+ unique = 2 + random2(4);
}
else
{
@@ -1146,6 +1147,10 @@ bool acquirement(object_class_type class_wanted, int agent)
{
unique = 1;
int type_wanted = find_acquirement_subtype(class_wanted, unique);
+
+ // clobber class_wanted for vampires
+ if (you.species == SP_VAMPIRE && class_wanted == OBJ_FOOD)
+ class_wanted = OBJ_POTIONS;
// BCR - unique is now used for food quantity.
thing_created = items( unique, class_wanted, type_wanted, true,
diff --git a/crawl-ref/source/externs.h b/crawl-ref/source/externs.h
index 2106671372..b4cf983058 100644
--- a/crawl-ref/source/externs.h
+++ b/crawl-ref/source/externs.h
@@ -1665,6 +1665,7 @@ public:
bool default_target; // start targeting on a real target
bool safe_autopickup; // don't autopickup when monsters visible
bool autopickup_no_burden; // don't autopickup if it changes burden
+ bool note_all_skill_levels; // take note for all skill levels (1-27)
bool note_skill_max; // take note when skills reach new max
bool note_all_spells; // take note when learning any spell
bool use_notes; // take (and dump) notes
diff --git a/crawl-ref/source/food.cc b/crawl-ref/source/food.cc
index 10334a013b..7b8d7dd3c7 100644
--- a/crawl-ref/source/food.cc
+++ b/crawl-ref/source/food.cc
@@ -1032,7 +1032,6 @@ static void eating(unsigned char item_class, int item_type)
} // end base sustenance listing {dlb}
// next, sustenance modifier for carnivores/herbivores {dlb}:
- // for some reason, sausages do not penalize herbivores {dlb}:
switch (item_type)
{
case FOOD_MEAT_RATION:
@@ -1040,6 +1039,7 @@ static void eating(unsigned char item_class, int item_type)
herbivore_modifier = -1500;
break;
case FOOD_BEEF_JERKY:
+ case FOOD_SAUSAGE:
carnivore_modifier = 200;
herbivore_modifier = -200;
break;
@@ -1096,6 +1096,9 @@ static void eating(unsigned char item_class, int item_type)
one_chance_in(4) ? "jerk-a-riffic"
: "delicious");
break;
+ case FOOD_SAUSAGE:
+ mpr("That sausage was delicious!");
+ break;
default:
break;
}
@@ -1168,7 +1171,13 @@ static void eating(unsigned char item_class, int item_type)
mprf("Mmm... %s.", SysEnv.crawl_pizza.c_str());
else
{
- temp_rand = random2(9);
+ if (how_carnivorous >= 1) // non-vegetable
+ temp_rand = 5 + random2(4);
+ else if (how_herbivorous >= 1) // non-meaty
+ temp_rand = random2(6) + 2;
+ else
+ temp_rand = random2(9);
+
mprf("Mmm... %s",
(temp_rand == 0) ? "Ham and pineapple." :
(temp_rand == 2) ? "Vegetable." :
@@ -1193,9 +1202,6 @@ static void eating(unsigned char item_class, int item_type)
(temp_rand == 7) ? "Sheep cheese"
: "Yak cheese");
break;
- case FOOD_SAUSAGE:
- mpr("That sausage was delicious!");
- break;
default:
break;
}
diff --git a/crawl-ref/source/initfile.cc b/crawl-ref/source/initfile.cc
index b235dda5eb..58fddaba65 100644
--- a/crawl-ref/source/initfile.cc
+++ b/crawl-ref/source/initfile.cc
@@ -599,11 +599,14 @@ void game_options::reset_options()
default_target = true;
safe_autopickup = true;
autopickup_no_burden = false;
+
use_notes = true;
+ note_all_skill_levels = false;
note_skill_max = false;
note_all_spells = false;
note_hp_percent = 5;
ood_interesting = 8;
+
terse_hand = true;
increasing_skill_progress = true;
diff --git a/crawl-ref/source/makeitem.cc b/crawl-ref/source/makeitem.cc
index 49b98b8f7e..c6afbc2f35 100644
--- a/crawl-ref/source/makeitem.cc
+++ b/crawl-ref/source/makeitem.cc
@@ -3733,12 +3733,14 @@ static void give_ammo(monsters *mon, int level,
case MONS_DRACONIAN_KNIGHT:
case MONS_GNOLL:
case MONS_HILL_GIANT:
- if (one_chance_in(20))
- {
- weap_class = OBJ_MISSILES;
- weap_type = MI_THROWING_NET;
- qty = 1;
- }
+ if (!one_chance_in(20))
+ break;
+ // fall through
+ case MONS_HAROLD: // bounty hunters
+ case MONS_JOZEF:
+ weap_class = OBJ_MISSILES;
+ weap_type = MI_THROWING_NET;
+ qty = coinflip() + 1;
break;
}
diff --git a/crawl-ref/source/newgame.cc b/crawl-ref/source/newgame.cc
index d8cdb15522..59e2a96100 100644
--- a/crawl-ref/source/newgame.cc
+++ b/crawl-ref/source/newgame.cc
@@ -4026,7 +4026,7 @@ bool give_items_skills()
you.inv[0].special = 0;
you.equip[EQ_WEAPON] = 0;
- for (unsigned char i = 1; i <= 3; i++)
+ for (unsigned char i = 2; i <= 4; i++)
{
you.inv[i].quantity = 1;
you.inv[i].base_type = OBJ_WEAPONS;
@@ -4039,24 +4039,17 @@ bool give_items_skills()
// ARMOUR
+ you.inv[1].quantity = 1;
+ you.inv[1].base_type = OBJ_ARMOUR;
+ you.inv[1].sub_type = ARM_LEATHER_ARMOUR;
+ you.inv[1].plus = 0;
+ you.inv[1].special = 0;
+ you.equip[EQ_BODY_ARMOUR] = 1;
+
if (you.species == SP_OGRE || you.species == SP_TROLL
|| player_genus(GENPC_DRACONIAN))
{
- you.inv[1].quantity = 1;
- you.inv[1].base_type = OBJ_ARMOUR;
you.inv[1].sub_type = ARM_ANIMAL_SKIN;
- you.inv[1].plus = 0;
- you.inv[1].special = 0;
- you.equip[EQ_BODY_ARMOUR] = 1;
- }
- else
- {
- you.inv[4].quantity = 1;
- you.inv[4].base_type = OBJ_ARMOUR;
- you.inv[4].sub_type = ARM_LEATHER_ARMOUR;
- you.inv[4].plus = 0;
- you.inv[4].special = 0;
- you.equip[EQ_BODY_ARMOUR] = 4;
}
// SKILLS
@@ -4101,6 +4094,7 @@ bool give_items_skills()
if (you.species == SP_MERFOLK)
// Merfolk are spear hunters -- clobber bow, give six javelins
+ // possibly allow choice between javelin and net
{
you.inv[1].quantity = 6;
you.inv[1].base_type = OBJ_MISSILES;
diff --git a/crawl-ref/source/notes.cc b/crawl-ref/source/notes.cc
index 6118d7c4e3..f221bc9501 100644
--- a/crawl-ref/source/notes.cc
+++ b/crawl-ref/source/notes.cc
@@ -135,6 +135,8 @@ static bool is_noteworthy( const Note& note )
it's a new maximal skill (depending on options) */
if ( note.type == NOTE_GAIN_SKILL )
{
+ if ( Options.note_all_skill_levels )
+ return true;
if ( is_noteworthy_skill_level(note.second) )
return true;
if ( Options.note_skill_max && is_highest_skill(note.first) )
diff --git a/crawl-ref/source/skills2.cc b/crawl-ref/source/skills2.cc
index 5999c69e6f..50ebe1228d 100644
--- a/crawl-ref/source/skills2.cc
+++ b/crawl-ref/source/skills2.cc
@@ -1875,7 +1875,7 @@ static void display_skill_table(bool show_aptitudes)
if ( !show_aptitudes )
{
- textcolor(BLUE);
+ textcolor(CYAN);
if ( !Options.increasing_skill_progress )
cprintf( " (%d)", (100 - percent_done) / 10 );
else