Esempio n. 1
0
        public String registerStepAction(StepAction action)
        {
            String toReturn = Guid.NewGuid().ToString();

            m_actions.Add(toReturn, action);
            return(toReturn);
        }
        public async Task <Response> Continue(string connectionId, StepAction stepAction = StepAction.Next, int?stepCount = null)
        {
            var scriptEngine = GetScriptEngineForConnection(connectionId);
            var response     = await scriptEngine.Continue(stepAction, stepCount);

            return(response);
        }
Esempio n. 3
0
   public static int CreateStepRequest(FlatBufferBuilder builder,
 StepAction action = 0,
 uint thread_id = 0)
   {
       builder.StartObject(2);
       StepRequest.AddThreadId(builder, thread_id);
       StepRequest.AddAction(builder, action);
       return StepRequest.EndStepRequest(builder);
   }
        public void TestSpeechActionParsedFromString()
        {
            var        builder     = new StepBuilder(new MockEntitySupplier());
            StepAction maybeSpeech = builder.GetActionFromInput("Joey say \"Hello! Good to meet you sir!\"");
            StepAction maybeFart   = builder.GetActionFromInput("Joey fart \"Hello! Good to meet you sir!\"");

            Assert.AreEqual(StepAction.Speech, maybeSpeech);
            Assert.AreEqual(StepAction.Undefined, maybeFart);
        }
Esempio n. 5
0
 public static int CreateStepRequest(FlatBufferBuilder builder,
                                     StepAction action = 0,
                                     uint thread_id    = 0)
 {
     builder.StartObject(2);
     StepRequest.AddThreadId(builder, thread_id);
     StepRequest.AddAction(builder, action);
     return(StepRequest.EndStepRequest(builder));
 }
        private void Step()
        {
            Cursor.Current = Cursors.WaitCursor;

            try
            {
                StepAction action = new StepAction(solutionsTree, solutionsCheckedListBox.SelectedSolutionNode);
                UndoRedoManager.Instance.SaveAndExecute(action);
            }
            finally
            {
                Cursor.Current = Cursors.Default;
            }
        }
Esempio n. 7
0
        /// <summary>
        /// The request continue is a request from the debugger to start the VM running again. As part of the continue request the debugger can specify if it wants the VM to perform a single step action.
        /// </summary>
        /// <param name="stepAction"></param>
        /// <param name="stepCount"></param>
        /// <returns></returns>
        public async Task <Response> Continue(StepAction stepAction = StepAction.Next, int?stepCount = null)
        {
            var continueRequest = new Request("continue");

            continueRequest.Arguments.stepaction = stepAction.ToString().ToLowerInvariant();

            if (stepCount.HasValue && stepCount.Value > 1)
            {
                continueRequest.Arguments.stepCount = stepCount.Value;
            }

            var continueResponse = await m_debuggerClient.SendRequestAsync(continueRequest);

            return(continueResponse);
        }
Esempio n. 8
0
        public void Initialize(Game game)
        {
            this.Game          = game;
            this.Control       = new Game.PlayerControl(this);
            this.CurrentAction = StepAction.None;
            this.Invalidate();

            //graphic debug
            //Random r = new Random(42);
            //foreach (var node in Game.Board.Nodes)
            //{
            //    node.Occupation = (Occupation)r.Next(3);
            //}
            //SelectedNode = Game.Board.Nodes.ElementAt(3);
        }
Esempio n. 9
0
        public static void Main(String[] args)
        {
            System.Diagnostics.Debug.WriteLine("Starting Up");
            GameClock clock = new GameClock(100);

            BuildingConfiguration buildingConfiguration = new BuildingConfiguration("Devonshire Place",
                                                                                    -1,
                                                                                    8,
                                                                                    13);

            ElevatorConfiguration elevatorConfiguration = new ElevatorConfiguration("Elevator 1",
                                                                                    4000);

            List <ElevatorConfiguration> elevatorConfigurations = new List <ElevatorConfiguration>();

            elevatorConfigurations.Add(elevatorConfiguration);


            ElevatorBankConfiguration bankConfiguration = new ElevatorBankConfiguration("Main Elevators",
                                                                                        buildingConfiguration,
                                                                                        elevatorConfigurations);

            Elevator firstElevator = new Elevator(elevatorConfiguration,
                                                  buildingConfiguration);

            List <Elevator> elevators = new List <Elevator>();

            elevators.Add(firstElevator);

            ElevatorBank bank = new ElevatorBank(buildingConfiguration,
                                                 elevators,
                                                 clock);

            ElevatorUserGeneration userGenerator = new ElevatorUserGeneration(5,
                                                                              buildingConfiguration.minFloor,
                                                                              buildingConfiguration.maxFloor,
                                                                              bank);

            StepAction nextAction = new StepAction("SimpleAction",
                                                   (int stepNumber) =>
                                                   userGenerator.registerUser(stepNumber));


            clock.registerStepAction(nextAction);
            clock.run();

            System.Diagnostics.Debug.WriteLine("Successfully executed run.  Shutting down");
        }
Esempio n. 10
0
        private async Task <StepResponse> Step(StepAction stepAction, uint threadId)
        {
            await BeginRunStateTransition();

            var fbb = BeginRequest();
            int requestDataOffset = StepRequest.CreateStepRequest(fbb, stepAction, threadId);
            var response          = await CommitRequest(fbb, RequestData.StepRequest, requestDataOffset);

            System.Diagnostics.Debug.Assert(response.ResponseDataType ==
                                            ResponseData.StepResponse);
            var stepResponse = new StepResponse();

            response.GetResponseData(stepResponse);
            await CompleteRunStateTransition(RunState.Paused);

            return(stepResponse);
        }
