public static Drama CreateRandomOne(List <Room> rooms) { List <DramaType> dramaTypes = System.Enum.GetValues(typeof(DramaType)).Cast <DramaType>().ToList(); DramaType selectedDramaType = dramaTypes[Random.Range(0, dramaTypes.Count())]; List <Room> validRooms = rooms.Where(room => room.roomType != RoomType.COMMON && room.roomStatus != RoomStatus.DESTROYED).ToList(); Room selectedRoom = validRooms[Random.Range(0, validRooms.Count())]; return(new Drama(selectedDramaType, selectedRoom)); }
public IEnumerator Play(DramaType type) { _viewer = PrefabManager.Instance.InstantiateOn(PrefabModel.Path.DramaView).GetComponent <DramaView>(); Debug.Log("[ DramaManager ] Play"); var nowType = type; while (type != DramaType.None) { DramaModel model = null; try { //var data = MasterdataManager.Records<MstDramaRecord>().FirstOrDefault(mst => mst.Type == type); var data = Resources.Load <DramaDataScriptableObject>(DramaResourceRoot + type.GetAttribute <ResourcePath>().Path); model = DataToModel(data); //MasterToModel(data); } catch (Exception e) { Debug.Log("<color=red>NoData</color>"); yield break; } foreach (var frame in model.Frame) { var count = 0; foreach (var sprite in frame.BackSprite) { _viewer.SetBG(sprite, count); count++; } count = 0; foreach (var sprite in frame.LeftChara) { _viewer.SetLeft(sprite, count); count++; } count = 0; foreach (var sprite in frame.RightChara) { _viewer.SetRight(sprite, count); count++; } yield return(SetText(frame.Text)); yield return(null); } type = DramaType.None; if (model.Next != null && model.Next.Length > 0) { var select = 0; if (model.Next.Length > 1) { var names = new List <string>(); foreach (var n in model.Next) { names.Add(n.Name); } yield return(InputManager.Instance.WaitForSelect( PlayerManager.Instance.CurrentPlayerModel, names.ToArray(), num => select = num)); } type = model.Next[select].Type; } if (model.Rewards != null && model.Rewards.Length > 0) { yield return(GetReward(model)); } yield return(GetReward(model)); } Destroy(_viewer.gameObject); }
public Drama(DramaType type, Room room) { this.type = type; this.room = room; }