From 43e85458c7c6205645f844153f2569cb200ee206 Mon Sep 17 00:00:00 2001 From: Jude Brown Date: Tue, 10 Nov 2009 14:22:04 +1000 Subject: Make Crazy Yiuf an actual unique, combining aspects of the Mad Roy FR. Yiuf still only appears in his cottage (generated from D:2-7), still generates with a quarterstaff of chaos and a cloak, but is now randomly coloured at the start of the game, and has randomised speech. You leg down broken song! --- crawl-ref/source/dat/database/monspeak.txt | 325 +++++++++++++++++++++++++++++ crawl-ref/source/dat/descript/monsters.txt | 4 + crawl-ref/source/dat/mini.des | 21 -- crawl-ref/source/dat/shrine.des | 2 +- crawl-ref/source/dat/uniques.des | 22 ++ crawl-ref/source/enum.h | 1 + crawl-ref/source/mon-data.h | 12 ++ crawl-ref/source/mon-gear.cc | 16 ++ crawl-ref/source/monster.cc | 5 +- 9 files changed, 385 insertions(+), 23 deletions(-) (limited to 'crawl-ref/source') diff --git a/crawl-ref/source/dat/database/monspeak.txt b/crawl-ref/source/dat/database/monspeak.txt index 5644c1b994..f7d312a378 100644 --- a/crawl-ref/source/dat/database/monspeak.txt +++ b/crawl-ref/source/dat/database/monspeak.txt @@ -1319,6 +1319,331 @@ Boris unsummoned @The_monster@ says, "You can't fire me, I quit!" ## END Boris ## %%%% +############ CRAZY YIUF ### A mad old gnoll! +Crazy Yiuf + +@_crazy_yiuf_speech_@ +%%%% +_crazy_yiuf_speech_ + +w:30 +@The_monster@ @_crazy_yiuf_speech_verbs_@, "@_crazy_yiuf_sentence_@" + +VISUAL:@The_monster@ waves his quarterstaff at you. @player_only@ + +@The_monster@ cries, "You leg down broken song, no?" + +VISUAL:@The_monster@ glowers. + +VISUAL:@The_monster@ twirls on the spot. + +VISUAL:@The_monster@ flaps his cloak. + +@The_monster@ says, "Crazy? Crazy!? PORCUPINE!" + +@The_monster@ sings, "Trees, trees, trees, circus!" + +w:2 +@The_monster@ says, "I'm not crazy!" +%%%% +_crazy_yiuf_speech_verbs_ + +w:20 +says + +whimpers + +cries + +laughs + +screams + +yells + +burps +%%%% +_crazy_yiuf_sentence_ + +w:2 +@_crazy_yiuf_wordlist1_@! @_crazy_yiuf_wordlist1_@ @_crazy_yiuf_wordlist2_@ @_crazy_yiuf_wordlist2_@. + +w:6 +@_crazy_yiuf_wordlist1_@ @_crazy_yiuf_wordlist2_@ @_crazy_yiuf_wordlist2_@! + +w:2 +@_crazy_yiuf_wordlist1_@! +%%%% +# Uppercase words +_crazy_yiuf_wordlist1_ + +You + +Peeping + +Fire + +Action + +Aardvark + +Announcement + +Paint + +Snoogle + +Hah + +Powder + +Hack + +Scoff + +Two + +Candle + +Gum + +Rot + +Castle + +Cholesterol + +Buddy + +Snower + +Leather + +Rifle + +Trifle + +Fluff + +Gnoll + +Orb + +Adder + +Dawk + +Goldfish + +Shower + +Line + +Mountain + +Tosser + +Tonal + +East + +Blight + +Lay + +Whiteboard + +Flower + +Papa + +Mama + +Whippet + +Pitchfork + +Cod + +Ghoul + +Snurf + +Goober + +Prologue + +Proton + +Key + +Island + +Ten + +Cards + +Sif Muna + +Lugonu + +Nubble + +Race + +Seed + +Cake + +Citrus + +Spliff + +Defame + +Liver + +Mugger + +Walk +%%%% +# Lowercase words +_crazy_yiuf_wordlist2_ + +sing-song + +sing + +song + +broken + +leg + +down + +bush + +tired + +snail + +Xom + +cower + +chair + +blue + +green + +sallow + +sow + +horse + +stair + +wrapper + +King + +infinity + +cloud + +bag + +tea + +light + +dark + +water + +foot + +shoe + +hand + +arm + +head + +eyeball + +snockshim + +koolooloo + +toodlewoodle + +childish + +ragdoll + +seventy + +poople + +ladder + +illywillydillykilly + +Orb Guardian + +Hive + +tortoise + +turtle + +testudinal + +return to song + +mobile + +senile + +canine + +disdain + +pontify + +verde + +hog + +ena + +spinner + +agre + +arga + +meccalolo + +fast + +aubergine + +sanguine + +forty-two + +unthinkable + +high + +action +%%%% ############ DISSOLUTION ### a sentient jelly who used to be human a long time ago Dissolution diff --git a/crawl-ref/source/dat/descript/monsters.txt b/crawl-ref/source/dat/descript/monsters.txt index ac6c0ed235..787757f28d 100644 --- a/crawl-ref/source/dat/descript/monsters.txt +++ b/crawl-ref/source/dat/descript/monsters.txt @@ -60,6 +60,10 @@ Chaos spawn A being of pure chaos, its form is constantly shifting, growing and then losing eyes, mouths, claws and tentacles. %%%% +Crazy Yiuf + +A withered old goblin with a long silver beard, wielding a quarterstaff and wearing a cloak. He looks like a figure from mythology! Wait, is his beard held on to his ears with hooks? +%%%% Daeva A divine agent of the Shining One, it is a towering winged figure with an aura of brilliant golden light. diff --git a/crawl-ref/source/dat/mini.des b/crawl-ref/source/dat/mini.des index f59b182286..e08d81b994 100644 --- a/crawl-ref/source/dat/mini.des +++ b/crawl-ref/source/dat/mini.des @@ -2539,27 +2539,6 @@ MAP .........ppp......... ENDMAP -############################################################################## -# 'cuz we need more chaos weapons (1KB) -# -NAME: crazy_cottage -DEPTH: D:2-7 -MONS: gnoll name:Crazy_Yiuf ; quarterstaff good_item ego:chaos . cloak -ITEM: hammer -MAP -xxxxxxxxxxxxxxxx -xxtttttttxxtttxx -xxtttttttttttttx -....t.tttccccctx -.....t..tc...ctx -....tttt....1ctx -...ttttttc..dctx -xxtttttttccccctx -xxtttttttttttttx -xxxxxttttttttxxx -xxxxxxxxxxxxxxxx -ENDMAP - ############################################################################## # Minislime (by Mu.) # diff --git a/crawl-ref/source/dat/shrine.des b/crawl-ref/source/dat/shrine.des index e0fdafac77..9b1010ebed 100644 --- a/crawl-ref/source/dat/shrine.des +++ b/crawl-ref/source/dat/shrine.des @@ -327,7 +327,7 @@ NAME: shrine_sif TAGS: shrine no_item_gen no_monster_gen no_pool_fixup ORIENT: encompass KFEAT: X = altar_sif_muna -MONS: orc wizard w:15 / Jessica / Blork the orc +MONS: orc wizard w:15 / Jessica / Blork the Orc NSUBST: M = 2:1 / *:. SUBST: . = ..Z COLOUR: Z = blue diff --git a/crawl-ref/source/dat/uniques.des b/crawl-ref/source/dat/uniques.des index 0dad22d7ef..42e680646e 100644 --- a/crawl-ref/source/dat/uniques.des +++ b/crawl-ref/source/dat/uniques.des @@ -480,3 +480,25 @@ MONS: Tiamat band MAP 1 ENDMAP + +############################################################################### +# Crazy Yiuf! Only in his cottage. +NAME: uniq_crazy_yiuf_cottage +DEPTH: D:2-7 +TAGS: place_unique no_monster_gen no_item_gen +MONS: Crazy Yiuf +ITEM: hammer +MAP +xxxxxxxxxxxxxxxx +xxtttttttxxtttxx +xxtttttttttttttx +....t.tttccccctx +.....t..tc...ctx +....tttt....1ctx +...ttttttc..dctx +xxtttttttccccctx +xxtttttttttttttx +xxxxxttttttttxxx +xxxxxxxxxxxxxxxx +ENDMAP + diff --git a/crawl-ref/source/enum.h b/crawl-ref/source/enum.h index e6b41bec7d..03250688ab 100644 --- a/crawl-ref/source/enum.h +++ b/crawl-ref/source/enum.h @@ -2048,6 +2048,7 @@ enum monster_type // (int) menv[].type MONS_GOLDEN_EYE, MONS_AIZUL, MONS_PIKEL, + MONS_CRAZY_YIUF, // Testing monsters MONS_TEST_SPAWNER, diff --git a/crawl-ref/source/mon-data.h b/crawl-ref/source/mon-data.h index e3294a843d..bf09742926 100644 --- a/crawl-ref/source/mon-data.h +++ b/crawl-ref/source/mon-data.h @@ -4401,6 +4401,18 @@ static monsterentry mondata[] = { MONUSE_WEAPONS_ARMOUR, MONEAT_NOTHING, SIZE_MEDIUM }, +{ + MONS_CRAZY_YIUF, 'g', BLACK, "Crazy Yiuf", + M_WARM_BLOOD | M_SPEAKS | M_UNIQUE, + MR_NO_FLAGS, + 750, 10, MONS_GNOLL, MONS_GNOLL, MH_NATURAL, -3, + { {AT_HIT, AF_PLAIN, 9}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK }, + { 3, 0, 0, 20 }, + 2, 9, MST_NO_SPELLS, CE_CONTAMINATED, Z_SMALL, S_SHOUT, + I_NORMAL, HT_LAND, FL_NONE, 10, DEFAULT_ENERGY, + MONUSE_STARTING_EQUIPMENT, MONEAT_NOTHING, 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/mon-gear.cc b/crawl-ref/source/mon-gear.cc index 7fa6b55a39..7cb2860ea9 100644 --- a/crawl-ref/source/mon-gear.cc +++ b/crawl-ref/source/mon-gear.cc @@ -318,6 +318,16 @@ static item_make_species_type _give_weapon(monsters *mon, int level, item.plus2 += -1 + random2(2); break; + case MONS_CRAZY_YIUF: + force_item = true; // guaranteed chaos + item_race = MAKE_ITEM_NO_RACE; + item.base_type = OBJ_WEAPONS; + item.sub_type = WPN_QUARTERSTAFF; + set_item_ego_type(item, OBJ_WEAPONS, SPWPN_CHAOS); + item.plus += random2(5); + item.plus2 += random2(4); + break; + case MONS_ORC: case MONS_ORC_PRIEST: item_race = MAKE_ITEM_ORCISH; @@ -1388,6 +1398,12 @@ void give_armour(monsters *mon, int level) force_colour = DARKGREY; break; + case MONS_CRAZY_YIUF: + item_race = MAKE_ITEM_NO_RACE; + item.base_type = OBJ_ARMOUR; + item.sub_type = ARM_CLOAK; + break; + case MONS_DOWAN: item_race = MAKE_ITEM_ELVEN; // intentional fall-through diff --git a/crawl-ref/source/monster.cc b/crawl-ref/source/monster.cc index 00e41f2bac..d566a40275 100644 --- a/crawl-ref/source/monster.cc +++ b/crawl-ref/source/monster.cc @@ -1509,8 +1509,11 @@ bool monsters::pickup_armour(item_def &item, int near, bool force) eq = EQ_BODY_ARMOUR; break; case ARM_CLOAK: - if (this->type == MONS_MAURICE || this->type == MONS_NIKOLA) + if (this->type == MONS_MAURICE || this->type == MONS_NIKOLA || + this->type == MONS_CRAZY_YIUF) + { eq = EQ_BODY_ARMOUR; + } break; case ARM_GLOVES: if (this->type == MONS_NIKOLA) -- cgit v1.2.3-54-g00ecf