
www.Usenet.com
| <-- __Chronological__ --> | <-- __Thread__ --> |
On Thu, 27 Nov 2003 22:32:15 +0200, Topi Linkala <[EMAIL PROTECTED]> wrote: >JMH wrote: > >> On Wed, 26 Nov 2003 09:22:00 +0200, Topi Linkala <[EMAIL PROTECTED]> wrote: >> >> <snip complicated speed system> >> >> What's wrong with assigning every possible action a time in seconds, >> possibly modified by characters' speed/Dex, and giving the character a >> new turn after that many seconds have elapsed, or a premature turn if >> interrupted? >> >> It's easy to understand and you can decide pretty easily how long most >> real-life actions take. >> >> Just have a game queue that only pauses on player turns. > >Because this would mean that for each second you go through the list of >all actors and advance their occupation counter for one second and see >if the occupation ends. Additionally you check every time when an >occupation ends if this means that the action thus accomplished will >interrupt the occupation of any other actor. > >It would also mean that every occupation time should be checked against >the current speed of the actor. > >So you abstract. Use longer time periods than second. For example 100 >seconds (or whatewer). Faster actors use lower figure, slower ones greater. > >Topi What is so bad? The queue can sort itself by time. The top of the queue sets the clock to its action-time. Whenever an event happens that can distract/interrupt an action, interrupt actions of nearby actors, divide total time alloted for the action since by how much time has elapsed, and use that percent as a factor of how much is complete. The amount of time an action takes is: (% to do) * (seconds to accomplish) * (some speed factor based on DEX or whathaveyou) seconds. ...and some events can;t be accomplished piecemeal. So if I start eating an cookie, which takes ten seconds, and 3 seconds later I'm attacked and stopped, 3/10 of the cookie is gone, there are 7 seconds of cookie eating time left, and I'm awarded 3/10 of the food value of a cookie. Occupation time is set when an action is chosen, not something that needs to be checked against current speed. I still don't see the value of complicating things.
| <-- __Chronological__ --> | <-- __Thread__ --> |