summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/species.cc
diff options
context:
space:
mode:
authorNeil Moore <neil@s-z.org>2013-05-29 22:06:06 -0400
committerNeil Moore <neil@s-z.org>2013-05-29 22:06:06 -0400
commit3259975a78f2e202c4f348a76db3fecec76a19ae (patch)
tree4cb9fb5c9677b95a943c4050fd9048593c5fa246 /crawl-ref/source/species.cc
parentfad644818c9b5118a796b3e3ec486dc38c53cd52 (diff)
parentbad48d64c2a38978bf4ccf19931ea0483f60c843 (diff)
downloadcrawl-ref-3259975a78f2e202c4f348a76db3fecec76a19ae.tar.gz
crawl-ref-3259975a78f2e202c4f348a76db3fecec76a19ae.zip
Merge branch 'lava_djinn' into master
Conflicts: crawl-ref/source/enum.h
Diffstat (limited to 'crawl-ref/source/species.cc')
-rw-r--r--crawl-ref/source/species.cc38
1 files changed, 36 insertions, 2 deletions
diff --git a/crawl-ref/source/species.cc b/crawl-ref/source/species.cc
index 94c4cf4e5d..85e0013c6a 100644
--- a/crawl-ref/source/species.cc
+++ b/crawl-ref/source/species.cc
@@ -21,7 +21,7 @@ static species_type species_order[] = {
SP_HUMAN, SP_HIGH_ELF,
SP_DEEP_ELF, SP_SLUDGE_ELF,
SP_DEEP_DWARF, SP_HILL_ORC,
- SP_MERFOLK,
+ SP_LAVA_ORC, SP_MERFOLK,
// small species
SP_HALFLING, SP_KOBOLD,
SP_SPRIGGAN,
@@ -32,6 +32,7 @@ static species_type species_order[] = {
SP_BASE_DRACONIAN,
// celestial species
SP_DEMIGOD, SP_DEMONSPAWN,
+ SP_DJINNI,
// undead species
SP_MUMMY, SP_GHOUL,
SP_VAMPIRE,
@@ -59,7 +60,7 @@ static const char * Species_Abbrev_List[NUM_SPECIES] =
// the draconians
"Dr", "Dr", "Dr", "Dr", "Dr", "Dr", "Dr", "Dr", "Dr", "Dr",
"Ce", "Dg", "Sp", "Mi", "Ds", "Gh", "Te", "Mf", "Vp", "DD",
- "Fe", "Op",
+ "Fe", "Op", "Dj", "LO",
// placeholders
"El", "HD", "OM", "GE", "Gn", "MD", };
@@ -160,6 +161,21 @@ string species_name(species_type speci, bool genus, bool adj)
}
}
break;
+ case GENPC_ORCISH:
+ if (adj) // doesn't care about species/genus
+ res = "Orcish";
+ else if (genus)
+ res = "Orc";
+ else
+ {
+ switch (speci)
+ {
+ case SP_HILL_ORC: res = "Hill Orc"; break;
+ case SP_LAVA_ORC: res = "Lava Orc"; break;
+ default: res = "Orc"; break;
+ }
+ }
+ break;
case GENPC_NONE:
default:
switch (speci)
@@ -194,6 +210,7 @@ string species_name(species_type speci, bool genus, bool adj)
case SP_GHOUL: res = (adj ? "Ghoulish" : "Ghoul"); break;
case SP_MERFOLK: res = (adj ? "Merfolkian" : "Merfolk"); break;
case SP_VAMPIRE: res = (adj ? "Vampiric" : "Vampire"); break;
+ case SP_DJINNI: res = (adj ? "Djinn" : "Djinni"); break;
default: res = (adj ? "Yakish" : "Yak"); break;
}
}
@@ -222,6 +239,11 @@ bool species_likes_water(species_type species)
|| species == SP_OCTOPODE);
}
+bool species_likes_lava(species_type species)
+{
+ return (species == SP_LAVA_ORC);
+}
+
genus_type species_genus(species_type species)
{
switch (species)
@@ -243,6 +265,10 @@ genus_type species_genus(species_type species)
case SP_SLUDGE_ELF:
return GENPC_ELVEN;
+ case SP_HILL_ORC:
+ case SP_LAVA_ORC:
+ return GENPC_ORCISH;
+
default:
return GENPC_NONE;
}
@@ -289,6 +315,8 @@ monster_type player_species_to_mons_species(species_type species)
return MONS_HALFLING;
case SP_HILL_ORC:
return MONS_ORC;
+ case SP_LAVA_ORC:
+ return MONS_LAVA_ORC;
case SP_KOBOLD:
return MONS_KOBOLD;
case SP_MUMMY:
@@ -343,6 +371,8 @@ monster_type player_species_to_mons_species(species_type species)
return MONS_FELID;
case SP_OCTOPODE:
return MONS_OCTOPODE;
+ case SP_DJINNI:
+ return MONS_DJINNI;
case SP_ELF:
case SP_HILL_DWARF:
case SP_MOUNTAIN_DWARF:
@@ -402,6 +432,8 @@ int species_exp_modifier(species_type species)
case SP_VAMPIRE:
case SP_TROLL:
case SP_DEMONSPAWN:
+ case SP_DJINNI:
+ case SP_LAVA_ORC:
return -1;
case SP_DEMIGOD:
return -2;
@@ -426,6 +458,7 @@ int species_hp_modifier(species_type species)
case SP_SLUDGE_ELF:
case SP_HALFLING:
case SP_OCTOPODE:
+ case SP_DJINNI:
return -1;
default:
return 0;
@@ -443,6 +476,7 @@ int species_hp_modifier(species_type species)
case SP_PALE_DRACONIAN:
case SP_GHOUL:
case SP_HILL_ORC:
+ case SP_LAVA_ORC:
case SP_MINOTAUR:
return 1;
case SP_DEEP_DWARF: