示例#1
0
    public eDecision GetDecision(SHUIWidget_Stick pStick, SHUIWidget_Monster pMonster)
    {
        if ((null == pStick) || (null == pMonster))
        {
            return(eDecision.Miss);
        }

        var fGap = Mathf.Abs(pMonster.GetLocalPosition().x - pStick.GetLocalPosition().x);
        var fSep = 50.0f;//pMonster.GetCollider().bounds.size.x / 3.0f;

        if (fGap <= (fSep * 0.5f))
        {
            return(eDecision.Good);
        }
        if (fGap <= (fSep * 1.5f))
        {
            return(eDecision.Normal);
        }
        if (fGap <= (fSep * 3.0f))
        {
            return(eDecision.Bad);
        }

        return(eDecision.Miss);
    }
    void ReturnStickObject(SHUIWidget_Stick pStick)
    {
        if (null == pStick)
        {
            return;
        }

        Single.ObjectPool.Return(pStick.GetGameObject());
    }
示例#3
0
    void ClearStick()
    {
        if (null == m_pStick)
        {
            return;
        }

        Single.ObjectPool.Return(m_pStick.gameObject);
        m_pStick = null;
    }
示例#4
0
    public float GetRatioToGap(SHUIWidget_Stick pStick, SHUIWidget_Monster pMonster)
    {
        if ((null == pStick) || (null == pMonster))
        {
            return(0.0f);
        }

        var fRatio = Mathf.Abs(pMonster.GetLocalPosition().x - pStick.GetLocalPosition().x) / 150.0f;        //pMonster.GetCollider().bounds.size.x;

        return(Mathf.Clamp(fRatio, 0.0f, 1.0f));
    }
示例#5
0
 public void SetCrash(SHUIWidget_Stick pStick)
 {
     if (0 == (--m_pInfo.m_iHP))
     {
         ChangeState(eState.Die, pStick);
     }
     else
     {
         ChangeState(eState.Crash);
     }
 }
    void SetStickSlot(eStickType eType, SHUIWidget_Stick pStick, SHUIWidget_ItemSlot pSlot)
    {
        if ((null == pStick) || (null == pSlot))
        {
            return;
        }

        SHGameObject.SetParent(pStick.GetGameObject(), pSlot.GetGameObject());
        pStick.Initialize(eType);
        pStick.SetLocalPosition(Vector3.zero);
        pStick.SetLocalScale(Vector3.one);
        pStick.SetActive(true);
    }
示例#7
0
    public void OnEventToTouch(Action pEventToPass)
    {
        if (null == m_pStick)
        {
            return;
        }

        m_pStick.SetActive(false);
        m_pStick.SetActive(true);
        m_pStick.Shoot(pEventToPass);
        SHCoroutine.Instance.WaitTime(() => CreateStick(), m_pStick.m_fReCreateTime);
        m_pStick = null;
    }
    public void Initialize(eStickType eType1, eStickType eType2)
    {
        ReturnStickObject(m_pLeftStick);
        ReturnStickObject(m_pRightStick);
        SetStickSlot(
            (m_eLeftType = eType1),
            (m_pLeftStick = CreateStickSlot(eType1)),
            m_pLeftSlot);
        SetStickSlot(
            (m_eRightType = eType2),
            (m_pRightStick = CreateStickSlot(eType2)),
            m_pRightSlot);

        SetSelector();
    }
示例#9
0
    private SHUIWidget_Stick CreateStick()
    {
        m_pStick = Single.ObjectPool.Get <SHUIWidget_Stick>(
            SHHard.GetStickName(GetStickType()));
        if (null == m_pStick)
        {
            return(null);
        }

        SHGameObject.SetParent(m_pStick.transform, Single.UI.GetRootToScene());
        Single.ObjectPool.SetStartTransform(m_pStick.gameObject);
        m_pStick.SetActive(true);
        m_pStick.Initialize(GetStickType());

        return(m_pStick);
    }
示例#10
0
    public eDirection GetDirection(SHUIWidget_Stick pStick, SHUIWidget_Monster pMonster)
    {
        if ((null != pStick) && (null != pMonster))
        {
            if (pMonster.GetLocalPosition().x < pStick.GetLocalPosition().x)
            {
                return(eDirection.Left);
            }

            if (pMonster.GetLocalPosition().x > pStick.GetLocalPosition().x)
            {
                return(eDirection.Right);
            }
        }

        return(SHMath.RandomN(new List <eDirection>()
        {
            eDirection.Left,
            eDirection.Right,
        }));
    }
示例#11
0
    public void OnClickToSlot(SHUIWidget_Stick pStick)
    {
        if (null == pStick)
        {
            return;
        }

        var eUseType = Single.Inventory.GetStickGoodsStateToPlayerPrefs(pStick.m_eType);

        switch (eUseType)
        {
        case eGoodsState.NotHas:
            if (Single.Inventory.m_iCoin < pStick.GetPrice())
            {
                Single.UI.ShowNotice(Localization.Get("POPUP_TITLE_NOTICE"),
                                     Localization.Format("STORE_COIN_SHORTAGE", (pStick.GetPrice() - Single.Inventory.m_iCoin)));
            }
            else
            {
                Single.UI.ShowNotice_TwoBtn("알림",
                                            string.Format("{0} 코인을 소모합니다.\n구매 하시겠습니까?", pStick.GetPrice()),
                                            () =>
                {
                    Single.Inventory.ConsumeCoin(pStick.GetPrice());
                    Single.Inventory.SetStickTypeToPlayerPrefs(pStick.m_eType, eGoodsState.Enable);
                }, null);
            }
            break;

        case eGoodsState.Disable:
            Single.Inventory.SetStickTypeToPlayerPrefs(pStick.m_eType, eGoodsState.Enable);
            break;

        case eGoodsState.Enable:
            Single.Inventory.SetStickTypeToPlayerPrefs(pStick.m_eType, eGoodsState.Disable);
            break;
        }
        RefleshSlotForSelect();
    }