A normal attack skill representation
Inheritance: ISkill
    public override void Execute()
    {
        SkillsManager.Initialize();

        List<ControllableUnit> teamAUnits = BattleComposition.Instance.GetAllTeamAUnits();
        List<ControllableUnit> teamBUnits = BattleComposition.Instance.GetAllTeamBUnits();

        //all units get NORMAL skill
        foreach(ControllableUnit unit in teamAUnits) {
            UnitIdentity unitID = unit.GetUnitIdentity();
            NormalAttackSkill normalAttack = new NormalAttackSkill();

            SkillsManager.Instance.AddSkill(unitID,normalAttack.GetSkillName(), normalAttack);
            Debug.Log ("Skill added to " +unitID.GetUnitName() + " Skill Name: " +normalAttack.GetSkillName());
        }

        //all units get NORMAL skill
        foreach(ControllableUnit unit in teamBUnits) {
            UnitIdentity unitID = unit.GetUnitIdentity();
            NormalAttackSkill normalAttack = new NormalAttackSkill();

            SkillsManager.Instance.AddSkill(unitID,normalAttack.GetSkillName(), normalAttack);
            Debug.Log ("Skill added to " +unitID.GetUnitName() + " Skill Name: " +normalAttack.GetSkillName());
        }

        this.ReportFinished();
    }
Ejemplo n.º 2
0
    public override void Execute()
    {
        SkillsManager.Initialize();

        List <ControllableUnit> teamAUnits = BattleComposition.Instance.GetAllTeamAUnits();
        List <ControllableUnit> teamBUnits = BattleComposition.Instance.GetAllTeamBUnits();

        //all units get NORMAL skill
        foreach (ControllableUnit unit in teamAUnits)
        {
            UnitIdentity      unitID       = unit.GetUnitIdentity();
            NormalAttackSkill normalAttack = new NormalAttackSkill();

            SkillsManager.Instance.AddSkill(unitID, normalAttack.GetSkillName(), normalAttack);
            Debug.Log("Skill added to " + unitID.GetUnitName() + " Skill Name: " + normalAttack.GetSkillName());
        }

        //all units get NORMAL skill
        foreach (ControllableUnit unit in teamBUnits)
        {
            UnitIdentity      unitID       = unit.GetUnitIdentity();
            NormalAttackSkill normalAttack = new NormalAttackSkill();

            SkillsManager.Instance.AddSkill(unitID, normalAttack.GetSkillName(), normalAttack);
            Debug.Log("Skill added to " + unitID.GetUnitName() + " Skill Name: " + normalAttack.GetSkillName());
        }

        this.ReportFinished();
    }
Ejemplo n.º 3
0
    public void Use()
    {
        // 使用卡牌 触发卡牌的效果
        ISkill skill = new NormalAttackSkill();

        skill.PreCheck();
        skill.MakeEffect();
        skill.PostEffect();
    }
        public override bool InitOne(ContentManager content, int id)
        {
            XmlDocument _doc = new XmlDocument();
            _doc.Load(_xmlInfo);
            XmlNode _skill = _doc.SelectSingleNode(@"//Skill[@id = '" + id.ToString() + "']");
            switch (_skill.SelectSingleNode(@"Name").InnerText)
            {
                case "Normal Attack":
                    {
                        _prototype[id] = new NormalAttackSkill();
                        _prototype[id]._nsprite = 0;
                        ((NormalAttackSkill)_prototype[id]).Name = "Normal Attack";
                        ((NormalAttackSkill)_prototype[id]).Level = 0;
                        ((NormalAttackSkill)_prototype[id]).ListLevel = new List<SkillLevel>();
                        XmlNodeList _levelList = _skill.SelectNodes(@"Level");
                        for (int i = 0; i < _levelList.Count; ++i)
                        {
                            SkillLevel _skillLevel = new SkillLevel();
                            _skillLevel.ListSkillInfo = new List<SkillInfo>();
                            SkillInfo _skillInfo = new SkillInfo();
                            _skillInfo.PercentDamage = int.Parse(_levelList[i].SelectSingleNode(@"PercentDamage").InnerText);
                            _skillInfo.ProjectileType = int.Parse(_levelList[i].SelectSingleNode(@"ProjectileType").InnerText);
                            _skillInfo.Mp = int.Parse(_levelList[i].SelectSingleNode(@"MP").InnerText);
                            _skillLevel.ListSkillInfo.Add(_skillInfo);
                            ((NormalAttackSkill)_prototype[id]).ListLevel.Add(_skillLevel);
                        }
                    }
                    break;
                case "Cleaving Attack":
                    {
                        _prototype[id] = new CleavingAttackSkill();
                        _prototype[id]._nsprite = 0;
                        ((CleavingAttackSkill)_prototype[id]).Name = "Cleaving Attack";
                        ((CleavingAttackSkill)_prototype[id]).Level = 0;
                        ((CleavingAttackSkill)_prototype[id]).ListLevel = new List<SkillLevel>();
                        XmlNodeList _levelList = _skill.SelectNodes(@"Level");
                        for (int i = 0; i < _levelList.Count; ++i)
                        {
                            SkillLevel _skillLevel = new SkillLevel();
                            _skillLevel.ListSkillInfo = new List<SkillInfo>();
                            SkillInfo _skillInfo = new SkillInfo();
                            _skillInfo.PercentDamage = int.Parse(_levelList[i].SelectSingleNode(@"PercentDamage").InnerText);
                            _skillInfo.ProjectileType = int.Parse(_levelList[i].SelectSingleNode(@"ProjectileType").InnerText);
                            _skillInfo.Mp = int.Parse(_levelList[i].SelectSingleNode(@"MP").InnerText);
                            _skillLevel.ListSkillInfo.Add(_skillInfo);
                            ((CleavingAttackSkill)_prototype[id]).ListLevel.Add(_skillLevel);
                        }
                    }
                    break;
                case "Critical Attack":
                    {
                        _prototype[id] = new CriticalAttackSkill();
                        _prototype[id]._nsprite = 0;
                        ((CriticalAttackSkill)_prototype[id]).Name = "Critical Attack";
                        ((CriticalAttackSkill)_prototype[id]).Level = 0;
                        ((CriticalAttackSkill)_prototype[id]).ListLevel = new List<SkillLevel>();
                        XmlNodeList _levelList = _skill.SelectNodes(@"Level");
                        for (int i = 0; i < _levelList.Count; ++i)
                        {
                            SkillLevel _skillLevel = new SkillLevel();
                            _skillLevel.ListSkillInfo = new List<SkillInfo>();
                            SkillInfo _skillInfo = new SkillInfo();
                            _skillInfo.PercentDamage = int.Parse(_levelList[i].SelectSingleNode(@"PercentDamage").InnerText);
                            _skillInfo.ProjectileType = int.Parse(_levelList[i].SelectSingleNode(@"ProjectileType").InnerText);
                            _skillInfo.Mp = int.Parse(_levelList[i].SelectSingleNode(@"MP").InnerText);
                            _skillLevel.ListSkillInfo.Add(_skillInfo);
                            ((CriticalAttackSkill)_prototype[id]).ListLevel.Add(_skillLevel);
                        }
                    }
                    break;
                case "Curse Attack":
                    {
                        _prototype[id] = new CurseAttackSkill();
                        _prototype[id]._nsprite = 0;
                        ((CurseAttackSkill)_prototype[id]).Name = "Curse Attack";
                        ((CurseAttackSkill)_prototype[id]).Level = 0;
                        ((CurseAttackSkill)_prototype[id]).ListLevel = new List<SkillLevel>();
                        XmlNodeList _levelList = _skill.SelectNodes(@"Level");
                        for (int i = 0; i < _levelList.Count; ++i)
                        {
                            SkillLevel _skillLevel = new SkillLevel();
                            _skillLevel.ListSkillInfo = new List<SkillInfo>();
                            SkillInfo _skillInfo = new SkillInfo();
                            _skillInfo.PercentDamage = int.Parse(_levelList[i].SelectSingleNode(@"PercentDamage").InnerText);
                            _skillInfo.ProjectileType = int.Parse(_levelList[i].SelectSingleNode(@"ProjectileType").InnerText);
                            _skillInfo.Mp = int.Parse(_levelList[i].SelectSingleNode(@"MP").InnerText);
                            _skillInfo.AmorReduce = int.Parse(_levelList[i].SelectSingleNode(@"AmorReduce").InnerText);
                            _skillInfo.ChanceToCurse = int.Parse(_levelList[i].SelectSingleNode(@"ChanceToCurse").InnerText);
                            _skillLevel.ListSkillInfo.Add(_skillInfo);
                            ((CurseAttackSkill)_prototype[id]).ListLevel.Add(_skillLevel);
                        }
                    }
                    break;
                case "OverSpeed Attack":
                    {
                        _prototype[id] = new OverSpeedAttackSkill();
                        _prototype[id]._nsprite = 0;
                        ((OverSpeedAttackSkill)_prototype[id]).Name = "OverSpeed Attack";
                        ((OverSpeedAttackSkill)_prototype[id]).Level = 0;
                        ((OverSpeedAttackSkill)_prototype[id]).ListLevel = new List<SkillLevel>();
                        XmlNodeList _levelList = _skill.SelectNodes(@"Level");
                        for (int i = 0; i < _levelList.Count; ++i)
                        {
                            SkillLevel _skillLevel = new SkillLevel();
                            _skillLevel.ListSkillInfo = new List<SkillInfo>();
                            SkillInfo _skillInfo = new SkillInfo();
                            _skillInfo.PercentDamage = int.Parse(_levelList[i].SelectSingleNode(@"PercentDamage").InnerText);
                            _skillInfo.Hp = int.Parse(_levelList[i].SelectSingleNode(@"HP").InnerText);
                            _skillInfo.NumOfHit = int.Parse(_levelList[i].SelectSingleNode(@"NumOfHit").InnerText);
                            _skillLevel.ListSkillInfo.Add(_skillInfo);
                            ((OverSpeedAttackSkill)_prototype[id]).ListLevel.Add(_skillLevel);
                        }
                    }
                    break;
                case "LifeSteal Attack":
                    {
                        _prototype[id] = new LifeStealAttackSkill();
                        _prototype[id]._nsprite = 0;
                        ((LifeStealAttackSkill)_prototype[id]).Name = "LifeSteal Attack";
                        ((LifeStealAttackSkill)_prototype[id]).Level = 0;
                        ((LifeStealAttackSkill)_prototype[id]).ListLevel = new List<SkillLevel>();
                        XmlNodeList _levelList = _skill.SelectNodes(@"Level");
                        for (int i = 0; i < _levelList.Count; ++i)
                        {
                            SkillLevel _skillLevel = new SkillLevel();
                            _skillLevel.ListSkillInfo = new List<SkillInfo>();
                            SkillInfo _skillInfo = new SkillInfo();
                            _skillInfo.PercentDamage = int.Parse(_levelList[i].SelectSingleNode(@"PercentDamage").InnerText);
                            _skillInfo.Mp = int.Parse(_levelList[i].SelectSingleNode(@"MP").InnerText);
                            _skillInfo.PercentLifeSteal = int.Parse(_levelList[i].SelectSingleNode(@"PercentLifeSteal").InnerText);
                            _skillLevel.ListSkillInfo.Add(_skillInfo);
                            ((LifeStealAttackSkill)_prototype[id]).ListLevel.Add(_skillLevel);
                        }
                    }
                    break;
                case "Bash Attack":
                    {
                        _prototype[id] = new BashAttackSkill();
                        _prototype[id]._nsprite = 0;
                        ((BashAttackSkill)_prototype[id]).Name = "Bash Attack";
                        ((BashAttackSkill)_prototype[id]).Level = 0;
                        ((BashAttackSkill)_prototype[id]).ListLevel = new List<SkillLevel>();
                        XmlNodeList _levelList = _skill.SelectNodes(@"Level");
                        for (int i = 0; i < _levelList.Count; ++i)
                        {
                            SkillLevel _skillLevel = new SkillLevel();
                            _skillLevel.ListSkillInfo = new List<SkillInfo>();
                            SkillInfo _skillInfo = new SkillInfo();
                            _skillInfo.PercentDamage = int.Parse(_levelList[i].SelectSingleNode(@"PercentDamage").InnerText);
                            _skillInfo.Mp = int.Parse(_levelList[i].SelectSingleNode(@"MP").InnerText);
                            _skillInfo.ChanceToBash = int.Parse(_levelList[i].SelectSingleNode(@"ChanceToBash").InnerText);
                            _skillInfo.BashTime = int.Parse(_levelList[i].SelectSingleNode(@"BashTime").InnerText);
                            _skillLevel.ListSkillInfo.Add(_skillInfo);
                            ((BashAttackSkill)_prototype[id]).ListLevel.Add(_skillLevel);
                        }
                    }
                    break;
                case "Deadly Bee":
                    {
                        _prototype[id] = new DeadlyBeeSkill();
                        _prototype[id]._nsprite = 0;
                        ((DeadlyBeeSkill)_prototype[id]).Name = "Deadly Bee";
                        ((DeadlyBeeSkill)_prototype[id]).Level = 0;
                        ((DeadlyBeeSkill)_prototype[id]).ListLevel = new List<SkillLevel>();
                        XmlNodeList _levelList = _skill.SelectNodes(@"Level");
                        for (int i = 0; i < _levelList.Count; ++i)
                        {
                            SkillLevel _skillLevel = new SkillLevel();
                            _skillLevel.ListSkillInfo = new List<SkillInfo>();
                            SkillInfo _skillInfo = new SkillInfo();
                            _skillInfo.MaxDamage = int.Parse(_levelList[i].SelectSingleNode(@"MaxDamage").InnerText);
                            _skillInfo.MinDamage = int.Parse(_levelList[i].SelectSingleNode(@"MinDamage").InnerText);
                            _skillInfo.NumOfBee = int.Parse(_levelList[i].SelectSingleNode(@"NumberOfBee").InnerText);
                            _skillInfo.BeeLifeTime = int.Parse(_levelList[i].SelectSingleNode(@"BeeLifeTime").InnerText) * 60;
                            _skillInfo.CoolDown = int.Parse(_levelList[i].SelectSingleNode(@"CoolDown").InnerText) * 60;
                            _skillInfo.Mp = int.Parse(_levelList[i].SelectSingleNode(@"MP").InnerText);
                            _skillInfo.ProjectileType = int.Parse(_levelList[i].SelectSingleNode(@"ProjectileType").InnerText);
                            _skillLevel.ListSkillInfo.Add(_skillInfo);
                            ((DeadlyBeeSkill)_prototype[id]).ListLevel.Add(_skillLevel);
                        }
                    }
                    break;
                case "Souls Release":
                    {
                        _prototype[id] = new SoulsReleaseSkill();
                        _prototype[id]._nsprite = 0;
                        ((SoulsReleaseSkill)_prototype[id]).Name = "Souls Release";
                        ((SoulsReleaseSkill)_prototype[id]).Level = 0;
                        ((SoulsReleaseSkill)_prototype[id]).ListLevel = new List<SkillLevel>();
                        XmlNodeList _levelList = _skill.SelectNodes(@"Level");
                        for (int i = 0; i < _levelList.Count; ++i)
                        {
                            SkillLevel _skillLevel = new SkillLevel();
                            _skillLevel.ListSkillInfo = new List<SkillInfo>();
                            SkillInfo _skillInfo = new SkillInfo();
                            _skillInfo.MaxDamage = int.Parse(_levelList[i].SelectSingleNode(@"MaxDamage").InnerText);
                            _skillInfo.MinDamage = int.Parse(_levelList[i].SelectSingleNode(@"MinDamage").InnerText);
                            _skillInfo.CoolDown = int.Parse(_levelList[i].SelectSingleNode(@"CoolDown").InnerText) * 60;
                            _skillInfo.NumOfSoul = int.Parse(_levelList[i].SelectSingleNode(@"NumberOfSoul").InnerText);
                            _skillInfo.Mp = int.Parse(_levelList[i].SelectSingleNode(@"MP").InnerText);
                            _skillInfo.ProjectileType = int.Parse(_levelList[i].SelectSingleNode(@"ProjectileType").InnerText);
                            _skillLevel.ListSkillInfo.Add(_skillInfo);
                            ((SoulsReleaseSkill)_prototype[id]).ListLevel.Add(_skillLevel);
                        }
                    }
                    break;
                case "Earth Shake":
                    {
                        _prototype[id] = new EarthShakeSkill();
                        _prototype[id]._nsprite = 0;
                        ((EarthShakeSkill)_prototype[id]).Name = "Earth Shake";
                        ((EarthShakeSkill)_prototype[id]).Level = 0;
                        ((EarthShakeSkill)_prototype[id]).ListLevel = new List<SkillLevel>();
                        XmlNodeList _levelList = _skill.SelectNodes(@"Level");
                        for (int i = 0; i < _levelList.Count; ++i)
                        {
                            SkillLevel _skillLevel = new SkillLevel();
                            _skillLevel.ListSkillInfo = new List<SkillInfo>();
                            SkillInfo _skillInfo = new SkillInfo();
                            _skillInfo.MaxDamage = int.Parse(_levelList[i].SelectSingleNode(@"MaxDamage").InnerText);
                            _skillInfo.MinDamage = int.Parse(_levelList[i].SelectSingleNode(@"MinDamage").InnerText);
                            _skillInfo.CoolDown = int.Parse(_levelList[i].SelectSingleNode(@"CoolDown").InnerText) * 60;
                            _skillInfo.Mp = int.Parse(_levelList[i].SelectSingleNode(@"MP").InnerText);
                            _skillInfo.ProjectileType = int.Parse(_levelList[i].SelectSingleNode(@"ProjectileType").InnerText);
                            _skillInfo.BashTime = int.Parse(_levelList[i].SelectSingleNode(@"BashTime").InnerText);
                            _skillLevel.ListSkillInfo.Add(_skillInfo);
                            ((EarthShakeSkill)_prototype[id]).ListLevel.Add(_skillLevel);
                        }
                    }
                    break;
                case "Wave Form":
                    {
                        _prototype[id] = new WaveFormSkill();
                        _prototype[id]._nsprite = 0;
                        ((WaveFormSkill)_prototype[id]).Name = "Wave Form";
                        ((WaveFormSkill)_prototype[id]).Level = 0;
                        ((WaveFormSkill)_prototype[id]).ListLevel = new List<SkillLevel>();
                        ((WaveFormSkill)_prototype[id]).ReleaseProjectileDelay = int.Parse(_skill.SelectSingleNode(@"Delay").InnerText);
                        XmlNodeList _levelList = _skill.SelectNodes(@"Level");
                        for (int i = 0; i < _levelList.Count; ++i)
                        {
                            SkillLevel _skillLevel = new SkillLevel();
                            _skillLevel.ListSkillInfo = new List<SkillInfo>();
                            SkillInfo _skillInfo = new SkillInfo();
                            _skillInfo.MaxDamage = int.Parse(_levelList[i].SelectSingleNode(@"MaxDamage").InnerText);
                            _skillInfo.MinDamage = int.Parse(_levelList[i].SelectSingleNode(@"MinDamage").InnerText);
                            _skillInfo.CoolDown = int.Parse(_levelList[i].SelectSingleNode(@"CoolDown").InnerText) * 60;
                            _skillInfo.Mp = int.Parse(_levelList[i].SelectSingleNode(@"MP").InnerText);
                            _skillInfo.ProjectileType = int.Parse(_levelList[i].SelectSingleNode(@"ProjectileType").InnerText);
                            _skillInfo.CastRange = int.Parse(_levelList[i].SelectSingleNode(@"CastRange").InnerText);
                            _skillLevel.ListSkillInfo.Add(_skillInfo);
                            ((WaveFormSkill)_prototype[id]).ListLevel.Add(_skillLevel);
                        }
                    }
                    break;
                case "Lightning Field":
                    {
                        _prototype[id] = new LightningFieldSkill();
                        _prototype[id]._nsprite = 0;
                        ((LightningFieldSkill)_prototype[id]).Name = "Lightning Field";
                        ((LightningFieldSkill)_prototype[id]).Level = 0;
                        ((LightningFieldSkill)_prototype[id]).ListLevel = new List<SkillLevel>();
                        XmlNodeList _levelList = _skill.SelectNodes(@"Level");
                        for (int i = 0; i < _levelList.Count; ++i)
                        {
                            SkillLevel _skillLevel = new SkillLevel();
                            _skillLevel.ListSkillInfo = new List<SkillInfo>();
                            SkillInfo _skillInfo = new SkillInfo();
                            _skillInfo.MaxDamage = int.Parse(_levelList[i].SelectSingleNode(@"MaxDamage").InnerText);
                            _skillInfo.MinDamage = int.Parse(_levelList[i].SelectSingleNode(@"MinDamage").InnerText);
                            _skillInfo.CoolDown = int.Parse(_levelList[i].SelectSingleNode(@"CoolDown").InnerText) * 60;
                            _skillInfo.Mp = int.Parse(_levelList[i].SelectSingleNode(@"MP").InnerText);
                            _skillInfo.ProjectileType = int.Parse(_levelList[i].SelectSingleNode(@"ProjectileType").InnerText);
                            _skillInfo.NumberOfStar = int.Parse(_levelList[i].SelectSingleNode(@"NumberOfStar").InnerText);
                            _skillInfo.Duration = int.Parse(_levelList[i].SelectSingleNode(@"Duration").InnerText);
                            _skillLevel.ListSkillInfo.Add(_skillInfo);
                            ((LightningFieldSkill)_prototype[id]).ListLevel.Add(_skillLevel);
                        }
                    }
                    break;
                case "Invisible Poison":
                    {
                        _prototype[id] = new InvisiblePoisonSkill();
                        _prototype[id]._nsprite = 0;
                        ((InvisiblePoisonSkill)_prototype[id]).Name = "Invisible Poison";
                        ((InvisiblePoisonSkill)_prototype[id]).Level = 0;
                        ((InvisiblePoisonSkill)_prototype[id]).ListLevel = new List<SkillLevel>();
                        XmlNodeList _levelList = _skill.SelectNodes(@"Level");
                        for (int i = 0; i < _levelList.Count; ++i)
                        {
                            SkillLevel _skillLevel = new SkillLevel();
                            _skillLevel.ListSkillInfo = new List<SkillInfo>();
                            SkillInfo _skillInfo = new SkillInfo();
                            _skillInfo.MaxDamage = int.Parse(_levelList[i].SelectSingleNode(@"MaxDamage").InnerText);
                            _skillInfo.MinDamage = int.Parse(_levelList[i].SelectSingleNode(@"MinDamage").InnerText);
                            _skillInfo.Mp = int.Parse(_levelList[i].SelectSingleNode(@"MP").InnerText);
                            _skillInfo.Hp = int.Parse(_levelList[i].SelectSingleNode(@"HP").InnerText);
                            _skillInfo.ProjectileType = int.Parse(_levelList[i].SelectSingleNode(@"ProjectileType").InnerText);
                            _skillInfo.Duration = int.Parse(_levelList[i].SelectSingleNode(@"Duration").InnerText) * 60;
                            _skillLevel.ListSkillInfo.Add(_skillInfo);
                            ((InvisiblePoisonSkill)_prototype[id]).ListLevel.Add(_skillLevel);
                        }
                    }
                    break;
                case "Lightning Strike":
                    {
                        _prototype[id] = new LightningStrike();
                        _prototype[id]._nsprite = 0;
                        ((LightningStrike)_prototype[id]).Name = "Lightning Strike";
                        ((LightningStrike)_prototype[id]).Level = 0;
                        ((LightningStrike)_prototype[id]).ListLevel = new List<SkillLevel>();
                        XmlNodeList _levelList = _skill.SelectNodes(@"Level");
                        for (int i = 0; i < _levelList.Count; ++i)
                        {
                            SkillLevel _skillLevel = new SkillLevel();
                            _skillLevel.ListSkillInfo = new List<SkillInfo>();
                            SkillInfo _skillInfo = new SkillInfo();
                            _skillInfo.ProjectileType = int.Parse(_levelList[i].SelectSingleNode(@"ProjectileType").InnerText);
                            _skillInfo.Mp = int.Parse(_levelList[i].SelectSingleNode(@"MP").InnerText);
                            _skillLevel.ListSkillInfo.Add(_skillInfo);
                            ((LightningStrike)_prototype[id]).ListLevel.Add(_skillLevel);
                        }
                    }
                    break;
                case "Great Fortitude":
                    {
                        _prototype[id] = new GreatFortitudeSkill();
                        _prototype[id]._nsprite = 0;
                        ((GreatFortitudeSkill)_prototype[id]).Name = "Great Fortitude";
                        ((GreatFortitudeSkill)_prototype[id]).Level = 0;
                        ((GreatFortitudeSkill)_prototype[id]).ListLevel = new List<SkillLevel>();
                        XmlNodeList _levelList = _skill.SelectNodes(@"Level");
                        for (int i = 0; i < _levelList.Count; ++i)
                        {
                            SkillLevel _skillLevel = new SkillLevel();
                            _skillLevel.ListSkillInfo = new List<SkillInfo>();
                            SkillInfo _skillInfo = new SkillInfo();
                            _skillInfo.Defense = int.Parse(_levelList[i].SelectSingleNode(@"Defense").InnerText);
                            _skillInfo.Hp = int.Parse(_levelList[i].SelectSingleNode(@"HP").InnerText);
                            _skillInfo.Mp = int.Parse(_levelList[i].SelectSingleNode(@"MP").InnerText);
                            _skillLevel.ListSkillInfo.Add(_skillInfo);
                            ((GreatFortitudeSkill)_prototype[id]).ListLevel.Add(_skillLevel);
                        }
                    }
                    break;
                case "God Strength":
                    {
                        _prototype[id] = new GodStrengthSkill();
                        _prototype[id]._nsprite = 0;
                        ((GodStrengthSkill)_prototype[id]).Name = "God Strength";
                        ((GodStrengthSkill)_prototype[id]).Level = 0;
                        ((GodStrengthSkill)_prototype[id]).ListLevel = new List<SkillLevel>();
                        XmlNodeList _levelList = _skill.SelectNodes(@"Level");
                        for (int i = 0; i < _levelList.Count; ++i)
                        {
                            SkillLevel _skillLevel = new SkillLevel();
                            _skillLevel.ListSkillInfo = new List<SkillInfo>();
                            SkillInfo _skillInfo = new SkillInfo();
                            _skillInfo.AS = int.Parse(_levelList[i].SelectSingleNode(@"AS").InnerText);
                            _skillInfo.MS = int.Parse(_levelList[i].SelectSingleNode(@"MS").InnerText);
                            _skillLevel.ListSkillInfo.Add(_skillInfo);
                            ((GodStrengthSkill)_prototype[id]).ListLevel.Add(_skillLevel);
                        }
                    }
                    break;
                case "Blur":
                    {
                        _prototype[id] = new BlurSkill();
                        _prototype[id]._nsprite = 0;
                        ((BlurSkill)_prototype[id]).Name = "Blur";
                        ((BlurSkill)_prototype[id]).Level = 0;
                        ((BlurSkill)_prototype[id]).ListLevel = new List<SkillLevel>();
                        XmlNodeList _levelList = _skill.SelectNodes(@"Level");
                        for (int i = 0; i < _levelList.Count; ++i)
                        {
                            SkillLevel _skillLevel = new SkillLevel();
                            _skillLevel.ListSkillInfo = new List<SkillInfo>();
                            SkillInfo _skillInfo = new SkillInfo();
                            _skillInfo.ChangeToDodge = int.Parse(_levelList[i].SelectSingleNode(@"ChanceToDodge").InnerText);
                            _skillLevel.ListSkillInfo.Add(_skillInfo);
                            ((BlurSkill)_prototype[id]).ListLevel.Add(_skillLevel);
                        }
                    }
                    break;
                default:
                    {

                    }
                    break;
            }
            ((Skill)_prototype[id]).LargeIcon = content.Load<Texture2D>(_skill.SelectSingleNode(@"Large").InnerText);
            ((Skill)_prototype[id]).ClickedIcon = content.Load<Texture2D>(_skill.SelectSingleNode(@"Clicked").InnerText);
            ((Skill)_prototype[id]).IdleIcon = content.Load<Texture2D>(_skill.SelectSingleNode(@"Idle").InnerText);
            ((Skill)_prototype[id]).SoundName = _skill.SelectSingleNode(@"Sound").InnerText;
            return true;
        }
