示例#1
0
    public void Load(string name)
    {
        if (isLoad)
        {
            return;
        }
        isLoad = true;


        byte[] bin     = DynamicFileControl.QueryFileContent(name);
        string content = StringHelper.ReadFromBytes(bin);

        LitJson.JSONNode json = LitJson.JSON.Parse(content);

        dataUnitParts = new Dictionary <int, Dictionary <int, DataUnitPart> > ();

        foreach (LitJson.JSONNode subNode in json.Childs)
        {
            DataUnitPart data = new DataUnitPart();
            data.Load(subNode);

            Dictionary <int, DataUnitPart> parts;
            dataUnitParts.TryGetValue(data.id, out parts);
            if (parts == null)
            {
                parts = new Dictionary <int, DataUnitPart>();
                dataUnitParts.Add(data.id, parts);
            }

            parts.Add(data.level, data);
        }
    }
示例#2
0
    public int GetPartLevelMax(int index)
    {
        DataUnitPart dataPart = GetDataParts()[index];
        int          maxLevel = DataManager.instance.dataUnitPartGroup.GetPartMaxLevel(dataPart.id);

        return(maxLevel);
    }
示例#3
0
    void InitData()
    {
        _strengthenTankItemDic.Clear();
        List <int>      unlockUnits  = InstancePlayer.instance.model_User.unlockUnitsId;
        List <DataUnit> dataUnitList = new List <DataUnit>();

        dataUnitList.Clear();
        foreach (int id in unlockUnits)
        {
            DataUnit dataunit = DataManager.instance.dataUnitsGroup.GetUnit(id);
            dataUnitList.Add(dataunit);
        }
        TankDataManager tankManagetr = new TankDataManager();

        _unitDataList = tankManagetr.StrengthenSort(dataUnitList);

        if (_unitDataList.Count > 0)
        {
            _currentUnitData = _unitDataList[0];
            UpdataTankInfo(_currentUnitData);
            _units = InstancePlayer.instance.model_User.unlockUnits;
            _units.TryGetValue(_currentUnitData.id, out _modelUnit);

            _unitPart        = _modelUnit.GetDataParts();
            _currentUnitPart = _unitPart[0];
            _partType        = SystemType.HP;
            UpdataUnitPart(_currentUnitPart, _partType);
        }
    }
示例#4
0
    void OnDR()
    {
        _currentUnitData = _currentUnitData;
        _units           = InstancePlayer.instance.model_User.unlockUnits;
        _units.TryGetValue(_currentUnitData.id, out _modelUnit);

        _unitPart        = _modelUnit.GetDataParts();
        _currentUnitPart = _unitPart[3];
        _partType        = SystemType.DR;
        UpdataUnitPart(_currentUnitPart, _partType);
    }
