コード例 #1
0
        protected override async Task OnMessageActivityAsync(ITurnContext <IMessageActivity> turnContext,
                                                             CancellationToken cancellationToken)
        {
            stepInformation = await GetConversationStep(turnContext);

            switch (stepInformation.Step)
            {
            case ChatStep.UserInformation:
            case ChatStep.None:
                await CaptureUserInformation(turnContext, cancellationToken);

                break;

            case ChatStep.ChatInformation:
                await CaptureChatInformation(turnContext, cancellationToken);

                break;

            case ChatStep.UserFeedback:
                await CaptureUserFeedback(turnContext, cancellationToken);

                break;

            case ChatStep.SupportTicket:
                await CaptureSupportTicketInformation(turnContext, cancellationToken);

                break;

            default:
                break;
            }
        }
コード例 #2
0
    public SimulationArea GetCurrentSimulationArea(uint offset, uint totalDevisions)
    {
        StepInformation stepInformation = GetStepInformation(offset, totalDevisions);

        int columnCount = WorldDimensions.Width / Dimensions.Width;
        int rowCount    = WorldDimensions.Height / Dimensions.Height;

        WorldPosition position = new WorldPosition();

        position.X = (stepInformation.simulationPosition - ((int)(stepInformation.simulationPosition / columnCount) * columnCount)) * Dimensions.Width;
        position.Y = (stepInformation.simulationPosition / columnCount) * Dimensions.Height;

        WorldDimensions dimensions = new WorldDimensions();

        dimensions.Width  = Math.Min(WorldDimensions.Width - position.X, Dimensions.Width);
        dimensions.Height = Math.Min(WorldDimensions.Height - position.Y, Dimensions.Height);

        position.X        -= Radius;
        position.Y        -= Radius;
        dimensions.Width  += Radius * 2;
        dimensions.Height += Radius * 2;

        if (position.X < 0)
        {
            int diff = position.X * -1;
            position.X       += diff;
            dimensions.Width -= diff;
        }

        if (position.X + dimensions.Width > WorldDimensions.Width)
        {
            int diff = (position.X + dimensions.Width) - WorldDimensions.Width;
            dimensions.Width -= diff;
        }

        if (position.Y < 0)
        {
            int diff = position.Y * -1;
            position.Y        += diff;
            dimensions.Height -= diff;
        }

        if (position.Y + dimensions.Height > WorldDimensions.Height)
        {
            int diff = (position.Y + dimensions.Height) - WorldDimensions.Height;
            dimensions.Height -= diff;
        }

        return(new SimulationArea(dimensions, position, stepInformation.simulationPosition));
    }
コード例 #3
0
    private StepInformation GetStepInformation(uint offset, uint totalDevisions)
    {
        StepInformation result = default(StepInformation);

        result.totalStepsForWorld = (uint)((WorldDimensions.Width / Dimensions.Width) * (WorldDimensions.Height / Dimensions.Height));

        uint devidedStepsForWorld = result.totalStepsForWorld / totalDevisions;
        uint offsetSteps          = devidedStepsForWorld * offset;

        uint simulationStepWithOffset = SimulationStep + offsetSteps;

        result.worldSteps         = (int)(simulationStepWithOffset / result.totalStepsForWorld);
        result.minorSteps         = (int)(result.worldSteps * result.totalStepsForWorld);
        result.simulationPosition = (int)simulationStepWithOffset - result.minorSteps;

        return(result);
    }