From 8b5ae1fa034a8ca37d40721737215a9012294a8d Mon Sep 17 00:00:00 2001 From: j-p-e-g Date: Sat, 19 Sep 2009 15:08:37 +0000 Subject: Add Mitsuhiro's new kraken tiles, slightly modified to make them work with the water overlays. Experimentally disallow krakens (heads) to be placed in or move into shallow water. If the player wants to get rid of the source of all those tentacles he'll have to use ranged combat/spells or face the disadvantage of standing inside shallow water. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@10731 c06c8d41-db1a-0410-9941-cceddc491573 --- crawl-ref/source/mon-data.h | 2 +- crawl-ref/source/monplace.cc | 4 ++++ crawl-ref/source/monstuff.cc | 5 +++++ .../source/rltiles/dc-misc/mask_deep_water_shoals.png | Bin 688 -> 685 bytes crawl-ref/source/rltiles/dc-mon.txt | 10 ++++++++++ crawl-ref/source/rltiles/dc-mon/animals/kraken_head.png | Bin 0 -> 1064 bytes .../source/rltiles/dc-mon/animals/kraken_tentacle1.png | Bin 0 -> 552 bytes .../source/rltiles/dc-mon/animals/kraken_tentacle2.png | Bin 0 -> 706 bytes .../source/rltiles/dc-mon/animals/kraken_tentacle3.png | Bin 0 -> 613 bytes .../source/rltiles/dc-mon/animals/kraken_tentacle4.png | Bin 0 -> 595 bytes .../source/rltiles/dc-mon/animals/kraken_tentacle5.png | Bin 0 -> 712 bytes .../source/rltiles/dc-mon/animals/kraken_tentacle6.png | Bin 0 -> 655 bytes crawl-ref/source/tilepick.cc | 5 +++++ 13 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 crawl-ref/source/rltiles/dc-mon/animals/kraken_head.png create mode 100644 crawl-ref/source/rltiles/dc-mon/animals/kraken_tentacle1.png create mode 100644 crawl-ref/source/rltiles/dc-mon/animals/kraken_tentacle2.png create mode 100644 crawl-ref/source/rltiles/dc-mon/animals/kraken_tentacle3.png create mode 100644 crawl-ref/source/rltiles/dc-mon/animals/kraken_tentacle4.png create mode 100644 crawl-ref/source/rltiles/dc-mon/animals/kraken_tentacle5.png create mode 100644 crawl-ref/source/rltiles/dc-mon/animals/kraken_tentacle6.png (limited to 'crawl-ref/source') diff --git a/crawl-ref/source/mon-data.h b/crawl-ref/source/mon-data.h index 77934544da..b79d170552 100644 --- a/crawl-ref/source/mon-data.h +++ b/crawl-ref/source/mon-data.h @@ -3013,7 +3013,7 @@ static monsterentry mondata[] = { 1500, 20, MONS_KRAKEN, MONS_KRAKEN, MH_NATURAL, -3, { {AT_BITE, AF_PLAIN, 15}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK }, { 20, 10, 10, 0 }, - 20, 0, MST_KRAKEN, CE_CLEAN, Z_NOZOMBIE, S_SILENT, I_ANIMAL, + 20, 0, MST_KRAKEN, CE_NOCORPSE, Z_NOZOMBIE, S_SILENT, I_ANIMAL, HT_WATER, 10, DEFAULT_ENERGY, MONUSE_NOTHING, MONEAT_NOTHING, SIZE_HUGE }, diff --git a/crawl-ref/source/monplace.cc b/crawl-ref/source/monplace.cc index a3d1c326af..a3f4fdb4ff 100644 --- a/crawl-ref/source/monplace.cc +++ b/crawl-ref/source/monplace.cc @@ -154,6 +154,10 @@ bool monster_habitable_grid(int monster_class, if (monster_class == MONS_FIRE_ELEMENTAL && grid_is_watery(actual_grid)) return (false); + // Krakens are too large for shallow water. + if (monster_class == MONS_KRAKEN && actual_grid == DNGN_SHALLOW_WATER) + return (false); + if (grid_compatible(grid_preferred, actual_grid) || (grid_nonpreferred != grid_preferred && grid_compatible(grid_nonpreferred, actual_grid))) diff --git a/crawl-ref/source/monstuff.cc b/crawl-ref/source/monstuff.cc index 1d9cd61e90..314782f8cc 100644 --- a/crawl-ref/source/monstuff.cc +++ b/crawl-ref/source/monstuff.cc @@ -8680,6 +8680,11 @@ static bool _mon_can_move_to_pos(const monsters *monster, const dungeon_feature_type target_grid = grd(targ); const habitat_type habitat = mons_primary_habitat(monster); + // The kraken is so large it cannot enter shallow water. + // Its tentacles can, and will, though. + if (monster->type == MONS_KRAKEN && target_grid == DNGN_SHALLOW_WATER) + return (false); + // Effectively slows down monster movement across water. // Fire elementals can't cross at all. bool no_water = false; diff --git a/crawl-ref/source/rltiles/dc-misc/mask_deep_water_shoals.png b/crawl-ref/source/rltiles/dc-misc/mask_deep_water_shoals.png index 69e35f5e79..a331042c2a 100644 Binary files a/crawl-ref/source/rltiles/dc-misc/mask_deep_water_shoals.png and b/crawl-ref/source/rltiles/dc-misc/mask_deep_water_shoals.png differ diff --git a/crawl-ref/source/rltiles/dc-mon.txt b/crawl-ref/source/rltiles/dc-mon.txt index 1c61f6de85..4bf32dc47a 100644 --- a/crawl-ref/source/rltiles/dc-mon.txt +++ b/crawl-ref/source/rltiles/dc-mon.txt @@ -81,12 +81,22 @@ red_wasp MONS_RED_WASP moth_of_wrath MONS_MOTH_OF_WRATH ## Aquatics (';') +%rim 0 big_fish MONS_BIG_FISH giant_goldfish MONS_GIANT_GOLDFISH electric_eel MONS_ELECTRIC_EEL lava_fish MONS_LAVA_FISH shark MONS_SHARK jellyfish MONS_JELLYFISH /*'J'*/ +## Kraken head ('X') and tentacles ('w') +kraken_head MONS_KRAKEN_HEAD +kraken_tentacle1 MONS_KRAKEN_TENTACLE +kraken_tentacle2 +kraken_tentacle3 +kraken_tentacle4 +kraken_tentacle5 +kraken_tentacle6 +%rim 1 ## Beetles ('B') giant_beetle MONS_GIANT_BEETLE diff --git a/crawl-ref/source/rltiles/dc-mon/animals/kraken_head.png b/crawl-ref/source/rltiles/dc-mon/animals/kraken_head.png new file mode 100644 index 0000000000..cbc5a18fcf Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/animals/kraken_head.png differ diff --git a/crawl-ref/source/rltiles/dc-mon/animals/kraken_tentacle1.png b/crawl-ref/source/rltiles/dc-mon/animals/kraken_tentacle1.png new file mode 100644 index 0000000000..ab578536d9 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/animals/kraken_tentacle1.png differ diff --git a/crawl-ref/source/rltiles/dc-mon/animals/kraken_tentacle2.png b/crawl-ref/source/rltiles/dc-mon/animals/kraken_tentacle2.png new file mode 100644 index 0000000000..d4168c2c0d Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/animals/kraken_tentacle2.png differ diff --git a/crawl-ref/source/rltiles/dc-mon/animals/kraken_tentacle3.png b/crawl-ref/source/rltiles/dc-mon/animals/kraken_tentacle3.png new file mode 100644 index 0000000000..43e44dc278 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/animals/kraken_tentacle3.png differ diff --git a/crawl-ref/source/rltiles/dc-mon/animals/kraken_tentacle4.png b/crawl-ref/source/rltiles/dc-mon/animals/kraken_tentacle4.png new file mode 100644 index 0000000000..452018ac74 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/animals/kraken_tentacle4.png differ diff --git a/crawl-ref/source/rltiles/dc-mon/animals/kraken_tentacle5.png b/crawl-ref/source/rltiles/dc-mon/animals/kraken_tentacle5.png new file mode 100644 index 0000000000..e38a918cd1 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/animals/kraken_tentacle5.png differ diff --git a/crawl-ref/source/rltiles/dc-mon/animals/kraken_tentacle6.png b/crawl-ref/source/rltiles/dc-mon/animals/kraken_tentacle6.png new file mode 100644 index 0000000000..b582feb1b8 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/animals/kraken_tentacle6.png differ diff --git a/crawl-ref/source/tilepick.cc b/crawl-ref/source/tilepick.cc index 377f63997a..ac1f1d7239 100644 --- a/crawl-ref/source/tilepick.cc +++ b/crawl-ref/source/tilepick.cc @@ -708,6 +708,11 @@ int tileidx_monster_base(const monsters *mon, bool detected) return TILEP_MONS_SHARK; case MONS_JELLYFISH: return TILEP_MONS_JELLYFISH; + case MONS_KRAKEN: + return TILEP_MONS_KRAKEN_HEAD; + case MONS_KRAKEN_TENTACLE: + return TILEP_MONS_KRAKEN_TENTACLE + + random2(tile_player_count(TILEP_MONS_KRAKEN_TENTACLE)); // lava monsters case MONS_LAVA_WORM: -- cgit v1.2.3-54-g00ecf