Caster AI

Caster AI is an AI followed by the caster class of enemies. Casters move exclusively via teleporting, and fire slow-moving projectiles that travel through blocks.
== Caster enemies ==
Enemy	Projectile 	Biome
 	 	Dungeon
 	Inferno 	Dungeon
 	Shadow Beam	Dungeon
 	Lost Soul 	Dungeon
 	 	Underworld
 	 	Goblin Invasion
 	 	Cavern
 	 	Cavern
 	 	Corrupted/Crimson Underground Desert
== Behavior ==
Casters always perform the following actions in succession:
# Check for a location to teleport to, that:
#* is within 20 tiles from the player, but at least 4 tiles away
#* contains a space free from solid blocks that is at least 4 blocks high and 3 blocks wide
#* does not contain lava
# Teleport to a random valid location, if there are any
# Fire 3 projectiles towards the player in succession
# Pause for about 3 seconds after firing
# Check for other valid teleport locations, beginning the cycle again.
* Dungeon-based Casters will only teleport to spaces containing any variant of naturally-placed Dungeon Brick Wall, effectively preventing them from teleporting anywhere outside of the Dungeon.
* If damage is taken while firing, a Caster will stop firing and begin the 3-second pause immediately, followed by a teleport.
* If damage is taken during a 3-second pause, the pause countdown is reset back to 3 seconds, followed by a teleport. Taking repeated damage will continuously reset the countdown timer and prevent the Caster from moving or firing.
** Necromancers and Diabolists teleport as soon as they take damage, so it may be difficult to defeat these enemies with low-damage weapons.
** Ragged Casters will not teleport immediately after being hit, but they have no delay between teleporting and firing their shots.
* Casters will never walk or jump. Their only method of movement is teleporting (aside from knockback from being attacked).
* Casters' projectiles travel through all block types. Excepting Necromancers, Diabolists, and Ragged Casters, each can also be destroyed by a single swipe with any weapon or tool.
== Tips ==
Using a fast weapon which attacks continuously while holding the attack button makes for an effective shield against Casters' projectiles. Weapons like the Muramasa will work perfectly (even pickaxes, hammers, or axes will work reasonably well, as their swings similarly do not require individual clicks). An Inferno Potion also blocks their projectiles.
The Death Sickle, Mushroom Spear, Chlorophyte Saber, , or the Nettle Burst are effective both for taking down projectiles and attacking Casters, since they are powerful weapons and can travel through walls. They have the best chance of stopping projectiles early, being capable of taking down projectiles at a reasonable distance even when they are coming through a thick wall. They are also good for attacking Casters when they are out of reach due to teleporting behind walls.
After Casters have fired their 3-projectile volley, there is a 3-second gap until they teleport; this is the perfect time to attack. Once you have started attacking, make sure you do not stop for too long, or else they will teleport again. Repeated attacks prevent Casters from firing or teleporting away.
Sometimes it is best to shield off their attacks when they are far away or in a hard-to-reach area, and wait until they teleport within attack range.
Inferno Potions will destroy all caster projectiles on contact, except Necromancers, Diabolists, and Ragged Caters as aforementioned.
== History ==