Beispiel #1
0
 private void OnHoldMaxHold(HoldInfo holdInfo)
 {
     if (holdInfo != null)
     {
         HoldMaxHold(holdInfo);
     }
 }
Beispiel #2
0
    /// <summary>
    /// 获取孔描述
    /// </summary>
    /// <param name="info"></param>
    /// <returns></returns>
    private string GetGemDesc(HoldInfo info)
    {
        string des = "";

        switch (info.m_type)
        {
        case Hold_STATE.EQUIP:
            PropFightInfo prop_fight = PropChangeFightConfig.GetEquipInfo(info.m_info.propType);

            string name      = TextManager.GetItemString(info.m_gem_id.ToString());
            string value     = prop_fight.IsPercent == 0 ? info.m_info.propValue.ToString() : string.Format("{0}%", info.m_info.propValue * 100);
            string prop_name = TextManager.GetUIString(info.m_info.propType);
            des += name + "\n" + prop_name + "+" + value.ToString();

            break;

        case Hold_STATE.EMPTY:
            des += TextManager.GetUIString("UI2057");
            break;

        case Hold_STATE.CAN_OPEN:
            des += TextManager.GetUIString("UI2056");
            break;

        case Hold_STATE.MATERIAL_LOCK:
            des += TextManager.GetUIString("UI2055");
            break;

        case Hold_STATE.NOT_OPEN_LOCK:
            des += TextManager.GetUIString("UI2058");
            break;
        }
        return(des);
    }
Beispiel #3
0
    /// <summary>
    /// 设置宝石组件信息
    /// </summary>
    private void SetGemItemInfo(GameObject child, HoldInfo info)
    {
        GameObject suo      = child.transform.FindChild("suo").gameObject;
        GameObject takeBtn  = child.transform.FindChild("takeBtn").gameObject;
        GameObject openBtn  = child.transform.FindChild("openBtn").gameObject;
        GameObject insetBtn = child.transform.FindChild("insetBtn").gameObject;

        UITexture icon    = child.transform.FindChild("icon").GetComponent <UITexture>();
        UILabel   descTxt = child.transform.FindChild("descTxt").GetComponent <UILabel>();
        UISprite  color   = child.transform.FindChild("color").GetComponent <UISprite>();

        icon.gameObject.SetActive(info.m_gem_id > 0);
        color.gameObject.SetActive(info.m_gem_id > 0);
        if (info.m_gem_id > 0)
        {
            ItemInfo item_info = ItemManager.GetItemInfo(info.m_gem_id.ToString());
            color.spriteName = "color" + item_info.color;
            LoadSprite.LoaderItem(icon, info.m_gem_id.ToString(), false);
        }
        suo.SetActive(info.m_type == Hold_STATE.MATERIAL_LOCK || info.m_type == Hold_STATE.NOT_OPEN_LOCK || info.m_type == Hold_STATE.CAN_OPEN);
        takeBtn.SetActive(info.m_type == Hold_STATE.EQUIP);
        openBtn.SetActive(info.m_type == Hold_STATE.CAN_OPEN);
        insetBtn.SetActive(info.m_type == Hold_STATE.EMPTY);

        string des = GetGemDesc(info);

        descTxt.text = des;
    }
Beispiel #4
0
        /// <summary>
        /// HoldTime 단위(분)
        /// </summary>
        internal static float GetHoldTime(string shopID, string holdCode)
        {
            HoldInfo info = GetHoldInfo(shopID, holdCode);

            if (info == null)
            {
                return(DefaultHoldTime);
            }

            return(info.HoldTime);
        }
Beispiel #5
0
    private void OnClick(GameObject go)
    {
        if (select_equip_id == 0)
        {
            return;
        }

        int index = go.transform.parent.GetSiblingIndex();

        cur_info = m_holdInfo_list[index];

        switch (go.transform.name)
        {
        case "takeBtn":
            ServerCustom.instance.SendClientMethods(EquipProxy.CLIENT_GEM_TAKEOFF, cur_info.m_index, EquipMediator.cur_select_player_id, select_equip_id);
            break;

        case "openBtn":
            int  material_id = 0;
            bool is_material = IsOpenMaterial(cur_info, out material_id);
            if (!is_material)
            {
                GUIManager.SetPromptInfo(TextManager.GetUIString("UI2055"), null);
                return;
            }

            //ShowItemInfo showItemInfo = new ShowItemInfo();
            //ItemMediator.panelType = PanelType.Use;
            //showItemInfo.useOne = UseItem;
            //Item item_data = ItemManager.GetBagItemInfo(material_id.ToString());

            //List<object> list_item = new List<object>();
            //list_item.Add(showItemInfo);
            //list_item.Add(item_data);
            //Facade.SendNotification(NotificationID.ItemInfo_Show, list_item);

            ServerCustom.instance.SendClientMethods(EquipProxy.CLIENT_GEM_OPEN, cur_info.m_index, EquipMediator.cur_select_player_id, select_equip_id);


            break;

        case "insetBtn":

            List <object> list = new List <object>();

            list.Add(EquipMediator.cur_select_player_id);
            list.Add(select_equip_id);
            list.Add(cur_info.m_index);
            Facade.SendNotification(NotificationID.GemChoose_Show, list);

            break;
        }
    }
