Exemplo n.º 1
0
        public void StressTest()
        {
            AiBrain[] b = new AiBrain[StressTestSize];
            AiState[] s = new AiState[StressTestSize];

            DummyInterface dummy = new DummyInterface();

            AiCore.InitCore();
            Thread thread = new Thread(AiCore.Run);

            thread.Start();

            for (int i = 0; i < StressTestSize; i++)
            {
                s[i] = new AiState(template, "0");
                b[i] = new AiBrain(dummy, s[i]);
                AiCore.AddBrain(b[i]);
            }

            Thread.Sleep(1000);
            AiCore.Shutdown();

            for (int i = 0; i < StressTestSize; i++)
            {
                Assert.AreEqual(10, ((Accumulator)s[i].nodes["0"]).val);
            }

            thread.Join();
        }
Exemplo n.º 2
0
        public void ResetGame(int?i_NumOfRow, int?i_NumOfCol)
        {
            if (r_AiBrain != null)
            {
                AiBrain.ResetMermory(i_NumOfRow.Value, i_NumOfCol.Value);
            }

            m_Score = 0;
        }
Exemplo n.º 3
0
    private void Start()
    {
        Brain  = ScriptableObject.CreateInstance <AiBrain>();
        Patrol = OnStart as AiPatrol;
        if (Patrol != null)
        {
            Patrol.SendCoroutine              = ScriptableObject.CreateInstance <GameAction>();
            Patrol.SendCoroutine.RaiseNoArgs += CallCoroutine;
        }

        agent      = GetComponent <NavMeshAgent>();
        Brain.Base = OnStart;
        coroutine  = StartCoroutine(Brain.Base.Nav(agent));
    }
Exemplo n.º 4
0
        public void TestMethod1()
        {
            AiCore.InitCore();
            Thread thread = new Thread(AiCore.Run);

            thread.Start();
            DummyInterface dummy = new DummyInterface();
            AiBrain        b1    = new AiBrain(dummy, state_1);
            AiBrain        b2    = new AiBrain(dummy, state_2);

            AiCore.AddBrain(b1);
            AiCore.AddBrain(b2);

            Thread.Sleep(1000);
            AiCore.Shutdown();

            Assert.AreEqual(1, ((Accumulator)state_1.nodes["0"]).val);
            Assert.AreEqual(1, ((Accumulator)state_2.nodes["0"]).val);
            thread.Join();
        }
Exemplo n.º 5
0
        public void RemoveTest()
        {
            AiBrain[] b = new AiBrain[RemoveTestSize];
            AiState[] s = new AiState[RemoveTestSize];

            DummyInterface dummy = new DummyInterface();

            AiCore.InitCore();
            Thread thread = new Thread(AiCore.Run);

            thread.Start();

            for (int i = 0; i < RemoveTestSize; i++)
            {
                s[i] = new AiState(template, "0");
                b[i] = new AiBrain(dummy, s[i]);
                AiCore.AddBrain(b[i]);
                if (i > RemoveTestSize * parity)
                {
                    AiCore.RemoveBrain(b[i]);
                }
            }

            Thread.Sleep(1000);

            AiCore.Shutdown();

            for (int i = 0; i < RemoveTestSize; i++)
            {
                if (i > RemoveTestSize * parity)
                {
                    Assert.IsFalse(AiCore.HasBrain(b[i]));
                }
                else
                {
                    Assert.IsTrue(AiCore.HasBrain(b[i]));
                }
            }

            thread.Join();
        }
