public void UpdateProjection(IEvent @event) { if (@event is T) { onEvent((T)@event); } else { var json = @event.ToJson(); dynamic duckTypedEvent; if (typeof(T).IsAbstract) { duckTypedEvent = new DynamicEvent(json.FromJsonTo <dynamic>()); } else { duckTypedEvent = json.FromJsonTo <T>(); } TrySetStreamNameFrom(@event.GetType(), duckTypedEvent, @event.EventStreamName()); onEvent(duckTypedEvent); } }
public void When_Timestamp_is_set_then_it_can_be_retrieved() { var e = new DynamicEvent(new JObject()); var timestamp = Any.DateTimeOffset(); e.Timestamp = timestamp; e.Timestamp.Should().Be(timestamp); }
public void When_AggregateId_is_set_then_it_can_be_retrieved() { var e = new DynamicEvent(new JObject()); var guid = Any.Guid(); e.AggregateId = guid; e.AggregateId.Should().Be(guid); }
public void When_DynamicEvent_is_instantiated_via_a_JObject_then_AggregateId_can_be_retrieved_via_IEvent_interface() { var guid = Any.Guid(); var json = new { AggregateId = guid }.ToJson(); IEvent dynamicEvent = new DynamicEvent( json.FromJsonTo <dynamic>()); dynamicEvent.AggregateId.Should().Be(guid); }
public void When_DynamicEvent_is_instantiated_via_a_JObject_then_Timestamp_can_be_retrieved_via_IEvent_interface() { var timestamp = Any.DateTimeOffset(); var json = new { Timestamp = timestamp }.ToJson(); var jobject = json.FromJsonTo <dynamic>(); IEvent dynamicEvent = new DynamicEvent(jobject); dynamicEvent.Timestamp.Should().Be(timestamp); }
/// <summary> /// 특정 블록에 이벤트 생성 후 초기화 /// </summary> /// <param name="blockIndex">생성 위치 블록의 인덱스값</param> /// <param name="eventIndex">초기화 값 : 이벤트 인덱스</param> /// <param name="_count">초기화 값 : 수량</param> /// <param name="creator">초기화 값 : 이벤트 생성자</param> public DynamicEvent CreateEventObject(int blockIndex, int eventIndex, int _count, Player creator) { Debug.LogWarning("이벤트 생성 :: " + blockIndex + " 에서 생성됨"); // 아이템 오브젝트 생성 후 스크립트 확보 DynamicEvent dEvent = Create(blockIndex); // 아이템 셋팅 dEvent.SetUp(eventIndex, _count, creator); // 목록에 추가 eventObjectList.Add(dEvent); // 장애물 등록 dEvent.CreateBarricade(); return(dEvent); }
//public void CallMessageBox() //{ // MessageBox mb = GameData.gameMaster.messageBox; // // 메시지 박스 임시모드 // if (!mb.gameObject.activeSelf) // mb.PopUp(0); // // 호출 // eventBox.gameObject.SetActive(true); //} //public void CloseMessageBox() //{ // MessageBox mb = GameData.gameMaster.messageBox; // // 메시지 박스 임시모드일 경우 닫기 // if (mb.pageSwitch.objectList[0].activeSelf) // mb.PopUp(MessageBox.Type.Close); // // 비활성 // eventBox.gameObject.SetActive(false); //} /// <summary> /// 특정 블록에 아이템 생성 /// </summary> /// <param name="blockIndex">특정 블록의 인덱스 값</param> DynamicEvent Create(int blockIndex) { // 생성할 좌표 Vector3 pos = GameData.blockManager.GetBlock(blockIndex).transform.position; // y축 보정 pos.y = 2.5f; // 이벤트 오브젝트 생성 Transform obj = Instantiate(eventPrefab, pos, Quaternion.identity, transform).transform; // 결과물 DynamicEvent result = obj.GetComponent <DynamicEvent>(); // 위치 설정 result.location = blockIndex; return(result); }
public void Tester(string blockIndex_eventID) { int blockIndex = 7; int eventID = 1; string[] str = blockIndex_eventID.Split('_'); int.TryParse(str[0], out blockIndex); if (str.Length > 1) { int.TryParse(str[1], out eventID); } DynamicEvent de = CreateEventObject( blockIndex, eventID, 1, Player.me ); }
/// <summary> /// 오브젝트 단일 습득 /// </summary> /// <param name="current"></param> /// <returns></returns> IEnumerator GetObject(DynamicObject current) { // 습득중 처리 objectPickUpStep = ActionProgress.Working; // 아이템일 경우 if (current.type == DynamicObject.Type.Item) { DynamicItem di = (DynamicItem)current; Debug.LogWarning("아이템 오브젝트 :: 습득 => " + di.item.index); // 획득 di.GetItem(owner); // 연출 명령 yield return(null); } // 아이템일 경우 else if (current.type == DynamicObject.Type.Event) { DynamicEvent de = (DynamicEvent)current; Debug.LogWarning("이벤트 오브젝트 :: 습득 => " + de.iocEvent.index); // 획득 //de.GetEvent(owner, de.location); de.GetEvent(owner); // 연출 명령 yield return(null); } // 습득 리스트에서 제거 objectPickUpList.Remove(current); // 습득중 완료 처리 objectPickUpStep = ActionProgress.Start; }
public static void ReCreateAll(bool isDeleted) { Debug.LogError("이벤트 오브젝트 :: 재생성 요청됨 => 총 " + eventObjectList.Count); // 백업 List <DynamicEvent> temp = eventObjectList; // 초기화 eventObjectList = new List <DynamicEvent>(); // 반복 재생성 for (int i = 0; i < temp.Count; i++) { DynamicEvent dTemp = temp[i]; // 리스트 및 장애물 제거 //dTemp.Remove(); dTemp.RemoveBarricade(); Debug.LogError(dTemp.location); Debug.LogError(dTemp.iocEvent.index); Debug.LogError(dTemp.count); Debug.LogError(dTemp.creator.name); // 생성 GameMaster.script.eventManager.CreateEventObject( dTemp.location, dTemp.iocEvent.index, dTemp.count, dTemp.creator ); // 제거 if (!isDeleted) { Destroy(dTemp.transform); } } }
public JsonResult InsertDynamicEvent(HDB context, DynamicEvent dynamicEvent) { if (context.DynamicEvents.Count() > 0) { if (context.DynamicEvents.Select(d => d.ID).Contains(dynamicEvent.ID)) { return(Json(new InsertionOutcome { outcome = "Found", ID = dynamicEvent.ID.ToString() })); } } if (dynamicEvent.ID < 0) { dynamicEvent.ID = 0; } context.DynamicEvents.Add(dynamicEvent); context.SaveChanges(); return(Json(new InsertionOutcome { outcome = "Success", ID = dynamicEvent.ID.ToString() })); }
public void AddDynamicEvent(DynamicEvent dynamicEvent) { mDynamicEvents.Add(dynamicEvent); }
/// <summary> /// 세이브 코드 반환 /// </summary> static StringBuilder SaveCode() { StringBuilder sb = new StringBuilder(); // 게임 정보 sb .Append(GameRule.area) .Append(codeData) .Append(GameRule.section) .Append(codeData) .Append(Cycle.now) .Append(codeData) .Append(Cycle.goal) .Append(codeData) .Append(Player.allPlayer.Count) .Append(codeData) .Append(BlockWork.plusBlockValue) .Append(codeData) .Append(BlockWork.minusBlockValue) .Append(codeChapter) ; // 플레이어 정보 for (int i = 0; i < Player.allPlayer.Count; i++) { Player temp = Player.allPlayer[i]; sb .Append(Turn.Index(temp)) .Append(codeData) .Append((int)(temp.type)) .Append(codeData) .Append(temp.character.index) .Append(codeData) .Append(temp.isAutoPlay) .Append(codeData) .Append(temp.name) .Append(codeData) .Append(temp.movement.location) .Append(codeData) .Append(temp.life.Value) .Append(codeData) .Append(temp.coin.Value) .Append(codeData) .Append(temp.dice.count) .Append(codeData) .Append(temp.dice.valueTotal) .Append(codeData) .Append(temp.dice.valueRecord) .Append(codeData) ; for (int j = 0; j < Player.inventoryMax; j++) { if (temp.inventory[j].count > 0) { // 유효한 아이템 sb .Append(temp.inventory[j].item.index) .Append(codeData) .Append(temp.inventory[j].count) ; } else { // 아이템 없음 sb .Append(-1) .Append(codeData) .Append(0) ; } if (j < Player.inventoryMax - 1) { sb.Append(codeData); } } if (Player.allPlayer.Count > 1 && i != Player.allPlayer.Count - 1) { sb.Append(codeLine); } } sb.Append(codeChapter); // 아이템 오브젝트 배치 for (int i = 0; i < ItemManager.itemObjectList.Count; i++) { DynamicItem obj = ItemManager.itemObjectList[i]; sb .Append(obj.location) .Append(codeData) .Append(obj.item.index) .Append(codeData) .Append(obj.count) ; if (i > 0 && i != ItemManager.itemObjectList.Count - 1) { sb.Append(codeLine); } } sb.Append(codeChapter); // 이벤트 오브젝트 배치 for (int i = 0; i < EventManager.eventObjectList.Count; i++) { DynamicEvent obj = EventManager.eventObjectList[i]; sb .Append(obj.location) .Append(codeData) .Append(obj.iocEvent.index) .Append(codeData) .Append(obj.count) .Append(codeData) .Append(Player.Index(obj.creator)) ; if (i > 0 && i != EventManager.eventObjectList.Count - 1) { sb.Append(codeLine); } } sb.Append(codeChapter); // 상황 설정 sb .Append(Player.Index(Turn.now)) .Append(codeData) .Append((int)GameData.gameFlow) .Append(codeData) .Append((int)Turn.turnAction) //.Append(codeChapter) ; // 종료 문자 sb.Append('#'); return(sb); }
public void OnEvent(DynamicEvent data, long sequence, bool endOfBatch) { }
public EventErrorDescriptor(DynamicEvent eventData, string eventType, EventHeader header) : this() { EventData = new EventData(eventType, eventData); Header = header; }