Ideas for Stendhal/Effects: Difference between revisions
Jump to navigation
Jump to search
Content deleted Content added
imported>AntumDeluge Mark implemented statuses. |
imported>AntumDeluge m AntumDeluge moved page Stendhal/ideas/Effects to Ideas for Stendhal/Effects over redirect: Undoing previous move |
||
| (18 intermediate revisions by 2 users not shown) | |||
| Line 50: | Line 50: | ||
! Suggested for Stendhal |
! Suggested for Stendhal |
||
|- |
|- |
||
| blind |
| blind, dark, darkness |
||
|| player's attack accuracy is reduced |
|| player's attack accuracy is reduced |
||
|| same |
|| same |
||
|- |
|- |
||
| burn |
| burn, burning |
||
|| • character gradually, or each turn, loses HP<br>• lowered physical attack |
|| • character gradually, or each turn, loses HP<br>• lowered physical attack |
||
|| same |
|| same |
||
|- |
|- |
||
| confuse |
| confuse, confusion, confused, muddle |
||
|| character is uncontrollable and acts randomly |
|| character is uncontrollable and acts randomly |
||
|| <span style="color:green;">Implemented:</span> walking is limited to using directional arrows inverted (as poison is currently) |
|| <span style="color:green;">Implemented:</span> walking is limited to using directional arrows inverted (as poison is currently) |
||
|- |
|- |
||
| death |
| death, instant death, KO |
||
|| character is instantly KO'd |
|| character is instantly KO'd |
||
|| <span style="color:red;">not recommended</span> |
|| <span style="color:red;">not recommended</span> |
||
| Line 70: | Line 70: | ||
|| same |
|| same |
||
|- |
|- |
||
| doom |
| doom, condemned |
||
|| character is KO'd after a predetermined period of time if ailment isn't removed |
|| character is KO'd after a predetermined period of time if ailment isn't removed |
||
|| <span style="color:red;">not recommended</span> |
|| <span style="color:red;">not recommended</span> |
||
| Line 78: | Line 78: | ||
|| same |
|| same |
||
|- |
|- |
||
| freeze |
| freeze, freezing, frozen |
||
|| character can not move to a new position |
|| character can not move to a new position |
||
|| same |
|| same |
||
| Line 86: | Line 86: | ||
|| same |
|| same |
||
|- |
|- |
||
| paralysis |
| paralysis, paralized |
||
|| usually disables a certain ability temporarily |
|| usually disables a certain ability temporarily |
||
|| cannot physically attack for a time or until cured |
|| cannot physically attack for a time or until cured |
||
| Line 98: | Line 98: | ||
|| <span style="color:green;">Implemented:</span> while walking character stops after specified number of steps (player must resume walking) |
|| <span style="color:green;">Implemented:</span> while walking character stops after specified number of steps (player must resume walking) |
||
|- |
|- |
||
| silence |
| silence, mute |
||
|| character is unable to cast magic spells |
|| character is unable to cast magic spells |
||
|| same |
|| same |
||
| Line 106: | Line 106: | ||
|| same |
|| same |
||
|- |
|- |
||
| slow |
| slow, heavy |
||
|| character's attack is delayed |
|| character's attack is delayed |
||
|| same or slowed walking |
|| same or slowed walking |
||
|- |
|- |
||
| stone |
| stone, petrified |
||
|| character is unable to act until status removed |
|| character is unable to act until status removed |
||
|| <span style="color:red;">not recommended</span> |
|| <span style="color:red;">not recommended</span> |
||
|- |
|- |
||
| tiny |
| tiny, shrink, toad, frog, imp |
||
|| • significantly decreases attack and defense<br>• character's sprite transformed to correspond with affliction<br>• commands become limited sometimes reduced to only physical attacks |
|| • significantly decreases attack and defense<br>• character's sprite transformed to correspond with affliction<br>• commands become limited sometimes reduced to only physical attacks |
||
|| <span style="color:red;">not recommended</span> |
|| <span style="color:red;">not recommended</span> |
||
| Line 124: | Line 124: | ||
| zombie |
| zombie |
||
|| • healing items have the opposite effect<br>• causes immunity to poison in some games<br>• character is uncontrollable |
|| • healing items have the opposite effect<br>• causes immunity to poison in some games<br>• character is uncontrollable |
||
|| |
|| <span style="color:green;">implemented:</span> slowed walking |
||
|} |
|} |
||
| Line 185: | Line 185: | ||
! Effect Name !! Common Function !! Suggested for Stendhal |
! Effect Name !! Common Function !! Suggested for Stendhal |
||
|- |
|- |
||
| berserk |
|||
|| physical attack strength is greatly increased but control over character is lost |
|||
|| <span style="color:red;">not recommended</span> |
|||
|- |
|- |
||
| focus |
| focus, concentrate |
||
|| Same as above but player loses a turn or turn is slowed |
|||
|| none |
|||
|} |
|} |
||
= Possible Implementation = |
= Possible Implementation = |
||
==Needed Changes To Entities== |
|||
Some spell like Freeze or Weaken Creature temporarily affect specific attributes of an entity. As it is reasonable not to change the attributes themselves, it is necessary to add attribute modifiers to an entity. |
|||
A first approach would store the modifier factors in a class and the entity classes compute an attribute's value by summing up all modifiers and applying it to the actual attribute's value. To reflect the temporal nature of a modifier it is capable of determining its validity based on a timestamp within the method ''isValid''. This approach has the obvious disadvantage, that within ''GuidedEntity'' the modifiers for not existing attributes are available. |
|||
The second approach uses an additional layer of indirection to hide the modifiers for not existing attributes. On each level of the entity inheritance hierarchy is a specific modifier defined that is called to calculate the modified value. |
|||
The TurnNotifier is used to clean up expired modifiers. As a modifier is able to distinguish between being valid and not, it is not necessary, that this clean up helper runs every second or even more frequently. |
|||
<gallery caption="Attribute modifiers variants"> |
|||
File:Modifier-idea-01.png|Simple modifier |
|||
File:Modifier-idea-02.png|Modifier concept hiding the "full" modifiers |
|||
</gallery> |
|||
The second option has been implemented. It has been removed later due to compatibility reasons. |
|||
== Player Resistance & Status == |
== Player Resistance & Status == |
||