public ICave NextCave() { var type = RandCaveType(); switch (type) { case "Monster": var monster = Monsters.RandElement(); return(new MonsterCave() { Name = monster.Name, Atk = monster.Atk, HP = monster.HP }); case "Treasure": var treasure = Treasures.RandElement(); return(new TreasureCave() { Name = treasure.Name, Golds = treasure.Golds, HP = treasure.HP }); case "Trap": var trap = Traps.RandElement(); return(new TrapCave() { Name = trap.Name, Atk = trap.Atk }); } return(null); }