public virtual FlyTextEntity Add(string strText, int targetHeroId)
    {
        Debug.Log("AddFlyText" + strText);
        FlyTextEntity flyTextEntity = null;

        if (this.m_flyTextList.Last != null && !this.m_flyTextList.Last.Value.Active)
        {
            flyTextEntity = this.m_flyTextList.Last.Value;
            this.m_flyTextList.RemoveLast();
            flyTextEntity.Active = true;
        }
        else
        {
            XUIListItem item = this.m_uiList.AddListItem();
            if (item != null)
            {
                flyTextEntity = new FlyTextEntity(item, targetHeroId);
            }
            else
            {
                XLog.Log.Error("Item == null");
            }
        }
        this.InitFlyText(flyTextEntity, strText, targetHeroId);
        this.m_flyTextList.AddFirst(flyTextEntity);
        return(flyTextEntity);
    }
示例#2
0
    /// <summary>
    /// 浮动文字移动更新
    /// </summary>
    public virtual void Update()
    {
        float time = Time.time;
        LinkedListNode <FlyTextEntity> next;

        for (LinkedListNode <FlyTextEntity> linkedListNode = this.m_flyTextList.First; linkedListNode != null; linkedListNode = next)
        {
            next = linkedListNode.Next;
            if (!linkedListNode.Value.Active)
            {
                break;
            }
            FlyTextEntity value = linkedListNode.Value;
            float         num   = time - value.TimeStart;
            if (num < this.m_fTotalTime)
            {
                this.Translate(ref value, num);
            }
            else
            {
                linkedListNode.Value.FlyTextItem.SetVisible("Effect_GetEquip", false);
                if (this.m_flyTextList.Count <= 5)
                {
                    value.Active = false;
                    this.m_flyTextList.Remove(linkedListNode);
                    this.m_flyTextList.AddLast(value);
                }
                else
                {
                    this.m_uiList.DelItemByIndex(value.FlyTextItem.Index);
                    this.m_flyTextList.Remove(linkedListNode);
                }
            }
        }
    }
示例#3
0
    public void AddHpEffect(int hpCahnge, int heroId, EHpEffectType type)
    {
        if (hpCahnge != 0)
        {
            if (this.m_dicFlyTextManagers.ContainsKey(EFlyTextType.eFlyTextType_Hp))
            {
                string hpString = hpCahnge.ToString();
                if (hpCahnge > 0)
                {
                    hpString = string.Format("+{0}", hpString);
                }
                FlyTextEntity flyTextEntity = this.m_dicFlyTextManagers[EFlyTextType.eFlyTextType_Hp].Add(hpString, heroId);
                if (flyTextEntity != null)
                {
                    switch (type)
                    {
                    case EHpEffectType.eHpEffectType_Damage:
                        flyTextEntity.FlyTextItem.SetVisible("lb_hpGreen", false);    //治疗效果的血量
                        flyTextEntity.FlyTextItem.SetVisible("lb_hpRed", true);
                        flyTextEntity.FlyTextItem.SetText("lb_hpRed", hpString);
                        break;

                    case EHpEffectType.eHpEffectType_Heal:
                        flyTextEntity.FlyTextItem.SetVisible("lb_hpGreen", true);
                        flyTextEntity.FlyTextItem.SetVisible("lb_hpRed", false);
                        flyTextEntity.FlyTextItem.SetText("lb_hpGreen", hpString);
                        break;
                    }
                }
            }
        }
    }
示例#4
0
 public void AddDoubleSystemInfo(string str, Action sure, Action cancel)
 {
     if (this.m_dicFlyTextManagers.ContainsKey(EFlyTextType.eFlyTextType_SystemInfo))
     {
         FlyTextEntity flyTextEntity = this.m_dicFlyTextManagers[EFlyTextType.eFlyTextType_SystemInfo].Add(str, 0);
         if (flyTextEntity != null)
         {
             flyTextEntity.FlyTextItem.transform.Find("DoubleSureButton").gameObject.SetActive(true);
             flyTextEntity.FlyTextItem.transform.Find("DoubleCancelButton").gameObject.SetActive(true);
             flyTextEntity.FlyTextItem.transform.Find("SingleSureButton").gameObject.SetActive(false);
             Button doubleSureButton = flyTextEntity.FlyTextItem.GetButton("DoubleSureButton");
             doubleSureButton.onClick.RemoveAllListeners();
             doubleSureButton.onClick.AddListener(() =>
             {
                 flyTextEntity.Active = false;
                 if (sure != null)
                 {
                     sure();
                 }
             });
             Button doubleCancelButton = flyTextEntity.FlyTextItem.GetButton("DoubleCancelButton");
             doubleCancelButton.onClick.RemoveAllListeners();
             doubleCancelButton.onClick.AddListener(() =>
             {
                 flyTextEntity.Active = false;
                 if (cancel != null)
                 {
                     cancel();
                 }
             });
             flyTextEntity.FlyTextItem.transform.Find("SingleSureButton").gameObject.SetActive(false);
         }
     }
 }
