public static int CalcUnitPower(int unitId, int unitCount, int heroId) { Model_Unit modelUnit = InstancePlayer.instance.model_User.unlockUnits [unitId]; DataUnit dataUnit = DataManager.instance.dataUnitsGroup.GetUnit(unitId); DataUnitPart[] dataUnitParts = modelUnit.GetDataParts(); int pHero = 0; if (heroId > 0) { SlgPB.Hero modelHero = InstancePlayer.instance.model_User.model_heroGroup.GetHero(heroId); DataHero dataHero = DataManager.instance.dataHeroGroup.GetHero(heroId, modelHero.exp, modelHero.stage); pHero = dataHero.basicParam.CalcPower(); } int pUnit = dataUnit.battleParam.CalcPower(); int pTotal = pHero + pUnit * unitCount; foreach (DataUnitPart dataUnitPart in dataUnitParts) { if (dataUnitPart != null) { int pPart = dataUnitPart.battleParam.CalcPower(); pTotal += pPart; } } return(pTotal); }
virtual public void Init() { complexBattleParam = new DataUnit.BasicBattleParam(); complexBattleParam.Copy(_dataUnit.battleParam); if (isPlayerUnit) { if (InstancePlayer.instance.model_User.isLogin) { Model_Unit modelUnit = InstancePlayer.instance.model_User.unlockUnits [unitId]; DataUnitPart[] dataParts = modelUnit.GetDataParts(); foreach (DataUnitPart part in dataParts) { complexBattleParam.Add(part.battleParam); } } if (heroId > 0) { SlgPB.Hero hero = InstancePlayer.instance.model_User.model_heroGroup.GetHero(heroId); DataHero dataHero = DataManager.instance.dataHeroGroup.GetHero(heroId, hero.exp, hero.stage); complexBattleParam.Add(dataHero.basicParam); } } complexBattleParam.damage *= powerScale; complexBattleParam.ammo *= powerScale; complexBattleParam.hp *= unitCount; currentHp = complexBattleParam.hp; }
//计算战斗损耗 void BattleDamage() { int damageCount = 0; if (_tankRepairItemDic != null) { _repairUnits = InstancePlayer.instance.model_User.unlockUnits; foreach (KeyValuePair <int, Model_Unit> kv in _repairUnits) { Model_Unit model_Unit = kv.Value; int damage = model_Unit.onDamaged + model_Unit.onRepair; damageCount = damage + damageCount; } _TankDamage_ValueLabel.text = damageCount.ToString(); if (damageCount <= 0) { _immediatelyRepair_btn.isEnabled = false; _Repair_btn.isEnabled = false; } else { _immediatelyRepair_btn.isEnabled = true; _Repair_btn.isEnabled = true; } } }
void ImmediatelyRepairUnit() // 立即完成维修 { UIHelper.LoadingPanelIsOpen(true); RepairUnitRequest request = new RepairUnitRequest(); request.api = new Model_ApiRequest().api; if (_tankRepairItemDic != null) { foreach (KeyValuePair <int, TankRepairItem> kv in _tankRepairItemDic) { TankRepairItem tankItem = kv.Value; Model_Unit modelUnit = tankItem.GetCurrentModelUnit(); int tankNum = tankItem.GetCurrentRepairTankNum(); if (tankNum != null && tankNum > 0) { SlgPB.Unit unit = new SlgPB.Unit(); unit.unitId = modelUnit.unitId; unit.num = tankItem.GetCurrentRepairTankNum(); request.units.Add(unit); } } } request.buyCd = 1; (new PBConnect_repairUnit()).Send(request, OnImmediatelyRepairUnit); }
private static void OnUpgradeUnitPart(bool success, System.Object content) { if (success) { if (--_upgradeTimesLeft > 0) { UpgradeUnitPart(); } } else { } Model_Unit unit = InstancePlayer.instance.model_User.unlockUnits [_upgradeUnitId]; _upgradedLevels = unit.partLevels[_upgradePartIndex] - _originalPartLevel; PBConnect_upgradeUnitPart.DelegateConnectCallback cb = _upgradeCallback; if (_upgradeTimesLeft <= 0) { _upgradeCallback = null; } cb(success, content); }
public override void Init() { complexBattleParam = new DataUnit.BasicBattleParam(); complexBattleParam.Copy(dataUnit.battleParam); Model_Unit modelUnit = new Model_Unit(); modelUnit.Parse(pbUnit); DataUnitPart[] dataParts = modelUnit.GetDataParts(); foreach (DataUnitPart part in dataParts) { complexBattleParam.Add(part.battleParam); } if (heroId > 0) { DataHero dataHero = DataManager.instance.dataHeroGroup.GetHero(heroId, pbHero.exp, pbHero.stage); complexBattleParam.Add(dataHero.basicParam); } complexBattleParam.damage *= powerScale; complexBattleParam.ammo *= powerScale; complexBattleParam.hp *= unitCount; currentHp = complexBattleParam.hp; }
override protected void DisposeContent(CommonResponse content) { Model_Unit unit = InstancePlayer.instance.model_User.unlockUnits [_request.unitId]; unit.partLevels [_request.partIndex]++; InstancePlayer.instance.model_User.UpdateUserBasic(content.response.user); }
public void Init(Model_Unit model_Unit) { if (model_Unit != null) { _model_Unit = model_Unit; Trace.trace("model_Unit" + model_Unit.unitId, Trace.CHANNEL.UI); } }
void OnProduceTimer(Model_Unit modelUnit) { UIHelper.LoadingPanelIsOpen(true); SlgPB.ProcessUnitRequest request = new SlgPB.ProcessUnitRequest(); request.api = new Model_ApiRequest().api; request.unitId = modelUnit.unitId; request.num = modelUnit.onProduce; (new PBConnect_FinishUnit()).Send(request, OnFinishProduce); }
public void ReqestTrainTank(Notification notification) { Model_Unit model_Unit = notification._data as Model_Unit; if (model_Unit != null && model_Unit.unitId == _dataUnit.id) { AddUnit(); } }
// 战斗力 public int CalcPower() { int power = 0; if (!isEmpty) { power = Model_Unit.CalcUnitPower(unitId, num, heroId); } return(power); }
public void RequestRepairTank(Notification notification) { if (notification._data == "RequestRepairTank") { RepairUnit(); } else { Model_Unit unit = notification._data as Model_Unit; _tankRepairItemDic.Remove(unit.unitId); _repairGrid.Reposition(); } }
public void UpdateUI() { if (_dataUnit != null) { units = InstancePlayer.instance.model_User.unlockUnits; if (units != null && units.ContainsKey(_dataUnit.id)) { _model_Unit = units[_dataUnit.id]; } _TankNameLabel.color = _unitData.nameColor; // _iconBg.spriteName = _unitData.iconBgName; _TankIcon.SetUnitBigTexture(_dataUnit.id); _TankNameLabel.text = _dataUnit.name; _FightingValueLabel.text = _dataUnit.battleParam.hp.ToString(); _APValueLabel.text = _dataUnit.battleParam.damage.ToString(); _HPValueLabel.text = _dataUnit.battleParam.hp.ToString(); _DPValueLabel.text = _dataUnit.battleParam.ammo.ToString(); _HitRateValueLabel.text = _dataUnit.battleParam.hitRate.ToString(); _SpeedValueLabel.text = _dataUnit.speed.ToString(); _LengthValueLabel.text = _dataUnit.length.ToString(); _DoubleDamageRateValueLabel.text = _dataUnit.battleParam.doubleDamageRate.ToString(); if (_model_Unit != null) { _CurrentTankValueLabel.text = _model_Unit.num.ToString(); } else { _CurrentTankValueLabel.text = "0"; } if (_unitData.isUnLock) { _strongBtn.gameObject.SetActive(true); _RecyclingBtn.gameObject.SetActive(true); _productBtn.gameObject.SetActive(true); } else { _strongBtn.gameObject.SetActive(false); _RecyclingBtn.gameObject.SetActive(false); _productBtn.gameObject.SetActive(false); } } }
// 创建本地测试数据 private Dictionary <int, Model_Unit> CreateLocalTestUnits() { Dictionary <int, Model_Unit> model_Units = InstancePlayer.instance.model_User.unlockUnits; DataUnit[] allDataUnits = DataManager.instance.dataUnitsGroup.GetAllUnits(); for (int i = 0; i < allDataUnits.Length; ++i) { DataUnit dataUnit = allDataUnits[i]; Model_Unit model_Unit = new Model_Unit(); model_Unit.unitId = dataUnit.id; model_Unit.num = (int)RandomHelper.Range(50, 200); model_Units.Add(model_Unit.unitId, model_Unit); } return(model_Units); }
public override void Open(params object[] parameters) { base.Open(parameters); _resArr = parameters[0] as int[]; _resourcesBuyType = (ResourcesBuyType)parameters[1]; switch (_resourcesBuyType) { case ResourcesBuyType.TrainTankType: _model_unit = parameters[2] as Model_Unit; break; case ResourcesBuyType.StrengThenPartType: _StrengthenTimes = (int)parameters[2]; break; } InitUI(); UpdateUI(); }
public void Init(CountdownData.Countdown data) { _countdown = data; _type = _countdown.dataType; // Trace.trace(" data " + data.dataType,Trace.CHANNEL.UI); switch (_type) { case CountdownData.CountdownType.BUILDINGUP: _modelBuilding = _countdown.data as Model_Building; break; case CountdownData.CountdownType.PRODUCTION: _modelUnit = _countdown.data as Model_Unit; break; case CountdownData.CountdownType.REPAIR: _modelRepairUnit = _countdown.data as Model_RepairUnit; break; } }
void UpdateItem() { _repairUnits = InstancePlayer.instance.model_User.unlockUnits; if (_needRepairUnitsList == null) { _needRepairUnitsList = new List <Model_Unit>(); } else { _needRepairUnitsList.Clear(); } foreach (KeyValuePair <int, Model_Unit> kv in _repairUnits) { Model_Unit model_Unit = kv.Value; if (model_Unit.onDamaged > 0 || model_Unit.onRepair > 0) { _needRepairUnitsList.Add(model_Unit); Trace.trace("_needRepairUnitsList " + model_Unit.unitId, Trace.CHANNEL.UI); } } // SetWrapContent(_repairGrid,_repairScroll,_needRepairUnitsList,OnUpdateItemMain); }
// unit // ============================================================ public void UpdateUnit(SlgPB.Unit slgUnit) { Model_Unit model_Unit; int unitId = slgUnit.unitId; unlockUnits.TryGetValue(unitId, out model_Unit); if (model_Unit == null) { model_Unit = new Model_Unit(); unlockUnits.Add(unitId, model_Unit); } model_Unit.Parse(slgUnit); // 添加已解锁unitId if (!unlockUnitsId.Contains(unitId)) { unlockUnitsId.Add(unitId); } //服务器下发Unit 数量 //DataUnit dataUnit = DataManager.instance.dataUnitsGroup.GetUnit (slgUnit.unitId); //Trace.trace ("id," + slgUnit.unitId + ",name," + dataUnit.name + ",num," + slgUnit.num, Trace.CHANNEL.UI); }
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); }
public void Init(Model_Unit model_Unit) { _model_Unit = model_Unit; }