summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2009-06-28 21:15:38 +0000
committerj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2009-06-28 21:15:38 +0000
commit72b2f48d51c53b6083bbb1e9e2386bfc51351376 (patch)
treee5f80fe8deccd4bcffc97168b1f7da402c86d4ac
parent14ef20154318f3605e37aebdc2a5766f761d3177 (diff)
downloadcrawl-ref-72b2f48d51c53b6083bbb1e9e2386bfc51351376.tar.gz
crawl-ref-72b2f48d51c53b6083bbb1e9e2386bfc51351376.zip
Add new unique gnoll Grum, courtesy of Eino's patch. Thanks!
Also added a preliminary tile. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@10070 c06c8d41-db1a-0410-9941-cceddc491573
-rw-r--r--crawl-ref/source/dat/database/monspeak.txt24
-rw-r--r--crawl-ref/source/dat/descript/monsters.txt4
-rw-r--r--crawl-ref/source/dungeon.cc7
-rw-r--r--crawl-ref/source/enum.h1
-rw-r--r--crawl-ref/source/makeitem.cc12
-rw-r--r--crawl-ref/source/mon-data.h11
-rw-r--r--crawl-ref/source/monplace.cc4
-rw-r--r--crawl-ref/source/rltiles/dc-mon.txt1
-rw-r--r--crawl-ref/source/rltiles/dc-mon/unique/grum.pngbin0 -> 1179 bytes
-rw-r--r--crawl-ref/source/spl-util.cc2
-rw-r--r--crawl-ref/source/tilemcache.cc1
-rw-r--r--crawl-ref/source/tilepick.cc2
12 files changed, 64 insertions, 5 deletions
diff --git a/crawl-ref/source/dat/database/monspeak.txt b/crawl-ref/source/dat/database/monspeak.txt
index cbb42fb886..004143700f 100644
--- a/crawl-ref/source/dat/database/monspeak.txt
+++ b/crawl-ref/source/dat/database/monspeak.txt
@@ -1526,6 +1526,30 @@ w:1
VISUAL:@The_monster@ polishes @possessive@ monocle.
%%%%
+# A war dog -breeding gnoll
+Grum
+
+@_Grum_common_@
+
+w:2
+@_Grum_rare_@
+%%%%
+_Grum_common_
+
+VISUAL:@The_monster@ bares his teeth.
+
+@The_monster@ grunts.
+
+@The_monster@ says @at_foe@, "Me and my dogs will have a feast tonight.."
+
+@The_monster@ says @at_foe@, "You look like good eating."
+%%%%
+_Grum_rare_
+
+@The_monster@ shouts, "Attack!"
+
+@The_monster@ says, "You're dog chow, @player_name@!"
+%%%%
# A twisted goblin
Ijyb
diff --git a/crawl-ref/source/dat/descript/monsters.txt b/crawl-ref/source/dat/descript/monsters.txt
index 11c2674e55..a5f0684ac6 100644
--- a/crawl-ref/source/dat/descript/monsters.txt
+++ b/crawl-ref/source/dat/descript/monsters.txt
@@ -130,6 +130,10 @@ Green Death
A bloated form covered in oozing sores and exhaling clouds of lethal poison.
%%%%
+Grum
+
+A tough-looking gnoll, wearing the pelt of one of his former war dogs.
+%%%%
guardian naga
A hybrid; human from the chest up, with a scaly, muscular torso trailing off like that of a snake.
diff --git a/crawl-ref/source/dungeon.cc b/crawl-ref/source/dungeon.cc
index 3ddcd20595..47cca427ea 100644
--- a/crawl-ref/source/dungeon.cc
+++ b/crawl-ref/source/dungeon.cc
@@ -3256,12 +3256,12 @@ static monster_type _choose_unique_by_depth(int step)
break;
case 2: // depth <= 9
ret = random_choose(MONS_BLORK_THE_ORC, MONS_EDMUND, MONS_PSYCHE,
- MONS_EROLCHA, MONS_PRINCE_RIBBIT, -1);
+ MONS_EROLCHA, MONS_PRINCE_RIBBIT, MONS_GRUM, -1);
break;
case 3: // depth <= 13
ret = random_choose(MONS_PSYCHE, MONS_EROLCHA, MONS_DONALD, MONS_URUG,
MONS_MICHAEL, MONS_EUSTACHIO, MONS_SONJA,
- MONS_JOSEPH, MONS_ERICA, MONS_JOSEPHINE,
+ MONS_JOSEPH, MONS_ERICA, MONS_JOSEPHINE, MONS_GRUM,
MONS_HAROLD, MONS_NORBERT, MONS_JOZEF, -1);
break;
case 4: // depth <= 16
@@ -3281,8 +3281,7 @@ static monster_type _choose_unique_by_depth(int step)
default:
ret = random_choose(MONS_FRANCIS, MONS_FRANCES, MONS_WAYNE, MONS_DUANE,
MONS_XTAHUA, MONS_NORRIS, MONS_FREDERICK,
- MONS_MARGERY, MONS_BORIS, MONS_SAINT_ROKA,
- MONS_KIRKE, -1);
+ MONS_MARGERY, MONS_BORIS, MONS_SAINT_ROKA, -1);
}
return static_cast<monster_type>(ret);
diff --git a/crawl-ref/source/enum.h b/crawl-ref/source/enum.h
index e92bbf9baa..2c13800e32 100644
--- a/crawl-ref/source/enum.h
+++ b/crawl-ref/source/enum.h
@@ -2020,6 +2020,7 @@ enum monster_type // (int) menv[].type
MONS_LERNAEAN_HYDRA,
MONS_DISSOLUTION, // 460
MONS_KIRKE,
+ MONS_GRUM,
// Testing monsters
MONS_TEST_SPAWNER,
diff --git a/crawl-ref/source/makeitem.cc b/crawl-ref/source/makeitem.cc
index 203f4b6447..9635480465 100644
--- a/crawl-ref/source/makeitem.cc
+++ b/crawl-ref/source/makeitem.cc
@@ -3285,6 +3285,17 @@ static item_make_species_type _give_weapon(monsters *mon, int level,
}
break;
+ case MONS_GRUM:
+ force_item = true; // guaranteed reaching
+ item_race = MAKE_ITEM_NO_RACE;
+ item.base_type = OBJ_WEAPONS;
+ item.sub_type = random_choose(WPN_SPEAR, WPN_WHIP, WPN_WHIP,
+ WPN_HALBERD, WPN_GLAIVE, -1);
+ set_item_ego_type(item, OBJ_WEAPONS, SPWPN_REACHING);
+ item.plus += -2 + random2(4);
+ item.plus2 += -1 + random2(2);
+ break;
+
case MONS_ORC:
case MONS_ORC_PRIEST:
item_race = MAKE_ITEM_ORCISH;
@@ -4163,6 +4174,7 @@ void give_armour(monsters *mon, int level)
case MONS_EDMUND:
case MONS_RUPERT:
case MONS_WAYNE:
+ case MONS_GRUM:
{
item.base_type = OBJ_ARMOUR;
diff --git a/crawl-ref/source/mon-data.h b/crawl-ref/source/mon-data.h
index b29e27af6d..bb43d11f3e 100644
--- a/crawl-ref/source/mon-data.h
+++ b/crawl-ref/source/mon-data.h
@@ -3974,6 +3974,17 @@ static monsterentry mondata[] = {
},
{
+ MONS_GRUM, 'g', LIGHTRED, "Grum",
+ M_UNIQUE | M_WARM_BLOOD | M_SPEAKS,
+ MR_NO_FLAGS,
+ 750, 10, MONS_GNOLL, MONS_GNOLL, MH_NATURAL, -3,
+ { {AT_HIT, AF_PLAIN, 20}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
+ { 4, 0, 0, 40 },
+ 2, 9, MST_NO_SPELLS, CE_CONTAMINATED, Z_NOZOMBIE, S_GROWL, I_NORMAL,
+ HT_LAND, 10, DEFAULT_ENERGY, MONUSE_WEAPONS_ARMOUR, SIZE_MEDIUM
+},
+
+{
MONS_ROYAL_JELLY, 'J', YELLOW, "the royal jelly",
M_NO_SKELETON | M_SENSE_INVIS | M_SPECIAL_ABILITY | M_ACID_SPLASH
| M_NO_REGEN | M_UNIQUE,
diff --git a/crawl-ref/source/monplace.cc b/crawl-ref/source/monplace.cc
index 726e8b64db..02e457760e 100644
--- a/crawl-ref/source/monplace.cc
+++ b/crawl-ref/source/monplace.cc
@@ -1526,6 +1526,10 @@ static band_type _choose_band(int mon_type, int power, int &band_size)
band = BAND_GNOLLS;
band_size = (coinflip() ? 3 : 2);
break;
+ case MONS_GRUM:
+ band = BAND_WAR_DOGS;
+ band_size = 2 + random2(3);
+ break;
case MONS_BUMBLEBEE:
band = BAND_BUMBLEBEES;
band_size = 2 + random2(4);
diff --git a/crawl-ref/source/rltiles/dc-mon.txt b/crawl-ref/source/rltiles/dc-mon.txt
index a108b66f4c..fb467c54c2 100644
--- a/crawl-ref/source/rltiles/dc-mon.txt
+++ b/crawl-ref/source/rltiles/dc-mon.txt
@@ -492,6 +492,7 @@ wandering_mushroom MONS_WANDERING_MUSHROOM
## Goblins ('g')
%sdir dc-mon/unique
ijyb MONS_IJYB
+grum MONS_GRUM
%sdir dc-mon
goblin MONS_GOBLIN
hobgoblin MONS_HOBGOBLIN
diff --git a/crawl-ref/source/rltiles/dc-mon/unique/grum.png b/crawl-ref/source/rltiles/dc-mon/unique/grum.png
new file mode 100644
index 0000000000..246c28b894
--- /dev/null
+++ b/crawl-ref/source/rltiles/dc-mon/unique/grum.png
Binary files differ
diff --git a/crawl-ref/source/spl-util.cc b/crawl-ref/source/spl-util.cc
index 4b52954da6..494ccbb50e 100644
--- a/crawl-ref/source/spl-util.cc
+++ b/crawl-ref/source/spl-util.cc
@@ -1,6 +1,6 @@
/*
* File: spl-util.cc *
- * Summary: data handlers for player-avilable spell list *
+ * Summary: data handlers for player-available spell list *
* Written by: don brodale <dbrodale@bigfootinteractive.com> *
* *
* Modified for Crawl Reference by $Author$ on $Date$
diff --git a/crawl-ref/source/tilemcache.cc b/crawl-ref/source/tilemcache.cc
index d634999df7..052ab4ac7d 100644
--- a/crawl-ref/source/tilemcache.cc
+++ b/crawl-ref/source/tilemcache.cc
@@ -364,6 +364,7 @@ bool mcache_monster::get_weapon_offset(int mon_tile, int &ofs_x, int &ofs_y)
break;
// Shift upwards.
case TILEP_MONS_GNOLL:
+ case TILEP_MONS_GRUM:
case TILEP_MONS_DEEP_ELF_DEATH_MAGE:
ofs_x = -1;
ofs_y = 0;
diff --git a/crawl-ref/source/tilepick.cc b/crawl-ref/source/tilepick.cc
index 9968f253aa..fe1674f94c 100644
--- a/crawl-ref/source/tilepick.cc
+++ b/crawl-ref/source/tilepick.cc
@@ -898,6 +898,8 @@ int tileidx_monster_base(const monsters *mon, bool detected)
// non-human uniques
case MONS_IJYB:
return TILEP_MONS_IJYB;
+ case MONS_GRUM:
+ return TILEP_MONS_GRUM;
case MONS_URUG:
return TILEP_MONS_URUG;
case MONS_EROLCHA: