Example #1
0
    /// <summary>
    /// 受到伤害
    /// </summary>
    /// <param name="attack"></param>
    public void TakeDamage(int attack)
    {
        if (state == PlayerState.Death)
        {
            return;
        }
        float def  = EquipmentUI.instance.def + pi.def + pi.def_plus;
        float temp = attack * ((200.0f - def) / 200.0f);

        if (temp < 1)
        {
            temp = 1;
        }

        float value = UnityEngine.Random.Range(0f, 1f);

        if (value < miss_rate)
        {
            AudioSource.PlayClipAtPoint(miss_clip, transform.position);
            HUDRoot.NewText("Miss", transform, Color.green, 8, 20f, -1f, 2.2f, bl_Guidance.Up);
        }
        else
        {
            HUDRoot.NewText("-" + attack, transform, Color.red, 8, 20f, -1f, 2.2f, bl_Guidance.Up);
            pi.hp_remain -= temp;

            StartCoroutine(ShowBodyRed());

            if (pi.hp_remain <= 0)
            {
                state = PlayerState.Death;
            }
        }
        HeadStatusUI._instance.UpdateShow();
    }
Example #2
0
    public void TakeDamage(int attack)
    {
        if (state == EnemyState.Death)
        {
            return;
        }
        target = GameObject.FindGameObjectWithTag(Tags.Player.ToString()).transform;
        state  = EnemyState.Attack;
        float value = UnityEngine.Random.Range(0f, 1f);

        if (value < miss_rate)
        {
            if (state != EnemyState.Death)
            {
                AudioSource.PlayClipAtPoint(miss_clip, transform.position);
                HUDRoot.NewText("Miss", transform, Color.green, 8, 20f, -1f, 2.2f, bl_Guidance.Up);
            }
        }
        else
        {
            HUDRoot.NewText("-" + attack, transform, Color.red, 8, 20f, -1f, 2.2f, bl_Guidance.Up);
            this.hp -= attack;
            StartCoroutine(ShowBodyRed());

            if (this.hp <= 0)
            {
                state = EnemyState.Death;
                spawn.MinusNumber();
                pi.GetExp(exp);
                Bar_Npc._instance.OnKillWolf();
                Destroy(this.gameObject, 2f);
            }
        }
    }
Example #3
0
    public void TakeDamage(int attack)
    {
        float value = Random.Range(0f, 1f);

        if (value < miss_Rate)
        {
            //显示Miss效果
            if (value < miss_Rate)
            {
                AudioSource.PlayClipAtPoint(missSound, transform.position);
                HUDText.NewText("Miss", base.transform, Color.white, m_size, m_speed, m_yAcceleration, m_yAccelerationScaleFactor, m_movement);
            }
        }
        else
        {
            //命中受到伤害
            //减血
            Hp -= attack;
            //线程变红
            StartCoroutine(ShowBodyRed());

            HUDText.NewText("- " + attack.ToString(), base.transform, Color.red, 11, 20f, -1f, 1f, bl_Guidance.Down);
            //判断是否死亡
            if (Hp <= 0)
            {
                state = WolfBabyState.Death;
                Destroy(this.gameObject, 2);
            }
        }
    }
Example #4
0
    //被打
    public void BeHit(int value)
    {
        if (HP <= 0) //防止重复被打
        {
            return;
        }
        HP -= value;
        //掉血
        Debug.Log("HP = " + HP);
        //生成掉血UI
        string hitInfo = "- " + value;

        //是否暴击
        if (Random.Range(0, 10) == 0)
        {
            hitInfo = "暴击 " + (value * 3);
            HUDRoot.NewText(hitInfo, base.transform, Color.red, 8, 20f, -1f, 2.2f, bl_Guidance.Up);
        }
        else
        {
            if (Random.Range(0, 2) == 0)
            {
                HUDRoot.NewText(hitInfo, base.transform, Color.yellow, 8, 20f, -1f, 2.2f, bl_Guidance.LeftDown);
            }
            else
            {
                HUDRoot.NewText(hitInfo, base.transform, Color.yellow, 8, 20f, -1f, 2.2f, bl_Guidance.RightDown);
            }
        }

        //Transform clone = Instantiate(AinPrefab).transform;
        //clone.SetParent(GameObject.Find("Canvas").transform);
        //clone.GetComponent<UIFollow>().SetTarget(transform.Find("UI"));
        //clone.Find("Text").GetComponent<Text>().text = "- " + value;
        //Destroy(clone.gameObject, 2f);
        //生成掉血特效
        GameObject fxClone = Instantiate(hitFxPrefab);

        fxClone.transform.SetParent(transform);
        //Debug.Log(GetComponent<Collider>().bounds.center);是世界坐标系下的坐标
        fxClone.transform.position = GetComponent <Collider>().bounds.center;
        Destroy(fxClone, 1f);

        if (HP <= 0)
        {
            state = EnemyState.Die;
        }
    }
