public override void InitState(ContentManager content, MainGame owner)
        {
            base.InitState(content, owner);
            GlobalVariables.MonsterManager = new MonsterManager();
            GlobalVariables.MonsterManager.InitPrototypes(content, @"Data\monster\monster.xml");
            _charManager.InitPrototypes(content, @"Data\character\character.xml");
            _mapManager.InitPrototypes(content, @"Data\Map\map01.xml");
            _map = (Map)_mapManager.CreateObject(0);
            GlobalVariables.MapCollisionDim = _map.CollisionDim;
            _char = (PlayerCharacter)_charManager.CreateObject(0);
            _char.SetMap(_map);
            _listMonsters = _map.InitMonsterList();

            _frog = new Frog();
            _frog.Init(content);
            _frog.SetCharacter(_char);
        }
Пример #2
0
 public void SetCharacter(PlayerCharacter _char)
 {
     _character = _char;
 }
        public override bool InitPrototypes(ContentManager content, string fileName)
        {
            try
            {
                XmlDocument doc = new XmlDocument();
                doc.Load(fileName);
                XmlNodeList nodelist = doc.SelectNodes(@"//Character");
                _nprototype = nodelist.Count;
                _prototype = new VisibleGameObject[_nprototype];
                for (int i = 0; i < nodelist.Count; ++i)
                {
                    _prototype[i] = new PlayerCharacter();
                    _prototype[i]._nsprite = 40;
                    _prototype[i]._sprite = new GameSprite[_prototype[i]._nsprite];

                    XmlNode node = nodelist[i].SelectSingleNode(@"Stand");
                    GameSprite[] temp = Utility.LoadSprites(node, content);
                    for (int j = 0; j < 8; ++j)
                        _prototype[i]._sprite[j] = temp[j];

                    node = nodelist[i].SelectSingleNode(@"Move");
                    temp = Utility.LoadSprites(node, content);
                    for (int j = 8; j < 16; ++j)
                        _prototype[i]._sprite[j] = temp[j - 8];

                    node = nodelist[i].SelectSingleNode(@"Attack");
                    temp = Utility.LoadSprites(node, content);
                    for (int j = 16; j < 24; ++j)
                        _prototype[i]._sprite[j] = temp[j - 16];

                    node = nodelist[i].SelectSingleNode(@"Dying");
                    temp = Utility.LoadSprites(node, content);
                    for (int j = 24; j < 32; ++j)
                        _prototype[i]._sprite[j] = temp[j - 24];

                    node = nodelist[i].SelectSingleNode(@"Dyed");
                    temp = Utility.LoadSprites(node, content);
                    for (int j = 32; j < 40; ++j)
                        _prototype[i]._sprite[j] = temp[j - 32];

                    ((PlayerCharacter)_prototype[i]).CellToMove = new List<Point>();
                    ((PlayerCharacter)_prototype[i]).DestPoint = new Point();
                    ((PlayerCharacter)_prototype[i]).IsMoving = false;
                    ((PlayerCharacter)_prototype[i]).Map = null;
                    ((PlayerCharacter)_prototype[i]).Speed = int.Parse(nodelist[i].SelectSingleNode(@"Speed").InnerText);
                    ((PlayerCharacter)_prototype[i]).Hp = int.Parse(nodelist[i].SelectSingleNode(@"Hp").InnerText);
                    ((PlayerCharacter)_prototype[i]).Mp = int.Parse(nodelist[i].SelectSingleNode(@"Mp").InnerText);
                    ((PlayerCharacter)_prototype[i]).CriticalRate = int.Parse(nodelist[i].SelectSingleNode(@"CriticalRate").InnerText);
                    ((PlayerCharacter)_prototype[i]).Attack = int.Parse(nodelist[i].SelectSingleNode(@"Damage").InnerText);
                    ((PlayerCharacter)_prototype[i]).Defense = int.Parse(nodelist[i].SelectSingleNode(@"Defense").InnerText);
                    ((PlayerCharacter)_prototype[i]).AttackSpeed = int.Parse(nodelist[i].SelectSingleNode(@"AttackSpeed").InnerText);
                    ((PlayerCharacter)_prototype[i]).Range = int.Parse(nodelist[i].SelectSingleNode(@"Range").InnerText);
                    ((PlayerCharacter)_prototype[i]).X = 0;
                    ((PlayerCharacter)_prototype[i]).Y = 0;
                    ((PlayerCharacter)_prototype[i]).HitFrame = int.Parse(nodelist[i].SelectSingleNode(@"HitFrame").InnerText);
                }
                return true;
            }
            catch
            {
                return false;
            }
        }
 public void SetCharacter(PlayerCharacter _char)
 {
     _character = _char;
     _char.Skillboard = this;
 }
 //------------------
 public void SetCharacter(PlayerCharacter _char)
 {
     _character = _char;
     _char.Healthbar = this;
 }
 public void SetCharacter(PlayerCharacter _char)
 {
     _character = _char;
     _character.LhSkillSelectionFrame = this;
 }
        public override bool InitOne(ContentManager content, int id)
        {
            try
            {
                XmlDocument _doc = new XmlDocument();
                _doc.Load(_xmlInfo);
                XmlNode _char = _doc.SelectSingleNode(@"//Character[@id = '" + id.ToString() + "']");
                _prototype[id] = new PlayerCharacter();
                _prototype[id]._nsprite = 56;
                _prototype[id]._sprite = new GameSprite[_prototype[id]._nsprite];

                XmlNode node = _char.SelectSingleNode(@"Stand");
                GameSprite[] temp = Utility.LoadSprites(node, content);
                for (int j = 0; j < 8; ++j)
                    _prototype[id]._sprite[j] = temp[j];

                node = _char.SelectSingleNode(@"Move");
                temp = Utility.LoadSprites(node, content);
                for (int j = 8; j < 16; ++j)
                    _prototype[id]._sprite[j] = temp[j - 8];

                node = _char.SelectSingleNode(@"Attack1");
                temp = Utility.LoadSprites(node, content);
                for (int j = 16; j < 24; ++j)
                    _prototype[id]._sprite[j] = temp[j - 16];

                node = _char.SelectSingleNode(@"Attack2");
                temp = Utility.LoadSprites(node, content);
                for (int j = 24; j < 32; ++j)
                    _prototype[id]._sprite[j] = temp[j - 24];

                node = _char.SelectSingleNode(@"Dying");
                temp = Utility.LoadSprites(node, content);
                for (int j = 32; j < 40; ++j)
                    _prototype[id]._sprite[j] = temp[j - 32];

                node = _char.SelectSingleNode(@"Dyed");
                temp = Utility.LoadSprites(node, content);
                for (int j = 40; j < 48; ++j)
                    _prototype[id]._sprite[j] = temp[j - 40];

                node = _char.SelectSingleNode(@"Skill");
                temp = Utility.LoadSprites(node, content);
                for (int j = 48; j < 56; ++j)
                    _prototype[id]._sprite[j] = temp[j - 48];

                ((PlayerCharacter)_prototype[id]).CellToMove = new List<Point>();
                ((PlayerCharacter)_prototype[id]).DestPoint = new Point();
                ((PlayerCharacter)_prototype[id]).IsMoving = false;
                ((PlayerCharacter)_prototype[id]).Map = null;
                ((PlayerCharacter)_prototype[id]).Speed = int.Parse(_char.SelectSingleNode(@"Speed").InnerText);
                ((PlayerCharacter)_prototype[id]).Hp = int.Parse(_char.SelectSingleNode(@"Hp").InnerText);
                ((PlayerCharacter)_prototype[id]).Mp = int.Parse(_char.SelectSingleNode(@"Mp").InnerText);
                ((PlayerCharacter)_prototype[id]).CriticalRate = int.Parse(_char.SelectSingleNode(@"CriticalRate").InnerText);
                ((PlayerCharacter)_prototype[id]).MinDamage = int.Parse(_char.SelectSingleNode(@"MinDamage").InnerText);
                ((PlayerCharacter)_prototype[id]).MaxDamage = int.Parse(_char.SelectSingleNode(@"MaxDamage").InnerText);
                ((PlayerCharacter)_prototype[id]).Defense = int.Parse(_char.SelectSingleNode(@"Defense").InnerText);
                ((PlayerCharacter)_prototype[id]).AttackSpeed = int.Parse(_char.SelectSingleNode(@"AttackSpeed").InnerText);
                ((PlayerCharacter)_prototype[id]).Range = int.Parse(_char.SelectSingleNode(@"Range").InnerText);
                ((PlayerCharacter)_prototype[id]).X = 0;
                ((PlayerCharacter)_prototype[id]).Y = 0;
                ((PlayerCharacter)_prototype[id]).HitFrame = int.Parse(_char.SelectSingleNode(@"HitFrame").InnerText);
                ((PlayerCharacter)_prototype[id]).CastFrame = int.Parse(_char.SelectSingleNode(@"CastFrame").InnerText);
                ((PlayerCharacter)_prototype[id]).MaxHp = int.Parse(_char.SelectSingleNode(@"MaxHp").InnerText);
                ((PlayerCharacter)_prototype[id]).MaxMp = int.Parse(_char.SelectSingleNode(@"MaxMp").InnerText);
                ((PlayerCharacter)_prototype[id]).ChangeToDodge = int.Parse(_char.SelectSingleNode(@"ChangeToDodge").InnerText);
                ((PlayerCharacter)_prototype[id]).Level = 1;
                ((PlayerCharacter)_prototype[id]).CurrentEXP = 0;
                ((PlayerCharacter)_prototype[id]).NextLevelEXP = 6000;
                return true;
            }
            catch
            {
                return false;
            }
        }
        public override void InitState(GameObjectManager[] objectManagerArray, MainGame owner)
        {
            base.InitState(objectManagerArray, owner);
            _map = (Map)objectManagerArray[1].CreateObject(0);
            GlobalVariables.MapCollisionDim = _map.CollisionDim;
            _char = (PlayerCharacter)objectManagerArray[0].CreateObject(0);
            _char.SetMap(_map);
            _char.StateOwner = this;

            _map.Owner = this;
            _listMonsters = _map.InitMonsterList((MonsterManager)objectManagerArray[2],@"Data\Map\map01\map01_monster.xml");

            _frog = new Fog();
            _frog.Init(owner.Content);
            _frog.SetCharacter(_char);

            _displayMessageLayer = new DisplayMessageLayer();

            //Phần ???---------------------------------------------------------------------------
            _listPortral = _map.InitPortralList((PortralManager)objectManagerArray[4], @"Data\Map\map01\map01_portral.xml");
            _listObstacle = _map.InitObstacle((MapObstacleManager)objectManagerArray[5], @"Data\Map\map01\map01_obstacle.xml");
            _objectManagerArray = objectManagerArray;
            _listToDraw = new List<VisibleGameEntity>();

            _char.InitSkill();

            //Phần healthbar--------------------------------------------------------------------
            _healthBar = new HealthBar();
            _healthBar.SetCharacter(_char);

            List<GameObjectManager> _resourcesForHealthbar = new List<GameObjectManager>();
            _resourcesForHealthbar.Add(objectManagerArray[8]);
            _resourcesForHealthbar.Add(objectManagerArray[9]);
            _resourcesForHealthbar.Add(objectManagerArray[10]);
            _resourcesForHealthbar.Add(objectManagerArray[11]);
            _healthBar.GetResources(_resourcesForHealthbar);

            //Phần SkillBoard------------------------------------------------------------------
            _skillBoard = new SkillBoard();
            _skillBoard.SetCharacter(_char);

            List<GameObjectManager> _resourcesForSkillBoard = new List<GameObjectManager>();
            _resourcesForSkillBoard.Add(objectManagerArray[8]);
            _resourcesForSkillBoard.Add(objectManagerArray[10]);
            _resourcesForSkillBoard.Add(objectManagerArray[11]);
            _skillBoard.GetResources(_resourcesForSkillBoard);

            //Phần Left-hand selection frame
            _lhSkillSelectionFrame = new LHSkillSelectionFrame();
            _lhSkillSelectionFrame.SetCharacter(_char);

            List<GameObjectManager> _resourceForLHSSelectionFrame = new List<GameObjectManager>();
            _resourceForLHSSelectionFrame.Add(_objectManagerArray[8]);
            _resourceForLHSSelectionFrame.Add(_objectManagerArray[10]);
            _lhSkillSelectionFrame.GetResources(_resourceForLHSSelectionFrame);

            //Phần Right-hand selection frame
            _rhSkillSelectionFrame = new RHSkillSelectionFrame();
            _rhSkillSelectionFrame.SetCharacter(_char);
            _rhSkillSelectionFrame.GetResources(_resourceForLHSSelectionFrame);

            //Phần subMenu
            _subMenu = new SubMenu();
            List<GameObjectManager> _resourceForSubMenu = new List<GameObjectManager>();
            _resourceForSubMenu.Add(_objectManagerArray[8]);
            _resourceForSubMenu.Add(_objectManagerArray[10]);
            _subMenu.GetResources(_resourceForSubMenu);
            _subMenu.GetStateOwner(this);

            //Phần infoBoard
            _infoBoard = new InfoBoard();
            _infoBoard.SetCharacter(_char);
            List<GameObjectManager> _resourceForInfo = new List<GameObjectManager>();
            _resourceForInfo.Add(_objectManagerArray[8]);
            _resourceForInfo.Add(_objectManagerArray[10]);
            _resourceForInfo.Add(_objectManagerArray[11]);
            _infoBoard.GetResources(_resourceForInfo);
        }
        public override bool InitOne(ContentManager content, int id)
        {
            try
            {
                XmlDocument _doc = new XmlDocument();
                _doc.Load(_xmlInfo);
                XmlNode _char = _doc.SelectSingleNode(@"//Character[@id = '" + id.ToString() + "']");
                _prototype[id]          = new PlayerCharacter();
                _prototype[id]._nsprite = 56;
                _prototype[id]._sprite  = new GameSprite[_prototype[id]._nsprite];

                XmlNode      node = _char.SelectSingleNode(@"Stand");
                GameSprite[] temp = Utility.LoadSprites(node, content);
                for (int j = 0; j < 8; ++j)
                {
                    _prototype[id]._sprite[j] = temp[j];
                }

                node = _char.SelectSingleNode(@"Move");
                temp = Utility.LoadSprites(node, content);
                for (int j = 8; j < 16; ++j)
                {
                    _prototype[id]._sprite[j] = temp[j - 8];
                }

                node = _char.SelectSingleNode(@"Attack1");
                temp = Utility.LoadSprites(node, content);
                for (int j = 16; j < 24; ++j)
                {
                    _prototype[id]._sprite[j] = temp[j - 16];
                }

                node = _char.SelectSingleNode(@"Attack2");
                temp = Utility.LoadSprites(node, content);
                for (int j = 24; j < 32; ++j)
                {
                    _prototype[id]._sprite[j] = temp[j - 24];
                }

                node = _char.SelectSingleNode(@"Dying");
                temp = Utility.LoadSprites(node, content);
                for (int j = 32; j < 40; ++j)
                {
                    _prototype[id]._sprite[j] = temp[j - 32];
                }

                node = _char.SelectSingleNode(@"Dyed");
                temp = Utility.LoadSprites(node, content);
                for (int j = 40; j < 48; ++j)
                {
                    _prototype[id]._sprite[j] = temp[j - 40];
                }

                node = _char.SelectSingleNode(@"Skill");
                temp = Utility.LoadSprites(node, content);
                for (int j = 48; j < 56; ++j)
                {
                    _prototype[id]._sprite[j] = temp[j - 48];
                }

                ((PlayerCharacter)_prototype[id]).CellToMove    = new List <Point>();
                ((PlayerCharacter)_prototype[id]).DestPoint     = new Point();
                ((PlayerCharacter)_prototype[id]).IsMoving      = false;
                ((PlayerCharacter)_prototype[id]).Map           = null;
                ((PlayerCharacter)_prototype[id]).Speed         = int.Parse(_char.SelectSingleNode(@"Speed").InnerText);
                ((PlayerCharacter)_prototype[id]).Hp            = int.Parse(_char.SelectSingleNode(@"Hp").InnerText);
                ((PlayerCharacter)_prototype[id]).Mp            = int.Parse(_char.SelectSingleNode(@"Mp").InnerText);
                ((PlayerCharacter)_prototype[id]).CriticalRate  = int.Parse(_char.SelectSingleNode(@"CriticalRate").InnerText);
                ((PlayerCharacter)_prototype[id]).MinDamage     = int.Parse(_char.SelectSingleNode(@"MinDamage").InnerText);
                ((PlayerCharacter)_prototype[id]).MaxDamage     = int.Parse(_char.SelectSingleNode(@"MaxDamage").InnerText);
                ((PlayerCharacter)_prototype[id]).Defense       = int.Parse(_char.SelectSingleNode(@"Defense").InnerText);
                ((PlayerCharacter)_prototype[id]).AttackSpeed   = int.Parse(_char.SelectSingleNode(@"AttackSpeed").InnerText);
                ((PlayerCharacter)_prototype[id]).Range         = int.Parse(_char.SelectSingleNode(@"Range").InnerText);
                ((PlayerCharacter)_prototype[id]).X             = 0;
                ((PlayerCharacter)_prototype[id]).Y             = 0;
                ((PlayerCharacter)_prototype[id]).HitFrame      = int.Parse(_char.SelectSingleNode(@"HitFrame").InnerText);
                ((PlayerCharacter)_prototype[id]).CastFrame     = int.Parse(_char.SelectSingleNode(@"CastFrame").InnerText);
                ((PlayerCharacter)_prototype[id]).MaxHp         = int.Parse(_char.SelectSingleNode(@"MaxHp").InnerText);
                ((PlayerCharacter)_prototype[id]).MaxMp         = int.Parse(_char.SelectSingleNode(@"MaxMp").InnerText);
                ((PlayerCharacter)_prototype[id]).ChangeToDodge = int.Parse(_char.SelectSingleNode(@"ChangeToDodge").InnerText);
                ((PlayerCharacter)_prototype[id]).Level         = 1;
                ((PlayerCharacter)_prototype[id]).CurrentEXP    = 0;
                ((PlayerCharacter)_prototype[id]).NextLevelEXP  = 6000;
                return(true);
            }
            catch
            {
                return(false);
            }
        }