diff --git a/crawl-ref/source/dat/des/arrival/twisted.des b/crawl-ref/source/dat/des/arrival/twisted.des index 9d6df45def1..8cf06083e15 100644 --- a/crawl-ref/source/dat/des/arrival/twisted.des +++ b/crawl-ref/source/dat/des/arrival/twisted.des @@ -111,7 +111,7 @@ KMONS: V = octopode ; nothing KMONS: W = formicid ; nothing KMONS: X = gargoyle ; nothing KMONS: Y = vine stalker ; nothing -KMONS: Z = nothing +KMONS: Z = faerie dragon spells:. ; nothing MAP ccccc c.{.c @@ -167,20 +167,22 @@ KMONS: M = human / elf / orc; nothing / naga; nothing / centaur; nothing / \ draconian; nothing / ogre; nothing / minotaur / troll / kobold / \ mummy / ghoul / spriggan; nothing / dwarf; nothing / felid / \ octopode; nothing / vampire spells:. / formicid; nothing / \ - gargoyle; nothing / vine stalker; nothing + gargoyle; nothing / vine stalker; nothing / \ + faerie dragon spells:. ; nothing # Player monsters, zombie versions (ghouls drop out because they need sustenance # and can't be reanimated once starved; gargoyles don't leave corpses): KMONS: N = human zombie / elf zombie / orc zombie / naga zombie / ogre zombie / \ centaur zombie / draconian zombie / minotaur zombie / troll zombie / \ kobold zombie / mummy / spriggan zombie / merfolk zombie / \ - dwarf zombie / felid zombie / octopode zombie / formicid zombie + dwarf zombie / felid zombie / octopode zombie / formicid zombie / \ + faerie dragon zombie # Player monsters, skeleton versions (octopodes and formicids drop out because # they have no skeletons): KMONS: O = human skeleton / elf skeleton / orc skeleton / naga skeleton / \ centaur skeleton / draconian skeleton / ogre skeleton / \ minotaur skeleton / troll skeleton / kobold skeleton / mummy / \ spriggan skeleton / dwarf skeleton / merfolk skeleton / \ - felid skeleton + felid skeleton / faerie dragon skeleton # And now for something completely different (if any of these turn out to be # able to escape or project spells out of their cells, they should be removed): KMONS: Q = orb of fire / ice dragon / shadow dragon / iron dragon / \ @@ -722,7 +724,8 @@ KMONS: ! = human / elf / orc; nothing / naga; nothing / centaur; nothing / \ draconian; nothing / ogre; nothing / minotaur; nothing / troll / \ kobold; nothing / mummy / ghoul / spriggan; nothing / \ dwarf; nothing / octopode; nothing / vampire spells:. / \ - formicid; nothing / gargoyle; nothing / vine stalker; nothing + formicid; nothing / gargoyle; nothing / vine stalker; nothing / \ + faerie dragon spells:. ; nothing KPROP: Kw'! = no_tele_into KMASK: '! = no_item_gen KFEAT: ' = . @@ -753,7 +756,8 @@ KMONS: ! = human / elf / orc; nothing / naga; nothing / centaur; nothing / \ draconian; nothing / ogre; nothing / minotaur; nothing / troll / \ kobold; nothing / mummy / ghoul / spriggan; nothing / \ dwarf; nothing / octopode; nothing / vampire spells:. / \ - formicid; nothing / gargoyle; nothing / vine stalker; nothing + formicid; nothing / gargoyle; nothing / vine stalker; nothing / \ + faerie dragon spells:. ; nothing KPROP: Kw'! = no_tele_into KMASK: '! = no_item_gen KFEAT: ' = . diff --git a/crawl-ref/source/dat/des/branches/pan.des b/crawl-ref/source/dat/des/branches/pan.des index e0955cdf8b5..e9052fb1351 100644 --- a/crawl-ref/source/dat/des/branches/pan.des +++ b/crawl-ref/source/dat/des/branches/pan.des @@ -2365,7 +2365,8 @@ WEIGHT: 1 KMONS: p = human / elf / orc / naga / centaur / draconian / ogre / \ minotaur / troll / kobold / mummy / ghoul / spriggan / felid / \ deep dwarf / octopode / vampire / base draconian / demigod / \ - demonspawn / merfolk / halfling / gargoyle / formicid / vine stalker + demonspawn / merfolk / halfling / gargoyle / formicid / \ + vine stalker / faerie dragon NSUBST: t = 10:p / *:', b = 10:p / *:' KPROP: p' = no_tele_into : pan_demonic_rune(_G, 'P', true) diff --git a/crawl-ref/source/dat/descript/monsters.txt b/crawl-ref/source/dat/descript/monsters.txt index b5a9dd07294..d5f799e0581 100644 --- a/crawl-ref/source/dat/descript/monsters.txt +++ b/crawl-ref/source/dat/descript/monsters.txt @@ -1073,6 +1073,10 @@ eye of draining A hovering horror that waxes strong on magic. %%%% +faerie dragon + +A half-dragon humanoid with shimmering scales and an attument to magic. +%%%% faun A hybrid with the torso of a human atop the forelegs of a goat. It is fabled diff --git a/crawl-ref/source/mon-data.h b/crawl-ref/source/mon-data.h index 0b147b7be69..5b546cecf16 100644 --- a/crawl-ref/source/mon-data.h +++ b/crawl-ref/source/mon-data.h @@ -6273,6 +6273,20 @@ DUMMY(MONS_HELL_LORD, '&', COLOUR_UNDEF, "hell lord", TILEP_MONS_PROGRAM_BUG) }, // "d"raconians. +{ + // for those entry vaults alone + MONS_FAERIE_DRAGON, 'd', LIGHTBLUE, "faerie dragon", + M_SPEAKS | M_NO_POLY_TO | M_FLIES, + MR_NO_FLAGS, + 10, MONS_FAERIE_DRAGON, MONS_FAERIE_DRAGON, MH_NATURAL, 40, + { {AT_HIT, AF_PLAIN, 10}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK }, + 8, 360, + 3, 15, MST_JESSICA, CE_CLEAN, S_SHOUT, + I_HUMAN, HT_LAND, 10, DEFAULT_ENERGY, + MONUSE_WEAPONS_ARMOUR, SIZE_MEDIUM, MON_SHAPE_HUMANOID, + {TILEP_MONS_FAERIE_DRAGON}, TILE_CORPSE_FAERIE_DRAGON +}, + { MONS_TIAMAT, 'd', COLOUR_UNDEF, "Tiamat", M_UNIQUE | M_SEE_INVIS | M_COLD_BLOOD | M_SPEAKS | M_FEMALE | M_FLIES, diff --git a/crawl-ref/source/monster-type.h b/crawl-ref/source/monster-type.h index d5d1f424a90..72558be6b63 100644 --- a/crawl-ref/source/monster-type.h +++ b/crawl-ref/source/monster-type.h @@ -1048,8 +1048,9 @@ enum monster_type // menv[].type MONS_FROG, MONS_BARACHI, MONS_BULTUNGIN, // remove this someday - MONS_TRICERATOPS, - MONS_TEST_STATUE, + MONS_TRICERATOPS, // whoops breaking savefile compat for saves + MONS_TEST_STATUE, // with test statues in + MONS_FAERIE_DRAGON, #endif NUM_MONSTERS, // used for polymorph diff --git a/crawl-ref/source/rltiles/dc-corpse.txt b/crawl-ref/source/rltiles/dc-corpse.txt index 441ff7770cb..852fb838f4f 100644 --- a/crawl-ref/source/rltiles/dc-corpse.txt +++ b/crawl-ref/source/rltiles/dc-corpse.txt @@ -355,6 +355,8 @@ base/octopode1 CORPSE_OCTOPODE %compose drchead/drchead_yellow %finish CORPSE_DRACONIAN_YELLOW +mon/demihumanoids/faerie_dragon CORPSE_FAERIE_DRAGON + # Demonspawn ('6') %sdir mon/humanoids/demonspawn demonspawn CORPSE_DEMONSPAWN diff --git a/crawl-ref/source/rltiles/dc-mon.txt b/crawl-ref/source/rltiles/dc-mon.txt index 83a001dc6ea..fdd40c596ee 100644 --- a/crawl-ref/source/rltiles/dc-mon.txt +++ b/crawl-ref/source/rltiles/dc-mon.txt @@ -1114,6 +1114,7 @@ draco-job-scorcher DRACO_SCORCHER draco-job-shifter DRACO_SHIFTER ## From the Wucad Mu wizard laboratory mon/vault/draconian_monk_ghost MONS_FAINT_GREY_DRACONIAN_MONK +mon/demihumanoids/faerie_dragon MONS_FAERIE_DRAGON %rim 1 mon/nonliving/test_spawner MONS_TEST_SPAWNER diff --git a/crawl-ref/source/rltiles/mon/demihumanoids/faerie_dragon.png b/crawl-ref/source/rltiles/mon/demihumanoids/faerie_dragon.png new file mode 100644 index 00000000000..ec2b4ceec5c Binary files /dev/null and b/crawl-ref/source/rltiles/mon/demihumanoids/faerie_dragon.png differ diff --git a/crawl-ref/source/tilemcache.cc b/crawl-ref/source/tilemcache.cc index 5fccce520d8..ddbe8c9fca8 100644 --- a/crawl-ref/source/tilemcache.cc +++ b/crawl-ref/source/tilemcache.cc @@ -328,6 +328,7 @@ bool mcache_monster::get_weapon_offset(tileidx_t mon_tile, case TILEP_MONS_ANCESTOR_KNIGHT: case TILEP_MONS_ANCESTOR_BATTLEMAGE: case TILEP_MONS_RAGGED_HIEROPHANT: + case TILEP_MONS_FAERIE_DRAGON: *ofs_x = 0; *ofs_y = 0; break; @@ -842,6 +843,7 @@ bool mcache_monster::get_shield_offset(tileidx_t mon_tile, case TILEP_MONS_SOJOBO: case TILEP_MONS_FORMICID: case TILEP_MONS_VINE_STALKER: + case TILEP_MONS_FAERIE_DRAGON: case TILEP_MONS_OCTOPODE: case TILEP_MONS_CHERUB: case TILEP_MONS_MENNAS: diff --git a/crawl-ref/source/tilepick.cc b/crawl-ref/source/tilepick.cc index ba566c19d21..f9b652ab301 100644 --- a/crawl-ref/source/tilepick.cc +++ b/crawl-ref/source/tilepick.cc @@ -1257,6 +1257,7 @@ static tileidx_t _mon_to_zombie_tile(const monster_info &mon) { MONS_OGRE, TILEP_MONS_ZOMBIE_OGRE }, { MONS_HARPY, TILEP_MONS_ZOMBIE_HARPY }, { MONS_DRACONIAN, TILEP_MONS_ZOMBIE_DRACONIAN }, + { MONS_FAERIE_DRAGON, TILEP_MONS_ZOMBIE_DRACONIAN }, { MONS_DRAGON, TILEP_MONS_ZOMBIE_DRAGON }, { MONS_WYVERN, TILEP_MONS_ZOMBIE_WYVERN }, { MONS_DRAKE, TILEP_MONS_ZOMBIE_DRAKE },