Exemplo n.º 1
0
        public void ThrowObject()
        {
            Sprite originalSprite = HoldedSprite;

            Rectangle originalSpriteCore = originalSprite.core;
            Vector2   newPosition        = MovementManager.GetRectNextTo(originalSpriteCore, bounds, direction);

            originalSpriteCore.X = (int)newPosition.X;
            originalSpriteCore.Y = (int)newPosition.Y;

            newPosition               = MovementManager.MoveVector(new Vector2(originalSpriteCore.X, originalSpriteCore.Y), Tile.size, direction);
            originalSpriteCore.X      = (int)newPosition.X;
            originalSpriteCore.Y      = (int)newPosition.Y;
            originalSprite.canCollide = true;
            HoldedSprite.MapDepth     = Game.MapDepth.player;
            bool passable = originalSprite.passable;

            originalSprite.passable = false;
            if (!movementManager.CollisionCheck(originalSprite, originalSpriteCore) && movementManager.InsideMap(originalSprite, originalSpriteCore))
            {
                DiscardObject();

                originalSprite.position.X = originalSpriteCore.X;
                originalSprite.position.Y = originalSpriteCore.Y;
                map.AddObject(originalSprite);
            }
            originalSprite.passable = passable;
        }
Exemplo n.º 2
0
        public Mine(Player source, int strength, Sprite sprite)
            : base(sprite.texture, sprite.position, sprite.drawingCoordinates)
        {
            this.source   = source;
            this.strength = strength;

            MapDepth = Game.MapDepth.below;

            collisionFunction = Mine.UpdateMineCollision;
            canCollide        = false;
            position          = MovementManager.GetRectNextTo(bounds, source.bounds, source.direction);
            //position = MovementManager.MoveVector(position, Tile.size * 2, source.direction);
        }
Exemplo n.º 3
0
        public Projectile(Texture2D texture, float speed, Player source, int pathDestination, int strength, SoundEffect launchSound, SoundEffect hitSound)
            : base(texture, new Vector2())
        {
            this.source          = source;
            this.pathDestination = pathDestination;
            this.launchSound     = launchSound;
            this.hitSound        = hitSound;
            this.speed           = speed;
            this.strength        = strength;
            this.direction       = source.direction;

            Vector2 result = MovementManager.GetRectNextTo(bounds, source.bounds, source.direction);

            position = result;

            if (launchSound != null)
            {
                launchSound.Play();
            }
        }
Exemplo n.º 4
0
        private bool Interact()
        {
            Rectangle interactRect = new Rectangle(0, 0, Tile.size, Tile.size);
            Vector2   result       = MovementManager.GetRectNextTo(interactRect, bounds, direction);

            interactRect.X = (int)result.X;
            interactRect.Y = (int)result.Y;

            foreach (GameObject gameObject in map.gameObjectList)
            {
                if (camera.InCamera(gameObject))
                {
                    if (interactRect.Intersects(gameObject.core) && gameObject.interactFunction != null)
                    {
                        gameObject.interactFunction(this, gameObject);
                        return(true);
                    }
                }
            }
            return(false);
        }
Exemplo n.º 5
0
        public override void Attack(Map map, Player player)
        {
            base.Attack(map, player);

            //attack
            Rectangle rangeRect     = new Rectangle(0, 0, (int)(Tile.size * range), (int)(Tile.size * range));
            Vector2   rangePosition = MovementManager.GetRectNextTo(rangeRect, player.bounds, player.direction);

            rangeRect.X = (int)rangePosition.X;
            rangeRect.Y = (int)rangePosition.Y;

            bool hit = false;

            foreach (GameObject gameObject in player.map.gameObjectList)
            {
                if (player.camera.InCamera(gameObject))
                {
                    Enemy enemy = gameObject as Enemy;
                    if (enemy != null)
                    {
                        if (rangeRect.Intersects(enemy.core))
                        {
                            enemy.DealDamage(player);
                            hit = true;
                        }
                    }
                }
            }

            if (hit)
            {
                attackSound.Play();
            }
            else
            {
                swingSound.Play();
            }
        }