示例#1
0
    new void Awake()
    {
        base.Awake();

        Type = WindowType.LocationView;

        if (!Instance)
        {
            Instance = this;
        }

        BuyFoodButton.onClick.AddListener(BuyFoodBox);

        BuyGobboButton.onClick.AddListener(BuyGoblinBox);

        SellGobButton.onClick.AddListener(SellGoblinBox);
    }
示例#2
0
        private void refreshVillages()
        {
            VillageView.Invoke((MethodInvoker) delegate
            {
                VillageView.Items.Clear();
            });

            int i = 0;

            VillageList = new List <TravianVillage>();
            VillageList.AddRange(tb.RefreshVillageList());

            // TODO: MAKE ROMANS OR NON ROMANS WORK
            if (IsRoman.Checked == true)
            {
                TaskBusyBool = new bool[VillageList.Count, 2];
            }
            else
            {
                TaskBusyBool = new bool[VillageList.Count, 2];
            }

            foreach (TravianVillage village in VillageList)
            {
                i++;

                village.Number = i;
                tb.Navigate(village.Url);

                village.ResourceFields = tb.RefreshResourceAreas();

                tb.resources(village);

                village.Buildings = tb.RefreshBuildingAreas();

                var list = tb.RefreshBuildTimes(i);
                DoingTaskBuildList.AddRange(list);

                foreach (var item in list)
                {
                    MessageBox.Show(TaskBusyBool.GetLength(0) + "\n" + TaskBusyBool.GetLength(1));

                    MessageBox.Show((i - 1).ToString());
                    MessageBox.Show((item.IsResource ? 1 : 0).ToString());
                    MessageBox.Show(TaskBusyBool[i - 1, item.IsResource ? 1 : 0].ToString());

                    TaskBusyBool[i - 1, item.IsResource ? 1 : 0] = true;
                }
            }

            foreach (var village in VillageList)
            {
                village.Resources[0] = village.Resources[0] + (village.Production[0] / 240);
                village.Resources[1] = village.Resources[1] + (village.Production[1] / 240);
                village.Resources[2] = village.Resources[2] + (village.Production[2] / 240);
                village.Resources[3] = village.Resources[3] + (village.Production[3] / 240);

                var lvi = new ListViewItem();
                lvi.Text = village.Name;
                lvi.SubItems.Add(i.ToString());
                lvi.SubItems.Add(tb.Is_under_attack());
                lvi.SubItems.Add(TaskBusyBool[village.Number - 1, 1].ToString());
                lvi.SubItems.Add(TaskBusyBool[village.Number - 1, 0].ToString());
                lvi.Tag = village.Number;
                VillageView.Invoke((MethodInvoker) delegate
                {
                    VillageView.Items.Add(lvi);
                });
            }
        }
示例#3
0
    private void HandleClick(Vector3 position)
    {
        Sound.PlayMapCLick();

        //TODO Move this to a routine and insert a pause here and a shout from the Chief

        Ray        ray = Camera.main.ScreenPointToRay(position);
        RaycastHit hit;

        if (Physics.Raycast(ray, out hit, 1000, HitMask))
        {
            if (hit.collider && hit.collider.GetComponent <Lootable>())
            {
                var loot = hit.collider.GetComponent <Lootable>();

                if (loot.InArea && loot.InArea.Visible())
                {
                    Team.Leader.Search(loot);
                }
            }
            else if (hit.collider && hit.collider.GetComponent <Character>()) //TODO:check visibility else just move there
            {
                var c = hit.collider.GetComponent <Character>();
                if (c)
                {
                    //Debug.Log("Clicked charaacter " + c.name);

                    if (c.tag == "Enemy" && c.Alive())
                    {
                        if (c.InArea.Visible())
                        {
                            Team.Attack(c);
                        }
                        else
                        {
                            //ClickedArea(c.InArea);
                        }
                    }
                    else if (c as Goblin)
                    {
                        CharacterView.ShowCharacter(c as Goblin);
                        ChangeZoomLevel(ZoomLevel.GoblinView);
                    }
                    else
                    {
                        //ClickedArea(c.InArea);
                    }
                }
            }
            //TODO use parent class for these
            else if (hit.collider && hit.collider.GetComponent <GoblinWarrens>())
            {
                var v = hit.collider.GetComponent <GoblinWarrens>();

                if (v.InArea.Visible())
                {
                    VillageView.OpenVillageView(v, Team);
                }
                else
                {
                    //ClickedArea(v.InArea);
                }
            }
            //TODO use parent class for these
            else if (hit.collider && hit.collider.GetComponent <HumanSettlement>())
            {
                var v = hit.collider.GetComponent <HumanSettlement>();

                if (v.InArea.Visible())
                {
                    PlayerChoice.CreateDoChoice(() => v.AttackSettlement(), "Do you want to attack the Human " + v.Name);
                }
                //else
                //  ClickedArea(v.InArea);
            }
            //TODO: handle the point of interest click generally. Replace BigstoneView and CaveView with a Poi view?
            else if (hit.collider && hit.collider.GetComponent <Monument>())
            {
                var monument = hit.collider.GetComponent <Monument>();

                if (monument.InArea.Visible())
                {
                    BigStoneView.OpenStoneView(monument, Team);
                }
                //else
                //    ClickedArea(monument.InArea);
            }
            else if (hit.collider && hit.collider.GetComponent <Cave>())
            {
                var cave = hit.collider.GetComponent <Cave>();

                if (cave.InArea.Visible())
                {
                    CaveView.OpenCaveView(cave, Team);
                }
                //else
                //    ClickedArea(cave.InArea);
            }
            else if (hit.collider && hit.collider.GetComponent <WitchHut>())
            {
                var hut = hit.collider.GetComponent <WitchHut>();

                if (hut.InArea.Visible())
                {
                    WitchHutView.OpenWitchView(hut, Team);
                }
                //else
                //    ClickedArea(hut.InArea);
            }
            else if (hit.collider && hit.collider.GetComponent <Area>())
            {
                var a = hit.collider.GetComponent <Area>();
                //Debug.Log("Clicked Area : " + (a.name));

                //ClickedArea(a);
            }
            else
            {
                Debug.LogWarning("Not a valid hit: " + hit.point);
            }
        }
    }