protected void SetSuccessByDeath(CombatData combatData, FightData fightData, HashSet <AgentItem> playerAgents, bool all, List <int> idsToUse) { int success = 0; long maxTime = long.MinValue; foreach (int id in idsToUse) { NPC target = Targets.FirstOrDefault(x => x.ID == id); if (target == null) { return; } DeadEvent killed = combatData.GetDeadEvents(target.AgentItem).LastOrDefault(); if (killed != null) { long time = killed.Time; success++; AbstractHealthDamageEvent lastDamageTaken = combatData.GetDamageTakenData(target.AgentItem).LastOrDefault(x => (x.HealthDamage > 0) && playerAgents.Contains(x.From.GetFinalMaster())); if (lastDamageTaken != null) { time = Math.Min(lastDamageTaken.Time, time); } maxTime = Math.Max(time, maxTime); } } if ((all && success == idsToUse.Count) || (!all && success > 0)) { fightData.SetSuccess(true, maxTime); } }
private async void OnDead(DeadEvent deadEvent) { AnimationComponent.PlayFade(AnimationComponent.DeadAnimation); await TimeHelper.WaitAsync(2000); GameObject.Destroy(gameObject); }
internal override void CheckSuccess(CombatData combatData, AgentData agentData, FightData fightData, IReadOnlyCollection <AgentItem> playerAgents) { base.CheckSuccess(combatData, agentData, fightData, playerAgents); if (!fightData.Success) { IReadOnlyList <AgentItem> prisoners = agentData.GetNPCsByID((int)ArcDPSEnums.TrashID.Prisoner2); var prisonerDeaths = new List <DeadEvent>(); foreach (AgentItem prisoner in prisoners) { prisonerDeaths.AddRange(combatData.GetDeadEvents(prisoner)); } if (prisonerDeaths.Count == 0) { AbstractSingleActor narella = Targets.FirstOrDefault(x => x.ID == (int)ArcDPSEnums.TargetID.Narella); if (narella == null) { throw new MissingKeyActorsException("Narella not found"); } DeadEvent deadEvent = combatData.GetDeadEvents(narella.AgentItem).LastOrDefault(); if (deadEvent != null) { fightData.SetSuccess(true, deadEvent.Time); return; } SetSuccessByCombatExit(new HashSet <int>(GetSuccessCheckIds()), combatData, fightData, playerAgents); } } }
internal override void CheckSuccess(CombatData combatData, AgentData agentData, FightData fightData, IReadOnlyCollection <AgentItem> playerAgents) { AbstractSingleActor mainTarget = Targets.FirstOrDefault(x => x.ID == GenericTriggerID); if (mainTarget == null) { throw new MissingKeyActorsException("Golem not found"); } long fightEndLogTime = fightData.FightEnd; bool success = false; DeadEvent deadEvt = combatData.GetDeadEvents(mainTarget.AgentItem).LastOrDefault(); if (deadEvt != null) { fightEndLogTime = deadEvt.Time; success = true; } else { IReadOnlyList <HealthUpdateEvent> hpUpdates = combatData.GetHealthUpdateEvents(mainTarget.AgentItem); if (hpUpdates.Count > 0) { AbstractHealthDamageEvent lastDamageTaken = combatData.GetDamageTakenData(mainTarget.AgentItem).LastOrDefault(x => x.HealthDamage > 0); success = hpUpdates.Last().HPPercent < 2.00; if (success && lastDamageTaken != null) { fightEndLogTime = lastDamageTaken.Time; } } } fightData.SetSuccess(success, fightEndLogTime); }
public void Kill(Player murderer, MoveType moveType) { switch (moveType) { case MoveType.RidingBicycle: { DeadEvent? .Invoke(this, new DogDeadEventArgs ( DogDeadCause.Bicycle )); break; } case MoveType.RidingMotorcycle: { DeadEvent? .Invoke(this, new DogDeadEventArgs ( DogDeadCause.Motorcycle )); break; } case MoveType.DrivingCar: { DeadEvent? .Invoke(this, new DogDeadEventArgs ( DogDeadCause.Car )); break; } default: { throw new ArgumentOutOfRangeException(nameof(moveType)); } } Kill( ); }
/// <summary> /// Override times in a manner that the phase englobes the targets present in the phase (if possible) /// </summary> /// <param name="log"></param> internal void OverrideTimes(ParsedEvtcLog log) { if (Targets.Count > 0) { long end = long.MinValue; long start = long.MaxValue; foreach (AbstractSingleActor target in Targets) { long startTime = target.FirstAware; SpawnEvent spawned = log.CombatData.GetSpawnEvents(target.AgentItem).FirstOrDefault(); if (spawned != null) { startTime = spawned.Time; } EnterCombatEvent enterCombat = log.CombatData.GetEnterCombatEvents(target.AgentItem).FirstOrDefault(); if (enterCombat != null) { startTime = enterCombat.Time; } long deadTime = target.LastAware; DeadEvent died = log.CombatData.GetDeadEvents(target.AgentItem).FirstOrDefault(); if (died != null) { deadTime = died.Time; } start = Math.Min(start, startTime); end = Math.Max(end, deadTime); } Start = Math.Max(Math.Max(Start, start), 0); End = Math.Min(Math.Min(End, end), log.FightData.FightEnd); } DurationInM = (End - Start) / 60000; DurationInMS = (End - Start); DurationInS = (End - Start) / 1000; }
protected override bool InitCombatReplay(ParsedEvtcLog log) { if (base.InitCombatReplay(log)) { // Trim DespawnEvent despawnCheck = log.CombatData.GetDespawnEvents(AgentItem).LastOrDefault(); SpawnEvent spawnCheck = log.CombatData.GetSpawnEvents(AgentItem).LastOrDefault(); DeadEvent deathCheck = log.CombatData.GetDeadEvents(AgentItem).LastOrDefault(); AliveEvent aliveCheck = log.CombatData.GetAliveEvents(AgentItem).LastOrDefault(); if (AgentItem.Type != AgentItem.AgentType.EnemyPlayer && deathCheck != null && (aliveCheck == null || aliveCheck.Time < deathCheck.Time)) { CombatReplay.Trim(AgentItem.FirstAware, deathCheck.Time); } else if (despawnCheck != null && (spawnCheck == null || spawnCheck.Time < despawnCheck.Time)) { CombatReplay.Trim(AgentItem.FirstAware, despawnCheck.Time); } else { CombatReplay.Trim(AgentItem.FirstAware, AgentItem.LastAware); } return(true); } return(false); }
internal IReadOnlyList <IReadOnlyList <Segment> > GetLifeSpanSegments(ParsedEvtcLog log) { var minionsSegments = new List <List <Segment> >(); long fightDur = log.FightData.FightEnd; foreach (NPC minion in _minionList) { var minionSegments = new List <Segment>(); long start = Math.Max(minion.FirstAware, 0); // Find end long end = minion.LastAware; DeadEvent dead = log.CombatData.GetDeadEvents(minion.AgentItem).LastOrDefault(); if (dead != null) { end = Math.Min(dead.Time, end); } DespawnEvent despawn = log.CombatData.GetDespawnEvents(minion.AgentItem).LastOrDefault(); if (despawn != null) { end = Math.Min(despawn.Time, end); } // end = Math.Min(end, fightDur); minionSegments.Add(new Segment(0, start, 0)); minionSegments.Add(new Segment(start, end, 1)); minionSegments.Add(new Segment(end, fightDur, 0)); minionsSegments.Add(minionSegments); } return(minionsSegments); }
protected override void UpdateAfterReceiveAttack() { if (m_cStatus.m_nHp <= 0) { m_cStatus.m_nHp = 0; isDead = true; DeadEvent.Invoke(); if (BattleSceneManager.getInstance().CharacterCount == 3) { BattleSceneManager.getInstance().mainCharacter = BattleSceneManager.getInstance().Character[BattleSceneManager.getInstance().CharacterSecondIndex]; BattleSceneManager.getInstance().camara3.GetComponent <OrbitCameraC>().target = BattleSceneManager.getInstance().Character[BattleSceneManager.getInstance().CharacterSecondIndex].transform; } if (BattleSceneManager.getInstance().CharacterCount == 3) { BattleSceneManager.getInstance().mainCharacter = BattleSceneManager.getInstance().Character[BattleSceneManager.getInstance().CharacterThirdIndex]; BattleSceneManager.getInstance().camara3.GetComponent <OrbitCameraC>().target = BattleSceneManager.getInstance().Character[BattleSceneManager.getInstance().CharacterThirdIndex].transform; } if (BattleSceneManager.getInstance().CharacterCount == 1) { Debug.Log("종료"); } BattleSceneManager.getInstance().CharacterCount--; Destroy(this.gameObject); } UIManager.instance.UpdatePlayerUI(this); }
public void AddDamage(float damage) { HP -= damage; ChangedEvent?.Invoke(this); if (HP < 0) { DeadEvent?.Invoke(this); } }
void Start() { _anim = GetComponent <Animator>(); deadEvent = new DeadEvent(); deadEvent.onDead += new DeadEvent.deadHandler(onDead); speedEvent = new SpeedEvent(); booLV = bigBooLv = 0; alive = true; }
private void OnDeviceDead(DeadEvent deadEvent) { if (!m_SpacecraftDeadProperty.IsDead()) { return; } ///SendEvent(ComponentEventName.ShowDeviceDeadFX, null); SendEvent(ComponentEventName.PlayDeviceDeadAnimation, null); }
public async Task <BaseResponse> MqClientSendDead() { DeadEvent nomalEvent = new DeadEvent { Content = " hello " }; _rabbitMqClient.SendMessageDead(nomalEvent, DateTime.Now.AddSeconds(15)); return(BaseResponse.Ok()); }
/// <summary> 体力を設定します。 </summary> /// <param name="health"> 設定する体力 </param> public void SetHealth(int health) { this.health = health; // HPがなくなったら if (health <= 0) { // 死亡した時のイベントを通知する DeadEvent.Invoke(); } }
internal void OnPlayerDead(DeadEvent ev) { if (ev.Killer.IsSpy()) { if (plugin.ChangeBody) { ev.Killer.ChangeBody(ev.Target.Role, false, ev.Target.Position, ev.Target.Rotation, ev.HitInfo.GetDamageType()); } } else if (ev.Target.IsSpy()) { KillSpy(ev.Target); } }
protected override void Die() { base.Die(); DeadEvent?.Invoke(); // Activate the arms again foreach (Transform arm in arms) { arm.gameObject.SetActive(true); } GetHead().enabled = false; GetMovement().enabled = false; }
internal List <PhaseData> GetBreakbarPhases(ParsedEvtcLog log, bool requirePhases) { if (!requirePhases) { return(new List <PhaseData>()); } var breakbarPhases = new List <PhaseData>(); foreach (NPC target in Targets) { int i = 0; IReadOnlyList <BreakbarStateEvent> breakbarStateEvents = log.CombatData.GetBreakbarStateEvents(target.AgentItem); IReadOnlyList <BreakbarPercentEvent> breakbarPercentEvents = log.CombatData.GetBreakbarPercentEvents(target.AgentItem); var breakbarActiveEvents = breakbarStateEvents.Where(x => x.State == ArcDPSEnums.BreakbarState.Active).ToList(); var breakbarNotActiveEvents = breakbarStateEvents.Where(x => x.State != ArcDPSEnums.BreakbarState.Active).ToList(); foreach (BreakbarStateEvent active in breakbarActiveEvents) { long start = Math.Max(active.Time - 2000, 0); BreakbarStateEvent notActive = breakbarNotActiveEvents.FirstOrDefault(x => x.Time >= active.Time); long end; if (notActive == null) { DeadEvent deadEvent = log.CombatData.GetDeadEvents(target.AgentItem).LastOrDefault(); if (deadEvent == null) { end = Math.Min(target.LastAware, log.FightData.FightEnd); } else { end = Math.Min(deadEvent.Time, log.FightData.FightEnd); } } else { end = Math.Min(notActive.Time, log.FightData.FightEnd); } var phase = new PhaseData(start, end, target.Character + " Breakbar " + ++i) { BreakbarPhase = true, CanBeSubPhase = false }; phase.AddTarget(target); breakbarPhases.Add(phase); } } return(breakbarPhases); }
public void Dead() { anim.applyRootMotion = true; State = PlayerState.dead; characterStatus.isBehindCover = false; anim.SetBool("Stels", characterStatus.isBehindCover); characterStels.CapsulToStelsState(characterStatus.isBehindCover); anim.SetBool("Dead", true); anim.SetTrigger("DeadTrigger"); Invoke("NoSuit", 3f); Invoke("ReturnActive", 3f); if (DeadEvent != null) { DeadEvent.Invoke(); } DeadEvent = null; }
public void TakeDamage(float damage) { if (_personAnimator.IsDead == false && _personAnimator.IsJumping == false) { HealthParameter.Value -= damage; HitEvent.Invoke(damage); if (HealthParameter.Value <= 0) { _personAnimator.DeadAnimation(); Destroy(GetComponent <Collider2D>()); if (DeadEvent != null) { DeadEvent.Invoke(this, new EventArgs()); } Destroy(gameObject, 5f); } } }
public static void SetPhasePerTarget(NPC target, List <PhaseData> phases, ParsedLog log) { long fightDuration = log.FightData.FightEnd; EnterCombatEvent phaseStart = log.CombatData.GetEnterCombatEvents(target.AgentItem).LastOrDefault(); if (phaseStart != null) { long start = phaseStart.Time; DeadEvent phaseEnd = log.CombatData.GetDeadEvents(target.AgentItem).LastOrDefault(); long end = fightDuration; if (phaseEnd != null) { end = phaseEnd.Time; } var phase = new PhaseData(start, Math.Min(end, log.FightData.FightEnd)); phase.Targets.Add(target); phases.Add(phase); } }
protected void TrimCombatReplay(ParsedLog log) { DespawnEvent despawnCheck = log.CombatData.GetDespawnEvents(AgentItem).LastOrDefault(); SpawnEvent spawnCheck = log.CombatData.GetSpawnEvents(AgentItem).LastOrDefault(); DeadEvent deathCheck = log.CombatData.GetDeadEvents(AgentItem).LastOrDefault(); if (deathCheck != null) { CombatReplay.Trim(log.FightData.ToFightSpace(AgentItem.FirstAwareLogTime), deathCheck.Time); } else if (despawnCheck != null && (spawnCheck == null || spawnCheck.Time < despawnCheck.Time)) { CombatReplay.Trim(log.FightData.ToFightSpace(AgentItem.FirstAwareLogTime), despawnCheck.Time); } else { CombatReplay.Trim(log.FightData.ToFightSpace(AgentItem.FirstAwareLogTime), log.FightData.ToFightSpace(AgentItem.LastAwareLogTime)); } }
private void OnUnitDead(object sender, DateTime dateTime) { BattleBase one = sender as BattleBase; if (one != null) { UnitDeadEvent?.Invoke(this, one); lock (_mutex) { if (_battleUnits.Contains(one)) { _battleUnits.Remove(one); one.DeadEvent -= OnUnitDead; } } if (!IsAlive()) { DeadEvent?.Invoke(this, dateTime); } } }
protected static void TrimCombatReplay(ParsedEvtcLog log, CombatReplay replay, AgentItem agentItem) { // Trim DespawnEvent despawnCheck = log.CombatData.GetDespawnEvents(agentItem).LastOrDefault(); SpawnEvent spawnCheck = log.CombatData.GetSpawnEvents(agentItem).LastOrDefault(); DeadEvent deathCheck = log.CombatData.GetDeadEvents(agentItem).LastOrDefault(); AliveEvent aliveCheck = log.CombatData.GetAliveEvents(agentItem).LastOrDefault(); if (deathCheck != null && (aliveCheck == null || aliveCheck.Time < deathCheck.Time)) { replay.Trim(agentItem.FirstAware, deathCheck.Time); } else if (despawnCheck != null && (spawnCheck == null || spawnCheck.Time < despawnCheck.Time)) { replay.Trim(agentItem.FirstAware, despawnCheck.Time); } else { replay.Trim(agentItem.FirstAware, agentItem.LastAware); } }
/// <summary> /// Override times in a manner that the phase englobes the targets present in the phase (if possible) /// </summary> /// <param name="log"></param> public void OverrideTimes(ParsedLog log) { if (Targets.Count > 0) { Start = Math.Max(Start, log.FightData.ToFightSpace(Targets.Min(x => x.FirstAwareLogTime))); long end = long.MinValue; foreach (Target target in Targets) { long deadTime = log.FightData.ToFightSpace(target.LastAwareLogTime); DeadEvent died = log.CombatData.GetDeadEvents(target.AgentItem).FirstOrDefault(); if (died != null) { deadTime = died.Time; } end = Math.Max(end, deadTime); } End = Math.Min(Math.Min(End, end), log.FightData.FightDuration); } DurationInM = (End - Start) / 60000; DurationInMS = (End - Start); DurationInS = (End - Start) / 1000; }
private void ShowRelivePanel(DeadEvent deadEvent) { //if (m_SpacecraftDeadProperty.IsMain()) //{ // string killerName = "error_name"; // if (deadEvent.KillerNpctemplateID > 0) // { // killerName = TableUtil.GetNpcName(deadEvent.KillerNpctemplateID); // } // else // { // killerName = deadEvent.KillerPlayerName; // } // bool isShowHallRelive = false; // foreach (var item in deadEvent.ReliveOptions) // { // if (item == (short)PlayerReliveType.relive_hall) // { // isShowHallRelive = true; // break; // } // } // GameFacade.Instance.SendNotification(NotificationName.MainHeroDeath, new ShowRelviePanelNotify() // { // IsShowHallRelive = isShowHallRelive, // Countdown = deadEvent.CD, // KillerName = killerName, // }); //} SpacecraftEntity mainPlayer = m_GameplayProxy.GetMainPlayer(); if (mainPlayer.GetTarget() == m_GameplayProxy.GetEntityById <SpacecraftEntity>(m_SpacecraftDeadProperty.GetUId())) { mainPlayer.SetTarget(null, null); } }
public static void SetPhasePerTarget(NPC target, List <PhaseData> phases, ParsedEvtcLog log) { long fightDuration = log.FightData.FightEnd; EnterCombatEvent phaseStart = log.CombatData.GetEnterCombatEvents(target.AgentItem).LastOrDefault(); if (phaseStart != null) { long start = phaseStart.Time; DeadEvent phaseEnd = log.CombatData.GetDeadEvents(target.AgentItem).LastOrDefault(); long end = fightDuration; if (phaseEnd != null) { end = phaseEnd.Time; } var phase = new PhaseData(start, Math.Min(end, log.FightData.FightEnd)); phase.Targets.Add(target); switch (target.ID) { case (int)ArcDPSEnums.TargetID.Narella: phase.Name = "Narella"; break; case (int)ArcDPSEnums.TargetID.Berg: phase.Name = "Berg"; break; case (int)ArcDPSEnums.TargetID.Zane: phase.Name = "Zane"; break; default: throw new InvalidOperationException("Unknown target in Bandit Trio"); } phases.Add(phase); } }
private void Start() { deadEvent = new DeadEvent(); curHp = MaxHP; }
internal override List <PhaseData> GetPhases(ParsedEvtcLog log, bool requirePhases) { List <PhaseData> phases = GetInitialPhase(log); AbstractSingleActor fraenir = Targets.FirstOrDefault(x => x.ID == (int)ArcDPSEnums.TargetID.FraenirOfJormag); if (fraenir == null) { throw new MissingKeyActorsException("Fraenir of Jormag not found"); } phases[0].AddTarget(fraenir); AbstractSingleActor icebrood = Targets.FirstOrDefault(x => x.ID == (int)ArcDPSEnums.TargetID.IcebroodConstructFraenir); if (icebrood != null) { phases[0].AddTarget(icebrood); } if (!requirePhases) { return(phases); } AbstractBuffEvent invulApplyFraenir = log.CombatData.GetBuffData(762).Where(x => x.To == fraenir.AgentItem && x is BuffApplyEvent).FirstOrDefault(); if (invulApplyFraenir != null) { // split happened phases.Add(new PhaseData(0, invulApplyFraenir.Time, "Fraenir 1")); if (icebrood != null) { // icebrood enters combat EnterCombatEvent enterCombatIce = log.CombatData.GetEnterCombatEvents(icebrood.AgentItem).LastOrDefault(); if (enterCombatIce != null) { // icebrood phasing AbstractBuffEvent invulApplyIce = log.CombatData.GetBuffData(757).Where(x => x.To == icebrood.AgentItem && x is BuffApplyEvent).FirstOrDefault(); AbstractBuffEvent invulRemoveIce = log.CombatData.GetBuffData(757).Where(x => x.To == icebrood.AgentItem && x is BuffRemoveAllEvent).FirstOrDefault(); long icebroodStart = enterCombatIce.Time; long icebroodEnd = log.FightData.FightEnd; if (invulApplyIce != null && invulRemoveIce != null) { long icebrood2Start = invulRemoveIce.Time; phases.Add(new PhaseData(icebroodStart + 1, invulApplyIce.Time, "Icebrood 1")); AbstractBuffEvent invulRemoveFraenir = log.CombatData.GetBuffData(762).Where(x => x.To == fraenir.AgentItem && x is BuffRemoveAllEvent).FirstOrDefault(); if (invulRemoveFraenir != null) { // fraenir came back DeadEvent deadIce = log.CombatData.GetDeadEvents(icebrood.AgentItem).LastOrDefault(); if (deadIce != null) { icebroodEnd = deadIce.Time; } else { icebroodEnd = invulRemoveFraenir.Time - 1; } phases.Add(new PhaseData(invulRemoveFraenir.Time, log.FightData.FightEnd, "Fraenir 2")); } phases.Add(new PhaseData(icebrood2Start, icebroodEnd, "Icebrood 2")); } phases.Add(new PhaseData(icebroodStart, icebroodEnd, "Icebrood")); } } } phases.Sort((x, y) => x.Start.CompareTo(y.Start)); for (int i = 1; i < phases.Count; i++) { PhaseData phase = phases[i]; if (i == 1 || i == 5) { phase.AddTarget(fraenir); } else { phase.AddTarget(icebrood); } } return(phases); }
//private void OnCollisionEnter(Collision obj) //{ // OnSpacecraftSlidingEnd(); //} //private void OnCollisionStay(Collision obj) //{ //} //private void OnCollisionExit(Collision obj) //{ //} //private void OnRelive(IComponentEvent obj) //{ // m_DeadFxState = DeadState.None; // RealTimerUtil.Instance.Unregister(m_ShowDeadFxTimerId); //} private void OnDead(IComponentEvent obj) { DeadEvent deadEvent = obj as DeadEvent; if (!m_SpacecraftDeadProperty.IsDead()) { return; } m_DropInfoList = deadEvent.DropList; /// TODO.宝藏特殊处理 /// 服务器创建后立马死亡 //if (m_SpacecraftDeadProperty.IsNotHaveAva()) //{ // if (m_DropInfoList != null && m_DropInfoList.Count > 0) // { // DropItemManager.Instance.SetDropItemInfoByDeath(m_SpacecraftDeadProperty.UId(), m_DropInfoList); // } // return; //} /// npc死亡 if (m_SpacecraftDeadProperty.GetHeroType() != KHeroType.htPlayer) { Npc npcVO = m_SpacecraftDeadProperty.GetNPCTemplateVO(); if (npcVO.SoundDead > 0) { SendEvent(ComponentEventName.PlaySound, new PlaySound() { SoundID = (int)npcVO.SoundDead }); } /// 导演死检查音乐盒子 if (m_SpacecraftDeadProperty.GetHeroType() == KHeroType.htPlotMonster) { MSAIBossProxy msab = GameFacade.Instance.RetrieveProxy(ProxyName.MSAIBossProxy) as MSAIBossProxy; msab.DestroySoundBox(m_SpacecraftDeadProperty.UId()); } /// TODO.干扰器死亡 else if (m_SpacecraftDeadProperty.GetHeroType() == KHeroType.htDisturbor) { /// 自己的停掉 SpacecraftEntity ownerEntity = m_SpacecraftDeadProperty.GetOwner(); ownerEntity.SendEvent(ComponentEventName.PlaySound, new PlaySound() { SoundID = (int)WwiseMusic.Treasure_Disturbor_Sound5, Transform = ownerEntity.GetSkinTransform() }); TreasureHuntProxy treasure = GameFacade.Instance.RetrieveProxy(ProxyName.TreasureHuntProxy) as TreasureHuntProxy; treasure.DisturborSoundEffect(m_SpacecraftDeadProperty.GetOwner().m_EntityFatherOwnerID); } } m_SpacecraftDeadProperty.SetTarget(null, null); #region 待服务器在new_hero协议中添加复活状态逻辑后删除 if (m_SpacecraftDeadProperty.IsMain()) { m_GameplayProxy = GameFacade.Instance.RetrieveProxy(ProxyName.GameplayProxy) as GameplayProxy; if (m_SpacecraftDeadProperty.IsMain()) { CfgEternityProxy eternityProxy = GameFacade.Instance.RetrieveProxy(ProxyName.CfgEternityProxy) as CfgEternityProxy; m_GameplayProxy.SetDeadMapID(eternityProxy.GetCurrentMapData().GamingmapId); } } #endregion ShowRelivePanel(deadEvent); SpacecraftPresentation presentation = m_SpacecraftDeadProperty.GetPresentation(); if (presentation != null) { if (presentation.SpacecraftDeadType != SpacecraftPresentation.SpacecraftType.Warship) { OnDeviceDead(deadEvent); } } }
public void Kill(Weather weather) { DeadEvent? .Invoke(this, new DogDeadEventArgs ( DogDeadCause.BadWeather )); Kill( ); }