Ejemplo n.º 5
0
    public static Skill PlaySkill(Charactor attack, SkillConfig skillConfig, Charactor attackedOne = null)
    {
        Skill s = null;

        switch (skillConfig.id)
        {
        case 1001:
            s = new NormalAttackSkill(attack, skillConfig, attackedOne);
            break;

        case 1002:
            s = new S1002(attack, skillConfig);
            break;

        case 1003:
            s = new S1003(attack, skillConfig);
            break;

        case 1004:
            s = new S1004(attack, skillConfig);
            break;

        case 1005:
            break;

        case 1006:
            s = new S1006(attack, skillConfig);
            break;

        case 1007:
            break;

        case 1008:
            break;

        case 1009:
            break;

        case 1010:
            break;

        case 2001:
            s = new S2001(attack, skillConfig);
            break;

        case 2002:
            break;

        case 2003:
            s = new S2003(attack, skillConfig);
            break;

        case 2004:
            s = new S2004(attack, skillConfig);
            break;

        case 2005:
            //s = new S2005(attack , skillConfig);
            break;

        case 2006:
            //s = new S2006(attack , skillConfig);
            break;

        case 2007:
            s = new S2007(attack, skillConfig);
            break;

        case 2008:
            s = new S2008(attack, skillConfig);
            break;

        case 2009:
            //s = new S2009(attack , skillConfig);
            break;

        case 2010:
            s = new S2010(attack, skillConfig);
            break;

        case 2011:
            s = new S2011(attack, skillConfig);
            break;
        }

        if (s != null)
        {
            s.Start();
            runningSkill.Add(s);
        }

        return(s);
    }
