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); }
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); } }
/*public TileAttribute(string Id) * { * this.Id = Id; * }*/ public TileAttribute(Tile.TileTypeEnum Id) : base() { this.Id = (int)Id; }
public Tile Get(Tile.TileTypeEnum tileType) { return(Get((int)tileType)); }