Пример #1
0
        public override void ResolveCollision(LinkCollisionResponse other)
        {
            if (!done)
            {
                Link          link          = (Link)other.entity;
                LinkInventory linkInventory = link.GetComponent <LinkInventory>();

                // update item inventory numbers
                switch (currentItem.GetItemType())
                {
                case "bow":
                    linkInventory.AddUseableItem((int)ItemInventory.UseInventory.BOW);
                    // Console.WriteLine("Bow = " + linkInventory.GetUseableItemCount((int)ItemInventory.UseInventory.BOW));
                    LevelManager.backdrop.Bow.GetComponent <Sprite>().SetVisible(true);
                    break;

                case "raft":
                    linkInventory.AddPassiveItem((int)ItemInventory.PassiveIventory.RAFT);
                    // Console.WriteLine("Raft = " + linkInventory.GetPassiveItemCount((int)ItemInventory.PassiveIventory.RAFT));
                    break;

                case "ladder":
                    linkInventory.AddPassiveItem((int)ItemInventory.PassiveIventory.LADDER);
                    // Console.WriteLine("Ladder = " + linkInventory.GetPassiveItemCount((int)ItemInventory.PassiveIventory.LADDER));
                    break;

                case "powerBand":
                    linkInventory.AddPassiveItem((int)ItemInventory.PassiveIventory.POWER_BAND);
                    // Console.WriteLine("Power Band = " + linkInventory.GetPassiveItemCount((int)ItemInventory.PassiveIventory.POWER_BAND));
                    break;

                default:
                    break;
                }

                Sprite       itemSprite      = entity.GetComponent <Sprite>();
                int          itemSpriteWidth = itemSprite.sprite.frames[itemSprite.sprite.currentFrame].Width;
                LinkBehavior linkBehavior    = link.GetComponent <LinkBehavior>();
                linkBehavior.picking_up_item = true;
                linkBehavior.linkHands       = 1;
                Transform linkTrans = link.GetComponent <Transform>();
                linkTrans.position += new Vector2(-itemSpriteWidth / 2, 0);
                Sprite linkSprite       = link.GetComponent <Sprite>();
                int    linkSpriteHeight = linkSprite.sprite.frames[linkSprite.sprite.currentFrame].Height;
                entity.GetComponent <Transform>().position          += new Vector2(0, -linkSpriteHeight);
                entity.GetComponent <ItemDeletionTimer>().startTimer = true;

                done = true;
            }
        }
Пример #2
0
        public override void Update(GameTime gameTime)
        {
            linkInventory = LevelManager.link.GetComponent <LinkInventory>();
            if (!visible)
            {
                if (linkInventory.GetDungeonItemCount((int)ItemInventory.DungeonInventory.COMPASS) > 0)
                {
                    entity.GetComponent <Sprite>().SetVisible(true);
                    visible = true;

                    LevelManager.backdrop.Minimap.GetComponent <MinimapDisplay>().BossRoomVisible();
                }
            }
        }
        public override void Update(GameTime gameTime)
        {
            linkInventory = Scene.Find("Link").GetComponent <LinkInventory>();
            if (!visible)
            {
                if (linkInventory.GetDungeonItemCount((int)ItemInventory.DungeonInventory.MAP) > 0)
                {
                    entity.GetComponent <Sprite>().SetVisible(true);
                    visible = true;

                    LevelManager.backdrop.Minimap.GetComponent <MinimapDisplay>().MinimapVisible();
                }
            }
        }
Пример #4
0
        public override void ResolveCollision(LinkCollisionResponse other)
        {
            if (!done)
            {
                Link          link          = (Link)other.entity;
                LinkInventory linkInventory = link.GetComponent <LinkInventory>();

                // update item inventory numbers
                switch (currentItem.GetItemType())
                {
                case "heartContainer":
                    Scene.Find("link").GetComponent <LinkHealthManagement>().health = Constants.LINK_STARTING_HEALTH;
                    Sound.PlaySound(Sound.SoundEffects.Get_Heart, false);
                    break;

                case "triforce":
                    linkInventory.AddPassiveItem((int)ItemInventory.PassiveIventory.TRIFORCE);
                    // Console.WriteLine("Triforce = " + linkInventory.GetPassiveItemCount((int)ItemInventory.PassiveIventory.TRIFORCE));
                    break;

                default:
                    break;
                }

                // animation for picking up item
                LinkBehavior linkBehavior = link.GetComponent <LinkBehavior>();
                linkBehavior.picking_up_item = true;
                linkBehavior.linkHands       = 2;
                Sprite    linkSprite       = entity.GetComponent <Sprite>();
                int       linkSpriteHeight = linkSprite.sprite.frames[linkSprite.sprite.currentFrame].Height;
                int       linkSpriteWidth  = linkSprite.sprite.frames[linkSprite.sprite.currentFrame].Width;
                Sprite    itemSprite       = entity.GetComponent <Sprite>();
                int       itemSpriteHeight = itemSprite.sprite.frames[itemSprite.sprite.currentFrame].Height;
                int       itemSpriteWidth  = itemSprite.sprite.frames[itemSprite.sprite.currentFrame].Width;
                Transform linkTrans        = link.GetComponent <Transform>();
                linkTrans.position += new Vector2(0, itemSpriteHeight);
                Transform itemPos = entity.GetComponent <Transform>();
                itemPos.position += new Vector2(0, -itemSpriteHeight);
                currentItem.GetComponent <ItemDeletionTimer>().startTimer = true;

                // if triforce we should quit the game? make black screen? credits?
                done = true;
                if (currentItem.GetItemType() == "triforce")
                {
                    LevelManager.Victory();
                }
            }
        }
        public override void Update(GameTime gameTime)
        {
            var sprite = entity.GetComponent <Sprite>();

            linkInventory = Scene.Find("Link").GetComponent <LinkInventory>();
            switch (linkInventory.GetCurrentWeapon())
            {
            case ItemInventory.WeaponTypes.WOODEN_SWORD:
                sprite.SetSprite(LinkItemSpriteFactory.Instance.CreateWoodenSwordUp());
                break;

            case ItemInventory.WeaponTypes.MAGIC_SWORD:
                sprite.SetSprite(LinkItemSpriteFactory.Instance.CreateWhiteRedSwordUp());
                break;
            }
        }
Пример #6
0
        // Called at every point in the code at which an enemy is killed
        // Controls the "give the player a key when they kill all enemies in a room"
        public static void EnemyKilled()
        {
            currentLevel.numEnemiesLeft--;

            // If this takes us down to zero, gift the player a key, which they can use to unlock the given door
            if (Game1.inBossRush && currentLevel.numEnemiesLeft == 0)
            {
                LinkInventory inventory = link.GetComponent <LinkInventory>();
                inventory.AddDungeonItem((int)ItemInventory.DungeonInventory.KEYS);

                // change the sprite of the door
            }
            else if (currentLevel.DropKey && currentLevel.numEnemiesLeft == 0)
            {
                Item.CreateKey(currentLevel.KeyPos);
            }

            if (currentLevel.numEnemiesLeft < 0)
            {
                Console.WriteLine("ERROR: EnemyKilled() called in a room with 0 enemies in it!");
            }
        }
        public override void Update(GameTime gameTime)
        {
            var sprite = entity.GetComponent <Sprite>();

            linkInventory = Scene.Find("Link").GetComponent <LinkInventory>();
            switch (linkInventory.GetBKey())
            {
            case ItemInventory.UseInventory.BOOMERANG:
                sprite.SetSprite(HUDSpriteFactory.Instance.CreateBoomerang());
                sprite.sprite.scalar *= Constants.HUD_BOOMERANG_SCALE * boomerang_scale;
                break;

            case ItemInventory.UseInventory.BOMB:
                sprite.SetSprite(HUDSpriteFactory.Instance.CreateBomb());
                sprite.sprite.scalar *= Constants.HUD_BOMB_SCALE * scale;
                break;

            case ItemInventory.UseInventory.BOW:
                sprite.SetSprite(HUDSpriteFactory.Instance.CreateBow());
                sprite.sprite.scalar *= Constants.HUD_BOW_SCALE * scale;
                break;
            }
        }
Пример #8
0
 public override void Update(GameTime gameTime)
 {
     linkInventory = Scene.Find("Link").GetComponent <LinkInventory>();
     entity.GetComponent <Text>().CurrentString = "X" + linkInventory.dungeonInventory[(int)ItemInventory.DungeonInventory.KEYS].amount;
 }
        public override void ResolveCollision(LinkCollisionResponse other)
        {
            if (!collided)
            {
                collided = true;

                // Actual item pickup is the fanfare, selecting from inventory is Get_Item
                Sound.PlaySound(Sound.SoundEffects.Fanfare, entity, !Sound.SOUND_LOOPS);

                // logic for adding items to HUD depending on type
                Link          link      = (Link)other.entity;
                LinkInventory inventory = link.GetComponent <LinkInventory>();

                // update item inventory numbers
                switch (currentItem.GetItemType())
                {
                case "fairy":
                    // increment health by an amount
                    break;

                case "bomb":
                    inventory.AddBombs();
                    // Console.WriteLine("Bombs = " + inventory.GetUseableItemCount((int)ItemInventory.UseInventory.BOMB));
                    break;

                case "arrow":
                    inventory.AddPassiveItem((int)ItemInventory.PassiveIventory.ARROWS);
                    // Console.WriteLine("Arrows = " + inventory.GetPassiveItemCount((int)ItemInventory.PassiveIventory.ARROWS));
                    break;

                case "regularkey":
                    inventory.AddDungeonItem((int)ItemInventory.DungeonInventory.KEYS);
                    // Console.WriteLine("Keys = " + inventory.GetDungeonItemCount((int)ItemInventory.DungeonInventory.KEYS));
                    break;

                case "bosskey":
                    inventory.AddDungeonItem((int)ItemInventory.DungeonInventory.BOSS_KEY);
                    // Console.WriteLine("Boss Key = " + inventory.GetDungeonItemCount((int)ItemInventory.DungeonInventory.BOSS_KEY));
                    break;

                case "clock":
                    // freeze enemies for a time
                    break;

                case "compass":
                    inventory.AddDungeonItem((int)ItemInventory.DungeonInventory.COMPASS);
                    // Console.WriteLine("Compass = "******"yellowmap":
                case "bluemap":
                    inventory.AddDungeonItem((int)ItemInventory.DungeonInventory.MAP);
                    // Console.WriteLine("Map = " + inventory.GetDungeonItemCount((int)ItemInventory.DungeonInventory.MAP));
                    break;

                case "rupee":
                    inventory.AddPassiveItem((int)ItemInventory.PassiveIventory.RUPEES, currentItem.value);
                    // Console.WriteLine("Rupees = " + inventory.GetPassiveItemCount((int)ItemInventory.PassiveIventory.RUPEES));
                    Sound.PlaySound(Sound.SoundEffects.Get_Rupee, false);
                    break;

                default:

                    break;
                }

                Entity.Destroy(entity);
            }
        }
Пример #10
0
 public override void Update(GameTime gameTime)
 {
     linkInventory = LevelManager.link.GetComponent <LinkInventory>();
     entity.GetComponent <Text>().CurrentString = "X" + linkInventory.GetDungeonItemCount((int)ItemInventory.DungeonInventory.KEYS);
 }
Пример #11
0
 public override void Update(GameTime gameTime)
 {
     linkInventory = LevelManager.link.GetComponent <LinkInventory>();
     entity.GetComponent <Text>().CurrentString = "X" + linkInventory.GetPassiveItemCount((int)ItemInventory.PassiveIventory.RUPEES);
 }
Пример #12
0
 public override void Update(GameTime gameTime)
 {
     linkInventory = LevelManager.link.GetComponent <LinkInventory>();
     entity.GetComponent <Text>().CurrentString = "X" + linkInventory.GetUseableItemCount((int)ItemInventory.UseInventory.BOMB);
 }
Пример #13
0
 public override void Update(GameTime gameTime)
 {
     linkInventory = Scene.Find("Link").GetComponent <LinkInventory>();
     entity.GetComponent <Text>().CurrentString = "X" + linkInventory.passiveInventory[(int)ItemInventory.PassiveIventory.RUPEES].amount;
 }