Implements a new MobExtension plugin which adds 'follow', and 'chase'
mixins that allow the mob to follow behind another mob, and chase them
while keeping at a safe distance to fire projectiles. Also adds a new
public method 'raycast' to CollisionManager, for drawing a line through
the world using bresenham's line algorithm whille checking for any impenetrable
objects.
Adds a new mob extension plugin which creates a walk_to() method on
Mobs to allow walking to another entity (accounting for the size of the
entity) with an optional facing position.
Adds a mob-extension plugin, which allows creating modules as mixins to
be monkey-patched into the Mob class. Having a standard method of doing
this prevents confusing problems with mixin name conflicts, by allowing
the plugin to raise an error that 2 mixins with the same name exist.
Amongst other things, this:
* Stops the player from trying to leave the Runescape Guide's house if
they have yet to speak to him.
* Fixes the hint icon for both the Runescape Guide and the door.
* Ensures all files pass rubocop.
* Generally improves the code throughout the plugin.
* Fix OverRide Magic Spells
* Fix Process Element check
* Runes Read In the correct of how Runescape does (primary, elemental)
* Changed MAGIC_SKILL_ID for add exp to Skill::Magic
- Split HintIconMessage into two separate classes (PositionHintIconMessage and MobHintIconMessage)
- Split HintIconMessageEncoder into two separate encoders (PositionHintIconMessageEncoder and MobHintIconMessageEncoder)
This resolves#179
Add PositionHintIconMessage#reset
Fix parse errors introduced in e799577
This also resolves#181
Order enumerators by value
Clean up PositionHintIconHintMessageEncoder for 377/317
I forgot to check a few things when i changed magic check's
Issues Fix
* You couldn't teleport but now you can
* Illegal items would throw an error
* Process elements would get removed even if you couldn't cast the spell due to moving illegal items