gold dragon and scales
Add two new monsters and two new objects: gold dragon baby gold dragon gold dragon scale mail set of gold dragon scales A couple of variants seem to have added these already, but this came off my ancient list of monsters to add and was done from scratch. It's a clone of silver dragon, but instead of having reflection and breathing cold, a gold dragon emits light and breathes fire; because of the latter it can be seen with infravision like a red dragon. Adult gold dragons are lawful as in the AD&D Monster Manual rather than chaotic as the wiki pages show for the variant versions. Worn gold dragon scales operate similar to wielded Sunsword: when blessed, radius is 3 (same as a lamp), if uncursed, radius is 2, and if cursed, radius is 1 (but functions as 2 when worn by the hero, otherwise there would be no tangible effect). Gold dragon scale mail gets an extra +1, making blessed gold DSM have a bigger radius than lamps. Embedded scales have radius 1 regardless of BUC state; light for that case comes from the gold dragon monster form the hero is in. When not worn, gold scales and scale-mail don't emit any light. The tiles use a mix of yellow (for gold) and red. The two object tiles seem reasonable variations of the corresponding silver dragon ones. The two monster tiles definitely need work since the silver ones were mostly cyan and changing that to red did not produce very good result; subsequent attempt at a mixture was haphazard at best.
This commit is contained in:
@@ -1338,6 +1338,7 @@ extern struct obj *rnd_treefruit_at(int, int);
|
||||
extern void set_corpsenm(struct obj *, int);
|
||||
extern long rider_revival_time(struct obj *, boolean);
|
||||
extern void start_corpse_timeout(struct obj *);
|
||||
extern void maybe_adjust_light(struct obj *, int);
|
||||
extern void bless(struct obj *);
|
||||
extern void unbless(struct obj *);
|
||||
extern void curse(struct obj *);
|
||||
|
||||
@@ -197,10 +197,15 @@
|
||||
#define emits_light(ptr) \
|
||||
(((ptr)->mlet == S_LIGHT || (ptr) == &mons[PM_FLAMING_SPHERE] \
|
||||
|| (ptr) == &mons[PM_SHOCKING_SPHERE] \
|
||||
|| (ptr) == &mons[PM_BABY_GOLD_DRAGON] \
|
||||
|| (ptr) == &mons[PM_FIRE_VORTEX]) \
|
||||
? 1 \
|
||||
: ((ptr) == &mons[PM_FIRE_ELEMENTAL]) ? 1 : 0)
|
||||
/* [note: the light ranges above were reduced to 1 for performance...] */
|
||||
: ((ptr) == &mons[PM_FIRE_ELEMENTAL] \
|
||||
|| (ptr) == &mons[PM_GOLD_DRAGON]) ? 1 : 0)
|
||||
/* [Note: the light ranges above were reduced to 1 for performance,
|
||||
* otherwise screen updating on the plane of fire slowed to a crawl.
|
||||
* Note too: that was with 1990s hardware and before fumarole smoke
|
||||
* blocking line of sight was added, so might no longer be necessary.] */
|
||||
#define likes_lava(ptr) \
|
||||
(ptr == &mons[PM_FIRE_ELEMENTAL] || ptr == &mons[PM_SALAMANDER])
|
||||
#define pm_invisible(ptr) \
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
* Incrementing EDITLEVEL can be used to force invalidation of old bones
|
||||
* and save files.
|
||||
*/
|
||||
#define EDITLEVEL 35
|
||||
#define EDITLEVEL 36
|
||||
|
||||
/*
|
||||
* Development status possibilities.
|
||||
|
||||
Reference in New Issue
Block a user