Esempio n. 1
0
    private void _doAttack()
    {
        UnitSkillAttackBase attackEffect = null;

        // 获得att配置信息
        SkillAttackFlyAttributeConfig.SkillAttackFlyAttribute data = SkillAttackFlyAttributeConfig.GetSkillAttackFlyAttribute(unit.AttackSkillAttackID);


        switch (data.FlyType)
        {
        case 0:
        {
            // no fly
            attackEffect = new UnitSkillAttackBase();

            attackEffect.ForwardFrame = data.ForwardFrame;
            attackEffect.Caster       = unit;
            attackEffect.Target       = unit.Target;
            attackEffect.IsFly        = data.IsFly;
            attackEffect.Speed        = data.Speed;
        }
        break;

        case 1:
        {
            // straight line
            attackEffect = new UnitSkillAttackStraightLine();

            attackEffect.ForwardFrame = data.ForwardFrame;
            attackEffect.Caster       = unit;
            attackEffect.Target       = unit.Target;
            attackEffect.IsFly        = data.IsFly;
            attackEffect.Speed        = data.Speed;
        }
        break;

        default:
        {
            Debug.LogError(" 攻击没有飞行类型: " + unit.AttackSkillAttackID);
        }
        break;
        }

        if (attackEffect != null)
        {
            _skillAttackList.Add(attackEffect);
            // 表现层接口
            Launch.battleplayer.Attack(battle.Frame, unit, unit.Target);
        }
    }
Esempio n. 2
0
    // Use this for initialization
    void Start()
    {
        terrainRenderer = new GridRenderer();

        terrainRenderer.Init(Battle.MAX_BATTLE_FILED_X, Battle.MAX_BATTLE_FILED_Y, 10, 0, "grid/mat_terrain", "Terrain");

        gridRenderer = new GridRenderer();

        gridRenderer.Init(Battle.MAX_BATTLE_FILED_X, Battle.MAX_BATTLE_FILED_Y, 2, 0.1f, "grid/mat_grid", "Grid");

        SkillAttackFlyAttributeConfig.Initialize();
        UnitConfig.Initialize();

        battleplayer = new Battleplayer();
        battleplayer.Init();
    }
Esempio n. 3
0
    public override void Init(Actor parent)
    {
        //Debug.Log("Renderer Attack at frame: " + Launch.battleplayer._battle.Frame + " time : " + System.Environment.TickCount );

        base.Init(parent);

        var data = SkillAttackFlyAttributeConfig.GetSkillAttackFlyAttribute(actor.AttackSkillAttackId);

        _callBackTime = data.ForwardFrame * Battleplayer.TIME_PER_FRAME;

        actor.Position = Position;

        actor.ChangeDirection(callbackData.Target.Position - callbackData.Caster.Position);

        actor.PlaySkill("attack", true);
    }
Esempio n. 4
0
    private void _onHitCallBack()
    {
        // callback data 保证只触发一次, 要么是在回调的时候,要么是在被打断的时候在destory
        if (callbackData != null && callbackData.Caster != null && callbackData.Target != null)
        {
            //Debug.Log("Renderer Forward at frame: " + Launch.battleplayer._battle.Frame + " time : " + System.Environment.TickCount );

            var data = SkillAttackFlyAttributeConfig.GetSkillAttackFlyAttribute(callbackData.Caster.AttackSkillAttackId);


            if (!data.IsFly)
            {
                // 只有击中
                AttackEffectHit hitEffect = new AttackEffectHit();

                hitEffect.EffectPrefabName = data.HitEffectName;
                hitEffect.Caster           = callbackData.Caster;
                hitEffect.Target           = callbackData.Target;

                hitEffect.Init();

                callbackData.Target.attackEffectList.Add(hitEffect);
            }
            else
            {
                // 飞行击中
                AttackEffectStraightLine attackEffect = new AttackEffectStraightLine();
                attackEffect.HitEffectPrefabName = data.HitEffectName;
                attackEffect.FlyEffectPrefabName = data.FlyEffectName;

                attackEffect.Caster = callbackData.Caster;
                attackEffect.Target = callbackData.Target;

                attackEffect.Speed = data.Speed;

                attackEffect.Init();
                callbackData.Target.attackEffectList.Add(attackEffect);
            }

            callbackData.Destroy();
            callbackData = null;
        }
    }