using Snxxz.UI;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
|
namespace EnhancedUI.EnhancedScroller
|
{
|
public class ViewFuncCell : ScrollerUI
|
{
|
[SerializeField] Image m_FuncIcon;
|
[SerializeField] Text m_CompareFightPower;
|
[SerializeField] Text m_MyFightPower;
|
[SerializeField] Text[] m_CompareDescs;
|
[SerializeField] Text[] m_MyDescs;
|
[SerializeField] Image m_CompareRealmIcon;
|
[SerializeField] Image m_MyRealmIcon;
|
|
RoleParticularModel model { get { return ModelCenter.Instance.GetModel<RoleParticularModel>(); } }
|
TreasureModel treasureModel { get { return ModelCenter.Instance.GetModel<TreasureModel>(); } }
|
PetModel petModel { get { return ModelCenter.Instance.GetModel<PetModel>(); } }
|
MountModel horseModel { get { return ModelCenter.Instance.GetModel<MountModel>(); } }
|
PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } }
|
EquipGemModel equipGemModel { get { return ModelCenter.Instance.GetModel<EquipGemModel>(); } }
|
ReikiRootModel reikiRootModel { get { return ModelCenter.Instance.GetModel<ReikiRootModel>(); } }
|
EquipStarModel equipStarModel { get { return ModelCenter.Instance.GetModel<EquipStarModel>(); } }
|
EquipModel equipModel { get { return ModelCenter.Instance.GetModel<EquipModel>(); } }
|
EquipStrengthModel equipStrengthModel { get { return ModelCenter.Instance.GetModel<EquipStrengthModel>(); } }
|
EquipTrainModel equipTrainModel { get { return ModelCenter.Instance.GetModel<EquipTrainModel>(); } }
|
MagicianModel godWeaponModel { get { return ModelCenter.Instance.GetModel<MagicianModel>(); } }
|
RuneModel runeModel { get { return ModelCenter.Instance.GetModel<RuneModel>(); } }
|
TreasureSkillModel treasureSkillModel { get { return ModelCenter.Instance.GetModel<TreasureSkillModel>(); } }
|
AlchemyModel alchemyModel { get { return ModelCenter.Instance.GetModel<AlchemyModel>(); } }
|
|
|
public override void Refresh(CellView cell)
|
{
|
var otherPlayerInfo = model.GetViewPlayerData(model.viewPlayer);
|
int funcId = cell.index;
|
var config = ViewRoleFuncConfig.Get(funcId);
|
if (otherPlayerInfo != null && config != null)
|
{
|
m_FuncIcon.SetSprite(config.Icon);
|
|
m_CompareFightPower.text = StringUtility.Contact(Language.Get("RoleParticularWin_4"),
|
UIHelper.ReplaceLargeNum(otherPlayerInfo.rolePlusData.GetFightPower(funcId)));
|
m_MyFightPower.text = StringUtility.Contact(Language.Get("RoleParticularWin_5"),
|
UIHelper.ReplaceLargeNum(model.GetFuncFightPower(funcId)));
|
|
int targetValue1 = 0;
|
int selfValue1 = 0;
|
int targetValue2 = 0;
|
int selfValue2 = 0;
|
|
bool handled = false;
|
bool towCompare = false;
|
|
m_MyRealmIcon.SetActive(false);
|
m_CompareRealmIcon.SetActive(false);
|
|
switch ((FuncPowerType)funcId)
|
{
|
case FuncPowerType.Reiki:
|
{
|
foreach (var id in reikiRootModel.reikiRoots)
|
{
|
selfValue1 += reikiRootModel.GetReikiRootPoint(id);
|
}
|
if (otherPlayerInfo.rolePropData.LingGenPoint != null)
|
{
|
foreach (var point in otherPlayerInfo.rolePropData.LingGenPoint)
|
{
|
targetValue1 += point;
|
}
|
}
|
}
|
break;
|
case FuncPowerType.Equip:
|
{
|
var singlePack = packModel.GetSinglePack(PackType.Equip);
|
if (singlePack != null)
|
{
|
var equips = singlePack.GetAllItems();
|
if (equips != null)
|
{
|
foreach (var item in equips.Values)
|
{
|
if (ItemLogicUtility.Instance.IsRealmEquip(item.itemId))
|
{
|
if (item.config.ItemColor >= config.condition[0])
|
{
|
selfValue1++;
|
}
|
}
|
}
|
}
|
}
|
|
targetValue1 = otherPlayerInfo.rolePlusData.orangeEquipsCount;
|
}
|
break;
|
case FuncPowerType.Star:
|
{
|
var singlePack = packModel.GetSinglePack(PackType.Equip);
|
if (singlePack != null)
|
{
|
var equips = singlePack.GetAllItems();
|
if (equips != null)
|
{
|
foreach (var item in equips.Values)
|
{
|
selfValue1 += equipStarModel.GetEquipStarLevel(new Int2(item.config.LV, item.config.EquipPlace));
|
}
|
}
|
}
|
|
targetValue1 = otherPlayerInfo.rolePlusData.totalEquipStarLevel;
|
}
|
break;
|
case FuncPowerType.Plus:
|
{
|
var singlePack = packModel.GetSinglePack(PackType.Equip);
|
if (singlePack != null)
|
{
|
var equips = singlePack.GetAllItems();
|
if (equips != null)
|
{
|
foreach (var item in equips.Values)
|
{
|
selfValue1 += equipStrengthModel.GetStrengthLevel(item.config.LV, item.config.EquipPlace);
|
}
|
}
|
}
|
|
targetValue1 = otherPlayerInfo.rolePlusData.totalEquipStrengthLevel;
|
}
|
break;
|
case FuncPowerType.Stone:
|
targetValue1 = otherPlayerInfo.rolePlusData.totalGemsLevel;
|
selfValue1 = equipGemModel.GetAllGemsLevel();
|
break;
|
case FuncPowerType.Wash:
|
{
|
var singlePack = packModel.GetSinglePack(PackType.Equip);
|
if (singlePack != null)
|
{
|
var equips = singlePack.GetAllItems();
|
if (equips != null)
|
{
|
foreach (var item in equips.Values)
|
{
|
selfValue1 += Mathf.Max(0, equipTrainModel.GetTrainLevel(new Int2(item.config.LV, item.config.EquipPlace)));
|
}
|
}
|
}
|
|
targetValue1 = otherPlayerInfo.rolePlusData.totalEquipWashLevel;
|
}
|
break;
|
case FuncPowerType.Alchemy:
|
{
|
var drugs = alchemyModel.GetAlchemyDrugs();
|
foreach (var drugId in drugs)
|
{
|
AlchemyDrugUseLimit drugUseLimit;
|
if (alchemyModel.TryGetAlchemyUseLimit(drugId, out drugUseLimit))
|
{
|
selfValue1 += drugUseLimit.eatTimes;
|
}
|
}
|
|
targetValue1 = otherPlayerInfo.rolePlusData.GetUseAlchemyDrugsCount();
|
}
|
break;
|
case FuncPowerType.Pet:
|
selfValue1 = petModel._DicPetBack.Count;
|
targetValue1 = otherPlayerInfo.rolePlusData.Pet;
|
break;
|
case FuncPowerType.Horse:
|
selfValue1 = horseModel.HorseLV;
|
targetValue1 = otherPlayerInfo.rolePlusData.Horse;
|
break;
|
case FuncPowerType.Realm:
|
handled = true;
|
var realmConfig = RealmConfig.Get(PlayerDatas.Instance.baseData.realmLevel);
|
if (PlayerDatas.Instance.baseData.realmLevel > 0 && realmConfig != null)
|
{
|
m_MyRealmIcon.SetActive(true);
|
m_MyRealmIcon.SetSprite(realmConfig.Img);
|
m_MyRealmIcon.SetNativeSize();
|
m_MyDescs[0].text = config.compareTip[0];
|
}
|
else
|
{
|
m_MyRealmIcon.SetActive(false);
|
m_MyDescs[0].text = config.compareTip[0] + Language.Get("RoleParticularWin_6");
|
}
|
realmConfig = RealmConfig.Get(otherPlayerInfo.rolePropData.RealmLV);
|
if (otherPlayerInfo.rolePropData.RealmLV > 0 && realmConfig != null)
|
{
|
m_CompareRealmIcon.SetActive(true);
|
m_CompareRealmIcon.SetSprite(realmConfig.Img);
|
m_CompareRealmIcon.SetNativeSize();
|
m_CompareDescs[0].text = config.compareTip[0];
|
}
|
else
|
{
|
m_CompareRealmIcon.SetActive(false);
|
m_CompareDescs[0].text = config.compareTip[0] + Language.Get("RoleParticularWin_6");
|
}
|
break;
|
case FuncPowerType.GodWeapon:
|
foreach (var type in godWeaponModel.godWeaponTypes)
|
{
|
var data = godWeaponModel.GetGodWeaponInfo(type);
|
if (data != null)
|
{
|
selfValue1 += data.level;
|
}
|
targetValue1 += otherPlayerInfo.rolePlusData.GetGodWeaponLevel(type);
|
}
|
break;
|
case FuncPowerType.Rune:
|
selfValue1 = runeModel.GetRuneTotalLevel();
|
targetValue1 = otherPlayerInfo.rolePlusData.Rune;
|
break;
|
case FuncPowerType.Human:
|
selfValue1 += treasureModel.GetCollectedTreasureCount(TreasureCategory.Human);
|
targetValue1 = otherPlayerInfo.rolePlusData.GetTreasureCount((int)TreasureCategory.Human);
|
List<int> skills;
|
if (treasureSkillModel.TryGetSkills(out skills))
|
{
|
foreach (var skillId in skills)
|
{
|
TreasureSkill skill;
|
if (treasureSkillModel.TryGetSkill(skillId, out skill))
|
{
|
selfValue2 += skill.level;
|
}
|
}
|
}
|
targetValue2 = otherPlayerInfo.rolePlusData.totalSkillLevel;
|
towCompare = true;
|
break;
|
case FuncPowerType.Demon:
|
selfValue1 += treasureModel.GetCollectedTreasureCount(TreasureCategory.Demon);
|
targetValue1 = otherPlayerInfo.rolePlusData.GetTreasureCount((int)TreasureCategory.Demon);
|
break;
|
case FuncPowerType.Fairy:
|
selfValue1 += treasureModel.GetCollectedTreasureCount(TreasureCategory.Fairy);
|
targetValue1 = otherPlayerInfo.rolePlusData.GetTreasureCount((int)TreasureCategory.Fairy);
|
break;
|
case FuncPowerType.King:
|
selfValue1 += treasureModel.GetCollectedTreasureCount(TreasureCategory.King);
|
targetValue1 = otherPlayerInfo.rolePlusData.GetTreasureCount((int)TreasureCategory.King);
|
break;
|
}
|
if (!handled)
|
{
|
m_CompareDescs[0].text = string.Format(config.compareTip[0], targetValue1);
|
m_MyDescs[0].text = string.Format(config.compareTip[0], selfValue1);
|
if (towCompare)
|
{
|
m_CompareDescs[1].text = string.Format(config.compareTip[1], targetValue2);
|
m_MyDescs[1].text = string.Format(config.compareTip[1], selfValue2);
|
}
|
}
|
|
m_CompareDescs[1].SetActive(towCompare);
|
m_MyDescs[1].SetActive(towCompare);
|
}
|
}
|
}
|
}
|
|