Ejemplo n.º 1
0
        protected override string UpdateAnimationState(Engine.Object o)
        {
            string anim = "";

            if (o is Engine.Player)
            {
                var player = o as Engine.Player;
                anim = player.InAir ? "inAir" : "idle";
                if (player.Death)
                {
                    anim = "death";
                }
                else if (player.Attacking)
                {
                    anim = "attack";
                }
                else if (!_inAir && player.InAir)
                {
                    anim = "jumping";
                }
                else if (_inAir && !player.InAir)
                {
                    anim = "falling";
                }
                else if (player.Velocity.Y == 0 && player.Velocity.X != 0)
                {
                    anim = "walking";
                }
                _inAir = player.InAir;
            }
            return(anim);
        }
Ejemplo n.º 2
0
        protected override void AfterLastFrame(Engine.Object obj)
        {
            base.AfterLastFrame(obj);
            if (obj is Player)
            {
                switch (CurrentSprite.name)
                {
                case "jumping":
                    SwitchTo("inAir");
                    break;

                case "inAir":
                    CanUpdate = true;
                    break;

                case "falling":
                    CanUpdate = true;
                    break;

                case "attack":
                    CanUpdate = true;
                    (obj as Player).Attacking = false;
                    break;

                case "death":
                    CanUpdate    = false;
                    CurrentFrame = 5;
                    obj.World.GameMode.GameStateManager.SwitchTo("GSGameFinished");
                    break;
                }
            }
        }
Ejemplo n.º 3
0
        public GridDungeon[,] LoadRandomDungeonRooms(Engine.Object parent, RandomDungeonGenerator generator)
        {
            var roomGrid = new GridDungeon[generator.Width / 20, generator.Height / 10];

            char[,] charGrid = generator.Generate();
            for (int x = 0; x < generator.Width / 20; x++)
            {
                char[,] tempCharGrid = new char[20, 10];
                for (int y = 0; y < generator.Height / 10; y++)
                {
                    for (int k = 0; k < 20; k++)
                    {
                        for (int j = 0; j < 10; j++)
                        {
                            tempCharGrid[k, j] = charGrid[x * 20 + k, y * 10 + j];
                        }
                    }

                    //create objectgrid and pass char[,], so it gets loaded into the grid
                    var room = new GridDungeon("randomRoom", parent, tempCharGrid, 96, 96);

                    //set the boundingBox
                    room.BoundingBox = new Rectangle(0, 0, 20 * 96, 10 * 96);

                    //add room to the correct place int the roomGrid
                    roomGrid[x, y] = room;
                }
            }
            return(roomGrid);
        }
Ejemplo n.º 4
0
        //------------------------------------------------------------------
        public Drawable(Object root, Game game, string name)
        {
            this.root = root;

            Scale = Vector2.One;
            Visible = true;

            LoadTexture (game, name);
        }
Ejemplo n.º 5
0
        private Engine.Object LoadEmptyCollisionBlock()
        {
            var obj = new Engine.Object("emptytile", this);

            obj.BoundingBox = new Rectangle(0, 0, 96, 96);
            obj.CanCollide  = true;
            obj.CanBlock    = true;
            return(obj);
        }
Ejemplo n.º 6
0
 public override void OnCollision(Engine.Object collider)
 {
     base.OnCollision(collider);
     if (collider is DestructableObject)
     {
         if ((collider as DestructableObject).Type == "SuperJump")
         {
             collider.Visible    = false;
             collider.CanCollide = false;
             World.Remove(collider);
         }
     }
 }
Ejemplo n.º 7
0
        public override void UpdateAnimationState(Engine.Object obj)
        {
            animation tempAnim = _animation;

            if (obj is Terror)
            {
                Terror zombie = obj as Terror;
                _animation = obj.VelocityX > zombie.WalkSpeed || obj.VelocityX < -zombie.WalkSpeed ? animation.RUNNING : animation.WALKING;
            }
            if (tempAnim != _animation)
            {
                SetupAnimation(obj);
            }
            Mirrored = obj.Velocity.X < 0 ? false : true;
        }
Ejemplo n.º 8
0
 public EnemyZombie(Engine.Object parent) : base("zombie", parent, new SpriteSheetZombie("Textures/Characters/IceZombie"))
 {
     _reactionRange    = 400;
     _attackRange      = 130;
     _sprintSpeed      = 250;
     _walkSpeed        = 25;
     _walkLeftBoundary = -96;
     _walkRightBoudary = 96;
     AttackSpeed       = 2300;
     Health            = 300;
     Damage            = 75;
     Mass       = 1.1f;
     SFXManager = new SFXZombie(this);
     _weapon    = new Weapon("weapon", World, new SpriteSheet("Textures/Hud/TimerFrame"), this, Damage);
     World.Add(_weapon);
     BoundingBox = new Rectangle(0, 0, 64, 89);
 }
Ejemplo n.º 9
0
        public override void SetupAnimation(Engine.Object obj)
        {
            if (obj is Terror)
            {
                Terror zombie = obj as Terror;
                base.SetupAnimation(obj);
                switch (_animation)
                {
                case animation.WALKING:
                    ResetAnimation(0, 8, 300, 768);
                    break;

                case animation.RUNNING:
                    ResetAnimation(0, 8, 40, 768);
                    break;
                }
            }
        }
