Angband Forums

Angband Forums (http://angband.oook.cz/forum/index.php)
-   Vanilla (http://angband.oook.cz/forum/forumdisplay.php?f=3)
-   -   Issues on current master (http://angband.oook.cz/forum/showthread.php?t=8363)

Nick April 23, 2017 01:54

Issues on current master
 
I have now collected all (I think) the bugs on the old thread, and put them on the bugtracker. Note that there has been an update to the new status effects since any issues with them have been reported, so I am not currently counting anything related to them as a bug.

Please report new issues on this thread now; checking that bug list to see if your bug is already reported would be helpful too.

I am hoping to get some of the worst ones (like the repeated randart bug) fixed fairly soon; I will report here as new builds go up.

Nomad April 23, 2017 03:20

With the pathfinding changes, breeders now seem to wake up and start breeding explosively before you're even close enough to see them. I'm wandering the early levels at the moment and keep running into sections overrun by big mobs of mice.

Nick April 23, 2017 04:29

Quote:

Originally Posted by Nomad (Post 120268)
With the pathfinding changes, breeders now seem to wake up and start breeding explosively before you're even close enough to see them. I'm wandering the early levels at the moment and keep running into sections overrun by big mobs of mice.

OK, I probably need to either make them sleep longer, or nerf their hearing. Or both.

t4nk April 23, 2017 05:52

monster_can_hear_or_smell():
Code:

        if (mon->race->smell > cave->scent.grids[mon->fy][mon->fx]) return true;
Scent is mem_zalloc'ed, so I think you need to check that it's not 0 here.
edit: and, I guess, the noise too?

Gwarl April 23, 2017 12:37

Didn't see this thread, I'll just copy/paste part of what I posted on the other one:

Quote:

My gnome rogue died after I a) dropped my scrolls of satsify hunger after learning the spell b) quaff-ID'd salt water c) chain paralyzed by hunger before I could make it back to where I dropped my scrolls. So I never got telepathy and couldn't really see how the pathfinding was working. I feel like explosive breeders were a lot more of a pain but I'm not sure. I also feel like I've been getting high level devices earlier more often when playing the nightlies - in this case a staff of speed and a rod of drain life (!) by DL20.

I appreciate the efforts made toward rebalancing the status effects but there are still a lot of problems:

The usefulness of confuse monster is very slight, you might get one or two free moves before it wears off. This one has changed from 'don't bother it won't work' to 'don't bother it won't help'.

Reduced charges in the wands basically just translates to slightly higher carry weights and more combing (although I didn't really stop to comb and I built up sufficient charges simply by carrying more of the things). Additionally, there's been no corresponding reduction in max charges for staves - slow monster wand now has around 3 charges but the staff still has 5.

It's done nothing to change the fact that there's still a battle script for any tough encounter of slow+stun.

Like I said before, no-save status effects have drastic cascading effects on gameplay, they'll remain overpowered until they're nerfed to the point of uselessness (like confuse monster is at present) and any attempt to find a happy medium will just lead to tedium as you're forced to do more to get your slight advantage. Like lowering the number of charges in wands - finding fairly common wands isn't particularly dangerous or difficult (i.e. fun/challenging), simply making the player do it more often is just requiring more grind, not solving the issue of no-save status effects inevitably leading to a battle script which reduces the difficulty of tough encounters. You'd have to buff all the uniques by about half the amount status effects they aren't immune to nerf them by, and all that does is get you back where you started with more keystrokes.

I appreciate the willingness to try new things but in this case I really think the wisest course is to roll back the status effect changes and at least put them on ice until after 4.1, because all the other changes from 4.0.5 have been great and it would be a shame to see it undermined by breaking this mechanic so completely.
Note that my complaining about status effects here is on a build after the rebalncing a few days ago. I remain convinced that negative status effects require a save not to break the gameplay, and that even if I'm wrong there it's going to be extremely difficult to get a system like this right.

Sky April 23, 2017 19:26

i also notice a *much* larger number of breeders.

EDIT: are any of the older nightlies being kept? for example, say, 638-g1-dce88. it was stable and didnt have the same-artifact bug which is all the newer releases.
i'm looking here: http://rephial.org/nightlies but can only find back to march 19.

i can't tell if there is a major difference in pathing, but i'm under the impression that i can kite mobs easier, now.

Patashu April 24, 2017 00:20

I guess what would balance status effects is if you had to decide on investing in status effects vs investing in other stuff. But having to dedicate an inventory slot to status effects isn't enough of a tradeoff, the drawback is always smaller than the benefit. If the tradeoff was like 'your melee attacks are worse, but you can reliably land confuse on enemies' then it would be more of a meaningful decision. (Maybe Crawl's design philosophy should be an inspiration here.)

Nick April 24, 2017 00:27

Quote:

Originally Posted by Sky (Post 120289)
are any of the older nightlies being kept? for example, say, 638-g1-dce88. it was stable and didnt have the same-artifact bug which is all the newer releases.
i'm looking here: http://rephial.org/nightlies but can only find back to march 19.

Here is the full list, more recent ones at the top.

Nick April 24, 2017 02:41

OK, new builds up on the nightlies page. These probably will break your savefile.

Changes:
  • Fix to repeated randart bug;
  • A 4.0.5 lore file can now be used (although it will be rewritten so it can't be read by 4.0.5 any more);
  • Experimental change to waking up which should fix the breeder issue, but please report how the balance of stealth compares to the pre-pathfinding-change setup.

Gwarl April 24, 2017 07:20

Quote:

Originally Posted by Patashu (Post 120294)
I guess what would balance status effects is if you had to decide on investing in status effects vs investing in other stuff. But having to dedicate an inventory slot to status effects isn't enough of a tradeoff, the drawback is always smaller than the benefit. If the tradeoff was like 'your melee attacks are worse, but you can reliably land confuse on enemies' then it would be more of a meaningful decision. (Maybe Crawl's design philosophy should be an inspiration here.)

Angband isn't crawl and with good reason.

The fix is to allow monsters a save. That's it.

Sky April 24, 2017 07:56

Did you increase the drop ratio? I found a steady stream of OOD gear. Westernesse from a DL2 kobold, PDSM craftsmanship DL32, dwarven mail, RoS +5 .. a whole bunch of 9-9 and 8-9 levels.

Pete Mack April 24, 2017 09:24

Consider: One, probability is a factor which operates *within* natural forces. Two, probability is *not* operating as a factor. Three, we are now held within un-, sub- or super-natural forces. Discuss.
Quote:

Originally Posted by Sky (Post 120299)
Did you increase the drop ratio? I found a steady stream of OOD gear. Westernesse from a DL2 kobold, PDSM craftsmanship DL32, dwarven mail, RoS +5 .. a whole bunch of 9-9 and 8-9 levels.


takkaria April 24, 2017 10:09

Quote:

Originally Posted by Gwarl (Post 120282)
I appreciate the efforts made toward rebalancing the status effects but there are still a lot of problems: [...]

Thanks for the feedback. I'm going to think on this a little bit more, and if I can't come up with anything else, I'll turn on saving throws for all monster status effects again. If that still doesn't play well, I'll back out the changes. And if the changes around status effects are broken by the time Nick wants to release 4.1, they won't go in that release - so please don't worry about 4.1 being broken because of this tinkering.

PowerWyrm April 24, 2017 12:39

The initial problem was that saving throw formula was too restrictive, which was changed. So maybe just stick with the new formula for all effects and reintroduce the saving throws? Also removing the wands from shop 6 would help.

Sky April 24, 2017 13:40

Lets take a page out of rolemaster and use a similar formula.
The following are factors - actual values need to be playtested:
1. Inherent spell level
2. Caster level
3. Target level
4. Specific resistance
5. Random die roll

If the result is over a certain value, you get full spell effect. ( rm also had criticals..)
Below a minimum, no effect, and in a range, variable partial effect.

1 doesnt need to be exactly the casting level, it can be a modifier a specific spell has (e.g. "annihilate" +20).

Obviously, this approach requires a whole lot more coding...

This way, instead of having spells have no/rarely effect, or always effect and thus OP, you generally have a partial effect (e.g. light stun, 2 round confusion, slowed -3, etc) with occasionally either full status or none at all.

The stronger you are (and weaker the target) the more likely a full effect, with the opposite also true.

Derakon April 24, 2017 15:58

Quote:

Originally Posted by takkaria (Post 120301)
Thanks for the feedback. I'm going to think on this a little bit more, and if I can't come up with anything else, I'll turn on saving throws for all monster status effects again. If that still doesn't play well, I'll back out the changes. And if the changes around status effects are broken by the time Nick wants to release 4.1, they won't go in that release - so please don't worry about 4.1 being broken because of this tinkering.

What do you think about the idea, previously brought up, of replacing the status effect wands with throwable potions? Then they're inherently one-shot abilities that you aren't able to spam on every fight.

takkaria April 24, 2017 17:20

Quote:

Originally Posted by Derakon (Post 120305)
What do you think about the idea, previously brought up, of replacing the status effect wands with throwable potions? Then they're inherently one-shot abilities that you aren't able to spam on every fight.

I am not super keen on adding the infrastructure to make potions have effects on hit, so I'd be more tempted to make them scrolls.

Pete Mack April 24, 2017 17:37

It doesn't have to be a throwing effect:
Potion of Hound's Breath (Vibration) for stunning
Potion of Hound's Breath (Inertia) for slowing
Potion of Dragon's breath (Bronze) for confusion

Quote:

Originally Posted by takkaria (Post 120306)
I am not super keen on adding the infrastructure to make potions have effects on hit, so I'd be more tempted to make them scrolls.


Derakon April 24, 2017 17:45

Quote:

Originally Posted by Pete Mack (Post 120307)
It doesn't have to be a throwing effect:
Potion of Hound's Breath (Vibration) for stunning
Potion of Hound's Breath (Inertia) for slowing
Potion of Dragon's breath (Bronze) for confusion

Though these would implicitly be conic area-of-effect, which would probably be too strong.

Quote:

Originally Posted by takkaria
I am not super keen on adding the infrastructure to make potions have effects on hit, so I'd be more tempted to make them scrolls.

As far as I'm aware we don't currently have any bolt-effect scrolls, since that was traditionally reserved for wands and rods. That feels kind of odd to me, though it could be worth trying for playtesting purposes if nothing else -- it'd replicate the gameplay impact of throwable potions without the infrastructural changes.

I guess another workaround would be to add a NO_RECHARGE flag to wands that causes them to be destroyed when their last charge is used up. That might interact oddly with charge pooling (when wands are combined in stacks and their charges "merge") though.

Nomad April 24, 2017 18:32

Quote:

Originally Posted by Derakon (Post 120308)
As far as I'm aware we don't currently have any bolt-effect scrolls, since that was traditionally reserved for wands and rods. That feels kind of odd to me, though it could be worth trying for playtesting purposes if nothing else -- it'd replicate the gameplay impact of throwable potions without the infrastructural changes.

Maybe the equivalent of a scroll of Monster Confusion, where it affects the next monster you melee? Or an area effect scroll that only affects directly adjacent monsters?

gameplay appreciator April 24, 2017 18:46

I think the right take on the previous situation of having a large number of wands and such that effectively do nothing was not to try to make them do something, but instead to get rid of them so that you're not seeing so much junk in the dungeon. Giving the player even more types of powerful consumables doesn't improve the game. The player needs nerfs, not buffs.

Sky April 24, 2017 18:53

i think we are looking into giving both player and also everything else buffs, in varying amounts.

Derakon April 24, 2017 19:06

Quote:

Originally Posted by gameplay appreciator (Post 120310)
I think the right take on the previous situation of having a large number of wands and such that effectively do nothing was not to try to make them do something, but instead to get rid of them so that you're not seeing so much junk in the dungeon. Giving the player even more types of powerful consumables doesn't improve the game. The player needs nerfs, not buffs.

What we want to do is to give the player more meaningful options. This can be accomplished both by giving them more tools, and by taking tools that are too dominant away. For example, I believe all this is leading up to the removal of Teleport Other and other cheap unlimited teleportation.

(That will, incidentally, probably require removing some tools from monsters as well; mass- and chain-summoning being the most obvious problems)

Replacing the wands with more equivalents to the Scroll of Monster Confusion gets my vote as a simple solution that we can probably do right now. The only problem with it is that now applying a status effect requires two turns -- one to read the scroll, one to hit the monster. But that can easily be handled by balancing the power of the status effects, which is something we're working on anyway. Maybe down the road we can add chuckable potions that apply a weaker (or shorter-duration) status effect but only require one turn to use.

gameplay appreciator April 24, 2017 19:07

Improving monster behavior, e.g. reducing their extreme susceptibility to stealth, better pathing/AI (which seems to be happening), is good. You got to stretch out the timescale encounters evolve on. Axe the high impact, instant effects (summoning, banishment, all kinds of teleportation, destruction). Reduce the player's control over situations. No-save monster statuses go the wrong way on that.

edit: didn't see the derakon post before hitting post. Teleport other removal sounds good.

Gwarl April 24, 2017 19:36

Actually I think teleport other is a great candidate for allowing a monster save.

I just want to say that in 4.0.5 status effect wands/spells aren't completely useless, they just pale in comparison to hitting things with your sword in most instances.

Gwarl April 24, 2017 20:23

Two clarifications on the minor build issues I reported in the last thread -

The build process creates 'score' and 'save' directories in /lib/user/ but the game looks for them in /lib/

running version.sh in /scripts/ doesn't seem to create a version file in the root directory.

Nick April 24, 2017 22:43

From the old thread:
Quote:

Originally Posted by PowerWyrm (Post 120302)
IMO the monster list revamp should be left out for 4.1, which already has a ton of new features, especially if it's gonna impact the list drastically.

You are probably right, but I'm probably going to ignore that :)

Although I have just looked at my original plan post, and monster list is firmly under 4.2. I will consider further. What do others think?

Sky April 24, 2017 22:45

back to the bugs.

if i try to squelch a cursed weapon, such as Sword (+0,+0) [cursed] i will get the message "squelch all non artifact swords?" because the game sees the cursed sword as an Ego weapon.

Nick April 24, 2017 22:53

Quote:

Originally Posted by Derakon (Post 120312)
What we want to do is to give the player more meaningful options. This can be accomplished both by giving them more tools, and by taking tools that are too dominant away. For example, I believe all this is leading up to the removal of Teleport Other and other cheap unlimited teleportation.

(That will, incidentally, probably require removing some tools from monsters as well; mass- and chain-summoning being the most obvious problems)

I have no plans at this point to remove teleport other or summoning. My feeling is that they support one of Angband's distinguishing features: things happen suddenly, and the player needs to react quickly.

Gwarl April 24, 2017 23:03

Quote:

Originally Posted by Nick (Post 120319)
From the old thread:


You are probably right, but I'm probably going to ignore that :)

Although I have just looked at my original plan post, and monster list is firmly under 4.2. I will consider further. What do others think?

I don't mind waiting for the monster list, but I think once pathfinding has been worked out the changes that have gone in since 4.0.5 (sans status effects :p) justify a new minor version. In particular I think the new ID system and the curses are strokes of brilliance.

Although that does remind me, remove curse has some strange behaviour where you can remove unidentified curses sometimes and not others, which acts as a free pseudo-ID. I haven't been able to pinpoint the exact circumstances where this happens, but it's a wrinkle to be ironed out.

Sky April 24, 2017 23:12

i'd like a buff to the light area spell. currently it can light up an entire cave, but when cast in a map area which the game doesnt see as "room", it only lights up a 3x3 square (1 in each direction). i'd like this to be buffed to 5x5 (2 in each direction), which is equivalent to a lantern.

Gwarl April 24, 2017 23:55

Quote:

Originally Posted by Sky (Post 120323)
i'd like a buff to the light area spell. currently it can light up an entire cave, but when cast in a map area which the game doesnt see as "room", it only lights up a 3x3 square (1 in each direction). i'd like this to be buffed to 5x5 (2 in each direction), which is equivalent to a lantern.

Level up a bit, it gets better.

Sky April 24, 2017 23:58

does it? i was under the impression that light area always did the same size. (i dont really use it once i get ESP ..)

also: still finding ridiculously OOD items on a regular basis . Annihilation on DL3, rod of healing DL25 !!, two useful staves DL2, etc. too many drops. just had another westernesse dropped by a minor mob on DL25, and i found a freakin' amulet of trickery on DL21. these are all drops i have found since typing the post on page 3.

Nick April 25, 2017 03:35

Latest builds are up, with the following changes:
  • Randarts are now restricted in power to 3/2 times the average for the slot, in an attempt to prevent overpowered lights, cloaks, etc. Please let me know how this seems to be going
  • Secret doors now get properly dealt with on detection, preventing doors opening out of sight bug (thanks PowerWyrm)
  • Fix buffer overrun in monster_flag_table (thanks t4nk)
  • Potions of Enlightenment now detect rather than sense objects (PowerWyrm again)
  • To-hit chance in monster memory is now correct
  • Fix to "roll beneath your feet" message (thanks Pete for these last two)
  • ssize_t replaced with int

gameplay appreciator April 25, 2017 04:56

Quote:

Originally Posted by Nick (Post 120321)
I have no plans at this point to remove teleport other or summoning. My feeling is that they support one of Angband's distinguishing features: things happen suddenly, and the player needs to react quickly.

It's true that instant deaths, monster removal, teleportation, and generation of large numbers of permanent monsters make angband different from other games.

PowerWyrm April 25, 2017 12:10

Quote:

Originally Posted by Nick (Post 120319)
From the old thread:


You are probably right, but I'm probably going to ignore that :)

Although I have just looked at my original plan post, and monster list is firmly under 4.2. I will consider further. What do others think?

That was just for selfish reasons, as I'm currently already revamping the monster list for PWMAngband (new monsters, tile remapping)... and after spending probably half of the last three weeks doing that, I've just completed dungeon level 40 and I have 87 more dungeon levels to go. Sigh...

PowerWyrm April 25, 2017 12:19

Quote:

Originally Posted by Gwarl (Post 120322)
I don't mind waiting for the monster list, but I think once pathfinding has been worked out the changes that have gone in since 4.0.5 (sans status effects :p) justify a new minor version.

Looking at the following list of changes (taken from my own changes.txt file from the list of changes implemented in PWMAngband since 4.0.5 up to Mar 16, 2017), I don't really think that's a *MINOR* version:

- Add ?? inscription for unknown runes
- Improve player screen object property grid
- Add rune knowledge screen
- Give messages on learning jewelry and ego types
- Remove trap detect edge
- Add shimmer to shimmering monsters
- Add flicker to blink dogs, phase spiders
- Make known to-dam/to-hit values appear when only one rune is learnt
- Remove text screen dumps
- Change monster names to appropriate English case
- Adopt some of James Doyle's suggestions from the forum (flavors)
- Don't notice brands on wield (only notice when hitting a monster susceptible to the brand)
- Transfer object knowledge on walkover
- Don't learn the flavor of jewelry with obvious properties until all of them are learned
- Remove IDENTIFY activation
- Remove staves and rods of Identify, scrolls of Identify still exist but are not sold in the Alchemy Shop anymore
- Remove IDENTIFY_PACK effect (from potions of *Enlightenment*)
- Remove pseudo-id
- Temporarily swap all stats around when hit by nexus in addition to teleporting
- Make dice and ac (runes) known at birth
- Make IDENTIFY effect (scroll + spell) identify an unknown rune on an item
- ID flavored consumables on first use
- Make basic lights and diggers have innate not magical properties
- Make *Slay*s have a random power or base resist
- Learn sustains if their item also boosts the stat
- Identify obvious effects on abort (IDENTIFY, RECHARGE...)
- Make devices that affect monsters require a target to ID
- Make standard body armor to-hit penalties not part of the to-hit rune
- Remove search command and searching status
- Remove search frequency skill
- Introduce trapsafe status and trap disabling, change trap destruction spells
- Secret doors only inside rooms
- Only set traps in corridors, replace some tunnel junction doors with traps
- Make door detection miss secret doors, generate many fewer secret doors
- Nomad's new template rooms with placed traps
- Split disarm skill to physical and magical
- Add new traps, improving effects where necessary
- Add rubble fall effect
- Allow summon effect to have an added out of depth element
- Change pit behaviour
- Make chests rarer and more valuable
- Add DRAIN_LIGHT effect
- New curses: defined by power (1 = easily breakable, 100 = permanent), to_a/to_h/to_d values, object flags/modifiers/elements, effect, tval
- New curse system: implement curses as runes, update object info and description, restore curse removal, allow branding of cursed items, know curses on wield (instead of pickup), turn cursed egos into curses, replace OF_TELEPORT with OF_NO_TELEPORT, redo teleportation jewelry as cursed
- Enable fizzix's probability tweaks from 2012
- Allow passable rubble in the dungeon
- Activate new dungeon profiles (modified, moria)
- Activate new room types (moria room, Interesting room, huge room, room of chambers)
- Activate new vault types
- Make lava passable and hurt the player
- Allow hot and cold projections to create or destroy lava
- Allow lava to appear in vaults
- Stop monsters from moving into lava, hurt them if they're pushed
- Weight slays and brands by fixed weights, adjust monster feelings
- Make player know all combat runes at birth
- Tone down greater vaults for non-classic profiles
- Adjust slays, brands and modifiers on randarts
- Some improvements to curses on randarts
- Distinguish between ratings for template rooms
- Remove "Find Traps, Doors & Stairs" spell (priest, paladin)
- Replace "Find Traps, Doors & Stairs" spell by "Detect Stairs" (rogue, ranger)
- Remove trap/door/stair detection from "Detection" spell (paladin)
- Remove trap/door/stair detection from CLAIRVOYANCE and DETECT_ALL activations
- Remove DETECT_TRAP and DETECT_DOORSTAIR activations
- Remove scrolls of Trap Detection and Door/Stair Location
- Remove trap/door/stair detection from potions of *Enlightenment*
- Move objects when lava is created
- Make stone to mud destroy passable rubble
- Reduce the supply of gold, in line with its value in older versions
- Make a hard cap of 6 on non-speed randart mods
- Curse a few randarts
- Adjust class and race searching skills
- Implement basic trap searching
- Add visibility ratings for traps
- Change create traps to radius 3, make created traps and vault traps only appear one in four times
- Add heal-other monster spell and low-level healer monster

And I left out all bugfixes and coding changes, which would add another page or two of changes...

Nomad April 25, 2017 14:46

Just downloaded 1782d7a and randart generation is now extremely slow. The first time I started a randart character the game hung so long at the end of character generation I shut the program down because I thought it had frozen. On subsequent tries it did eventually load the town after pauses of about 10-30 seconds.

ETA: randart.log is 66,854 kb for this game, compared to files of 2-6k generated in previous nightlies.

Nomad April 25, 2017 19:51

Still encountering big mobs of breeders. Is waking in response to noise still determined by straight-line distance rather than how far the sound has to travel? I'm wondering if what's happening is that breeders are waking up when the player is close by in straight-line terms but still has to travel a long distance to actually get to the monster, e.g. this sort of situation:

Code:

  #.# 
###.####
#......#
#...l..#
#......#
########

  ##########
  #.@.......
  #.########
  #.#


t4nk April 25, 2017 20:05

Nick, I think what's happening is: process_monsters() -> monster_check_active() -> monster_can_hear_or_smell() -> (monster smell is > 0 and scent == 0) -> process_monster_timed() -> monster_reduce_sleep() -> stealth check fail (I recall Nomad likes warriors).

Nick April 25, 2017 22:20

Quote:

Originally Posted by t4nk (Post 120356)
Nick, I think what's happening is: process_monsters() -> monster_check_active() -> monster_can_hear_or_smell() -> (monster smell is > 0 and scent == 0) -> process_monster_timed() -> monster_reduce_sleep() -> stealth check fail (I recall Nomad likes warriors).

Aha, thank you.

Nick April 25, 2017 22:21

Quote:

Originally Posted by Nomad (Post 120336)
Just downloaded 1782d7a and randart generation is now extremely slow. The first time I started a randart character the game hung so long at the end of character generation I shut the program down because I thought it had frozen. On subsequent tries it did eventually load the town after pauses of about 10-30 seconds.

ETA: randart.log is 66,854 kb for this game, compared to files of 2-6k generated in previous nightlies.

Yeah, I was kind of afraid that would happen. My fix was pretty crude, I'll try and add some finesse.

Sky April 26, 2017 13:43

well, looks like it falls on me to be the bearer of bad news.

the new pathing does not work. i've had instances of mobs just standing still because "they cannot get to me" while i happily blast them with spells.

i have kept a save to show you what is happening.

there is a corridor which ends in a 1-block turn. bunch of storm giants, all awake, at the end. they are trying (as far as i can tell) to walk through the stone to get to me, instead of 1) moving north 1 step and then 2) walk the corridor directly towards me.


