GAM456-SpaceInvaders / SpaceInvaders / 6_Collision / Visitor.cs
Visitor.cs
Raw
using System;
using System.Diagnostics;


namespace SpaceInvaders
{
    public abstract class Visitor : DLink
    {
        //-------------------------------------------------------------------
        //  ABSTRACT METHOD
        //-------------------------------------------------------------------

        public abstract void Accept(Visitor other);


        //-------------------------------------------------------------------
        //  VIRTUAL METHODS
        //-------------------------------------------------------------------

        //NULL OBJECT--------------------------------------------------------
        public virtual void Visit(NullObject nullobj)
        {
            Debug.WriteLine("Visit by Null Object not implemented");
            Debug.Assert(false);
        }

        //ALIENS-------------------------------------------------------------
        public virtual void Visit(AlienGrid alien)
        {
            Debug.WriteLine("Visit by Alien Grid not implemented");
            Debug.Assert(false);
        }

        public virtual void Visit(AlienColumn alien)
        {
            Debug.WriteLine("Visit by Alien Column not implemented");
            Debug.Assert(false);
        }

        public virtual void Visit(SquidAlien alien)
        {
            Debug.WriteLine("Visit by Squid Alien not implemented");
            Debug.Assert(false);
        }

        public virtual void Visit(CrabAlien alien)
        {
            Debug.WriteLine("Visit by Crab Alien not implemented");
            Debug.Assert(false);
        }

        public virtual void Visit(OctopusAlien alien)
        {
            Debug.WriteLine("Visit by Octopus Alien not implemented");
            Debug.Assert(false);
        }

        public virtual void Visit(UFOAlienRoot alien)
        {
            Debug.WriteLine("Visit by UFO Alien Root not implemented");
            Debug.Assert(false);
        }

        public virtual void Visit(UFOAlien alien)
        {
            Debug.WriteLine("Visit by UFO Alien not implemented");
            Debug.Assert(false);
        }

        //BOMBS--------------------------------------------------------------
        public virtual void Visit(BombRoot bomb)
        {
            Debug.WriteLine("Visit by Bomb Root not implemented");
            Debug.Assert(false);
        }

        public virtual void Visit(Bomb bomb)
        {
            Debug.WriteLine("Visit by Bomb not implemented");
            Debug.Assert(false);
        }

        //SHIP---------------------------------------------------------------
        public virtual void Visit(ShipRoot ship)
        {
            Debug.WriteLine("Visit by Ship Root not implemented");
            Debug.Assert(false);
        }

        public virtual void Visit(Ship ship)
        {
            Debug.WriteLine("Visit by Ship not implemented");
            Debug.Assert(false);
        }

        //MISSILE------------------------------------------------------------
        public virtual void Visit(MissileGroup missile)
        {
            Debug.WriteLine("Visit by Missile Group not implemented");
            Debug.Assert(false);
        }

        public virtual void Visit(Missile missile)
        {
            Debug.WriteLine("Visit by Single Missile not implemented");
            Debug.Assert(false);
        }


        //SHIELDS------------------------------------------------------------
        public virtual void Visit(ShieldGrid shield)
        {
            Debug.WriteLine("Visit by Shield Grid not implemented");
            Debug.Assert(false);
        }

        public virtual void Visit(ShieldColumn shield)
        {
            Debug.WriteLine("Visit by Shield Column not implemented");
            Debug.Assert(false);
        }

        public virtual void Visit(ShieldRoot shield)
        {
            Debug.WriteLine("Visit by Shield Root not implemented");
            Debug.Assert(false);
        }

        public virtual void Visit(ShieldBrick shield)
        {
            Debug.WriteLine("Visit by Shield Brick not implemented");
            Debug.Assert(false);
        }

        //WALLS--------------------------------------------------------------
        public virtual void Visit(WallGroup wall)
        {
            Debug.WriteLine("Visit by Wall Group not implemented");
            Debug.Assert(false);
        }

        public virtual void Visit(LeftWall wall)
        {
            Debug.WriteLine("Visit by Left Wall not implemented");
            Debug.Assert(false);
        }

        public virtual void Visit(RightWall wall)
        {
            Debug.WriteLine("Visit by Right Wall not implemented");
            Debug.Assert(false);
        }

        public virtual void Visit(TopWall wall)
        {
            Debug.WriteLine("Visit by Top Wall not implemented");
            Debug.Assert(false);
        }

        public virtual void Visit(BottomWall wall)
        {
            Debug.WriteLine("Visit by Bottom Wall not implemented");
            Debug.Assert(false);
        }

        //BUMPERS-------------------------------------------------------------
        public virtual void Visit(BumperRoot bumper)
        {
            Debug.WriteLine("Visit by Bumper Root not implemented");
            Debug.Assert(false);
        }

        public virtual void Visit(LeftBumper bumper)
        {
            Debug.WriteLine("Visit by Left Bumper not implemented");
            Debug.Assert(false);
        }

        public virtual void Visit(RightBumper bumper)
        {
            Debug.WriteLine("Visit by Right Bumper not implemented");
            Debug.Assert(false);
        }


    } // end class

} // end namespace