示例#5
0
 void TenOrOne(int times)
 {
     _partType        = _partType;
     _currentUnitPart = _currentUnitPart;
     _units.TryGetValue(_currentUnitData.id, out _modelUnit);
     PBConnect_upgradeUnitPart.RESULT result = PBConnect_upgradeUnitPart.CheckUpgrade(_modelUnit.unitId, (int)_partType);
     if (result == PBConnect_upgradeUnitPart.RESULT.OK)
     {
         if (times == 1)
         {
             UpgradeOneUnitPart();
         }
         else
         {
             UpgradeTenUnitPart();
         }
     }
     else if (result == PBConnect_upgradeUnitPart.RESULT.LACK_ITEM1)
     {
         string str = "材料不足";
         UIHelper.ShowTextPromptPanel(this.gameObject, str);
     }
     else if (result == PBConnect_upgradeUnitPart.RESULT.LACK_ITEM2)
     {
         string str = "材料不足";
         UIHelper.ShowTextPromptPanel(this.gameObject, str);
     }
     else if (result == PBConnect_upgradeUnitPart.RESULT.LACK_MAIN_LEVEL)
     {
         string str = "车体系统等级不足,请升级!";
         UIHelper.ShowTextPromptPanel(this.gameObject, str);
     }
     else if (result == PBConnect_upgradeUnitPart.RESULT.LACK_PLAYER_LEVEL)
     {
         string str = "部件等级超过玩家等级!";
         UIHelper.ShowTextPromptPanel(this.gameObject, str);
     }
     else if (result == PBConnect_upgradeUnitPart.RESULT.MAX_LEVEL)
     {
         string str = "部件达到最大级别!";
         UIHelper.ShowTextPromptPanel(this.gameObject, str);
     }
     else if (result == PBConnect_upgradeUnitPart.RESULT.LACK_RESOURCE)
     {
         int[] resArr = Model_Helper.GetPlayerNeedBuyRes(_currentUnitPart.cost.costFood, _currentUnitPart.cost.costOil, _currentUnitPart.cost.costMetal, _currentUnitPart.cost.costRare);
         UIHelper.BuyResourcesUI(resArr, ResourcesBuyType.StrengThenPartType, times);
     }
     else if (result == PBConnect_upgradeUnitPart.RESULT.UNIT_LOCK)
     {
         string str = "UNIT_LOCK!";
         UIHelper.ShowTextPromptPanel(this.gameObject, str);
     }
 }
示例#6
0
    public DataUnitPart[] GetDataParts()
    {
        DataUnitPart[] parts = new DataUnitPart[4];

        DataUnit          dataUnit  = DataManager.instance.dataUnitsGroup.GetUnit(unitId);
        DataUnitPartGroup partGroup = DataManager.instance.dataUnitPartGroup;

        for (int i = 0; i < parts.Length; ++i)
        {
            int partId    = dataUnit.partsId[i];
            int partLevel = partLevels[i];
            parts[i] = partGroup.GetPart(partId, partLevel);
        }

        return(parts);
    }
示例#7
0
    public DataUnitPart[] GetAllLevelParts(int id)
    {
        Dictionary <int, DataUnitPart> parts;

        dataUnitParts.TryGetValue(id, out parts);
        if (parts != null)
        {
            DataUnitPart[] allParts = new DataUnitPart[parts.Count];

            int i = 0;
            foreach (KeyValuePair <int, DataUnitPart> pair in parts)
            {
                allParts[i++] = pair.Value;
            }

            return(allParts);
        }
        return(null);
    }
示例#8
0
    public UPGRADE_PART_RESULT CanUpgradePart(int index)
    {
        DataUnitPart mainDataPart = GetDataParts()[0];
        DataUnitPart dataPart     = GetDataParts()[index];

        Trace.trace("GetPartLevelMax(index) " + GetPartLevelMax(index), Trace.CHANNEL.UI);
        if (dataPart.level + 1 > GetPartLevelMax(index))
        {
            return(UPGRADE_PART_RESULT.MAX_LEVEL);
        }
        if (dataPart.mainLevel > mainDataPart.level)
        {
            return(UPGRADE_PART_RESULT.NEED_MAIN_LEVEL);
        }
        if (index != 0)
        {
            if (mainDataPart.level < dataPart.level + 1)
            {
                return(UPGRADE_PART_RESULT.NEED_MAIN_LEVEL);
            }
        }
        else
        {
            int userLevel = InstancePlayer.instance.model_User.honorLevel;
            if (mainDataPart.level + 1 > userLevel)
            {
                return(UPGRADE_PART_RESULT.NEED_USER_LEVEL);
            }
        }


        ConnectionValidateHelper.CostCheck r = ConnectionValidateHelper.IsEnoughCost(dataPart.cost);
        if (r != ConnectionValidateHelper.CostCheck.OK)
        {
            return(UPGRADE_PART_RESULT.NEED_RESOURCE);
        }

        return(UPGRADE_PART_RESULT.OK);
    }