Example #5
0
    /// <summary>
    /// 响应伤害
    /// </summary>
    /// <param name="response"></param>
    private void OnDamage(OperationResponse response)
    {
        List <DamageModel> damages = JsonMapper.ToObject <List <DamageModel> >(response[0].ToString());

        foreach (var item in damages)
        {
            //目标
            int toId = item.toId;
            //获取控制器
            BaseControl con = idControlDict[toId];
            //受伤
            con.Model.CurrHp -= item.damage;
            con.OnHpChange();
            //实例化出来一个掉血数字
            HUDText.NewText("- " + item.damage.ToString(), con.transform, Color.red, 24, 20f, -1f, 2.2f, bl_Guidance.Up);

            //受伤的是自身
            if (con == GameData.myControl)
            {
                //更新视图的显示
                view.UpdateView(con.Model as HeroModel);
                //如果死亡了 就会白屏幕(未作)
            }
            else //别人掉血
            {
            }

            if (item.isDead == true)
            {
                //代表死亡
                con.DeathResponse();
            }
        }
    }
Example #6
0
 /// <summary>
 /// 受到伤害
 /// </summary>
 /// <param name="damages"></param>
 private void onDamage(DamageModel[] damages)
 {
     foreach (var item in damages)
     {
         //目标ID
         int toId = item.toId;
         //获取控制器
         BaseControl con = idControlDict[toId];
         //受伤
         con.Model.CurrHp -= item.damage;
         con.OnHpChanged();
         //实例化出来一个掉血数字
         HUDText.NewText("- " + item.damage, con.transform, Color.red, 16, 20f, -1f, 2.2f, bl_Guidance.LeftDown);
         //如果受伤的是自身 就要更新UI的显示
         if (con == GameData.MyControl)
         {
             //更新视图的显示
             view.UpdateView((HeroModel)con.Model);
             //如果死亡了 就灰白屏幕
             if (item.isDead)
             {
                 con.DeathResponse();
             }
         }
         else //别人掉血
         {
             //如果别人死亡了
             if (item.isDead)
             {
                 con.DeathResponse();
             }
         }
     }
 }
Example #7
0
    //private Color Darken() {

    //}


    private static void WriteText(HUDTextInfo info)
    {
        if (HUDRoot == null)
        {
            HUDRoot = bl_UHTUtils.GetHUDText;
        }
        HUDRoot.NewText(info);
    }
Example #8
0
        protected void OnShowHUDText(object sender, GameEventArgs e)
        {
            SkillEffectEvent ne = (SkillEffectEvent)e;

            if (ne == null)
            {
                return;
            }
            Entity pCaster = GameEntry.Entity.GetGameEntity(ne.CasterID);

            if (pCaster == null)
            {
                return;
            }
            Entity pTarget = GameEntry.Entity.GetGameEntity(ne.TargetID);

            if (pTarget == null)
            {
                return;
            }

            if ((ne.EffectType & (int)eTriggerNotify.TriggerNotify_Damage) != 0)
            {
                Vector3 vOffset = pTarget.GetPos() - pCaster.GetPos();
                vOffset.y = 0;

                Camera pCamera = GameEntry.CameraMgr.GetCurEngineCamera();
                if (pCamera == null || pCamera.transform == null)
                {
                    return;
                }
                Vector3 vRight = pCamera.transform.right;
                vRight.y = 0;

                float       dot = Vector3.Dot(vOffset, vRight);
                bl_Guidance dir = dot <= 0 ? bl_Guidance.LeftDown : bl_Guidance.RightDown;

                HUDRoot.NewText(Utility.Text.Format("- {0:N1}", ne.EffectValue), pTarget.CachedTransform, Color.red,
                                8, 20f, -1f, 2.2f, dir);
            }
            else if ((ne.EffectType & (int)eTriggerNotify.TriggerNotify_Heal) != 0)
            {
                HUDRoot.NewText(Utility.Text.Format("+ {0:N1}", ne.EffectValue), pTarget.CachedTransform, Color.green,
                                8, 20f, 0, 0, bl_Guidance.Up);
            }
        }
    private void OnMouseDown()
    {
        int i = Random.Range(0, Text.Length);

        if (this.friendly)
        {
            HUDRoot.NewText(Text[i], base.transform);
        }
        else if (this.enemy)
        {
            if (Random.Range(0, 2) == 1)
            {
                HUDRoot.NewText("- " + Random.Range(50, 100).ToString(), base.transform, Color.red, 8, 20f, -1f, 2.2f, bl_Guidance.RightDown);
            }
            else
            {
                HUDRoot.NewText("- " + Random.Range(50, 100).ToString(), base.transform, Color.red, 8, 20f, -1f, 2.2f, bl_Guidance.LeftDown);
            }
        }
        else if (this.player)
        {
            if (Random.Range(0, 2) == 1)
            {
                if (Random.Range(0, 2) == 1)
                {
                    HUDRoot.NewText("+ " + Random.Range(50, 100).ToString(), base.transform, Color.green, 8, 20f, -1f, 2.2f, bl_Guidance.RightDown);
                }
                else
                {
                    HUDRoot.NewText("+ " + Random.Range(50, 100).ToString(), base.transform, Color.green, 8, 20f, -1f, 2.2f, bl_Guidance.LeftDown);
                }
            }
            else if (Random.Range(0, 2) == 1)
            {
                HUDRoot.NewText("- " + Random.Range(50, 100).ToString(), base.transform, Color.red, 8, 20f, -1f, 2.2f, bl_Guidance.RightDown);
            }
            else
            {
                HUDRoot.NewText("- " + Random.Range(50, 100).ToString(), base.transform, Color.red, 8, 20f, -1f, 2.2f, bl_Guidance.LeftDown);
            }
        }
        else if (Other)
        {
            HUDRoot.NewText("- " + Random.Range(50, 100).ToString(), base.transform, Color.red, 8, 20f, -1f, 2.2f, bl_Guidance.Down);
        }
        else if (Other2)
        {
            HUDRoot.NewText("- " + Random.Range(50, 100).ToString(), base.transform, Color.green, 8, 20f, -1f, 2.2f, bl_Guidance.Up);
        }
    }
    public void NewStatu(Transform targetTran, Statu statu)
    {
        string text = "";

        switch (statu)
        {
        case Statu.Giddy: text = "眩晕"; break;

        case Statu.Rigidity: text = "硬直"; break;

        case Statu.Falled: text = "倒地"; break;
        }
        HUDTextInfo info = new HUDTextInfo(targetTran, text);

        info.Color = Color.white;
        info.Size  = Random.Range(40, 50);
        info.Speed = Random.Range(10, 20);
        info.VerticalAceleration = 1;
        info.VerticalFactorScale = Random.Range(1.2f, 3);
        info.Side = bl_Guidance.Up;
        info.VerticalPositionOffset = 0;
        info.AnimationSpeed         = 0.5f;
        info.ExtraDelayTime         = 2;
        info.FadeSpeed = 400;
        //Send the information
        HUDRoot.NewText(info);
    }
Example #11
0
 protected override void Start()
 {
     HUDRoot = GameObject.Find("HUDText").GetComponent <bl_HUDText>();
     HUDRoot.NewText("- " + Random.Range(50, 100).ToString(), base.transform, Color.red, 8, 20f, -1f, 2.2f, bl_Guidance.Static);
     HUDRoot.NewHealthyPoint(base.transform, 200, 8);
     HUDRoot.ChangeHPValue(HUDRoot.GetHealthyPoint(transform), 100, bl_HUDText.ValueType.damage);
     base.Start();
     InitFsm();
 }
