Пример #1
0
        public void Initialize()
        {
            IGroup <GameEntity> actionEntities =
                context.GetGroup(GameMatcher.AllOf(GameMatcher.BattleAction, GameMatcher.Target));

            foreach (GameEntity actionEntity in actionEntities)
            {
                actionEntity.ReplaceBattleAction(actionEntity.battleAction.EntityId,
                                                 actionEntity.battleAction.ActionType, ActionATBType.Acting);
                float executionTime = BattleActionUtils.GetTimeForAction(actionEntity.battleAction.ActionType);
                actionEntity.ReplaceExecutionTime(executionTime, executionTime);
            }
        }
Пример #2
0
    protected override void ExecuteSystem()
    {
        foreach (GameEntity actionEntity in actionEntities)
        {
            GameEntity performingCharacter = _context.GetEntityWithId(actionEntity.battleAction.EntityId);

            if (performingCharacter != null)
            {
                float newRemainingTime = actionEntity.executionTime.RemainingTime -
                                         Time.deltaTime * BattleActionUtils.GetActionTimeStep(
                    actionEntity.battleAction.ActionType,
                    performingCharacter);
                actionEntity.ReplaceExecutionTime(actionEntity.executionTime.TotalTime,
                                                  newRemainingTime);
            }
        }
    }
        public void Initialize()
        {
            IGroup <GameEntity> choosingEntities =
                context.GetGroup(GameMatcher.AllOf(GameMatcher.BattleAction, GameMatcher.ExecutionTime));
            GameEntity currentEntity = null;

            foreach (GameEntity choosingEntity in choosingEntities)
            {
                if (choosingEntity.executionTime.RemainingTime <= 0f &&
                    choosingEntity.battleAction.ActionAtbType == ActionATBType.Waiting)
                {
                    currentEntity = choosingEntity;
                    break;
                }
            }

            if (currentEntity != null)
            {
                GameEntity characterEntity = context.GetEntityWithId(currentEntity.battleAction.EntityId);

                if (characterEntity != null)
                {
                    int[] possibleTargetIds =
                        BattleActionUtils.GetTargetEntitiesByActionType(currentEntity.battleAction.ActionType,
                                                                        characterEntity, context);

                    if (possibleTargetIds.Length == 1 && possibleTargetIds[0] == characterEntity.id.Id)
                    {
                        currentEntity.AddTarget(characterEntity.id.Id);
                    }
                    else
                    {
                        /*UIService.ShowWidget<AWidget>(UiAssetTypes.CharacterChooser,
                         *  new CharacterChooserProperties(possibleTargetIds,
                         *      context, currentEntity));*/
                    }
                }
            }
            else
            {
                context.SetNewSubstate(SubState.Waiting);
            }
        }