Ejemplo n.º 10
0
        public LoginPopUp(Engine.Object parent) : base("LoginPopUp", parent)
        {
            //create texturedObjects
            var backGround = new TexturedObject("background", this, new SpriteSheet("Textures/HUD/LoginPopUpWindow"));

            //set boundingBox equal to boundingBox of background
            BoundingBox = backGround.BoundingBox;

            //create textObjects
            var warningMessage = new TextObject("warningMessage", "Hud", this);

            warningMessage.Text     = "Your account information is invalid";
            warningMessage.Color    = Microsoft.Xna.Framework.Color.Red;
            warningMessage.Position = new Microsoft.Xna.Framework.Vector2(31, 112);
            warningMessage.FitIntoRectangle(new Microsoft.Xna.Framework.Rectangle(0, 0, 230, 50));
            warningMessage.Visible = false;

            //create textBoxes
            _userNameBox          = new TextBox(this);
            _passWordBox          = new TextBox(this);
            _userNameBox.Position = new Microsoft.Xna.Framework.Vector2(119, 138);
            _passWordBox.Position = new Microsoft.Xna.Framework.Vector2(119, 176);

            //create buttons
            var buttonLogin  = new ButtonLogin(this, _userNameBox, _passWordBox, warningMessage);
            var buttonSignUp = new ButtonSignUp(this);

            buttonLogin.Position  = new Microsoft.Xna.Framework.Vector2(193, 228);
            buttonSignUp.Position = new Microsoft.Xna.Framework.Vector2(193, 338);

            //add Objects
            Add(backGround);
            Add(warningMessage);
            Add(_userNameBox);
            Add(_passWordBox);
            Add(buttonLogin);
            Add(buttonSignUp);
        }
Ejemplo n.º 11
0
 public Overworld(string id, Engine.Object parent, string assetName, int tileSize) : base(id, parent, assetName, tileSize)
 {
 }
Ejemplo n.º 12
0
        public HighScorePopUp(Engine.Object parent, int oldHighScore, int newHighScore) : base("highScorePopUp", parent)
        {
            //create background
            var backGround = new TexturedObject("background", this, new SpriteSheet("Textures/HUD/HighScorePopUpWindow"));

            //set boundingbox to boundingbox of background
            BoundingBox = backGround.BoundingBox;

            //create TextObjects
            var oldScore = new TextObject("oldHighScore", "Hud", this);

            oldScore.Text     = oldHighScore.ToString();
            oldScore.Color    = new Color(124, 93, 72);
            oldScore.Position = new Vector2(160, 120);

            var newScore = new TextObject("newHighScore", "Hud", this);

            newScore.Text     = newHighScore.ToString();
            newScore.Color    = new Color(124, 93, 72);
            newScore.Position = new Vector2(160, 305);

            var totalDamageDealt = new TextObject("totalDamageDealt", "Hud", this);

            totalDamageDealt.Text     = HighScoreManager.TotalDamageDealt.ToString();
            totalDamageDealt.Color    = new Color(124, 93, 72);
            totalDamageDealt.Position = new Vector2(160, 175);
            totalDamageDealt.Scale    = 0.6f;

            var totalDamageTaken = new TextObject("totalDamageTaken", "Hud", this);

            totalDamageTaken.Text     = HighScoreManager.TotalDamageTaken.ToString();
            totalDamageTaken.Color    = new Color(124, 93, 72);
            totalDamageTaken.Position = new Vector2(160, 202);
            totalDamageTaken.Scale    = 0.6f;

            var time = new TextObject("time", "Hud", this);

            time.Text     = GameModeManager.TimeManager.TotalSeconds.ToString();
            time.Scale    = 0.6f;
            time.Color    = new Color(124, 93, 72);
            time.Position = new Vector2(160, 230);

            var finished = new TextObject("finished", "Hud", this);

            finished.Text     = World.Player.Death ? "no" : "yes";
            finished.Scale    = 0.6f;
            finished.Color    = new Color(124, 93, 72);
            finished.Position = new Vector2(160, 255);

            //create buttons
            var buttonContinue = new ButtonContinue(this, "GSMainMenu");

            buttonContinue.Position = new Vector2(backGround.Width / 2 - buttonContinue.Width / 2, 350);

            //add objects
            Add(backGround);
            Add(buttonContinue);
            Add(oldScore);
            Add(newScore);
            Add(time);
            Add(finished);
            Add(totalDamageDealt);
            Add(totalDamageTaken);

            setupPossibleNewHighScore(oldHighScore, newHighScore);
        }
Ejemplo n.º 13
0
 public GridDungeon(string id, Engine.Object parent, char[,] grid, int tileWidth, int tileHeight) : base(id, parent, grid, tileWidth, tileHeight)
 {
     CanCollide = true;
 }
Ejemplo n.º 14
0
 public override void Update(GameTime gameTime, Engine.Object obj)
 {
     base.Update(gameTime, obj);
 }
Ejemplo n.º 15
0
 //------------------------------------------------------------------
 public Bounds(Object root, Vector2 position, Vector2 origin)
     : base(root)
 {
     Vector2 leftBottom = position - origin;
     rectangle = new Rectangle ((int) leftBottom.X, (int) leftBottom.Y, (int) (origin.X * 2), (int) (origin.Y * 2));
 }
Ejemplo n.º 16
0
 public WeaponPlayer(string id, Engine.Object parent, SpriteSheet spriteSheet, Character owner, int damage) : base(id, parent, spriteSheet, owner, damage)
 {
 }
Ejemplo n.º 17
0
 public SFXItem(Engine.Object source) : base(source)
 {
     Add("itemPickup", getSFX("Item Pickup"), false);
 }
Ejemplo n.º 18
0
 public WeaponThrowable(string id, Engine.Object parent, Engine.SpriteSheet spriteSheet, Engine.Object owner, int damage) : base(id, parent, spriteSheet, owner, damage)
 {
 }
Ejemplo n.º 19
0
 public GridDungeon(string id, Engine.Object parent, string assetName, int tileSize, Vector2 position) : base(id, parent, assetName, tileSize, position)
 {
 }