Example #12
0
    public void NewHUDText(string sub, Color textColor, Transform transform)
    {
        HUDTextInfo info7 = new HUDTextInfo(transform, sub);

        info7.Color = textColor;
        info7.Size  = 20;
        info7.Speed = Random.Range(0.2f, 1);
        info7.VerticalAceleration    = Random.Range(-2, 2f);
        info7.VerticalPositionOffset = 0.2f;
        info7.VerticalFactorScale    = Random.Range(1.2f, 10);
        info7.Side            = (Random.Range(0, 2) == 1) ? bl_Guidance.LeftDown : bl_Guidance.RightDown;
        info7.ExtraDelayTime  = -1;
        info7.AnimationType   = bl_HUDText.TextAnimationType.PingPong;
        info7.FadeSpeed       = 200;
        info7.ExtraFloatSpeed = -11;
        //Send the information
        HUDRoot.NewText(info7);
    }
Example #13
0
    void _OnThrowFoodFinish(EventArgs args)
    {
        // 没有动物出现就不处理
        if (_animal == null)
        {
            return;
        }

        EventArgs_ThrowFinish finishArgs = args as EventArgs_ThrowFinish;

        if (finishArgs == null)
        {
            Debug.LogError("_OnThrowFoodFinish: args type is ERROR !!!");
            return;
        }

        if (_IsHitAnimal(finishArgs.fPower))
        {
            // 命中的话
            // 判断食物是否符合动物口味
            if (_animal.IsFoodSuitable(finishArgs.eType))
            {
                // 加分
                int score = _CalculateScore(finishArgs.eType, finishArgs.fPower);
                Score += score;
                string tip = "+" + score.ToString();
                _hudText.NewText(tip, _animal.tipRoot, Color.green, 20, 20, 1, 2.2f, bl_Guidance.RightUp);
            }
            else
            {
                // 提示口味不符
                string tip = "我不喜欢吃这个~~~";
                _hudText.NewText(tip, _animal.tipRoot, Color.red, 20, 20, 1, 2.2f, bl_Guidance.Up);
            }
        }
        else
        {
            // 没有命中的话提示
            string tip = "没有接到~~~";
            _hudText.NewText(tip, _animal.tipRoot, Color.red, 20, 20, 1, 2.2f, bl_Guidance.Up);
        }
    }
Example #14
0
 void OnCollisionEnter(Collision c)
 {
     if (c.transform == null)
     {
         return;
     }
     if (m_HudText == null)
     {
         Debug.LogError("Please assign the HudText in inspector.");
         return;
     }
     m_HudText.NewText("Message to Show", c.transform);
     Destroy(gameObject);
 }
Example #15
0
    void OnDemaged(LTEvent evt)
    {
        if (evt.data != null)
        {
            Demage d = evt.data as Demage;
            if (d != null && hudRoot != null)
            {
                //hudRoot.HideDistance = 1

                if (d.isEnemy)
                {
                    if (d.isHeadShot)
                    {
                        if (Random.Range(0, 2) == 1)
                        {
                            hudRoot.NewText("- " + d.demageVal.ToString(), d.tran, headshotHUDColor, 12, 10f, -0.5f, 2.2f, bl_Guidance.RightDown);
                        }
                        else
                        {
                            hudRoot.NewText("- " + d.demageVal.ToString(), d.tran, headshotHUDColor, 12, 10f, -0.5f, 2.2f, bl_Guidance.LeftDown);
                        }
                    }
                    else
                    {
                        if (Random.Range(0, 2) == 1)
                        {
                            hudRoot.NewText("- " + d.demageVal.ToString(), d.tran, normalHUDColor, 12, 10f, -0.5f, 2.2f, bl_Guidance.RightDown);
                        }
                        else
                        {
                            hudRoot.NewText("- " + d.demageVal.ToString(), d.tran, normalHUDColor, 12, 10f, -0.5f, 2.2f, bl_Guidance.LeftDown);
                        }
                    }
                }
            }
        }
    }
Example #16
0
    // Start is called before the first frame update
    void Start()
    {
        HUDRoot = bl_UHTUtils.GetHUDText;
        HUDTextInfo info2 = new HUDTextInfo(transform, "- " + Random.Range(50, 100));

        info2.Color = Color.white;
        info2.Size  = 20;
        info2.Speed = 0;

        info2.VerticalAceleration    = -3;
        info2.VerticalFactorScale    = 1;
        info2.VerticalFactorScale    = Random.Range(1.2f, 3);
        info2.VerticalPositionOffset = 3;
        HUDRoot.NewText(info2);
    }
