summaryrefslogtreecommitdiffstats
path: root/crawl-ref
diff options
context:
space:
mode:
authorj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2008-01-14 17:22:57 +0000
committerj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2008-01-14 17:22:57 +0000
commitc952a077df68bc5174a63ffaabab555c01f0b8ac (patch)
treed98af75f307df9de3a56682ce3a815b04dfa1078 /crawl-ref
parent4461e8e2b1380e7f2790fa42eccbf54fbebb4b9e (diff)
downloadcrawl-ref-c952a077df68bc5174a63ffaabab555c01f0b8ac.tar.gz
crawl-ref-c952a077df68bc5174a63ffaabab555c01f0b8ac.zip
FR 1861017: add info on enchanting hides to enchant armour description
FR 1840678: upon failed sacrifice give hint on correct item class part of FR 1857701: Give a message when a weapon of returning does NOT return (and add a message_colour line in init.txt) Also, change Zin's donation messages to reflect the piety status the player will have once the piety pool has emptied into the actual piety, and modify descriptions of the good gods (by David). git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3274 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref')
-rw-r--r--crawl-ref/docs/crawl_options.txt13
-rw-r--r--crawl-ref/init.txt4
-rw-r--r--crawl-ref/source/dat/descript/gods.txt30
-rw-r--r--crawl-ref/source/dat/descript/items.txt3
-rw-r--r--crawl-ref/source/externs.h10
-rw-r--r--crawl-ref/source/initfile.cc14
-rw-r--r--crawl-ref/source/item_use.cc23
-rw-r--r--crawl-ref/source/libunix.cc2
-rw-r--r--crawl-ref/source/religion.cc48
-rw-r--r--crawl-ref/source/view.cc12
10 files changed, 100 insertions, 59 deletions
diff --git a/crawl-ref/docs/crawl_options.txt b/crawl-ref/docs/crawl_options.txt
index ae45393cf7..9ec85e28ca 100644
--- a/crawl-ref/docs/crawl_options.txt
+++ b/crawl-ref/docs/crawl_options.txt
@@ -30,7 +30,7 @@ The contents of this text are:
remembered_monster_colour, colour_map, clean_map
4-d Branding (Item and Monster Highlighting).
friend_brand, stab_brand, may_stab_brand,
- heap_brand, stair_item_brand, trap_item_brand
+ heap_brand, feature_item_brand, trap_item_brand
4-e Level Map Functions.
level_map_cursor_step, level_map_title, item_colour
4-f Viewport Display Options.
@@ -478,7 +478,7 @@ See part Technical (6-) for dos_use_background_intensity under Windows
and DOS.
By default, only two of the item brands are active (and set to reverse):
- heap_brand, stair_item_brand
+ heap_brand, feature_item_brand
They can be deactivated by setting them to "none".
friend_brand = none
@@ -506,10 +506,11 @@ may_stab_brand = none
heap_brand = reverse
Brand heaps of items (more than one item or stack).
-stair_item_brand = reverse
- Brands stairs that would otherwise be hidden by items. If you
- use this brand, the items on the square are hidden by the stair
- symbol (<, >, or portal) and the stair symbol is branded.
+feature_item_brand = reverse
+ Brands features (stairs, shops, altars) that would otherwise be
+ hidden by items. If you use this brand, the items on the square
+ are hidden by the feature symbol and the feature symbol is
+ branded.
trap_item_brand = none
Brands traps that would otherwise be hidden by items. If you
diff --git a/crawl-ref/init.txt b/crawl-ref/init.txt
index 463b522415..c1ab4c6481 100644
--- a/crawl-ref/init.txt
+++ b/crawl-ref/init.txt
@@ -100,7 +100,7 @@ friend_brand = hi:green
stab_brand = hi:blue
# may_stab_brand = hi:yellow
# heap_brand = reverse
-# stair_item_brand = reverse
+# feature_item_brand = reverse
# trap_item_brand = none
##### 4-e Level Map Functions ###################
@@ -202,6 +202,8 @@ menu_colour = notes:white:Reached XP level
# Message colours
message_colour = lightcyan:LOW MAGIC WARNING
+# for weapons of returning not returning to your pack
+message_colour = yellow:fails to return
# These lines will suppress extra feedback messages from
# travel/shift-running.
diff --git a/crawl-ref/source/dat/descript/gods.txt b/crawl-ref/source/dat/descript/gods.txt
index 3702c296a0..9198612e3e 100644
--- a/crawl-ref/source/dat/descript/gods.txt
+++ b/crawl-ref/source/dat/descript/gods.txt
@@ -13,23 +13,24 @@ Buggy (It's a bug if you ever see this.)
%%%%
Zin
-Zin is an ancient and revered God, dedicated to the establishment of
-order and the destruction of the forces of chaos and night. Valued
-worshippers can gain sustenance in times of need and a variety of
-powers useful in the fight against chaos, but are required to remain
-pure of body and soul, in particular abstain from the consumption of
-corpses of intelligent beings, and the use of necromancy and mutating
-substances. Zin values selflessness and appreciates long-standing
-faith.
+Zin is an ancient and revered God, dedicated to the establishment of
+order. Worshippers are required to remain pure of body and soul, in
+particular to abstain from the consumption of corpses of intelligent
+beings, and the use of necromancy and deliberate mutations. They can
+gain a variety of powers useful against chaos, including a divine
+refuge. Zin values selflessness and appreciates long-standing faith.
+Zin is a good god, and does not mind switching to another good god.
%%%%
The Shining One
-The Shining One is a powerful crusading deity, allied with Zin in the
-fight against evil. Followers may be granted blessings on their
-weapons and the ability to summarily dispense the wrath of heaven, but
-must never use any form of evil magic and should fight honourably. The
-Shining One appreciates long-standing persistence in the endless
-crusade, as well as the dedicated destruction of unholy creatures.
+The Shining One is a powerful crusading deity. Followers may be
+granted blessings on their weapons and the ability to summarily
+dispense the wrath of heaven, but must never use any form of evil
+magic and should fight honourably. The Shining One appreciates
+long-standing persistence in the endless crusade, as well as the
+dedicated destruction of unholy creatures.
+The Shining One is a good god, and does not mind switching to another
+good god.
%%%%
Kikubaaqudgha
@@ -107,6 +108,7 @@ Elyvilon the Healer is worshipped by the healers (among others), who
gain their healing powers by long worship and devotion. Although
Elyvilon prefers a creed of pacifism, those who crusade against evil
are not excluded. Elyvilon appreciates the destruction of weapons.
+Elyvilon is a good god, and does not mind switching to another good god.
%%%%
Lugonu
diff --git a/crawl-ref/source/dat/descript/items.txt b/crawl-ref/source/dat/descript/items.txt
index a8ebf85c5b..748da1c49b 100644
--- a/crawl-ref/source/dat/descript/items.txt
+++ b/crawl-ref/source/dat/descript/items.txt
@@ -1112,7 +1112,8 @@ your possessions.
%%%%
scroll of enchant armour
-This scroll places an enchantment on a piece of armour.
+This scroll places an enchantment on a piece of armour. It can also
+be used to enchant the hides of certain exotic creatures.
%%%%
scroll of enchant weapon i
diff --git a/crawl-ref/source/externs.h b/crawl-ref/source/externs.h
index c62fe73685..0faa9eb854 100644
--- a/crawl-ref/source/externs.h
+++ b/crawl-ref/source/externs.h
@@ -1657,11 +1657,11 @@ public:
unsigned detected_monster_colour; // Colour of detected monsters
unsigned detected_item_colour; // Colour of detected items
- unsigned heap_brand; // Highlight heaps of items
- unsigned stab_brand; // Highlight monsters that are stabbable
- unsigned may_stab_brand; // Highlight potential stab candidates
- unsigned stair_item_brand; // Highlight stairs covered by items.
- unsigned trap_item_brand; // Highlight traps covered by items.
+ unsigned heap_brand; // Highlight heaps of items
+ unsigned stab_brand; // Highlight monsters that are stabbable
+ unsigned may_stab_brand; // Highlight potential stab candidates
+ unsigned feature_item_brand; // Highlight features covered by items.
+ unsigned trap_item_brand; // Highlight traps covered by items.
// What is the minimum number of items in a stack for which
// you show summary (one-line) information
diff --git a/crawl-ref/source/initfile.cc b/crawl-ref/source/initfile.cc
index e5a6ffcd5d..587a89ba4b 100644
--- a/crawl-ref/source/initfile.cc
+++ b/crawl-ref/source/initfile.cc
@@ -734,12 +734,12 @@ void game_options::reset_options()
sc_entries = 0;
sc_format = -1;
- friend_brand = CHATTR_NORMAL;
- stab_brand = CHATTR_NORMAL;
- may_stab_brand = CHATTR_NORMAL;
- heap_brand = CHATTR_REVERSE;
- stair_item_brand = CHATTR_REVERSE;
- trap_item_brand = CHATTR_NORMAL;
+ friend_brand = CHATTR_NORMAL;
+ stab_brand = CHATTR_NORMAL;
+ may_stab_brand = CHATTR_NORMAL;
+ heap_brand = CHATTR_REVERSE;
+ feature_item_brand = CHATTR_REVERSE;
+ trap_item_brand = CHATTR_NORMAL;
no_dark_brand = true;
@@ -1836,7 +1836,7 @@ void game_options::read_option_line(const std::string &str, bool runscript)
}
else if (key == "stair_item_brand")
{
- stair_item_brand = curses_attribute(field);
+ feature_item_brand = curses_attribute(field);
}
else if (key == "trap_item_brand")
{
diff --git a/crawl-ref/source/item_use.cc b/crawl-ref/source/item_use.cc
index 4a7237c0f2..14adf663b5 100644
--- a/crawl-ref/source/item_use.cc
+++ b/crawl-ref/source/item_use.cc
@@ -1686,7 +1686,8 @@ bool throw_it(bolt &pbolt, int throw_2, bool teleport, int acc_bonus,
int exHitBonus = 0, exDamBonus = 0; // 'extra' bonus from skill/dex/str
int effSkill = 0; // effective launcher skill
int dice_mult = 100;
- bool returning = false; // item will return to pack
+ bool returning = false; // item can return to pack
+ bool did_return = false; // returning item actually does return to pack
int slayDam = 0;
if (!teleport)
@@ -2122,9 +2123,11 @@ bool throw_it(bolt &pbolt, int throw_2, bool teleport, int acc_bonus,
if (projected == LRET_THROWN)
{
returning = ((get_weapon_brand(item) == SPWPN_RETURNING ||
- get_ammo_brand(item) == SPMSL_RETURNING) &&
- !teleport &&
- !one_chance_in(1 + skill_bump(SK_THROWING)));
+ get_ammo_brand(item) == SPMSL_RETURNING) && !teleport);
+
+ if (returning && !one_chance_in(1 + skill_bump(SK_THROWING)))
+ did_return = true;
+
baseHit = 0;
// missiles only use inv_plus
@@ -2403,17 +2406,17 @@ bool throw_it(bolt &pbolt, int throw_2, bool teleport, int acc_bonus,
else
{
// Dropping item copy, since the launched item might be different.
- fire_beam(pbolt, returning ? NULL : &item);
+ fire_beam(pbolt, did_return? NULL : &item);
// The item can be destroyed before returning.
if (returning && thrown_object_destroyed(&item, pbolt.target_x,
pbolt.target_y, true))
{
- returning = false;
+ did_return = false;
}
}
- if ( returning )
+ if ( did_return )
{
// Fire beam in reverse
pbolt.setup_retrace();
@@ -2428,7 +2431,13 @@ bool throw_it(bolt &pbolt, int throw_2, bool teleport, int acc_bonus,
set_ident_flags(you.inv[throw_2], ISFLAG_KNOW_TYPE);
}
else
+ {
+ if (returning) // should have returned but didn't
+ msg::stream << item.name(DESC_CAP_THE)
+ << " fails to return to your pack!" << std::endl;
+
dec_inv_item_quantity( throw_2, 1 );
+ }
// throwing and blowguns are silent
if (projected == LRET_LAUNCHED && lnchType != WPN_BLOWGUN)
diff --git a/crawl-ref/source/libunix.cc b/crawl-ref/source/libunix.cc
index 93ce48d10a..5b3bac84bc 100644
--- a/crawl-ref/source/libunix.cc
+++ b/crawl-ref/source/libunix.cc
@@ -725,7 +725,7 @@ inline unsigned get_brand(int col)
(col & COLFLAG_ITEM_HEAP)? Options.heap_brand :
(col & COLFLAG_WILLSTAB)? Options.stab_brand :
(col & COLFLAG_MAYSTAB)? Options.may_stab_brand :
- (col & COLFLAG_STAIR_ITEM)? Options.stair_item_brand :
+ (col & COLFLAG_STAIR_ITEM)? Options.feature_item_brand :
(col & COLFLAG_TRAP_ITEM)? Options.trap_item_brand :
(col & COLFLAG_REVERSE)? CHATTR_REVERSE :
CHATTR_NORMAL;
diff --git a/crawl-ref/source/religion.cc b/crawl-ref/source/religion.cc
index 192e22bd8d..1fc0c51855 100644
--- a/crawl-ref/source/religion.cc
+++ b/crawl-ref/source/religion.cc
@@ -3276,8 +3276,14 @@ static void give_sac_group_feedback(int which)
void offer_items()
{
- if (you.religion == GOD_NO_GOD || !god_likes_items(you.religion))
+ if (you.religion == GOD_NO_GOD)
+ return;
+
+ if (!god_likes_items(you.religion))
+ {
+ simple_god_message(" doesn't care about such mundane gifts.", you.religion);
return;
+ }
god_acting gdact;
@@ -3306,14 +3312,25 @@ void offer_items()
simple_god_message(" finds your generosity lacking.");
return;
}
- else if (donation_value <= 5) // $100 or more
- simple_god_message(" is satisfied with your donation.");
- else if (donation_value <= 20) // about $400 or more
- simple_god_message(" is pleased about your sacrifice.");
- else if (donation_value <= 50) // about $1500 or more
- simple_god_message(" is impressed by your generosity.");
- else // about $3000 or more
- simple_god_message(" is deeply moved by your generosity.");
+
+ int estimated_piety = you.piety + donation_value;
+ std::string result = god_name(GOD_ZIN) + " will soon be ";
+
+ result +=
+ (estimated_piety > 130) ? "exalted by your worship" :
+ (estimated_piety > 100) ? "extremely pleased with you" :
+ (estimated_piety > 70) ? "greatly pleased with you" :
+ (estimated_piety > 40) ? "most pleased with you" :
+ (estimated_piety > 20) ? "pleased with you" :
+ (estimated_piety > 5) ? "noncommittal"
+ : "displeased";
+
+ if (donation_value >= 30 && you.piety <= 170)
+ result += "!";
+ else
+ result += ".";
+
+ mpr(result.c_str());
you.duration[DUR_PIETY_POOL] += donation_value;
if (you.duration[DUR_PIETY_POOL] > 500)
@@ -3442,12 +3459,19 @@ void offer_items()
const int new_leading = leading_sacrifice_group();
if ( old_leading != new_leading || one_chance_in(50) )
give_sac_group_feedback(new_leading);
- }
-
+
#if DEBUG_GIFTS || DEBUG_CARDS || DEBUG_SACRIFICE
- if (num_sacced > 0 && you.religion == GOD_NEMELEX_XOBEH)
show_pure_deck_chances();
#endif
+ }
+ else if (!num_sacced) // explanatory messages if nothing sacrificed
+ {
+ if (you.religion == GOD_KIKUBAAQUDGHA || you.religion == GOD_TROG)
+ simple_god_message(" only cares about primal sacrifices!", you.religion);
+ else if (you.religion == GOD_NEMELEX_XOBEH)
+ simple_god_message(" expects you to use your decks, not offer them!", you.religion);
+ // everyone else was handled above (Zin!) or likes everything
+ }
}
void god_pitch(god_type which_god)
diff --git a/crawl-ref/source/view.cc b/crawl-ref/source/view.cc
index f1a3deb2bc..d4a92bc38f 100644
--- a/crawl-ref/source/view.cc
+++ b/crawl-ref/source/view.cc
@@ -304,7 +304,7 @@ static unsigned colflag2brand(int colflag)
case COLFLAG_MAYSTAB:
return (Options.may_stab_brand);
case COLFLAG_STAIR_ITEM:
- return (Options.stair_item_brand);
+ return (Options.feature_item_brand);
case COLFLAG_TRAP_ITEM:
return (Options.trap_item_brand);
default:
@@ -631,8 +631,10 @@ screen_buffer_t colour_code_map( int x, int y, bool item_colour,
if (feature_colour != DARKGREY)
tc = feature_colour;
- if (Options.stair_item_brand
- && is_stair(grid_value) && igrd[x][y] != NON_ITEM)
+ if (Options.feature_item_brand
+ && (is_stair(grid_value) || grid_altar_god(grid_value) != GOD_NO_GOD
+ || grid_value == DNGN_ENTER_SHOP || grid_is_portal(grid_value))
+ && igrd[x][y] != NON_ITEM)
{
tc |= COLFLAG_STAIR_ITEM;
}
@@ -709,7 +711,7 @@ int get_mons_colour(const monsters *mons)
}
else if (mons_is_stationary(mons))
{
- if (Options.stair_item_brand != CHATTR_NORMAL
+ if (Options.feature_item_brand != CHATTR_NORMAL
&& grid_stair_direction(grd(mons->pos())) != CMD_NO_CMD)
{
col |= COLFLAG_STAIR_ITEM;
@@ -1253,7 +1255,7 @@ inline static void update_item_grid(const coord_def &gp, const coord_def &ep)
unsigned short &ecol = env.show_col(ep);
const dungeon_feature_type grid = grd(gp);
- if (Options.stair_item_brand && is_stair(grid))
+ if (Options.feature_item_brand && is_stair(grid))
ecol |= COLFLAG_STAIR_ITEM;
else if (Options.trap_item_brand && grid_is_trap(grid))
ecol |= COLFLAG_TRAP_ITEM;