Beispiel #1
0
    /// <summary>
    /// インターフェースにより実装したダメージ処理、ハンマークラスから呼ばれる
    /// </summary>
    public void Damage(PlayerManager player)
    {
        if (damageTimer <= 0f && !player.isDamageable)
        {
            animator.SetTrigger(anm_Damage);
            damageTimer = damageCT;

            EffectManager.Create(0, transform.position, 3f);
        }
    }
Beispiel #2
0
    public override void ShowEffect()
    {
        //todo 创建子弹
        GameObject go = EffectManager.Create("Fist", false);

        go.transform.position = Owner.transform.position;
        go.transform.forward  = Owner.transform.forward;
        Bullet bullet = go.AddUniqueComponent <Bullet>();

        bullet.Skill     = this;
        bullet.LayerMask = mCollisionMask ^ (1 << Owner.gameObject.layer);
        bullet.EnterScene();
    }
Beispiel #3
0
 public virtual void OnHurt(Skill skill)
 {
     Attr.Hp -= skill.Owner.Attr.Atk * 1000 / Attr.Defence + 100;
     //Debug.Log(Attr.Hp);
     EffectManager.Create("Z_Hit01", true, HurtPoint);
     if (Attr.Hp <= 0)
     {
         Dying();
     }
     else
     {
         HpBarVisable = true;//显示血条
     }
 }
Beispiel #4
0
    public virtual void Dying()
    {
        IsDead             = true;
        Controller.enabled = false;
        Agent.enabled      = false;
        AttackTarget       = null;
        FollowTarget       = null;
        SetTrigger("die");

        HpBarVisable = false; //隐藏血条

        ClearItem();          //背包掉落

        //滴血
        CTimeSys.Instance.AddTimer(500, 0, () =>
        {
            GameObject go         = EffectManager.Create("blood_down", true);
            go.transform.position = transform.position;
            go.transform.forward  = transform.forward;
        });

        //血泊
        CTimeSys.Instance.AddTimer(850, 0, () =>
        {
            GameObject go         = EffectManager.Create("dimian_canliu", false);
            go.transform.position = transform.position;// + transform.forward * 0.5f;
            go.transform.rotation = Quaternion.AngleAxis(Random.Range(0, 360), Vector3.up);
            Renderer blood        = go.GetComponentInChildren <Renderer>();
            blood.material.SetFloat("_N", Random.Range(1, 10));
        });

        //3秒后开始下沉
        CTimeSys.Instance.AddTimer(3000, 0, () =>
        {
            mIsDown = true;
            //下沉3秒后离场
            mTimeId = CTimeSys.Instance.AddTimer(3000, 0, LeaveScene);
        });
    }