コード例 #1
0
        protected MeController GetController()
        {
            RoleDataUtil    roleDataUtil    = new RoleDataUtil();
            AccountDataUtil accountDataUtil = new AccountDataUtil();
            var             roleVM          = roleDataUtil.GetNewViewModel();
            var             accountVM       = accountDataUtil.GetNewViewModel();

            accountVM.roles.Add(roleVM);
            var user   = new Mock <ClaimsPrincipal>();
            var claims = new Claim[]
            {
                new Claim("username", "unittestusername"),
                new Claim("profile", JsonConvert.SerializeObject(accountVM.profile)),
                new Claim("permission", JsonConvert.SerializeObject(accountVM.roles)),
                new Claim("iat", DateTimeOffset.UtcNow.ToUnixTimeSeconds().ToString())
            };

            user.Setup(u => u.Claims).Returns(claims);
            MeController controller = (MeController)Activator.CreateInstance(typeof(MeController));

            controller.ControllerContext = new ControllerContext()
            {
                HttpContext = new DefaultHttpContext()
                {
                    User = user.Object
                }
            };
            controller.ControllerContext.HttpContext.Request.Headers["Authorization"]     = "Bearer unittesttoken";
            controller.ControllerContext.HttpContext.Request.Headers["x-timezone-offset"] = "7";
            controller.ControllerContext.HttpContext.Request.Path = new PathString("/v1/unit-test");
            return(controller);
        }
コード例 #2
0
        private void FollowMaster()
        {
            Vector3 pos = GetDistination();

            if (Mathf.Abs(pos.x - transform.position.x + pos.y - transform.position.y) > MaxDistance - 0.1f)
            {
                MeController.MoveTo(pos.x, pos.y);
            }
        }
コード例 #3
0
        public const int TargetEnemy = 3;  //作用于敌人

        private void Start()
        {
            Target    = MeController.GetMeVoByType <PetVo>().MasterVo.Controller.transform;
            _idleTime = 0;
            var petVo = MeController.GetMeVoByType <PetVo>();

            _talentSkillVo = BaseDataMgr.instance.GetSysSkillBaseVo(petVo.SkillId);
            _meTransform   = transform;
        }
コード例 #4
0
        void Update()
        {
            if (AttackList.Count > 0 && (MeController.StatuController.CurrentStatu == Status.IDLE || MeController.StatuController.CurrentStatu == Status.RUN))
            {
                CurVo = AttackList[0];
                AttackList.RemoveAt(0);
                switch (CurVo.ActionType)
                {
                case Actions.RUN:
                    MeController.MoveTo(CurVo.RunDestination.x, CurVo.RunDestination.y);
                    break;

                case Actions.DEATH:
                    MeController.StatuController.SetStatu(Status.DEATH);
                    break;

                case Actions.ATTACK:
                    if (Math.Abs(CurVo.TargetPoint.x) > 0)
                    {
                        int dir = CurVo.TargetPoint.x < MeController.Me.GoBase.transform.position.x ? Directions.Left : Directions.Right;
                        MeController.Me.ChangeDire(dir);
                    }
                    MeController.SkillController.RequestUseSkill(SkillController.Attack1);
                    //宠物暂时只做一次攻击

                    /*if (MeController.StatuController.CurrentCombStatu == Status.COMB_0 || MeController.StatuController.CurrentCombStatu == Status.COMB_2)
                     * {
                     *  MeController.SkillController.RequestUseSkill(SkillController.Attack1);
                     * }
                     * else if (MeController.StatuController.CurrentCombStatu == Status.COMB_1)
                     * {
                     *  MeController.SkillController.RequestUseSkill(SkillController.Attack2);
                     * }*/
                    break;
                }
            }
            if (AttackList.Count > 0 && (MeController.StatuController.CurrentStatu == Status.HURT1 || MeController.StatuController.CurrentStatu == Status.HURT2 ||
                                         MeController.StatuController.CurrentStatu == Status.HURT3))
            {
                CurVo = AttackList[0];
                if (CurVo.ActionType == Actions.DEATH)
                {
                    AttackList.Clear();
                    MeController.StatuController.SetStatu(Status.DEATH);
                }
            }
            if (AttackList.Count > 0 && MeController.StatuController.CurrentStatu == Status.HURTDOWN)
            {
                CurVo = AttackList[0];
                if (CurVo.ActionType == Actions.DEATH)
                {
                    AttackList.Clear();
                    Invoke("Death", 0.3f);
                }
            }
        }
