Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Magiclysm] Add Shifter druid profession + wildshifts #74988

Merged
merged 6 commits into from
Jul 16, 2024

Conversation

Standing-Storm
Copy link
Contributor

@Standing-Storm Standing-Storm commented Jul 12, 2024

Summary

Mods "[Magiclysm] Add Shifter druid profession + wildshifts"

Purpose of change

I had the idea to add a surviving druid you could go to a quest for and, if you're a druid, they would teach you the ancient druidic art of transforming into an animal...but I realized doing the entire thing in one PR would be huge, so here's the actual transformations and a profession that starts with 1.

Describe the solution

Add the Shifter Druid profession, a druid who concentrated more on the ancient art of transformation than druidic magic. They start with the ability to transform into one type of animal: bear (tough, good in combat, strong), deer (fast, very good at running, can fight with antlers if necessary), or raven (can't fight basically at all, very fragile, but can fly). An EoC lets them pick one at the beginning of the game.

Since they spent most of their time studying the art of shifting, they only start with a single spell (Nature's Communion).

It costs 50 mana to transform and you can spend as long as you like in each form, but the form cannot cast spells and you do not regenerate mana while transformed. You cannot talk to anyone in animal form and you cannot craft anything, and hopefully eventually you won't be able to pick anything up or open doors in animal form either, but at the moment there's no easy way to prevent those while still allowing you to do other things.

To help with infrastructure for this (and future similar projects), I edited the NON_MAGICAL spell flag, currently used only three times (and not at all in Magiclysm) so that spells with it are not blocked by the NO_SPELLCASTING character flag.

Describe alternatives you've considered

Testing

Each form works, forms are mutually exclusive, and you cannot transform into a form if you already have a form. NON_MAGICAL allows spell (ravens flying upward implemented as a spell) even through NO_SPELLCASTING.

The disadvantage I'm not sure how to overcome is size flags--bears are HUGE and ravens are TINY, but the flags are checked in order from smallest to largest. That means if you're a goblin, who have the TINY flag, the checking stops there and your size isn't actually increased when you transform into a bear.

Looks like I might need to add special handling to mutation.cpp line 488 to handle shapeshifted size (SHAPESHIFT_SIZE_TINY etc and a TEMPORARY_SHAPESHIFT flag ), so they're checked before regular size. I can do that in a follow-up PR.

Additional context

@github-actions github-actions bot added [JSON] Changes (can be) made in JSON Mods Issues related to mods or modding Mutations / Traits / Professions/ Hobbies Mutations / Traits / Professions/ Hobbies Mods: Magiclysm Anything to do with the Magiclysm mod Mechanics: Enchantments / Spells Enchantments and spells EOC: Effects On Condition Anything concerning Effects On Condition labels Jul 12, 2024
@github-actions github-actions bot requested a review from KorGgenT July 12, 2024 04:59
@github-actions github-actions bot added json-styled JSON lint passed, label assigned by github actions astyled astyled PR, label is assigned by github actions labels Jul 12, 2024
@Standing-Storm Standing-Storm marked this pull request as draft July 12, 2024 05:03
@github-actions github-actions bot added <Documentation> Design documents, internal info, guides and help. [C++] Changes (can be) made in C++. Previously named `Code` [Markdown] Markdown issues and PRs labels Jul 12, 2024
@github-actions github-actions bot added the BasicBuildPassed This PR builds correctly, label assigned by github actions label Jul 15, 2024
@Standing-Storm Standing-Storm marked this pull request as ready for review July 16, 2024 02:53
@Maleclypse Maleclypse merged commit bdc6ee9 into CleverRaven:master Jul 16, 2024
40 of 44 checks passed
@Standing-Storm Standing-Storm deleted the shifter-druid branch July 17, 2024 02:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
astyled astyled PR, label is assigned by github actions BasicBuildPassed This PR builds correctly, label assigned by github actions [C++] Changes (can be) made in C++. Previously named `Code` <Documentation> Design documents, internal info, guides and help. EOC: Effects On Condition Anything concerning Effects On Condition [JSON] Changes (can be) made in JSON json-styled JSON lint passed, label assigned by github actions [Markdown] Markdown issues and PRs Mechanics: Enchantments / Spells Enchantments and spells Mods: Magiclysm Anything to do with the Magiclysm mod Mods Issues related to mods or modding Mutations / Traits / Professions/ Hobbies Mutations / Traits / Professions/ Hobbies
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants