summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/religion.cc
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/religion.cc')
-rw-r--r--crawl-ref/source/religion.cc55
1 files changed, 53 insertions, 2 deletions
diff --git a/crawl-ref/source/religion.cc b/crawl-ref/source/religion.cc
index d0045e60bc..28fa6abd9e 100644
--- a/crawl-ref/source/religion.cc
+++ b/crawl-ref/source/religion.cc
@@ -290,7 +290,13 @@ const char* god_gain_power_messages[NUM_GODS][MAX_GOD_ABILITIES] =
"",
"turn your foes to slime",
"call upon Jiyva to remove your harmful mutations"
- }
+ },
+ // Feawn
+ { "call sunshine",
+ "cause a ring of plants to grow",
+ "control the weather",
+ "spawn explosive spores",
+ "induce evolution"}
};
const char* god_lose_power_messages[NUM_GODS][MAX_GOD_ABILITIES] =
@@ -383,7 +389,13 @@ const char* god_lose_power_messages[NUM_GODS][MAX_GOD_ABILITIES] =
"",
"turn your foes to slime",
"call upon Jiyva to remove your harmful mutations"
- }
+ },
+ // Feawn
+ { "call sunshine",
+ "cause a ring of plants to grow",
+ "control the weather",
+ "spawn explosive spores",
+ "induce evolution"}
};
static bool _holy_beings_attitude_change();
@@ -506,6 +518,12 @@ std::string get_god_likes(god_type which_god, bool verbose)
likes.push_back("you train your various spell casting skills");
break;
+ case GOD_FEAWN:
+ snprintf(info,INFO_SIZE,"you promote decomposition%s",
+ verbose ? " via the <w>f</w> command" : "");
+ likes.push_back(info);
+ break;
+
case GOD_TROG:
snprintf(info, INFO_SIZE, "you destroy spellbooks (especially ones "
"you've never read)%s",
@@ -776,6 +794,12 @@ std::string get_god_dislikes(god_type which_god, bool /*verbose*/)
dislikes.push_back("you attack your fellow slimes");
break;
+ case GOD_FEAWN:
+ dislikes.push_back("you destroy plants");
+ dislikes.push_back("allied flora die");
+ dislikes.push_back("you practice necromancy");
+ break;
+
default:
break;
}
@@ -2478,6 +2502,7 @@ std::string god_name( god_type which_god, bool long_name )
return god_name_jiyva(true) + " the Shapeless";
}
return god_name_jiyva(false);
+ case GOD_FEAWN: return (long_name ? "Feawn the Arborial" : "Feawn");
case GOD_XOM:
if (!long_name)
@@ -2653,6 +2678,18 @@ bool did_god_conduct(conduct_type thing_done, int level, bool known,
case DID_NECROMANCY:
case DID_UNHOLY:
+ if (you.religion == GOD_FEAWN && known)
+ {
+ piety_change = -level;
+ penance = level;
+ retval = true;
+ }
+ else
+ {
+ simple_god_message(" forgives your blasphemy, just this once.");
+ break;
+ }
+
case DID_ATTACK_HOLY:
switch (you.religion)
{
@@ -5180,6 +5217,7 @@ static bool _nemelex_retribution()
return (true);
}
+
static bool _jiyva_retribution()
{
const god_type god = GOD_JIYVA;
@@ -5226,6 +5264,12 @@ static bool _jiyva_retribution()
return (true);
}
+static bool _feawn_retribution()
+{
+ // to be implemented -CAO
+ return true;
+}
+
bool divine_retribution(god_type god)
{
ASSERT(god != GOD_NO_GOD);
@@ -5264,6 +5308,7 @@ bool divine_retribution(god_type god)
case GOD_SIF_MUNA: do_more = _sif_muna_retribution(); break;
case GOD_ELYVILON: do_more = _elyvilon_retribution(); break;
case GOD_JIYVA: do_more = _jiyva_retribution(); break;
+ case GOD_FEAWN: do_more = _feawn_retribution(); break;
default:
#if DEBUG_DIAGNOSTICS || DEBUG_RELIGION
@@ -7475,6 +7520,11 @@ void handle_god_time()
lose_piety(1);
break;
+ case GOD_FEAWN:
+ // Feawn's piety is stable over time but we need a case here to
+ // avoid the error message below.
+ break;
+
default:
DEBUGSTR("Bad god, no bishop!");
return;
@@ -7500,6 +7550,7 @@ int god_colour(god_type god) // mv - added
case GOD_SHINING_ONE:
case GOD_ELYVILON:
case GOD_OKAWARU:
+ case GOD_FEAWN:
return(CYAN);
case GOD_YREDELEMNUL: