示例#1
0
 public dtoTileItemDisplay(liteTileItem item, Int32 idUserLanguage, Int32 idDefaultLanguage)
 {
     NavigateUrl = item.NavigateUrl;
     ToolTip     = item.GetTranslation(idUserLanguage, idDefaultLanguage);
     CssClass    = item.CssClass;
     Type        = item.Type;
 }
示例#2
0
文件: WorldMap.cs 项目: zril/Coma
        private Position AddResourcePatch(int size, int mapsize, Position center, TileItemType tileType)
        {
            var square = tileType == TileItemType.RESOURCE_COMMON_SOUL;

            var mazeness = 0.5;

            mazeness = (tileType == TileItemType.RESOURCE_COMMON_BODY) ? 1 : mazeness;
            mazeness = (tileType == TileItemType.RESOURCE_RARE_BODY) ? 10 : mazeness;
            mazeness = (tileType == TileItemType.RESOURCE_COMMON_SOUL) ? 10 : mazeness;
            mazeness = (tileType == TileItemType.RESOURCE_RARE_SOUL) ? 0.1 : mazeness;

            var      patch       = GenUtils.MazeGen(size, mazeness, square, 1, 1, 1, 1);
            Position furthestPos = center;

            foreach (Position pos in patch)
            {
                Position newpos = new Position(center.X + pos.X, center.Y + pos.Y);
                if (newpos.IsInMap(mapsize))
                {
                    tiles[newpos.X, newpos.Y].Item = TileItemInfo.GetClone(tileType);
                }
                if (newpos.Dist(center) > furthestPos.Dist(center))
                {
                    furthestPos = newpos;
                }
            }

            return(furthestPos);
        }
示例#3
0
文件: FunctionInfo.cs 项目: zril/Coma
 public FunctionInfo()
 {
     MainFunction      = new NoFonction();
     SecondaryFunction = new NoFonction();
     SynergyFunction   = new NoFonction();
     SynergyTrigger    = TileItemType.NONE;
 }
示例#4
0
文件: TileItemInfo.cs 项目: zril/Coma
 public static TileItem Get(TileItemType type)
 {
     if (!init)
     {
         initInfo();
         init = true;
     }
     return(items[(int)type]);
 }
示例#5
0
    public void SelectForDelete(Sprite spriteToUse)
    {
        SelectImage.GetComponent <Image>().sprite = spriteToUse;
        Color col = Color.red;

        col.a = 0.2f;
        SelectImage.GetComponent <Image>().color = col;
        SelectedBuildItem = TileItemType.OBSTACLE;
    }
示例#6
0
    public void SelectForBuild(TileItemType type)
    {
        MainCamera.cullingMask |= 1 << LayerMask.NameToLayer("TileConstr");
        TileItem item = TileItemInfo.Get(type);

        SelectImage.GetComponent <Image>().sprite = MainController.TileItemSprites[(int)item.Fonction];
        Color col = MainController.TileItemColors[(int)item.Synergy];

        col.a = 0.2f;
        SelectImage.GetComponent <Image>().color = col;
        SelectedBuildItem = type;
    }
示例#7
0
 public void RequestForBuild(TileItemType item, int x, int y)
 {
     if (x >= 0 && x < TileMap.GetLength(0) && y >= 0 && y < TileMap.GetLength(1))
     {
         Global.Instance.SendCommand(new BuildParam(new Coma.Common.Position(x, y), item));
         TileView tile = TileMap[x, y];
         if (tile.currentTile.Item != null || tile.currentTile.Item.ItemType == TileItemType.NONE)
         {
             //Add temp construct image
         }
     }
 }
示例#8
0
文件: Tile.cs 项目: zril/Coma
        public void FromMessage(String message)
        {
            string[] splitargs = message.Split(';');

            Type         = (TileType)int.Parse(splitargs[0]);
            Influence    = int.Parse(splitargs[1]);
            Contructable = Utils.StringToBool(splitargs[2]);
            Radiance     = Utils.StringToBool(splitargs[3]);

            string[]     itemargs = splitargs[4].Split(',');
            TileItemType itemtype = (TileItemType)(int.Parse(itemargs[0]));

            Item = TileItemInfo.GetClone(itemtype);
            Item.FromMessage(splitargs[4]);
        }
示例#9
0
 public void SetItemOnTile(TileItem item)
 {
     itemOnTile = item;
     if (itemOnTile == null)
     {
         tileItemType = TileItemType.empty;
     }
     else if (itemOnTile is DroppedMoney)
     {
         tileItemType = TileItemType.money;
     }
     else if (itemOnTile is TreasureChest)
     {
         switch ((itemOnTile as TreasureChest).ChestType)
         {
         case TreasureChest.TreasureChestTypeEnum.small:
             tileItemType = TileItemType.smallChest;
             break;
         }
     }
 }
