public void AddPlayers(List <Player> players)
        {
            BossCommand_View view = View as BossCommand_View;

            _PlayerList = players;
            foreach (Player player in _PlayerList)
            {
                view.AddPlayer(player);
            }
            view.PlayerCounter = _PlayerList.Count;
        }
        private bool Validation()
        {
            BossCommand_View view = View as BossCommand_View;

            if (view.GridItem.points.ContainsKey(_Boss.Name) == false)
            {
                MessageBox.Show("보스의 위치가 정해지지 않았습니다.");
                return(false);
            }
            return(true);
        }
        public void InitData()
        {
            BossCommand_View view = View as BossCommand_View;

            view.GridItem.points.Clear();
            AddPlayers(MainFrame.GetPlayerList());
            foreach (var item in _PlayerList)
            {
                view.GridItem.points.Add(item.Name, new Point(item.PosX, item.PosY));
                string msg = $" 플레이어 확인: name: {item.Name}, position: {new Point(item.PosX, item.PosY)}";
                MainFrame.WriteLog(msg);
            }
            SetBoss(MainFrame.GetBoss());
            view.GridItem.DrawGrid();
        }
        public void GridClicked(Point location)
        {
            BossCommand_View view = View as BossCommand_View;

            if (_Boss.PosX < 0 || _Boss.PosY < 0)
            {
                var moveSkill = MainFrame.GetSkillByName("이동");
                var gridPoint = view.GridItem.ToGridLocation(location);
                if (view.GridItem.DuplicateCheck(gridPoint) == true)
                {
                    MessageBox.Show("해당 위치에는 이미 엔티티가 있습니다.", "실패");
                    return;
                }
                if (_CommandQueue.FirstOrDefault(x => x.SourcePlayer.Name.Equals(_Boss.Name) && x.UsedSkill.Name.Equals("이동")) != null)
                {
                    if (MessageBox.Show($"{_Boss.Name}은 이미 이동 위치를 결정했습니다. 다시 설정하시겠습니까?[{gridPoint.X}:{gridPoint.Y}]", "재설정", MessageBoxButtons.YesNo) == DialogResult.Yes)
                    {
                        Command command = new Command(_Boss, null, gridPoint, moveSkill);
                        _CommandQueue.Remove(_CommandQueue.First(x => x.SourcePlayer.Name.Equals(_Boss.Name)));
                        _CommandQueue.Add(command);
                        view.GridItem.RemovePoint(_Boss.Name);
                        view.GridItem.AddRealPoint(_Boss.Name, gridPoint);
                    }
                }
                else
                {
                    if (MessageBox.Show($"{_Boss.Name}의 위치를 [{gridPoint.X}:{gridPoint.Y}]로 설정하시겠습니까?", "설정", MessageBoxButtons.YesNo) == DialogResult.Yes)
                    {
                        Command command = new Command(_Boss, null, view.GridItem.ToGridLocation(location), moveSkill);
                        _CommandQueue.Add(command);
                        view.GridItem.AddRealPoint(_Boss.Name, gridPoint);
                    }
                }
                view.GridItem.DrawGrid();
            }
            else
            {
                if (view.GetBossitem.Player_Skills.SelectedItem == null)
                {
                    MessageBox.Show("보스의 스킬을 먼저 선택하십시오.", "실패");
                    return;
                }
                else
                {
                }
            }
        }
        public void SetBoss(Boss player)
        {
            BossCommand_View view = View as BossCommand_View;

            _Boss = player;
            if (_Boss.PosX > -1 && _Boss.PosY > -1)
            {
                view.GridItem.AddRealPoint(_Boss.Name, new Point(_Boss.PosX, _Boss.PosY));
                string msg = $" 보스 확인: name: {_Boss.Name}, position: {new Point(_Boss.PosX, _Boss.PosY)}";
                MainFrame.WriteLog(msg);
            }
            view.SetBoss(player);
            view.GetBossitem.Button_Info.Click += (object sender, EventArgs e) =>
            {
                if (view.GetBossitem.Combo_BossList.Text.Length > 0)
                {
                    new RaidCalcInfoWindow(MainFrame.GetBossByName(view.GetBossitem.Combo_BossList.Text)).ShowDialog();
                }
            };
        }
Esempio n. 6
0
        private void InitializeViewController()
        {
            IView       view;
            IController controller;

            Dic_ViewController = new Dictionary <string, ViewController>();

            // Index
            view       = new Index_View();
            controller = new Index_Controller(this, view);
            view.SetController(controller);
            Dic_ViewController.Add(view.ViewName, new ViewController(view, controller));

            // UserCommand
            view       = new UserCommand_View();
            controller = new UserCommand_Controller(this, view);
            view.SetController(controller);
            Dic_ViewController.Add(view.ViewName, new ViewController(view, controller));

            // PlayerCommand
            view       = new PlayerCommand_View();
            controller = new PlayerCommand_Controller(this, view);
            view.SetController(controller);
            Dic_ViewController.Add(view.ViewName, new ViewController(view, controller));

            // BossCommand
            view       = new BossCommand_View();
            controller = new BossCommand_Controller(this, view);
            view.SetController(controller);
            Dic_ViewController.Add(view.ViewName, new ViewController(view, controller));

            // BossAction
            view       = new BossAction_View();
            controller = new BossAction_Controller(this, view);
            view.SetController(controller);
            Dic_ViewController.Add(view.ViewName, new ViewController(view, controller));
        }