public void DeadLogicBefore(DeadInfo dead_info) { belong = dead_info.turn_to.belong; BuffContrllor.removeAll(this); if (Main.Inst.lv_ctrl.map_data.my_type == eMapType.PvP_2P) { Main.Inst.overturn_list.Add(this); my_state = eChessState.Deading; } }
public void DoDead(DeadInfo deadInfo) { Debug.Log("Do dead"); Dictionary <string, string> data = new Dictionary <string, string>(); data["room_name"] = deadInfo.room_name; data["object_name"] = deadInfo.object_name; data["tag"] = deadInfo.tag; socket.Emit("dead", new JSONObject(data)); }
public void PlayerLeaveGame(string json) { if (!PhotonNetwork.isMasterClient) { return; } DeadInfo di = JsonUtility.FromJson <DeadInfo>(json); string name = di.name; Vector3 vec = di.position; vm.NoticeAll(name + "变成了一具尸体", true); }
public void LeaveGame() { DeadInfo di = new DeadInfo { name = myPlayer.myHeroName, position = myPlayer.transform.position }; string json = JsonUtility.ToJson(di); photonView.RPC("PlayerLeaveGame", PhotonTargets.MasterClient, json); PhotonNetwork.LeaveRoom(); SceneManager.LoadScene("Lobby"); }
public void on_damage(DamageInfo _info) { setHP(attribute.mana - _info.dmg); if (attribute.mana == 0) { //罗严塔尔技能触发点 //开始死亡 DeadInfo dead_info = new DeadInfo(); dead_info.killer = _info.source_actor; dead_info.turn_to = _info.source_actor; StartCoroutine(playDead(dead_info)); } }
public void sendDeadMsg() { newConnection netconnection; GameController gameController = GameObject.Find("GameController").GetComponent <GameController>(); if (GameObject.Find("SocketIO") != null) { netconnection = GameObject.Find("SocketIO").GetComponent <newConnection>(); DeadInfo deadInfo = new DeadInfo(); deadInfo.tag = gameObject.tag; deadInfo.object_name = gameObject.name; deadInfo.room_name = gameController.room_name; netconnection.DoDead(deadInfo); } }
public void DeadLogicAfter(DeadInfo dead_info) { //if (Data.DEAD_ENDING_TURN) { //PVP反面,其他都删除【设计】PVE场景中NPC的阵营转变由事件处理 if (Main.Inst.lv_ctrl.map_data.my_type == eMapType.PvP_2P) { setHP(attribute.Max_mana); initImage(); my_state = eChessState.Overturn; if (Main.Inst.lv_ctrl.map_data.my_type == eMapType.PvP_2P) { Main.Inst.DamageOnOppoPlayer(attribute.Cost); } } else { //坑 或许逻辑有问题 my_state = eChessState.Deading; //container.clearMoveFlag(); //Destroy(gameObject); remove(); } }
IEnumerator playDead(DeadInfo dead_info) { Main.Inst.addDancer("playDead"); DeadLogicBefore(dead_info); yield return(new WaitForSeconds(0.5f)); //FX foreach (GameObject obj in deadEffects1) { GameObject _o = Instantiate(obj, transform.position + new Vector3(0, 0, -1f), transform.rotation); _o.transform.parent = transform; } //FX foreach (GameObject obj in overturnEffects1) { GameObject _o = Instantiate(obj, transform.position + new Vector3(0, 0, -1f), transform.rotation); _o.transform.parent = transform; } DeadLogicAfter(dead_info); Main.Inst.redDancer("playDead"); yield return(null); }
protected void Awake() { KillingObject = new LifeModule.DeadInfo(); }
/// <summary> /// Разделение /// </summary> /// <param name="personId"> /// The person Id. /// </param> /// <param name="statementsToSeparate"> /// The statements To Separate. /// </param> /// <param name="copyDeadInfo"> /// The copy Dead Info. /// </param> /// <param name="status"> /// The status. /// </param> public void Separate(Guid personId, IList <Statement> statementsToSeparate, bool copyDeadInfo, int status) { var session = ObjectFactory.GetInstance <ISessionFactory>().GetCurrentSession(); var conceptManager = ObjectFactory.GetInstance <IConceptCacheManager>(); var currentUser = ObjectFactory.GetInstance <ISecurityProvider>().GetCurrentUser(); var personManager = ObjectFactory.GetInstance <IInsuredPersonManager>(); var statementManager = ObjectFactory.GetInstance <IStatementManager>(); var twinManager = ObjectFactory.GetInstance <ITwinManager>(); var numberPolicyCounterManager = ObjectFactory.GetInstance <INumberPolicyCounterManager>(); var transaction = session.BeginTransaction(); try { var person = personManager.GetById(personId); var statementToSeparateIdList = statementsToSeparate.Select(x => x.Id).ToList(); var searchKeys = session.QueryOver <SearchKey>().WhereRestrictionOn(x => x.Statement.Id).IsIn(statementToSeparateIdList).List(); // Создаем пипла var personNew = new InsuredPerson { Status = conceptManager.GetById(status) }; // Определяем ЕНП, последний, заполненный var enp = statementsToSeparate.Where(x => !string.IsNullOrEmpty(x.NumberPolicy)) .OrderByDescending(x => x.DateFiling) .Select(x => x.NumberPolicy) .FirstOrDefault(); if (enp == null) { var statement = statementsToSeparate.OrderByDescending(x => x.DateFiling).FirstOrDefault(); if (statement != null) { var personData = statement.InsuredPersonData; if (personData.Birthday != null) { enp = numberPolicyCounterManager.GetNextEnpNumber( currentUser.GetTf().Id, personData.Gender.Id, personData.Birthday.Value); } } } personNew.MainPolisNumber = enp; // создаём новую персону и делаем копию инфы о смерти if (copyDeadInfo && person.DeadInfo != null) { var resultDeadInfo = new DeadInfo { ActRecordDate = person.DeadInfo.ActRecordDate, ActRecordNumber = person.DeadInfo.ActRecordNumber, DateDead = person.DeadInfo.DateDead }; session.Save(resultDeadInfo); personNew.DeadInfo = resultDeadInfo; } session.Save(personNew); // создаём копию истории и назначаем новой персоне var historyManager = ObjectFactory.GetInstance <IEmploymentHistoryManager>(); var histories = historyManager.GetByInsuredPersonId(person.Id); foreach (var history in histories) { session.Evict(history); history.Id = Guid.Empty; history.InsuredPerson = personNew; session.Save(history); } // переставляем ссылки в периодах страхования MedicalInsurance medicalInsurance = null; var periodInsurances = session.QueryOver <MedicalInsurance>() .WhereRestrictionOn(x => medicalInsurance.Statement.Id) .IsIn(statementToSeparateIdList) .List(); foreach (var periodInsurance in periodInsurances) { periodInsurance.InsuredPerson = personNew; session.Update(periodInsurance); } // переставляем ссылки в ключах поиска foreach (var key in searchKeys) { key.InsuredPerson = personNew; session.SaveOrUpdate(key); } // В заявлениях на разделение переставляем ссылки на новую персону foreach (var statement in statementsToSeparate) { statement.InsuredPerson = personNew; session.SaveOrUpdate(statement); } // Перестраиваем заявления statementManager.ApplyActive(person); statementManager.ApplyActive(personNew); // Отменять обработку дубликата не нужно!!! // Ищем все дуликаты с исходным пиплом и пораждаем новые дубликаты этих же дубликатов, но уже с новым пиплом var twins = twinManager.GetBy(x => x.FirstInsuredPerson.Id == personId); foreach (var twin in twins) { session.Evict(twin); twin.Id = Guid.Empty; twin.FirstInsuredPerson = personNew; session.Save(twin); } twins = twinManager.GetBy(x => x.SecondInsuredPerson.Id == personId); foreach (var twin in twins) { session.Evict(twin); twin.Id = Guid.Empty; twin.SecondInsuredPerson = personNew; session.Save(twin); } // А теперь помечаем пару как обработанный дубликат var twin1 = new Twin { FirstInsuredPerson = person, SecondInsuredPerson = personNew, TwinType = conceptManager.GetById(TypeTwin.TypeTwin3) }; session.Save(twin1); session.Flush(); transaction.Commit(); } catch { transaction.Dispose(); throw; } }