POST-TEST EDIT

this happens, well, always. i dug a corridor parallel east-west to a door leading to a hydra pit. all the hydras are bunched to the sides of the door, because they are trying to walk straight and and they can't, and they can't find the door one square away from their position.

Nick April 26, 2017 14:43

Quote:

Originally Posted by Sky (Post 120363)
well, looks like it falls on me to be the bearer of bad news.

the new pathing does not work. i've had instances of mobs just standing still because "they cannot get to me" while i happily blast them with spells.

It's OK, that's not terrible news - I was expecting problems with it. What you need to understand is that when you are playing the latest master, you are doing my playtesting for me :)

Quote:

Originally Posted by Sky (Post 120363)
i have kept a save to show you what is happening.

That would be very helpful.

Sky April 26, 2017 16:07

https://www.dropbox.com/s/cl5vz3smvw...ed%20save?dl=0
first time using dropbox, not 100% sure if it works.

Nick April 26, 2017 21:56

Quote:

Originally Posted by Sky (Post 120366)
https://www.dropbox.com/s/cl5vz3smvw...ed%20save?dl=0
first time using dropbox, not 100% sure if it works.

Yes, that worked fine - but I'm also going to need your randart file. It should be the most recently written file in your lib/user/archive folder.

Nick April 26, 2017 22:06

