Ejemplo n.º 1
0
    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);
        }
    }
Ejemplo n.º 2
0
 public void OnSkillInfo(NetworkMessage netMsg)
 {
     mObject = netMsg.ReadMessage <MObjects.SkillInfo>();
     Invoke("UpdateSkillTooltip", 0.5f);
 }