예제 #1
0
    /// <summary>
    /// 创建子弹类技能
    /// </summary>
    /// <param name="cfg"></param>
    /// <returns></returns>
    private Spell CreateBullet(SkillBulletCfg cfg)
    {
        Spell spell = null;

        switch (cfg.BulletType)
        {
        case BulletType.Cast:
            if (cfg.FlyTrack)
            {
                spell = new SpellBulletTrack(_caster);
            }
            else
            {
                spell = new SpellBulletNormal(_caster);
            }
            break;

        case BulletType.Multiple:
            spell = new SpellBulletMulti(_caster);
            break;

        case BulletType.Split:
            spell = new SpellBulletSplit(_caster);
            break;

        case BulletType.Bounce:
            break;

        case BulletType.Boomerang:
            spell = new SpellBulletBoomerang(_caster);
            break;
        }

        return(spell);
    }
    public override void Update(float dt)
    {
        if (_elapsedTime >= _skillBasicCfg.HitInterval)
        {
            Spell spell = new SpellBulletTrack(_caster);
            spell.SkillBasicCfg  = _skillBasicCfg;
            spell.SkillBulletCfg = _skillBulletCfg;
            spell.target         = _target;
            spell.Initialize();
            _caster.battle.AddSpell(_caster.GlobalID, spell);

            _remainingNum--;
            _elapsedTime = 0;

            if (_remainingNum <= 0)
            {
                _hited = true;
            }
        }

        _elapsedTime += dt;
    }