public override void UpdateStatus(FightStatus fightStatus) { fightStatus.endReason = GetEndReason(fightStatus); switch (GameStatus.fightType) { case FightType.TeamVersus: foreach (IEntityWithBoardPresence item in fightStatus.EnumerateEntities <IEntityWithBoardPresence>()) { IEntityWithOwner entityWithOwner; if ((entityWithOwner = (item as IEntityWithOwner)) == null || entityWithOwner.teamId != winningTeamId) { m_removedEntities.Add(item); fightStatus.RemoveEntity(item.id); } } break; case FightType.BossFight: foreach (IEntityWithBoardPresence item2 in fightStatus.EnumerateEntities <IEntityWithBoardPresence>()) { m_removedEntities.Add(item2); fightStatus.RemoveEntity(item2.id); } break; default: throw new ArgumentOutOfRangeException(); } if (fightStatus == FightStatus.local) { FightMap current3 = FightMap.current; if (null != current3) { current3.Stop(); } FightUIRework instance = FightUIRework.instance; if (null != instance) { instance.SetResignButtonEnabled(value: false); } } }
public override void UpdateStatus(FightStatus fightStatus) { fightStatus.RemoveEntity(concernedEntity); if (fightStatus.TryGetEntity(ownerId, out PlayerStatus entityStatus)) { EntityType newEntityType = (EntityType)this.newEntityType; EntityStatus entityStatus2; switch (newEntityType) { case EntityType.Hero: throw new Exception("[TransformationEvent] Heroes cannot be transformed."); case EntityType.Companion: entityStatus2 = CompanionAddedEvent.CreateCompanionStatus(newEntityId, entityDefId, level, entityStatus, refCoord); break; case EntityType.Summoning: entityStatus2 = SummoningAddedEvent.CreateSummoningStatus(newEntityId, entityDefId, level, entityStatus, refCoord); break; case EntityType.FloorMechanism: entityStatus2 = FloorMechanismAddedEvent.CreateFloorMechanismStatus(newEntityId, entityDefId, level, entityStatus, refCoord); break; case EntityType.ObjectMechanism: entityStatus2 = ObjectMechanismAddedEvent.CreateObjectMechanismStatus(newEntityId, entityDefId, level, entityStatus, refCoord); break; case EntityType.Global: case EntityType.Player: case EntityType.Team: Log.Error($"Transformation not handled for type {newEntityType}.", 48, "C:\\BuildAgents\\AgentB\\work\\cub_client_win64_develop\\client\\DofusCube.Unity\\Assets\\Core\\Code\\Fight\\Events\\TransformationEvent.cs"); return; default: throw new ArgumentOutOfRangeException(); } IEntityWithAction entityWithAction; if (copyActionUsed && fightStatus.TryGetEntity(concernedEntity, out IEntityWithAction entityStatus3) && (entityWithAction = (entityStatus2 as IEntityWithAction)) != null) { entityWithAction.actionUsed = entityStatus3.actionUsed; fightStatus.NotifyEntityPlayableStateChanged(); } fightStatus.AddEntity(entityStatus2); } else { Log.Error(FightEventErrors.PlayerNotFound(ownerId), 72, "C:\\BuildAgents\\AgentB\\work\\cub_client_win64_develop\\client\\DofusCube.Unity\\Assets\\Core\\Code\\Fight\\Events\\TransformationEvent.cs"); } FightLogicExecutor.FireUpdateStatus(fightStatus.fightId, EventCategory.EntityAddedOrRemoved); }
public override void UpdateStatus(FightStatus fightStatus) { fightStatus.RemoveEntity(concernedEntity); FightLogicExecutor.FireUpdateStatus(fightStatus.fightId, EventCategory.EntityAddedOrRemoved); }