コード例 #5
0
 public MeControllerTest()
 {
     UserServiceMock     = new Mock <IUserService>();
     LoggerMock          = new Mock <ILogger <UserController> >();
     LocalizerMock       = new Mock <ISharedResource>();
     Configuration       = new Mock <IConfiguration>();
     ControllerUnderTest = new MeController(UserServiceMock.Object, LoggerMock.Object, LocalizerMock.Object);
     ControllerUnderTest.ControllerContext             = new ControllerContext();
     ControllerUnderTest.ControllerContext.HttpContext = new DefaultHttpContext();
 }
コード例 #6
0
        private void Update()
        {
            if (MapMode.StartAutoMove || MeController.StatuController.CurrentStatu == Status.DEATH)
            {
                AttackList.Clear(); //切图的过程中情况攻击列表
            }

            if ((MeController.StatuController.CurrentCombStatu >= MeController.StatuController.MaxComb &&
                 MeController.StatuController.MaxComb > 1) || MeController.StatuController.CurrentStatu == Status.Win)
            {
                if (NeedClear())
                {
                    AttackList.Clear();
                }
            }
            if (AttackList.Count > 0 &&
                (MeController.StatuController.CurrentStatu == Status.IDLE ||
                 MeController.StatuController.CurrentStatu == Status.RUN) &&
                MeController.SkillController.SkillList.Count == 0)
            {
                CurVo = AttackList[0];
                AttackList.RemoveAt(0);
                switch (CurVo.ActionType)
                {
                case Actions.RUN:
                    MeController.MoveTo(CurVo.RunDestination.x, CurVo.RunDestination.y);
                    break;

                case Actions.DEATH:
                    MeController.StatuController.SetStatu(Status.DEATH);
                    break;

                case Actions.ATTACK:
                    if (MeController.StatuController.CurrentCombStatu == Status.COMB_0 ||
                        (MeController.StatuController.CurrentCombStatu == MeController.StatuController.MaxComb))
                    {
                        MeController.SkillController.RequestUseSkill(SkillController.Attack1);
                    }
                    else if (MeController.StatuController.CurrentCombStatu == Status.COMB_1)
                    {
                        MeController.SkillController.RequestUseSkill(SkillController.Attack2);
                    }
                    else if (MeController.StatuController.CurrentCombStatu == Status.COMB_2)
                    {
                        MeController.SkillController.RequestUseSkill(SkillController.Attack3);
                    }
                    else if (MeController.StatuController.CurrentCombStatu == Status.COMB_3)
                    {
                        MeController.SkillController.RequestUseSkill(SkillController.Attack4);
                    }
                    break;
                }
            }
        }
コード例 #7
0
        /// <summary>
        ///     移动到攻击范围内
        /// </summary>
        /// <param name="enemyDisplay"></param>
        private void MoveToAttackRange(ActionDisplay enemyDisplay)
        {
            Vector3 targetPoint = _meTransform.position;

            if (targetPoint.x < enemyDisplay.Controller.transform.position.x)
            {
                MeController.Me.ChangeDire(Directions.Right);
            }
            else
            {
                MeController.Me.ChangeDire(Directions.Left);
            }
            MeController.MoveByDir(MeController.Me.CurFaceDire);
        }
コード例 #8
0
        private void DoIdleLogic()
        {
            int mapType = AppMap.Instance.mapParser.MapVo.type;

            if (mapType == MapTypeConst.CITY_MAP)
            {
                FollowMaster();
            }
            else if (mapType == MapTypeConst.COPY_MAP && _idleTime > 1)
            {
                _idleTime = 0;
                var destination = GetMoveDestination();
                MeController.MoveTo(destination.x, destination.y);
            }
        }
コード例 #9
0
        /// <summary>
        ///     移动到攻击范围内
        /// </summary>
        /// <param name="enemyDisplay"></param>
        private void MoveToAttackRange(ActionDisplay enemyDisplay)
        {
            Vector3 mePoint = _meTransform.position;
            var     pos     = enemyDisplay.Controller.transform.position;

            if (mePoint.x < pos.x)
            {
                pos.x = pos.x - _talentSkillVo.cover_width * 0.001f + 0.1f;
            }
            else
            {
                pos.x = pos.x + _talentSkillVo.cover_width * 0.001f - 0.1f;
            }
            MeController.MoveTo(pos.x, pos.y);
        }
コード例 #10
0
 public void OnTriggerEnter(Collider other)
 {
     if ("MeDisplay(Clone)" == other.collider.gameObject.name)
     {
         State.KEEP_IDLE = true;
         if (true == State.ON_JUMP)  //在跳的过程中
         {
             Vector3 v = (ToolsFunction.EqualFloat(other.transform.eulerAngles.y, 90) == true ? new Vector3(73, 2.3f, 57) : new Vector3(25, 2.3f, 11));
             MeController.MoveTo(other.gameObject, v, 2f);
             other.gameObject.GetComponent <Animation>().Play(State.ANIM_HANDS_UP);
             ToolsFunction.AddScore(DataConst.SCORE_LINE);//加分
         }
         else
         {
             other.transform.position -= 0.1f * ToolsFunction.Toward(other.gameObject); //现在人就是往后退了,然后应该会重新检测吧!!!!
             ToolsFunction.AddScore(-DataConst.SCORE_LINE / 2);                         //减分
         }
     }
 }