From the thread I'm trying to bury:
Quote:

Originally Posted by Sky (Post 120372)
another couple of minor observations.

some prices in town seem a bit messed up; i sold a wicker shield 2 +38 (granted, thats some massive AC bonus right there) with +1 light, +2 infravision, basic resists and regen for a whopping 25.000 gold.
helm of vision +5 for 9000 gold.

also, you must have changed something in the drop rate. i was on my 3rd amulet of trickery by DL32, and i am finding dwarven shields, armors of speed +5, and gauntlets of combat like it's nobody's business.

That's odd, because I have reports of buying prices being too low. I will check that there isn't something causing both.

As for drop rate - really no change to anything affecting that in the last 6 months.

Sky April 27, 2017 00:06

https://www.dropbox.com/s/2t5oicoi0e...1ddc6.txt?dl=0
the randart file.

i'm quite positive the drop rate is WAY higher than it should be. tons of egos that should not show up at DL40, even scolls of rune.

derp, i dont know why but the randart file in my C:\Users\Sky\Desktop\last nightly\angband-4.0.3-712-gbcd30cf\lib\user\archive doesnt match the artifacts i have ingame.

maybe it's this one instead? https://www.dropbox.com/s/1krid2tcaa...adf62.txt?dl=0

t4nk April 27, 2017 01:10

