//更改显示位置 public void ChangeShowPos(Protomsg.UnitDatas data, float scale) { UnityEntity unity = m_UnityEntitys[data.ID]; if (unity != null) { unity.ChangeShowPos(scale, data.X, data.Y); } }
//更改单位数据 public void ChangeUnityEntity(Protomsg.UnitDatas data) { UnityEntity unity = m_UnityEntitys[data.ID]; if (unity != null) { unity.Change(data); } }
public int WatchVedioAddDiamond; //观看视频能获得的砖石数 public UnityEntity(Protomsg.UnitDatas data, GameScene scene) { //m_AllWords = new Dictionary<WordsInfo, WordsInfo>(); RotateSpeed = 480; m_Scene = scene; Name = data.Name; GuildName = data.GuildName; Level = data.Level; Experience = data.Experience; MaxExperience = data.MaxExperience; HP = data.HP; MP = data.MP; MaxHP = data.MaxHP; MaxMP = data.MaxMP; ControlID = data.ControlID; AttackAnim = data.AttackAnim; ModeType = data.ModeType; ID = data.ID; TypeID = data.TypeID; TeamID = data.TeamID; GuildID = data.GuildID; GroupID = data.GroupID; Gold = data.Gold; Diamond = data.Diamond; RemainReviveTime = data.RemainReviveTime; RemainExperience = data.RemainExperience; ReviveGold = data.ReviveGold; ReviveDiamond = data.ReviveDiamond; SkillEnable = data.SkillEnable; ItemEnable = data.ItemEnable; RemainWatchVedioCountToday = data.RemainWatchVedioCountToday; WatchVedioAddDiamond = data.WatchVedioAddDiamond; CharacterID = data.Characterid; X = data.X; Y = data.Y; Z = data.Z; IsMirrorImage = data.IsMirrorImage; AttackRange = data.AttackRange; DirectionX = data.DirectionX; DirectionY = data.DirectionY; AttackMode = data.AttackMode; //攻击模式(1:和平模式 2:组队模式 3:全体模式 4:阵营模式(玩家,NPC) 5:行会模式) UnitType = data.UnitType; //需要数据 ModeType AttackAcpabilities = data.AttackAcpabilities; IsMain = data.IsMain; IsDeath = data.IsDeath; Camp = data.Camp; //InOtherSpace = data.InOtherSpace; AttackTime = data.AttackTime; if (data.SD.Count > 0) { m_SkillDatas = new Protomsg.SkillDatas[data.SD.Count]; int index = 0; foreach (var item in data.SD) { m_SkillDatas[index++] = item; } } FreshBuff(data.BD); FreshItemSkill(data.ISD); m_Mode.transform.position = new Vector3(data.X, data.Z, data.Y); AnimotorState = data.AnimotorState; AnimotorPause = data.AnimotorPause; if (data.IsMiss) { this.ShowMiss(); } }
//创建新单位 public void CreateUnityEntity(GameScene gs, Protomsg.UnitDatas data) { UnityEntity hero = new UnityEntity(data, gs); m_UnityEntitys[hero.ID] = hero; }
public void Change(Protomsg.UnitDatas data) { // 更新位置 if (m_Mode != null) { //Vector3 add = new Vector3(data.X, 0, data.Y); X += data.X; Y += data.Y; Z += data.Z; IsMirrorImage += data.IsMirrorImage; AttackRange += data.AttackRange; //更新位置 m_Mode.transform.position = new Vector3(X, Z, Y); AttackTime += data.AttackTime; AnimotorState += data.AnimotorState; AnimotorPause += data.AnimotorPause; //更新方向 DirectionX += data.DirectionX; DirectionY += data.DirectionY; var dir = new Vector3(DirectionX, 0, DirectionY); //if(data.DirectionX != 0 || data.DirectionY != 0) //{ // if(UnitType == 1) // { // Debug.Log("----direction:" + DirectionX + " " + DirectionY); // } //} //var dir = new Vector3(1, 0, 1); if (dir != Vector3.zero) { ChangeDirection(dir); } //-----更新其他数据---- //Name = data.Name; Level += data.Level; Experience += data.Experience; MaxExperience += data.MaxExperience; HP += data.HP; MP += data.MP; MaxHP += data.MaxHP; MaxMP += data.MaxMP; TeamID += data.TeamID; GuildID += data.GuildID; GroupID += data.GroupID; CharacterID += data.Characterid; Gold += data.Gold; Diamond += data.Diamond; RemainReviveTime += data.RemainReviveTime; RemainExperience += data.RemainExperience; ReviveGold += data.ReviveGold; ReviveDiamond += data.ReviveDiamond; SkillEnable += data.SkillEnable; ItemEnable += data.ItemEnable; RemainWatchVedioCountToday += data.RemainWatchVedioCountToday; WatchVedioAddDiamond += data.WatchVedioAddDiamond; //if( data.HP != 0) //{ // Debug.Log("hp:" + HP + " maxhp:" + MaxHP); //} // if (data.ModeType != "") { ModeType = data.ModeType; } if (data.Name != "") { Name = data.Name; } if (data.GuildName != "") { GuildName = data.GuildName; } ControlID += data.ControlID; AttackAnim += data.AttackAnim; AttackMode += data.AttackMode; UnitType += data.UnitType; //需要数据 ModeType AttackAcpabilities += data.AttackAcpabilities; IsMain += data.IsMain; IsDeath += data.IsDeath; Camp += data.Camp; UpdateTopBar(); if (data.IsMiss) { this.ShowMiss(); } //技能数据 foreach (var item in data.SD) { for (var i = 0; i < m_SkillDatas.Length; i++) { if (item.TypeID == m_SkillDatas[i].TypeID) { m_SkillDatas[i].Level += item.Level; m_SkillDatas[i].RemainCDTime += item.RemainCDTime; m_SkillDatas[i].CanUpgrade += item.CanUpgrade; m_SkillDatas[i].Index += item.Index; m_SkillDatas[i].CastType += item.CastType; m_SkillDatas[i].CastTargetType += item.CastTargetType; m_SkillDatas[i].UnitTargetTeam += item.UnitTargetTeam; m_SkillDatas[i].UnitTargetCamp += item.UnitTargetCamp; m_SkillDatas[i].NoCareMagicImmune += item.NoCareMagicImmune; m_SkillDatas[i].CastRange += item.CastRange; m_SkillDatas[i].Cooldown += item.Cooldown; m_SkillDatas[i].HurtRange += item.HurtRange; m_SkillDatas[i].ManaCost += item.ManaCost; m_SkillDatas[i].AttackAutoActive += item.AttackAutoActive; m_SkillDatas[i].Visible += item.Visible; m_SkillDatas[i].RemainSkillCount += item.RemainSkillCount; } } } //刷新buff FreshBuff(data.BD); FreshItemSkill(data.ISD); } }