private void OnGMLockClass(Event_ e) { var nc = proto; var c = (int)e.param1; var i = (int)e.param2; var ci = c > 0 ? ConfigManager.Get <CreatureInfo>(c) : null; m_lockedClass = ci ? ci.ID : m_proto; m_lockedGender = ci ? ci.gender : m_gender; var w = m_lockedClass == m_proto && i < 1 ? null : WeaponInfo.GetWeapon(m_lockedClass, i); if (w == null || w.isEmpty) { m_lockedElementType = m_elementType; } else { var a = ConfigManager.Get <WeaponAttribute>(w.weaponItemId); m_lockedElementType = a == null ? m_elementType : (CreatureElementTypes)a.elementType; } Logger.LogDetail("Lock class <b><color=#66EECC>[weapon:{0}, gender:{1}, weaponItem:{2}, elementType:{3}]</color></b>", proto, gender, w != null && !w.isEmpty ? w.weaponItemId : -1, elementType); DispatchEvent("OnPostGmLockClass", Event_.Pop(nc == proto)); }
private void SetElementDamageTextData(CreatureElementTypes elementType, int elementDamage) { Text t = GetTargetText(EnumDamageDisplayType.Element, (int)elementType); if (t) { t.gameObject.SetActive(elementDamage > 0); t.text = elementDamage.ToString(); } }
private void RefreshPublic(PropItemInfo propInfo) { if (!propInfo) { return; } if (propInfo.itemType == PropType.Weapon) { WeaponAttribute weaponAttributes = ConfigManager.Get <WeaponAttribute>(propInfo.ID); //武器名字 if (weapon_name) { weapon_name.gameObject.SetActive(true); weapon_name.text = propInfo.itemName; } //其他名字 if (other_name) { other_name.gameObject.SetActive(false); } CreatureElementTypes type = weaponAttributes ? (CreatureElementTypes)weaponAttributes.elementType : CreatureElementTypes.Count; //武器后面的属性描述 string attributeName = string.Empty; switch (type) { case CreatureElementTypes.Wind: attributeName = ConfigText.GetDefalutString(TextForMatType.EquipUIText, 15); break; case CreatureElementTypes.Fire: attributeName = ConfigText.GetDefalutString(TextForMatType.EquipUIText, 16); break; case CreatureElementTypes.Water: attributeName = ConfigText.GetDefalutString(TextForMatType.EquipUIText, 17); break; case CreatureElementTypes.Thunder: attributeName = ConfigText.GetDefalutString(TextForMatType.EquipUIText, 18); break; case CreatureElementTypes.Ice: attributeName = ConfigText.GetDefalutString(TextForMatType.EquipUIText, 19); break; default: break; } weapon_attbitue.text = attributeName; //左边图标 foreach (var attr in leftAttrDic) { attr.Value.gameObject.SetActive((int)attr.Key == propInfo.subType); } if (propInfo.subType == (int)WeaponSubType.Gun) { //星级 for (int i = 0; i < starsImages.Length; i++) { starsImages[i].gameObject.SetActive(i < propInfo.quality + 1); } //底板 for (int i = 0; i < bgQualityImages.Length; i++) { bgQualityImages[i].gameObject.SetActive(i + 1 == propInfo.quality); } } else//武器要特殊处理底板 { int index = (data.InvalidGrowAttr() ? 0 : data.growAttr.equipAttr.star) + 1; //底板 for (int i = 0; i < bgQualityImages.Length; i++) { bgQualityImages[i].gameObject.SetActive(i + 1 == index); } //星级 for (int i = 0; i < starsImages.Length; i++) { starsImages[i].gameObject.SetActive(i < index); } } } else { if (weapon_name) { weapon_name.gameObject.SetActive(false); } if (other_name) { other_name.gameObject.SetActive(true); other_name.text = propInfo.itemName; } //星级 for (int i = 0; i < starsImages.Length; i++) { starsImages[i].gameObject.SetActive(i < propInfo.quality); } } //换icon if (propInfo) { AtlasHelper.SetItemIcon(icon, propInfo); } }
public void ForingItem(PItem item, bool addLockEvent = true) { if (item == null) { return; } ForingUse(); PropItemInfo prop = ConfigManager.Get <PropItemInfo>(item.itemTypeId); WeaponAttribute weaponAttributes = ConfigManager.Get <WeaponAttribute>(item.itemTypeId); if (!prop) { return; } //名字 CreatureElementTypes elemrntType = weaponAttributes ? (CreatureElementTypes)weaponAttributes.elementType : CreatureElementTypes.Count; if (weaponName) { weaponName.text = prop.itemName; } if (levelTxt) { levelTxt.text = "+" + item.growAttr.equipAttr.strength.ToString(); } elementIcon.SafeSetActive(false); //武器属性 武器图标 if (prop.itemType == PropType.Weapon && prop.subType != (byte)WeaponSubType.Gun) { elementIcon.SafeSetActive(true); AtlasHelper.SetShared(elementIcon, m_element[(int)(elemrntType) - 1]); } int index = Module_Forging.instance.GetWeaponIndex(prop); if (index != -1) { AtlasHelper.SetShared(typeIcon, WEAPON_TYPE_IMG_NAMES[index]); } // //已装备 bool isContains = Module_Equip.instance.currentDressClothes.Contains(item); if (Module_Equip.instance.weapon != null && Module_Equip.instance.offWeapon != null) { if (item.itemId == Module_Equip.instance.weapon.itemId || item.itemId == Module_Equip.instance.offWeapon.itemId) { isContains = true; } } equiped.SafeSetActive(isContains); for (int i = 0; i < stars.Length; i++) { stars[i].SafeSetActive(i < prop.quality); } //锻造等级 m_leftLevel.SafeSetActive(true); var str = (ConsumePercentSubType)item.growAttr.equipAttr.star + ConfigText.GetDefalutString(224, 23); Util.SetText(m_leftLevel, str); if (addLockEvent) { SetLock(item); } }
public void ShowAttDamageNumber(int weaponDamage, bool isCritical = false, int elementDamage = 0, CreatureElementTypes type = CreatureElementTypes.Fire) { //Logger.LogWarning("weapon damage = {0} element damage = {1} element type = {2}", weaponDamage,elementDamage,type); InitComponent(); gameObject.SetActive(true); InitTextData(); EnumDamageDisplayType t = (weaponDamage > 0 ? EnumDamageDisplayType.Attack : EnumDamageDisplayType.None) | (elementDamage > 0 ? EnumDamageDisplayType.Element : EnumDamageDisplayType.None); SetDamageParentVisible(t); SetNormalTextData(weaponDamage, isCritical); SetElementDamageTextData(type, elementDamage); m_tween?.PlayForward(); }
void _Packet(ScRoleElementType p) { m_elementType = (CreatureElementTypes)p.elementType; }
/// <summary> /// Get target element defense /// </summary> /// <param name="elementType">Target element type</param> /// <returns></returns> public int GetElementDefense(CreatureElementTypes elementType) { return(GetElementDefense((int)elementType)); }