diff options
author | dshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573> | 2006-09-22 07:12:29 +0000 |
---|---|---|
committer | dshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573> | 2006-09-22 07:12:29 +0000 |
commit | d88cf87c8830e4cddb975c978f466999462c65af (patch) | |
tree | 9ec69a234805af7b85d0e4a28ec56bbb76f66f13 /crawl-ref | |
parent | eac62b6c65f56eaf7e44fffd814550b14c59e86d (diff) | |
download | crawl-ref-d88cf87c8830e4cddb975c978f466999462c65af.tar.gz crawl-ref-d88cf87c8830e4cddb975c978f466999462c65af.zip |
* [Balance] Okawaru no longer protects you from harm. Needs to be further
discussed.
* [Balance] Rods are now generated in the 9-14MP range (was 9-17MP).
* [Balance] Draconians are slightly weaker, hpwise. Attackwise they're still a
bundle of hurt.
* [Balance] Sif Muna spell training piety is now scaled with respect to skill
aptitudes. I've also lowered the level divider to 60 to make piety gain
easier.
* [Balance] Okawaru will only attempt to grant missiles if he's decided not to
do a high-end gift. This reduces the encroachment of missile gifts on
armour/weapon probability. Okawaru also expects a minimum missile skill of 7
before handing out free missiles.
* Ctrl+direction attack/untrap no longer ignores confusion.
* The game name is now a #define in version.h so we don't have to scatter it
across multiple source files.
* Fixed X map not handling DOS keypad correctly (Tina Hall).
* Added MR_RES_ASPHYX to flag resistance to curare's secondary effects. Plants
also get blanket immunity to secondary curare effects.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/branches/stone_soup@62 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref')
-rw-r--r-- | crawl-ref/source/acr.cc | 23 | ||||
-rw-r--r-- | crawl-ref/source/chardump.cc | 2 | ||||
-rw-r--r-- | crawl-ref/source/command.cc | 2 | ||||
-rw-r--r-- | crawl-ref/source/debug.cc | 2 | ||||
-rw-r--r-- | crawl-ref/source/describe.cc | 1 | ||||
-rw-r--r-- | crawl-ref/source/direct.cc | 9 | ||||
-rw-r--r-- | crawl-ref/source/direct.h | 2 | ||||
-rw-r--r-- | crawl-ref/source/dungeon.cc | 3 | ||||
-rw-r--r-- | crawl-ref/source/enum.h | 3 | ||||
-rw-r--r-- | crawl-ref/source/itemname.cc | 1 | ||||
-rw-r--r-- | crawl-ref/source/libutil.cc | 21 | ||||
-rw-r--r-- | crawl-ref/source/libw32c.cc | 2 | ||||
-rw-r--r-- | crawl-ref/source/mon-data.h | 60 | ||||
-rw-r--r-- | crawl-ref/source/mon-util.cc | 4 | ||||
-rw-r--r-- | crawl-ref/source/newgame.cc | 2 | ||||
-rw-r--r-- | crawl-ref/source/ouch.cc | 1 | ||||
-rw-r--r-- | crawl-ref/source/output.cc | 2 | ||||
-rw-r--r-- | crawl-ref/source/religion.cc | 49 | ||||
-rw-r--r-- | crawl-ref/source/spl-cast.cc | 17 | ||||
-rw-r--r-- | crawl-ref/source/stuff.cc | 6 | ||||
-rw-r--r-- | crawl-ref/source/stuff.h | 1 | ||||
-rw-r--r-- | crawl-ref/source/travel.cc | 6 | ||||
-rw-r--r-- | crawl-ref/source/version.h | 4 | ||||
-rw-r--r-- | crawl-ref/source/view.cc | 7 |
24 files changed, 140 insertions, 90 deletions
diff --git a/crawl-ref/source/acr.cc b/crawl-ref/source/acr.cc index 7f32acb932..8e192a5c1f 100644 --- a/crawl-ref/source/acr.cc +++ b/crawl-ref/source/acr.cc @@ -185,12 +185,12 @@ extern unsigned char your_sign; extern unsigned char your_colour; // Functions in main module -static void close_door(char move_x, char move_y); +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(char move_x, char move_y); -static void open_door(char move_x, char move_y); +static void move_player(int move_x, int move_y); +static void open_door(int move_x, int move_y, bool check_confused = true); /* It all starts here. Some initialisations are run first, then straight to @@ -851,8 +851,9 @@ static bool recharge_rod( item_def &rod, bool wielded ) rate = ROD_CHARGE_MULT / 2; // If not wielded, the rod charges far more slowly. + // [dshaligram] Reduced charge rate of non-wielded rods further. if (!wielded) - rate /= 3; + rate /= 5; if (rod.plus / ROD_CHARGE_MULT != (rod.plus + rate) / ROD_CHARGE_MULT) { @@ -2610,11 +2611,17 @@ static void input(void) move_y are non-zero, the pair carries a specific direction for the door to be opened (eg if you type ctrl - dir). */ -static void open_door(char move_x, char move_y) +static void open_door(int move_x, int move_y, bool check_confused) { struct dist door_move; int dx, dy; // door x, door y + if (check_confused && you.conf && !one_chance_in(3)) + { + move_x = random2(3) - 1; + move_y = random2(3) - 1; + } + door_move.dx = move_x; door_move.dy = move_y; @@ -2691,7 +2698,7 @@ static void open_door(char move_x, char move_y) /* Similar to open_door. Can you spot the difference? */ -static void close_door(char door_x, char door_y) +static void close_door(int door_x, int door_y) { struct dist door_move; int dx, dy; // door x, door y @@ -2960,7 +2967,7 @@ static void do_berserk_no_combat_penalty(void) // Called when the player moves by walking/running. Also calls // attack function and trap function etc when necessary. -static void move_player(char move_x, char move_y) +static void move_player(int move_x, int move_y) { bool attacking = false; bool moving = true; // used to prevent eventual movement (swap) @@ -3194,7 +3201,7 @@ static void move_player(char move_x, char move_y) out_of_traps: // BCR - Easy doors single move if (targ_grid == DNGN_CLOSED_DOOR && (Options.easy_open || you.running < 0)) - open_door(move_x, move_y); + open_door(move_x, move_y, false); else if (targ_grid <= MINMOVE) { stop_running(); diff --git a/crawl-ref/source/chardump.cc b/crawl-ref/source/chardump.cc index 843a5cb86d..7cacac08cc 100644 --- a/crawl-ref/source/chardump.cc +++ b/crawl-ref/source/chardump.cc @@ -1036,7 +1036,7 @@ bool dump_char( const char fname[30], bool show_prices ) // $$$ a try block? // start with enough room for 100 80 character lines text.reserve(100 * 80); - text += " Dungeon Crawl Stone Soup version " VERSION " character file."; + text += " " CRAWL " version " VERSION " character file."; text += EOL; text += EOL; diff --git a/crawl-ref/source/command.cc b/crawl-ref/source/command.cc index eb2bc068d2..0ba2b4e46b 100644 --- a/crawl-ref/source/command.cc +++ b/crawl-ref/source/command.cc @@ -64,7 +64,7 @@ static const char *features[] = { void version(void) { - mpr( "This is Dungeon Crawl Stone Soup " VERSION " (" BUILD_DATE ")." ); + mpr( "This is " CRAWL " " VERSION " (" BUILD_DATE ")." ); std::string feats = "Features: "; for (int i = 1, size = sizeof features / sizeof *features; i < size; ++i) diff --git a/crawl-ref/source/debug.cc b/crawl-ref/source/debug.cc index 12fdae7acb..08822e84a3 100644 --- a/crawl-ref/source/debug.cc +++ b/crawl-ref/source/debug.cc @@ -1930,7 +1930,7 @@ static void fsim_mon_stats(FILE *o, const monsters &mon) static void fsim_title(FILE *o, int mon, int ms) { char buf[ITEMNAME_SIZE]; - fprintf(o, "Dungeon Crawl Stone Soup version " VERSION "\n\n"); + fprintf(o, CRAWL " version " VERSION "\n\n"); fprintf(o, "Combat simulation: %s %s vs. %s (%ld rounds) (%s)\n", species_name(you.species, you.experience_level), you.class_name, diff --git a/crawl-ref/source/describe.cc b/crawl-ref/source/describe.cc index 031ca5f60d..b3f04020c9 100644 --- a/crawl-ref/source/describe.cc +++ b/crawl-ref/source/describe.cc @@ -6579,7 +6579,6 @@ void describe_god( int which_god, bool give_title ) if ((which_god == GOD_ZIN || which_god == GOD_SHINING_ONE || which_god == GOD_ELYVILON - || which_god == GOD_OKAWARU || which_god == GOD_YREDELEMNUL) && you.piety >= 30) { diff --git a/crawl-ref/source/direct.cc b/crawl-ref/source/direct.cc index 665ebef4e8..dbdd478564 100644 --- a/crawl-ref/source/direct.cc +++ b/crawl-ref/source/direct.cc @@ -78,7 +78,8 @@ static const char ycomp[9] = { 1, 1, 1, 0, 0, 0, -1, -1, -1 }; // [dshaligram] Removed . and 5 from dirchars so it's easier to // special case them. static const char dirchars[19] = { "b1j2n3h4bbl6y7k8u9" }; -static const char DOSidiocy[10] = { "OPQKSMGHI" }; +static const char DOSidiocy[10] = { "OPQKSMGHI" }; +static const char DOSunidiocy[10] = { "bjnh.lyku" }; static const char *aim_prompt = "Aim (move cursor or -/+/=, change mode with CTRL-F, select with . or >)"; static void describe_feature(int mx, int my, bool oos); @@ -99,6 +100,12 @@ static bool is_mapped(int x, int y) return (is_player_mapped(x, y)); } +int dos_direction_unmunge(int doskey) +{ + const char *pos = strchr(DOSidiocy, doskey); + return (pos? DOSunidiocy[ pos - DOSidiocy ] : doskey); +} + //--------------------------------------------------------------- // // direction diff --git a/crawl-ref/source/direct.h b/crawl-ref/source/direct.h index dbd60ad240..3d35c571f8 100644 --- a/crawl-ref/source/direct.h +++ b/crawl-ref/source/direct.h @@ -42,6 +42,8 @@ bool in_viewport_bounds(int x, int y); bool in_los(int x, int y); bool in_vlos(int x, int y); +int dos_direction_unmunge(int doskey); + std::string feature_description(int mx, int my); inline int view2gridX(int vx) diff --git a/crawl-ref/source/dungeon.cc b/crawl-ref/source/dungeon.cc index 79e0c9a1b6..384ae35c4e 100644 --- a/crawl-ref/source/dungeon.cc +++ b/crawl-ref/source/dungeon.cc @@ -2408,8 +2408,7 @@ int items( int allow_uniques, // not just true-false, if (item_is_rod( mitm[p] )) { - mitm[p].plus2 = (9 + random2( MAX_ROD_CHARGE - 8 )) - * ROD_CHARGE_MULT; + mitm[p].plus2 = random_range(9, 14) * ROD_CHARGE_MULT; mitm[p].plus = mitm[p].plus2; } diff --git a/crawl-ref/source/enum.h b/crawl-ref/source/enum.h index e32fea0575..dd4bfe839c 100644 --- a/crawl-ref/source/enum.h +++ b/crawl-ref/source/enum.h @@ -1802,12 +1802,13 @@ enum mon_resist_flags // Notes: // - negative energy is mostly handled via mons_has_life_force() // - acid is handled mostly by genus (jellies) plus non-living + // - asphyx-resistance replaces hellfrost resistance. MR_RES_ELEC = (1<< 0), MR_RES_POISON = (1<< 1), MR_RES_FIRE = (1<< 2), MR_RES_HELLFIRE = (1<< 3), MR_RES_COLD = (1<< 4), - MR_RES_HELLFROST = (1<< 5), + MR_RES_ASPHYX = (1<< 5), // vulnerabilities MR_VUL_ELEC = (1<< 6), diff --git a/crawl-ref/source/itemname.cc b/crawl-ref/source/itemname.cc index f8862888a0..11ee7cd504 100644 --- a/crawl-ref/source/itemname.cc +++ b/crawl-ref/source/itemname.cc @@ -1063,6 +1063,7 @@ static char item_name_2( const item_def &item, char buff[ITEMNAME_SIZE], if (item_cursed( item )) strncat(buff, "cursed ", ITEMNAME_SIZE ); else if (Options.show_uncursed + && !terse && (!ring_has_pluses(item) || !item_ident(item, ISFLAG_KNOW_PLUSES))) { diff --git a/crawl-ref/source/libutil.cc b/crawl-ref/source/libutil.cc index b4ec7ab2fa..2e256b03cc 100644 --- a/crawl-ref/source/libutil.cc +++ b/crawl-ref/source/libutil.cc @@ -460,7 +460,8 @@ static bool glob_match( const char *pattern, const char *text, bool icase ) //////////////////////////////////////////////////////////////////// // Perl Compatible Regular Expressions -void *compile_pattern(const char *pattern, bool icase) { +void *compile_pattern(const char *pattern, bool icase) +{ const char *error; int erroffset; int flags = icase? PCRE_CASELESS : 0; @@ -471,7 +472,8 @@ void *compile_pattern(const char *pattern, bool icase) { NULL); } -void free_compiled_pattern(void *cp) { +void free_compiled_pattern(void *cp) +{ if (cp) pcre_free(cp); } @@ -495,7 +497,8 @@ bool pattern_match(void *compiled_pattern, const char *text, int length) //////////////////////////////////////////////////////////////////// // POSIX regular expressions -void *compile_pattern(const char *pattern, bool icase) { +void *compile_pattern(const char *pattern, bool icase) +{ regex_t *re = new regex_t; if (!re) return NULL; @@ -505,15 +508,18 @@ void *compile_pattern(const char *pattern, bool icase) { flags |= REG_ICASE; int rc = regcomp(re, pattern, flags); // Nonzero return code == failure - if (rc) { + if (rc) + { delete re; return NULL; } return re; } -void free_compiled_pattern(void *cp) { - if (cp) { +void free_compiled_pattern(void *cp) +{ + if (cp) + { regex_t *re = static_cast<regex_t *>( cp ); regfree(re); delete re; @@ -542,7 +548,8 @@ void *compile_pattern(const char *pattern, bool icase) // If we're using simple globs, we need to box the pattern with '*' std::string s = std::string("*") + pattern + "*"; glob_info *gi = new glob_info; - if (gi) { + if (gi) + { gi->s = s; gi->ignore_case = icase; } diff --git a/crawl-ref/source/libw32c.cc b/crawl-ref/source/libw32c.cc index 975e14e641..782e2e117e 100644 --- a/crawl-ref/source/libw32c.cc +++ b/crawl-ref/source/libw32c.cc @@ -338,7 +338,7 @@ void init_libw32c(void) } GetConsoleTitle( oldTitle, 78 ); - SetConsoleTitle( "Crawl Stone Soup " VERSION ); + SetConsoleTitle( CRAWL " " VERSION ); init_colors(oldTitle); diff --git a/crawl-ref/source/mon-data.h b/crawl-ref/source/mon-data.h index f51df5b096..e77c76b5c8 100644 --- a/crawl-ref/source/mon-data.h +++ b/crawl-ref/source/mon-data.h @@ -515,7 +515,7 @@ { MONS_GIANT_SPORE, 'G', GREEN, "giant spore", M_LEVITATE, - MR_RES_POISON, + MR_RES_POISON | MR_RES_ASPHYX, 0, 10, MONS_PLANT, MONS_GIANT_SPORE, MH_NATURAL, -3, { 1, 0, 0, 0 }, { 1, 0, 0, 1 }, @@ -539,7 +539,7 @@ { MONS_ICE_BEAST, 'I', WHITE, "ice beast", M_NO_FLAGS, - MR_RES_POISON | MR_VUL_FIRE | MR_RES_COLD, + MR_RES_POISON | MR_RES_ASPHYX | MR_VUL_FIRE | MR_RES_COLD, 0, 12, MONS_ICE_BEAST, MONS_ICE_BEAST, MH_NATURAL, -3, { 5, 0, 0, 0 }, { 5, 3, 5, 0 }, @@ -551,7 +551,7 @@ { MONS_JELLY, 'J', LIGHTRED, "jelly", M_SEE_INVIS | M_SPLITS | M_AMPHIBIOUS, - MR_RES_POISON, + MR_RES_POISON | MR_RES_ASPHYX, 0, 13, MONS_JELLY, MONS_JELLY, MH_NATURAL, -3, { 8, 0, 0, 0 }, { 3, 5, 5, 0 }, @@ -845,7 +845,7 @@ { MONS_GIANT_EYEBALL, 'G', WHITE, "giant eyeball", M_NO_SKELETON | M_LEVITATE, - MR_NO_FLAGS, + MR_RES_ASPHYX, 400, 10, MONS_GIANT_EYEBALL, MONS_GIANT_EYEBALL, MH_NATURAL, -3, { 0, 0, 0, 0 }, { 3, 3, 5, 0 }, @@ -917,7 +917,7 @@ { MONS_EYE_OF_DRAINING, 'G', LIGHTGREY, "eye of draining", M_NO_SKELETON | M_LEVITATE | M_SEE_INVIS, - MR_NO_FLAGS, + MR_RES_ASPHYX, 400, 10, MONS_GIANT_EYEBALL, MONS_EYE_OF_DRAINING, MH_NATURAL, 5000, { 0, 0, 0, 0 }, { 7, 3, 5, 0 }, @@ -929,7 +929,7 @@ { MONS_BUTTERFLY, 'b', BLACK, "butterfly", M_FLIES | M_CONFUSED, - MR_VUL_POISON, + MR_VUL_POISON | MR_RES_ASPHYX, 150, 10, MONS_BUTTERFLY, MONS_BUTTERFLY, MH_NATURAL, -3, { 0, 0, 0, 0 }, { 1, 3, 5, 0 }, @@ -977,7 +977,7 @@ { MONS_GIANT_ORANGE_BRAIN, 'G', LIGHTRED, "giant orange brain", M_NO_SKELETON | M_SPELLCASTER | M_LEVITATE | M_SEE_INVIS, - MR_NO_FLAGS, + MR_RES_ASPHYX, 1000, 13, MONS_GIANT_ORANGE_BRAIN, MONS_GIANT_ORANGE_BRAIN, MH_NATURAL, -8, { 0, 0, 0, 0 }, { 10, 3, 5, 0 }, @@ -1625,7 +1625,7 @@ { MONS_PULSATING_LUMP, 'J', RED, "pulsating lump", M_SEE_INVIS, - MR_RES_POISON, + MR_RES_POISON | MR_RES_ASPHYX, 0, 3, MONS_JELLY, MONS_PULSATING_LUMP, MH_NATURAL, -3, { 13, 0, 0, 0 }, { 10, 3, 5, 0 }, @@ -2871,7 +2871,7 @@ { MONS_BROWN_OOZE, 'J', BROWN, "brown ooze", M_NO_SKELETON | M_SEE_INVIS, - MR_RES_POISON, + MR_RES_POISON | MR_RES_ASPHYX, 0, 11, MONS_JELLY, MONS_BROWN_OOZE, MH_NATURAL, -7, { 25, 0, 0, 0 }, { 7, 3, 5, 0 }, @@ -2883,7 +2883,7 @@ { MONS_AZURE_JELLY, 'J', LIGHTBLUE, "azure jelly", M_NO_SKELETON | M_SEE_INVIS, - MR_RES_POISON | MR_RES_COLD | MR_VUL_FIRE | MR_RES_ELEC, + MR_RES_POISON | MR_RES_COLD | MR_VUL_FIRE | MR_RES_ELEC | MR_RES_ASPHYX, 0, 11, MONS_JELLY, MONS_AZURE_JELLY, MH_NATURAL, -4, { 12, 12, 12, 12 }, { 15, 3, 5, 0 }, @@ -2895,7 +2895,7 @@ { MONS_DEATH_OOZE, 'J', DARKGREY, "death ooze", M_NO_SKELETON | M_SEE_INVIS | M_EVIL, - MR_RES_POISON | MR_RES_COLD, + MR_RES_POISON | MR_RES_COLD | MR_RES_ASPHYX, 0, 13, MONS_JELLY, MONS_DEATH_OOZE, MH_UNDEAD, -8, { 32, 32, 0, 0 }, { 11, 3, 3, 0 }, @@ -2907,7 +2907,7 @@ { MONS_ACID_BLOB, 'J', LIGHTGREEN, "acid blob", M_NO_SKELETON | M_SEE_INVIS | M_SPECIAL_ABILITY, - MR_RES_POISON, + MR_RES_POISON | MR_RES_ASPHYX, 0, 12, MONS_JELLY, MONS_ACID_BLOB, MH_NATURAL, -7, { 42, 0, 0, 0 }, { 18, 3, 5, 0 }, @@ -2919,7 +2919,7 @@ { MONS_ROYAL_JELLY, 'J', YELLOW, "royal jelly", M_NO_SKELETON | M_SEE_INVIS, - MR_RES_POISON, + MR_RES_POISON | MR_RES_ASPHYX, 0, 20, MONS_JELLY, MONS_ROYAL_JELLY, MH_NATURAL, -7, { 50, 0, 0, 0 }, { 21, 0, 0, 111 }, @@ -3378,7 +3378,7 @@ { MONS_OOZE, 'J', LIGHTGREY, "ooze", M_NO_SKELETON | M_SEE_INVIS, - MR_RES_POISON, + MR_RES_POISON | MR_RES_ASPHYX, 0, 5, MONS_JELLY, MONS_OOZE, MH_NATURAL, -6, { 5, 0, 0, 0 }, { 3, 3, 5, 0 }, @@ -3440,7 +3440,7 @@ { MONS_SHINING_EYE, 'G', LIGHTMAGENTA, "shining eye", M_NO_SKELETON | M_LEVITATE | M_SPELLCASTER | M_SEE_INVIS, - MR_NO_FLAGS, + MR_RES_ASPHYX, 0, 14, MONS_SHINING_EYE, MONS_SHINING_EYE, MH_NATURAL, 5000, { 0, 0, 0, 0 }, { 10, 3, 5, 0 }, @@ -3626,7 +3626,7 @@ MR_RES_ELEC, 900, 10, MONS_DRACONIAN, MONS_BLACK_DRACONIAN, MH_NATURAL, 3, { 20, 0, 0, 0 }, - { 14, 6, 4, 0 }, + { 14, 5, 4, 0 }, 9, 10, 10, 10, MST_NO_SPELLS, CE_CONTAMINATED, Z_SMALL, S_ROAR, I_HIGH, MONUSE_STARTING_EQUIPMENT } @@ -3638,7 +3638,7 @@ MR_NO_FLAGS, 900, 10, MONS_DRACONIAN, MONS_YELLOW_DRACONIAN, MH_NATURAL, 3, { 20, 0, 0, 0 }, - { 14, 6, 4, 0 }, + { 14, 5, 4, 0 }, 9, 10, 10, 10, MST_NO_SPELLS, CE_CONTAMINATED, Z_SMALL, S_ROAR, I_HIGH, MONUSE_STARTING_EQUIPMENT } @@ -3650,7 +3650,7 @@ MR_RES_FIRE, 900, 10, MONS_DRACONIAN, MONS_PALE_DRACONIAN, MH_NATURAL, 3, { 20, 0, 0, 0 }, - { 14, 6, 4, 0 }, + { 14, 5, 4, 0 }, 9, 14, 12, 10, MST_NO_SPELLS, CE_CONTAMINATED, Z_SMALL, S_ROAR, I_HIGH, MONUSE_STARTING_EQUIPMENT } @@ -3662,7 +3662,7 @@ MR_RES_POISON, 900, 10, MONS_DRACONIAN, MONS_GREEN_DRACONIAN, MH_NATURAL, 3, { 20, 0, 0, 0 }, - { 14, 6, 4, 0 }, + { 14, 5, 4, 0 }, 9, 10, 10, 10, MST_NO_SPELLS, CE_POISONOUS, Z_SMALL, S_ROAR, I_HIGH, MONUSE_STARTING_EQUIPMENT } @@ -3674,7 +3674,7 @@ MR_NO_FLAGS, 900, 10, MONS_DRACONIAN, MONS_PURPLE_DRACONIAN, MH_NATURAL, 6, { 20, 0, 0, 0 }, - { 14, 6, 4, 0 }, + { 14, 5, 4, 0 }, 8, 10, 10, 10, MST_NO_SPELLS, CE_CONTAMINATED, Z_SMALL, S_ROAR, I_HIGH, MONUSE_STARTING_EQUIPMENT } @@ -3686,7 +3686,7 @@ MR_RES_FIRE, 900, 10, MONS_DRACONIAN, MONS_RED_DRACONIAN, MH_NATURAL, 3, { 20, 0, 0, 0 }, - { 14, 6, 4, 0 }, + { 14, 5, 4, 0 }, 9, 10, 10, 10, MST_NO_SPELLS, CE_CONTAMINATED, Z_SMALL, S_ROAR, I_HIGH, MONUSE_STARTING_EQUIPMENT } @@ -3698,7 +3698,7 @@ MR_RES_COLD, 900, 10, MONS_DRACONIAN, MONS_WHITE_DRACONIAN, MH_NATURAL, 3, { 20, 0, 0, 0 }, - { 14, 6, 4, 0 }, + { 14, 5, 4, 0 }, 9, 10, 10, 10, MST_NO_SPELLS, CE_CONTAMINATED, Z_SMALL, S_ROAR, I_HIGH, MONUSE_STARTING_EQUIPMENT } @@ -3710,7 +3710,7 @@ MR_RES_FIRE, 900, 10, MONS_DRACONIAN, MONS_MOTTLED_DRACONIAN, MH_NATURAL, 3, { 20, 0, 0, 0 }, - { 14, 6, 4, 0 }, + { 14, 5, 4, 0 }, 9, 10, 10, 10, MST_NO_SPELLS, CE_CONTAMINATED, Z_SMALL, S_ROAR, I_HIGH, MONUSE_STARTING_EQUIPMENT } @@ -3722,7 +3722,7 @@ MR_NO_FLAGS, 900, 10, MONS_DRACONIAN, MONS_DRACONIAN, MH_NATURAL, 3, { 20, 0, 0, 0 }, - { 16, 5, 5, 0 }, + { 16, 4, 3, 0 }, 9, 10, 10, 10, MST_DRAC_CALLER, CE_CONTAMINATED, Z_SMALL, S_ROAR, I_HIGH, MONUSE_STARTING_EQUIPMENT } @@ -3734,7 +3734,7 @@ MR_NO_FLAGS, 900, 10, MONS_DRACONIAN, MONS_DRACONIAN, MH_NATURAL, 3, { 15, 15, 15, 0 }, - { 16, 6, 4, 0 }, + { 16, 6, 3, 0 }, 6, 20, 10, 10, MST_NO_SPELLS, CE_CONTAMINATED, Z_SMALL, S_ROAR, I_HIGH, MONUSE_STARTING_EQUIPMENT } @@ -3746,7 +3746,7 @@ MR_NO_FLAGS, 900, 10, MONS_DRACONIAN, MONS_DRACONIAN, MH_NATURAL, 3, { 15, 0, 0, 0 }, - { 16, 6, 4, 0 }, + { 16, 4, 2, 0 }, 12, 10, 10, 10, MST_DEEP_ELF_HIGH_PRIEST, CE_CONTAMINATED, Z_SMALL, S_ROAR, I_HIGH, MONUSE_STARTING_EQUIPMENT } @@ -3758,7 +3758,7 @@ MR_NO_FLAGS, 900, 10, MONS_DRACONIAN, MONS_DRACONIAN, MH_NATURAL, 4, { 15, 0, 0, 0 }, - { 16, 5, 5, 0 }, + { 16, 4, 4, 0 }, 8, 16, 10, 10, MST_DRAC_SHIFTER, CE_CONTAMINATED, Z_SMALL, S_ROAR, I_HIGH, MONUSE_STARTING_EQUIPMENT } @@ -3770,7 +3770,7 @@ MR_NO_FLAGS, 900, 10, MONS_DRACONIAN, MONS_DRACONIAN, MH_NATURAL, 4, { 15, 0, 0, 0 }, - { 16, 5, 5, 0 }, + { 16, 4, 2, 0 }, 8, 10, 10, 10, MST_DEEP_ELF_ANNIHILATOR, CE_CONTAMINATED, Z_SMALL, S_ROAR, I_HIGH, MONUSE_STARTING_EQUIPMENT } @@ -3794,7 +3794,7 @@ MR_RES_FIRE | MR_RES_HELLFIRE, 900, 10, MONS_DRACONIAN, MONS_DRACONIAN, MH_NATURAL, 4, { 15, 0, 0, 0 }, - { 16, 5, 5, 0 }, + { 16, 4, 2, 0 }, 8, 12, 10, 10, MST_DRAC_SCORCHER, CE_CONTAMINATED, Z_SMALL, S_ROAR, I_HIGH, MONUSE_STARTING_EQUIPMENT } @@ -3863,7 +3863,7 @@ { MONS_EYE_OF_DEVASTATION, 'G', YELLOW, "eye of devastation", M_NO_SKELETON | M_LEVITATE | M_SPELLCASTER | M_SEE_INVIS, - MR_NO_FLAGS, + MR_RES_ASPHYX, 0, 11, MONS_GIANT_EYEBALL, MONS_EYE_OF_DEVASTATION, MH_NATURAL, 5000, { 0, 0, 0, 0 }, { 10, 3, 5, 0 }, diff --git a/crawl-ref/source/mon-util.cc b/crawl-ref/source/mon-util.cc index 6ed25cad3c..4db073c884 100644 --- a/crawl-ref/source/mon-util.cc +++ b/crawl-ref/source/mon-util.cc @@ -502,7 +502,9 @@ bool mons_res_asphyx( const monsters *mon ) const int holiness = mons_holiness( mon ); return (holiness == MH_UNDEAD || holiness == MH_DEMONIC - || holiness == MH_NONLIVING); + || holiness == MH_NONLIVING + || holiness == MH_PLANT + || mons_class_resist(mon->type, MR_RES_ASPHYX)); } int mons_res_poison( struct monsters *mon ) diff --git a/crawl-ref/source/newgame.cc b/crawl-ref/source/newgame.cc index 9fea70bfac..30fd46efd4 100644 --- a/crawl-ref/source/newgame.cc +++ b/crawl-ref/source/newgame.cc @@ -2008,7 +2008,7 @@ void openingScreen(void) ********************************************** */ textcolor( YELLOW ); - cprintf("Hello, welcome to Dungeon Crawl Stone Soup " VERSION "!"); + cprintf("Hello, welcome to " CRAWL " " VERSION "!"); textcolor( BROWN ); cprintf(EOL "(c) Copyright 1997-2002 Linley Henzell"); cprintf(EOL "Please consult crawl.txt for instructions and legal details." diff --git a/crawl-ref/source/ouch.cc b/crawl-ref/source/ouch.cc index 073e9721be..2049706581 100644 --- a/crawl-ref/source/ouch.cc +++ b/crawl-ref/source/ouch.cc @@ -624,7 +624,6 @@ void ouch( int dam, int death_source, char death_type, const char *aux ) case GOD_ZIN: case GOD_SHINING_ONE: case GOD_ELYVILON: - case GOD_OKAWARU: case GOD_YREDELEMNUL: if (dam >= you.hp && you.duration[DUR_PRAYER] && random2(you.piety) >= 30) diff --git a/crawl-ref/source/output.cc b/crawl-ref/source/output.cc index 415e970fc0..a6fba6c84a 100644 --- a/crawl-ref/source/output.cc +++ b/crawl-ref/source/output.cc @@ -730,7 +730,7 @@ void get_full_detail(char* buffer, bool calc_unid) if ( you.equip[ e_order[i] ] != -1) { in_name( you.equip[ e_order[i] ], DESC_PLAIN, - str_pass, Options.terse_hand ); + str_pass, true ); snprintf(CUR_AD, "%-7s: %s", slot, str_pass); } else diff --git a/crawl-ref/source/religion.cc b/crawl-ref/source/religion.cc index 8dd8702ff2..158084d031 100644 --- a/crawl-ref/source/religion.cc +++ b/crawl-ref/source/religion.cc @@ -317,26 +317,6 @@ void pray(void) break; case GOD_OKAWARU: - if (you.piety > 80 - && random2( you.piety ) > 70 - && !grid_destroys_items( grd[you.x_pos][you.y_pos] ) - && one_chance_in(4) - && you.skills[ best_skill(SK_SLINGS, SK_RANGED_COMBAT) ] >= 3) - { - success = acquirement( OBJ_MISSILES, you.religion ); - if (success) - { - simple_god_message( " has granted you a gift!" ); - more(); - - inc_gift_timeout( 4 + roll_dice(2,4) ); - you.num_gifts[ you.religion ]++; - take_note(Note(NOTE_GOD_GIFT, you.religion)); - } - break; - } - // intentional fall through - case GOD_TROG: if (you.piety > 130 && random2(you.piety) > 120 @@ -360,8 +340,29 @@ void pray(void) inc_gift_timeout(30 + random2avg(19, 2)); you.num_gifts[ you.religion ]++; - take_note(Note(NOTE_GOD_GIFT, you.religion)); + take_note(Note(NOTE_GOD_GIFT, you.religion)); } + break; + } + + if (you.religion == GOD_OKAWARU + && you.piety > 80 + && random2( you.piety ) > 70 + && !grid_destroys_items( grd[you.x_pos][you.y_pos] ) + && one_chance_in(4) + && you.skills[ best_skill(SK_SLINGS, SK_RANGED_COMBAT) ] >= 7) + { + success = acquirement( OBJ_MISSILES, you.religion ); + if (success) + { + simple_god_message( " has granted you a gift!" ); + more(); + + inc_gift_timeout( 4 + roll_dice(2,4) ); + you.num_gifts[ you.religion ]++; + take_note(Note(NOTE_GOD_GIFT, you.religion)); + } + break; } break; @@ -1273,7 +1274,11 @@ bool did_god_conduct( int thing_done, int level ) // magical kills tend to do both at the same time (unlike melee). // This means high level spells probably work pretty much like // they used to (use spell, get piety). - piety_change = div_rand_round( level + 10, 90 ); + piety_change = div_rand_round( level + 10, 60 ); +#ifdef DEBUG_DIAGNOSTICS + mprf(MSGCH_DIAGNOSTICS, "Spell practise, level: %d, dpiety: %d", + level, piety_change); +#endif ret = true; } break; diff --git a/crawl-ref/source/spl-cast.cc b/crawl-ref/source/spl-cast.cc index dd99876d4d..d248da977d 100644 --- a/crawl-ref/source/spl-cast.cc +++ b/crawl-ref/source/spl-cast.cc @@ -40,6 +40,7 @@ #include "player.h" #include "religion.h" #include "skills.h" +#include "skills2.h" #include "spells1.h" #include "spells2.h" #include "spells3.h" @@ -1917,6 +1918,7 @@ void exercise_spell( int spell, bool spc, bool success ) int ndx = 0; int skill; int exer = 0; + int exer_norm = 0; int workout = 0; unsigned int disciplines = spell_type(spell); @@ -1941,7 +1943,10 @@ void exercise_spell( int spell, bool spc, bool success ) if (!one_chance_in(5)) workout++; // most recently, this was an automatic add {dlb} - exer += exercise( skill, workout ); + const int exercise_amount = exercise( skill, workout ); + exer += exercise_amount; + exer_norm += + exercise_amount * species_skills(skill, you.species) / 50; } /* ****************************************************************** @@ -1958,12 +1963,16 @@ void exercise_spell( int spell, bool spc, bool success ) if (spc) { - exer += exercise(SK_SPELLCASTING, one_chance_in(3) ? 1 + const int exercise_amount = + exercise(SK_SPELLCASTING, one_chance_in(3) ? 1 : random2(1 + random2(diff))); + exer += exercise_amount; + exer_norm += exercise_amount * + species_skills(SK_SPELLCASTING, you.species) / 50; } - if (exer) - did_god_conduct( DID_SPELL_PRACTISE, exer ); + if (exer_norm) + did_god_conduct( DID_SPELL_PRACTISE, exer_norm ); } // end exercise_spell() static bool send_abyss() diff --git a/crawl-ref/source/stuff.cc b/crawl-ref/source/stuff.cc index 0a8a95f2b2..69ea936eee 100644 --- a/crawl-ref/source/stuff.cc +++ b/crawl-ref/source/stuff.cc @@ -333,6 +333,12 @@ unsigned long random_int( void ) return (genrand_int32()); } +int random_range(int low, int high) +{ + ASSERT(low <= high); + return (low + random2(high - low + 1)); +} + int random2( int max ) { if (max <= 1) diff --git a/crawl-ref/source/stuff.h b/crawl-ref/source/stuff.h index 4c9bf4474e..d78e5b3bc6 100644 --- a/crawl-ref/source/stuff.h +++ b/crawl-ref/source/stuff.h @@ -31,6 +31,7 @@ bool coinflip(void); int div_rand_round( int num, int den ); bool one_chance_in(int a_million); int random2(int randmax); +int random_range(int low, int high); unsigned long random_int(void); int random2avg( int max, int rolls ); int bestroll(int max, int rolls); diff --git a/crawl-ref/source/travel.cc b/crawl-ref/source/travel.cc index 5958e8fbf3..a5381df8c6 100644 --- a/crawl-ref/source/travel.cc +++ b/crawl-ref/source/travel.cc @@ -1914,8 +1914,8 @@ static int find_transtravel_stair( const level_id &cur, { si.distance = dist2stair; + // Account for the cost of taking the stairs dist2stair += Options.travel_stair_cost; - ++dist2stair; // Account for the cost of taking the stairs // Already too expensive? Short-circuit. if (local_distance != -1 && dist2stair >= local_distance) @@ -1939,7 +1939,8 @@ static int find_transtravel_stair( const level_id &cur, continue; } - if (dest.id.depth > -1) { // We have a valid level descriptor. + if (dest.id.depth > -1) // We have a valid level descriptor. + { int dist = level_distance(dest.id, target.id); if (dist != -1 && (dist < best_level_distance || @@ -2640,7 +2641,6 @@ void LevelInfo::save(FILE *file) const } } -#define EXCLUDE_LOAD_LIMIT 20 void LevelInfo::load(FILE *file) { stairs.clear(); diff --git a/crawl-ref/source/version.h b/crawl-ref/source/version.h index 5bc1dedec4..24935fd5c9 100644 --- a/crawl-ref/source/version.h +++ b/crawl-ref/source/version.h @@ -33,13 +33,13 @@ #ifndef VERSION_H #define VERSION_H +#define CRAWL "Dungeon Crawl Stone Soup" // last updated 07august2001 {mv} /* *********************************************************************** * called from: chardump - command - newgame * *********************************************************************** */ -#define VERSION "0.1 beta 1 (crawl-ref)" - +#define VERSION "0.1.1 (crawl-ref)" // last updated 20feb2001 {GDL} /* *********************************************************************** diff --git a/crawl-ref/source/view.cc b/crawl-ref/source/view.cc index 6d44d82b7d..23f4b06976 100644 --- a/crawl-ref/source/view.cc +++ b/crawl-ref/source/view.cc @@ -36,6 +36,7 @@ #include "clua.h" #include "debug.h" +#include "direct.h" #include "insult.h" #include "macro.h" #include "monstuff.h" @@ -2429,9 +2430,13 @@ void show_map( FixedVector<int, 2> &spec_place ) } if (getty == 0) + { getty = getchm(KC_LEVELMAP); + // [dshaligram] DOS madness. + getty = dos_direction_unmunge(getty); + } -#ifdef WIN32CONSOLE +#if defined(WIN32CONSOLE) || defined(DOS) // Translate shifted numpad to shifted vi keys. Yes, // this is horribly hacky. { |