Exemplo n.º 6
0
        //public static GameObjectComponent GameObjectComponent { get; set; }

        public MainForm()
        {
            var time       = Time.GetMsTime();
            var realmPoint = new IPEndPoint(IPAddress.Any, 1001);

            InitializeComponent();
//            Win32.AllocConsole();
            Text = $@"{Assembly.GetExecutingAssembly().GetName().Name} v{Assembly.GetExecutingAssembly().GetName().Version}";

            // Add columns
            listView1.Columns.Add("Id", -2, HorizontalAlignment.Left);
            listView1.Columns.Add("Name", 100, HorizontalAlignment.Left);
            listView1.Columns.Add("Char", 120, HorizontalAlignment.Left);
            listView1.Columns.Add("Location", -2, HorizontalAlignment.Left);

            Log.Print(LogType.RealmServer, "World of Warcraft (Realm Server/World Server)");
            Log.Print(LogType.RealmServer, "Supported WoW Client 1.2.1");
            Log.Print(LogType.RealmServer, $"Version {Assembly.GetExecutingAssembly().GetName().Version}");
            Log.Print(LogType.RealmServer, $"Running on .NET Framework Version {Environment.Version}");

            // XML Items
            XmlReader.Boot();

            // Database
            Database = new RealmServerDatabase();
            DatabaseManager();

            // Scripting
            ScriptManager.Boot();

            // [WORLD] PlayerManager / ObjectManager
            PlayerManager.Boot();
            //GameObjectComponent = new GameObjectComponent();

            // Inteligencia
            AiBrain.Boot();

            //
            RealmServerRouter.AddHandler <CmsgAuthSession>(RealmCMD.CMSG_AUTH_SESSION, RealmServerHandler.OnAuthSession);
            RealmServerRouter.AddHandler <CmsgPing>(RealmCMD.CMSG_PING, RealmServerHandler.OnPingPacket);                    // DONE

            // Character Handlers
            RealmServerRouter.AddHandler(RealmCMD.CMSG_CHAR_ENUM, CharacterHandler.OnCharEnum);                             // DONE
            RealmServerRouter.AddHandler <CmsgCharCreate>(RealmCMD.CMSG_CHAR_CREATE, CharacterHandler.OnCharCreate);        // DONE
            RealmServerRouter.AddHandler <CmsgCharRename>(RealmCMD.CMSG_CHAR_RENAME, CharacterHandler.OnCharRename);        // DONE
            RealmServerRouter.AddHandler <CmsgCharDelete>(RealmCMD.CMSG_CHAR_DELETE, CharacterHandler.OnCharDelete);        // DONE
            RealmServerRouter.AddHandler <CmsgPlayerLogin>(RealmCMD.CMSG_PLAYER_LOGIN, CharacterHandler.OnPlayerLogin);
            RealmServerRouter.AddHandler <CmsgUpdateAccountData>(RealmCMD.CMSG_UPDATE_ACCOUNT_DATA, CharacterHandler.OnUpdateAccountData);
            RealmServerRouter.AddHandler(RealmCMD.CMSG_LOGOUT_REQUEST, CharacterHandler.OnLogoutRequest);                     // PARTIAL
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_LOGOUT_CANCEL, CharacterHandler.OnLogoutCancel);        // DONE
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_STANDSTATECHANGE, CharacterHandler.OnStandStateChange); // PARTIAL

            // Miscs Handlers
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_NAME_QUERY, MiscHandler.OnNameQuery);
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_SET_ACTIVE_MOVER, MiscHandler.OnSetActiveMover);
            RealmServerRouter.AddHandler(RealmCMD.CMSG_QUERY_TIME, MiscHandler.OnQueryTime);
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_BATTLEFIELD_STATUS, MiscHandler.OnBattlefieldStatus);
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_MEETINGSTONE_INFO, MiscHandler.OnMeetingstoneInfo);
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_TEXT_EMOTE, MiscHandler.OnTextEmote);
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_SET_FACTION_ATWAR, MiscHandler.OnSetFactionAtwar);         // DONE
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_SET_FACTION_INACTIVE, MiscHandler.OnSetFactionInactive);   // DONE
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_SET_WATCHED_FACTION, MiscHandler.OnSetWatchedFaction);     // DONE
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_COMPLETE_CINEMATIC, MiscHandler.OnCompleteCinematic);      // DONE
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_TUTORIAL_FLAG, MiscHandler.OnTutorialFlag);
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_TUTORIAL_CLEAR, MiscHandler.OnTutorialClear);
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_TUTORIAL_RESET, MiscHandler.OnTutorialReset);

            // Group Handler
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_REQUEST_RAID_INFO, GroupHandler.OnRequestRaidInfo);

            // GM Handler
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_GMTICKET_GETTICKET, GmHandler.OnGmTicketGetTicket);
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_GMTICKET_SYSTEMSTATUS, GmHandler.OnGmTicketSystemStatus);
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_GMTICKET_CREATE, GmHandler.OnGmTicketCreate);

            // Mail Handler
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.MSG_QUERY_NEXT_MAIL_TIME, MailHandler.OnQueryNextMailTime);

            // Character Movement Handler
            MovementOpcodes.ForEach(code => RealmServerRouter.AddHandler(code, MovementHandler.GenerateResponse(code)));
            RealmServerRouter.AddHandler <CmsgMoveTimeSkipped>(RealmCMD.CMSG_MOVE_TIME_SKIPPED, MovementHandler.OnMoveTimeSkipped);
            RealmServerRouter.AddHandler <MsgMoveInfo>(RealmCMD.MSG_MOVE_FALL_LAND, MovementHandler.OnMoveFallLand);
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_ZONEUPDATE, MovementHandler.OnZoneUpdate);
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_AREATRIGGER, MovementHandler.OnAreaTrigger);

            // Chat Handler
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_JOIN_CHANNEL, ChatHandler.OnJoinChannel);
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_LEAVE_CHANNEL, ChatHandler.OnLeaveChannel);
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_CHANNEL_LIST, ChatHandler.OnChannelList);
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_CHANNEL_PASSWORD, ChatHandler.OnChannelPassword);
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_CHANNEL_SET_OWNER, ChatHandler.OnChannelSetOwner);
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_CHANNEL_OWNER, ChatHandler.OnChannelOwner);
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_CHANNEL_MODERATOR, ChatHandler.OnChannelModerator);
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_CHANNEL_UNMODERATOR, ChatHandler.OnChannelUnmoderator);
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_CHANNEL_MUTE, ChatHandler.OnChannelMute);
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_CHANNEL_UNMUTE, ChatHandler.OnChannelUnmute);
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_CHANNEL_KICK, ChatHandler.OnChannelKick);
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_CHANNEL_INVITE, ChatHandler.OnChannelInvite);
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_CHANNEL_BAN, ChatHandler.OnChannelBan);
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_CHANNEL_UNBAN, ChatHandler.OnChannelUnban);
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_CHANNEL_ANNOUNCEMENTS, ChatHandler.OnChannelAnnouncements);
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_CHANNEL_MODERATE, ChatHandler.OnChannelModerate);
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_MESSAGECHAT, ChatHandler.OnMessageChat);

            // Trade Handler
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_CANCEL_TRADE, TradeHandler.OnCancelTrade);

            // Combat Handler
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_SETSHEATHED, CombatHandler.OnSetsHeathed);
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_SET_SELECTION, CombatHandler.OnSetSelection);
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_ATTACKSWING, CombatHandler.OnAttackSwing);
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_ATTACKSTOP, CombatHandler.OnAttackStop);

            // Item Handler
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_ITEM_QUERY_SINGLE, ItemHandler.OnItemQuerySingle);
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_SWAP_INV_ITEM, ItemHandler.OnSwapInvItem);
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_DESTROYITEM, ItemHandler.OnDestroyItem);
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_USE_ITEM, ItemHandler.OnUseItem);
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_AUTOEQUIP_ITEM, ItemHandler.OnAutoEquipItem);
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_SPLIT_ITEM, ItemHandler.OnSplitItem);

            // Social Handler
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_FRIEND_LIST, SocialHandler.OnFriendList);
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_ADD_FRIEND, SocialHandler.OnAddFriend);
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_ADD_IGNORE, SocialHandler.OnAddIgnore);
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_DEL_FRIEND, SocialHandler.OnDelFriend);
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_DEL_IGNORE, SocialHandler.OnDelIgnore);
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_WHO, SocialHandler.OnWho);

            // Spell Handler
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_CAST_SPELL, SpellHandler.OnCastSpell);

            // Nulled Packets
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_NEXT_CINEMATIC_CAMERA, OnNull); // DONE
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_FORCE_MOVE_ROOT_ACK, OnNull);   // DONE
            RealmServerRouter.AddHandler <PacketReader>(RealmCMD.CMSG_FORCE_MOVE_UNROOT_ACK, OnNull); // DONE

            // Socket Class
            RealmServerClass = new RealmServerClass(realmPoint);

            Log.Print(LogType.RealmServer,
                      $"Successfully started in {Time.GetMsTimeDiff(time, Time.GetMsTime()) / 1000}s");
        }
Exemplo n.º 7
0
 public override void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
 {
     CurrentAiBrain = CreateInstance <AiBrain>();
 }
Exemplo n.º 8
0
 public void SetActor(AiBrain brain)
 {
     throw new NotImplementedException();
 }