Ideas for Stendhal/Magic

From Arianne
Jump to: navigation, search


Ideas for Stendhal

Mostly implemented


Related pages

Contents

Previous discussions from meetings

Defining spells

Spell Ideas

Sorted

Unsorted

perhaps only for non-players and only for creature whos level is not much above the caster's level

Needed Changes To Entities Green-tick.png

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.

The second option has been implemented.

There still needs to be a generic way on how to display the modified attributes at the client side.

Learning Spells

Learning spells should be a two step thing. First you have to solve a quest and then you can learn spells from a wizard in exchange of money. There should be one quest per nature and the quests should be startable by the fitting wizard then. As a rough scheme the learning quests could be a combination of collector and kill quest. For example it could be like “bring 5 carbuncles and kill a red dragon” if a someone wants to learn about fire magic.

There could be another quest, that enables the four other quests and rewards you with the necessary items like spellbook or magic wand. The starting NPC could also sell those items if you lost them after having solved that quest: Stendhal Quest Ideas/Learn about magic

A shop for each nature is available after solving the learning quest for each nature. In those shops players will be able to buy new spells.

GUI integration

The client has to support casting spells in several ways. First of all there is need for displaying spells and functionality for casting and target selection. Furthermore it is desirable to add some visual effects for a casted spell and even more some sound effects for that.

As a very first step it is helpful to be able to test spells without having the full infrastructure available. So there is a script called SummonSpell to obtain spells for a player and there's also a simple slash command that enables a tester to cast a spell at a desired target.

Allow early testing Green-tick.png

For being able to test as early as possible there is some code that enables to test the already implemented spells. There are basically three steps to consider:

/script SummonSpell.class [character] [spell name]
/alter [character] base_mana add 1000
/alter [character] mana add 1000
/cast [spell id] [target name or id]
/script EnableFeature.class [character] spells

This can be undone by the DisableFeature script:

/script DisableFeature.class [character] spells

Ideas on casting spells via GUI

Graphic Ideas

Spellnatures.png Spell natures (ice, fire, light, dark)
Heal.png Example for the spell "heal"
Fireball.png Example for the spell "fireball" - scary :)
Freeze.png Example for the spell "freeze"
Drain.png Example for the spell "drain" - or something else :)
Manapotion.png A bottle of mana
Magicwand.gif A magic wand

Balancing

Mages

The player is not going to have to decide his class to be a mage in order to be able to use magic. We are not going to have a strict line, between warrior and mage. Players might be 80% warrior 20% mage because they happen to fight 80% of the time and only use magic 20% of the time Our implementation of magic, the balancing above, is what will ensure, that the player can't be overpowerful or combine brute force with magic, effectively.


TODO

Personal tools
Namespaces
Variants
Actions
Navigation
stendhal for players
portal
resources
Toolbox