示例#5
0
 protected override void InitFlyText(FlyTextEntity flyText, string strText, int targetBeast)
 {
     base.InitFlyText(flyText, strText, targetBeast);
     flyText.Label.text = strText;
     flyText.FlyTextItem.gameObject.SetActive(false);
     flyText.FlyTextItem.gameObject.SetActive(true);
     time = flyText.FlyTextItem.GetLabel("lb_leftTime");
 }
示例#6
0
 protected override void Translate(ref FlyTextEntity flyText, float fElapseTime)
 {
     if (time != null)
     {
         int    time1 = (int)(this.m_fTotalTime - fElapseTime);
         string time2 = string.Format("({0})", time1);
         time.text = time2.ToString();
     }
 }
示例#7
0
    /// <summary>
    /// 添加扣血漂浮界面
    /// </summary>
    /// <param name="nHpChange"></param>
    /// <param name="unTargetHeroId"></param>
    /// <param name="eHpEffectType"></param>
    public void AddHpEffect(int nHpChange, long unTargetBeastId, EnumHpEffectType eHpEffectType)
    {
        if (base.Prepared)
        {
            if (nHpChange != 0)
            {
                if (this.m_dicFlyTextManagers.ContainsKey(enumFlyTextType.eFlyTextType_Hp))
                {
                    string hpChange = nHpChange.ToString();
                    if (nHpChange > 0)
                    {
                        hpChange = string.Format("+{0}", nHpChange);
                    }
                    FlyTextEntity flyTextEntity = this.m_dicFlyTextManagers[enumFlyTextType.eFlyTextType_Hp].Add(hpChange, unTargetBeastId, this.PosZ);
                    if (flyTextEntity != null)
                    {
                        string animation = "Demage2";
                        switch (eHpEffectType)
                        {
                        case EnumHpEffectType.eHpEffectType_Damage:
                            animation = "Demage2";
                            flyTextEntity.FlyTextItem.SetVisible("Label_FlyTextGreen", false);    //治疗效果的血量
                            flyTextEntity.FlyTextItem.SetVisible("Label_FlyTextRed_Offset", true);
                            flyTextEntity.FlyTextItem.SetVisible("Label_Hit_Offset", false);
                            flyTextEntity.FlyTextItem.SetVisible("Label_Crit_Offset", false);
                            flyTextEntity.FlyTextItem.SetText("Label_FlyTextRed", hpChange);
                            break;

                        case EnumHpEffectType.eHpEffectType_Crit:
                            animation = "Demage_Crit2";
                            flyTextEntity.FlyTextItem.SetVisible("Label_FlyTextGreen", false);
                            flyTextEntity.FlyTextItem.SetVisible("Label_FlyTextRed_Offset", false);
                            flyTextEntity.FlyTextItem.SetVisible("Label_Hit_Offset", false);
                            flyTextEntity.FlyTextItem.SetVisible("Label_Crit_Offset", true);
                            flyTextEntity.FlyTextItem.SetText("Label_Crit", hpChange);
                            break;

                        case EnumHpEffectType.eHpEffectType_Heal:
                            animation = "Demage";
                            flyTextEntity.FlyTextItem.SetVisible("Label_FlyTextGreen", true);
                            flyTextEntity.FlyTextItem.SetVisible("Label_FlyTextRed_Offset", false);
                            flyTextEntity.FlyTextItem.SetVisible("Label_Hit_Offset", false);
                            flyTextEntity.FlyTextItem.SetVisible("Label_Crit_Offset", false);
                            flyTextEntity.FlyTextItem.SetText("Label_FlyTextGreen", hpChange);
                            break;
                        }
                        Animation animation2 = flyTextEntity.FlyTextItem.CachedGameObject.animation;
                        if (animation2 != null)
                        {
                            animation2.Stop();
                            animation2.Play(animation, PlayMode.StopAll);
                        }
                    }
                }
            }
        }
    }
    protected override void InitFlyText(FlyTextEntity flyText, string strText, long targetBeast)
    {
        base.InitFlyText(flyText, strText, targetBeast);
        flyText.Label.SetText(strText);
        flyText.FlyTextItem.CachedGameObject.SetActive(false);
        flyText.FlyTextItem.CachedGameObject.SetActive(true);
        Animation anim = flyText.FlyTextItem.CachedGameObject.GetComponent <Animation>();

        if (anim != null)
        {
            anim.Stop();
            anim.Play();
        }
    }