Example #17
0
    void TakeDamage(int damage)
    {
        if (this.hp <= 0)
        {
            return;
        }
        this.hp -= damage;
        if (OnPlayerHpChange != null)
        {
            OnPlayerHpChange(hp);
        }
        //1.播放受到攻击的动画
        int random = Random.Range(0, 100);

        if (random < damage)
        {
            anim.SetTrigger("TakeDamage");
            if (isSyncPlayerAnimation)
            {
                PlayerAnimationModel model = new PlayerAnimationModel()
                {
                    takeDamage = true
                };
                battleController.SyncPlayerAnimation(model);
            }
        }
        //2.显示血量的减少
        hudText.NewText("- " + damage.ToString(), hpbarPoint.transform, Color.magenta, 30, 0.1f, -1f, 1f, bl_Guidance.LeftUp);

        //3.屏幕上血红特效的显示
        //4.死亡
        if (this.hp <= 0)
        {
            anim.SetTrigger("Die");
            if (isSyncPlayerAnimation)
            {
                PlayerAnimationModel model = new PlayerAnimationModel()
                {
                    die = true
                };
                battleController.SyncPlayerAnimation(model);
            }
            hp = 0;
            GameController.Instance.OnPlayerDie(GetComponent <Player>().roleId);
        }
    }
Example #18
0
    /// <summary>
    /// 受到伤害
    /// </summary>
    /// <param name="damages"></param>
    private void onDamage(DamageModel[] damages)
    {
        foreach (var item in damages)
        {
            //目标ID
            int toId = item.toId;
            //获取控制器
            BaseControl con = idControlDict[toId];
            //受伤
            con.Model.CurrHp -= item.damage;
            con.OnHpChange();
            //实例化出来一个掉血的数字
            HUDText.NewText("- " + item.damage, con.transform, Color.red, 16, 20f, -1f, 2.2f, bl_Guidance.Up);

            //如果受伤的是自身 就要更新UI的显示
            if (con == GameData.MyControl)
            {
                //更新视图显示
                view.UpdateView((HeroModel)con.Model);
                //如果死亡了 就灰白屏幕
                if (item.isDead)
                {
                    //代表死亡,死亡都是一样的
                    con.DeathResponse();
                    //}
                    //else if (toId <= -10 && toId >= -30)
                    //{
                    //    //建筑死了

                    //}
                    //else if (toId <= -1000)
                    //{
                    //    //小兵死了
                }
            }
            else //别人掉血
            {
                //如果死亡了 就灰白屏幕
                if (item.isDead)
                {
                    con.DeathResponse();
                }
            }
        }
    }
Example #19
0
 //受到攻击调用的方法、、
 //0.收到多少伤害、、
 //1.后退的距离
 //2.浮空的高度
 //3.出血特效
 public void TakeDamage(string args)
 {
     if (hp <= 0)
     {
         Dead();
     }
     else
     {
         string[] proArray = args.Split(',');
         int      damage   = int.Parse(proArray[0]);
         hp -= damage;
         hudText.NewText("- " + damage.ToString(), hpbarPoint.transform, Color.red, 30, 0.1f, -1f, 1f, bl_Guidance.LeftUp);
         hpBarSlider.value = (float)this.hp / hpTotal;
         anim.Play("takedamage");                       //受至攻击的动画
         float backDistance = float.Parse(proArray[1]); //后退距离
         float jumpDistance = float.Parse(proArray[2]); //浮空高度
         this.gameObject.transform.DOBlendableMoveBy(transform.InverseTransformDirection(TranscriptManager.Instance.player.transform.forward) * backDistance + Vector3.up * jumpDistance, 0.3f);
         GameObject.Instantiate(damageEffectPrefab, transBloodPoint.position, Quaternion.identity);
     }
 }
