Speed system is broken
issueid=4283 02-26-2016 08:18 PM
Number of reported issues by Jouni: 3
Speed system is broken
Speed rating has seemingly no effect

In r65 the speed system seems to be completely broken. Molochs are able to match the pace of your 100 speed character, and quicklings are just as slow as you are. Even at 500+ speed you are not able to outrun anything.
Issue Details
Issue Number 4283
Project ADOM (Ancient Domains Of Mystery)
Category Windows 10
Status Fixed
Priority 2
Affected Version ADOM r65 (v2.1.0)
Fixed Version ADOM r66 (v2.2.0)
Milestone (none)
Users able to reproduce bug 3
Users unable to reproduce bug 1
Assigned Users (none)
Tags (none)

05-16-2016 08:40 AM
Junior Member
I'm facing the same issue. Noticed it when facing a greater moloch and my speed was 146, wearing blessed 7LB, having Long Stride talent and weapon skills level 9, and the GM could act almost every time i took a step or a swing. Windows 7.

05-19-2016 11:03 AM
Ancient Member
This RFE should be 'test your game better' because this slipping by is just shoddy.

05-19-2016 03:24 PM
Senior Member
It's on the active development beta version...

05-19-2016 05:15 PM
I thought the last few times I fought Quicklings, it was going a bit too easy... Well, this explains it.

06-12-2016 08:38 PM
The Creator
Fixed. It's yet another effect of the complete rewrite of how ADOM works internally (e.g. exchanging the REPL with an event system). This still needs some experimenting as there are many ways to use the new event system.

To explain this:
In the new system events connected to a specific point in time are posted to an internal event queue. One such event might be "let the player move".
Whenever this event gets called, the energy of the player is increased by his speed and as soon as he has accumulated 1000 energy points he can act.
As a result of the action is energy will be decreased (by 1000, that being the default value, but e.g. moving with 7LB just deducts 750 energy points, etc.)
Currently the event gets executed every 100 internal time units (this being equal to the speed value, assuming that after 10 executions on average you will have accumulated the required 1000 energy points). For monsters this works the same.
If you e.g. have a speed of 200, only 500 time units will pass (as very 100 time units your energy gets increased by your speed of 200).

Now one could go to smaller time units (e.g. of 10) increasing energy by one-tenth of the current speed - but this already raised questions about the remainder values (e.g. the 4 in speed 124).

Now one also could say that instead of executing every 100 time units, ADOM could execute it in INTEGER(1000 / current speed) * 100 time units and then act every time. But this would prevent intermediate effects (if there e.g. were a quickening wizard casting slowing magic on you or whatever).

So the overall system is quite complicate and having changed code of ADOM that is among the oldest stuff in the game sadly has some side effects. It's for a reason that sometimes development is tough ;-)

But long talk, short answer: for now this specific problem should be fixed.

06-12-2016 10:58 PM
Ancient Member
Why not do the update every time unit, but multiply speed values internally by 100?

i.e., with speed 124, if you update every time unit, you would need to increase energy by 1.24. But why not represent it internally as 124 and just require internally 100 000 energy?

(i.e., effectively like fixed-point arithmetic).

+ Reply