For this, it is my intent to take advantage of our existing tmwAthena framework and add and replace systems as needed to test possible mechanics for TMW. There are a few reasons I'm still using our athena for testing purposes as opposed to modifying a vanilla manaserv directly (as will be needed to be done in the mid stages of CR1) but the three main reasons are:
1) I'm far more familiar with our Athena platform than I am with the upcoming manaserv platform, so it will be faster to work with what I know while trying to familiarize myself with manaserv
2) It should finally give the players something to test after a long period where the team was focusing on finishing the server and merging the clients instead of content
3) A manaserv target would be a moving target as it is being worked on; our athena is relatively static
I created a repository [here
], though I haven't been keeping it that up to date (latest local revision doesn't compile, I'll hopefully remember to push once I fix that)
Gitorious refuses to show my commit in my browser for some reason, despite many files in athena being far bigger than that patch alone and still being displayed.
However, the comment I made summarizes the changes made there quite nicely, so I'll also print that here so people don't necessarily have to make a local clone to get an idea of the changes made so far:
Code: Select all
New Heal system. New system that executes new optional item scripts on character death. Experimental new damage reduction system. Experimental new max_hp formula.
Old heal system should still be available through #ifdef's for comparative purposes.
New heal system queues healing effects, sorted by the amount healed per heal tick.
Heal tick length is now constant across all effects. Compile time option as to
whether the current effect can be immediately replaced by the highest rate heal if
a better one becomes available, or whether the old one has to finish first.
Heal effects have a new field, indicating whether they dispell on damage. This
option is per-effect, so some effects may be dispelled while others persist.
The magic system and NPC scripting functions have been adjusted accordingly.
All scripts making calls to a heal-over-time function will require an update,
though there is a (VERY experimental) system to distribute the effect when
the divisor is one.
A new item field that specifies an optional script to be executed upon
character death has been added. There is an experimental system for a script to
send a return code indicating that the execution of other death scripts should
halt immediately. To this effect, another field, indicating script priority,
has also been added.
The new damage reduction system makes damage reduction far more focused on
proportional damage reduction than direct damage reduction. This also
removes a distinction between equipment based def and stat based def.
The damage is split, so some part of damage will not be blocked by this reduction,
but instead must rely on a small random reduction based on vit, and simply having
a lot of hp.
This split does not scale well; alternative methods of splitting this are being
The max_hp formula is being revised significantly; giving orders of magnitude
more hp as to better scale incoming attacks, and to compensate for effective
natural regeneration nerfs.
Due to the alterations of many of the systems here, the server data accompanying
this will also need to be changed significantly.
A new function for the magic system, op_damage, has been added to replace calls
to itemheal with negative arguments to cause damage.
Yes, I completely forgot to stage my changes into separate commits.
I notice that vanilla manaserv disables regeneration while in combat. While regeneration that high would be a problem in combat, isn't the root problem that natural regeneration is too high? I would like consumable healing items to be used more for such things. Having characters being naturally self-sustaining doesn't make for that interesting gameplay - in my opinion, it is quite the opposite, and led to the `monster conveyor belt' experience grinding that seems to be so common in our current tmwAthena server.
Merely significantly increasing the damage dealt doesn't seem right either, judging by the tmwAthena battle logs - specifically, certain areas of the graveyard. Characters with sufficient damage reduction are fine, but those without are utterly destroyed by it. Not that there can't be areas where this is the case, as it encourages specialization, but it can't be used as a general solution.
I've implemented a possible solution as described above, but it will still need testing before I can decide whether to use it for TMW or not.---Freeyorp