Example #20
0
    //技能协成
    IEnumerator SkillMov(Skill data)
    {
        IsAttack = true;
        //0.切换状态
        ani.SetBool("CanMove", false);
        agent.enabled = false;
        agent.enabled = true;
        // 通知 UISkill 开始冷却

        GameController.Instance.UISkillStartCd(data.Id);

        //1.播放对应的技能动画
        ani.SetTrigger(data.AniParam);

        //2.开启一个协程,配合攻击动画
        yield return(new WaitForSeconds(0.5f));

        //3.调用对应的PlayerSkill 开始技能执行
        playerSkillDic[data.Id].StartSkill();
        //3.1 添加 技能释放的文字提示
        HUDRoot.NewText(data.Name, base.transform, Color.blue, 20, 20f, -1f, 2.2f, bl_Guidance.Up);

        //4.当前动画播放完毕后,再重置状态
        yield return(new WaitForSeconds(0.4f));

        //获取动画层 0 指Base Layer
        //AnimatorStateInfo stateinfo = ani.GetCurrentAnimatorStateInfo(0);
        //while (stateinfo.normalizedTime < 0.99f)
        //{
        //    Debug.Log(stateinfo.normalizedTime);
        //    yield return null;
        //}

        //5. 重置
        currentSkill = null;
        state        = PlayerState.Idle;//释放技能完毕,将状态切换为静止
        IsAttack     = false;
    }
Example #21
0
    //受到攻击调用的方法、、
    //0.收到多少伤害、、
    //1.后退的距离
    //2.浮空的高度
    //3.出血特效
    public void TakeDamage(string args)
    {
        if (hp < 0)
        {
            transform.Translate(-transform.up * downSpeed);
            return;
        }
        isAttacking = false;
        string[] proArray = args.Split(',');
        int      damage   = int.Parse(proArray[0]);

        hp -= damage;
        //更新Boss的血条
        BossHpBar.Instance.UpdateShow(hp);
        hudText.NewText("- " + damage.ToString(), hpbarPoint.transform, Color.red, 30, 0.1f, -1f, 1f, bl_Guidance.LeftUp);
        //hpBarSlider.value = (float)this.hp / 200;

        if (Random.Range(0, 10) == 9)
        {
            anim.SetTrigger("takedamage");
            //animation.Play("takedamage"); //受至攻击的动画
        }
        float backDistance = float.Parse(proArray[1]); //后退距离
        float jumpDistance = float.Parse(proArray[2]); //浮空高度

        this.gameObject.transform.DOBlendableMoveBy(
            transform.InverseTransformDirection(TranscriptManager.Instance.player.transform.forward) * backDistance +
            Vector3.up * jumpDistance, 0.3f);
        //出血效果
        GameObject.Instantiate(damageEffectPrefab, transBloodPoint.position, Quaternion.identity);
        //renderer.material.color = Color.red;
        if (hp <= 0)
        {
            Dead();
        }
    }
Example #22
0
    // Use this for initialization
//	void Start () {
//
//	}
//
//	// Update is called once per frame
//	void Update () {
//
//	}

    public void HPText()
    {
        HUDRoot.NewText("- " + Random.Range(50, 100).ToString(), base.transform, Color.red, 8, 20f, -1f, 2.2f, bl_Guidance.Up);
    }
Example #23
0
 public void FloatDamage(int damage, Transform trans)
 {
     HUDText.NewText("- " + damage, trans, Color.red, 28, 20f, -1f, 2.2f, bl_Guidance.Up);
 }
