| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Have it take a parameter indicating whether reflexive is allowed, and
replace existing calls to defender_name() and def_name(DESC_THE).
|
|
|
|
|
|
|
| |
Ideally, we wouldn't be using special for unrands totally different from
how items of the same type do, but that's less trivial than this commit.
A centralised place to check for being an unrand should at least make such
a change easier.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
.cc, moving its contents into the new stepdown.cc and strings.cc.
(The latter also got many donations from libutil.h.)
Down with stuff! Up the new flesh!
|
| |
|
|
|
|
|
| |
Don't use a reflexive pronoun for attacker == defender when the subject
isn't the attacker.
|
|
|
|
|
|
| |
This should make reflected needles work while preserving the old blaming
behaviour (a player reflector gets kill credit but not god blame). Needs
more thorough testing.
|
|
|
|
| |
As part of a wider scheme to make draining temporary.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
A good deal of functions move to the two new files, mon-poly and
mon-message. Of the others, some go to where they are used, some to
mon-util, and a few are made member methods of monster.
This probably breaks Xcode compilation, and I'm not able to test
the changes I made to MSVC that will (hopefully) keep it working.
|
| |
|
|
|
|
|
|
|
| |
This reverts commit 7e81480cda18144ff185f5248639a072b654deff.
Turns out I missed some calls to random_choose_weighted(), this change
might not even be worth doing.
|
|
|
|
| |
For consistency with random_choose().
|
|
|
|
|
|
|
| |
Elec and venom launchers already use the same brands, and with ranged
code more similar to melee code this change actually simplifies most
code. There should be no gameplay change though some weird brand picking
code for launchers was refactored, which might have some effect.
|
|
|
|
|
|
|
| |
When fired from a flame launcher, or vice versa.
If someone else wants to refactor the throw.cc code to
check brands at launch-time, feel free!
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now that inventory weight and player burden states are gone, item
destruction doesn't serve one purpose it clearly accomplished: help
prevent the player from being at or next to burden capacity at all
times. Outright destruction of strategic consumables encourages more
needless inventory management, so we'd like to exclude these from any
form of destruction and possibly prevent them from taking up inventory
space at all. Denial of tactical consumables, either temporarily or
permanently, is something we're going to look into later on, possibly
in the release after next, since it can create interesting and
generally not frustrating gameplay if done correctly. Needless to say,
item destruction wasn't a player favorite and may have a sparsely
attended funeral. RIP in peace.
For now we aren't adjusting the rate of consumable generation to
compensate for no item destruction, but that balancing will happen
after play-testing shows how much adjustment is necessary.
|
| |
|
|
|
|
|
|
| |
They were alerting the attacker on the impact, making the effect
completely useless; thus successfully hitting something with a needle of
sleep does not alert them.
|
|
|
|
| |
Not that they benefit from blowgun stabbing; it just seems odd.
|
|
|
|
| |
Oops.
|
| |
|
| |
|
|
|
|
| |
Oops.
|
|
|
|
| |
Darts and stones get half bonus; other throwables get the full bonus.
|
| |
|
|
|
|
| |
i.e. don't consider the weapon the player is using when throwing things.
|
|
|
|
| |
Possibly it shouldn't let you blink either, but that's for another time.
|
|
|
|
| |
Oops.
|
|
|
|
|
|
|
| |
It now has a chance to effect a stab versus a target (with the same
effects as a usual stab with a needle) even when the victim is aware.
Now that being invisible while shooting needles actually helps a bit,
the +Inv isn't quite as weird, either.
|
| |
|
|
|
|
|
|
| |
Namely, weapons smaller than large rocks have their bonus nerfed.
No darting Elf:3 to death.
|
|
|
|
|
| |
In particular, give the damage bonus for skill that was supposed to
happen with the rewrite.
|
|
|
|
|
|
|
|
| |
...by setting sling base damage to 2 and reducing the projectile damages
by 2 each.
With the new code this should be essentially identical to the current
behaviour, but a lot of the damage values might end up changing anyway.
|
|
|
|
|
| |
That is, if the needle is dealing out poison (causing !s to display),
make sure the enemy is actually poisoned.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Poisoned needles deal more poison damage; curare has its effect
amplified; duration-based needles have their durations extended (except
frenzy, possibly for now).
The needle of paralysis hits the stone giant in a vulnerable spot!!!!
This code might have some side effects based on the dur paramater of
enchant_monster_with_flavour being meaningful for the duration-base
needle enchantment types; if so, that'll need fixing.
|
|
|
|
|
| |
There are a couple of ideas for what could use this, but for now nothing
should do so.
|
|
|
|
|
|
|
|
|
|
| |
Sort of similar to how M_FIGHTER gets a melee accuracy bonus, I think
this has a place here.
The numbers are a bit complicated; the old code gave an ammoHitBonus of
random2avg(HD * 4 / 3, 2) to the beam hit which is later added to the
damage bonus. Since the randomisation here works differently the 4/3 is
straight-up added to the to_hit and randomised when added to the damage.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Launchers use the equivalent melee brand effects if the missile isn't an
elemental brand (or the attacker is Nessos).
Missiles have their own set of effects; flame, frost, and poison use
effects basically identical to weapon brands, and everything else has
its old effect back.
The lajatang of Order works again. Hooray!
|
|
|
|
|
|
|
|
|
|
| |
Moves a lot of code from melee_attack to attack to be shared with ranged
weapons.
Handles the entire basic attack process - checks to-hit, calculates
damage, prints messages as necessary.
TODO: attack delay, brands.
|
| |
|
|
TODO: tie this up to the beam code; move shared code between melee and
ranged to plain attack; write ranged-specific code.
|