Пример #1
0
    //修改血管值
    private void ChangeCoreSliderNums(int index)
    {
        //关闭修改HP最大值监听
        CanChangeBloodHPMax = false;

        //每次换核心才需调用当前主滑块位置百分比
        m_CurrentMainSliderPosPercent = (m_CurrentMaxHP - m_CurrentCoreToBlood.HPLowerNums) / (float)(m_CurrentCoreToBlood.HPUpperNums - m_CurrentCoreToBlood.HPLowerNums);

        //修改血管样式
        m_HPMPPos.sprite = m_AllHPMPStyle[index];
        //修改核心对应血条上下限
        m_CurrentCoreToBlood = m_AllCoreToBlood[index];

        //当前HPMP最大值
        print((m_CurrentCoreToBlood.HPUpperNums - m_CurrentCoreToBlood.HPLowerNums));
        m_CurrentMaxHP = m_CurrentCoreToBlood.HPLowerNums + (int)((m_CurrentCoreToBlood.HPUpperNums - m_CurrentCoreToBlood.HPLowerNums) * m_CurrentMainSliderPosPercent);
        m_CurrentMaxMP = m_CurrentCoreToBlood.AllBloodNums - m_CurrentMaxHP;
        //当前HPMP占总值百分比
        //m_CurrentHPPercent = m_CurrentHP / (m_CurrentMaxHP * 1.0f);
        //m_CurrentMPPercent = m_CurrentMP / (m_CurrentMaxMP * 1.0f);
        //当前HPMP值
        m_CurrentHP = (int)(m_CurrentHPPercent * m_CurrentMaxHP);
        m_CurrentMP = (int)(m_CurrentMPPercent * m_CurrentMaxMP);
        //滑块初始化
        //主滑块位置比例(HP下限 / HP最大值)
        m_CurrentMainSliderPosPercent = (m_CurrentMaxHP - m_CurrentCoreToBlood.HPLowerNums) / (float)(m_CurrentCoreToBlood.HPUpperNums - m_CurrentCoreToBlood.HPLowerNums);

        MainSlider_MP.maxValue = MainSlider_HP.maxValue = m_CurrentCoreToBlood.AllBloodNums;
        MainSlider_MP.minValue = MainSlider_HP.minValue = 0;
        MainSlider_MP.value    = m_CurrentMaxMP;
        MainSlider_HP.value    = m_CurrentMaxHP;

        HpSilder.maxValue = MainSlider_HP.value;
        MpSilder.maxValue = MainSlider_MP.value;
        HpSilder.minValue = MpSilder.minValue = 0;
        HpSilder.value    = m_CurrentHP;
        MpSilder.value    = m_CurrentMP;

        //HPMP最大值显示
        HPMaxText.text = m_CurrentMaxHP.ToString();
        MPMaxText.text = m_CurrentMaxMP.ToString();
        //开启修改HP最大值监听
        CanChangeBloodHPMax = true;
    }
