Beispiel #1
0
    public override void DoBUFF(UnitMonoBehaciour unit, UnitMonoBehaciour target)
    {
        float attack = unit.Attritube.GetFloat(UnitStaticAttritubeType.Attack);
        float money  = attack * UnityEngine.Random.Range(Value_0, Value_1);

        Game.SetMoney(Game.HaveMoney + money);
    }
Beispiel #2
0
 void DoBuff(UnitMonoBehaciour targetMono)
 {
     foreach (var buff in BuffList)
     {
         buff.DoBUFF(this, targetMono);
     }
 }
Beispiel #3
0
    public override void DoBUFF(UnitMonoBehaciour unit, UnitMonoBehaciour target)
    {
        float Attack = unit.Attritube.GetFloat(UnitStaticAttritubeType.Attack);
        float AIdel  = unit.Attritube.GetFloat(UnitStaticAttritubeType.AttackSpeed);

        unit.Attritube.SetAttr(UnitStaticAttritubeType.Attack, Attack * (1 + Value_0));
        unit.Attritube.SetAttr(UnitStaticAttritubeType.AttackSpeed, AIdel * (1 - Value_1));
    }
Beispiel #4
0
    public override void DoBUFF(UnitMonoBehaciour unit, UnitMonoBehaciour target)
    {
        float attack = unit.Attritube.GetFloat(UnitStaticAttritubeType.Attack);

        Game.SetMoney(Game.HaveMoney + attack * Value_0);

        ((CannonTowerMono)unit).MpAdd(attack * Value_1);
    }
Beispiel #5
0
    IEnumerator WaitAUpdata(UnitMonoBehaciour unit, float defualt)
    {
        yield return(0);

        float Damage = unit.Attritube.GetFloat(UnitDynamicAttritubeType.AttackAdd);

        unit.Attritube.SetAttr(UnitDynamicAttritubeType.AttackAdd, Damage - defualt);
    }
Beispiel #6
0
    public override void DoBUFF(UnitMonoBehaciour unit, UnitMonoBehaciour target)
    {
        float attack = unit.Attritube.GetFloat(UnitStaticAttritubeType.Attack);

        _moreAttack = attack * (Value_0 - 1);
        unit.Attritube.SetAttr(UnitDynamicAttritubeType.AttackAdd, _moreAttack);
        StartCoroutine(recover(unit));
    }
Beispiel #7
0
    IEnumerator recover(UnitMonoBehaciour unit)
    {
        yield return(new WaitForSeconds(Value_1));

        float speed = unit.Attritube.GetFloat(UnitDynamicAttritubeType.AttackSpeedAdd);

        unit.Attritube.SetAttr(UnitDynamicAttritubeType.AttackSpeedAdd, speed - _moreSpeed);
        //GameObject.Destroy(this);
    }
    public override void DoBUFF(UnitMonoBehaciour unit, UnitMonoBehaciour target)
    {
        float maxhp = unit.Attritube.GetFloat(UnitStaticAttritubeType.MaxHp) * Value_0;

        unit.Attritube.SetAttr(UnitStaticAttritubeType.MaxHp, maxhp);
        unit.Attritube.SetAttr(UnitDynamicAttritubeType.Hp, maxhp);

        ((CannonTowerMono)unit)._PlayerStateBarContorl.SetHpBarLength(1f);
    }
 public override void DoBUFF(UnitMonoBehaciour unit, UnitMonoBehaciour target)
 {
     if (Game.SingelKillData.SingelDcrDamageMult >= 0.5f)
     {
         Game.SingelKillData.SingelDcrDamageMult -= Value_0;
     }
     else
     {
         Game.SetMoney(Game.HaveMoney + Value_1);
     }
 }
Beispiel #10
0
    public override void DoBUFF(UnitMonoBehaciour unit, UnitMonoBehaciour target)
    {
        float Damage = unit.Attritube.GetFloat(UnitStaticAttritubeType.Attack);

        if (UnityEngine.Random.Range(0, 1f) <= Value_0)
        {
            float more = Damage * Value_1 - Damage;
            unit.Attritube.SetAttr(UnitDynamicAttritubeType.AttackAdd, more);
            StartCoroutine(WaitAUpdata(unit, more));
        }
    }