Esempio n. 11
0
        private void SetDataRound(IList <DataRound> dataRound)
        {
            foreach (DataRound round in dataRound)
            {
                BattleTurn turn = new BattleTurn();
                foreach (DataAction action in round.actionsList)
                {
                    BattleStep step = new BattleStep();
                    foreach (DataSingleAction sact in action.attacker_actionsList)
                    {
                        string log = "Attack action: ";
                        log += ",\t\t card_idx = " + sact.Card_idx;
                        log += ",\t\t skillid = " + sact.Skillid;
                        log += ",\t\t att_value = " + sact.Att_value;
                        log += ",\t\t att_type = " + sact.Att_type;
                        log += ",\t\t beCrit = " + sact.BeCrit;
                        log += ",\t\t cur_hp = " + sact.Cur_hp;
                        log += ",\t\t heti_idx = " + sact.Heti_idx;

                        StepAction attack = new StepAction();
                        if (sact.buffInfoList != null)
                        {
                            foreach (DataBuffInfo buf in sact.buffInfoList)
                            {
                                BuffInfo attBuf = new BuffInfo();
                                attBuf.buf_id    = buf.Buf_id;
                                attBuf.buf_value = buf.Buf_value;
                                attack.buff.Add(attBuf);
                                log += ",\t\t buf.Buf_id = " + buf.Buf_id;
                                log += ",\t\t buf.Buf_value = " + buf.Buf_value;
                            }
                        }
                        attack.slotIndex = sact.Card_idx;
                        attack.skillID   = sact.Skillid;
                        attack.attackHp  = sact.Att_value;
                        attack.harmType  = sact.Att_type;
                        attack.isStorm   = Convert.ToBoolean(sact.BeCrit);
                        attack.curHp     = sact.Cur_hp;
                        if (sact.HasHeti_idx)
                        {
                            attack.hetiIndex = sact.Heti_idx;
                        }
                        step.attacks.Add(attack);
                        Debug.LogWarning(log);
                    }

                    foreach (DataSingleAction sact in action.be_attacker_actionsList)
                    {
                        string log = "Behit action: ";
                        log += ",\t\t card_idx = " + sact.Card_idx;
                        log += ",\t\t skillid = " + sact.Skillid;
                        log += ",\t\t att_value = " + sact.Att_value;
                        log += ",\t\t att_type = " + sact.Att_type;
                        log += ",\t\t beCrit = " + sact.BeCrit;
                        log += ",\t\t cur_hp = " + sact.Cur_hp;
                        log += ",\t\t heti_idx = " + sact.Heti_idx;

                        StepAction behit = new StepAction();
                        if (sact.buffInfoList != null)
                        {
                            foreach (DataBuffInfo buf in sact.buffInfoList)
                            {
                                BuffInfo behitBuf = new BuffInfo();
                                behitBuf.buf_id    = buf.Buf_id;
                                behitBuf.buf_value = buf.Buf_value;
                                behit.buff.Add(behitBuf);
                                log += ",\t\t buf.Buf_id = " + buf.Buf_id;
                                log += ",\t\t buf.Buf_value = " + buf.Buf_value;
                            }
                        }
                        behit.slotIndex = sact.Card_idx;
                        behit.skillID   = sact.Skillid;
                        behit.attackHp  = sact.Att_value;
                        behit.harmType  = sact.Att_type;
                        behit.isStorm   = Convert.ToBoolean(sact.BeCrit);
                        behit.curHp     = sact.Cur_hp;
                        step.behits.Add(behit);
                        Debug.LogWarning(log);
                    }
                    turn.battleSteps.Add(step);
                }
                battleRound.battleTurns.Add(turn);
            }
        }
        /// <summary>
        /// The request continue is a request from the debugger to start the VM running again. As part of the continue request the debugger can specify if it wants the VM to perform a single step action.
        /// </summary>
        /// <param name="stepAction"></param>
        /// <param name="stepCount"></param>
        /// <returns></returns>
        public async Task<Response> Continue(StepAction stepAction = StepAction.Next, int? stepCount = null)
        {
            var continueRequest = new Request("continue");

            continueRequest.Arguments.stepaction = stepAction.ToString().ToLowerInvariant();

            if (stepCount.HasValue && stepCount.Value > 1)
                continueRequest.Arguments.stepCount = stepCount.Value;

            var continueResponse = await SendRequestAsync(continueRequest);

            return continueResponse;
        }
Esempio n. 13
0
 private async Task<StepResponse> Step(StepAction stepAction, uint threadId) {
   await BeginRunStateTransition();
   var fbb = BeginRequest();
   int requestDataOffset = StepRequest.CreateStepRequest(fbb, stepAction, threadId);
   var response = await CommitRequest(fbb, RequestData.StepRequest, requestDataOffset);
   System.Diagnostics.Debug.Assert(response.ResponseDataType ==
                                   ResponseData.StepResponse);
   var stepResponse = new StepResponse();
   response.GetResponseData(stepResponse);
   await CompleteRunStateTransition(RunState.Paused);
   return stepResponse;
 }
Esempio n. 14
0
 public void TutorialStepUpdate(NormalStep step, StepAction action)
 {
     Debug.Log("Update coming in " + step._ItemName + " : " + action.ToString());
 }
