Fixes with projectile bump() on border objects.
Fixes some projectile on_hit() not calling the parent on_hit.
Move projectile mob hit check code to mob/CanPass().
Simplifies projectile/CanPass()
Fixes runtime in projectile/Bump()
Fixes issue #1291
Cleaned up some files of projectiles/firing.dm
Instead of calling process(), when firing a projectile it will use fire()
Projectiles will now use qdel(), due to this, the emitters beams won't be in the object pool.
*All spiders can now web turf (but AI controlled non-nurses won't choose to), only nurse spiders can wrap items and lay eggs.
*Eggs laid by a player controlled nurse spider will eventually grow into player controlled spiders, while AI lain eggs will only result in AI spiders
*Adds non nurse spiders to the staff of change as they pass my rules for inclusion (Leaves a corpse, can do everything as a player the NPC can do, can't dominate a round by reproduction)
I take no responsibility for spidercode, it's a bit iffy but as far as I can tell it all works for players now.
Changes the wand of fireball projectile to have the same !!FUN!! proximity detonation properties as the spell version. Slightly moved the damage types from getting hit by the fireball around to better simulate the experience.
Fun fact about spell fireballs: Because the projectile is desiged to explode if it comes within a square of somebody who isn't the wizard direct contact between fireballs and mobs is very rare. This means that while the fireballs are designed to do an extra 25 brute and 20 burn ON CONTACT this usually doesn't happen.
That's why the added damage on the wand here isn't 25/20, because that would actually make it signigicantly better than the spell.
Also changes trees and space bats to "hostile" faction because they were copypasta'd carp before that, as well as changing goats to "neutral" and attack_self 1 so that the great mining drone / goat wars end
---
A Few New Wizard Items
Staff of Chaos: Shoots random magic bolts. Charges faster and can hold more shots than other staves.
Staff of Door Creation: Works the same as the wand of door creation. There is apparently demand for this! Charges faster and can hold more shots than other staves.
Wand Assortment: A belt that comes of one of each useful wand, generated with the highest number of shots possible.
---
Cleaning Up the Spellbook
The spellbook was getting REALLY long, so it's been segmented into pages for spells, items, and one time use spells (aka the fun page). The spellbook also highlights the fact that you can upgrade spells better now.
---
Summon Magic Rebalancing
There's now a new catagory of magic items that are especially potent. These have a very low chance of showing up now and only one can spawn during a casting of summon magic, if one even spawns at all. The person who gets it is not guarenteed to be a surivor either.
In this category: Staff of Animation, Staff of Change, Staff of Chaos, Wand Assortment, Contract of Apprenticeship.
Additionally the staff of door creation is now in the normal pool and the staff of change is no longer in the normal pool.
---
Misc Stuff
Adds Bats and Goats to the staff of change.
Changes the charge spell so if you charge something that can charge on its own there's no chance of degradation.
Hopefully nothing went wrong but you never know.
Conflicts:
code/FEA/FEA_fire.dm
code/controllers/supply_shuttle.dm
code/game/gamemodes/changeling/changeling_powers.dm
code/game/machinery/autolathe.dm
code/game/machinery/drying_rack.dm
code/modules/hydroponics/hydroponics.dm
code/modules/projectiles/projectile/magic.dm
code/modules/reagents/Chemistry-Recipes.dm
code/modules/reagents/reagent_dispenser.dm
Player controlled animated statues that ghost won't start attacking everyone, they'll just stalk people without attacking.
A player controlled animated statue will only last as long as the statue would have lasted,at the end of the time the player is released from the statue as usual, and no longer has any onus to not fuck up the wizard.
NOTE: this means you can't use animate statues to "kill" a target, they'll recover eventually, and even if the round ends before they do, it still won't count.
Works pretty well. If it can't GC something, it'll just del() it and be done.
Speed is amazing, holy shit.
New procs you should be aware of:
qdel(atom/movable) - sets up an object for garbage collection. Call this rather than del(atom/movable).
atom/movable/Destroy() - called right before the object is GC'd, so it still has a loc. Also called if the object is del()'d.
new controller - garbage.dm has all the details on this. Basically it nulls all references on GC'd objects and force del() them if necessary.
Generally speaking, objects should use Destroy() for behavior prior to deletion rather than Del(). You should also always call the parent so the object gets the right gc_destroyed var set.
ISSUES:
Tries to GC mobs atm. This actually works for new players, not so much for humans/monkies/simple_animals/anything. I'm guessing it needs to clear out their mind and HUD and maybe other things.
Gibbing is really bugged. It works, but the overlays just sit there for awhile and ugh. I'm very tempted just to del() mob/living and mob/camera and call it a day.
qdel() equipment doesn't unequip the item.
Pipes don't generally GC correctly. Debugging suggests they get referenced in many pipenets and that isn't cleared properly. However some do work fine. Need assistance here.
Bots don't GC, probably in the radio controller.
Lots of other shit doesn't GC but it's hard to find them because of the pipe spam.
I think I'm calling Destroy() twice by accident.
Adds animate statues to the Staff of Change pool of mobs
Adds specific synergy between flesh to stone and the staff of animation where if you animate your statue'd people they'll turn to animated statues controlled by the victim who are instructed not to dunk the wizard.
Splits the "animal" sub pool in the Staff of Change into "Beast" and "Helpless Animals" to help raise the odds of the former against the latter. Changed odds will be reported in a comment to follow.
Odds of syndiborg are 5%, odds of normal borg are now 11.666...%, down from 16.666...%
syndiborgs spawn with their default lawset, which means that they can (and almost certainly will) try to kill everyone if left to their own devices
- Construct spells are an exception.
- Spells are transferred whenever a mind is transferred: cloning, pod cloning, borging, staff of changing.
- Spells are not transferred when you create a new mind for a new mob: soul stones, golems, respawns.
- To my surprise, this did not fix the issue where a mind-swapped wizard loses their spells when their original body is destroyed. I do not know why this happens.
- Non-human mobs can't use spells by default. Varedit spell.human_req to do that.
Fixes the mysteries of reviving simple animals in the least intrusive manner I could think of
Removes player_controlled because ckeys did much the same thing
Uses update_canmove() instead of hardseting it
One last Bugfix: Simple animals generated with no real_name will use their initial name as their real name so that transformed antags will not get a "(survived as )" because the thing they turned into didn't have a real_name set.
bugfix: gives notransform to etheral jaunting based on an observed edge case where a wizard was staff of changed while starting a jaunt and got stuck in bluespace for the rest of the round
meta: modified revive() so I could remove all that horrible snowflake I introduced to let reviving simple mobs come back
Bugfix: Dead player mice won't be converted to items so they can still be revived.
Bugfix: Players playing chicks won't die by developing into chickens anymore
Bugfix: Fixes an edge case where a poor soul struck by multiple polymorphing shots at once ends up in a state where they can't move.
Feature: Renames the wand of resurrection to the wand of healing to drive home the fact that it does the same things the staff of healing can do
Balancing: Gives the wand of healing more shots. 10, 5, 5, 4 up from 3, 2, 2, 1