From 72b2f48d51c53b6083bbb1e9e2386bfc51351376 Mon Sep 17 00:00:00 2001 From: j-p-e-g Date: Sun, 28 Jun 2009 21:15:38 +0000 Subject: 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 --- crawl-ref/source/dat/database/monspeak.txt | 24 ++++++++++++++++++++++++ crawl-ref/source/dat/descript/monsters.txt | 4 ++++ crawl-ref/source/dungeon.cc | 7 +++---- crawl-ref/source/enum.h | 1 + crawl-ref/source/makeitem.cc | 12 ++++++++++++ crawl-ref/source/mon-data.h | 11 +++++++++++ crawl-ref/source/monplace.cc | 4 ++++ crawl-ref/source/rltiles/dc-mon.txt | 1 + crawl-ref/source/rltiles/dc-mon/unique/grum.png | Bin 0 -> 1179 bytes crawl-ref/source/spl-util.cc | 2 +- crawl-ref/source/tilemcache.cc | 1 + crawl-ref/source/tilepick.cc | 2 ++ 12 files changed, 64 insertions(+), 5 deletions(-) create mode 100644 crawl-ref/source/rltiles/dc-mon/unique/grum.png 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 @@ -1525,6 +1525,30 @@ Frederick 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(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 @@ -3973,6 +3973,17 @@ static monsterentry mondata[] = { HT_LAND, 10, DEFAULT_ENERGY, MONUSE_WEAPONS_ARMOUR, SIZE_SMALL }, +{ + 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 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 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/unique/grum.png 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 * * * * 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: -- cgit v1.2.3-54-g00ecf