Пример #1
0
    public ItemMaterial(ItemParentInstance _instanceData)
    {
        this.instanceData    = _instanceData;
        materialInstanceData = _instanceData;

        LoggerHelper.Debug("id:" + _instanceData.templeId);
        LoggerHelper.Debug("ItemMaterialData.dataMap:" + ItemMaterialData.dataMap.Count);

        templateData         = ItemMaterialData.dataMap[_instanceData.templeId];
        materialTemplateData = (ItemMaterialData)templateData;
    }
Пример #2
0
    public ItemMaterial(ItemParentInstance _instanceData)
    {
        this.instanceData    = _instanceData;
        materialInstanceData = _instanceData;

        //Debug.Log("ItemMaterial(id=" + _instanceData.templeId+")");
        //Debug.Log("ItemMaterialData.dataMap.Count=" + ItemMaterialData.dataMap.Count);

        templateData         = ItemMaterialData.dataMap[_instanceData.templeId];
        materialTemplateData = (ItemMaterialData)templateData;
    }
Пример #3
0
    public ItemMaterial(ItemParentInstance _instanceData)
    {
        this.instanceData = _instanceData;
        materialInstanceData = _instanceData;

        LoggerHelper.Debug("id:" + _instanceData.templeId);
        LoggerHelper.Debug("ItemMaterialData.dataMap:" + ItemMaterialData.dataMap.Count);

        templateData = ItemMaterialData.dataMap[_instanceData.templeId];
        materialTemplateData = (ItemMaterialData)templateData;
    }
Пример #4
0
    private bool CanEnhance(int slot)
    {
        int level = myEnhance[slot];

        if (!enhanceDataDic[slot].ContainsKey(level + 1))
        {
            Debug.Log("level max");
            return(false);
        }
        BodyEnhanceData enhanceData = enhanceDataDic[slot][level + 1];

        if (MogoWorld.thePlayer.level < enhanceData.characterLevel)
        {
            Debug.Log("level isnot enough ");
            return(false);
        }
        if (MogoWorld.thePlayer.gold < enhanceData.gold)
        {
            Debug.Log("gold isnot enough ");
            return(false);
        }

        if (enhanceData.material != null)
        {
            foreach (KeyValuePair <int, int> pair in enhanceData.material)
            {
                ItemMaterialData material = ItemMaterialData.dataMap[pair.Key];
                int materialNum           = InventoryManager.Instance.GetMaterialNum(pair.Key);
                if (materialNum < pair.Value)
                {
                    materialNum = InventoryManager.Instance.GetMaterialAllNum(pair.Key);
                    if (materialNum >= pair.Value)
                    {
                        continue;
                    }
                    else
                    {
                        Debug.Log("材料不够!");
                        return(false);
                    }
                }
            }
        }


        return(true);
    }
Пример #5
0
    private bool CheckEnhanceCondition()
    {
        if (m_isEnhancing)
        {
            return(false);
        }
        int level = myEnhance[CurrentSlot];

        if (!enhanceDataDic[CurrentSlot].ContainsKey(level + 1))
        {
            Debug.Log("等级已满!");
            OnBodyEnhaUpgResp(ERR_BODY_LEVEL_ALREADY_MAX);
            return(false);
        }
        BodyEnhanceData enhanceData = enhanceDataDic[CurrentSlot][level + 1];

        if (MogoWorld.thePlayer.level < enhanceData.characterLevel)
        {
            Debug.Log("等级不够!");
            OnBodyEnhaUpgResp(ERR_BODY_ENHANCE_LEVEL);
            return(false);
        }
        if (MogoWorld.thePlayer.gold < enhanceData.gold)
        {
            Debug.Log("金币不够!");
            OnBodyEnhaUpgResp(ERR_BODY_ENHANCE_GOLD_NOT_ENOUGH);
            return(false);
        }


        if (enhanceData.material != null)
        {
            bool          hasEnoughMaterial        = true;
            bool          needToSpendOtherMaterial = false;
            string        msg = string.Empty;
            List <string> needMaterialNameList  = new List <string>();
            List <int>    needMaterialValueList = new List <int>();
            List <string> costMaterialNameList  = new List <string>();
            List <int>    costMaterialValueList = new List <int>();

            foreach (KeyValuePair <int, int> pair in enhanceData.material)
            {
                ItemMaterialData material = ItemMaterialData.dataMap[pair.Key];
                int materialNum           = InventoryManager.Instance.GetMaterialNum(pair.Key);
                if (materialNum < pair.Value)
                {
                    needToSpendOtherMaterial = true;
                    materialNum = InventoryManager.Instance.GetMaterialAllNum(pair.Key);
                    if (materialNum >= pair.Value)
                    {
                        List <KeyValuePair <int, int> > list = InventoryManager.Instance.GetMaterialList(pair.Key, pair.Value);
                        needMaterialNameList.Add(material.Name);
                        needMaterialValueList.Add(pair.Value);
                        //msg += "\n" + LanguageData.dataMap[458].Format(material.Name, pair.Value);
                        for (int i = 0; i < list.Count; i++)
                        {
                            ItemMaterialData tempMaterial = ItemMaterialData.dataMap[list[i].Key];

                            costMaterialNameList.Add(tempMaterial.Name);
                            costMaterialValueList.Add(list[i].Value);
                            //msg += "\n" + LanguageData.dataMap[459].Format(tempMaterial.Name, list[i].Value);
                        }
                    }
                    else
                    {
                        hasEnoughMaterial = false;
                        Debug.Log("材料不够!");
                        OnBodyEnhaUpgResp(ERR_BODY_ENHANCE_MATERIAL_NOT_ENOUGH, pair.Value, material.Name);
                        return(false);
                    }
                }
                else
                {
                    continue;
                }
            }

            if (hasEnoughMaterial && needToSpendOtherMaterial)
            {
                msg = LanguageData.dataMap[458].content;
                for (int i = 0; i < needMaterialNameList.Count; i++)
                {
                    msg += LanguageData.dataMap[460].Format(needMaterialNameList[i], needMaterialValueList[i]) + ",";
                }
                msg += LanguageData.GetContent(459) + "\n";
                for (int i = 0; i < costMaterialNameList.Count; i++)
                {
                    msg += LanguageData.dataMap[460].Format(costMaterialNameList[i], costMaterialValueList[i]) + ",\n";
                }


                MogoGlobleUIManager.Instance.Confirm(msg, (rst) =>
                {
                    if (rst)
                    {
                        m_isEnhancing = true;
                        m_timerId     = TimerHeap.AddTimer(2000, 0, () => { m_isEnhancing = false; });
                        myself.RpcCall("BodyEnhaUpgReq", (byte)CurrentSlot);
                        MogoGlobleUIManager.Instance.ConfirmHide();
                    }
                    else
                    {
                        MogoGlobleUIManager.Instance.ConfirmHide();
                    }
                });
                return(false);
            }
        }


        return(true);
    }