コード例 #1
0
    public void SendDamage()
    {
        Character[] enemys = Object.FindObjectsOfType <Character>();
        float       damage = PlayerUtil.CalculatingCardPowerValue(80f);

        if (enemys == null)
        {
            return;
        }

        foreach (var e in enemys)
        {
            if (e == Owner)
            {
                continue;
            }
            float angle = Mathf.Acos(Vector3.Dot((e.transform.position - Owner.transform.position).normalized, Owner.transform.forward))
                          * Mathf.Rad2Deg;
            if ((Owner.transform.position - e.transform.position).magnitude <= Isometric.IsometricTileSize.x * 1.8f &&
                angle < 80f)
            {
                e.AddNotifyEvent(new CharacterNotifyEvent(CharacterNotifyType.E_Damage, damage));
                IsoParticle.CreateParticle("Sliced_Power1", e.transform.position
                                           + new Vector3(0f, Isometric.IsometricTileSize.y * 0.5f, 0f),
                                           angle);
                IsoParticle.CreateParticle("Sliced_Power2", e.transform.position
                                           + new Vector3(0f, Isometric.IsometricTileSize.y * 0.5f, 0f),
                                           angle + 90f);
            }
        }

        PlayerUtil.ConsumeCardPowerUpStatus();
    }
コード例 #2
0
    public void SendDamage()
    {
        Character[] enemys = Object.FindObjectsOfType <Character>();
        float       damage = PlayerUtil.CalculatingCardPowerValue(DataTable._Parameter[0]);

        if (enemys == null)
        {
            return;
        }

        foreach (var e in enemys)
        {
            if (e == Owner)
            {
                continue;
            }

            if ((Target.Point -
                 e.transform.position).magnitude <= Isometric.IsometricTileSize.x * 3f)
            {
                e.AddState(new CharacterHitState(e, damage, 0.1f).Init());
                e.AddState(new CharacterState(CharacterStateType.E_Stun, e, DataTable._Parameter[1]));
                IsoParticle.CreateParticle("Sliced_Power1", e.transform.position
                                           + new Vector3(0f, Isometric.IsometricTileSize.y * 0.5f, 0f), 0f
                                           );
                IsoParticle.CreateParticle("Sliced_Power2", e.transform.position
                                           + new Vector3(0f, Isometric.IsometricTileSize.y * 0.5f, 0f),
                                           0f);
            }
        }

        PlayerUtil.ConsumeCardPowerUpStatus();
    }
コード例 #3
0
    public override void StartAction(Character owner)
    {
        base.StartAction(owner);
        AnimUtil.PlayAnim(owner, "effect0");

        damage = PlayerUtil.CalculatingCardPowerValue(DataTable._Parameter[0]);
        Owner.AddState(new CharacterState(CharacterStateType.E_Invincibility, Owner).Init());
    }
コード例 #4
0
    public override void StartAction(Character owner)
    {
        base.StartAction(owner);
        AnimUtil.PlayAnim(owner, "effect0");

        targetCharacters = new List <Monster>();

        Monster[] enemys = Object.FindObjectsOfType <Monster>();

        targetCharacters = enemys.ToList().FindAll((c) => c.SystemName == (Target.Target as Monster).SystemName);
        targetCharacters.Sort((c1, c2) => (c1.transform.position - owner.transform.position).magnitude
                              < (c2.transform.position - owner.transform.position).magnitude ? -1 : 1);

        damage = PlayerUtil.CalculatingCardPowerValue(DataTable._Parameter[0]);
        Owner.AddState(new CharacterState(CharacterStateType.E_Invincibility, Owner).Init());
    }
コード例 #5
0
    public override void StartAction(Character owner)
    {
        base.StartAction(owner);
        AnimUtil.PlayAnim(owner, "effect0");

        targetCharacters = new List <Character>();

        Character[] enemys = Object.FindObjectsOfType <Character>();

        Character target        = null;
        float     shortDistance = 99999f;

        foreach (var e in enemys)
        {
            if (e == Owner)
            {
                continue;
            }

            float angle = Mathf.Acos(Vector3.Dot((e.transform.position - Owner.transform.position).normalized, Owner.transform.forward))
                          * Mathf.Rad2Deg;

            float distance = (Owner.transform.position - e.transform.position).magnitude;
            if (distance <= Isometric.IsometricTileSize.x * 1.8f &&
                angle < 80f)
            {
                if (distance < shortDistance)
                {
                    target        = e;
                    shortDistance = distance;
                }
            }
        }

        if (target == null)
        {
            return;
        }

        targetCharacters = enemys.ToList().FindAll((c) => c.GetType() == target.GetType());
        targetCharacters.Sort((c1, c2) => (c1.transform.position - owner.transform.position).magnitude
                              < (c2.transform.position - owner.transform.position).magnitude ? -1 : 1);

        damage = PlayerUtil.CalculatingCardPowerValue(50f);
        Owner.AddNotifyEvent(new CharacterNotifyEvent(CharacterNotifyType.E_Invincibility, true));
    }
コード例 #6
0
    public void SendDamage()
    {
        IsoParticle.CreateParticle("BreakGround", Owner.transform.position - Vector3.up * Isometric.IsometricTileSize.y, 0f)
        .RotationAnim("effect_ground_power_atk", Owner.transform.rotation);

        Character[] enemys = Object.FindObjectsOfType <Character>();
        float       damage = PlayerUtil.CalculatingCardPowerValue(DataTable._Parameter[0]);

        if (enemys == null)
        {
            return;
        }

        foreach (var e in enemys)
        {
            if (e == Owner)
            {
                continue;
            }
            float angle = Mathf.Acos(Vector3.Dot((e.transform.position - Owner.transform.position).normalized, Owner.transform.forward))
                          * Mathf.Rad2Deg;
            if ((Owner.transform.position - e.transform.position).magnitude <= Isometric.IsometricTileSize.x * 3f &&
                angle < 45f)
            {
                e.AddState(new CharacterHitState(e, damage, 0.1f).Init());
                IsoParticle.CreateParticle("Sliced_Power1", e.transform.position
                                           + new Vector3(0f, Isometric.IsometricTileSize.y * 0.5f, 0f),
                                           angle);
                IsoParticle.CreateParticle("Sliced_Power2", e.transform.position
                                           + new Vector3(0f, Isometric.IsometricTileSize.y * 0.5f, 0f),
                                           angle + 90f);
            }
        }

        PlayerUtil.ConsumeCardPowerUpStatus();
    }