Esempio n. 15
0
        /// <summary>
        /// 数据模型转成视图模型
        /// </summary>
        /// <param name="action">数据模型</param>
        /// <param name="mediaIDs">媒体id(只用于填充),可为null</param>
        /// <param name="textIDs">文本id(只用于填充),可为null</param>
        /// <returns></returns>
        public static ActionBase DataToViewData(StepAction action, List <int> mediaIDs, List <int> textIDs)
        {
            //防止为空
            if (mediaIDs == null)
            {
                mediaIDs = new List <int>();
            }
            if (textIDs == null)
            {
                textIDs = new List <int>();
            }

            ActionBase a = null;

            switch (action.Type)
            {
                #region SetTitle
            case LessonActionTypeEnum.SetTitle:
            {
                var ta = (AbhsChinese.Domain.JsonEntity.UnitStep.SetTitle)action;
                a = new Models.CurriculumSetViewModel.SetTitle()
                {
                    actionId  = ta.Actionid,
                    actionNum = ta.ActionNum,
                    text      = ta.Text,
                    size      = ta.Size,
                    color     = ta.Color,
                    align     = ta.Align,
                    intype    = ta.InType,
                    x         = ta.X,
                    y         = ta.Y
                };
            }
            break;

                #endregion
                #region SetBackground
            case LessonActionTypeEnum.SetBackground:
            {
                var ta = (AbhsChinese.Domain.JsonEntity.UnitStep.SetBackground)action;
                a = new Models.CurriculumSetViewModel.SetBackground()
                {
                    actionId  = ta.Actionid,
                    actionNum = ta.ActionNum,
                    bg        = ta.Bg,
                    bgType    = ta.BgType
                };
                if (ta.BgType == "image")        //如果是图片类型则添加媒体id
                {
                    mediaIDs.Add(int.Parse(ta.Bg));
                }
            }
            break;

                #endregion
                #region XiaoAiSay
            case LessonActionTypeEnum.XiaoAiSay:
            {
                var ta = (AbhsChinese.Domain.JsonEntity.UnitStep.XiaoAiSay)action;
                a = new Models.CurriculumSetViewModel.XiaoAiSay()
                {
                    actionId  = ta.Actionid,
                    actionNum = ta.ActionNum,
                    src       = ta.MediaId
                };
                mediaIDs.Add(int.Parse(ta.MediaId));
            }
            break;

                #endregion
                #region XiaoAiChange
            case LessonActionTypeEnum.XiaoAiChange:
            {
                var ta = (AbhsChinese.Domain.JsonEntity.UnitStep.XiaoAiChange)action;
                a = new Models.CurriculumSetViewModel.XiaoAiChange()
                {
                    actionId  = ta.Actionid,
                    actionNum = ta.ActionNum,
                    align     = ta.Align,
                    height    = ta.Height,
                    imgId     = ta.ImgId,
                    src       = "",
                    valign    = ta.VAlign,
                    width     = ta.Width,
                    x         = ta.X,
                    y         = ta.Y
                };
                mediaIDs.Add(int.Parse(ta.ImgId));
            }
            break;

                #endregion
                #region InsertImg
            case LessonActionTypeEnum.InsertImg:
            {
                var ta = (AbhsChinese.Domain.JsonEntity.UnitStep.InsertImg)action;
                a = new Models.CurriculumSetViewModel.InsertImg()
                {
                    actionId  = ta.Actionid,
                    actionNum = ta.ActionNum,
                    align     = ta.Align,
                    height    = ta.Height,
                    imgId     = ta.ImgId,
                    src       = "",  //ta.Src,
                    valign    = ta.VAlign,
                    width     = ta.Width,
                    x         = ta.X,
                    y         = ta.Y,
                    intype    = ta.InType
                };
                mediaIDs.Add(int.Parse(ta.ImgId));
            }
            break;

                #endregion
                #region InsertText
            case LessonActionTypeEnum.InsertText:
            {
                var ta = (AbhsChinese.Domain.JsonEntity.UnitStep.InsertText)action;
                a = new Models.CurriculumSetViewModel.InsertText()
                {
                    actionId  = ta.Actionid,
                    actionNum = ta.ActionNum,
                    align     = ta.Align,
                    color     = ta.Color,
                    intype    = ta.InType,
                    text      = ta.Text,
                    size      = ta.Size,
                    x         = ta.X,
                    y         = ta.Y
                };
            }
            break;

                #endregion
                #region SetWaitMillisecond
            case LessonActionTypeEnum.SetWaitMillisecond:
            {
                var ta = (AbhsChinese.Domain.JsonEntity.UnitStep.SetWaitMillisecond)action;
                a = new Models.CurriculumSetViewModel.SetWaitMillisecond()
                {
                    actionId  = ta.Actionid,
                    actionNum = ta.ActionNum,
                    stop      = ta.Stop
                };
            }
            break;

                #endregion
                #region MoveDom
            case LessonActionTypeEnum.MoveDom:
            {
                var ta = (AbhsChinese.Domain.JsonEntity.UnitStep.MoveDom)action;
                a = new Models.CurriculumSetViewModel.MoveDom()
                {
                    actionId  = ta.Actionid,
                    actionNum = ta.ActionNum,
                    objectId  = ta.ObjectId,
                    duration  = ta.Duration,
                    x         = ta.X,
                    y         = ta.Y
                };
            }
            break;

                #endregion
                #region ScaleDom
            case LessonActionTypeEnum.ScaleDom:
            {
                var ta = (AbhsChinese.Domain.JsonEntity.UnitStep.ScaleDom)action;
                a = new Models.CurriculumSetViewModel.ScaleDom()
                {
                    actionId  = ta.Actionid,
                    actionNum = ta.ActionNum,
                    duration  = ta.Duration,
                    num       = ta.Num,
                    objectId  = ta.ObjectId,
                    ratio     = ta.Ratio,
                };
            }
            break;

                #endregion
                #region TwinkleDom
            case LessonActionTypeEnum.TwinkleDom:
            {
                var ta = (AbhsChinese.Domain.JsonEntity.UnitStep.TwinkleDom)action;
                a = new Models.CurriculumSetViewModel.TwinkleDom()
                {
                    actionId  = ta.Actionid,
                    actionNum = ta.ActionNum,
                    objectId  = ta.ObjectId,
                    duration  = ta.Duration,
                    num       = ta.Num
                };
            }
            break;

                #endregion
                #region HideDom
            case LessonActionTypeEnum.HideDom:
            {
                var ta = (AbhsChinese.Domain.JsonEntity.UnitStep.HideDom)action;
                a = new Models.CurriculumSetViewModel.HideDom()
                {
                    actionId  = ta.Actionid,
                    actionNum = ta.ActionNum,
                    objectId  = ta.ObjectId,
                    outtype   = ta.OutType
                };
            }
            break;

                #endregion
                #region StudyAudio
            case LessonActionTypeEnum.StudyAudio:
            {
                var ta = (AbhsChinese.Domain.JsonEntity.UnitStep.StudyAudio)action;
                a = new Models.CurriculumSetViewModel.StudyAudio()
                {
                    actionId     = ta.Actionid,
                    actionNum    = ta.ActionNum,
                    goldCoins    = ta.Golds,
                    audioSrc     = ta.MediaId,
                    kcbSrc       = ta.KcbId,
                    wordPosition = ta.WordPosition
                };
                int id = 0;
                if (int.TryParse(ta.MediaId, out id))
                {
                    mediaIDs.Add(id);
                    id = 0;
                }
                if (int.TryParse(ta.KcbId, out id))
                {
                    mediaIDs.Add(id);
                }
            }
            break;

                #endregion
                #region StudyVideo
            case LessonActionTypeEnum.StudyVideo:
            {
                var ta = (AbhsChinese.Domain.JsonEntity.UnitStep.StudyVideo)action;
                a = new Models.CurriculumSetViewModel.StudyVideo()
                {
                    actionId  = ta.Actionid,
                    actionNum = ta.ActionNum,
                    goldCoins = ta.Golds,
                    videoSrc  = ta.MediaId,
                    kcbSrc    = ta.KcbId
                };
                int id = 0;
                if (int.TryParse(ta.MediaId, out id))
                {
                    mediaIDs.Add(id);
                    id = 0;
                }
                if (int.TryParse(ta.KcbId, out id))
                {
                    mediaIDs.Add(id);
                }
            }
            break;

                #endregion
                #region StudyArticle
            case LessonActionTypeEnum.StudyArticle:
            {
                var ta = (AbhsChinese.Domain.JsonEntity.UnitStep.StudyArticle)action;
                a = new Models.CurriculumSetViewModel.StudyArticle()
                {
                    actionId       = ta.Actionid,
                    actionNum      = ta.ActionNum,
                    goldCoins      = ta.Golds,
                    articleImgSrc  = ta.ImgId,
                    kcbSrc         = ta.KcbId,
                    articleTextSrc = ta.TextId,
                    studyTime      = ta.UseTime,
                    wordPosition   = ta.WordPosition
                };

                int id = 0;
                if (int.TryParse(ta.ImgId, out id))
                {
                    mediaIDs.Add(id);
                    id = 0;
                }
                if (int.TryParse(ta.KcbId, out id))
                {
                    mediaIDs.Add(id);
                    id = 0;
                }
                if (int.TryParse(ta.TextId, out id))
                {
                    textIDs.Add(id);
                }
            }
            break;

                #endregion
                #region StudyRecitation
            case LessonActionTypeEnum.StudyRecitation:
            {
                var ta = (AbhsChinese.Domain.JsonEntity.UnitStep.StudyRecitation)action;
                a = new Models.CurriculumSetViewModel.StudyRecitation()
                {
                    actionId      = ta.Actionid,
                    actionNum     = ta.ActionNum,
                    goldCoins     = ta.Golds,
                    kcbSrc        = ta.KcbId,
                    recitationSrc = ta.TextId,
                    studyTime     = ta.UseTime
                };
                int id = 0;
                if (int.TryParse(ta.KcbId, out id))
                {
                    mediaIDs.Add(id);
                    id = 0;
                }
                if (int.TryParse(ta.TextId, out id))
                {
                    textIDs.Add(id);
                }
            }
            break;

                #endregion
                #region StudyFastReadEasy
            case LessonActionTypeEnum.StudyFastReadEasy:
            {
                var ta = (AbhsChinese.Domain.JsonEntity.UnitStep.StudyFastReadEasy)action;
                a = new Models.CurriculumSetViewModel.StudyFastReadEasy()
                {
                    actionId     = ta.Actionid,
                    actionNum    = ta.ActionNum,
                    goldCoins    = ta.Golds,
                    kcbSrc       = ta.KcbId,
                    showNum      = ta.ShowNum,
                    speed        = ta.Speed,
                    fastReadText = ta.TextId,
                };

                int id = 0;
                if (int.TryParse(ta.KcbId, out id))
                {
                    mediaIDs.Add(id);
                    id = 0;
                }
                if (int.TryParse(ta.TextId, out id))
                {
                    textIDs.Add(id);
                }
            }
            break;

                #endregion
                #region StudyFastRead
            case LessonActionTypeEnum.StudyFastRead:
            {
                var ta = (AbhsChinese.Domain.JsonEntity.UnitStep.StudyFastRead)action;
                a = new Models.CurriculumSetViewModel.StudyFastRead()
                {
                    actionId     = ta.Actionid,
                    actionNum    = ta.ActionNum,
                    goldCoins    = ta.Golds,
                    showModel    = ta.ShowModel,
                    kcbSrc       = ta.KcbId,
                    showNum      = ta.ShowNum,
                    speed        = ta.Speed,
                    fastReadText = ta.TextId,
                };

                int id = 0;
                if (int.TryParse(ta.KcbId, out id))
                {
                    mediaIDs.Add(id);
                    id = 0;
                }
                if (int.TryParse(ta.TextId, out id))
                {
                    textIDs.Add(id);
                }
            }
            break;

                #endregion
                #region StudyAnnotation
            case LessonActionTypeEnum.StudyAnnotation:
            {
                var ta = (AbhsChinese.Domain.JsonEntity.UnitStep.StudyAnnotation)action;
                a = new Models.CurriculumSetViewModel.StudyAnnotation()
                {
                    actionId   = ta.Actionid,
                    actionNum  = ta.ActionNum,
                    goldCoins  = ta.Golds,
                    kcbSrc     = ta.KcbId,
                    questionId = int.Parse(ta.QuestionId),
                    studyTime  = ta.UseTime
                };
                int id = 0;
                if (int.TryParse(ta.KcbId, out id))
                {
                    mediaIDs.Add(id);
                }
            }
            break;

            case LessonActionTypeEnum.StudyAnnotation2:
            {
                var ta = (AbhsChinese.Domain.JsonEntity.UnitStep.StudyAnnotation2)action;
                a = new Models.CurriculumSetViewModel.StudyAnnotation2()
                {
                    actionId   = ta.Actionid,
                    actionNum  = ta.ActionNum,
                    goldCoins  = ta.Golds,
                    kcbSrc     = ta.KcbId,
                    questionId = int.Parse(ta.QuestionId),
                    studyTime  = ta.UseTime
                };
                int id = 0;
                if (int.TryParse(ta.KcbId, out id))
                {
                    mediaIDs.Add(id);
                }
            }
            break;

                #endregion
                #region StudyJudgment
            case LessonActionTypeEnum.StudyJudgment:
            {
                var ta = (AbhsChinese.Domain.JsonEntity.UnitStep.StudyJudgment)action;
                a = new Models.CurriculumSetViewModel.StudyJudgment()
                {
                    actionId   = ta.Actionid,
                    actionNum  = ta.ActionNum,
                    goldCoins  = ta.Golds,
                    kcbSrc     = ta.KcbId,
                    questionId = int.Parse(ta.QuestionId),
                    studyTime  = ta.UseTime
                };
                int id = 0;
                if (int.TryParse(ta.KcbId, out id))
                {
                    mediaIDs.Add(id);
                }
            }
            break;

                #endregion
                #region StudyLinking
            case LessonActionTypeEnum.StudyLinking:
            {
                var ta = (AbhsChinese.Domain.JsonEntity.UnitStep.StudyLinking)action;
                a = new Models.CurriculumSetViewModel.StudyLinking()
                {
                    actionId   = ta.Actionid,
                    actionNum  = ta.ActionNum,
                    goldCoins  = ta.Golds,
                    kcbSrc     = ta.KcbId,
                    questionId = int.Parse(ta.QuestionId),
                    studyTime  = ta.UseTime
                };
                int id = 0;
                if (int.TryParse(ta.KcbId, out id))
                {
                    mediaIDs.Add(id);
                }
            }
            break;

                #endregion
                #region StudyOption
            case LessonActionTypeEnum.StudyOption:
            {
                var ta = (AbhsChinese.Domain.JsonEntity.UnitStep.StudyOption)action;
                a = new Models.CurriculumSetViewModel.StudyOption()
                {
                    actionId   = ta.Actionid,
                    actionNum  = ta.ActionNum,
                    goldCoins  = ta.Golds,
                    kcbSrc     = ta.KcbId,
                    questionId = int.Parse(ta.QuestionId),
                    studyTime  = ta.UseTime
                };
                int id = 0;
                if (int.TryParse(ta.KcbId, out id))
                {
                    mediaIDs.Add(id);
                }
            }
            break;

                #endregion
                #region StudyOptionFill
            case LessonActionTypeEnum.StudyOptionFill:
            {
                var ta = (AbhsChinese.Domain.JsonEntity.UnitStep.StudyOptionFill)action;
                a = new Models.CurriculumSetViewModel.StudyOptionFill()
                {
                    actionId   = ta.Actionid,
                    actionNum  = ta.ActionNum,
                    goldCoins  = ta.Golds,
                    kcbSrc     = ta.KcbId,
                    questionId = int.Parse(ta.QuestionId),
                    studyTime  = ta.UseTime
                };
                int id = 0;
                if (int.TryParse(ta.KcbId, out id))
                {
                    mediaIDs.Add(id);
                }
            }
            break;

                #endregion
                #region StudyFill
            case LessonActionTypeEnum.StudyFill:
            {
                var ta = (AbhsChinese.Domain.JsonEntity.UnitStep.StudyFill)action;
                a = new Models.CurriculumSetViewModel.StudyFill()
                {
                    actionId   = ta.Actionid,
                    actionNum  = ta.ActionNum,
                    goldCoins  = ta.Golds,
                    kcbSrc     = ta.KcbId,
                    questionId = int.Parse(ta.QuestionId),
                    studyTime  = ta.UseTime
                };
                int id = 0;
                if (int.TryParse(ta.KcbId, out id))
                {
                    mediaIDs.Add(id);
                }
            }
            break;

                #endregion
                #region StudySubjective
            case LessonActionTypeEnum.StudySubjective:
            {
                var ta = (AbhsChinese.Domain.JsonEntity.UnitStep.StudySubjective)action;
                a = new Models.CurriculumSetViewModel.StudySubjective()
                {
                    actionId   = ta.Actionid,
                    actionNum  = ta.ActionNum,
                    goldCoins  = ta.Golds,
                    kcbSrc     = ta.KcbId,
                    questionId = int.Parse(ta.QuestionId),
                    studyTime  = ta.UseTime
                };
                int id = 0;
                if (int.TryParse(ta.KcbId, out id))
                {
                    mediaIDs.Add(id);
                }
            }
            break;
                #endregion
            }
            return(a);
        }
