コード例 #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 void AddBuff()
    {
        Character[] enemys = Object.FindObjectsOfType <Character>();

        if (enemys == null)
        {
            return;
        }

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

            if ((Owner.transform.position - e.transform.position).magnitude <= Isometric.IsometricTileSize.x * 3f)
            {
                if (e != null)
                {
                    Vector3 pos = e.transform.position;
                    e.CurrentAction?.FinishAction();
                    GameObject.Destroy(e.gameObject);
                    NodeUtil.CreateEntity("Slime", pos);
                }
                IsoParticle.CreateParticle("Sliced_Power1", e.transform.position
                                           + new Vector3(0f, Isometric.IsometricTileSize.y * 0.5f, 0f), 0f);
            }
        }

        PlayerUtil.ConsumeCardPowerUpStatus();
    }
コード例 #4
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();
    }
コード例 #5
0
 public override void FinishAction()
 {
     base.FinishAction();
     PlayerUtil.ConsumeCardPowerUpStatus();
     Owner.DeleteState(CharacterStateType.E_Invincibility);
 }
コード例 #6
0
 public override void FinishAction()
 {
     base.FinishAction();
     PlayerUtil.ConsumeCardPowerUpStatus();
     Owner.AddNotifyEvent(new CharacterNotifyEvent(CharacterNotifyType.E_Invincibility, false));
 }