summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--crawl-ref/source/mon-data.h2
-rw-r--r--crawl-ref/source/monplace.cc4
-rw-r--r--crawl-ref/source/monstuff.cc5
-rw-r--r--crawl-ref/source/rltiles/dc-misc/mask_deep_water_shoals.pngbin688 -> 685 bytes
-rw-r--r--crawl-ref/source/rltiles/dc-mon.txt10
-rw-r--r--crawl-ref/source/rltiles/dc-mon/animals/kraken_head.pngbin0 -> 1064 bytes
-rw-r--r--crawl-ref/source/rltiles/dc-mon/animals/kraken_tentacle1.pngbin0 -> 552 bytes
-rw-r--r--crawl-ref/source/rltiles/dc-mon/animals/kraken_tentacle2.pngbin0 -> 706 bytes
-rw-r--r--crawl-ref/source/rltiles/dc-mon/animals/kraken_tentacle3.pngbin0 -> 613 bytes
-rw-r--r--crawl-ref/source/rltiles/dc-mon/animals/kraken_tentacle4.pngbin0 -> 595 bytes
-rw-r--r--crawl-ref/source/rltiles/dc-mon/animals/kraken_tentacle5.pngbin0 -> 712 bytes
-rw-r--r--crawl-ref/source/rltiles/dc-mon/animals/kraken_tentacle6.pngbin0 -> 655 bytes
-rw-r--r--crawl-ref/source/tilepick.cc5
13 files changed, 25 insertions, 1 deletions
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
--- a/crawl-ref/source/rltiles/dc-misc/mask_deep_water_shoals.png
+++ b/crawl-ref/source/rltiles/dc-misc/mask_deep_water_shoals.png
Binary files 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
--- /dev/null
+++ b/crawl-ref/source/rltiles/dc-mon/animals/kraken_head.png
Binary files 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
--- /dev/null
+++ b/crawl-ref/source/rltiles/dc-mon/animals/kraken_tentacle1.png
Binary files 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
--- /dev/null
+++ b/crawl-ref/source/rltiles/dc-mon/animals/kraken_tentacle2.png
Binary files 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
--- /dev/null
+++ b/crawl-ref/source/rltiles/dc-mon/animals/kraken_tentacle3.png
Binary files 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
--- /dev/null
+++ b/crawl-ref/source/rltiles/dc-mon/animals/kraken_tentacle4.png
Binary files 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
--- /dev/null
+++ b/crawl-ref/source/rltiles/dc-mon/animals/kraken_tentacle5.png
Binary files 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
--- /dev/null
+++ b/crawl-ref/source/rltiles/dc-mon/animals/kraken_tentacle6.png
Binary files 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: