using UnityEngine;
|
using UnityEngine.UI;
|
using System.Collections;
|
using System;
|
|
namespace vnxbqy.UI
|
{
|
public class CrossServerOneVsOnePKPlayerCell : MonoBehaviour
|
{
|
[SerializeField] RawImage playerRaw;
|
[SerializeField] Text nameText;
|
[SerializeField] Text fightPointTxt;
|
[SerializeField] Text winScoreTxt;
|
[SerializeField] Button challengeBtn;
|
|
CrossServerOneVsOneModel crossServerModel { get { return ModelCenter.Instance.GetModel<CrossServerOneVsOneModel>(); } }
|
RoleParticularModel model { get { return ModelCenter.Instance.GetModel<RoleParticularModel>(); } }
|
ServerMirrorFightModel mirrorFightModel { get { return ModelCenter.Instance.GetModel<ServerMirrorFightModel>(); } }
|
|
DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
|
|
public void Display(int index)
|
{
|
if (index >= crossServerModel.matchPlayers.Count)
|
return;
|
|
var matchPlayer = crossServerModel.matchPlayers[index];
|
ShowRawPlayer((int)matchPlayer.PlayerID, index);
|
nameText.text = matchPlayer.PlayerName;
|
fightPointTxt.text = UIHelper.ReplaceLargeArtNum(matchPlayer.FightPowerEx * Constants.ExpPointValue + matchPlayer.FightPower);
|
winScoreTxt.text = Language.Get("CrossServerOneVsOne2") + crossServerModel.winConstScoreArr[index].ToString();
|
|
challengeBtn.AddListener(() =>
|
{
|
int remainNum = CrossServerOneVsOnePlayerInfo.Instance.GetDayRemainNum();
|
if (remainNum <= 0)
|
{
|
SysNotifyMgr.Instance.ShowTip("TryEnterJadeDynastyBossError_4");
|
return;
|
}
|
|
int error;
|
if (!dungeonModel.CanEnter(out error))
|
{
|
dungeonModel.ProcessEnterError(error);
|
return;
|
}
|
|
|
if (matchPlayer.PlayerID > 10000)
|
{
|
var teamModel = ModelCenter.Instance.GetModel<TeamModel>();
|
if (teamModel.isMatching)
|
{
|
teamModel.RequestCancelAutoMatchTeam();
|
}
|
|
CrossServerLogin.Instance.InitOneVsOnePlayerInfo(matchPlayer);
|
mirrorFightModel.SendMirrorFight(CrossServerOneVsOneModel.CrossServerDataMapId, 0, matchPlayer.PlayerID, 0);
|
}
|
else
|
{
|
CrossServerLogin.Instance.InitOneVsOneClientPlayerInfo(matchPlayer);
|
ClientCrossServerOneVsOne.JiaMatchOk(matchPlayer);
|
}
|
});
|
}
|
|
|
|
|
void ShowRawPlayer(int playerID, int index)
|
{
|
if (playerID < 10000)
|
{
|
ShowRobot(playerID, index);
|
return;
|
}
|
var viewPlayerData = model.GetViewPlayerData(playerID);
|
if (viewPlayerData == null)
|
{
|
return;
|
}
|
|
int _suitLevel = (int)(viewPlayerData.rolePropData.EquipShowSwitch % 10);
|
int clothes = viewPlayerData.GetItemId(RoleEquipType.Clothes);
|
int weapon = viewPlayerData.GetItemId(RoleEquipType.Weapon);
|
int wing = viewPlayerData.GetItemId(RoleEquipType.Wing);
|
int weapon2 = viewPlayerData.GetItemId(RoleEquipType.Weapon2);
|
int fashionClothes = viewPlayerData.GetItemId(RoleEquipType.FashionClothes);
|
int fashionWeapon = viewPlayerData.GetItemId(RoleEquipType.FashionWeapon);
|
int fashionWeapon2 = viewPlayerData.GetItemId(RoleEquipType.FashionWeapon2);
|
var reikiRootEffectId = viewPlayerData.rolePropData.EquipShowSwitch / 1000 % 1000;
|
|
|
var data = new UI3DPlayerExhibitionData
|
{
|
job = viewPlayerData.rolePropData.Job,
|
fashionClothesId = fashionClothes,
|
fashionWeaponId = fashionWeapon,
|
fashionSecondaryId = fashionWeapon2,
|
clothesId = clothes,
|
suitLevel = _suitLevel,
|
weaponId = weapon,
|
wingsId = wing,
|
secondaryId = weapon2,
|
reikiRootEffectId = (int)reikiRootEffectId,
|
isDialogue = false,
|
equipLevel = (int)viewPlayerData.rolePropData.EquipShowSwitch / 10 % 100,
|
titleID = viewPlayerData.rolePropData.TitleID,
|
};
|
|
if (index == 0)
|
UI3DModelExhibition.InstanceClone1.ShowPlayer(playerRaw, data);
|
else if (index == 1)
|
UI3DModelExhibition.InstanceClone2.ShowPlayer(playerRaw, data);
|
else if (index == 2)
|
UI3DModelExhibition.InstanceClone3.ShowPlayer(playerRaw, data);
|
|
playerRaw.raycastTarget = false;
|
}
|
|
void ShowRobot(int playerID, int index)
|
{
|
var robot = crossServerModel.robots[playerID];
|
|
int clothesID = 0;
|
int weaponID1 = 0;
|
int weaponID2 = 0;
|
// 因为衣服是所有装备的父节点, 需要预先处理衣服
|
for (int i = 0; i < robot.itemDatas.Length; ++i)
|
{
|
var _itemInfo = robot.itemDatas[i];
|
|
if (_itemInfo.place == (int)RoleEquipType.Clothes)
|
{
|
clothesID = (int)_itemInfo.id;
|
}
|
if (_itemInfo.place == (int)RoleEquipType.Weapon)
|
{
|
weaponID1 = (int)_itemInfo.id;
|
}
|
else if (_itemInfo.place == (int)RoleEquipType.Weapon2)
|
{
|
weaponID2 = (int)_itemInfo.id;
|
}
|
}
|
|
|
var data = new UI3DPlayerExhibitionData
|
{
|
job = robot.job,
|
clothesId = clothesID,
|
weaponId = weaponID1,
|
secondaryId = weaponID2,
|
};
|
|
if (index == 0)
|
UI3DModelExhibition.InstanceClone1.ShowPlayer(playerRaw, data);
|
else if (index == 1)
|
UI3DModelExhibition.InstanceClone2.ShowPlayer(playerRaw, data);
|
else if (index == 2)
|
UI3DModelExhibition.InstanceClone3.ShowPlayer(playerRaw, data);
|
|
playerRaw.raycastTarget = false;
|
}
|
}
|
}
|