コード例 #11
0
 /// <summary>
 /// 绑定在宝箱上的触发器,执行了动作就打开宝箱
 /// </summary>
 /// <param name="other"></param>
 public void OnTriggerEnter(Collider other)
 {
     if ("MeDisplay(Clone)" == other.gameObject.name)
     {
         State.KEEP_IDLE = true;
         if (true == State.ON_FIGHT)
         {
             BoxAnimator.SetBool("die", true);
             //这里要播放一个捡金币的动画
             this.GetComponent <BoxCollider>().enabled = false;                                       //禁用触发器
             MeController.SetAction(other.gameObject.GetComponent <Animation>(), State.ANIM_PICK_UP); //播放捡东西的动作
         }
         else
         {
             other.transform.position -= 0.1f * ToolsFunction.Toward(other.gameObject);
             ToolsFunction.AddScore(-DataConst.SCORE_BOX / 2); //加分
         }
     }
 }
コード例 #12
0
        /// <summary>
        ///     找到在当前副本阶段行走区域范围内最近的怪物
        /// </summary>
        /// <returns></returns>
        private ActionDisplay FindNearestEnemyInMapRange()
        {
            ActionDisplay         result   = null;
            float                 dis      = 1000000;
            IList <ActionDisplay> tempList = AppMap.Instance.monsterList.Cast <ActionDisplay>().ToList();

            if (MeController.GetMeVo().Id == AppMap.Instance.me.GetVo().Id)
            {
                foreach (PlayerDisplay display in AppMap.Instance.playerList)
                {
                    if (display != AppMap.Instance.me)
                    {
                        tempList.Add(display);
                    }
                }
            }
            else
            {
                tempList.Add(AppMap.Instance.me);
            }
            foreach (ActionDisplay actionDisplay in tempList)
            {
                float    x        = actionDisplay.GoBase.transform.position.x;
                float    y        = actionDisplay.GoBase.transform.position.y;
                MapRange mapRange = AppMap.Instance.mapParser.CurrentMapRange;
                if (x < mapRange.MinX || x > mapRange.MaxX || y < mapRange.MinY || y > mapRange.MaxY)
                {
                    continue;
                }
                if (actionDisplay.GetMeVoByType <BaseRoleVo>().CurHp == 0)
                {
                    continue;
                }
                float curDis = GeteEnemyDistance(actionDisplay);
                if (curDis < dis)
                {
                    result = actionDisplay;
                    dis    = curDis;
                }
            }
            return(result);
        }
コード例 #13
0
        /// <summary>
        ///     获取敌人信息
        /// </summary>
        /// <returns>敌人列表</returns>
        private IList <ActionDisplay> GetEnemyDisplay()
        {
            IList <ActionDisplay> tempList = AppMap.Instance.monsterList.Cast <ActionDisplay>().ToList();

            if (MeController.GetMeVo().Id == AppMap.Instance.me.GetVo().Id)
            {
                foreach (PlayerDisplay display in AppMap.Instance.playerList)
                {
                    if (display != AppMap.Instance.me)
                    {
                        tempList.Add(display);
                    }
                }
            }
            else
            {
                tempList.Add(AppMap.Instance.me);
            }
            return(tempList);
        }
コード例 #14
0
        public MeControllerTests()
        {
            var options     = new Mock <IOptions <IdentityOptions> >();
            var hasher      = new Mock <IPasswordHasher <User> >();
            var lookup      = new Mock <ILookupNormalizer>();
            var provider    = new Mock <System.IServiceProvider>();
            var logger      = new Mock <ILogger <UserManager <User> > >();
            var userManager = new UserManager <User>(
                _userStore.Object,
                options.Object,
                hasher.Object,
                new List <IUserValidator <User> >(),
                new List <IPasswordValidator <User> >(),
                lookup.Object,
                new IdentityErrorDescriber(),
                provider.Object,
                logger.Object
                );

            Controller = new MeController(userManager);
        }
