Search Results
Searched for posts by vasiliy in all forums

Showing results 61 - 70 out of 431 total
Modify your search
Posted by vasiliy, Mar 7 at 10:06 pm
oops. wrong forum. sorry. move it to "bugs", please.
Posted by vasiliy, Mar 7 at 7:54 pm
first, `(Midas && IsOnGround())` is excessive. underground shops are not special! i.e. `IsOnGround()` should be removed.

and second: `Midas->SetMoney(Midas->GetMoney() + Price);` is not guarded with `if (Midas)`. it should be: `if (Midas) Midas->EditMoney(Price);`. otherwise alchemy wand broken by mine trap explosion, for example, will cause a segfault.
Posted by vasiliy, Mar 7 at 2:12 pm
it is now possible to buy a strong-box from a smith. because why not? it's a useful item, and i see no reason to not give it to the player. it costs 300gp (normal strong-box costs 250gp), i think it's a fair price.
Posted by vasiliy, Mar 7 at 1:33 pm
so, i made polymorph ring block int-dependent (int >= 14). teleport ring is allowed for everyone, let's have some fun!
Posted by vasiliy, Mar 7 at 8:11 am
i think that new player will simply put the ring on, and see. also, there are mushrooms in UT, even magic mushrooms sometimes. and even rare spawn of chameleon, so the player will learn about various magic effects quite quickly.

i blocked them due to balancing, not because i wanted monsters to be smarter. those rings are not rare spawn — i mean, i can find them even on UT. not each time, but… it seemed to me that the game get to unfair territory without that block.

but yeah, it's hard to tell if it really is, or if it's just a series of bad runs. maybe make it int-dependent? the finder AI currently cannot include randomness, but any stable checks are ok. i'd like to enable picking those rings up too, the block looks like "gum solution", yes.

p.s.: what we REALLY need to telegraph better is the effect of worm ring. the description gives a hint, but most descriptions are just a fluff text, so the player will quickly learn to ignore them. maybe some kind of "inspect" command, which will allow intelligent player to learn about artifact properties? it's not like "identify", the artifact is fully usable without it; just informational. or wizards (or librarians?) may tell you about artifacts if you'll show them items. but i don't know yet how to make it work nice, without stupid raw stats and flags dumping. this needs some flavor text too, i guess.
Posted by vasiliy, Mar 7 at 1:23 am
i always find it boring to choose if i want to take or to put something. so i removed the prompt; now you can use Tab to switch between "take" and "put" UI for containers. initially i wanted to implement two-sided list, but i am too lazy to write new list widget. yet i think that it is still better than that stupid prompt.
Posted by vasiliy, Mar 6 at 10:02 pm
Yancakes wrote
Could include a gelatinous cube enemy.
NetHack I Smell!
Posted by vasiliy, Mar 6 at 10:01 pm
Yancakes wrote
another brilliant qol addition honestly.
thank you!

Yancakes wrote
does it tell you what level of str. etc you need to be able to use a weapon without difficulty?
the original game only tells this to you in one case. as this one case is present, i presume that missing info for other cases is not an oversight, but done by design. i am basically not adding anything (well, except hit value, but i may remove it later) which the original game won't tell directly.

anyway, "somewhat difficult" is usually means "you need one more level", and other "rates" mean "do not use this!"
Posted by vasiliy, Mar 6 at 9:51 pm
new build!

(not so?) brief changelog:
* restored window icon.
* it is now possible to fully configure keybindins via .rc file.
* commands can have more than one keybinding, and it is allowed to use Alt and Ctrl in binds.
* restored screenshot feature (it is bindable command now).
* added visual attack indicator, and visual door action indicator.
* winning text records polymorphed form ("killed Petrus ... while polymorphed into mushroom").
* autokicking doors will ask for hostility action confirmation.
* most yes/no queries will show the actual question too, so you don't have to look into log window.
* implemented butchering with meat cleavers (WIP, should depend on cleaver type and such).
* fixed crash with nerf bat (basically, with any inventory item polymorphing).
* nerfed protection from siren songs a little.
* ported a lot of small improvements from vanilla.
* do not show broken items in "Apply" menu -- they are unusable anyway. (this should be revisited when/if we get usable broken items.)
* added two minimap modes -- normal and small. minimap works mostly like "Look", but you have to press "l" to actually look. F1 works too.
* it is possible to set marks on minimap.
* ectoplasm is a liquid now (and skeleton puppies drool ectoplasm).
* magpies, fruit bats and some other monsters with special attacks should not steal from invisible player.
* monswters will go for gear (and food) if they see it, and if they need it.
* two Petrus' wives will help you to slay Attnam if you will directly attack Petrus. (WIP)
* as we don't have "Hotness", made napalm and lava acidious instead. sorry.
* sell UI in shops will show the selling price for items.
* "Equipment broken!" message replaced with detailed description of what was broken.
* it is now possible to dump only some amount of the liquid from the container.
Posted by vasiliy, Mar 6 at 7:35 am
chaostrom wrote
Hmm, if that's possible, do you think you can tie in the hostiles going for equipment to their int stat as well?
they partially are: i'm limiting their LOS.
  // do not go too far away
  int range = Max(1, GetLOSRange());
  const int IntStat = GetAttribute(INTELLIGENCE);

       if (IntStat < 5) range = Min(range, 2); // kobolds! ;-)
  else if (IntStat < 10) range = Min(range, 4);
  else if (IntStat < 14) range = Min(range, 6);
  else if (IntStat < 16) range = Min(range, 7);
  else if (IntStat < 20) range = Min(range, 8);
  else if (IntStat < 22) range = Min(range, 11);
  else range = Min(range, 14);
this is basically as much as i can do with the current code. this is because the code itself is quite dumb: the monster re-evaluates everything on each turn, completely from the scratch. so it have to select the best equipment, otherwise poor thing will endlessly oscillate between several items.

i got this bug with dark mage, lol: it's AI doesn't include call to check items on the ground, so it cannot wield things. but finder AI didn't know about it, and forces the mage to go to the sword. as monster position itself is not checked, the mage was dancing around the sword, unable to pick it up.

i just wanted to make the code work first, so it's quite simple. i will prolly make it more advanced later: the monsters will remember what they've seen, prioritize selections, pick unfit weapons sometimes because they look cool, and such. here Int will play a much bigger role.


p.s.: of course, i'd like to hear other ideas too. if you're interested, the algorithm by which the monster selects what it wants to wield is very simple: wield the thing, simulate the fight with the player, select the thing which allows us to last longer/kill faster. i.e. the good old danger level calculation. some monsters have hard-coded weapon preferences (mistresses will only use whips, for example), but that's all. of course, monster weapon skills matters too — due to combat simulation, the monster will choose the weapon it is more skilled with.

this prolly could be extended a little. maybe some monsters can always prefer some weapons over others. hate some weapons. prefer/hate materials. and such.

p.p.s.: ah. i also made the monsters to not pick up amulet of life saving, because it cannot be taken from the dead body. rings of teleport and polymorph are ignored too, unless the monster have a way to control their effects.


also, another fun bug from the first draft of the code. the monster physically wield the thing to simulate the fight. i.e. the code takes the thing, equips the monster, runs the simulation, and puts the thing back. which was using monster coordinates to select the square to drop the thing. yeah, the mistress teleported out half of the shop this way, and nobody noticed.