示例#9
0
    void Update()
    {
        _currentUnitData = _currentUnitData;
        _partType        = _partType;
        if (_unitDataList != null)
        {
            SetWrapContent(_grid, _unitDataList, _strengthenTankItemDic, OnUpdateItem);
        }
        if (_currentUnitData != null)
        {
            UpdataTankInfo(_currentUnitData);
            _units = InstancePlayer.instance.model_User.unlockUnits;
            _units.TryGetValue(_currentUnitData.id, out _modelUnit);

            _unitPart        = _modelUnit.GetDataParts();
            _currentUnitPart = _unitPart[(int)_partType];
            UpdataPromptPoint(_currentUnitData);
        }
        if (_currentUnitPart != null)
        {
            UpdataUnitPart(_currentUnitPart, _partType);
        }
    }
    public static RESULT CheckUpgrade(int unitId, int partIndex)
    {
        if (!InstancePlayer.instance.model_User.unlockUnits.ContainsKey(unitId))
        {
            return(RESULT.UNIT_LOCK);
        }

        Model_Unit modelUnit = InstancePlayer.instance.model_User.unlockUnits [unitId];
        DataUnit   dataUnit  = DataManager.instance.dataUnitsGroup.GetUnit(unitId);

        int partId        = dataUnit.partsId [partIndex];
        int partLevel     = modelUnit.partLevels[partIndex];
        int mainPartLevel = modelUnit.partLevels[0];

        DataUnitPart dataUnitPart = DataManager.instance.dataUnitPartGroup.GetPart(partId, partLevel);


        int maxLevel = DataManager.instance.dataUnitPartGroup.GetPartMaxLevel(partId);

        if (partLevel >= maxLevel)
        {
            return(RESULT.MAX_LEVEL);
        }

        if (partIndex == 0)
        {
            int playerLevel = InstancePlayer.instance.model_User.honorLevel;
            if (playerLevel < dataUnitPart.mainLevel)
            {
                return(RESULT.LACK_PLAYER_LEVEL);
            }
        }
        else
        {
            if (mainPartLevel < dataUnitPart.mainLevel)
            {
                return(RESULT.LACK_MAIN_LEVEL);
            }
        }

        int itemCount1 = InstancePlayer.instance.model_User.model_itemGroup.GetItemCount(dataUnitPart.itemCost1.id);

        if (itemCount1 < dataUnitPart.itemCost1.count)
        {
            return(RESULT.LACK_ITEM1);
        }

        int itemCount2 = InstancePlayer.instance.model_User.model_itemGroup.GetItemCount(dataUnitPart.itemCost2.id);

        if (itemCount2 < dataUnitPart.itemCost2.count)
        {
            return(RESULT.LACK_ITEM2);
        }


        bool hasEnoughResource = Model_Helper.HasEnoughResource(dataUnitPart.cost);

        if (!hasEnoughResource)
        {
            return(RESULT.LACK_RESOURCE);
        }


        return(RESULT.OK);
    }
示例#11
0
    public int GetPartLevel(int index)
    {
        DataUnitPart dataPart = GetDataParts()[index];

        return(dataPart.level);
    }
