コード例 #1
0
ファイル: AISpawner.cs プロジェクト: kyapp69/easymoba
    public static MobileAgent SpawnCreature(string clientPrefab, Callipso.GameSession session)
    {
        Callipso.Hero creature = ServerManager.creatureHeroes.Find(x => x.clientPrefab == clientPrefab);
        MobileAgent   created  = ServerManager.current.JoinGame(null, session, creature.alias, clientPrefab);
        AIAgent       ai       = created.gameObject.AddComponent <AIAgent>();

        ai.agent     = created;
        ai.vision    = creature.vision; // Bots always can see
        created.user = null;

        return(created);
    }
コード例 #2
0
    void HeroLoadFromFolder(string folderName)
    {
        List <string> content = new List <string>();

        DataReader.readJson(folderName, out content);

        int c = content.Count;

        for (int i = 0; i < c; i++)
        {
            Callipso.Hero _hero = JsonUtility.FromJson <Callipso.Hero>(content[i]);
            if (_hero.heroType == Callipso.HeroType.Creature)
            {
                creatureHeroes.Add(_hero);
            }
            else
            {
                playerHeroes.Add(_hero);
            }
        }
    }
コード例 #3
0
ファイル: MobileAgent.cs プロジェクト: spyyouuu/easymoba
    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);
        }
    }