heat metal spell is way too strong, instakilled my char with 50-60 hp. Reduce heat duration from 3-6 turns to 1-2 turns.
This commit is contained in:
parent
39160a7c24
commit
f9a03e40e6
2
data.c
2
data.c
|
@ -4026,7 +4026,7 @@ void initobjects(void) {
|
|||
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Spell power determines how long the magnetic shield will last.");
|
||||
addflag(lastot->flags, F_SPELLSCHOOL, SS_ALLOMANCY, NA, NA, NULL);
|
||||
addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL);
|
||||
addot(OT_S_HEATMETAL, "heat metal", "Causes all metal in the target area to become red hot.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
||||
addot(OT_S_HEATMETAL, "heat metal", "Causes all metal in the target area to become red hot for 1-2 turns.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
||||
addflag(lastot->flags, F_SPELLSCHOOL, SS_ALLOMANCY, NA, NA, NULL);
|
||||
addflag(lastot->flags, F_SPELLSCHOOL, SS_FIRE, NA, NA, NULL);
|
||||
addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL);
|
||||
|
|
2
io.c
2
io.c
|
@ -6718,7 +6718,7 @@ char *makedesc_ob(object_t *o, char *retbuf) {
|
|||
} else {
|
||||
snprintf(buf, BUFLEN, "It is in perfect condition.");
|
||||
}
|
||||
if (playerknowsobhp(o)) { // show exact hp numbers
|
||||
if (obhpknown(o)) { // show exact hp numbers
|
||||
int pct;
|
||||
pct = (int)(((float)f->val[0] / (float)f->val[1]) * 100.0);
|
||||
snprintf(hpbuf, BUFLEN, " [%d%%, %d/%d hp]", pct, f->val[0], f->val[1]);
|
||||
|
|
24
lf.c
24
lf.c
|
@ -25709,12 +25709,17 @@ int real_touch(lifeform_t *lf, object_t *o, int onpurpose) {
|
|||
*/
|
||||
|
||||
// flaming or red-hot objects?
|
||||
if (!isimmuneto(lf->flags, DT_FIRE, B_FALSE)) {
|
||||
int resistant = B_FALSE;
|
||||
if (!isimmuneto(lf->flags, DT_FIRE, B_FALSE)) { // only check for DT_FIRE, no such thing as 'heat resistance'
|
||||
int resistant = B_FALSE,equipped = B_FALSE;
|
||||
if (isresistantto(lf->flags, DT_FIRE, B_FALSE)) {
|
||||
resistant = B_TRUE;
|
||||
}
|
||||
|
||||
// if 'onpurpose = false' and it's equipped, then really the object it touching us.
|
||||
if (isequipped(o) && (o->pile->owner == lf) && !onpurpose) {
|
||||
equipped = B_TRUE;
|
||||
}
|
||||
|
||||
getflags(o->flags, retflag, &nretflags, F_ONFIRE, F_HOT, F_NONE); // IMPORTANT - check ONFIRE first!
|
||||
for (i = 0; i < nretflags; i++) {
|
||||
f = retflag[i];
|
||||
|
@ -25742,9 +25747,20 @@ int real_touch(lifeform_t *lf, object_t *o, int onpurpose) {
|
|||
f->known = B_TRUE;
|
||||
getobname(o, obname, o->amt); // get name again after making flag known
|
||||
if (isplayer(lf)) {
|
||||
msg("^bOw! You burn your hands on %s.",obname);
|
||||
if (equipped) {
|
||||
char burnbuf[BUFLEN];
|
||||
sprintf(burnbuf, "%s burns you!", obname);
|
||||
capitalise(burnbuf);
|
||||
msg("^b%s",burnbuf);
|
||||
} else {
|
||||
msg("^bOw! You burn your hands on %s.",obname);
|
||||
}
|
||||
} else if (cansee(player, lf)) {
|
||||
msg("%s burns %sself on %s.",lfname, it(lf), obname);
|
||||
if (equipped) {
|
||||
msg("%s%s %s burns %s!", lfname, getpossessive(lfname), noprefix(obname), it(lf));
|
||||
} else {
|
||||
msg("%s burns %sself on %s.", lfname, it(lf), obname);
|
||||
}
|
||||
}
|
||||
snprintf(buf, BUFLEN, "touching %s",obname);
|
||||
if (f->id == F_ONFIRE) {
|
||||
|
|
|
@ -9816,6 +9816,7 @@ int obgoesinbones(object_t *o) {
|
|||
|
||||
|
||||
int obhpknown(object_t *o) {
|
||||
int showfullhp = B_FALSE;
|
||||
if (isarmour(o) && getskill(player, SK_ARMOUR)) {
|
||||
showfullhp = B_TRUE;
|
||||
} else if (isshield(o) && getskill(player, SK_SHIELDS)) {
|
||||
|
@ -9826,6 +9827,7 @@ int obhpknown(object_t *o) {
|
|||
getskill(player, SK_SEWING)) {
|
||||
showfullhp = B_TRUE;
|
||||
}
|
||||
return showfullhp;
|
||||
}
|
||||
|
||||
enum DAMTYPE oblastdamtype(object_t *o) {
|
||||
|
|
4
spell.c
4
spell.c
|
@ -8313,7 +8313,7 @@ int dospelleffects(lifeform_t *caster, enum OBTYPE spellid, int power, lifeform_
|
|||
if (cansee(player, target)) {
|
||||
if (seenbyplayer) *seenbyplayer = B_TRUE;
|
||||
}
|
||||
makehot(o, amt, rnd(3,6));
|
||||
makehot(o, amt, rnd(1,2));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -8343,7 +8343,7 @@ int dospelleffects(lifeform_t *caster, enum OBTYPE spellid, int power, lifeform_
|
|||
if (seenbyplayer) *seenbyplayer = B_TRUE;
|
||||
donesomething = B_TRUE;
|
||||
}
|
||||
makehot(o, amt, rnd(3,6));
|
||||
makehot(o, amt, rnd(1,2));
|
||||
if (isplayer(caster)) {
|
||||
char obname[BUFLEN];
|
||||
getobname(o, obname, o->amt);
|
||||
|
|
Loading…
Reference in New Issue