That seems to be the wrong randart file, I think the correct one is randart_0e1adf62.txt (?).
Sky, how did you determine that the monsters were trying to walk through the wall (as opposed, to, say, not trying to walk at all?)

AnonymousHero April 27, 2017 08:36

I'd like to bring up a current issue on master: t4nk's UI changes still haven't been merged. They looked pretty amazing last I checked...

EDIT: Obviously, I realize that this isn't a trivial undertaking :). I just think it's a damn shame see all of his effort bitrot.

Btw, @t4nk: Are your changes licensed under both the GPL and the Angband license? The latter will make it possible[1] for me to incorporate them into T2-ah.

[1] Theoretically, though I honestly don't hold out much hope for actually being able to do it, both time-wise nor code-wise. Hope springs eternal, though...

Sky April 27, 2017 08:58

Quote:

Originally Posted by t4nk (Post 120379)
Sky, how did you determine that the monsters were trying to walk through the wall

using my massively enormous brain. *joke*


i don't know. i'm speculating that they think "straight 8 squares" is better than "sideways 1 square plus straight 8 squares", that i'm behind a wall when i'm clearly not, and are basically acting the same way as if we were in different rooms.

maybe the various heat maps (sight, noise, smell) should give 3 values and if one value is predominant, it should overrule the other.

