summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--crawl-ref/source/enum.h3
-rw-r--r--crawl-ref/source/mon-stuff.cc25
-rw-r--r--crawl-ref/source/religion.cc14
3 files changed, 34 insertions, 8 deletions
diff --git a/crawl-ref/source/enum.h b/crawl-ref/source/enum.h
index 3e39f69df1..8bd163a786 100644
--- a/crawl-ref/source/enum.h
+++ b/crawl-ref/source/enum.h
@@ -747,7 +747,9 @@ enum conduct_type
DID_KILL_LIVING,
DID_KILL_UNDEAD,
DID_KILL_DEMON,
+ DID_KILL_NATURAL_UNHOLY, // TSO
DID_KILL_NATURAL_EVIL, // TSO
+ DID_KILL_UNCLEAN, // Zin
DID_KILL_CHAOTIC, // Zin
DID_KILL_WIZARD, // Trog
DID_KILL_PRIEST, // Beogh
@@ -759,6 +761,7 @@ enum conduct_type
DID_UNDEAD_KILLED_BY_SERVANT,
DID_DEMON_KILLED_BY_UNDEAD_SLAVE,
DID_DEMON_KILLED_BY_SERVANT,
+ DID_NATURAL_UNHOLY_KILLED_BY_SERVANT, // TSO
DID_NATURAL_EVIL_KILLED_BY_SERVANT, // TSO
DID_HOLY_KILLED_BY_UNDEAD_SLAVE,
DID_HOLY_KILLED_BY_SERVANT,
diff --git a/crawl-ref/source/mon-stuff.cc b/crawl-ref/source/mon-stuff.cc
index 6ac6ef9113..4bc9c03d4a 100644
--- a/crawl-ref/source/mon-stuff.cc
+++ b/crawl-ref/source/mon-stuff.cc
@@ -1638,7 +1638,13 @@ int monster_die(monsters *monster, killer_type killer,
did_god_conduct(DID_KILL_LIVING,
monster->hit_dice, true, monster);
- if (monster->is_unholy() || monster->is_evil())
+ if (monster->is_unholy())
+ {
+ did_god_conduct(DID_KILL_NATURAL_UNHOLY,
+ monster->hit_dice, true, monster);
+ }
+
+ if (monster->is_evil())
{
did_god_conduct(DID_KILL_NATURAL_EVIL,
monster->hit_dice, true, monster);
@@ -1656,7 +1662,13 @@ int monster_die(monsters *monster, killer_type killer,
}
// Zin hates unclean and chaotic beings.
- if (monster->is_unclean() || monster->is_chaotic())
+ if (monster->is_unclean())
+ {
+ did_god_conduct(DID_KILL_UNCLEAN,
+ monster->hit_dice, true, monster);
+ }
+
+ if (monster->is_chaotic())
{
did_god_conduct(DID_KILL_CHAOTIC,
monster->hit_dice, true, monster);
@@ -1883,7 +1895,14 @@ int monster_die(monsters *monster, killer_type killer,
notice |= did_god_conduct(DID_LIVING_KILLED_BY_SERVANT,
monster->hit_dice);
- if (monster->is_unholy() || monster->is_evil())
+ if (monster->is_unholy())
+ {
+ notice |= did_god_conduct(
+ DID_NATURAL_UNHOLY_KILLED_BY_SERVANT,
+ monster->hit_dice);
+ }
+
+ if (monster->is_evil())
{
notice |= did_god_conduct(
DID_NATURAL_EVIL_KILLED_BY_SERVANT,
diff --git a/crawl-ref/source/religion.cc b/crawl-ref/source/religion.cc
index d6b83bbdf8..244aa832fc 100644
--- a/crawl-ref/source/religion.cc
+++ b/crawl-ref/source/religion.cc
@@ -2988,6 +2988,7 @@ bool did_god_conduct(conduct_type thing_done, int level, bool known,
}
break;
+ case DID_KILL_NATURAL_UNHOLY:
case DID_KILL_NATURAL_EVIL:
if (you.religion == GOD_SHINING_ONE
&& !god_hates_attacking_friend(you.religion, victim))
@@ -2999,6 +3000,7 @@ bool did_god_conduct(conduct_type thing_done, int level, bool known,
}
break;
+ case DID_KILL_UNCLEAN:
case DID_KILL_CHAOTIC:
if (you.religion == GOD_ZIN
&& !god_hates_attacking_friend(you.religion, victim))
@@ -3261,6 +3263,7 @@ bool did_god_conduct(conduct_type thing_done, int level, bool known,
}
break;
+ case DID_NATURAL_UNHOLY_KILLED_BY_SERVANT:
case DID_NATURAL_EVIL_KILLED_BY_SERVANT:
if (you.religion == GOD_SHINING_ONE)
{
@@ -3474,11 +3477,12 @@ bool did_god_conduct(conduct_type thing_done, int level, bool known,
"Necromancy", "Holy", "Unholy", "Attack Holy", "Attack Neutral",
"Attack Friend", "Friend Died", "Stab", "Unchivalric Attack",
"Poison", "Field Sacrifice", "Kill Living", "Kill Undead",
- "Kill Demon", "Kill Natural Evil", "Kill Chaotic",
- "Kill Wizard", "Kill Priest", "Kill Holy", "Kill Fast",
- "Undead Slave Kill Living", "Servant Kill Living",
- "Undead Slave Kill Undead", "Servant Kill Undead",
- "Undead Slave Kill Demon", "Servant Kill Demon",
+ "Kill Demon", "Kill Natural Unholy", "Kill Natural Evil",
+ "Kill Unclean", "Kill Chaotic", "Kill Wizard", "Kill Priest",
+ "Kill Holy", "Kill Fast", "Undead Slave Kill Living",
+ "Servant Kill Living", "Undead Slave Kill Undead",
+ "Servant Kill Undead", "Undead Slave Kill Demon",
+ "Servant Kill Demon", "Servant Kill Natural Unholy",
"Servant Kill Natural Evil", "Undead Slave Kill Holy",
"Servant Kill Holy", "Spell Memorise", "Spell Cast",
"Spell Practise", "Spell Nonutility", "Cards", "Stimulants",