public void LoadHero(string _heroId, bool isHero = false) { /* * SET TEAM * */ FindTeam(isHero); /* * */ if (string.IsNullOrEmpty(_heroId)) { // AUTO HERO SELECTION if (session.teamsize == 0) { _heroId = ServerManager.playerHeroes[Random.Range(0, ServerManager.playerHeroes.Count)].clientPrefab; } else { List <MobileAgent> teamMates = session.agents.FindAll(x => x.team == team); List <Callipso.Hero> trg = ServerManager.playerHeroes.FindAll(x => teamMates.Find(e => e.heroId == x.clientPrefab) == null); if (trg.Count == 0) { _heroId = ServerManager.playerHeroes[Random.Range(0, ServerManager.playerHeroes.Count)].clientPrefab; } else { _heroId = trg[Random.Range(0, trg.Count)].clientPrefab; } } } maxHealth = 0; heroId = _heroId; if (isHero) { _hero = ServerManager.playerHeroes.Find(x => x.clientPrefab == _heroId); } else { _hero = ServerManager.creatureHeroes.Find(x => x.clientPrefab == _heroId); } moveSpeed = _hero.moveSpeed; skills = _hero.skills; cooldowns = new float[skills.Length]; heroType = _hero.heroType; agentLevel.level = new Leveling.Level(); agentLevel.level.level = 1; agentLevel.exp = 0; agentLevel.requiredExp = 10; /* * DEFAULT BUFFS * */ agentBuff.buff.buffs.Clear(); agentBuff.buff.buffs.AddRange(_hero.defaultBuffs); /* * */ if (heroType == Callipso.HeroType.Creature) { gameObject.name = _heroId; } if (physik == null) { physik = gameObject.AddComponent <Physik>(); physik.agent = this; } physik.session = session; physik.radius = _hero.collision; physik.team = team; if (user != null) { // SEND SKILL INFO MObjects.SkillInfo mObject = new MObjects.SkillInfo(); mObject.skills = skills; NetworkServer.SendToClient(user.connectionId, MTypes.SkillInfo, mObject); } }
public void OnSkillInfo(NetworkMessage netMsg) { mObject = netMsg.ReadMessage <MObjects.SkillInfo>(); Invoke("UpdateSkillTooltip", 0.5f); }