Пример #2
0
    /// <summary>
    /// 每次打开UI界面获取信息
    /// </summary>
    public void GetInfo()
    {
        #region 获取所有信息
        //核心
        foreach (BaseCore BC in BaseCore.CoreList)
        {
            switch (BC.Element)
            {
            case BaseCore.CoreElement.Primary:
                m_AllCoreType.Add(CoreAttribute.Initial);
                break;

            case BaseCore.CoreElement.Fire:
                m_AllCoreType.Add(CoreAttribute.Fire);
                break;

            case BaseCore.CoreElement.Amethyst:
                m_AllCoreType.Add(CoreAttribute.Amethyst);
                break;

            case BaseCore.CoreElement.Ice:
                m_AllCoreType.Add(CoreAttribute.Frozen);
                break;
            }
        }
        switch (PlayerControl._mPlayerRobot.Core.Element)
        {
        case BaseCore.CoreElement.Primary:
            m_CurrentCoreType = CoreAttribute.Initial;
            break;

        case BaseCore.CoreElement.Fire:
            m_CurrentCoreType = CoreAttribute.Fire;
            break;

        case BaseCore.CoreElement.Amethyst:
            m_CurrentCoreType = CoreAttribute.Amethyst;
            break;

        case BaseCore.CoreElement.Ice:
            m_CurrentCoreType = CoreAttribute.Frozen;
            break;
        }
        //m_AllCoreType当前拥有核心种类
        //m_CurrentCoreType当前核心种类
        //武器
        WeaponManager.Instance.GetAllGunTypeAndCurrentGunType(out m_AllGunType, out m_CurrentGunType);
        //m_AllGunType当前拥有的武器种类
        //m_CurrentGunType当前装配上的武器种类
        //HPMP
        PlayerControl.GetCurrentAndMaxHp(out m_CurrentHP, out m_CurrentMaxHP);
        PlayerControl.GetCurrentAndMaxMP(out m_CurrentMP, out m_CurrentMaxMP);
        //m_CurrentHP, m_CurrentMP当前主角拥有的HP与MP值
        //m_CurrentMaxHP, m_CurrentMaxMP当前主角最大的HP值和最大的MP值
        //商店
        m_PartNums = WeaponManager.Instance.PartNums;
        //m_PartNums零件数目
        m_RocketNums = WeaponManager.Instance.RocketGunNumber;
        // m_RocketNums火箭筒个数
        foreach (CoreAttribute CA in m_AllCoreType)
        {
            if (CA == CoreAttribute.Frozen)
            {
                m_HavingFrozenCore = true;
                break;
            }
        }
        //是否已有冰冻核心
        #endregion

        m_AllCopyDraggingGun  = new GameObject[6];
        m_AllCopyDraggingCore = new GameObject[4];
        #region 当前拥有的武器进行显示
        for (int i = 0; i < m_AllGunType.Length; i++)
        {
            //未获得该武器
            if (m_AllGunType[i] == GunType.Null)
            {
                continue;
            }
            m_AllGunShow[(int)m_AllGunType[i]].SetActive(true);
        }
        #endregion
        #region 当前装备的武器进行显示,装备Equipped显示
        for (int i = 0; i < m_CurrentGunType.Length; i++)
        {
            //当前武器装备栏为空
            if (m_CurrentGunType[i] == GunType.Null)
            {
                continue;
            }
            m_AllGunShow[(int)m_CurrentGunType[i]].transform.GetChild(2).gameObject.SetActive(true);
            //特殊武器
            if (i == 3)
            {
                m_SpecialGun.sprite = m_AllGun[(int)m_CurrentGunType[i]];
            }
            else
            {
                m_NormalGun[i].sprite = m_AllGun[(int)m_CurrentGunType[i]];
                _GunIndex             = (int)m_CurrentGunType[i];
            }
        }
        #endregion
        #region 当前拥有的核心进行显示
        foreach (CoreAttribute ca in m_AllCoreType)
        {
            m_AllCoreShow[(int)ca].SetActive(true);
        }
        #endregion
        #region 当前装备的核心与文字进行显示,装备Equipped显示,血管样式修改
        m_CurrentCorePos.sprite     = m_AllCore[(int)m_CurrentCoreType];
        m_CurrentCoreTextPos.sprite = m_AllCoreText[(int)m_CurrentCoreType];
        m_AllCoreShow[(int)m_CurrentCoreType].transform.GetChild(4).gameObject.SetActive(true);

        _coreIndex = (int)m_CurrentCoreType;
        #endregion
        #region 商店管理(零件数量)
        m_ifCanBuySomeThing = new bool[] { true, true, true, true, true };
        foreach (GameObject go in m_CanNotBuyPos)
        {
            go.SetActive(false);
        }
        m_PartText.text = m_PartNums.ToString();
        //禁止使用维修服务
        if (m_PartNums < 10)
        {
            m_ifCanBuySomeThing[0] = false;
            //显示禁止买图片
            m_CanNotBuyPos[0].SetActive(true);
        }
        //禁止买火箭
        if (m_RocketNums == 1)
        {
            m_ifCanBuySomeThing[1] = false;
            //显示禁止买图片
            m_CanNotBuyPos[1].SetActive(true);
        }
        //禁止买冰冻核心
        if (m_HavingFrozenCore)
        {
            m_ifCanBuySomeThing[2] = false;
            //显示禁止买图片
            m_CanNotBuyPos[2].SetActive(true);
        }
        #endregion
        #region 血条管理
        m_AllCoreToBlood = new CoreToBlood[] { Initial, Fire, Amethyst, Frozen };
        //------------------------------------------------------------------------
        m_HPMPPos.sprite = m_AllHPMPStyle[(int)m_CurrentCoreType];

        m_CurrentCoreToBlood = m_AllCoreToBlood[_coreIndex];

        //当前HPMP占总值百分比
        m_CurrentHPPercent = m_CurrentHP / (m_CurrentMaxHP * 1.0f);
        m_CurrentMPPercent = m_CurrentMP / (m_CurrentMaxMP * 1.0f);
        //滑块初始化
        //主滑块位置比例(HP下限 / HP最大值)
        m_CurrentMainSliderPosPercent = (m_CurrentMaxHP - m_CurrentCoreToBlood.HPLowerNums) / (float)(m_CurrentCoreToBlood.HPUpperNums - m_CurrentCoreToBlood.HPLowerNums);

        MainSlider_MP.maxValue = MainSlider_HP.maxValue = m_CurrentCoreToBlood.AllBloodNums;
        MainSlider_MP.minValue = MainSlider_HP.minValue = 0;
        MainSlider_MP.value    = m_CurrentMaxMP;
        MainSlider_HP.value    = m_CurrentMaxHP;

        HpSilder.maxValue = MainSlider_HP.value;
        MpSilder.maxValue = MainSlider_MP.value;
        HpSilder.minValue = MpSilder.minValue = 0;
        HpSilder.value    = m_CurrentHP;
        MpSilder.value    = m_CurrentMP;

        //HPMP最大值显示
        HPMaxText.text = m_CurrentMaxHP.ToString();
        MPMaxText.text = m_CurrentMaxMP.ToString();
        #endregion
        #region  钮UI管理
        allUI = new GameObject[] { RepairUI, SelfInfoUI, MainMenuUI, HelpUI };
        #endregion
        //可以修改HP最大值
        CanChangeBloodHPMax = true;
    }