Esempio n. 1
0
        private Tile CreatRandom(Tile.TileTypeEnum lastType, Tile now, int Value)
        {
            //分别是 宝箱,精英,小怪,火堆,商店,事件,boss的概率
            int[] Chance = { 0, 2, 10, 3, 2, 2, 0 };
            if (lastType != Tile.TileTypeEnum.Battle || lastType != Tile.TileTypeEnum.Event)//杂兵和事件可以连着
            {
                Chance[(int)lastType] = 0;
            }

            /*if (NextType != Tile.TileTypeEnum.Other)
             *  Chance[(int)NextType] = 0;*/
            int sum = 0;

            foreach (var i in Chance)
            {
                sum += i;
            }
            int ran   = RandomUtil.MapRandomSeed.Next(0, sum);
            int index = 0;

            while (Chance[index] <= ran)
            {
                ran -= Chance[index];
                index++;
            }
            Tile result = CreatTile((Tile.TileTypeEnum)index, Value);

            if (now != null)
            {
                result.Nexts = new SortedSet <Tile>(now.Nexts);
                result.Pres  = new SortedSet <Tile>(now.Pres);
                tiles.Remove(now);
            }
            return(result);
        }
Esempio n. 2
0
        private Tile CreatTile(Tile.TileTypeEnum type, int Value)
        {
            switch (type)
            {
            case Tile.TileTypeEnum.Battle:
                return(new BattleTile());

            case Tile.TileTypeEnum.Battle_Sp:
                return(new BattleTile_SP());

            case Tile.TileTypeEnum.Treasure:
                return(new TreasureTile());

            case Tile.TileTypeEnum.Rest:
                return(new RestTile());

            case Tile.TileTypeEnum.Shop:
                return(new ShopTile());

            case Tile.TileTypeEnum.Event:
                return(new EventTile());

            case Tile.TileTypeEnum.Boss:
                return(new BossTile());

            default:
                return(null);
            }
        }
Esempio n. 3
0
 /*public TileAttribute(string Id)
  * {
  *  this.Id = Id;
  * }*/
 public TileAttribute(Tile.TileTypeEnum Id) : base()
 {
     this.Id = (int)Id;
 }
Esempio n. 4
0
 public Tile Get(Tile.TileTypeEnum tileType)
 {
     return(Get((int)tileType));
 }