示例#12
0
    private string GetDescription(string descript)
    {
        switch (command)
        {
        case "CommanderLv":         //指挥官提升到N级
        {
            descript = StringHelper.GenerateCompleteDescription(descript, source);
        }
        break;

        case "PassMission":            //完成系统指定的关卡
        {
            int         magicId     = (int)source;
            DataMission dataMission = DataManager.instance.dataMissionGroup.GetMission(magicId);
            descript = StringHelper.GenerateCompleteDescription(descript, dataMission.name, destination);
        }
        break;

        case "SpecifiedUnitPartLv":            //指定unitpart强化到N级
        {
            int      unitId   = (int)source;
            DataUnit dataUnit = DataManager.instance.dataUnitsGroup.GetUnit(unitId);

            int          partId       = (int)destination;
            DataUnitPart dataUnitPart = DataManager.instance.dataUnitPartGroup.GetPart(partId, 1);

            descript = StringHelper.GenerateCompleteDescription(descript, dataUnit.name, dataUnitPart.name, additional);
        }
        break;

        case "SpecifiedHeroLv":            //指定hero升级到N级
        {
            int      heroId   = (int)source;
            DataHero dataHero = DataManager.instance.dataHeroGroup.GetHeroPrimitive(heroId);

            descript = StringHelper.GenerateCompleteDescription(descript, dataHero.name, destination);
        }
        break;

        case "SpecifiedHeroStage":            //指定hero升衔到N阶
        {
            int      heroId   = (int)source;
            DataHero dataHero = DataManager.instance.dataHeroGroup.GetHeroPrimitive(heroId);

            descript = StringHelper.GenerateCompleteDescription(descript, dataHero.name, destination);
        }
        break;

        case "ConsumeStar":         //获得N颗星星
        {
            descript = StringHelper.GenerateCompleteDescription(descript, source);
        }

        break;

        case "GainUnit":         //获得指定unit
        {
            int      unitId   = (int)source;
            DataUnit dataUnit = DataManager.instance.dataUnitsGroup.GetUnit(unitId);

            descript = StringHelper.GenerateCompleteDescription(descript, dataUnit.name, destination);
        }
        break;

        case "GainHero":         //获得指定hero
        {
            int      heroId   = (int)source;
            DataHero dataHero = DataManager.instance.dataHeroGroup.GetHeroPrimitive(heroId);

            descript = StringHelper.GenerateCompleteDescription(descript, dataHero.name);
        }
        break;

        case "ArenaRankings":         //在竞技场达到指定排名
        {
            descript = StringHelper.GenerateCompleteDescription(descript, source);
        }
        break;

        case "BuildingLv":         //相应建筑提升到N级
        {
            int          buildingId   = (int)source;
            DataBuilding dataBuilding = DataManager.instance.dataBuildingGroup.GetBuilding(buildingId, 1);

            descript = StringHelper.GenerateCompleteDescription(descript, dataBuilding.name, destination);
        }
        break;
        }

        return(descript);
    }