示例#10
0
 public dtoTileItemDisplay()
 {
     Type = TileItemType.UserDefinedUrl;
 }
示例#11
0
    // Update is called once per frame
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.LeftAlt))
        {
            MainCamera.cullingMask |= 1 << LayerMask.NameToLayer("TileConstr");
        }

        if (Input.GetKeyUp(KeyCode.LeftAlt) && SelectedBuildItem == TileItemType.NONE)
        {
            MainCamera.cullingMask &= ~(1 << LayerMask.NameToLayer("TileConstr"));
        }

        if (Input.GetKeyDown(KeyCode.LeftControl))
        {
            MainCamera.cullingMask |= 1 << LayerMask.NameToLayer("TileInflu");
        }

        if (Input.GetKeyUp(KeyCode.LeftControl))
        {
            MainCamera.cullingMask &= ~(1 << LayerMask.NameToLayer("TileInflu"));
        }

        if (Input.GetKey(KeyCode.UpArrow) || Input.GetKey(KeyCode.Z))
        {
            MainCamera.transform.position += new Vector3(0, 1) * Time.deltaTime * CameraSpeed;
        }

        if (Input.GetKey(KeyCode.DownArrow) || Input.GetKey(KeyCode.S))
        {
            MainCamera.transform.position += new Vector3(0, -1) * Time.deltaTime * CameraSpeed;
        }

        if (Input.GetKey(KeyCode.LeftArrow) || Input.GetKey(KeyCode.Q))
        {
            MainCamera.transform.position += new Vector3(-1, 0) * Time.deltaTime * CameraSpeed;
        }

        if (Input.GetKey(KeyCode.RightArrow) || Input.GetKey(KeyCode.D))
        {
            MainCamera.transform.position += new Vector3(1, 0) * Time.deltaTime * CameraSpeed;
        }

        if (Input.mouseScrollDelta.y > 0 && MainCamera.orthographicSize > 4)
        {
            MainCamera.orthographicSize -= 1;
            CameraSpeed -= 1f;
            if (MainCamera.orthographicSize == 4 && !MainController.IsTileUIVisible)
            {
                MainController.EnableTileUI();
            }
        }

        if (Input.mouseScrollDelta.y < 0 && MainCamera.orthographicSize < 25)
        {
            MainCamera.orthographicSize += 1;
            CameraSpeed += 1f;
            if (MainController.IsTileUIVisible)
            {
                MainController.DisableTileUI();
            }
        }


        if (SelectedBuildItem != TileItemType.NONE)
        {
            Vector3 pos = Input.mousePosition;
            pos.z = 5;
            pos   = Camera.main.ScreenToWorldPoint(pos);
            pos.x = Mathf.Max(0, Mathf.Min(MainController.TileMap.GetLength(0) - 1, Mathf.FloorToInt(pos.x + 0.5f)));
            pos.y = Mathf.Max(0, Mathf.Min(MainController.TileMap.GetLength(1) - 1, Mathf.FloorToInt(pos.y + 0.5f)));
            SelectImage.position = pos;
        }

        if ((Input.GetMouseButtonDown(0) || Input.GetMouseButtonDown(1) || Input.GetKeyDown(KeyCode.Escape)) && SelectedBuildItem != TileItemType.NONE)
        {
            //RequestForBuild
            if (Input.GetMouseButtonDown(0))
            {
                if (SelectedBuildItem == TileItemType.OBSTACLE)
                {
                    SelectedBuildItem = TileItemType.NONE;
                }

                MainController.RequestForBuild(SelectedBuildItem, (int)SelectImage.position.x, (int)SelectImage.position.y);
            }
            SelectedBuildItem = TileItemType.NONE;
            if (!Input.GetKey(KeyCode.LeftAlt))
            {
                MainCamera.cullingMask &= ~(1 << LayerMask.NameToLayer("TileConstr"));
            }
            SelectImage.GetComponent <Image>().sprite = null;
            SelectImage.GetComponent <Image>().color  = Color.clear;
        }
    }
