예제 #1
0
        //standard constructor. location, hitbox radius, and the relevant graphics device.
        public Actor(Vector2 _position, int _hitRadius, Engine _engine, Hull _hull, GraphicsDevice _Graphics)
        {
            this.Position = _position;
            this.Delete = false;
            this.Graphics = _Graphics;
            /* NOTE: this constructor is used
             * to create base instances of an actor. Copy
             * constructors are needed when we create new concrete instances of
             * actors on the gamespace. For this however we can use shared references
             */
            this.hull = _hull;
            this.engine = _engine;
            this.WeaponList = new List<Weapon>();
            this.CollisionSetting = 0;

            this.Box = new Hitbox(_hitRadius, this.CollisionSetting, _position, _Graphics);
            this.CollisionEffects = new Dictionary<int, Effect>();
            this.ActiveEffects = new Dictionary<int,Effect>();
        }
예제 #2
0
        //COPY CONSTRUCTOR
        //for use when creating new instances of an actor
        public Actor(Actor a, Vector2 _position)
        {
            this.Position = _position;
            this.Graphics = a.Graphics;
            this.engine = new Engine(a.engine);
            this.hull = a.hull.Copy();
            SetHeading(a.engine.GetHeading());
            this.WeaponList = new List<Weapon>();
            foreach (Weapon w in a.WeaponList)
                AddWeapon(w);

            this.Box = new Hitbox(a.Box, Position);
            SetCollision(a.GetCollisionSetting());
            this.CollisionEffects = new Dictionary<int, Effect>();
            foreach (int e in a.CollisionEffects.Keys)
                AddEffect(a.CollisionEffects[e]);
            /* Active effects refer to things currently happening
             * to the actor, and thus are not copied when we create
             * a new actor
             */
            this.ActiveEffects = new Dictionary<int, Effect>();
        }
예제 #3
0
        private void InitializeBases()
        {
            ActorHull = new Hull(75, 5, 2);
            PlayerHull = new Hull(100, 5, 2);
            ProjectileHull = new Hull(1, -1, 0);

            baseDestroy = new EffectDestroy();
            baseDamage = new EffectDamage(20);

            baseEngine1 = new Engine(5, 50);
            baseEngine2 = new Engine(10, 100);
            baseEngine3 = new Engine(2, 20);
            Vector2 v = new Vector2(0, 0);
            baseFriendlyActor = new Actor(v, 10, baseEngine1, PlayerHull, Device);
            //baseFriendlyActor.AddEffect(baseDestroy);
            baseFriendlyActor.SetCollision(0);
            baseEnemyActor = new Actor(v, 10, baseEngine3, ActorHull, Device);
            baseEnemyActor.SetCollision(2);
            //baseEnemyActor.AddEffect(baseDestroy);
            baseProjectile1 = new Actor(v, 5, baseEngine2, ProjectileHull, Device);
            baseProjectile1.AddEffect(baseDamage);
            baseProjectile1.SetCollision(1);
            //baseProjectile1.AddEffect(baseDestroy);
            List<double> d = new List<double>();
            for (int i = 0; i < 3; i++)
                d.Add(0);
            baseWeapon1 = new Weapon(baseProjectile1, d, 0.075f, 0.12);

            InitializeAIStartStop();
            InitializeAICloseStop();
            InitializeAIHoming();
        }