Esempio n. 16
0
        public BaseStep BuildStep(string inputLine)
        {
            inputLine = inputLine.Trim();

            var split = inputLine.Split(' ').ToList();

            var args = split.Where(x => x.StartsWith("--"));

            var chunks = split
                         .Except(args)
                         .Where(chunk => chunk != "!!");

            var argsDict = args.ToDictionary(
                s => s.Trim('-').Split('=').ElementAtOrDefault(0) ?? "",
                s => s.Trim('-').Split('=').ElementAtOrDefault(1) ?? "");

            var types = System.Reflection.Assembly
                        .GetExecutingAssembly()
                        .GetTypes()
                        .Where(x => x.BaseType == typeof(BaseStep));

            StepInput input = new StepInput()
            {
                chunks   = chunks.ToList(),
                supplier = this.entitySupplier,
                args     = argsDict.ToDictionary(x => x.Key, x => x.Value.TrimEnd(',')),
                line     = inputLine
            };

            foreach (var item in argsDict)
            {
                System.Diagnostics.Debug.WriteLine(item.Key);
                System.Diagnostics.Debug.WriteLine(item.Value);
            }

            bool containsRef = argsDict.ContainsKey("ref");

            //System.Diagnostics.Debug.WriteLine("Contains ref :: " + containsRef.ToString());
            //System.Diagnostics.Debug.WriteLine("Ref ID :: " + argsDict["ref"]);

            foreach (var type in types)
            {
                var method = type.GetMethod("IsMatch");

                if (method != null)
                {
                    bool isMatch = (bool)method.Invoke(null, new [] { input as object });

                    if (isMatch)
                    {
                        var      constructor = type.GetConstructor(new[] { typeof(StepInput) });
                        BaseStep step        = (BaseStep)constructor.Invoke(new object[] { input });

                        step.RefID = argsDict.ContainsKey("ref") ? argsDict["ref"] : "";
                        step.Wait  = !inputLine.EndsWith("!!");
                        return(step);
                    }
                }
            }

            IEntity    entity = this.GetEntityFromInput(inputLine);
            StepAction action = this.GetActionFromInput(inputLine);

            switch (action)
            {
            case StepAction.Move:

                BaseMoveStep moveStep = MoveToPositionStep.CreateFromInputString(inputLine, this.entitySupplier);

                if (moveStep != null)
                {
                    return(moveStep);
                }

                throw new MisformedStepException(inputLine);

            case StepAction.Pose:
                return(PoseMasterStep.CreateFromInputString(entity, inputLine));
            }


            throw new MisformedStepException(inputLine);
        }
