rpd:affinities_mechanic
Differences
This shows you the differences between two versions of the page.
| rpd:affinities_mechanic [2025/12/29 09:28] – Update wiki pages: rename files to follow naming convention, add missing pages, fix formatting issues mike | rpd:affinities_mechanic [2025/12/29 09:33] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Magic Affinities Mechanic ====== | ||
| + | **Magic Affinities** in Remixed Dungeon determine which spells are available to a character class or hero subclass. Each class typically has a primary affinity which grants access to specific spells. | ||
| + | |||
| + | ==== Affinity System Code ==== | ||
| + | The magic affinity system is implemented in several Java files: | ||
| + | |||
| + | <code java> | ||
| + | // In SpellHelper.java | ||
| + | public static final String AFFINITY_NECROMANCY = " | ||
| + | public static final String AFFINITY_ELEMENTAL | ||
| + | public static final String AFFINITY_RAGE | ||
| + | public static final String AFFINITY_DEMONOLOGY | ||
| + | public static final String AFFINITY_NATURE | ||
| + | public static final String AFFINITY_SHADOW | ||
| + | public static final String AFFINITY_COMMON | ||
| + | |||
| + | // In HeroClass.java | ||
| + | private String magicAffinity = Utils.EMPTY_STRING; | ||
| + | |||
| + | // In SpellFactory.java | ||
| + | static private Map< | ||
| + | </ | ||
| + | |||
| + | ==== List of Magic Affinities ==== | ||
| + | |||
| + | ==== Common ==== | ||
| + | * **Description: | ||
| + | * **Classes: | ||
| + | * **Spells:** [[rpd: | ||
| + | * **Code Reference: | ||
| + | * **String Resource:** '' | ||
| + | |||
| + | ==== Combat ==== | ||
| + | * **Description: | ||
| + | * **Spells:** [[rpd: | ||
| + | * **String Resource:** '' | ||
| + | |||
| + | ==== Elemental ==== | ||
| + | * **Description: | ||
| + | * **Spells:** [[rpd: | ||
| + | * **Code Reference: | ||
| + | * **String Resource:** '' | ||
| + | |||
| + | ==== Necromancy ==== | ||
| + | * **Description: | ||
| + | * **Spells:** [[rpd: | ||
| + | * **Code Reference: | ||
| + | * **String Resource:** '' | ||
| + | |||
| + | ==== Rogue ==== | ||
| + | * **Description: | ||
| + | * **Spells:** [[rpd: | ||
| + | * **String Resource:** '' | ||
| + | |||
| + | ==== Witchcraft ==== | ||
| + | * **Description: | ||
| + | * **Classes: | ||
| + | * **Spells:** [[rpd: | ||
| + | * **String Resource:** '' | ||
| + | |||
| + | ==== Huntress ==== | ||
| + | * **Description: | ||
| + | * **Spells:** [[rpd: | ||
| + | * **String Resource:** '' | ||
| + | |||
| + | ==== Elf ==== | ||
| + | * **Description: | ||
| + | * **Spells:** [[rpd: | ||
| + | * **String Resource:** '' | ||
| + | |||
| + | ==== Priest ==== | ||
| + | * **Description: | ||
| + | * **Classes: | ||
| + | * **Spells:** [[rpd: | ||
| + | * **String Resource:** '' | ||
| + | |||
| + | ==== Plague Doctor ==== | ||
| + | * **Description: | ||
| + | * **Classes: | ||
| + | * **Spells:** [[rpd: | ||
| + | * **String Resource:** '' | ||
| + | |||
| + | ==== Rage ==== | ||
| + | * **Code Reference: | ||
| + | * **String Resource:** '' | ||
| + | |||
| + | ==== Nature ==== | ||
| + | * **Code Reference: | ||
| + | * **String Resource:** '' | ||
| + | |||
| + | ==== Shadow ==== | ||
| + | * **Code Reference: | ||
| + | * **String Resource:** '' | ||
| + | |||
| + | ==== Demonology ==== | ||
| + | * **Code Reference: | ||
| + | * **String Resource:** '' | ||
| + | |||
| + | ==== Dev ==== | ||
| + | * **Description: | ||
| + | * **Spells:** [[rpd: | ||
| + | |||
| + | ==== Affinity Implementation ==== | ||
| + | The affinity system is implemented using Lua scripts in '' | ||
| + | |||
| + | <code lua> | ||
| + | -- In CustomSpellsList.lua | ||
| + | local spells = {} | ||
| + | spells[" | ||
| + | spells[" | ||
| + | |||
| + | spells[" | ||
| + | spells[" | ||
| + | spells[" | ||
| + | spells[" | ||
| + | spells[" | ||
| + | spells[" | ||
| + | spells[" | ||
| + | |||
| + | spells[" | ||
| + | |||
| + | return spells | ||
| + | </ | ||
| + | |||
| + | ==== Class Implementation ==== | ||
| + | The hero class determines the magic affinity: | ||
| + | |||
| + | <code java> | ||
| + | // In Hero.java | ||
| + | public boolean hasMagicAffinity() { | ||
| + | return !heroClass.getMagicAffinity().isEmpty(); | ||
| + | } | ||
| + | |||
| + | // In HeroClass.java | ||
| + | private String magicAffinity = Utils.EMPTY_STRING; | ||
| + | </ | ||
| + | |||
| + | ==== Code References ==== | ||
| + | * Java: [[https:// | ||
| + | * Java: [[https:// | ||
| + | * Java: [[https:// | ||
| + | * Java: [[https:// | ||
| + | * Lua: [[https:// | ||
| + | * Lua: [[https:// | ||
| + | |||
| + | ==== Related Strings ==== | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | ==== Mechanics ==== | ||
| + | * **Spell availability** - Characters have primary access to spells matching their affinity | ||
| + | * **Cross-affinity access** - Some classes may have access to multiple affinities | ||
| + | * **Spell learning** - Affinity affects how spells are learned and used | ||
| + | * **Mastery titles** - Different affinities have different mastery titles determined by string resources | ||
| + | |||
| + | ==== Strategy ==== | ||
| + | * Choose classes based on preferred spell affinities | ||
| + | * Understand which spells are available to your character | ||
| + | * Plan spell usage around your character' | ||
| + | * Consider class-specific affinities when building your character | ||
| + | |||
| + | ==== See Also ==== | ||
| + | * [[rpd: | ||
| + | * [[rpd: | ||
| + | * [[rpd: | ||
| + | * [[rpd: | ||
| + | * [[rpd: | ||
| + | |||
| + | {{tag> rpd magic affinities spells mechanics }} | ||
rpd/affinities_mechanic.txt · Last modified: by 127.0.0.1
