public override void Active() { base.Active(); if (!PlayerOwner.StateOwner._listProjectile.Contains(prjt)) { prjt = (Projectile)PlayerOwner.StateOwner._objectManagerArray[6].CreateObject(ListLevel[Level].ListSkillInfo[0].ProjectileType); prjt.ProjectileController = new PoisonWormController(); prjt.ProjectileController.Owner = prjt; prjt.SkillOwner = this; prjt.DelayTime = 0; prjt.LifeTime = int.MaxValue; prjt.IsRemoveAfterEffect = false; PlayerOwner.StateOwner._listProjectile.Add(prjt); } }
public override bool InitOne(ContentManager content, int id) { XmlDocument _doc = new XmlDocument(); _doc.Load(_xmlInfo); XmlNode _projectile = _doc.SelectSingleNode(@"//Projectile[@id = '" + id.ToString() + "']"); _prototype[id] = new Projectile(); _prototype[id]._nsprite = 1; _prototype[id]._sprite = new GameSprite[_prototype[id]._nsprite]; string contentName = _projectile.SelectSingleNode(@"ContentName").InnerText; int nFrame = int.Parse(_projectile.SelectSingleNode(@"NumOfFrame").InnerText); Texture2D[] _texture = new Texture2D[nFrame]; for (int i = 0; i < nFrame; ++i) _texture[i] = content.Load<Texture2D>(contentName + i.ToString("00")); _prototype[id]._sprite[0] = new GameSprite(_texture, 0, 0); _prototype[id]._sprite[0].Xoffset = int.Parse(_projectile.SelectSingleNode(@"XOffset").InnerText); _prototype[id]._sprite[0].Yoffset = int.Parse(_projectile.SelectSingleNode(@"YOffset").InnerText); _prototype[id]._sprite[0].NDelay = 3; ((Projectile)_prototype[id]).StartObstacleX = int.Parse(_projectile.SelectSingleNode(@"StartObstacleX").InnerText); ((Projectile)_prototype[id]).StartObstacleY = int.Parse(_projectile.SelectSingleNode(@"StartObstacleY").InnerText); ((Projectile)_prototype[id]).ObstacleWidth = int.Parse(_projectile.SelectSingleNode(@"ObstacleWidth").InnerText); ((Projectile)_prototype[id]).ObstacleHeight = int.Parse(_projectile.SelectSingleNode(@"ObstacleHeight").InnerText); try { ((Projectile)_prototype[id])._sprite[0].NDelay = int.Parse(_projectile.SelectSingleNode(@"NDelay").InnerText); } catch { } ((Projectile)_prototype[id]).HitFrames = new List<int>(); XmlNodeList _frameList = _projectile.SelectNodes(@"HitFrame"); for (int i = 0; i < _frameList.Count; ++i) { ((Projectile)_prototype[id]).HitFrames.Add(int.Parse(_frameList[i].InnerText)); } return true; }