Esempio n. 17
0
        public void SetPVPBattleData(SCPVPBattleData data)
        {
            ClearBattleData();//clear first

            //pb data
            pbBaseData = data.BaseData;
            pbBagData  = data.BagData;
            pbCopyData = data.CopyData;

            isPlayed     = false;
            isLastBattle = false;
            isWin        = !Convert.ToBoolean(data.Battle.Win_idx);
            foreach (xjgame.message.DropBag bag in data.Battle.dropsList)
            {
                DropBag drop_bag = new DropBag();
                drop_bag.type = (DropType)bag.Type;
                drop_bag.val  = bag.Value;
                winDropBags.Add(drop_bag);
            }
            addExp = data.Battle.Add_exp;

            Debug.LogWarning("!!!!!!!!!!!!!!!!!!!!!! SetPVPBattleData() !!!!!!!!!!!!!!!!!!!!!!");
            foreach (xjgame.message.BattleCard card in data.Battle.userCardList)
            {
                string log = "Card: slot_idx = " + card.Place_idx + ",\t\t cardid = " + card.CardID + ",\t\t guid = " + card.Cardguid;
                log += ",\t\t state = " + card.State;
                log += ",\t\t commSkillID = " + card.CommSkillId;
                log += ",\t\t volSkillID = " + card.VolSkillId;
                log += ",\t\t combSkillID = " + card.CombSkillId;

                if (card.Place_idx < 6)
                {
                    TroopMember member = new TroopMember(card.Place_idx, card.CardID, (long)card.Cardguid);
                    member.state       = card.State;
                    member.initHp      = card.Init_hp;
                    member.commSkillID = card.CommSkillId;
                    member.volSkillID  = card.VolSkillId;
                    member.combSkillID = card.CombSkillId;
                    if (card.Bag != null)
                    {
                        member.bag.type = (DropType)card.Bag.Type;
                        member.bag.val  = card.Bag.Value;
                        log            += ",\t\t DropBag.Type = " + card.Bag.Type;
                        log            += ",\t\t DropBag.Value = " + card.Bag.Value;
                    }
                    troopData.selfMembers.Add(member);
                }
                else
                {
                    TroopMember member = new TroopMember(card.Place_idx, card.CardID, (long)card.Cardguid);
                    member.state       = card.State;
                    member.initHp      = card.Init_hp;
                    member.commSkillID = card.CommSkillId;
                    member.volSkillID  = card.VolSkillId;
                    member.combSkillID = card.CombSkillId;
                    if (card.Bag != null)
                    {
                        member.bag.type = (DropType)card.Bag.Type;
                        member.bag.val  = card.Bag.Value;
                        log            += ",\t\t DropBag.Type = " + card.Bag.Type;
                        log            += ",\t\t DropBag.Value = " + card.Bag.Value;
                    }
                    troopData.otherMembers.Add(member);
                }
                Debug.LogWarning(log);
            }

            foreach (DataRound round in data.Battle.roundsList)
            {
                BattleTurn turn = new BattleTurn();
                foreach (DataAction action in round.actionsList)
                {
                    BattleStep step = new BattleStep();
                    foreach (DataSingleAction sact in action.attacker_actionsList)
                    {
                        string log = "Attack action: ";
                        log += ",\t\t card_idx = " + sact.Card_idx;
                        log += ",\t\t skillid = " + sact.Skillid;
                        log += ",\t\t att_value = " + sact.Att_value;
                        log += ",\t\t att_type = " + sact.Att_type;
                        log += ",\t\t beCrit = " + sact.BeCrit;
                        log += ",\t\t cur_hp = " + sact.Cur_hp;
                        log += ",\t\t heti_idx = " + sact.Heti_idx;

                        StepAction attack = new StepAction();
                        if (sact.buffInfoList != null)
                        {
                            foreach (DataBuffInfo buf in sact.buffInfoList)
                            {
                                BuffInfo attBuf = new BuffInfo();
                                attBuf.buf_id    = buf.Buf_id;
                                attBuf.buf_value = buf.Buf_value;
                                attack.buff.Add(attBuf);
                                log += ",\t\t buf.Buf_id = " + buf.Buf_id;
                                log += ",\t\t buf.Buf_value = " + buf.Buf_value;
                            }
                        }
                        attack.slotIndex = sact.Card_idx;
                        attack.skillID   = sact.Skillid;
                        attack.attackHp  = sact.Att_value;
                        attack.harmType  = sact.Att_type;
                        attack.isStorm   = Convert.ToBoolean(sact.BeCrit);
                        attack.curHp     = sact.Cur_hp;
                        if (sact.HasHeti_idx)
                        {
                            attack.hetiIndex = sact.Heti_idx;
                        }
                        step.attacks.Add(attack);
                        Debug.LogWarning(log);
                    }

                    foreach (DataSingleAction sact in action.be_attacker_actionsList)
                    {
                        string log = "Behit action: ";
                        log += ",\t\t card_idx = " + sact.Card_idx;
                        log += ",\t\t skillid = " + sact.Skillid;
                        log += ",\t\t att_value = " + sact.Att_value;
                        log += ",\t\t att_type = " + sact.Att_type;
                        log += ",\t\t beCrit = " + sact.BeCrit;
                        log += ",\t\t cur_hp = " + sact.Cur_hp;
                        log += ",\t\t heti_idx = " + sact.Heti_idx;

                        StepAction behit = new StepAction();
                        if (sact.buffInfoList != null)
                        {
                            foreach (DataBuffInfo buf in sact.buffInfoList)
                            {
                                BuffInfo behitBuf = new BuffInfo();
                                behitBuf.buf_id    = buf.Buf_id;
                                behitBuf.buf_value = buf.Buf_value;
                                behit.buff.Add(behitBuf);
                                log += ",\t\t buf.Buf_id = " + buf.Buf_id;
                                log += ",\t\t buf.Buf_value = " + buf.Buf_value;
                            }
                        }
                        behit.slotIndex = sact.Card_idx;
                        behit.skillID   = sact.Skillid;
                        behit.attackHp  = sact.Att_value;
                        behit.harmType  = sact.Att_type;
                        behit.isStorm   = Convert.ToBoolean(sact.BeCrit);
                        behit.curHp     = sact.Cur_hp;
                        step.behits.Add(behit);
                        Debug.LogWarning(log);
                    }
                    turn.battleSteps.Add(step);
                }
                battleRound.battleTurns.Add(turn);
            }
        }
