Esempio n. 1
0
    public void StartAction(Vector3 postion,
                            int tableId,
                            string value,
                            BoardShowType showType = BoardShowType.Fight,
                            bool ignorePostion     = false,
                            float delay            = 0,
                            bool directivityPos    = false)
    {
        IsInPool = false;

        if (Label)
        {
            Label.enabled = true;
        }
        enabled = true;

        if (delay <= 0)
        {
            Action(postion, tableId, value, showType, ignorePostion, directivityPos);
        }
        else
        {
            StartCoroutine(DelayAction(postion, tableId, value, showType, ignorePostion, delay, directivityPos));
        }
    }
Esempio n. 2
0
    public IEnumerator DelayAction(Vector3 postion,
                                   int tableId,
                                   string value,
                                   BoardShowType showType = BoardShowType.Fight,
                                   bool ignorePostion     = false,
                                   float delay            = 0,
                                   bool directivityPos    = false)
    {
        Label.text = "";
        yield return(new WaitForSeconds(delay));

        Action(postion, tableId, value, showType, ignorePostion, directivityPos);
    }
Esempio n. 3
0
    public void Action(Vector3 position,
                       int tableId,
                       string value,
                       BoardShowType showType = BoardShowType.Fight,
                       bool ignorePostion     = false,
                       bool directivityPos    = false)
    {
        mFlag    = true;
        Record   = Table.GetCombatText(tableId);
        StayTime = Record.StopTime1;

        if (Record.IsShowShade == 1)
        {
            if (string.IsNullOrEmpty(value))
            {
                if (BackGround.isActiveAndEnabled)
                {
                    BackGround.enabled = false;
                }
            }
            else
            {
                if (!BackGround.isActiveAndEnabled)
                {
                    BackGround.transform.gameObject.SetActive(true);
                    BackGround.enabled = true;
                }
            }
        }
        else
        {
            if (BackGround.isActiveAndEnabled)
            {
                BackGround.enabled = false;
            }
        }

        var font = Label.bitmapFont;

        if (!font.ToString().Contains(Record.FontPath))
        {
            var fontRes = ResourceManager.PrepareResourceSync <UIFont>("UI/Font/" + Record.FontPath + ".prefab");
            Label.bitmapFont = fontRes;
        }


        if (Record.FontType == 0)
        {
//Dynamic
            Label.applyGradient = true;
            Label.color         = Color.white;
            if (Record.Color1 != -1)
            {
                Label.gradientTop = GameUtils.GetTableColor(Record.Color1);
            }
            else
            {
                Label.gradientTop = Color.white;
            }
            if (Record.Color2 != -1)
            {
                Label.gradientBottom = GameUtils.GetTableColor(Record.Color2);
            }
            else
            {
                Label.gradientBottom = Color.white;
            }
        }
        else
        {
//
            Label.applyGradient   = false;
            Label.supportEncoding = true;
            Label.symbolStyle     = NGUIText.SymbolStyle.Colored;
            if (Record.Color1 != -1)
            {
                Label.color = GameUtils.GetTableColor(Record.Color1);
            }
            else
            {
                Label.color = Color.white;
            }
        }

        if (Record.Shadow != -1)
        {
            Label.effectStyle = UILabel.Effect.Shadow;
            Label.effectColor = GameUtils.GetTableColor(Record.Shadow);
        }
        else
        {
            Label.effectStyle = UILabel.Effect.None;
        }

        if (!string.IsNullOrEmpty(Record.FontAdd))
        {
            value = Record.FontAdd + value;
        }
        Label.text = value;

        BoardAction.WorldPos = position;
        BoardAction.ShowType = showType;
        var offsetX = Random.Range(Record.StartX, Record.StartY);
        var offsetY = Random.Range(Record.MinY, Record.MaxY);
        var radio   = GameUtils.GetResolutionRadio();

        if (showType == BoardShowType.Fight)
        {
            if (DamageBoardManager.Instance == null || DamageBoardManager.Instance.UiCamera == null)
            {
                BoardAction.ActionStage = DamageBoardActionStage.Stage3;
                if (DamageBoardManager.Instance == null)
                {
                    Logger.Error("DamageBoardManager.Instace == null");
                }

                if (DamageBoardManager.Instance != null && DamageBoardManager.Instance.UiCamera == null)
                {
                    Logger.Error("DamageBoardManager.Instace.UiCamera == null");
                }
                return;
            }


            if (ignorePostion)
            {
                LabelTransform.localPosition = new Vector3(offsetX, offsetY, 0);
            }
            else
            {
                var pt = GameLogic.Instance.MainCamera.WorldToScreenPoint(BoardAction.WorldPos);
                pt /= radio;
                var ff = DamageBoardManager.Instance.UiCamera.camera.ScreenToWorldPoint(pt);
                ff.z = 0;
                LabelTransform.position = ff;
                BoardAction.ChangePos   = new Vector3(offsetX, offsetY, 0);
                var locPos = LabelTransform.localPosition;
                var posX   = locPos.x + offsetX;
                var posY   = locPos.y + offsetY;
                LabelTransform.localPosition = new Vector3(posX, posY, 0);
            }
        }
        else
        {
            LabelTransform.localPosition = new Vector3(offsetX, offsetY, 0);
        }

        LabelTransform.localScale = Vector3.one;
        Label.gameObject.SetActive(true);
        Label.alpha    = 1.0f;
        Label.fontSize = Record.FontSize1;

        BoardAction.ActionStage = DamageBoardActionStage.Stage1;
        BoardAction.Duration    = 0.0f;
        BoardAction.ScaleChg    = Record.EndFontSize1 / 1000.0f;
        BoardAction.AlphaChg    = 0.0f;

        isDirectivityPos = directivityPos;
        if (isDirectivityPos)
        {
            var targetPos = GameLogic.Instance.MainCamera.WorldToScreenPoint(position).xy();
            targetPos /= radio;
            var vec2Normal = (targetPos - DamageBoardManager.MyPlayerCenterPos).normalized;
            BoardAction.Speed      = vec2Normal * Record.SpeedX1;
            BoardAction.Accelerate = vec2Normal * Record.AddSpeedX1;
        }
        else
        {
            BoardAction.Speed      = new Vector2(Record.SpeedX1, Record.SpeedY1);
            BoardAction.Accelerate = new Vector2(Record.AddSpeedX1, Record.SpeedY1);
        }

        BoardAction.MaxTime       = Record.MoveTime1 / 1000.0f;
        BoardAction.ignorePostion = ignorePostion;
    }