示例#12
0
文件: Synergy.cs 项目: zril/Coma
        public static int CheckSynergyTrigger(WorldMap map, Position center, TileItemSynergyMode mode, TileItemType trigger)
        {
            var res     = 0;
            var mapsize = map.GetTiles().GetLength(0);

            if (trigger != TileItemType.NONE)
            {
                if (mode == TileItemSynergyMode.ADJACENT)
                {
                    Position postmp;
                    postmp = new Position(center.X + 1, center.Y);
                    if (postmp.IsInMap(mapsize) && map.GetTiles()[postmp.X, postmp.Y].Item.ItemType == trigger)
                    {
                        res++;
                    }
                    postmp = new Position(center.X - 1, center.Y);
                    if (postmp.IsInMap(mapsize) && map.GetTiles()[postmp.X, postmp.Y].Item.ItemType == trigger)
                    {
                        res++;
                    }
                    postmp = new Position(center.X, center.Y + 1);
                    if (postmp.IsInMap(mapsize) && map.GetTiles()[postmp.X, postmp.Y].Item.ItemType == trigger)
                    {
                        res++;
                    }
                    postmp = new Position(center.X, center.Y - 1);
                    if (postmp.IsInMap(mapsize) && map.GetTiles()[postmp.X, postmp.Y].Item.ItemType == trigger)
                    {
                        res++;
                    }
                    postmp = new Position(center.X + 1, center.Y + 1);
                    if (postmp.IsInMap(mapsize) && map.GetTiles()[postmp.X, postmp.Y].Item.ItemType == trigger)
                    {
                        res++;
                    }
                    postmp = new Position(center.X - 1, center.Y - 1);
                    if (postmp.IsInMap(mapsize) && map.GetTiles()[postmp.X, postmp.Y].Item.ItemType == trigger)
                    {
                        res++;
                    }
                    postmp = new Position(center.X - 1, center.Y + 1);
                    if (postmp.IsInMap(mapsize) && map.GetTiles()[postmp.X, postmp.Y].Item.ItemType == trigger)
                    {
                        res++;
                    }
                    postmp = new Position(center.X + 1, center.Y - 1);
                    if (postmp.IsInMap(mapsize) && map.GetTiles()[postmp.X, postmp.Y].Item.ItemType == trigger)
                    {
                        res++;
                    }
                }

                if (mode == TileItemSynergyMode.VERTICAL)
                {
                    Position postmp;
                    for (int j = 1; j <= 8; j++)
                    {
                        postmp = new Position(center.X, center.Y + j);
                        if (postmp.IsInMap(mapsize) && map.GetTiles()[postmp.X, postmp.Y].Item.ItemType == trigger)
                        {
                            res++;
                        }
                    }
                    for (int j = 1; j <= 8; j++)
                    {
                        postmp = new Position(center.X, center.Y - j);
                        if (postmp.IsInMap(mapsize) && map.GetTiles()[postmp.X, postmp.Y].Item.ItemType == trigger)
                        {
                            res++;
                        }
                    }
                }

                if (mode == TileItemSynergyMode.HORIZONTAL)
                {
                    Position postmp;
                    for (int i = 1; i <= 8; i++)
                    {
                        postmp = new Position(center.X + i, center.Y);
                        if (postmp.IsInMap(mapsize) && map.GetTiles()[postmp.X, postmp.Y].Item.ItemType == trigger)
                        {
                            res++;
                        }
                    }
                    for (int i = 1; i <= 8; i++)
                    {
                        postmp = new Position(center.X - i, center.Y);
                        if (postmp.IsInMap(mapsize) && map.GetTiles()[postmp.X, postmp.Y].Item.ItemType == trigger)
                        {
                            res++;
                        }
                    }
                }

                if (mode == TileItemSynergyMode.DIAGONAL)
                {
                    Position postmp;
                    for (int i = 1; i <= 3; i++)
                    {
                        postmp = new Position(center.X + i, center.Y + i);
                        if (postmp.IsInMap(mapsize) && map.GetTiles()[postmp.X, postmp.Y].Item.ItemType == trigger)
                        {
                            res++;
                        }
                    }
                    for (int i = 1; i <= 3; i++)
                    {
                        postmp = new Position(center.X - i, center.Y - i);
                        if (postmp.IsInMap(mapsize) && map.GetTiles()[postmp.X, postmp.Y].Item.ItemType == trigger)
                        {
                            res++;
                        }
                    }
                    for (int i = 1; i <= 3; i++)
                    {
                        postmp = new Position(center.X - i, center.Y + i);
                        if (postmp.IsInMap(mapsize) && map.GetTiles()[postmp.X, postmp.Y].Item.ItemType == trigger)
                        {
                            res++;
                        }
                    }
                    for (int i = 1; i <= 3; i++)
                    {
                        postmp = new Position(center.X + i, center.Y - i);
                        if (postmp.IsInMap(mapsize) && map.GetTiles()[postmp.X, postmp.Y].Item.ItemType == trigger)
                        {
                            res++;
                        }
                    }
                }
            }

            if (res > 4)
            {
                res = 4;
            }
            return(res);
        }
示例#13
0
        // public virtual long IdModulePage { get; set; }

        public liteTileItem()
        {
            Translations = new List <liteTileItemTranslation>();
            Type         = TileItemType.UserDefinedUrl;
        }
示例#14
0
文件: BuildParam.cs 项目: zril/Coma
 public BuildParam(Position pos, TileItemType id)
     : this()
 {
     this.Position = pos;
     this.Id       = id;
 }