Nick April 27, 2017 11:48

Quote:

Originally Posted by Sky (Post 120377)

Thanks, that's it. And yes, everyone is behaving very oddly - this will be a good example for me to examine.

Nick April 27, 2017 11:53

Quote:

Originally Posted by AnonymousHero (Post 120380)
I'd like to bring up a current issue on master: t4nk's UI changes still haven't been merged. They looked pretty amazing last I checked...

EDIT: Obviously, I realize that this isn't a trivial undertaking :). I just think it's a damn shame see all of his effort bitrot.

I'm glad you asked. There are two possibilities:
  1. Try and get it in for 4.1 or
  2. Make it an early post-4.1 task.

I'm inclined to reserve a decision on that for now. I'll be getting current master debugged (especially the pathfinding) for a bit, and once it's looking close to done I might have a quick look and see how easy it is to get t4nk's stuff incorporated and playing nicely with the build system. If it's easy, good; if it's taking too much time, then probably wait until after release and do it properly then.

Ingwe Ingweron April 27, 2017 12:07

An odd occurrence: @ fighting the Tarrasque, firing arrows at his point-blank target. Then, suddenly, the targeting fails and the arrows are dropping at @'s feet. When "looking" at the Tarrasque, the game says, "You see an open door".
@ switches to bludgeoning the Tarrasque to death and discovers the Tarrasque is standing on solid rubble (not the passable kind). So, what must have happened... Tarrasque breathed fire and created lava under its feet, then Tarrasque breated frost and changed the lava to solid rubble under its feet, then the game incorrectly (a) allowed the Tarrasque to stand on solid rubble, and (b) incorrectly identified the solid rubble as an open door when "looked" at by @ (keeping in mind that, I, the human player saw a Tarrasque, not rubble, until the Tarrasque was no more).

t4nk April 27, 2017 12:23

@AnomymousHero: It's just a pretty big chunk of code, about 40k lines or so. Nick already has plenty of things to do, considering deaf monsters and other things :)
Yes, all of it is licensed under the same terms as the rest of Angband's code. Adapting it to T2 would be a big task. textui2 is not written in C++, and has numerous dependencies on other parts of Angband (memory functions, string functions, parser...). You'll probably have a better time with something like libtcod?

@Sky: Interesting that you said "they think 8 squares is better than sideways 1 square plus straight 8 squares". Your character has 12 stealth, and most monsters have hearing 20, so they can only hear you from 8 grids (and NOT "as the crow flies", but by pathing through non-wall grids). Looks like monster list rebalancing will have to be done for 4.1 :)

Ingwe Ingweron April 27, 2017 12:39

Another small bug: "You feel something roll beneath your feet" message is being given for items that have been ignored.

Nick April 27, 2017 22:14

Quote:

Originally Posted by Ingwe Ingweron (Post 120389)
Another small bug: "You feel something roll beneath your feet" message is being given for items that have been ignored.

Right - Pete gave me a fix for a potential crash in this function, I must have done it wrong.

Thanks for the reports, keep them coming. I'm hoping to get the monster pathing to a better state this weekend.

