Commit Graph

33 Commits

Author SHA1 Message Date
cohrs
559be58c21 conflicting delayed killers
Introduce a new set of functions to manage delayed killers in the trunk, used
in addressing the various reports of delayed killer confusion.  Since existing
delayed killers are related to player properties, the delayed killers are
keyed by uprop indexes.  I did this to avoid adding yet another set of
similar identifiers.
- the new delayed_killer() is used for stoning, sliming, sickness, and
delayed self-genocide while polymorphed.  Some other timed events don't
use it (and didn't use the old delayed_killer variable) because they
use a fixed message when the timeout occurs.
- A new data structure, struct kinfo, is used to track both delayed and
immediate killers.  This encapsulates all the info involved with
identifying a killer.  The structure contains a buffer, which subsumes the
old killer_buf and several other buffers that didn't/couldn't use killer_buf.
- the killer list is saved and restored as part of the game state.
- the special case of usick_cause was removed and a delayed killer list
entry is now used in its place
- common code dealing with (un)sliming is moved to a new make_slimed function
- attempted to update all make dependencies for new end.c -> lev.h
dependency, sorry if I messed any up
2003-09-29 19:24:20 +00:00
nethack.allison
22ce5ed6f2 trunk only: preserving context (src files)
Pat Rankin wrote:
> collect them all into some new struct and
> save that separately rather than jamming more non-option stuff
> into struct flags.

This patch:
- collects all context/tracking related fields from flags
  into a new structure called "context."
It also adds the following to the new structure:
- stethoscope turn support
- victual support
- tin support
2003-09-21 11:52:54 +00:00
nethack.allison
416412f92b Remove vestiges of old overlay source split
[trunk only]
2003-09-05 02:45:18 +00:00
cohrs
3444083f28 monster hp loss with Stormbringer
<Someone> forwarded from rgrn that a monster using Stormbringer would
lose hp when hitting the player.  The sign of the "gain" was reversed due
to subtracting the difference in the wrong order.
2003-09-02 03:48:34 +00:00
nethack.rankin
83199788f8 grammar bit: fix "the Eyes of the Overworld is ignoring you" 2003-08-12 06:37:42 +00:00
cohrs
00c666a80f B04001 - Staff of Aesclepius message while swallowed
Since cansee() is false for all locations while swallowed, need to test if
the monster being hit is the one that swallowed you to ensure that various
artifact hit messages, including the DRLI message, are printed.
2003-07-01 01:33:42 +00:00
cohrs
b115b536c1 B03005 - canceling monster redux
Revert the code, but add a comment. The behavior is not obvious to everyone.
2003-05-25 17:21:21 +00:00
cohrs
1d2b62de95 B03005 - Canceling monsters
Since monster cancellation sticks, it doesn't makes sense for Magicbane to
cancel a monster more than once.  Tweaked the messages to deal with this fact.
I decided to not make Magicbane's random effect "intelligent", which is what
changing it to use some other attack against a canceled monster would be.
2003-05-25 03:47:31 +00:00
nethack.rankin
4496ca3d85 fix B18012 - Werebane
Make wielding Werebane confer defense against catching lychanthropy
from monster bites.  It doesn't protect against catching that from eating
lycanthrope corpses and might blast the character if wielded at such time.

     Also fix artifact handling to recognize the character as lycanthrope
while in normal human/elf/whatever form--rather than only when in beast
form--just like it does for monsters.
2003-02-14 01:06:08 +00:00
nethack.rankin
97cd4c2ef7 magicbane tweaks
Update the comments to [try to] more accurately describe the behavior.
Also add hallucination handling and make the probe effect be more likely
to occur (or to put it another way, make the stun effect be less likely
since one or the other always takes place--except when stun is superseded
by something more severe).
2003-02-11 10:10:17 +00:00
nethack.rankin
6c1d28753c magicbane fixes
Revamp the Magicbane code so that it won't result in "<monster>
turns to flee" followed by "the magic-absorbing blade scares <monster>".
In the process I noticed that resistance checks for its scare and purge
effects were based on the character's experience level regardless of who
was wielding it or who its target was.

     I didn't try to retain the exact behavior it had before, but the
new behavior is pretty close.  The main differences are that the "purge"
effect is now called "cancel" and that the stun effect will be less
common now and always gives feedback when it occurs.  It used to combine
stun with scare and/or purge in some cases, now it won't; and it used to
always scare when purging, now it will pick one or the other.
2003-02-10 11:08:29 +00:00
nethack.rankin
df07fd4b90 fix buglist entry - artifact bow wielded by monsters
The Longbow of Diana (ranger quest artifact) confers reflection
to the hero when wielded but didn't do the same for monsters when they
wielded it.
2002-12-27 03:40:57 +00:00
nethack.rankin
0b2e205117 artifact invisibility fixes
Invoking the archeologist's Orb of Detection gave "you feel a surge
of power, but nothing seems to happen" if you were able to see invisible,
but various other ways of toggling invisibility give fade/unfade messages
in that situation.  Also, you would get false reports of invisibility
changes if you invoked the artifact while temporarily invisible due to
potion or spell or while wearing a mummy wrapping.
2002-12-19 02:24:13 +00:00
nethack.rankin
a0067f97e2 luck artifact dependencies
Instead of adding a new artifact.h to pray.c, remove the existing
ones from attrib.c, invent.c, and mkobj.c.  This also updates the Unix
and VMS editions of Makefile.src; having stale dependencies in those
for other ports could cause unnecessary recompilation but can't break
anything in this case.
2002-10-09 07:06:08 +00:00
nethack.rankin
d10d1045bc fix B13008 - Mjollnir messages
Condense the two artifact hit messages a bit so that fighting
with Mjollnir isn't quite so verbose.  And make the same change for
the non-existant magic missile launching artifact(s).
2002-10-08 07:19:45 +00:00
nethack.allison
9ac2c2c576 <email deleted>
> I'm working on a Nethack port, and one of the header files a
> library uses has a structure with a member named "red". Since
> includes/decl.h #defines red to something, this totally loses.
>
> Attached is a patch which fixes the color defines.
2002-09-06 00:12:44 +00:00
nethack.allison
fc319a4be0 string constants
<Someone> wrote:
> Linux, Redhat 7.1 nethack 3.4.0
>
>Please see attached patch file.
>
>I'm attempting to move more stuff into the "read-only" area, in
>preparation for a port to another OS.
2002-08-20 08:05:20 +00:00
nethack.allison
3c227928f9 function name format
From <Someone>:
[functions that don't start in leftmost column ]

apply.c:int unfixable_trouble_count(is_horn)
artifact.c:void arti_speak(obj)
botl.c:int xlev_to_rank(xlev)
botl.c:int rank_to_xlev(rank)
display.c:void map_location(x,y,show)
hack.c:static void findtravelpath()
hack.c:void unmul(msg_override)
hack.c:long money_cnt(otmp)
mklev.c:CFDECLSPEC do_comp(vx,vy)
pickup.c:long carry_count(obj, container, count, telekinesis, wt_before, wt_after)
pickup.c:boolean mon_beside(x,y)
shk.c:long money2mon(mon, amount)
shk.c:boolean same_price(obj1, obj2)
shk.c:void finish_paybill()
trap.c:boolean delfloortrap(ttmp)
weapon.c:void give_may_advance_msg(skill)
do_name.c:char *coyotename(mtmp, buf)

(This with a pruned 'egrep '^[[:alnum:]]+ .*\(.*\)$' *.c' in src/; I
haven't looked outside that directory, but generally speaking once you
go beyond there you're widening your search anyway.)
2002-08-12 22:24:05 +00:00
nethack.rankin
9fa85b109b artifact manipulation
Fix an item from <Someone>'s list:  invoking or applying an
artifact might blast you; if it evades your grasp, the intended
action won't take place but will still use up a turn.
2002-08-01 23:20:34 +00:00
cohrs
0823cb41be R1024 - Eyes of the Overworld effect delayed
The effect of the EOTO did not take effect until the next move.
Added a vision_full_recalc as suggested to resolve the problem.
2002-07-31 16:47:49 +00:00
cohrs
761164a30f Staff of Aesculapius didn't always cure sliming
- incorporated <Someone>'s 1-line fix to the precheck
2002-05-21 16:14:36 +00:00
nethack.rankin
db95c38e20 Mjollnir fix
Fix one of the problems From a bug report:  Mjollnir is only
giving the intended feedback when it is thrown.  Against ordinary
monsters the problem isn't too bad--you get a lightning message
without the preceding hit message--but against resistant ones there
is no message at all when you hit hand-to-hand.  (There is a similar
bug for artifacts which add magic missile damage, but since no such
artifacts exist that isn't much of a problem. :-)
2002-03-23 04:37:02 +00:00
nethack.rankin
163f394fbe monster use of artifacts
From the newsgroup:  some of the fake player monsters on the
astral level were unable to use artifacts that they were created
with due to alignment mismatch.  Rather than try to adjust the
artifact creation of only select matching items, this patch lets
them handle artifacts when alignments differ (more or less like
the player; monsters don't occasionally get blasted though).

     This also restores chaotic monsters with the ability to use
Stormbringer; I'm not sure how long that has been broken.  It also
gives lawful ones the ability to use Excalibur.
2002-02-24 06:12:57 +00:00
nethack.rankin
6f90e5bc8c Another artifact damage update
Make being hit by an artifact which does fire, cold, or
lightning (or magic missiles, since the code is there) affect
inventory even when the target resists the damage him-/her-/itself.
This removes the need for the redundant fire vs slime handling that
I put in yesterday.  Unfortunately it also means that Valkyries who
throw Mjollnir will inevitably end up destroying all their mettalic
wands and rings, so I reduced the chance of it hitting upon its
return.
2002-02-23 10:55:43 +00:00
nethack.rankin
6ce22770c9 Fire Brand vs sliming
Being hit by Fire Brand now stops the sliming process if you're
being turned into green slime.  And throwing an artifact up will give
artifact hit effects when it falls back down, making it possible to
hit yourself with Fire Brand (among other things).  Hitting yourself
with Vorpal Blade or the Tsurugi of Muramasa will never behead or
bisect you; hitting yourself with Stormbringer will drain levels.
(I hope the latter doesn't make it too easy for players to manipulate
their experience level.)

     This doesn't add artifact_hit() handling to mthrowu.  If monsters
ever start throwing artifacts that will need to be added.
2002-02-22 03:51:14 +00:00
cohrs
d645467f40 permanent inventory window updates
Addresses the follwing missing updates:
- Quest Artifact identification by Quest Leader.
- Rust damage from a rust trap.
- Remove curse as a result of prayer (both fixing TROUBLE_CURSED_* and
  the blessed-remove-curse boon.)
- Charging via PYEC
2002-02-19 05:10:31 +00:00
cohrs
cf37a7bac0 verb agreement
add and use new APIs, Tobjnam, otense and vtense, is_plural
to determine tense/form of verbs and a few pronouns as well
2002-02-09 00:16:35 +00:00
nethack.allison
06528d1002 3.3.2 to 3.4.0 2002-02-04 16:06:00 +00:00
arromdee
1a72729895 artifact.c comment 2002-02-04 04:01:47 +00:00
cohrs
f057848eea address compilation warnings from gcc 2002-02-03 07:15:26 +00:00
kmhugo
532242f07f Artifact prices
Each artifact has its own individual price, rather than being solely
based on the cost of its base item.
2002-02-02 19:21:33 +00:00
arromdee
b09c3e2e69 Fixing a buglist bug. Also changing an unrelated buglist item a bit (it was
mine to begin with, I thought I had a way to fix it but it turns out I didn't,
so I was researching it again).

Checked into CVS.
2002-01-13 20:37:18 +00:00
jwalz
2120bc7098 *** empty log message *** 2002-01-05 21:05:48 +00:00