summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/abl-show.cc
diff options
context:
space:
mode:
authorj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2007-12-30 20:31:38 +0000
committerj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2007-12-30 20:31:38 +0000
commite864f4d3b84c1efe09175652a9830dddbc0bd6a5 (patch)
tree7322d1cc0393f62adb256204a714cdcd976a2d62 /crawl-ref/source/abl-show.cc
parent7554b6525e58b192f168e50233479f3fb1d19f5e (diff)
downloadcrawl-ref-e864f4d3b84c1efe09175652a9830dddbc0bd6a5.tar.gz
crawl-ref-e864f4d3b84c1efe09175652a9830dddbc0bd6a5.zip
A completely reworked version of Zin as per the lengthy
discussion in October/November. Zin effects: - protection from harm (like all good gods) - feeding when starving (as before) - mutation resistance (chance of piety/200) Zin restrictions: - no cannibalism (like all good gods) - no attacking friends - no eating of intelligent beings' corpses - no deliberate mutating Zin invocations: - Smiting (general priestly ability?) - Revitalisation (Minor Healing + 5 mp) - Sanctuary (protection from attacks) git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3164 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/abl-show.cc')
-rw-r--r--crawl-ref/source/abl-show.cc43
1 files changed, 23 insertions, 20 deletions
diff --git a/crawl-ref/source/abl-show.cc b/crawl-ref/source/abl-show.cc
index 7ec8d6d746..21ee6f148b 100644
--- a/crawl-ref/source/abl-show.cc
+++ b/crawl-ref/source/abl-show.cc
@@ -110,8 +110,8 @@ ability_type god_abilities[MAX_NUM_GODS][MAX_GOD_ABILITIES] =
{ ABIL_NON_ABILITY, ABIL_NON_ABILITY, ABIL_NON_ABILITY,
ABIL_NON_ABILITY, ABIL_NON_ABILITY },
// Zin
- { ABIL_ZIN_REPEL_UNDEAD, ABIL_ZIN_HEALING, ABIL_ZIN_PESTILENCE,
- ABIL_ZIN_HOLY_WORD, ABIL_ZIN_SUMMON_GUARDIAN },
+ { ABIL_NON_ABILITY, ABIL_ZIN_SMITING, ABIL_ZIN_REVITALISATION,
+ ABIL_NON_ABILITY, ABIL_ZIN_SANCTUARY },
// TSO
{ ABIL_TSO_REPEL_UNDEAD, ABIL_TSO_SMITING, ABIL_TSO_ANNIHILATE_UNDEAD,
ABIL_TSO_CLEANSING_FLAME, ABIL_TSO_SUMMON_DAEVA },
@@ -232,11 +232,10 @@ static const ability_def Ability_List[] =
// INVOCATIONS:
// Zin
- { ABIL_ZIN_REPEL_UNDEAD, "Repel Undead", 1, 0, 100, 0, ABFLAG_NONE },
- { ABIL_ZIN_HEALING, "Minor Healing", 2, 0, 50, 1, ABFLAG_NONE },
- { ABIL_ZIN_PESTILENCE, "Pestilence", 3, 0, 100, 2, ABFLAG_NONE },
- { ABIL_ZIN_HOLY_WORD, "Holy Word", 6, 0, 150, 3, ABFLAG_NONE },
- { ABIL_ZIN_SUMMON_GUARDIAN, "Summon Guardian", 7, 0, 150, 4, ABFLAG_NONE },
+ { ABIL_ZIN_SMITING, "Smiting",
+ 3, 0, 50, generic_cost::fixed(2), ABFLAG_NONE },
+ { ABIL_ZIN_REVITALISATION, "Revitalisation", 0, 0, 100, 3, ABFLAG_NONE },
+ { ABIL_ZIN_SANCTUARY, "Sanctuary", 7, 0, 150, 10, ABFLAG_NONE },
// The Shining One
{ ABIL_TSO_REPEL_UNDEAD, "Repel Undead", 1, 0, 100, 0, ABFLAG_NONE },
@@ -637,7 +636,6 @@ static talent get_talent(ability_type ability, bool check_confused)
failure = 20 - (you.piety / 20) - (5 * you.skills[SK_INVOCATIONS]);
break;
- case ABIL_ZIN_REPEL_UNDEAD:
case ABIL_TSO_REPEL_UNDEAD:
case ABIL_KIKU_RECALL_UNDEAD_SLAVES:
case ABIL_BEOGH_RECALL_ORCISH_FOLLOWERS:
@@ -680,7 +678,7 @@ static talent get_talent(ability_type ability, bool check_confused)
failure = 40 - (you.piety / 20) - (3 * you.skills[SK_INVOCATIONS]);
break;
- case ABIL_ZIN_HEALING:
+ case ABIL_ZIN_SMITING:
case ABIL_TSO_SMITING:
case ABIL_BEOGH_SMITING:
case ABIL_MAKHLEB_MINOR_DESTRUCTION:
@@ -704,7 +702,7 @@ static talent get_talent(ability_type ability, bool check_confused)
failure = 50 - (you.piety / 20) - (you.skills[SK_INVOCATIONS] * 4);
break;
- case ABIL_ZIN_PESTILENCE:
+ case ABIL_ZIN_REVITALISATION:
case ABIL_TSO_ANNIHILATE_UNDEAD:
case ABIL_LUGONU_BANISH:
invoc = true;
@@ -717,7 +715,6 @@ static talent get_talent(ability_type ability, bool check_confused)
failure = 60 - (you.piety / 25) - (you.skills[SK_INVOCATIONS] * 4);
break;
- case ABIL_ZIN_HOLY_WORD:
case ABIL_TSO_CLEANSING_FLAME:
case ABIL_ELYVILON_RESTORATION:
case ABIL_YRED_CONTROL_UNDEAD:
@@ -728,7 +725,7 @@ static talent get_talent(ability_type ability, bool check_confused)
failure = 70 - (you.piety / 25) - (you.skills[SK_INVOCATIONS] * 4);
break;
- case ABIL_ZIN_SUMMON_GUARDIAN:
+ case ABIL_ZIN_SANCTUARY:
case ABIL_TSO_SUMMON_DAEVA:
case ABIL_KIKU_INVOKE_DEATH:
case ABIL_ELYVILON_GREATER_HEALING:
@@ -1314,7 +1311,6 @@ static bool do_ability(const ability_def& abil)
break;
// INVOCATIONS:
- case ABIL_ZIN_REPEL_UNDEAD:
case ABIL_TSO_REPEL_UNDEAD:
turn_undead(you.piety);
@@ -1330,13 +1326,8 @@ static bool do_ability(const ability_def& abil)
exercise(SK_INVOCATIONS, 1);
break;
- case ABIL_ZIN_HEALING:
- if (!cast_healing( 3 + (you.skills[SK_INVOCATIONS] / 6) ))
- break;
-
- exercise(SK_INVOCATIONS, 1 + random2(3));
- break;
-
+// no longer in use, maybe keep for other cases (or remove!)
+/*
case ABIL_ZIN_PESTILENCE:
mpr( "You call forth a swarm of pestilential beasts!" );
@@ -1355,7 +1346,19 @@ static bool do_ability(const ability_def& abil)
summon_ice_beast_etc(you.skills[SK_INVOCATIONS] * 4, MONS_ANGEL, true);
exercise(SK_INVOCATIONS, 8 + random2(10));
break;
+*/
+
+ case ABIL_ZIN_REVITALISATION:
+ if (cast_revitalisation( 3 + (you.skills[SK_INVOCATIONS] / 6) ))
+ exercise(SK_INVOCATIONS, 1 + random2(3));
+ break;
+
+ case ABIL_ZIN_SANCTUARY:
+ if (cast_sanctuary(you.skills[SK_INVOCATIONS] * 4))
+ exercise(SK_INVOCATIONS, 5 + random2(8));
+ break;
+ case ABIL_ZIN_SMITING:
case ABIL_TSO_SMITING:
if (your_spells( SPELL_SMITING, (2 + skill_bump(SK_INVOCATIONS)) * 6,
false ) == SPRET_ABORT)