Skip to content

Commit

Permalink
Renamed the zombie dragon to dragon zombie, also buffed it up with ab…
Browse files Browse the repository at this point in the history
…ilities from the living dragons and its zombie cousins. However, it will not be able to engulf.
  • Loading branch information
elunna committed Oct 8, 2023
1 parent 72782be commit a299d34
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 21 deletions.
3 changes: 2 additions & 1 deletion include/mondata.h
Original file line number Diff line number Diff line change
Expand Up @@ -395,7 +395,8 @@
|| (ptr) == &mons[PM_REVENANT])
#define is_domestic(ptr) (((ptr)->mflags2 & M2_DOMESTIC) != 0L)
#define is_demon(ptr) (((ptr)->mhflags & MH_DEMON) != 0L)
#define is_dragon(ptr) (((ptr)->mhflags & MH_DRAGON) != 0L)
#define is_dragon(ptr) ((((ptr)->mhflags & MH_DRAGON) != 0L) \
|| (ptr) == &mons[PM_DRAGON_ZOMBIE])
#define is_feline(ptr) ((ptr)->mlet == S_FELINE)
#define is_pseudodragon(ptr) \
((ptr) == &mons[PM_PSEUDODRAGON] \
Expand Down
9 changes: 5 additions & 4 deletions src/mon.c
Original file line number Diff line number Diff line change
Expand Up @@ -294,7 +294,7 @@ struct permonst *pm;
case S_CENTAUR:
return PM_CENTAUR_ZOMBIE;
case S_DRAGON:
return PM_ZOMBIE_DRAGON;
return PM_DRAGON_ZOMBIE;
}
return NON_PM;
}
Expand Down Expand Up @@ -427,7 +427,7 @@ int mndx;
case PM_TROLL_MUMMY:
mndx = PM_TROLL;
break;
case PM_ZOMBIE_DRAGON:
case PM_DRAGON_ZOMBIE:
mndx = PM_RED_DRAGON;
break;
case PM_CENTAUR_ZOMBIE:
Expand Down Expand Up @@ -701,7 +701,7 @@ unsigned corpseflags;
case PM_GIANT_ZOMBIE:
case PM_ETTIN_ZOMBIE:
case PM_GNOLL_WITHERLING:
case PM_ZOMBIE_DRAGON:
case PM_DRAGON_ZOMBIE:
corpstatflags |= CORPSTAT_ZOMBIE;
/* FALLTHRU */
case PM_KOBOLD_MUMMY:
Expand Down Expand Up @@ -5101,7 +5101,8 @@ struct monst *mtmp;
&& !mtmp->mpeaceful
&& is_dragon(mtmp->data)
&& monsndx(mtmp->data) >= PM_GRAY_DRAGON
&& monsndx(mtmp->data) % 2 == 0) {
&& (monsndx(mtmp->data) % 2 == 0
|| mtmp->data == &mons[PM_DRAGON_ZOMBIE])) {
if (!Deaf && Underwater) {
You("hear a muffled roar.");
} else if (!Deaf && canseemon(mtmp)) {
Expand Down
33 changes: 18 additions & 15 deletions src/monst.c
Original file line number Diff line number Diff line change
Expand Up @@ -3495,9 +3495,10 @@ NEARDATA struct permonst mons[] = {
ATTK(AT_CLAW, AD_PHYS, 4, 5),
ATTK(AT_ENGL, AD_DGST, 2, 10),
ATTK(AT_NONE, AD_FIRE, 0, 1)),
SIZ(WT_DRAGON, NUT_DRAGON, MS_ROAR, MZ_GIGANTIC), MR_FIRE | MR_SONIC, MR_FIRE,
M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_SEE_INVIS | M1_OVIPAROUS
| M1_CARNIVORE,
SIZ(WT_DRAGON, NUT_DRAGON, MS_ROAR, MZ_GIGANTIC),
MR_FIRE | MR_SONIC, MR_FIRE,
M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_SEE_INVIS
| M1_OVIPAROUS | M1_CARNIVORE,
M2_HOSTILE | M2_STRONG | M2_NASTY | M2_GREEDY | M2_JEWELS | M2_MAGIC,
M3_INFRAVISIBLE | M3_TRAITOR, M4_VULNERABLE_COLD, MH_DRAGON, 30, CLR_RED),
MON("white dragon", S_DRAGON,
Expand Down Expand Up @@ -5779,18 +5780,20 @@ struct permonst _mons2[] = {
M2_WANDER | M2_HOSTILE | M2_FEMALE | M2_COLLECT | M2_MAGIC,
M3_INFRAVISION | M3_TRAITOR,
M4_VULNERABLE_FIRE, MH_UNDEAD, 20, CLR_BLACK),
MON("zombie dragon", S_ZOMBIE, /* SpliceHack */
LVL(14, 8, -1, 20, -4), (G_GENO | 1),
A(ATTK(AT_BITE, AD_PHYS, 3, 8),
ATTK(AT_CLAW, AD_PHYS, 1, 4),
ATTK(AT_CLAW, AD_PHYS, 1, 4),
NO_ATTK, NO_ATTK, NO_ATTK),
SIZ(WT_DRAGON, 1500, MS_SILENT, MZ_GIGANTIC),
MR_FIRE | MR_DRAIN | MR_SICK, 0,
M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_SEE_INVIS | M1_BREATHLESS |
M1_MINDLESS,
M2_HOSTILE | M2_STRONG | M2_NASTY | M2_MAGIC,
M3_INFRAVISIBLE, 0, MH_DRAGON | MH_UNDEAD, 17, CLR_ORANGE),
MON("dragon zombie", S_ZOMBIE, /* SpliceHack */
LVL(18, 8, -3, 20, -4), (G_GENO | 1),
A(ATTK(AT_BREA, AD_COLD, 4, 6),
ATTK(AT_BITE, AD_DRIN, 4, 8),
ATTK(AT_CLAW, AD_DRCO, 4, 4),
ATTK(AT_CLAW, AD_DRCO, 4, 4),
NO_ATTK, NO_ATTK),
SIZ(WT_DRAGON, NUT_DRAGON, MS_ROAR, MZ_GIGANTIC),
MR_SLEEP | MR_COLD | MR_FIRE | MR_POISON | MR_DRAIN | MR_SICK, 0,
M1_BREATHLESS | M1_MINDLESS | M1_POIS | M1_SEE_INVIS
| M1_FLY | M1_THICK_HIDE | M1_NOHANDS,
M2_STALK | M2_HOSTILE | M2_STRONG | M2_NASTY | M2_MAGIC,
M3_INFRAVISIBLE | M3_INFRAVISION, 0,
MH_DRAGON | MH_UNDEAD, 20, CLR_BRIGHT_MAGENTA),

/*
* golems
Expand Down
2 changes: 1 addition & 1 deletion src/read.c
Original file line number Diff line number Diff line change
Expand Up @@ -4142,7 +4142,7 @@ int mon_to_zombie(int monnum) {
return PM_GIANT_ZOMBIE;

if (is_dragon(&mons[monnum]))
return PM_ZOMBIE_DRAGON;
return PM_DRAGON_ZOMBIE;

/* Is it humanoid? */
if (!humanoid(&mons[monnum]))
Expand Down

0 comments on commit a299d34

Please sign in to comment.