Esempio n. 18
0
 public static void AddAction(FlatBufferBuilder builder, StepAction action)
 {
     builder.AddSbyte(0, (sbyte)(action), 0);
 }
Esempio n. 19
0
        private void Human_MouseClick(object sender, MouseEventArgs e)
        {
            if (!Game.TurnHandler.IsMyTurn(currentToken))
            {
                return;
            }
            var clickedNode = MapPointToNode(Game.Board, e.Location, Origin, SpacingCoef);

            if (clickedNode != null)
            {
#if DEBUG
                Logging.Log("clicked on " + clickedNode.Id.ToString());
#endif
                if (e.Button == System.Windows.Forms.MouseButtons.Left)
                {
                    //normal selection
                    if (clickedNode.Owner != null)
                    {
                        if (CurrentAction == StepAction.RemoveOpponentPawn)
                        {
                            if (clickedNode.Owner != null && clickedNode.Owner != this)
                            {
                                Control.RemoveOpponentPawn(currentToken, clickedNode);
                                CurrentAction = StepAction.None;
                                this.Invalidate();
                                OnGraphicRefresh();
                            }
                        }
                        if (CurrentAction == StepAction.MovePawnConstrained || CurrentAction == StepAction.MovePawnFreely)
                        {
                            if (SelectedNode != clickedNode)
                            {
                                if (clickedNode.Owner == this)
                                {
                                    SelectedNode = clickedNode;
                                    this.Invalidate();
                                }
                            }
                        }
                    }
                    else                     //empty node
                    {
                        if (CurrentAction == StepAction.PlacePawn)
                        {
                            Control.PlacePawn(currentToken, clickedNode);
                            CurrentAction = StepAction.None;
                            this.Invalidate();
                            OnGraphicRefresh();
                        }
                    }
                }
                else if (e.Button == System.Windows.Forms.MouseButtons.Right)
                {
                    if (CurrentAction == StepAction.MovePawnConstrained || CurrentAction == StepAction.MovePawnFreely)
                    {
                        //move the pawn
                        if (SelectedNode != null &&
                            clickedNode.Owner == null &&
                            SelectedNode != clickedNode)
                        {
                            if (CurrentAction == StepAction.MovePawnConstrained)
                            {
                                if (SelectedNode.Neighbors.Contains(clickedNode))
                                {
                                    Control.MovePawnConstrained(currentToken, SelectedNode, clickedNode);
                                    CurrentAction = StepAction.None;
                                    SelectedNode  = null;
                                    this.Invalidate();
                                    OnGraphicRefresh();
                                }
                            }
                            else if (CurrentAction == StepAction.MovePawnFreely)
                            {
                                Control.MovePawnFreely(currentToken, SelectedNode, clickedNode);
                                CurrentAction = StepAction.None;
                                SelectedNode  = null;
                                this.Invalidate();
                                OnGraphicRefresh();
                            }
                        }
                    }
                }
            }
            else
            {
#if DEBUG
                Logging.Log("clicked on nothing");
#endif
            }
        }