示例#9
0
    /// <summary>
    /// 初始化浮动文字
    /// </summary>
    /// <param name="flyText"></param>
    /// <param name="strText"></param>
    /// <param name="targetBeast"></param>
    protected virtual void InitFlyText(FlyTextEntity flyText, string strText, long targetBeast)
    {
        Beast beast = Singleton <BeastManager> .singleton.GetBeastById(targetBeast);

        flyText.Label.SetText(strText);
        flyText.TimeStart = Time.time;
        flyText.Target    = beast;
        if (beast != null)
        {
            Vector3 realPos = beast.RealPos3D;
            realPos.y       += 2.5f;
            flyText.PosStart = realPos;
        }
    }
    protected override void Translate(ref FlyTextEntity flyText, float fElapseTime)
    {
        base.Translate(ref flyText, fElapseTime);
        Vector3 movingPos = flyText.Target.MovingPos;

        movingPos.y += flyText.Target.Height + 1f;
        Vector3 position = Camera.main.WorldToScreenPoint(movingPos);
        Vector3 vector   = UIManager.singleton.UICamera.ScreenToWorldPoint(position);
        Vector3 zero     = Vector3.zero;

        zero.x = Mathf.Lerp(flyText.Transform.position.x, vector.x, 1f);
        zero.y = Mathf.Lerp(flyText.Transform.position.y, vector.y, 1f);
        flyText.Transform.position = zero;
        Vector3 localPosition = flyText.Transform.localPosition;

        flyText.Transform.localPosition = new Vector3(localPosition.x, localPosition.y, flyText.PosZ);
    }
    /// <summary>
    /// 浮动文字移动更新
    /// </summary>
    public virtual void Update()
    {
        float time = Time.time;
        LinkedListNode <FlyTextEntity> next;

        for (LinkedListNode <FlyTextEntity> linkedListNode = this.m_flyTextList.First; linkedListNode != null; linkedListNode = next)
        {
            next = linkedListNode.Next;
            //如果是外面手动关闭的话
            if (!linkedListNode.Value.Active)
            {
                //FlyTextEntity value1 = linkedListNode.Value;
                //this.m_flyTextList.Remove(linkedListNode);
                //this.m_flyTextList.AddLast(value1);
                break;
            }
            //如果是无限时间的话
            if (this.m_fTotalTime == -1)
            {
                continue;
            }
            FlyTextEntity value = linkedListNode.Value;
            float         num   = time - value.TimeStart;
            if (num < this.m_fTotalTime)
            {
                this.Translate(ref value, num);
            }
            else
            {
                if (this.m_flyTextList.Count <= 5)
                {
                    value.Active = false;
                    this.m_flyTextList.Remove(linkedListNode);
                    this.m_flyTextList.AddLast(value);
                }
                else
                {
                    this.m_uiList.DelItemByIndex(value.FlyTextItem.Index);
                    this.m_flyTextList.Remove(linkedListNode);
                }
            }
        }
    }
    protected override void InitFlyText(FlyTextEntity flyText, string strText, long targetBeast)
    {
        if (Camera.main != null)
        {
            base.InitFlyText(flyText, strText, targetBeast);
            Beast heroById = Singleton <BeastManager> .singleton.GetBeastById(targetBeast);

            if (null != heroById)
            {
                Vector3 movingPos = heroById.MovingPos;
                movingPos.y += heroById.Height + 1f;
                Vector3 position  = Camera.main.WorldToScreenPoint(movingPos);
                Vector3 position2 = UIManager.singleton.UICamera.ScreenToWorldPoint(position);
                flyText.Transform.position = position2;
                Vector3 localPosition = flyText.Transform.localPosition;
                flyText.Transform.localPosition = new Vector3(localPosition.x, localPosition.y, flyText.PosZ);
            }
        }
    }
    public override FlyTextEntity Add(string strText, long targetBeastId, float PosZ)
    {
        FlyTextEntity flyTextEntity = null;

        if (this.m_flyTextList.First != null)
        {
            flyTextEntity        = this.m_flyTextList.First.Value;
            flyTextEntity.Active = true;
        }
        else
        {
            IXUIListItem item = this.m_uiList.AddListItem();
            if (item != null)
            {
                flyTextEntity = new FlyTextEntity(item, targetBeastId);
                this.m_flyTextList.AddFirst(flyTextEntity);
            }
        }
        this.InitFlyText(flyTextEntity, strText, targetBeastId);
        return(flyTextEntity);
    }
    /// <summary>
    /// 初始化浮动文字
    /// </summary>
    /// <param name="flyText"></param>
    /// <param name="strText"></param>
    /// <param name="targetHeroId"></param>
    protected virtual void InitFlyText(FlyTextEntity flyText, string strText, int targetHeroId)
    {
        EntityParent hero = null;

        if (targetHeroId > 0)
        {
            hero = PlayerManager.singleton.GetEntity(targetHeroId);
        }
        if (flyText.Label != null)
        {
            flyText.Label.text = strText;
        }
        flyText.TimeStart = Time.time;
        flyText.Target    = hero;
        if (hero != null)
        {
            Vector3 realPos = hero.Transform.position;
            realPos.y       += 2.5f;
            flyText.PosStart = realPos;
        }
    }
 protected override void Translate(ref FlyTextEntity flyText, float fElapseTime)
 {
 }
 protected virtual void Translate(ref FlyTextEntity flyText, float fElapseTime)
 {
 }