public void AddSolider(int indexId, SoliderInfo soliderInfo) { if (!soliderDict.ContainsKey(indexId)) { soliderDict.Add(indexId, soliderInfo); } }
public void EnterExcute() { Debug.Log("BarrackInfo DoAction Start"); barrackInfo.DoAction("start"); curTime = 0; for (int i = 0; i < 3; i++) { //如果兵营中已存在该Index的兵种 if (barrackInfo.ContainsSolider(i)) { SoliderInfo solider = barrackInfo.GetSolider(i); //如果该兵种已死亡 if (solider.IsDead()) { solider.Reset(); solider.ChangeState("ready"); } } //如果兵营不存在该Index兵种 else { SoliderInfo solider = EntityManager.getInstance().AddSolider(barrackInfo.soliderId); solider.SetBarrackPos(barrackInfo.soliderPos[i], barrackInfo.GetPosition()); solider.ChangeState("ready"); barrackInfo.AddSolider(i, solider); } } }
void Start() { Al = GetComponent <AudioListener> (); shot = GetComponent <Shot> (); Pv = GetComponent <PhotonView> (); Vpoint = GameObject.Find("Vpoint"); info = GetComponent <SoliderInfo> (); }
public SoliderInfo AddSolider(int soliderId) { soliderIndexId += 1; SoliderInfo charInfo = new SoliderInfo(soliderIndexId, soliderId); soliders.Add(soliderIndexId, charInfo); this.eventDispatcher.Broadcast("AddSolider", charInfo); return(charInfo); }
public void InitSoliderDict() { Vector3 [] pos = new Vector3[4]; pos[1] = new Vector3(signPos.x + 30, signPos.y + 40, signPos.z); pos[2] = new Vector3(signPos.x - 30, signPos.y + 40, signPos.z); pos[3] = new Vector3(signPos.x, signPos.y + 40, signPos.z); for (int i = 1; i <= 3; i++) { SoliderInfo solider = EntityManager.getInstance().AddSolider(50001); solider.SetTowerInfo(this, i, pos[i]); solider.ChangeState("ready"); soliderDict.Add(i, solider); } }
public void AddSolider(object[] data) { SoliderInfo charInfo = (SoliderInfo)data[0]; SoliderView charView = new SoliderView(charInfo); charView.LoadModel(); if (soliders.ContainsKey(charInfo.Id)) { soliders[charInfo.Id] = charView; } else { soliders.Add(charInfo.Id, charView); } }
public SoliderInfo AddSolider(int soliderId) { soliderIndexId += 1; if (!soliderPrototypes.ContainsKey(soliderId)) { soliderPrototypes.Add(soliderId, new CharacterPrototype(soliderId, CharacterType.Solider)); } CharacterPrototype proto = soliderPrototypes[soliderId]; SoliderInfo charInfo = proto.CloneSolider(soliderIndexId); //soliders.Add(soliderIndexId, charInfo); //标记为“添加” charInfo.SetDirtySign(false); soliderTempList.Add(soliderIndexId, charInfo); this.eventDispatcher.Broadcast("AddSolider", charInfo); return(charInfo); }
public SoliderMove(SoliderInfo _soliderInfo) { soliderInfo = _soliderInfo; }
//普通攻击放到状态机里做,技能用SkillManager做,普通攻击不作为技能处理 public SoliderAtk(SoliderInfo _soliderInfo) { soliderInfo = _soliderInfo; attackTime = 0; curTime = 0; }
public SoliderReady(SoliderInfo _soliderInfo) { soliderInfo = _soliderInfo; }
public SoliderDead(SoliderInfo _soliderInfo) { soliderInfo = _soliderInfo; }
void Start() { SINFO = GetComponent <SoliderInfo> (); }
public SoliderView(SoliderInfo _soliderInfo) { this.soliderInfo = _soliderInfo; this.soliderInfo.charView = this; this.soliderInfo.eventDispatcher.Register("DoAction", DoAction); }
public SoliderIdle(SoliderInfo _soliderInfo) { soliderInfo = _soliderInfo; intervalTime = 1; curTime = 0; }
public void GetNumber(SoliderInfo solidInfo) { this.attack_Magic = solidInfo.attack_Magic; this.attack_Physical = solidInfo.attack_Physical; moveSpeed = 1.8f; }
//处理带有脏标记的单位 public void CollectDirtyUnit() { if (monsterTempList.Count > 0) { foreach (int key in monsterTempList.Keys) { MonsterInfo monster = monsterTempList[key]; if (monster.dirtySign > 0) { monsters.Add(key, monster); } else if (monster.dirtySign < 0) { monsters.Remove(key); } monster.dirtySign = 0; } monsterTempList.Clear(); } if (soliderTempList.Count > 0) { foreach (int key in soliderTempList.Keys) { SoliderInfo solider = soliderTempList[key]; if (solider.dirtySign > 0) { soliders.Add(key, solider); } else if (solider.dirtySign < 0) { soliders.Remove(key); } solider.dirtySign = 0; } soliderTempList.Clear(); } if (effectTempList.Count > 0) { foreach (int key in effectTempList.Keys) { EffectInfo effect = effectTempList[key]; if (effect.dirtySign > 0) { effects.Add(key, effect); } else if (effect.dirtySign < 0) { effects.Remove(key); } effect.dirtySign = 0; } effectTempList.Clear(); } if (towerTempList.Count > 0) { foreach (int key in towerTempList.Keys) { TowerInfo tower = towerTempList[key]; if (tower.dirtySign > 0) { towers.Add(key, tower); } else if (tower.dirtySign < 0) { towers.Remove(key); } tower.dirtySign = 0; } towerTempList.Clear(); } }