# Magic Design Doc This is the design doc for SS14's magic system. It's a bit of a mix between a design doc, roadmap, and general plans for magic. This is my first time creating a design doc like this so please bear with me :pensive: ## General Idea The general idea is for magic to be taught to users through the use of spellbooks. Which in this case is just granting actions to the player to perform the spells. The original PR had spellbooks learning/unlearning through wielding the spellbook. It was a great starting point, as it was the point to just have a very simple setup, but with future spells like Instant Summons or Transformation it was changed so that the player learns a spell after a DoAfter. The roadmap would lead this into an eventual "master spellbook" for wizards, which on SS13 it worked by providing a UI for a book on use with a list of spells. Anyone who owned the spellbook would be able to spend points to gain spells and/or power up spells in exchange. I also understand that mind and such might be reworked soon so that spells/magic can be taught. Also magical artifacts existed like rods that had their own functions like changing a wall into a door or something like the Scrying Orb, which allowed a wizard to turn into a ghost temporarily. These are also on the plan to add in the future, but from what I understand Guns/Projectiles need to be reworked as well. ## Task List/Roadmap Whatever's in the task list isn't a 100% "this has to happen" but just a general idea of can be done in future PRs. - [x] Add a basic learning method for spells. - [ ] Add a master spellbook complete with points, cooldown reductions, equipment buys, etc. - [x] Have a Magic Component? - [x] Add projectile spells (might need to wait for a gun/projectile rework). - [x] Add effect spells (might need to wait for an effect system so it doesn't rely on reagents and such) - [x] Add runes for future spells like The Traps and eventually for cults. - [x] Have runes activate on specific triggers (on click, on collide, on timed collide). - [x] Add in some basic spells like Teleport/Blink or Knock - [x] Add in a magic rod/staff system (might need to wait for a gun/projectile rework). - [ ] Add an AntiMagic component that nullifies spells. - [x] Add some complex spells like Force Wall - [x] Add a way for the caster of Force Wall to be able to pass through, but not others (unless they have antimagic). - [x] Add DoAfters to Actions so you can have spells that require them (can open up stuff later to cults, slidecasting, etc) - [x] Generic targeted spawn spell - [x] Generic instant spawn spell - [x] Transformation (Polymorph) spells ## Magic Wishlist Just a general idea of what spells/magic items/etc to add when possible. Anything marked with a :joy: is just something I'd consider very difficult - [x] Fireball - [x] Rod Form - [x] Transform (self into magicarp) - [ ] Time Stop :joy: - [ ] Teleport to Area - [ ] Random Blink (teleport to a random safe location in short range) - [ ] Magic Missile - [x] Magic Rods (Fireball, Door, Locker, Healing, etc) - [ ] Scrying Orb - [ ] Visible Ghosts - [ ] Jaunt - [ ] Events :joy: - [ ] Instant Summons - [ ] Animation (animate inanimate objects) :joy: - [ ] Flesh to Stone (turns someone into a statue) - [ ] Cluwne (turns someone into a cluwne) - [ ] Nuclear Fist - [ ] Smite (gib who you touch) - [ ] Disable Technology (just an EMP) - [ ] Smoke - [ ] The Traps (spawns 4 random rune traps from a list in short range) - [ ] Spacetime Distortion :joy: - [ ] Repulse (pushes people away in an area) - [ ] Blind - [ ] Bind Soul (binds player "soul" to an object to allow them revival, turns them into a lich) - [ ] Mind Swap - [ ] Charge (recharge certain spells/rods that don't have a natural charge recovery) - [ ] Summon guns (summons guns in everyones hands/at their feet) - [ ] Summon magic (summons spellbooks in everyones hands/at their feet) - [ ] Wizarditis - [ ] Staff of Locker