Beispiel #11
0
    GameObject CreateUnitFaceToPlayer(UnitType type, Vector3 vector, UnitMonoBehaciour LookWho)
    {
        GameObject unit = UnitManage.CreateUnit(type, null, LookWho.transform.position + vector);
        Vector3    def  = unit.transform.rotation.eulerAngles;

        unit.transform.LookAt(LookWho.gameObject.transform);
        Vector3 the = unit.transform.rotation.eulerAngles;

        unit.transform.rotation = Quaternion.Euler(def.x, the.y, the.z);
        return(unit);
    }
Beispiel #12
0
    public override void DoBUFF(UnitMonoBehaciour unit, UnitMonoBehaciour target)
    {
        float speed = unit.Attritube.GetFloat(UnitStaticAttritubeType.AttackSpeed);

        _moreSpeed = speed * (1f - Value_0);
        Debug.Log(_moreSpeed);
        float speedAdd = unit.Attritube.GetFloat(UnitDynamicAttritubeType.AttackSpeedAdd);

        unit.Attritube.SetAttr(UnitDynamicAttritubeType.AttackSpeedAdd, speedAdd + _moreSpeed);
        StartCoroutine(recover(unit));
    }
Beispiel #13
0
    IEnumerator recover(UnitMonoBehaciour unit)
    {
        float    Value_2 = Attribute.GetFloat(CannonBuffAttrType.Value_2);
        UnitMove move    = unit.gameObject.GetComponent <UnitMove>();
        float    speed   = move.MoveSpeed;

        move.MoveSpeed = 0;
        yield return(new WaitForSeconds(Value_2));

        move.MoveSpeed = speed;
    }
Beispiel #14
0
    IEnumerator WaitAUpdata(UnitMonoBehaciour unit, float time, float damage)
    {
        yield return(new WaitForSeconds(time));

        if (unit != null)
        {
            ParticleContorl.Play(ParticleType.Blade, unit.transform);

            unit.Damage(damage);
        }
    }
Beispiel #15
0
    public override void DoBUFF(UnitMonoBehaciour unit, UnitMonoBehaciour target)
    {
        float rand = UnityEngine.Random.Range(0, 1f);

        if (rand <= Value_0)
        {
            float maxhp = target.Attritube.GetFloat(UnitStaticAttritubeType.MaxHp);

            StartCoroutine(WaitAUpdata(target, 0.3f, maxhp * Value_1));
        }
    }
Beispiel #16
0
    public override void DoBUFF(UnitMonoBehaciour unit, UnitMonoBehaciour target)
    {
        float rand = UnityEngine.Random.Range(0, 1f);

        if (rand <= Value_0)
        {
            float value_2 = Attribute.GetFloat(CannonBuffAttrType.Value_2);

            float attack = unit.Attritube.GetFloat(UnitStaticAttritubeType.Attack) * value_2;

            StartCoroutine(WaitAUpdata(target, Value_1, attack));
        }
    }
Beispiel #17
0
    IEnumerator WaitAUpdata(UnitMonoBehaciour unit, float time, float attack)
    {
        while (true)
        {
            yield return(new WaitForSeconds(time));

            if (unit == null)
            {
                break;
            }

            unit.Damage(attack);
        }
    }
Beispiel #18
0
    public override void DoBUFF(UnitMonoBehaciour unit, UnitMonoBehaciour target)
    {
        Color color = new Color(0, 192f / 255f, 1f);

        foreach (var targetCol in BuffTools.GetOverlapSphereUnit(target.transform.position, Value_0))
        {
            UnitMove move = targetCol.gameObject.GetComponent <UnitMove>();
            if (!list.Contains(move))
            {
                move.MoveSpeed   *= (1f - Value_1);
                targetCol._DefCol = color;
                targetCol._Renderer.material.color = color;
                list.Add(move);
            }
        }
    }
    public override void DoBUFF(UnitMonoBehaciour unit, UnitMonoBehaciour target)
    {
        float attack = unit.Attritube.GetFloat(UnitStaticAttritubeType.Attack);

        foreach (var unitMono in BuffTools.GetOverlapSphereUnit(target.gameObject.transform.position, Value_0))
        {
            if (unitMono != target && unitMono != unit)
            {
                float dis = Vector3.Distance(unitMono.transform.position, target.transform.position);
                dis = Mathf.Clamp(dis, 1, Value_0 - 1);
                float damage = attack * Value_1 * ((Value_0 - dis) / Value_0);
                unitMono.Damage(damage);
                ((CannonTowerMono)unit).BoomParcitle(unitMono.gameObject, damage);
            }
        }
    }
