Example #1
0
        public MCharacter GetCharacter(int index, MCharacter[] characters = null)
        {
            Vector2    coordinate = baseMapMaster.GetCoordinateFromIndex(index);
            MCharacter mCharacter = System.Array.Find(characters == null ? mBaseMap.Characters : characters, c => c.Hp > 0 && !c.IsHide && c.CoordinateX == coordinate.x && c.CoordinateY == coordinate.y);

            return(mCharacter);
        }
Example #2
0
        /// <summary>
        /// 点击地图块儿
        /// </summary>
        /// <param name="index">地图块儿索引</param>
        public virtual void OnClickTile(int index)
        {
            App.Model.Master.MBaseMap topMapMaster = BaseMapCacher.Instance.Get(mBaseMap.MapId);
            Vector2 coordinate = topMapMaster.GetCoordinateFromIndex(index);

            App.Model.MTile tile = System.Array.Find(mBaseMap.Tiles, _ => _.x == coordinate.x && _.y == coordinate.y);
            OnClickTile(tile);
        }
Example #3
0
        public override void OnClickTile(int index)
        {
            App.Model.Master.MBaseMap topMapMaster = BaseMapCacher.Instance.Get(mBaseMap.MapId);
            Vector2           coordinate           = topMapMaster.GetCoordinateFromIndex(index);
            List <VCharacter> vCharacters          = vBaseMap.Characters;
            VCharacter        vCharacter           = vBaseMap.Characters.Find(_ => _.ViewModel.CoordinateX.Value == coordinate.x && _.ViewModel.CoordinateY.Value == coordinate.y);

            if (vCharacter != null)
            {
                App.Util.LSharp.LSharpScript.Instance.Analysis(new List <string> {
                    string.Format("Call.characterclick_{0}();", vCharacter.ViewModel.Id.Value)
                });
            }
        }
Example #4
0
        private IEnumerator Build(int buildId, VBaseMap vBaseMap, App.Model.Master.MBuilding buildingMaster)
        {
            App.Model.Master.MBaseMap topMapMaster = BaseMapCacher.Instance.Get(vBaseMap.ViewModel.MapId.Value);
            Vector2 coordinate = topMapMaster.GetCoordinateFromIndex(tileIndex);
            SShop   sShop      = new SShop();

            yield return(StartCoroutine(sShop.RequestBuyBuild(buildId, (int)coordinate.x, (int)coordinate.y)));

            App.Model.MTile        currentTile = App.Model.MTile.Create(buildingMaster.tile_id, (int)coordinate.x, (int)coordinate.y);
            List <App.Model.MTile> tileList    = vBaseMap.ViewModel.Tiles.Value.ToList();

            tileList.Add(currentTile);
            vBaseMap.ViewModel.Tiles.Value = tileList.ToArray();
            this.Close();
        }
Example #5
0
        public override void OnClickTile(int index)
        {
            App.Model.Master.MBaseMap topMapMaster = BaseMapCacher.Instance.Get(mBaseMap.MapId);
            Vector2 coordinate = topMapMaster.GetCoordinateFromIndex(index);

            App.Model.MTile tile = System.Array.Find(mBaseMap.Tiles, _ => _.x == coordinate.x && _.y == coordinate.y);
            if (tile == null)
            {
                buildingMenu.currentIndex = index;
                OpenMenu(buildingMenu);
            }
            else
            {
                OpenMenu(strengthenMenu);
            }
        }
Example #6
0
        public VTile GetTile(int index)
        {
            Vector2 coordinate = baseMapMaster.GetCoordinateFromIndex(index);

            return(GetTile(coordinate));
        }
Example #7
0
        private void LoopSearch(VTile vTile)
        {
            if (!vTile.IsRoad)
            {
                return;
            }
            if (!vTile.IsChecked)
            {
                vTile.IsChecked = true;
                tiles.Add(vTile);
            }
            if (vTile.MovingPower <= 0 || vTile.IsAllCost)
            {
                return;
            }
            List <Vector2> coordinates = cBaseMap.mapSearch.GetNeighboringCoordinates(baseMapMaster.GetCoordinateFromIndex(vTile.Index));

            foreach (Vector2 vec in coordinates)
            {
                VTile tile = vBaseMap.tileUnits[(int)vec.y * vBaseMap.mapWidth + (int)vec.x];
                if (tile.IsChecked && tile.MovingPower >= vTile.MovingPower)
                {
                    continue;
                }
                int cost = 1;
                tile.MovingPower = vTile.MovingPower - cost;
                LoopSearch(tile);
            }
        }