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:
26
src/light.c
26
src/light.c
@@ -775,6 +775,8 @@ candle_light_range(struct obj *obj)
|
||||
int
|
||||
arti_light_radius(struct obj *obj)
|
||||
{
|
||||
int res;
|
||||
|
||||
/*
|
||||
* Used by begin_burn() when setting up a new light source
|
||||
* (obj->lamplit will already be set by this point) and
|
||||
@@ -789,20 +791,34 @@ arti_light_radius(struct obj *obj)
|
||||
/* cursed radius of 1 is not noticeable for an item that's
|
||||
carried by the hero but is if it's carried by a monster
|
||||
or left lit on the floor (not applicable for Sunsword) */
|
||||
return (obj->blessed ? 3 : !obj->cursed ? 2 : 1);
|
||||
res = (obj->blessed ? 3 : !obj->cursed ? 2 : 1);
|
||||
|
||||
/* if poly'd into gold dragon with embedded scales, make the scales
|
||||
have minimum radiance (hero as light source will use light radius
|
||||
based on monster form); otherwise, worn gold DSM gives off more
|
||||
light than other light sources */
|
||||
if (obj == uskin)
|
||||
res = 1;
|
||||
else if (obj->otyp == GOLD_DRAGON_SCALE_MAIL) /* DSM but not scales */
|
||||
++res;
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
/* adverb describing lit artifact's light; depends on curse/bless state */
|
||||
/* adverb describing lit artifact's light; radius varies depending upon
|
||||
curse/bless state; also used for gold dragon scales/scale mail */
|
||||
const char *
|
||||
arti_light_description(struct obj *obj)
|
||||
{
|
||||
switch (arti_light_radius(obj)) {
|
||||
case 4:
|
||||
return "radiantly"; /* blessed gold dragon scale mail */
|
||||
case 3:
|
||||
return "brilliantly"; /* blessed */
|
||||
return "brilliantly"; /* blessed artifact, uncursed gold DSM */
|
||||
case 2:
|
||||
return "brightly"; /* uncursed */
|
||||
return "brightly"; /* uncursed artifact, cursed gold DSM */
|
||||
case 1:
|
||||
return "dimly"; /* cursed */
|
||||
return "dimly"; /* cursed artifact, embedded scales */
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user