示例#13
0
    void UpdataUnitPart(DataUnitPart unitPart, SystemType type)
    {
        List <float>  batterdata     = new List <float>();
        List <float>  willbatterdata = new List <float>();
        List <string> attrstr        = new List <string>();

        batterdata.Clear();
        attrstr.Clear();
        willbatterdata.Clear();
        bool isMaxLevel   = false;
        int  maxLevelPart = DataManager.instance.dataUnitPartGroup.GetPartMaxLevel(unitPart.id);
        int  partLevel    = 1;

        if (unitPart.level < maxLevelPart)
        {
            isMaxLevel             = false;
            partLevel              = unitPart.level + 1;
            _1_Curruent_Label.text = unitPart.level.ToString();
            _1_willBe_Label.gameObject.SetActive(true);
            _1_willBe_Label.text = (unitPart.level + 1).ToString();
        }
        else
        {
            isMaxLevel             = true;
            partLevel              = unitPart.level;
            _1_Curruent_Label.text = "已满级";
            _1_willBe_Label.gameObject.SetActive(false);
        }
        DataUnitPart nextLevelPart = DataManager.instance.dataUnitPartGroup.GetPart(unitPart.id, partLevel);

        string systemName = "";

        switch (type)
        {
        case SystemType.HP:
            systemName = "车体系统";

            batterdata.Add(unitPart.battleParam.hp);
            willbatterdata.Add(nextLevelPart.battleParam.hp);
            attrstr.Add("血量");
            break;

        case SystemType.AP:
            systemName = "武器系统";
            batterdata.Add(unitPart.battleParam.damage);
            willbatterdata.Add(nextLevelPart.battleParam.damage);
            attrstr.Add("攻击");
            break;

        case SystemType.DR:
            systemName = "动力系统";
            batterdata.Add(unitPart.battleParam.hitRate);
            willbatterdata.Add(nextLevelPart.battleParam.hitRate);
            attrstr.Add("命中率");
            break;

        case SystemType.DP:
            systemName = "护甲系统";
            batterdata.Add(unitPart.battleParam.ammo);
            willbatterdata.Add(nextLevelPart.battleParam.ammo);
            attrstr.Add("防御");
            break;
        }

        if (unitPart.battleParam.dodgeRate != 0.0f)
        {
            batterdata.Add(unitPart.battleParam.dodgeRate);
            willbatterdata.Add(nextLevelPart.battleParam.dodgeRate);
            attrstr.Add("闪避率");
        }
        if (unitPart.battleParam.doubleDamageRate != 0.0f)
        {
            batterdata.Add(unitPart.battleParam.doubleDamageRate);
            willbatterdata.Add(nextLevelPart.battleParam.doubleDamageRate);
            attrstr.Add("暴击率");
        }
        int count = attrstr.Count;

        for (int i = 0; i < count; i++)
        {
            _attributeList[i].gameObject.SetActive(true);
            _attributeList[i].text = attrstr[i];
            _curruentList[i].text  = batterdata[i].ToString();
            if (isMaxLevel)
            {
                _willBeList[i].gameObject.SetActive(false);
            }
            else
            {
                _willBeList[i].gameObject.SetActive(true);
            }
            _willBeList[i].text = willbatterdata[i].ToString();
        }
        _systemName_Label.text = systemName + "(LV." + unitPart.level.ToString() + ")";

        _1_Label.text = unitPart.cost.costFood.ToString();
        _2_Label.text = unitPart.cost.costOil.ToString();
        _3_Label.text = unitPart.cost.costMetal.ToString();
        _4_Label.text = unitPart.cost.costRare.ToString();
        _iconBgList[2].gameObject.SetActive(false);
        if (unitPart.itemCost1 != null && unitPart.itemCost2 != null)
        {
//			_iconBgList.Clear();
//			_iconItemList.Clear();
//			_iconLabelList.Clear();
            _iconItemList[0].SetItemTexture(unitPart.itemCost1.id);
            _iconLabelList[0].text = GetItemCount(unitPart.itemCost1);
            _iconItemList[1].SetItemTexture(unitPart.itemCost2.id);
            _iconLabelList[1].text = GetItemCount(unitPart.itemCost2);
        }
        else if (unitPart.itemCost1 != null && unitPart.itemCost2 == null)
        {
            _iconItemList[0].SetItemTexture(unitPart.itemCost1.id);
            _iconLabelList[0].text = GetItemCount(unitPart.itemCost1);
            _iconBgList[1].gameObject.SetActive(false);
        }
        else if (unitPart.itemCost2 != null && unitPart.itemCost1 == null)
        {
            _iconItemList[0].SetItemTexture(unitPart.itemCost2.id);
            _iconLabelList[0].text = GetItemCount(unitPart.itemCost2);
            _iconBgList[1].gameObject.SetActive(false);
        }
        else
        {
            _iconBgList[0].gameObject.SetActive(false);
            _iconBgList[1].gameObject.SetActive(false);
            _iconBgList[2].gameObject.SetActive(false);
        }
    }
