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

Arcane Spellcasting Update #50

Merged
merged 44 commits into from
Sep 7, 2024
Merged

Arcane Spellcasting Update #50

merged 44 commits into from
Sep 7, 2024

Conversation

tioluko
Copy link
Contributor

@tioluko tioluko commented Sep 3, 2024

About The Pull Request

There is more 3 notable changes this brings:

1. New spell icons

(I am far from being the ideal spriter for this, but I believe I managed to make it feel much more harmonious with the rest of the UI overall)

af

2. New spells for arcane casters

A few of them got snatched from divine casters and others are completely new to the game (using leftover ss13 codes to guide me, and with what I am learning I feel that will be able to make more complex skills soon)

Here's the current list:

Lightningbolt -Standard
Fireball -Standard
Greater Fireball -Standard (Only CourtWiz has access to it)
Fetch -Standard
Blindness -Arcane version of the existing one
Invisibility -Arcane version of the existing one
Ignite -Arcane version of the sacred flame
[New] Blink -Teleport to an selected open turn in range
[New] Swap -Swap places with a living target in range
[New] Smokescreen -Pops a small temporary smokescreen in the target area
[New] Telepathy -Mentally message someone in sight (not 1000% sure if the receiver gets the message correctly)
Example Swap/Smoke gifs
Telepathy

3. Randomized spell selection on spawn

For all classes that have access to Arcane magic (Mage, Sorcerer and Court Wizard), I have set in a way so they always start with from the table above: A single offensive spell(Fireball or Lightning) and Support/Utility spells for the rest of the selection (keeping the total amount of spells the same as it currently is), and of course, the Court Wizard will always start with his ol'reliable GreatFireball

Why It's Good For The Game

In my opinion, the current state for the arcane magic system on this game is BORING, one dimensional and repetitive
... you pick a mage and all you get fireball, lightning and a little fetch... OR you get Court wizard to get all that PLUS a bigger fireball...

Of course that this is not for me alone to decide but personally I think it can be the beginning of many future small additions that will make Subterra's magic system waaaay more interesting, engaging and definitely not repetitive.

There are also some not so visible changes that are more to make it easier to expand the spell casting system in an organized manner (honestly... this codebase is far from organized the skills/spells are all over the place)
For starters the Arcane Spells are now their own magic subtype /obj/effect/proc_holder/spell/arcane being mostly an alternate version of the current /obj/effect/proc_holder/spell/invoked, I did it mostly for organization purposes, and also to avoid frustration when dealing with spells that might have a similar version on other spell casting methods (like divine).
Of course I did not touch any of the spells that are not of the Arcane type, but It can definitely make it easier to organize and differentiate all the skill/spell types later on.

I only did it because I genuinely fell in love with this game and I fell that there is a LOT of potential to untap here (cursed spaghetti codebase aside) and I would love to keep contributing/trying to improve the spell casting system if you give me the green light to do so, and I have plenty of ideas not only for Arcane magic, but for Divine casters too

YET, I totally understand if this ends up being rejected... at least I had fun trying xD

Notes

I tried balance their casting cost/time/cooldowns somewhat, but be free to adjust/balance everything any way you like

The old spell list is still on spells/roguetown/wizard.dm, it is not only a backup because part of the Vampire spell list is still there (Maybe it would be better to put those in a specific file/folder?)

Line 59 in arcane.dm is an little addition that makes so you get some Arcane Skill exp gain on cast, seems to work so far (Delete/Edit it at your leisure)

I had to do a little personal touch to Archivist and add give him +1 Arcane skill because he does start with the Fetch spell for some reason (I dont think it will be a problem even if we add the spellbook system later because there is a hard Arcane skill req for it, and 1 is far from enough)

Known issues:

  • [EDIT] There is a "recruit" icon that are supposed to be for jobs with recruiting capabilities (like King, Lady, Priest, etc), I tried to find and set it to all of them, but there is a chance I might have forgotten a few because I don't think I know all of them and those seem to be located in weird places
  • Could not change the Undead eyes icon as well (and they seem kinda annoying to do so in a satisfying manner atm)
  • Testing it alone is far from ideal so its very understandable to be not trusting of this fork xD (testing a little to find my possible fuck ups would be nice)

Will still need to have charge values/drain/etc to be be balanced and quite possibly some minor bug-fixing
This is basically a pseudo spell/Invoked clone
Might as well do this if we end having both arcane and divine versions some spells
That will also help organizing future lists and shit (specially if we are adding spell books later)
This might as well become a entire folder later if the list becomes too big....
Optional new rare class I did just for fun, feel free to ignore it (It's basicalle a mix of warrior/mage with nerfs to both to balance it out.
(Basically a mix of Warrior and Mage with both parts considerably nerfed to balance things out)
The icon now gives a nice feedback to show when the claws are active/inactive
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we perhaps have these broken out into respective files?
If we're looking to expand the spell roster, or add complexity to spells in the future, having them more organized than just a single file holding all of them would be nice.

Copy link
Contributor Author

@tioluko tioluko Sep 4, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure, I imagined that would eventually be needed anyways xD
Tried to sort them nicely into a folder.

@tioluko
Copy link
Contributor Author

tioluko commented Sep 4, 2024

I also have a working branch using this one as a base for adding spellbooks that can teach those spells, and means of crafting/spawning them.

Dont wanna shove it in there since I don't even know if this base branch is acceptable (and it's already big as it is, lets go one thing at time)

@kaylexis
Copy link
Contributor

kaylexis commented Sep 5, 2024

this is peak..

Copy link
Contributor Author

@tioluko tioluko left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added the icon_overlay for some skill/spells missing them (mostly the recruiting abilities), organizanized the spell list a bit more and did some other minor touches.

@tioluko tioluko deleted the branch russ-money:main September 5, 2024 21:27
@tioluko tioluko closed this Sep 5, 2024
@tioluko tioluko deleted the main branch September 5, 2024 21:27
@tioluko tioluko restored the main branch September 5, 2024 21:29
@tioluko
Copy link
Contributor Author

tioluko commented Sep 5, 2024

I legit didn't knew renaming the base thing would close it here e.e Sorry

@tioluko tioluko reopened this Sep 5, 2024
you must at least see where you want to teleport into
@tioluko
Copy link
Contributor Author

tioluko commented Sep 6, 2024

Just fixed a issue with the Blink spell (being able to teleport even into places you dont have line of sight is too much)

@russ-money russ-money merged commit b42d988 into russ-money:main Sep 7, 2024
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants