示例#1
0
    void Awake()
    {
        FalconUsePanel = transform.Find("Falcon Use UI").gameObject;

        FalconUsePanelTitle = FalconUsePanel.transform.Find("Panel Title").GetComponent <Text>();
        FalconUsePanelDesc  = FalconUsePanel.transform.Find("Panel Description").GetComponent <Text>();

        FalconUsePanelTitle.text = "";
        FalconUsePanelDesc.text  = "";
        token = null;


        ArcherBtn = FalconUsePanel.transform.Find("Archer Button").GetComponent <Button>();
        ArcherBtn.onClick.AddListener(delegate { EventManager.TriggerFalconTrade(GameManager.instance.MainHero, GameManager.instance.findHero("Archer"), true); HideFalconUse(); });

        DwarfBtn = FalconUsePanel.transform.Find("Dwarf Button").GetComponent <Button>();
        DwarfBtn.onClick.AddListener(delegate { EventManager.TriggerFalconTrade(GameManager.instance.MainHero, GameManager.instance.findHero("Dwarf"), true); HideFalconUse(); });

        MageBtn = FalconUsePanel.transform.Find("Mage Button").GetComponent <Button>();
        MageBtn.onClick.AddListener(delegate { EventManager.TriggerFalconTrade(GameManager.instance.MainHero, GameManager.instance.findHero("Mage"), true); HideFalconUse(); });

        WarriorBtn = FalconUsePanel.transform.Find("Warrior Button").GetComponent <Button>();
        WarriorBtn.onClick.AddListener(delegate { EventManager.TriggerFalconTrade(GameManager.instance.MainHero, GameManager.instance.findHero("Warrior"), true); HideFalconUse(); });

        CancelBtn = FalconUsePanel.transform.Find("Cancel Button").GetComponent <Button>();
        CancelBtn.onClick.AddListener(delegate { HideFalconUse(); });


        ArcherBtn.interactable  = false;
        DwarfBtn.interactable   = false;
        MageBtn.interactable    = false;
        WarriorBtn.interactable = false;
    }
示例#2
0
    public void ShowFalconUse(Falcon item)
    {
        token = item;
        FalconUsePanelTitle.text = "Falcon Action";
        FalconUsePanelDesc.text  = "With the Falcon, you can make trades with heroes who are not on the same cell as you. Choose a hero with who you want to make a trade.";

        if (canMakeTrade("Archer"))
        {
            ArcherBtn.interactable = true;
        }
        if (canMakeTrade("Dwarf"))
        {
            DwarfBtn.interactable = true;
        }
        if (canMakeTrade("Mage"))
        {
            MageBtn.interactable = true;
        }
        if (canMakeTrade("Warrior"))
        {
            WarriorBtn.interactable = true;
        }

        FalconUsePanel.SetActive(true);
    }
示例#3
0
 void Verify()
 {
     // Either both toTradeList Empty --> Trigger error
     // Either trade can not happen has it would create illegal inventories --> Trigger error
     // Either trade is valid, --> Procceed to trade, close
     if (ArrayIsAllNull(hero1ItemsToTrade) && ArrayIsAllNull(hero2ItemsToTrade))
     {
         EventManager.TriggerError(4);
         return;
     }
     else if (hero2.IsFighting)
     {
         EventManager.TriggerError(6);
     }
     else if (IsTradeGood())
     {
         if (isUsingFalcon)
         {
             Falcon toChange = (Falcon)hero1.heroInventory.bigToken;
             toChange.TurnFalcon();
         }
         ProceedTrade();
         EventManager.TriggerEndTrade();
         return;
     }
     else
     {
         EventManager.TriggerError(5);
         return;
     }
     EventManager.TriggerEndTrade();
 }
示例#4
0
 public static void TriggerFalconUseUI(Falcon item)
 {
     if (FalconUseUI != null)
     {
         FalconUseUI(item);
     }
 }
示例#5
0
    public static void Buy()
    {
        Hero hero = GameManager.instance.MainHero;
        int  cost = 2;

        if (hero.timeline.Index != 0)
        {
            if (hero.heroInventory.numOfGold >= cost)
            {
                Falcon toAdd = Falcon.Factory();
                if (hero.heroInventory.AddBigToken(toAdd))
                {
                    hero.heroInventory.RemoveGold(cost);
                }
                else
                {
                    return;
                }
            }
            else
            {
                EventManager.TriggerError(0);
                return;
            }
        }
        else
        {
            EventManager.TriggerError(2);
            return;
        }
    }
示例#6
0
 static public void AddFalconInvoker(Falcon falcon)
 {
     falconInvoker = falcon;
     if (gameOverlistener != null)
     {
         falconInvoker.AddGameOverEventListner(gameOverlistener);
     }
 }
示例#7
0
    public static Falcon Factory()
    {
        GameObject falconGO = PhotonNetwork.Instantiate("Prefabs/Tokens/Falcon", Vector3.zero, Quaternion.identity, 0);
        Falcon     falcon   = falconGO.GetComponent <Falcon>();


        return(falcon);
    }
示例#8
0
 public void HideFalconUse()
 {
     this.token              = null;
     ArcherBtn.interactable  = false;
     DwarfBtn.interactable   = false;
     MageBtn.interactable    = false;
     WarriorBtn.interactable = false;
     FalconUsePanel.SetActive(false);
 }
示例#9
0
    public static Falcon Factory(int cellID)
    {
        object[]   myCustomInitData = { cellID };
        GameObject falconGO         = PhotonNetwork.Instantiate("Prefabs/Tokens/Falcon", Vector3.zero, Quaternion.identity, 0, myCustomInitData);
        Falcon     falcon           = falconGO.GetComponent <Falcon>();

        falcon.Cell = Cell.FromId(cellID);
        return(falconGO.GetComponent <Falcon>());
    }
示例#10
0
        private void RelatedCalls()
        {
            Console.WriteLine("##RELATED CALLS:" + Environment.NewLine);

            Console.WriteLine("*Rocket Factory:");
            Factory <SpaceRocket> rocketFactory = new Factory <SpaceRocket>();

            // Example of using interface functions.
            IProduct <SpaceRocket> rocketProduct = rocketFactory.Create <Dragon>();

            rocketProduct.Operate();

            IProduct <SpaceRocket> rocketProductProtonM = rocketFactory.Create <ProtonM>();

            rocketProductProtonM.Operate();

            // Example of using a product specific function.
            Falcon falcon = rocketFactory.Create <Falcon>();

            falcon.Operate();
            falcon.FalconSpecificationOperation();
            Console.WriteLine(new string('-', 25));

            Console.WriteLine("*Plane Factory:");
            Factory <SpacePlane> planeFactory = new Factory <SpacePlane>();

            IProduct <SpacePlane> orion = planeFactory.Create <Orion>();

            orion.Operate();
            Console.WriteLine(new string('-', 25));

            Console.WriteLine("*Rocket and Plane Factory:");
            Orion orion1 = rocketFactory.Create <Orion>();

            orion1.Operate();
            orion1.OrionSpecificationOperation();

            Orion orion2 = planeFactory.Create <Orion>();

            orion2.Operate();
            orion2.OrionSpecificationOperation();

            Console.WriteLine(new string('-', 25));
        }
示例#11
0
 public void clearToken()
 {
     this.token = null;
 }
示例#12
0
    void Start()
    {
        merchantPanel = transform.Find("MerchantUI").gameObject;
        buyPanel      = transform.Find("BuyPanel").gameObject;
        panelTitle    = buyPanel.transform.Find("Title").GetComponent <Text>();
        panelDesc     = buyPanel.transform.Find("Description").GetComponent <Text>();

        btns   = transform.Find("MerchantUI/").GetComponentsInChildren(typeof(Button));
        buyBtn = buyPanel.transform.Find("Buy Button").GetComponent <Button>();

        cancelBtn = buyPanel.transform.Find("Cancel Button").GetComponent <Button>();
        cancelBtn.onClick.AddListener(delegate { HidePanel(); });

        transform.Find("MerchantUI/Potion/Button/Text").GetComponent <UnityEngine.UI.Text>().text = "" + Witch.Instance.PotionPrice;

        for (int i = 0; i < btns.Length; i++)
        {
            Button btn = (Button)btns[i];

            if (btn.transform.parent.name == "Strength")
            {
                btn.onClick.AddListener(() => {
                    ShowPanel(Strength.itemName, Strength.desc);
                    buyBtn.onClick.RemoveAllListeners();
                    buyBtn.onClick.AddListener(() => { Strength.Buy(); HidePanel(); });
                });
            }
            else if (btn.transform.parent.name == "Helm")
            {
                btn.onClick.AddListener(() => {
                    ShowPanel(Helm.itemName, Helm.desc);
                    buyBtn.onClick.RemoveAllListeners();
                    buyBtn.onClick.AddListener(() => { Helm.Buy(); HidePanel(); });
                });
            }
            else if (btn.transform.parent.name == "Telescope")
            {
                btn.onClick.AddListener(() => {
                    ShowPanel(Telescope.itemName, Telescope.desc);
                    buyBtn.onClick.RemoveAllListeners();
                    buyBtn.onClick.AddListener(() => { Telescope.Buy(); HidePanel(); });
                });
            }
            else if (btn.transform.parent.name == "Wineskin")
            {
                btn.onClick.AddListener(() => {
                    ShowPanel(Wineskin.itemName, Wineskin.desc);
                    buyBtn.onClick.RemoveAllListeners();
                    buyBtn.onClick.AddListener(() => { Wineskin.Buy(); HidePanel(); });
                });
            }
            else if (btn.transform.parent.name == "Shield")
            {
                btn.onClick.AddListener(() => {
                    ShowPanel(Shield.itemName, Shield.desc);
                    buyBtn.onClick.RemoveAllListeners();
                    buyBtn.onClick.AddListener(() => { Shield.Buy(); HidePanel(); });
                });
            }
            else if (btn.transform.parent.name == "Bow")
            {
                btn.onClick.AddListener(() => {
                    ShowPanel(Bow.itemName, Bow.desc);
                    buyBtn.onClick.RemoveAllListeners();
                    buyBtn.onClick.AddListener(() => { Bow.Buy(); HidePanel(); });
                });
            }
            else if (btn.transform.parent.name == "Falcon")
            {
                btn.onClick.AddListener(() => {
                    ShowPanel(Falcon.itemName, Falcon.desc);
                    buyBtn.onClick.RemoveAllListeners();
                    buyBtn.onClick.AddListener(() => { Falcon.Buy(); HidePanel(); });
                });
            }
            else if (btn.transform.parent.name == "Potion")
            {
                btn.onClick.AddListener(() => {
                    ShowPanel(Potion.itemName, Potion.desc);
                    buyBtn.onClick.RemoveAllListeners();
                    buyBtn.onClick.AddListener(() => { Potion.Buy(); HidePanel(); });
                });
            }
        }
    }
示例#13
0
 public FalconHeavy(string name, Falcon width)
 {
     Name       = name;
     this.width = width;
 }