Gwarl April 27, 2017 23:37

1 Attachment(s)
I don't know if this helps at all (I'm sure it doesn't) but I'm attatching the file which contains the pathfinding functions for the roguelike I started writing in C#, which seemed to work as intended. The last three functions are the relevant ones.

Basically the gist is:

1. Calculate the number of steps removed from the player for each square (any delays introduced by this calculation were imperceptible, but my map sizes were about 1/3 the area of angband maps)
2. From a given point, construct a path toward the player by picking an adjacent square with fewer steps remaining to reach the player
3. In ambiguous cases, choose the square which minimises both vertical and horizontal differences

I managed to implement monsters not being omniscient by having each monster remember its destination, so upon losing sight of the player it would proceed toward the square where the player was last seen, then resume the default drunken walk if not catching sight of the player again. It's not very sophisticated but monsters ended up going where they were supposed to

I'm quite sure there are a great money reasons why nothing this simple could be done with angband, but I'm still a little too afraid of C to delve in myself to see how pathfinding in angband is done just yet.

Sky April 27, 2017 23:50

...

my game is crashing regularly when i go down the stairs from DL99 -> 100.

Problem signature:
Problem Event Name: APPCRASH
Application Name: angband.exe
Application Version: 0.0.0.0
Application Timestamp: 58fd55a3
Fault Module Name: msvcrt.dll
Fault Module Version: 7.0.7601.17744
Fault Module Timestamp: 4eeaf722
Exception Code: c0000005
Exception Offset: 00009966
OS Version: 6.1.7601.2.1.0.256.1
Locale ID: 2057
Additional Information 1: 0a9e
Additional Information 2: 0a9e372d3b4ad19135b953a78882e789
Additional Information 3: 0a9e
Additional Information 4: 0a9e372d3b4ad19135b953a78882e789

AnonymousHero April 28, 2017 00:58

Quote:

Originally Posted by Nick (Post 120384)
t4nk stuff

Sorry, I was being kind of an asshole -- I really just hope that it does eventually get merged. :)

Nick April 28, 2017 01:09

Quote:

Originally Posted by Gwarl (Post 120401)
Basically the gist is:

1. Calculate the number of steps removed from the player for each square (any delays introduced by this calculation were imperceptible, but my map sizes were about 1/3 the area of angband maps)
2. From a given point, construct a path toward the player by picking an adjacent square with fewer steps remaining to reach the player
3. In ambiguous cases, choose the square which minimises both vertical and horizontal differences