示例#14
0
    public static UIDropItem GetUIDropItemByPrizeItem(SlgPB.PrizeItem prizeItem)
    {
        UIDropItem drop = new UIDropItem(prizeItem);

        switch (drop.type)
        {
        case (int)DataConfig.DATA_TYPE.Unit:
        {
            DataUnit dataUnit = DataManager.instance.dataUnitsGroup.GetUnit(drop.id);
            drop.name = dataUnit.name;
            drop.icon = UICommon.UNIT_SMALL_PATH_PREFIX + drop.id;
        }
        break;

        case (int)DataConfig.DATA_TYPE.UnitPart:
        {
            DataUnitPart dataUnitPart = DataManager.instance.dataUnitPartGroup.GetPart(drop.id, 1);
            drop.name = dataUnitPart.name;
        }
        break;

        case (int)DataConfig.DATA_TYPE.Item:
        {
            DataItem dataItem = DataManager.instance.dataItemGroup.GetItem(drop.id);
            drop.name = dataItem.name;
            drop.icon = UICommon.ITEM_PATH_PREFIX + drop.id;
        }
        break;

        case (int)DataConfig.DATA_TYPE.Hero:
        {
            DataHero dataHero = DataManager.instance.dataHeroGroup.GetHeroPrimitive(drop.id);
            drop.name = dataHero.name;
            drop.icon = UICommon.HERO_SMALL_PATH_PREFIX + drop.id;
        }
        break;

        case (int)DataConfig.DATA_TYPE.Combat:
        {
            drop.name = DataConfig.GetDataTypeName(DataConfig.DATA_TYPE.Combat);
            drop.icon = UICommon.DROP_ITEM_PATH_PREFIX + (int)drop.type;
        }
        break;

        case (int)DataConfig.DATA_TYPE.Honor:
        {
            drop.name = DataConfig.GetDataTypeName(DataConfig.DATA_TYPE.Honor);
            drop.icon = UICommon.DROP_ITEM_PATH_PREFIX + (int)drop.type;
        }
        break;

        case (int)DataConfig.DATA_TYPE.Food:
        {
            drop.name = DataConfig.GetDataTypeName(DataConfig.DATA_TYPE.Food);
            drop.icon = UICommon.DROP_ITEM_PATH_PREFIX + (int)drop.type;
        }
        break;

        case (int)DataConfig.DATA_TYPE.Oil:
        {
            drop.name = DataConfig.GetDataTypeName(DataConfig.DATA_TYPE.Oil);
            drop.icon = UICommon.DROP_ITEM_PATH_PREFIX + (int)drop.type;
        }
        break;

        case (int)DataConfig.DATA_TYPE.Metal:
        {
            drop.name = DataConfig.GetDataTypeName(DataConfig.DATA_TYPE.Metal);
            drop.icon = UICommon.DROP_ITEM_PATH_PREFIX + (int)drop.type;
        }
        break;

        case (int)DataConfig.DATA_TYPE.Rare:
        {
            drop.name = DataConfig.GetDataTypeName(DataConfig.DATA_TYPE.Rare);
            drop.icon = UICommon.DROP_ITEM_PATH_PREFIX + (int)drop.type;
        }
        break;

        case (int)DataConfig.DATA_TYPE.Cash:
        {
            drop.name = DataConfig.GetDataTypeName(DataConfig.DATA_TYPE.Cash);
            drop.icon = UICommon.DROP_ITEM_PATH_PREFIX + (int)drop.type;
        }
        break;

        case (int)DataConfig.DATA_TYPE.Exp:
        {
            drop.name = DataConfig.GetDataTypeName(DataConfig.DATA_TYPE.Exp);
            drop.icon = UICommon.DROP_ITEM_PATH_PREFIX + (int)drop.type;
        }
        break;

        case (int)DataConfig.DATA_TYPE.Energy:
        {
            drop.name = DataConfig.GetDataTypeName(DataConfig.DATA_TYPE.Energy);
            drop.icon = UICommon.DROP_ITEM_PATH_PREFIX + (int)drop.type;
        }
        break;

        case (int)DataConfig.DATA_TYPE.Building:
            break;

        case (int)DataConfig.DATA_TYPE.Mission:
            break;

        case (int)DataConfig.DATA_TYPE.Battle:
            break;

        case (int)DataConfig.DATA_TYPE.DropGroup:
            break;

        case (int)DataConfig.DATA_TYPE.Equipment:
            break;
        }

        return(drop);
    }