Esempio n. 20
0
        public void SetLastBattleData(DataBattle data)
        {
            Debug.LogWarning("!!!!!!!!!!!!!!!!!!!!!! SetLastBattleData() !!!!!!!!!!!!!!!!!!!!!!");
            string dlog = "missionID = " + data.MissionID;

            dlog += ",\t\t roundCount = " + data.Round_count;
            dlog += ",\t\t Win_idx = " + data.Win_idx;
            Debug.LogWarning(dlog);
            ClearBattleData();//clear first
            missionID    = (int)data.MissionID;
            roundCount   = data.Round_count;
            isPlayed     = false;
            isLastBattle = true;
            isWin        = !Convert.ToBoolean(data.Win_idx);
            foreach (xjgame.message.DropBag bag in data.dropsList)
            {
                DropBag drop_bag = new DropBag();
                drop_bag.type = (DropType)bag.Type;
                drop_bag.val  = bag.Value;
                winDropBags.Add(drop_bag);
            }
            addExp = data.Add_exp;
            //test
            if (Obj_MyselfPlayer.GetMe().currentAssistFriend == null)
            {
                Obj_MyselfPlayer.GetMe().currentAssistFriend = new AssistFriend();
                Obj_MyselfPlayer.GetMe().currentAssistFriend.guid = (long)data.Friendguid;
                Obj_MyselfPlayer.GetMe().currentAssistFriend.name = data.Friendname;
                Obj_MyselfPlayer.GetMe().currentAssistFriend.level = data.Friendlevel;
                Obj_MyselfPlayer.GetMe().currentAssistFriend.cardLevel = data.FriendCardLev;
                Obj_MyselfPlayer.GetMe().currentAssistFriend.friendShipNum = data.GetFriendPoint;
                if (data.IsFriend == 0)
                {
                    Obj_MyselfPlayer.GetMe().currentAssistFriend.isMyFriend = true;
                }
                else
                {
                    Obj_MyselfPlayer.GetMe().currentAssistFriend.isMyFriend = false;
                }
            }
            foreach (xjgame.message.BattleCard card in data.userCardList)
            {
                string log = "Card: slot_idx = " + card.Place_idx + ",\t\t cardid = " + card.CardID + ",\t\t guid = " + card.Cardguid;
                log += ",\t\t state = " + card.State;
                log += ",\t\t isfriend = " + card.Isfriend;
                log += ",\t\t commSkillID = " + card.CommSkillId;
                log += ",\t\t volSkillID = " + card.VolSkillId;
                log += ",\t\t combSkillID = " + card.CombSkillId;

                if (card.Place_idx < 6)
                {
                    TroopMember member = new TroopMember(card.Place_idx, card.CardID, (long)card.Cardguid);
                    member.state       = card.State;
                    member.initHp      = card.Init_hp;
                    member.commSkillID = card.CommSkillId;
                    member.volSkillID  = card.VolSkillId;
                    member.combSkillID = card.CombSkillId;
                    if (card.Bag != null)
                    {
                        member.bag.type = (DropType)card.Bag.Type;
                        member.bag.val  = card.Bag.Value;
                        log            += ",\t\t DropBag.Type = " + card.Bag.Type;
                        log            += ",\t\t DropBag.Value = " + card.Bag.Value;
                    }
                    troopData.selfMembers.Add(member);
                    if (card.Isfriend == 1)
                    {
                        Obj_MyselfPlayer.GetMe().currentAssistFriend.cardGuiId = (long)card.Cardguid;
                        Obj_MyselfPlayer.GetMe().currentAssistFriend.cardTempleId = card.CardID;
                        Obj_MyselfPlayer.GetMe().battleArray[card.Place_idx] = (long)card.Cardguid;
                    }
                }
                else
                {
                    TroopMember member = new TroopMember(card.Place_idx, card.CardID, (long)card.Cardguid);
                    member.state       = card.State;
                    member.initHp      = card.Init_hp;
                    member.commSkillID = card.CommSkillId;
                    member.volSkillID  = card.VolSkillId;
                    member.combSkillID = card.CombSkillId;
                    if (card.Bag != null)
                    {
                        member.bag.type = (DropType)card.Bag.Type;
                        member.bag.val  = card.Bag.Value;
                        log            += ",\t\t DropBag.Type = " + card.Bag.Type;
                        log            += ",\t\t DropBag.Value = " + card.Bag.Value;
                    }
                    troopData.otherMembers.Add(member);
                }
                Debug.LogWarning(log);
            }

            foreach (DataRound round in data.roundsList)
            {
                BattleTurn turn = new BattleTurn();
                foreach (DataAction action in round.actionsList)
                {
                    BattleStep step = new BattleStep();
                    foreach (DataSingleAction sact in action.attacker_actionsList)
                    {
                        string log = "Attack action: ";
                        log += ",\t\t card_idx = " + sact.Card_idx;
                        log += ",\t\t skillid = " + sact.Skillid;
                        log += ",\t\t att_value = " + sact.Att_value;
                        log += ",\t\t att_type = " + sact.Att_type;
                        log += ",\t\t beCrit = " + sact.BeCrit;
                        log += ",\t\t cur_hp = " + sact.Cur_hp;
                        log += ",\t\t heti_idx = " + sact.Heti_idx;

                        StepAction attack = new StepAction();
                        if (sact.buffInfoList != null)
                        {
                            foreach (DataBuffInfo buf in sact.buffInfoList)
                            {
                                BuffInfo attBuf = new BuffInfo();
                                attBuf.buf_id    = buf.Buf_id;
                                attBuf.buf_value = buf.Buf_value;
                                attack.buff.Add(attBuf);
                                log += ",\t\t buf.Buf_id = " + buf.Buf_id;
                                log += ",\t\t buf.Buf_value = " + buf.Buf_value;
                            }
                        }
                        attack.slotIndex = sact.Card_idx;
                        attack.skillID   = sact.Skillid;
                        attack.attackHp  = sact.Att_value;
                        attack.harmType  = sact.Att_type;
                        attack.isStorm   = Convert.ToBoolean(sact.BeCrit);
                        attack.curHp     = sact.Cur_hp;
                        if (sact.HasHeti_idx)
                        {
                            attack.hetiIndex = sact.Heti_idx;
                        }
                        step.attacks.Add(attack);
                        Debug.LogWarning(log);
                    }

                    foreach (DataSingleAction sact in action.be_attacker_actionsList)
                    {
                        string log = "Behit action: ";
                        log += ",\t\t card_idx = " + sact.Card_idx;
                        log += ",\t\t skillid = " + sact.Skillid;
                        log += ",\t\t att_value = " + sact.Att_value;
                        log += ",\t\t att_type = " + sact.Att_type;
                        log += ",\t\t beCrit = " + sact.BeCrit;
                        log += ",\t\t cur_hp = " + sact.Cur_hp;
                        log += ",\t\t heti_idx = " + sact.Heti_idx;

                        StepAction behit = new StepAction();
                        if (sact.buffInfoList != null)
                        {
                            foreach (DataBuffInfo buf in sact.buffInfoList)
                            {
                                BuffInfo behitBuf = new BuffInfo();
                                behitBuf.buf_id    = buf.Buf_id;
                                behitBuf.buf_value = buf.Buf_value;
                                behit.buff.Add(behitBuf);
                                log += ",\t\t buf.Buf_id = " + buf.Buf_id;
                                log += ",\t\t buf.Buf_value = " + buf.Buf_value;
                            }
                        }
                        behit.slotIndex = sact.Card_idx;
                        behit.skillID   = sact.Skillid;
                        behit.attackHp  = sact.Att_value;
                        behit.harmType  = sact.Att_type;
                        behit.isStorm   = Convert.ToBoolean(sact.BeCrit);
                        behit.curHp     = sact.Cur_hp;
                        step.behits.Add(behit);
                        Debug.LogWarning(log);
                    }
                    turn.battleSteps.Add(step);
                }
                battleRound.battleTurns.Add(turn);
            }
            Obj_MyselfPlayer.GetMe().SetBattleBeforeDate();
        }
Esempio n. 21
0
 public static void AddAction(FlatBufferBuilder builder, StepAction action)
 {
     builder.AddSbyte(0, (sbyte)(action), 0);
 }