Currently it does 1 and 2 (and I'm not sure about 3). As currently implemented it's really a first attempt - my aim is to get the foundation correct and then build.

Nick April 28, 2017 01:10

Quote:

Originally Posted by Sky (Post 120402)
my game is crashing regularly when i go down the stairs from DL99 -> 100.

Thanks - another thing to test.

Nick April 30, 2017 05:57

New build up on the nightlies page, with improvements to monster pathfinding. Unlikely to be perfect yet, but I'd appreciate some feedback on which bits of monster behaviour are working and which bits aren't.

Nomad April 30, 2017 13:51

The slow randart generation issue definitely needs a fix. In my first game with the latest nightly it took nearly a minute and a half and generated a 310 MB randart.log file.

Gwarl April 30, 2017 17:32

Could the randart duplication thing have something to do with affixes?

I'm not sure if this has been mentioned but off-weapon slays are prioritised incorrectly, i.e. if I have a poison brand and an off weapon *slay dragon* I will poison the great hell wyrm rather than fiercely smiting him.

Also this one isn't new but rods don't count as magic items for gnomish identification and it's more annoying now I can't identify them with scrolls.

Nick April 30, 2017 22:17

The randart duplication is AFAIK fixed. I know what is causing the slow generation - it's that I have put in a succession of hacks to try and get a proper distribution of tvals while still generating the randarts one at a time in order from artifact.txt. Once I accept reality and actually do a sensible scheme for generating the whole set, we should be fine.

Sky May 2, 2017 10:16

... pfftt...

ok, so i downloaded the last nightly you posted, angband-win-4.0.3-712-gbcd30cf, and i judiciously played the whole thing, i just beat sauron, went back to refill, then down to DL99, stairs .. and crash.

what i did before, because the same thing happened in the *previous* nightly, is that i started the game, wizarded a lev 50 warrior, jumped to DL99, beat sauron senseless, and went down the stairs successfully to DL100.

so something must have happened to the file between turn 1 and now that made it impossible to reach DL100, because it's not a problem with the build itself.

Nomad May 2, 2017 11:48

Quote:

Originally Posted by Sky (Post 120491)
ok, so i downloaded the last nightly you posted, angband-win-4.0.3-712-gbcd30cf, and i judiciously played the whole thing, i just beat sauron, went back to refill, then down to DL99, stairs .. and crash.

what i did before, because the same thing happened in the *previous* nightly, is that i started the game, wizarded a lev 50 warrior, jumped to DL99, beat sauron senseless, and went down the stairs successfully to DL100.

so something must have happened to the file between turn 1 and now that made it impossible to reach DL100, because it's not a problem with the build itself.

Could be randarts vs. standarts - did you have randarts switched on in the game that crashed at 99 and then just stick with the default options for the test game?

Nick May 2, 2017 11:49

Quote:

Originally Posted by Sky (Post 120491)
... pfftt...

ok, so i downloaded the last nightly you posted, angband-win-4.0.3-712-gbcd30cf, and i judiciously played the whole thing, i just beat sauron, went back to refill, then down to DL99, stairs .. and crash.

what i did before, because the same thing happened in the *previous* nightly, is that i started the game, wizarded a lev 50 warrior, jumped to DL99, beat sauron senseless, and went down the stairs successfully to DL100.

so something must have happened to the file between turn 1 and now that made it impossible to reach DL100, because it's not a problem with the build itself.

OK, thanks. I haven't looked at that problem yet; Ill let you know when I do a build with a fix in it.

Sky May 2, 2017 16:28

i have re-tested it now. i wizarded a new randart character, and i managed to do DL99 -> sauron -> DL100 -> morgoth, so the build works, in a way.

it must be a bug that occurs over time, something that i do during normal gameplay creates a overflow which then causes the bug ..
which is *possibly* an issue with the dungeon level number-character allocation, or with morgoth, because as far as i know those are the only things which change at DL100.

possibly turn count? my turn counts are always very high ..

Pete Mack May 2, 2017 16:57

@Sky--the usual cause is failure to generate the special artifacts. It really helps to get a debug build and a crash dump (running under the debugger if necessary) when something like this happens. Just knowing the subroutine and line number usually is enough to figure out the bug.

Sky May 2, 2017 19:48

ok, if you mean the crown and grond, i can say no because i wizarded them as well and it didnt prevent me from doing DL99->100.

as for the crash dump, how do i go about generating one? all i get is the windows error message that a app has crashed with a very vague set of addresses.

Pete Mack May 3, 2017 03:07

If you run a debug build* in the gdb debugger, you can get a stack trace with 'backtrack' command. Just repro it in the bar and the bug is likely to be easy to figure out. (unless it fails with a memory error.)

* replace "-O2" with "-O2 -g" in the CFLAGS options in makefile.win (or other appropriate makefile.) You can use plain "-g", but it'll run horribly slowly, rather than just a bit slowly.

Gwarl May 3, 2017 23:44

Just want to say I played a bit of 4.0.5 today experimenting with ttyrecs and it seemed terrible after all the new conveniences of master. That's the opposite of an issue but I thought I'd post it here anyway.

Sky May 5, 2017 18:12

well i looked at that debugger but i have no idea how to run it.

@Nick letting you know that angband-4.0.3-720-gb057135 ALSO has the DL99 bug.

has anyone else experienced this bug? i'm starting to think it might be something on my end.

Nomad May 5, 2017 18:29

Quote:

Originally Posted by Sky (Post 120557)
has anyone else experienced this bug? i'm starting to think it might be something on my end.

Yes, I experienced this with my last almost-winner, way back in the March 16th nightly (a016a4c), which I think was the first one with the new randart system. He's stuck sitting on the steps at dlevel 99 after killing Sauron, and descending causes a crash.

Sky May 6, 2017 14:02

@Nick, mob pathing looks much better now, maybe .. too good? I've more than once TO some unique, only to find them coming back before i finished resting.

Pondlife May 6, 2017 18:51

That sounds like an improvement to me. I think TO is/was too powerful: no saving throw or resist, and the monster will probably end up bottled up somewhere bashing it's head against the wall.

If better path finding changes TO into just a bit of breathing space, then I think that's a good thing.

Philip May 6, 2017 19:02

Yeah, I feel like if you want to send someone away, they should be capable of getting back. Having monsters stay in the place they were teleported to makes them pretty dumb. You can always walk away from the place you teleported the monster from. That should prevent most monsters from tracking you down.

Sky May 6, 2017 19:23

if that is what you want, you simply need to change how far TO teleports mobs. basically, turn it into a "Blink Other' rod. it will give you time to quaff some potions, but basically you can't just say "i dont want to fight this mob".

however, this will make the game substantially more difficult, and slower.

Nick May 7, 2017 04:10

OK, new builds up on the nightlies page; these probably break savefiles.

The big change is a new randart generation algorithm, which is much more efficient (no more waiting forever for randart generation to finish). There are some significant changes, the biggest of which is that randarts are no longer "based on" standard artifacts; for the most part, though, the actual creation of individual new randarts is the same. Given that the chief relationship between the randart and the standart it was based on was the power - there was no influence on actual properties - I don't think this will cause any problems. Do please report any concerns with the new randarts as used; there is a lot of scope for adjustment of the new algorithm.

There is not a fix for the crash on descending to DL100, as I could not replicate it. If this still seems to be occurring with the latest build, a savefile (and randart file if playing with randarts) would help.

Estie May 7, 2017 05:35

The last few games I played felt like artifactless games. Have you nerfed the randarts substantially or was I just very unlucky ?

I dont really feel like playing atm, after my 3rd character ended up wearing ego dragon mail, MoD of slay evil, "trickery and rings of damage and speed, I got very very bored.

Nick May 7, 2017 06:26

Quote:

Originally Posted by Estie (Post 120591)
The last few games I played felt like artifactless games. Have you nerfed the randarts substantially or was I just very unlucky ?

There have been a succession of hacks to try to get the distribution right, which may have had the effect of nerfing. The latest build has removed all those hacks. I have tested a few sets of randarts with the new system, and they look reasonable to my eye, but I would like to have them tested by people with more experience.

Pete Mack May 7, 2017 09:26

Nick--
Estie is probably correct, statistically. The trouble with randarts used to be that you'd get very powerful artifacts in slots that were not usually powerful. (This is independent of issues around off-weapon blows and brands, and crazy powerful bows.)
However, the standard artifacts are carefully designed to mesh with each other--things like CON in the shield slot, and excellent damage+stats in the glove slot, CON in the amulet slot, because there are no alternate objects or ego items. If you randomize the benefits, but keep the nominal values the same, you will lose synergy without making up for the lost "holistic" power in some other way. So it's reasonable that randarts be somewhat more powerful than similar standarts. But making randarts of a different order of power than the corresponding standarts is potentially a bigger mistake.

Sky May 7, 2017 10:43

Quote:

Originally Posted by Nick (Post 120590)
There is not a fix for the crash on descending to DL100, as I could not replicate it. If this still seems to be occurring with the latest build, a savefile (and randart file if playing with randarts) would help.

https://www.dropbox.com/s/7zyyskbx7b...57135.rar?dl=0

here u go.

Nomad May 7, 2017 11:33

The first time I tried to start a new randart game in the latest build it crashed at generation. Second attempt there was no problem.

Nick May 7, 2017 14:23

Quote:

Originally Posted by Sky (Post 120595)

Thanks.

It seems the DL99->DL100 crashes are because of a memory bug, which I haven't been quite able to track down yet. I found another potential bug while experimenting, too.

PowerWyrm May 8, 2017 17:32

Quote:

Originally Posted by Sky (Post 120565)
@Nick, mob pathing looks much better now, maybe .. too good? I've more than once TO some unique, only to find them coming back before i finished resting.

That is indeed a marvelous improvement.

PowerWyrm May 8, 2017 17:37

Quote:

Originally Posted by Nick (Post 120590)
The big change is a new randart generation algorithm, which is much more efficient (no more waiting forever for randart generation to finish). There are some significant changes, the biggest of which is that randarts are no longer "based on" standard artifacts; for the most part, though, the actual creation of individual new randarts is the same. Given that the chief relationship between the randart and the standart it was based on was the power - there was no influence on actual properties - I don't think this will cause any problems. Do please report any concerns with the new randarts as used; there is a lot of scope for adjustment of the new algorithm.

I'll have to look up at this for PWMAngband. The constraint when you have a multiplayer base is that you need to base your randart set from something that all players have in common, and the only thing was the standard artifact set. So no fancy rerolling base items till now. If the new algorithm in V takes freedom from the actual arts, then it's something to consider.

t4nk May 8, 2017 20:11

Nick, I got a crash from asan at obj-randart.c:2518:
Code:

while (strstr(art->name, "The One Ring") ||
        kf_has(kind->kind_flags, KF_QUEST_ART)) {
        (*aidx)++;
        art = &a_info[*aidx];
        art_level = art->level;
        if ((*aidx) >= z_info->a_max) {
                return;
        }
}

obj-init.c allocates z_info->a_max + 1 structs (line 2700), but note that it then increments a_max (line 2715). So accessing art->level when *aidx == a_max is illegal (perhaps that's the cause of Nomad's crash?)
(come to think of it, why does obj-init.c do that? and why does it start assigning from a_max, leaving zeroed out struct at the beginning?)

Nick May 8, 2017 22:14

Quote:

Originally Posted by t4nk (Post 120626)
Nick, I got a crash from asan at obj-randart.c:2518:
Code:

while (strstr(art->name, "The One Ring") ||
        kf_has(kind->kind_flags, KF_QUEST_ART)) {
        (*aidx)++;
        art = &a_info[*aidx];
        art_level = art->level;
        if ((*aidx) >= z_info->a_max) {
                return;
        }
}

obj-init.c allocates z_info->a_max + 1 structs (line 2700), but note that it then increments a_max (line 2715). So accessing art->level when *aidx == a_max is illegal (perhaps that's the cause of Nomad's crash?)

Thank you, yes - I should be testing before incrementing.

Quote:

Originally Posted by t4nk (Post 120626)
(come to think of it, why does obj-init.c do that? and why does it start assigning from a_max, leaving zeroed out struct at the beginning?)

I don't actually remember. Each artifact in artifact.txt used to have an index, and they started at 1, and there was some code or other that relied on that fact, but I'm not at all sure it's necessary any more. I'll check at some point and change it if it's not needed, because it's a bit silly to do it for no reason.

PowerWyrm May 9, 2017 09:11

Quote:

Originally Posted by t4nk (Post 120626)
come to think of it, why does obj-init.c do that? and why does it start assigning from a_max, leaving zeroed out struct at the beginning?

That's what the code does everywhere. The main reason is to put zero as index in the savefiles where there is nothing to save, while keeping a trivial loading routine: read index, assign struct = structs[index]. Otherwise, you would have to check the index, see if it's zero, assign null in that case, assign struct = structs[index-1] in other cases.

Note that in PWMAngband, I do the latter. It makes loading savefiles more complex, but simplifies all the rest (in particular, the init/parsing code).

PowerWyrm May 9, 2017 09:14

Looking at master for implementing the latest stuff in PWMAngband. In commit a970eb7:

Code:

+
+        /* Uniques are doubly hard to affect */
+        if (rf_has(mon->race->flags, RF_UNIQUE)) {
+                resist_chance /= 2;
+        }

Well I think that makes uniques easier to affect no?

Best thing is to leave the double check in saving_throw(). Doing a *2 would make all level 50+ monsters completely immune to effects instead of giving them double resistance (double check at resist = 50 --> 75% vs single check at resist = 100 --> 100%).

Code:

if (rf_has(mon->race->flags, RF_UNIQUE) && (randint0(100) < resist_chance)) return true;

PowerWyrm May 9, 2017 10:35

Minor issue: in commit e9458fa, many flags have been added to monster.txt, but some of them are already present in monster_base.txt (for example: NO_CONF on vortices).

PowerWyrm May 9, 2017 13:08

Are traps still appearing only 25% of the time in vaults? I think the number of traps should be increased again, otherwise many vaults are very empty...

t4nk May 9, 2017 14:56

Quote:

Originally Posted by PowerWyrm (Post 120629)
That's what the code does everywhere. The main reason is to put zero as index in the savefiles where there is nothing to save, while keeping a trivial loading routine: read index, assign struct = structs[index]. Otherwise, you would have to check the index, see if it's zero, assign null in that case, assign struct = structs[index-1] in other cases.

Ah, so that's how it was (angband now saves artefact names as strings instead).

PowerWyrm May 9, 2017 15:58

Another minor issue: monsters break from "hold" effect when hit, but not from various other situations.

- hurt by earthquake
- summoned via "calling out"
- healed via "heal monster"

takkaria May 9, 2017 21:30

Quote:

Originally Posted by PowerWyrm (Post 120638)
Another minor issue: monsters break from "hold" effect when hit, but not from various other situations.

- hurt by earthquake
- summoned via "calling out"
- healed via "heal monster"

I think I'm OK with this. I'll fix the other issues though, and also turn on saving throws for the unresistable effects soon.

Wanderlust May 10, 2017 06:52

I had a problem compiling/installing the May 7 nightly.

I install locally with:

Code:

$ ./configure --prefix=$HOME --enable-sdl
$ make
$ make install

Running the program returns:

Code:

./angband: Cannot find required file:
/usr/local/share/angband/fonts/6x10x.fon

The same installation procedure works fine with earlier versions, such as the April 25 nightly, which I am running now with no problems.

PowerWyrm May 10, 2017 08:38

Quote:

Originally Posted by takkaria (Post 120640)
I think I'm OK with this. I'll fix the other issues though, and also turn on saving throws for the unresistable effects soon.

Ok don't do that. For what I've seen, stuff like Slow and Confuse are still marginally useful because not really powerful, so it's ok to leave them without saving throw. The problem reported is vs Stun... and that's because there's a bug in the new implementation. Looking at mon-timed.h, the STUN_DAM_REDUCTION value is supposed to be "Percentage reduction in damage". But in mon-attack.c, the code is:

Code:

if (stunned) damage = (damage * STUN_DAM_REDUCTION) / 100;
The recent nerfing made that even worse, since this reduces monster damage to 10% of their normal damage while stunned...

Oh and it seems that the same problem applies for STUN_HIT_REDUCTION. In check_hit():

Code:

if (debuff) chance = (chance * debuff) / 100;
Fixing both of these will give some threat back to stunned monsters, and removing the saving throw for stunning will be also fine. Maybe bring back the 25% reduction instead of 10% too, because 10% won't do much, especially when damage is low due to rounding down.


All times are GMT +1. The time now is 12:09.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, vBulletin Solutions Inc.