Esempio n. 1
0
        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);
        }
Esempio n. 3
0
 public override void UpdateStatus(FightStatus fightStatus)
 {
     fightStatus.RemoveEntity(concernedEntity);
     FightLogicExecutor.FireUpdateStatus(fightStatus.fightId, EventCategory.EntityAddedOrRemoved);
 }