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); } }
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); } }