コード例 #15
0
        /// <summary>
        ///     没有怪物时的AI移动逻辑
        /// </summary>
        private void AiMoveBehaviourNoEnemy()
        {
            MapRange mapRange    = AppMap.Instance.mapParser.CurrentMapRange;
            Vector3  targetPoint = _meTransform.position;

            if (MapMode.CanGoToNextPhase)
            {
                MeController.Me.ChangeDire(Directions.Right);
                MeController.MoveByDir(MeController.Me.CurFaceDire);
                return;
            }
            if (targetPoint.x < mapRange.MinX + 1)
            {
                MeController.Me.ChangeDire(Directions.Right);
            }
            else if (targetPoint.x > mapRange.MaxX - 1)
            {
                MeController.Me.ChangeDire(Directions.Left);
            }
            MeController.MoveByDir(MeController.Me.CurFaceDire);
        }
コード例 #16
0
        private void Update()
        {
            if (AttackList.Count > 0 &&
                ((MeController.StatuController.CurrentStatu == Status.IDLE &&
                  MeController.StatuController.CurStatuNameHash == Status.NAME_HASH_IDLE) ||
                 (MeController.StatuController.CurrentStatu == Status.RUN ||
                  MeController.StatuController.CurStatuNameHash == Status.NAME_HASH_RUN)))
            {
                CurVo = AttackList[0];
                AttackList.RemoveAt(0);
                switch (CurVo.ActionType)
                {
                case Actions.RUN:

                    MeController.MoveTo(CurVo.RunDestination.x, CurVo.RunDestination.y);
                    break;

                case Actions.DEATH:
                    MeController.StatuController.SetStatu(Status.DEATH);
                    break;

                case Actions.ATTACK:
                    if (Math.Abs(CurVo.TargetPoint.x) > 0)
                    {
                        int dir = CurVo.TargetPoint.x < MeController.Me.GoBase.transform.position.x
                                ? Directions.Left
                                : Directions.Right;
                        MeController.Me.ChangeDire(dir);
                    }
                    //怪物只有两连击
                    if (MeController.StatuController.CurrentCombStatu == Status.COMB_0 ||
                        MeController.StatuController.CurrentCombStatu == Status.COMB_2)
                    {
                        print("****SkillController.Attack1");
                        MeController.SkillController.RequestUseSkill(SkillController.Attack1);
                    }
                    else if (MeController.StatuController.CurrentCombStatu == Status.COMB_1)
                    {
                        print("****SkillController.Attack2");
                        MeController.SkillController.RequestUseSkill(SkillController.Attack2);
                    }
                    break;
                }
            }
            if (AttackList.Count > 0 &&
                (MeController.StatuController.CurrentStatu == Status.HURT1 ||
                 MeController.StatuController.CurrentStatu == Status.HURT2 ||
                 MeController.StatuController.CurrentStatu == Status.HURT3))
            {
                CurVo = AttackList[0];
                if (CurVo.ActionType == Actions.DEATH)
                {
                    AttackList.Clear();
                    MeController.StatuController.SetStatu(Status.DEATH);
                }
            }
            if (AttackList.Count > 0 && MeController.StatuController.CurrentStatu == Status.HURTDOWN)
            {
                CurVo = AttackList[0];
                if (CurVo.ActionType == Actions.DEATH)
                {
                    AttackList.Clear();
                    Invoke("Death", 0.3f);
                }
            }
        }
コード例 #17
0
        public void InitTest()
        {
            this.mock = new MockContainer();
            this.mock.PrepareMocks();
            this.fakeContests = this.mock.ContestsRepositoryMock.Object.All();
            this.fakePictures = this.mock.PictureRepositoryMock.Object.All();
            this.fakeMaintanceLogs = this.mock.MaintanceLogRepositoryMock.Object.All();
            this.fakeUsers = this.mock.UsersRepositoryMock.Object.All();
            this.user = this.fakeUsers.FirstOrDefault();
            this.mockContext = new Mock<IPhotoContestData>();
            this.mockContext.Setup(c => c.Contests.All())
                .Returns(this.fakeContests);
            this.mockContext.Setup(c => c.Pictures.All())
                .Returns(this.fakePictures);
            this.mockContext.Setup(c => c.MaintanceLogs.All())
                .Returns(this.fakeMaintanceLogs);
            this.mockContext.Setup(c => c.Users.All())
                .Returns(this.fakeUsers);
            this.mockContext.Setup(c => c.Users.Find(It.IsAny<string>()))
                .Returns((string id) =>
                {
                    return this.fakeUsers.FirstOrDefault(n => n.Id == id);
                });
            this.mockContext.Setup(c => c.Pictures.Add(It.IsAny<Picture>()))
                .Callback((Picture picture) =>
                {
                    this.mock.PictureRepositoryMock.Object.Add(picture);
                });

            this.meController = new MeController(this.mockContext.Object);
        }
コード例 #18
0
        private bool areInputsEnabled;               // True if inputs are enabled, false otherwise

        public InputManager(MeController meController)
        {
            this.meController = meController;
            areInputsEnabled  = true;
        }