diff options
author | j-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-03-07 11:31:13 +0000 |
---|---|---|
committer | j-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-03-07 11:31:13 +0000 |
commit | 88a6cab91bc229578ada1582b99a86f417b7a6ac (patch) | |
tree | 6ed16936bbd1643d25a47e4d36a24875cb0f6b19 /crawl-ref/source | |
parent | 4f65c022cc220235650adac2ee1ee1db09c9fb48 (diff) | |
download | crawl-ref-88a6cab91bc229578ada1582b99a86f417b7a6ac.tar.gz crawl-ref-88a6cab91bc229578ada1582b99a86f417b7a6ac.zip |
Add more monsters being capable of spattering the floor with blood.
Should we use the same reasoning for which monsters' corpses vampires can
feed on? Currently they can also draw blood from insects and worms, which
seems a bit odd. But everytime we restrict the sources of blood further we
make vampires (un)lives a bit harder.
For comparison: Currently vampires can draw blood from all monsters with
chunk type clean or contaminated. This includes, among others, royal jelly,
death cob, devils, skeletons (!) and a whole lot of other demonic or
undead beings. Blood spattering, on the other hand, only works for monsters
that have either M_WARM_BLOOD or M_COLD_BLOOD set, and this is the case for
a subgroup of natural and holy creatures. I'm in favour of this change, and
unless someone else has good arguments not to change this, I will.
Also fix hungry vampires leaving blood stains.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3532 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source')
-rw-r--r-- | crawl-ref/source/effects.cc | 12 | ||||
-rw-r--r-- | crawl-ref/source/misc.cc | 4 | ||||
-rw-r--r-- | crawl-ref/source/mon-data.h | 50 | ||||
-rw-r--r-- | crawl-ref/source/monstuff.cc | 14 |
4 files changed, 40 insertions, 40 deletions
diff --git a/crawl-ref/source/effects.cc b/crawl-ref/source/effects.cc index 00e0b348af..70c8b27159 100644 --- a/crawl-ref/source/effects.cc +++ b/crawl-ref/source/effects.cc @@ -2216,10 +2216,10 @@ static void rot_inventory_food(long time_delta) continue; } - you.inv[i].sub_type = CORPSE_SKELETON; - you.inv[i].special = 0; - you.inv[i].colour = LIGHTGREY; - you.wield_change = true; + you.inv[i].sub_type = CORPSE_SKELETON; + you.inv[i].special = 0; + you.inv[i].colour = LIGHTGREY; + you.wield_change = true; burden_changed_by_rot = true; continue; } @@ -2833,8 +2833,8 @@ void update_corpses(double elapsedTime) else { it.sub_type = CORPSE_SKELETON; - it.special = 200; - it.colour = LIGHTGREY; + it.special = 200; + it.colour = LIGHTGREY; } } } diff --git a/crawl-ref/source/misc.cc b/crawl-ref/source/misc.cc index fc0447b74f..545529aa48 100644 --- a/crawl-ref/source/misc.cc +++ b/crawl-ref/source/misc.cc @@ -165,7 +165,7 @@ static bool victim_can_bleed(int montype) if (montype == -1) // player { if (you.is_undead && (you.species != SP_VAMPIRE - || you.hunger_state >= HS_FULL)) + || you.hunger_state < HS_FULL)) { return (false); } @@ -179,7 +179,7 @@ static bool victim_can_bleed(int montype) } return (true); } - + // now check monsters return (mons_class_flag(montype, M_COLD_BLOOD) || mons_class_flag(montype, M_WARM_BLOOD)); diff --git a/crawl-ref/source/mon-data.h b/crawl-ref/source/mon-data.h index 2c494a6e11..33c790a7dd 100644 --- a/crawl-ref/source/mon-data.h +++ b/crawl-ref/source/mon-data.h @@ -446,7 +446,7 @@ { MONS_ANGEL, 'A', WHITE, "Angel", - M_FIGHTER | M_FLIES | M_SPELLCASTER | M_SEE_INVIS, + M_FIGHTER | M_FLIES | M_SPELLCASTER | M_SEE_INVIS | M_WARM_BLOOD, MR_RES_POISON | MR_RES_ELEC, 0, 10, MONS_ANGEL, MONS_ANGEL, MH_HOLY, -8, { {AT_HIT, AF_PLAIN, 25}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK }, @@ -502,7 +502,7 @@ }, { - MONS_FIEND, '1', LIGHTRED, "Fiend", //jmf: was RED, like Balrog + MONS_FIEND, '1', LIGHTRED, "Fiend", M_FLIES | M_SEE_INVIS | M_EVIL, MR_RES_POISON | MR_RES_HELLFIRE | MR_VUL_COLD, 0, 18, MONS_FIEND, MONS_FIEND, MH_DEMONIC, -12, @@ -939,7 +939,7 @@ { MONS_GIANT_ORANGE_BRAIN, 'G', LIGHTRED, "giant orange brain", - M_NO_SKELETON | M_SPELLCASTER | M_LEVITATE | M_SEE_INVIS, + M_NO_SKELETON | M_SPELLCASTER | M_LEVITATE | M_SEE_INVIS | M_WARM_BLOOD, MR_RES_ASPHYX, 1000, 13, MONS_GIANT_ORANGE_BRAIN, MONS_GIANT_ORANGE_BRAIN, MH_NATURAL, -8, { AT_NO_ATK, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK }, @@ -994,7 +994,7 @@ { MONS_ICE_DRAGON, 'D', WHITE, "ice dragon", - M_FLIES | M_SPECIAL_ABILITY, + M_FLIES | M_SPECIAL_ABILITY | M_COLD_BLOOD, MR_RES_POISON | MR_VUL_FIRE | mrd(MR_RES_COLD, 2), 2200, 10, MONS_DRAGON, MONS_ICE_DRAGON, MH_NATURAL, -3, { {AT_BITE, AF_PLAIN, 17}, {AT_CLAW, AF_PLAIN, 17}, {AT_CLAW, AF_PLAIN, 17}, AT_NO_ATK }, @@ -1194,7 +1194,7 @@ { MONS_STEAM_DRAGON, 'D', BLUE, "steam dragon", - M_SPELLCASTER | M_FLIES, + M_SPELLCASTER | M_FLIES | M_WARM_BLOOD, MR_RES_STEAM, 1000, 10, MONS_DRAGON, MONS_STEAM_DRAGON, MH_NATURAL, -3, { {AT_BITE, AF_PLAIN, 12}, {AT_CLAW, AF_PLAIN, 6}, AT_NO_ATK, AT_NO_ATK }, @@ -1250,7 +1250,7 @@ { MONS_HYDRA, 'D', LIGHTGREEN, "hydra", - M_AMPHIBIOUS, // because it likes the swamp -- bwr + M_AMPHIBIOUS | M_WARM_BLOOD, // because it likes the swamp -- bwr MR_RES_POISON, 1800, 11, MONS_HYDRA, MONS_HYDRA, MH_NATURAL, -3, { {AT_BITE, AF_PLAIN, 18}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK }, @@ -1433,7 +1433,7 @@ { MONS_MOTTLED_DRAGON, 'D', LIGHTMAGENTA, "mottled dragon", - M_SPELLCASTER | M_FLIES, + M_SPELLCASTER | M_FLIES | M_WARM_BLOOD, MR_RES_POISON | MR_RES_FIRE | MR_RES_STICKY_FLAME, 1100, 10, MONS_DRAGON, MONS_MOTTLED_DRAGON, MH_NATURAL, -3, { {AT_BITE, AF_PLAIN, 15}, {AT_CLAW, AF_PLAIN, 6}, AT_NO_ATK, AT_NO_ATK }, @@ -1701,7 +1701,7 @@ { MONS_GOLDEN_DRAGON, 'D', YELLOW, "golden dragon", - M_SPELLCASTER | M_FLIES | M_SENSE_INVIS, + M_SPELLCASTER | M_FLIES | M_SENSE_INVIS | M_WARM_BLOOD, MR_RES_ELEC | MR_RES_POISON | MR_RES_FIRE | MR_RES_COLD, 3000, 17, MONS_DRAGON, MONS_GOLDEN_DRAGON, MH_NATURAL, -8, { {AT_BITE, AF_PLAIN, 40}, {AT_CLAW, AF_PLAIN, 20}, {AT_CLAW, AF_PLAIN, 20}, AT_NO_ATK }, @@ -1730,7 +1730,7 @@ // packed with draconians already, and a lightcyan l is unique -- jpeg, Feb 08 { MONS_LINDWURM, 'l', LIGHTCYAN, "lindwurm", - M_SPECIAL_ABILITY, + M_SPECIAL_ABILITY | M_WARM_BLOOD, MR_NO_FLAGS, 1000, 11, MONS_DRAGON, MONS_LINDWURM, MH_NATURAL, -3, { {AT_BITE, AF_PLAIN, 20}, {AT_CLAW, AF_PLAIN, 10}, {AT_CLAW, AF_PLAIN, 10}, AT_NO_ATK }, @@ -1906,7 +1906,7 @@ { MONS_FIREDRAKE, 'l', RED, "firedrake", - M_FLIES | M_SPECIAL_ABILITY, + M_FLIES | M_SPECIAL_ABILITY | M_WARM_BLOOD, MR_RES_FIRE, 900, 10, MONS_DRAGON, MONS_FIREDRAKE, MH_NATURAL, -3, { {AT_BITE, AF_PLAIN, 8}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK }, @@ -1917,7 +1917,7 @@ { MONS_SHADOW_DRAGON, 'D', MAGENTA, "shadow dragon", - M_SPELLCASTER | M_FLIES | M_SEE_INVIS | M_EVIL, + M_SPELLCASTER | M_FLIES | M_SEE_INVIS | M_EVIL | M_COLD_BLOOD, MR_RES_POISON | mrd(MR_RES_COLD, 2), 2000, 12, MONS_DRAGON, MONS_SHADOW_DRAGON, MH_NATURAL, -5, { {AT_BITE, AF_DRAIN_XP, 20}, {AT_CLAW, AF_PLAIN, 15}, {AT_CLAW, AF_PLAIN, 15}, AT_NO_ATK }, @@ -1983,7 +1983,7 @@ { MONS_SWAMP_DRAGON, 'D', BROWN, "swamp dragon", - M_SPELLCASTER | M_FLIES, + M_SPELLCASTER | M_FLIES | M_WARM_BLOOD, MR_RES_POISON, 1900, 11, MONS_DRAGON, MONS_SWAMP_DRAGON, MH_NATURAL, -3, { {AT_BITE, AF_PLAIN, 18}, {AT_CLAW, AF_PLAIN, 9}, {AT_CLAW, AF_PLAIN, 9}, AT_NO_ATK }, @@ -1994,7 +1994,7 @@ { MONS_SWAMP_DRAKE, 'l', BROWN, "swamp drake", - M_SPELLCASTER | M_FLIES, + M_SPELLCASTER | M_FLIES | M_WARM_BLOOD, MR_RES_POISON, 900, 11, MONS_DRAGON, MONS_SWAMP_DRAKE, MH_NATURAL, -3, { {AT_BITE, AF_PLAIN, 14}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK }, @@ -2005,7 +2005,7 @@ { MONS_DEATH_DRAKE, 'l', LIGHTGREY, "death drake", - M_SPELLCASTER | M_FLIES | M_EVIL, + M_SPELLCASTER | M_FLIES | M_EVIL | M_COLD_BLOOD, MR_RES_POISON, 900, 11, MONS_DRAGON, MONS_DEATH_DRAKE, MH_NATURAL, -3, { {AT_BITE, AF_PLAIN, 12}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK }, @@ -2456,7 +2456,7 @@ HT_LAND, 10, DEFAULT_ENERGY, MONUSE_OPEN_DOORS, SIZE_MEDIUM }, -// 250 can't exist +// 250 can't exist -> program bug { @@ -3051,7 +3051,7 @@ { MONS_XTAHUA, 'D', RED, "Xtahua", - M_SEE_INVIS | M_FLIES | M_SPECIAL_ABILITY | M_UNIQUE, + M_SEE_INVIS | M_FLIES | M_SPECIAL_ABILITY | M_UNIQUE | M_WARM_BLOOD, MR_RES_POISON | mrd(MR_RES_FIRE, 2) | MR_VUL_COLD, 0, 18, MONS_DRAGON, MONS_DRAGON, MH_NATURAL, -7, { {AT_BITE, AF_PLAIN, 35}, {AT_CLAW, AF_PLAIN, 20}, {AT_CLAW, AF_PLAIN, 17}, AT_NO_ATK }, @@ -3259,7 +3259,7 @@ { MONS_DAEVA, 'A', YELLOW, "Daeva", - M_FIGHTER | M_LEVITATE | M_SPELLCASTER | M_SEE_INVIS, + M_FIGHTER | M_LEVITATE | M_SPELLCASTER | M_SEE_INVIS | M_WARM_BLOOD, MR_RES_POISON, 0, 12, MONS_ANGEL, MONS_DAEVA, MH_HOLY, -8, { {AT_HIT, AF_PLAIN, 25}, {AT_HIT, AF_PLAIN, 10}, {AT_HIT, AF_PLAIN, 10}, AT_NO_ATK }, @@ -3306,7 +3306,7 @@ MONS_TENTACLED_MONSTROSITY, 'X', GREEN, "tentacled monstrosity", M_SEE_INVIS | M_AMPHIBIOUS, MR_RES_POISON | MR_RES_FIRE | MR_RES_COLD | MR_RES_ELEC, - 0, 10, MONS_TENTACLED_MONSTROSITY, MONS_TENTACLED_MONSTROSITY, MH_NATURAL, -5, + 0, 10, MONS_TENTACLED_MONSTROSITY, MONS_TENTACLED_MONSTROSITY, MH_DEMONIC, -5, { {AT_HIT, AF_PLAIN, 22}, {AT_HIT, AF_PLAIN, 17}, {AT_HIT, AF_PLAIN, 13} }, { 25, 3, 5, 0 }, 5, 5, MST_NO_SPELLS, CE_NOCORPSE, Z_NOZOMBIE, S_SILENT, I_NORMAL, @@ -3749,7 +3749,7 @@ { MONS_BOGGART, 'g', MAGENTA, "boggart", - M_SPELLCASTER | M_ACTUAL_SPELLS | M_SEE_INVIS, + M_SPELLCASTER | M_ACTUAL_SPELLS | M_SEE_INVIS | M_WARM_BLOOD, MR_NO_FLAGS, 0, 14, MONS_BOGGART, MONS_BOGGART, MH_NATURAL, -7, { {AT_HIT, AF_PLAIN, 5}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK }, @@ -3760,7 +3760,7 @@ { MONS_QUICKSILVER_DRAGON, 'D', LIGHTCYAN, "quicksilver dragon", - M_SPELLCASTER | M_FLIES | M_SENSE_INVIS, + M_SPELLCASTER | M_FLIES | M_SENSE_INVIS | M_WARM_BLOOD, MR_NO_FLAGS, 0, 14, MONS_DRAGON, MONS_QUICKSILVER_DRAGON, MH_NATURAL, -7, { {AT_BITE, AF_PLAIN, 25}, {AT_CLAW, AF_PLAIN, 20}, AT_NO_ATK, AT_NO_ATK }, @@ -3771,7 +3771,7 @@ { MONS_IRON_DRAGON, 'D', CYAN, "iron dragon", - M_SPELLCASTER | M_SENSE_INVIS, + M_SPELLCASTER | M_SENSE_INVIS | M_WARM_BLOOD, MR_RES_POISON | MR_RES_FIRE | MR_RES_COLD, 0, 14, MONS_DRAGON, MONS_IRON_DRAGON, MH_NATURAL, -7, { {AT_BITE, AF_PLAIN, 25}, {AT_CLAW, AF_PLAIN, 25}, {AT_CLAW, AF_PLAIN, 25}, AT_NO_ATK }, @@ -3791,7 +3791,7 @@ HT_LAND, 10, DEFAULT_ENERGY, MONUSE_WEAPONS_ARMOUR, SIZE_MEDIUM }, -/* player ghost - only one per level. stats are stored in ghost struct */ +/* player ghost - stats are stored in ghost struct */ { MONS_PLAYER_GHOST, 'p', WHITE, "player ghost", M_FIGHTER | M_SPEAKS | M_SPELLCASTER | M_ACTUAL_SPELLS | M_FLIES | M_UNIQUE | M_INSUBSTANTIAL, @@ -3829,7 +3829,7 @@ { MONS_LAVA_FISH, ';', RED, "lava fish", - M_NO_FLAGS, + M_WARM_BLOOD, MR_RES_FIRE | MR_VUL_COLD, 0, 10, MONS_BIG_FISH, MONS_LAVA_FISH, MH_NATURAL, -3, { {AT_BITE, AF_FIRE, 10}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK }, @@ -4090,7 +4090,7 @@ }, { - // gila monsters colours: lightmagenta, magenta, lightred, red, yellow + // gila monsters colours: lightmagenta, magenta, lightred, yellow MONS_GILA_MONSTER, 'l', BLACK, "gila monster", M_COLD_BLOOD, MR_NO_FLAGS, @@ -4158,7 +4158,7 @@ { MONS_TIAMAT, 'd', MAGENTA, "Tiamat", - M_HUMANOID | M_SEE_INVIS | M_EVIL | M_UNIQUE | M_FLIES, + M_HUMANOID | M_SEE_INVIS | M_EVIL | M_UNIQUE | M_FLIES | M_COLD_BLOOD, MR_RES_POISON, 0, 10, MONS_DRACONIAN, MONS_DRACONIAN, MH_NATURAL, -5, { {AT_HIT, AF_PLAIN, 35}, {AT_TAIL_SLAP, AF_PLAIN, 25}, diff --git a/crawl-ref/source/monstuff.cc b/crawl-ref/source/monstuff.cc index 64355d5209..324789813b 100644 --- a/crawl-ref/source/monstuff.cc +++ b/crawl-ref/source/monstuff.cc @@ -316,14 +316,14 @@ static void place_monster_corpse(const monsters *monster) if (o == NON_ITEM) return; - mitm[o].flags = 0; + mitm[o].flags = 0; mitm[o].base_type = OBJ_CORPSES; - mitm[o].plus = corpse_class; - mitm[o].plus2 = 0; // butcher work done - mitm[o].sub_type = CORPSE_BODY; - mitm[o].special = 210; // rot time - mitm[o].colour = mons_class_colour(corpse_class); - mitm[o].quantity = 1; + mitm[o].plus = corpse_class; + mitm[o].plus2 = 0; // butcher work done + mitm[o].sub_type = CORPSE_BODY; + mitm[o].special = 210; // rot time + mitm[o].colour = mons_class_colour(corpse_class); + mitm[o].quantity = 1; if (mitm[o].colour == BLACK) mitm[o].colour = monster->colour; |