Ejemplo n.º 6
0
    public Skill CreateSkill(string skillName)
    {
        // 玩家技能---------------------------------------------------------
        Skill skill = null;

        if (this.skillDict[skillName] == 1000)
        {   //无操作
            skill = new InactionSkill();
        }
        else if (this.skillDict[skillName] == 1001)
        {   //普通攻击
            skill = new NormalAttackSkill();
        }
        else if (this.skillDict[skillName] == 1002)
        {   //无限剑制
            skill = new UnlimitedBladeWorksSkill();
        }
        else if (this.skillDict[skillName] == 1003)
        {   //六脉神剑
            skill = new SixPulseExcaliburSkill();
        }
        else if (this.skillDict[skillName] == 1004)
        {   //八荒六合
            skill = new EightDroughtLiuheSkill();
        }
        else if (this.skillDict[skillName] == 1005)
        {   //大火球
            skill = new BigBallFireSkill();
        }
        else if (this.skillDict[skillName] == 1006)
        {   //岩浆爆破
            skill = new LavaBurstSkill();
        }
        else if (this.skillDict[skillName] == 1007)
        {   //烈焰风暴
            skill = new FirestormSkill();
        }
        else if (this.skillDict[skillName] == 1008)
        {   //瞬劈
            skill = new TransientChopSkill();
        }
        else if (this.skillDict[skillName] == 1009)
        {   //生死不觉
            skill = new UnknowDieSkill();
        }
        else if (this.skillDict[skillName] == 1010)
        {   //临危不惧
            skill = new SangfroidSkill();
        }
        // 敌人技能---------------------------------------------------------------------
        else if (this.skillDict[skillName] == 3001)
        {   //撕咬
            skill = new WorrySkill();
        }
        else if (this.skillDict[skillName] == 3002)
        {   //摆尾
            skill = new FishtailingSkill();
        }
        else if (this.skillDict[skillName] == 3003)
        {   //野蛮冲撞
            skill = new SlamSkill();
        }

        return(skill);
    }