Example #24
0
        /// <summary>
        ///
        /// </summary>
        private void OnMouseDown()
        {
            switch (m_Type)
            {
            case ExampleType.Friend:
                HUDTextInfo info = new HUDTextInfo(transform, string.Format("+{0}", Random.Range(5, 20).ToString()));
                info.Size  = Random.Range(10, 15);
                info.Color = Color.green;
                info.VerticalPositionOffset = 3;
                HUDRoot.NewText(info);
                break;

            case ExampleType.Enemy:
                //Build the information
                HUDTextInfo info2 = new HUDTextInfo(transform, "- " + Random.Range(50, 100));
                info2.Color = Color.red;
                info2.Size  = Random.Range(6, 15);
                info2.Speed = Random.Range(10, 20);
                info2.VerticalAceleration    = -1;
                info2.VerticalFactorScale    = Random.Range(1.2f, 3);
                info2.VerticalPositionOffset = 3;
                info2.Side = (Random.Range(0, 2) == 1) ? bl_Guidance.RightDown : bl_Guidance.LeftDown;
                //Send the information
                HUDRoot.NewText(info2);
                break;

            case ExampleType.Neutral:
                //Build the information
                string      t     = Text[Random.Range(0, Text.Length)];
                HUDTextInfo info3 = new HUDTextInfo(transform, t);
                info3.Color = Color.white;
                info3.Size  = Random.Range(10, 13);
                info3.Speed = Random.Range(10, 20);
                info3.VerticalAceleration = 1;
                info3.VerticalFactorScale = Random.Range(1.2f, 3);
                info3.Side = bl_Guidance.Up;
                info3.VerticalPositionOffset = 3;
                info3.AnimationSpeed         = 0.5f;
                info3.ExtraDelayTime         = 2;
                info3.FadeSpeed = 400;
                //Send the information
                HUDRoot.NewText(info3);
                break;

            case ExampleType.Info:
                //Build the information
                HUDTextInfo info4 = new HUDTextInfo(transform, InfoText[Random.Range(0, InfoText.Length)]);
                info4.Color = Color.white;
                info4.Size  = Random.Range(5, 12);
                info4.Speed = Random.Range(10, 20);
                info4.VerticalAceleration    = 1;
                info4.VerticalPositionOffset = 5;
                info4.VerticalFactorScale    = Random.Range(1.2f, 3);
                info4.Side           = bl_Guidance.Right;
                info4.TextPrefab     = TextPrefab;
                info4.FadeSpeed      = 500;
                info4.ExtraDelayTime = 5;
                info4.AnimationType  = bl_HUDText.TextAnimationType.HorizontalSmall;
                //Send the information
                HUDRoot.NewText(info4);
                break;

            case ExampleType.NeutralText:
                //Build the information
                HUDTextInfo info5 = new HUDTextInfo(transform, string.Format("Text: {0}", Random.Range(2, 20).ToString()));
                info5.Color = Color.white;
                info5.Size  = Random.Range(10, 15);
                info5.Speed = Random.Range(5, 14);
                info5.VerticalAceleration    = 0.5f;
                info5.VerticalPositionOffset = 3.5f;
                info5.VerticalFactorScale    = Random.Range(1.2f, 3);
                info5.Side           = bl_Guidance.Up;
                info5.ExtraDelayTime = 0.5f;
                info5.AnimationType  = bl_HUDText.TextAnimationType.HorizontalSmall;
                //Send the information
                HUDRoot.NewText(info5);
                break;

            case ExampleType.Points:
                //Build the information
                HUDTextInfo info6 = new HUDTextInfo(transform, string.Format("Points: {0}", Random.Range(2, 20).ToString()));
                info6.Color = Color.white;
                info6.Size  = 4;
                info6.Speed = Random.Range(0.2f, 1);
                info6.VerticalAceleration    = 0.2f;
                info6.VerticalPositionOffset = -4f;
                info6.VerticalFactorScale    = Random.Range(1.2f, 20);
                info6.Side           = bl_Guidance.Down;
                info6.ExtraDelayTime = 0.1f;
                info6.AnimationType  = bl_HUDText.TextAnimationType.SmallToNormal;
                info6.FadeSpeed      = 300;
                //Send the information
                HUDRoot.NewText(info6);
                break;

            case ExampleType.Random:
                //Build the information
                string      sub   = (Random.Range(0, 2) == 1) ? "-" : "+";
                HUDTextInfo info7 = new HUDTextInfo(transform, string.Format("{1}{0}", Random.Range(2, 20).ToString(), sub));
                info7.Color = (Random.Range(0, 2) == 1) ? Color.red : Color.green;
                info7.Size  = Random.Range(1, 12);
                info7.Speed = Random.Range(0.2f, 1);
                info7.VerticalAceleration    = Random.Range(-2, 2f);
                info7.VerticalPositionOffset = 2f;
                info7.VerticalFactorScale    = Random.Range(1.2f, 10);
                info7.Side            = (Random.Range(0, 2) == 1) ? bl_Guidance.LeftDown : bl_Guidance.RightDown;
                info7.ExtraDelayTime  = -1;
                info7.AnimationType   = bl_HUDText.TextAnimationType.PingPong;
                info7.FadeSpeed       = 200;
                info7.ExtraFloatSpeed = -11;
                //Send the information
                HUDRoot.NewText(info7);
                break;

            default:
                Debug.Log("Unknow type");
                break;
            }


            if (m_Particle != null)
            {
                GameObject g = (GameObject)Instantiate(m_Particle, (this.transform.position + Vector3.up), this.transform.rotation);
                Destroy(g, 1.5f);
            }
        }