Beispiel #6
0
    //设置装备宝石信息
    private void SetGemInfo()
    {
        m_holdInfo_list.Clear();
        GameObject child_gem;
        int        gem_state = -1;

        string[] gem_data_arr  = gem_data_info.Split(';');
        string[] need_hold_arr = cur_equip_info.needOpenHold.Split(';');
        for (int i = 0; i < m_max_gem_num; i++)
        {
            child_gem = panel.gemInfo.GetChild(i).gameObject;
            gem_state = GameConvert.IntConvert(gem_data_arr[i]);
            string[] hold_need_data = need_hold_arr[i].Split(':');
            HoldInfo hold_info      = new HoldInfo();
            hold_info.m_gem_id = gem_state;
            hold_info.m_index  = i + 1;

            hold_info.m_info = gem_state > 0 ? GemItemConfig.GetGemItem(gem_state) : null;

            if (gem_state > 0)
            {
                hold_info.m_type = Hold_STATE.EQUIP;
            }
            else if (gem_state == 0)
            {
                hold_info.m_type = Hold_STATE.EMPTY;
            }
            else
            {
                int      need_num      = GameConvert.IntConvert(hold_need_data[1]);
                int      has_num       = ItemManager.GetBagItemCount(hold_need_data[0]);
                HoldInfo previous_info = null;
                if (i - 1 >= 0)
                {
                    previous_info = m_holdInfo_list[i - 1];
                }

                if (previous_info == null || previous_info.m_type == Hold_STATE.EQUIP || previous_info.m_type == Hold_STATE.EMPTY)
                {
                    hold_info.m_type = has_num > need_num ? Hold_STATE.CAN_OPEN : Hold_STATE.MATERIAL_LOCK;
                }
                else
                {
                    hold_info.m_type = Hold_STATE.NOT_OPEN_LOCK;//上一个孔没开启
                }
            }

            SetGemItemInfo(child_gem, hold_info);

            m_holdInfo_list.Add(hold_info);
        }
    }
Beispiel #7
0
    ///开槽材料是否满足
    private bool IsOpenMaterial(HoldInfo info, out int material_id)
    {
        string[] materal_arr = cur_equip_info.needOpenHold.Split(';');
        string   material    = materal_arr[info.m_index - 1];

        int id       = GameConvert.IntConvert(material.Split(':')[0]);
        int need_num = GameConvert.IntConvert(material.Split(':')[1]);

        material_id = id;
        int has_num = ItemManager.GetBagItemCount(id.ToString());

        if (id == 0 || need_num <= has_num)
        {
            return(true);
        }

        return(false);
    }
Beispiel #8
0
        internal static void AddHoldInfo(HoldTime item)
        {
            string key = GetKey(item.SHOP_ID, item.HOLD_CODE);

            HoldInfo info = GetHoldInfo(item.SHOP_ID, item.HOLD_CODE);

            if (info == null)
            {
                info = CreateHelper.CreateHoldInfo(item);
                InputMart.Instance.HoldInfo.Add(key, info);

                if (info.HoldCode == "DEFAULT")
                {
                    SetDefaultHoldTime(info.HoldTime);
                }
            }


            return;
        }
Beispiel #9
0
 private void OnHoldEnd(HoldInfo holdInfo)
 {
     HoldEnd?.Invoke(holdInfo);
 }
Beispiel #10
0
 private void OnHoldChange(HoldInfo holdInfo)
 {
     HoldChange?.Invoke(holdInfo);
 }
Beispiel #11
0
 private void OnHoldStart(HoldInfo holdInfo)
 {
     HoldStart?.Invoke(holdInfo);
 }
Beispiel #12
0
 private void UpdateInfo(HoldInfo holdInfo)
 {
     CurrentHoldScore = holdInfo.CurrentHoldScore;
     MaxHoldBonus     = holdInfo.MaxHoldBonus;
     HoldMarks        = holdInfo.HoldMarks.Cast <object>();
 }