public void RemoveArtifact(ArtifactItem item) { _artifactsInventory.Remove(item); AddItem(item); RescaleStats(); }
private void RemoveArtifact() { if (Artifact) { _player.RemoveArtifact(Artifact); _removeButtonImage.sprite = _defaultSprite; Artifact = null; } }
public void MapValues() { ArtifactItem.TryMapValue(); SealPresentationNode.TryMapValue(); SeasonalChallengesPresentationNode.TryMapValue(); SeasonPass.TryMapValue(); SeasonPassProgression.TryMapValue(); SeasonPassUnlock.TryMapValue(); }
void UpdateArtifactItem() { _soulHeroList.Clear(); count = 0; ReloadHero(); _artifact = null; Dictionary <int, Artifact> _map = ObjectSelf.GetInstance().ArtifactContainerBag.GetArtifactMap(); for (int i = 0; i <= _map.Count; i++) { if (_map.ContainsKey(i)) { if (index + 1 == i) { _artifact = _map[i]; break; } } } ArtifactItem item = _artifactItem.GetComponent <ArtifactItem>(); item.ShowInfoSoul(_artifact, count); _item.ShowHeroData(); // 当到达满级之后 if (_artifact.GetArtifactDB().GetLevel() == 5) { bool ret = false; int[] recode = _artifact.GetArtifactDB().m_IntoRecord; int[] heroNum = _artifact.GetArtifactRow().getHeroNum(); for (int i = 0; i < heroNum.Length; i++) { if (heroNum[i] > recode[i]) { ret = true; break; } } if (!ret) { for (int i = 1; i < _emptyHero.transform.childCount; i++) { _emptyHero.transform.GetChild(i).gameObject.SetActive(false); } _emptyHero.transform.FindChild("TipsText").GetComponent <Text>().text = GameUtils.getString("relics_content16"); _emptyHero.transform.FindChild("TipsText").GetComponent <Text>().gameObject.SetActive(true); return; } } }
// 显示整个神器界面的信息 public void ShowInfo(Artifact artifact) { _artifact = artifact; _item = _artifactItem.AddComponent <ArtifactItem> (); _item.ShowInfoSoul(artifact, count); _item.ShowHeroData(); _item._soulBtn.onClick.RemoveAllListeners(); _item._soulBtn.onClick.AddListener(new UnityEngine.Events.UnityAction(OnClickSoulBtn)); ReloadHero(); }
// 加载一个神器 Item void LoadArtifactItem(int index, RectTransform cell) { if (index < _artifactList.Count) { ArtifactItem item = cell.gameObject.GetComponent <ArtifactItem>(); if (item == null) { item = cell.gameObject.AddComponent <ArtifactItem>(); } item.index = index; item.artiIndex = index; item.ShowInfo(_artifactList[index]); } }
public void AddArtifact(ArtifactItem item) { foreach (var slot in _artifactSlots) { if (slot.Artifact == null) { slot.AddArtifact(item); _artifactsInventory.Add(item); RemoveItem(item); RescaleStats(); return; } } }
public bool DeepEquals(DestinySeasonDefinition other) { return(other != null && ArtifactItem.DeepEquals(other.ArtifactItem) && BackgroundImagePath == other.BackgroundImagePath && DisplayProperties.DeepEquals(other.DisplayProperties) && SeasonNumber == other.SeasonNumber && SealPresentationNode.DeepEquals(other.SealPresentationNode) && SeasonalChallengesPresentationNode.DeepEquals(other.SeasonalChallengesPresentationNode) && SeasonPass.DeepEquals(other.SeasonPass) && SeasonPassProgression.DeepEquals(other.SeasonPassProgression) && SeasonPassUnlock.DeepEquals(other.SeasonPassUnlock) && StartTimeInSeconds == other.StartTimeInSeconds && StartDate == other.StartDate && EndDate == other.EndDate && Preview.DeepEquals(other.Preview) && Blacklisted == other.Blacklisted && Hash == other.Hash && Index == other.Index && Redacted == other.Redacted); }
public void UpdateRoleGodProps(GameClient client) { try { ShenQiData shenQiData = client.ClientData.shenQiData; int shenQiID = shenQiData.ShenQiID; if (shenQiID >= 1) { ArtifactItem artifactItem = null; lock (this.ShenQiRunTimeData.Mutex) { this.ShenQiRunTimeData.ArtifactXmlDict.TryGetValue(shenQiID, out artifactItem); } if (shenQiData.LifeAdd < artifactItem.PropArray[0] || shenQiData.DefenseAdd < artifactItem.PropArray[2] || shenQiData.AttackAdd < artifactItem.PropArray[1] || shenQiData.ToughnessAdd < artifactItem.PropArray[3]) { shenQiID--; } List <GodItem> godList = null; lock (this.ShenQiRunTimeData.Mutex) { godList = this.ShenQiRunTimeData.GodXmlList; } if (godList != null && godList.Count >= 1) { Dictionary <int, double> addPropsDict = new Dictionary <int, double>(); foreach (GodItem item in godList) { bool open = true; foreach (int id in item.OpenCondition) { if (id > shenQiID) { open = false; break; } } if (open) { foreach (Dictionary <int, double> propDic in item.ActivationProperty) { foreach (KeyValuePair <int, double> propItem in propDic) { addPropsDict[propItem.Key] = (addPropsDict.ContainsKey(propItem.Key) ? (addPropsDict[propItem.Key] + propItem.Value) : propItem.Value); } } } } foreach (KeyValuePair <int, double> item2 in addPropsDict) { client.ClientData.PropsCacheManager.SetExtPropsSingle(new object[] { 28, item2.Key, item2.Value }); } } } } catch (Exception ex) { LogManager.WriteLog(LogTypes.Error, string.Format("ShenQi :: 更新角色神像加成错误 roleid={0} ex:{1}", client.ClientData.RoleID, ex.Message), null, true); } }
public ShenQiData LevelUpShenQiData(GameClient client, int useBaoJi) { ShenQiData result; if (!GlobalNew.IsGongNengOpened(client, GongNengIDs.ShenQi, false)) { result = new ShenQiData { UpResultType = -1 }; } else { ShenQiData data = client.ClientData.shenQiData; try { if (null == data) { LogManager.WriteLog(LogTypes.Error, string.Format("ShenQi :: 注入失败,获取角色神器数据错误,角色id:{0}", client.ClientData.RoleID), null, true); return(new ShenQiData { UpResultType = 0 }); } ArtifactItem artifactItem = null; lock (this.ShenQiRunTimeData.Mutex) { this.ShenQiRunTimeData.ArtifactXmlDict.TryGetValue(data.ShenQiID, out artifactItem); } if (null == artifactItem) { LogManager.WriteLog(LogTypes.Error, string.Format("ShenQi :: 注入失败,获取角色神器数据配置项错误,角色id:{0}, ShenQiID:{1}", client.ClientData.RoleID, data.ShenQiID), null, true); return(new ShenQiData { UpResultType = 0 }); } if (client.ClientData.ShenLiJingHuaPoints < artifactItem.CostShenLiJingHua) { return(new ShenQiData { UpResultType = -2 }); } int GoldGoodsNum = 0; if (artifactItem.CostGoldGoodsID > 0) { GoldGoodsNum = Global.GetTotalGoodsCountByID(client, artifactItem.CostGoldGoodsID); } if (client.ClientData.YinLiang < artifactItem.CostGoldCoin && (artifactItem.CostGoldGoodsNum <= 0 || GoldGoodsNum < artifactItem.CostGoldGoodsNum)) { return(new ShenQiData { UpResultType = -4 }); } if (useBaoJi > 0 && client.ClientData.UserMoney < artifactItem.CostDiamond && !HuanLeDaiBiManager.GetInstance().HuanledaibiEnough(client, artifactItem.CostDiamond)) { return(new ShenQiData { UpResultType = -3 }); } GameManager.ClientMgr.ModifyShenLiJingHuaPointsValue(client, -artifactItem.CostShenLiJingHua, "神器注入_精华", true, true); if (artifactItem.CostGoldGoodsNum > 0 && GoldGoodsNum >= artifactItem.CostGoldGoodsNum) { bool oneUseBind = false; bool oneUseTimeLimit = false; if (Global.UseGoodsBindOrNot(client, artifactItem.CostGoldGoodsID, artifactItem.CostGoldGoodsNum, true, out oneUseBind, out oneUseTimeLimit) < 1) { return(new ShenQiData { UpResultType = -4 }); } } else if (!GameManager.ClientMgr.SubUserYinLiang(Global._TCPManager.MySocketListener, Global._TCPManager.tcpClientPool, Global._TCPManager.TcpOutPacketPool, client, artifactItem.CostGoldCoin, "神器注入_金币", false)) { return(new ShenQiData { UpResultType = -4 }); } if (useBaoJi > 0) { if (!GameManager.ClientMgr.SubUserMoney(Global._TCPManager.MySocketListener, Global._TCPManager.tcpClientPool, Global._TCPManager.TcpOutPacketPool, client, artifactItem.CostDiamond, "神器注入_钻石", true, true, false, DaiBiSySType.ShenQiXiTong)) { return(new ShenQiData { UpResultType = -4 }); } } int rate = 0; int r = Global.GetRandomNumber(0, 101); int[] addProps = null; for (int i = 0; i < artifactItem.QiangHuaRate.Length; i++) { rate += artifactItem.QiangHuaRate[i]; if (r <= rate) { addProps = artifactItem.QiangHuaArray[i]; data.BurstType = i; if (useBaoJi > 0 && 0 == i) { addProps = artifactItem.QiangHuaArray[1]; data.BurstType = 1; } break; } } data.LifeAdd += addProps[0]; data.LifeAdd = ((data.LifeAdd > artifactItem.PropArray[0]) ? artifactItem.PropArray[0] : data.LifeAdd); data.AttackAdd += addProps[1]; data.AttackAdd = ((data.AttackAdd > artifactItem.PropArray[1]) ? artifactItem.PropArray[1] : data.AttackAdd); data.DefenseAdd += addProps[2]; data.DefenseAdd = ((data.DefenseAdd > artifactItem.PropArray[2]) ? artifactItem.PropArray[2] : data.DefenseAdd); data.ToughnessAdd += addProps[3]; data.ToughnessAdd = ((data.ToughnessAdd > artifactItem.PropArray[3]) ? artifactItem.PropArray[3] : data.ToughnessAdd); if (data.LifeAdd < artifactItem.PropArray[0] || data.DefenseAdd < artifactItem.PropArray[2] || data.AttackAdd < artifactItem.PropArray[1] || data.ToughnessAdd < artifactItem.PropArray[3]) { data.UpResultType = 1; } else if (this.ShenQiRunTimeData.ArtifactXmlDict.ContainsKey(data.ShenQiID + 1)) { data.UpResultType = 2; data.ShenQiID++; data.LifeAdd = 0; data.AttackAdd = 0; data.DefenseAdd = 0; data.ToughnessAdd = 0; } else { data.UpResultType = 3; } data.ShenLiJingHuaLeft = client.ClientData.ShenLiJingHuaPoints; List <int> props = new List <int>(); props.AddRange(new int[] { data.ShenQiID, data.LifeAdd, data.AttackAdd, data.DefenseAdd, data.ToughnessAdd }); Global.SaveRoleParamsIntListToDB(client, props, "36", true); client.ClientData.shenQiData = data; this.UpdateRoleShenQiProps(client); this.UpdateRoleTouhgnessProps(client); if (data.UpResultType == 2 || data.UpResultType == 3) { this.UpdateRoleGodProps(client); GameManager.logDBCmdMgr.AddDBLogInfo(-1, "神像", "神器升阶", client.ClientData.RoleName, "系统", "增加", 1, client.ClientData.ZoneID, client.strUserID, data.ShenQiID, client.ServerId, null); } GameManager.logDBCmdMgr.AddDBLogInfo(-1, "韧性", "神器注入_韧性", client.ClientData.RoleName, "系统", "增加", addProps[3], client.ClientData.ZoneID, client.strUserID, Convert.ToInt32(RoleAlgorithm.GetExtProp(client, 101)), client.ServerId, null); GameManager.ClientMgr.NotifyUpdateEquipProps(Global._TCPManager.MySocketListener, Global._TCPManager.TcpOutPacketPool, client); GameManager.ClientMgr.NotifyOthersLifeChanged(Global._TCPManager.MySocketListener, Global._TCPManager.TcpOutPacketPool, client, true, false, 7); } catch (Exception ex) { LogManager.WriteLog(LogTypes.Error, string.Format("ShenQi :: 升级角色神器数据错误 roleid={0} ex:{1}", client.ClientData.RoleID, ex.Message), null, true); return(data); } result = data; } return(result); }
public void LoadArtifactXml() { string fileName = ""; try { fileName = Global.GameResPath(ShenQiConsts.Artifact); XElement xml = CheckHelper.LoadXml(fileName, true); if (null != xml) { Dictionary <int, ArtifactItem> artifactDict = new Dictionary <int, ArtifactItem>(); IEnumerable <XElement> nodes = xml.Elements(); foreach (XElement xmlItem in nodes) { if (xmlItem != null) { int id = Convert.ToInt32(Global.GetDefAttributeStr(xmlItem, "ID", "0")); string name = Global.GetDefAttributeStr(xmlItem, "Name", ""); int[] propArray = new int[] { Convert.ToInt32(Global.GetDefAttributeStr(xmlItem, "LifeV", "0")), Convert.ToInt32(Global.GetDefAttributeStr(xmlItem, "AddAttack", "0")), Convert.ToInt32(Global.GetDefAttributeStr(xmlItem, "AddDefense", "0")), Convert.ToInt32(Global.GetDefAttributeStr(xmlItem, "Toughness", "0")) }; string[] qiangHua = Global.GetDefAttributeStr(xmlItem, "QiangHua", "").Split(new char[] { '|' }); int[] qiangHuaRateArray = new int[3]; int[][] qiangHuaArray = new int[3][]; for (int i = 0; i < qiangHua.Length; i++) { string[] item = qiangHua[i].Split(new char[] { ',' }); qiangHuaRateArray[i] = (int)(Convert.ToDouble(item[0]) * 100.0); qiangHuaArray[i] = new int[4]; qiangHuaArray[i][0] = Convert.ToInt32(item[1]); qiangHuaArray[i][1] = Convert.ToInt32(item[2]); qiangHuaArray[i][2] = Convert.ToInt32(item[3]); qiangHuaArray[i][3] = Convert.ToInt32(item[4]); } int costShenLi = Convert.ToInt32(Global.GetDefAttributeStr(xmlItem, "CostShenLiJingHua", "0")); int costJinBi = Convert.ToInt32(Global.GetDefAttributeStr(xmlItem, "CostGoldCoin", "0")); int costZuanShi = Convert.ToInt32(Global.GetDefAttributeStr(xmlItem, "CostDiamond", "0")); int costGoldGoodsID = 0; int costGoldGoodsNum = 0; string[] costGoldGoods = Global.GetDefAttributeStr(xmlItem, "CostGoldGoods", "").Split(new char[] { ',' }); if (costGoldGoods.Length == 2) { costGoldGoodsID = Convert.ToInt32(costGoldGoods[0]); costGoldGoodsNum = Convert.ToInt32(costGoldGoods[1]); } artifactDict[id] = new ArtifactItem { ID = id, Name = name, PropArray = propArray, QiangHuaRate = qiangHuaRateArray, QiangHuaArray = qiangHuaArray, CostShenLiJingHua = costShenLi, CostGoldCoin = costJinBi, CostDiamond = costZuanShi, CostGoldGoodsID = costGoldGoodsID, CostGoldGoodsNum = costGoldGoodsNum }; } } lock (this.ShenQiRunTimeData.Mutex) { this.ShenQiRunTimeData.ArtifactXmlDict = artifactDict; } } } catch (Exception ex) { LogManager.WriteLog(LogTypes.Fatal, string.Format("加载xml配置文件:{0}, 失败。", fileName), ex, true); } }
public void AddArtifact(ArtifactItem artifact) { Artifact = artifact; _removeButtonImage.sprite = artifact.SpriteImage; }