Beispiel #20
0
    public IEnumerator Attacking(GameObject go)
    {
        OnAttack = true;

        while (IsTurning())
        {
            yield return(new WaitForSeconds(Time.deltaTime));
        }

        while (go != null)
        {
            _Actions.Fire();

            UnitMonoBehaciour targetMono = go.GetComponent <UnitMonoBehaciour>();

            DoBuff(targetMono);

            float Damage = Attritube.GetFloat(UnitStaticAttritubeType.Attack) + Attritube.GetFloat(UnitDynamicAttritubeType.AttackAdd);

            BoomParcitle(go, Damage);

            targetMono.Damage(Damage);

            ParticleContorl.Play(ParticleType.fire, FireMouse, Fire.transform);

            //if (AttackIdel >= 1f)
            //{
            _Actions.Idle();
            //}

            if (go == null)
            {
                break;
            }

            float idel = Attritube.GetFloat(UnitStaticAttritubeType.AttackSpeed) + Attritube.GetFloat(UnitDynamicAttritubeType.AttackSpeedAdd);

            yield return(new WaitForSeconds(idel));
        }

        _Actions.Idle();

        OnAttack = false;

        SelectAttackGameObject();
    }
Beispiel #21
0
    public override void DoBUFF(UnitMonoBehaciour unit, UnitMonoBehaciour target)
    {
        float rand = UnityEngine.Random.Range(0, 1f);

        if (rand <= Value_0)
        {
            float attack = unit.Attritube.GetFloat(UnitStaticAttritubeType.Attack);

            float attackAdd = attack * Value_1 - attack;

            unit.Attritube.SetAttr(UnitDynamicAttritubeType.AttackAdd, attackAdd);

            StartCoroutine(WaitAUpdata(unit, attackAdd));

            StartCoroutine(recover(target));
        }
    }
Beispiel #22
0
    public override void DoBUFF(UnitMonoBehaciour unit, UnitMonoBehaciour target)
    {
        float attack = unit.Attritube.GetFloat(UnitStaticAttritubeType.Attack);
        float hp     = unit.Attritube.GetFloat(UnitDynamicAttritubeType.Hp);

        float value = hp + attack * Value_0;

        if (value >= unit.Attritube.GetFloat(UnitStaticAttritubeType.MaxHp))
        {
            unit.Attritube.SetAttr(UnitDynamicAttritubeType.Hp, unit.Attritube.GetFloat(UnitStaticAttritubeType.MaxHp));
        }
        else
        {
            unit.Attritube.SetAttr(UnitDynamicAttritubeType.Hp, value);
        }

        ((CannonTowerMono)unit)._PlayerStateBarContorl.SetHpBarLength(unit.Attritube.GetFloat(UnitDynamicAttritubeType.Hp) / unit.Attritube.GetFloat(UnitStaticAttritubeType.MaxHp));
    }
Beispiel #23
0
 public override void DoBUFF(UnitMonoBehaciour unit, UnitMonoBehaciour target)
 {
     Game.RandomBuff();
 }
Beispiel #24
0
 public override void DoBUFF(UnitMonoBehaciour unit, UnitMonoBehaciour target)
 {
     Game.SingelKillData.SingelDcrMp += Value_0;
 }
 public override void DoBUFF(UnitMonoBehaciour unit, UnitMonoBehaciour target)
 {
     unit.GetComponent <UnitMove>().RotaSpeed = Value_0;
 }
 public override void DoBUFF(UnitMonoBehaciour unit, UnitMonoBehaciour target)
 {
     Game.SetMoney(Game.HaveMoney * Value_0);
 }
Beispiel #27
0
    public override void DoBUFF(UnitMonoBehaciour unit, UnitMonoBehaciour target)
    {
        float money = UnityEngine.Random.Range(Game.KillCount * Value_0, Game.KillCount * Value_1);

        Game.SetMoney(Game.HaveMoney + money);
    }
 public override void DoBUFF(UnitMonoBehaciour unit, UnitMonoBehaciour target)
 {
     Game.SetMoney(Game.HaveMoney + unit.Attritube.GetFloat(UnitStaticAttritubeType.Attack) * Value_0);
 }
Beispiel #29
0
 public virtual void DoBUFF(UnitMonoBehaciour unit, UnitMonoBehaciour target)
 {
 }