X-Git-Url: https://git.r.bdr.sh/rbdr/super-polarity/blobdiff_plain/8bdfcb11a2c1023c684093c0f19f3cc65799e0f8..8ae8ea0d77ec654dd693b3912562b07a2b539b0f:/SuperPolarity/ActorManager.cs?ds=sidebyside diff --git a/SuperPolarity/ActorManager.cs b/SuperPolarity/ActorManager.cs index 56db26c..3a9b0db 100644 --- a/SuperPolarity/ActorManager.cs +++ b/SuperPolarity/ActorManager.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -47,6 +47,11 @@ namespace SuperPolarity foreach (Actor actor in Actors) { actor.Draw(spriteBatch); + + if (actor.GetType ().IsAssignableFrom (typeof(MainShip))) { + var mainActor = (MainShip)actor; + mainActor.ResetEnemyModification (); + } } } @@ -102,6 +107,16 @@ namespace SuperPolarity var angle = (float) Math.Atan2(dy, dx); var otherAngle = (float)Math.Atan2(-dy, -dx); + if (actor.GetType ().IsAssignableFrom (typeof(MainShip))) { + var mainActor = (MainShip)actor; + mainActor.UpdateEnemyModification (other); + } + + if (other.GetType ().IsAssignableFrom (typeof(MainShip))) { + var mainOther = (MainShip)other; + mainOther.UpdateEnemyModification (actor); + } + if (linearDistance < actor.MagneticRadius || linearDistance < other.MagneticRadius) { actor.Magnetize(other, (float)linearDistance, angle);