Exemplo n.º 1
0
        public static void DetectCollision(FireballObject fireball)
        {
            List <IGameObject> gameObjects = new List <IGameObject>(Game1.Instance.currentState.Level.GetObjects());

            gameObjects.AddRange(Game1.Instance.currentState.Level.BigFloorRectangles);
            List <IEnemy> enemies           = new List <IEnemy>(Game1.Instance.currentState.Level.GetEnemies());
            Rectangle     fireballRectangle = fireball.GetHitBox();

            foreach (IGameObject collidedObject in gameObjects)
            {
                Rectangle collidedObjectRectangle = collidedObject.GetHitBox();
                if (fireballRectangle.Intersects(collidedObjectRectangle))
                {
                    if (collidedObject is IBlock)
                    {
                        FireballBlockCollisionResponder.FireballCollideWithBlock(fireball, collidedObject);
                    }
                    else if (collidedObject is IPipe)
                    {
                        FireballPipeCollisionResponder.FireballCollideWithPipe(fireball, (IPipe)collidedObject, Game1.Instance.currentState.Level);
                    }
                }
            }
            foreach (IEnemy enemy in enemies)
            {
                Rectangle enemyRectangle = enemy.GetHitBox();
                if (fireballRectangle.Intersects(enemyRectangle))
                {
                    Game1.Instance.currentState.Level.AddObject(new FireballExpolsion((int)fireball.Position.X, (int)fireball.Position.Y));
                    FireballEnemyCollisionResponder.FireballCollideWithEnemy(fireball, enemy);
                }
            }
        }
Exemplo n.º 2
0
        public FireballObject GetFireballObjects()
        {
            string         FIREBALL_API_PATH = BASE_URL;
            string         fireballRaw       = "";
            FireballObject fireballData      = null;

            httpClient.BaseAddress = new Uri(FIREBALL_API_PATH);

            try
            {
                HttpResponseMessage response = httpClient.GetAsync(FIREBALL_API_PATH).GetAwaiter().GetResult();

                if (response.IsSuccessStatusCode)
                {
                    fireballRaw = response.Content.ReadAsStringAsync().GetAwaiter().GetResult();
                }

                if (!fireballRaw.Equals(""))
                {
                    fireballData = JsonConvert.DeserializeObject <FireballObject>(fireballRaw);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            return(fireballData);
        }
Exemplo n.º 3
0
    private void InputControls()
    {
        if (Input.touchCount > 0)
        {
            Touch touch = Input.GetTouch(0);

            if (frozenGame)
            {
                if (touch.phase == TouchPhase.Began)
                {
                    for (int i = 0; i < fireballs.Length; i++)
                    {
                        FireballObject fireball = fireballs [i].GetComponent <FireballObject> ();
                        fireball.freezePosition = false;

                        cardStyle.alignment = TextAnchor.UpperLeft;
                        cardStyle.fontSize  = 92;
                    }
                    frozenGame = false;
                    GetComponent <SpriteRenderer> ().sprite = aliveSprite;
                    score = 0;
                }
            }
            else
            {
                Vector3 newPosition = Camera.main.ScreenToWorldPoint(touch.position);
                newPosition.z      = 10;
                transform.position = newPosition;
            }
        }
    }
        public static void FireballCollideWithBlock(FireballObject fireball, IGameObject block)
        {
            Level      level             = Game1.Instance.currentState.Level;
            Rectangle  fireballRectangle = fireball.GetHitBox();
            Rectangle  blockRectangle    = block.GetHitBox();
            IBlock     castBlock         = (IBlock)block;
            ICollision collisionSide     = CollisionSideDetector.DetectCollisionSide(fireballRectangle, blockRectangle);

            if (castBlock.State is HiddenItemBlockState)
            {
                return;
            }

            if (collisionSide is TopCollision)
            {
                fireball.Position = new Vector2(fireball.Position.X, fireball.Position.Y - collisionSide.CollisionIntersection.Height);
                fireball.BounceOffGround();
            }
            else if (collisionSide is RightCollision)
            {
                level.AddObject(new FireballExpolsion((int)fireball.Position.X, (int)fireball.Position.Y));
                fireball.Explode();
            }
            else if (collisionSide is LeftCollision)
            {
                level.AddObject(new FireballExpolsion((int)fireball.Position.X, (int)fireball.Position.Y));
                fireball.Explode();
            }
            else if (collisionSide is BottomCollision)
            {
                level.AddObject(new FireballExpolsion((int)fireball.Position.X, (int)fireball.Position.Y));
                fireball.PhysicsObject.dy = 10.0F;
            }
        }
Exemplo n.º 5
0
        public void LoadFireball()
        {
            FireballHandler webHandler   = new FireballHandler();
            FireballObject  fireballData = webHandler.GetFireballObjects();

            int x = 1;

            foreach (Fireball s in fireballData.data)
            {
                IQueryable <Fireball> firetest = dbContext.FireballEntries
                                                 .Where(c => c.objectName == s.objectName);

                if (firetest == s | firetest.Count() == 0)
                {
                    s.fnum = x;
                    x++;
                    dbContext.FireballEntries.Add(s);
                }
                else
                {
                    s.fnum = x;
                    x++;
                    dbContext.FireballEntries.Update(s);
                }
            }
            dbContext.SaveChanges();
        }
Exemplo n.º 6
0
    public void ignite()
    {
        for (int i = 0; i < fireballs.Length; i++)
        {
            FireballObject fireball = fireballs [i].GetComponent <FireballObject> ();

            fireball.respawn();
            fireball.freezePosition = true;

            cardStyle.alignment = TextAnchor.MiddleCenter;
            cardStyle.fontSize  = 156;
        }
        frozenGame = true;
        GetComponent <SpriteRenderer> ().sprite = deadSprite;
    }
        public static void FireballCollideWithPipe(FireballObject fireball, IPipe pipe, Level level)
        {
            Rectangle  fireballRectangle = fireball.GetHitBox();
            Rectangle  pipeRectangle     = pipe.GetHitBox();
            ICollision collisionSide     = CollisionSideDetector.DetectCollisionSide(fireballRectangle, pipeRectangle);

            if (collisionSide is TopCollision)
            {
                fireball.BounceOffGround();
            }
            else
            {
                level.AddObject(new FireballExpolsion((int)fireball.Position.X, (int)fireball.Position.Y));
                fireball.Explode();
            }
        }
Exemplo n.º 8
0
 public FireballSprite(FireballObject fireballObject)
 {
     this.fireballObject = fireballObject;
     destination         = new Rectangle((int)fireballObject.Position.X, (int)fireballObject.Position.Y, 16, 16);
 }
Exemplo n.º 9
0
 public static void FireballCollideWithEnemy(FireballObject fireball, IEnemy enemy)
 {
     fireball.Explode();
     enemy.BeFlipped();
 }
 public static void FireballCollision(FireballObject fireball)
 {
     FireballCollisionDetection.DetectCollision(fireball);
 }