Esempio n. 1
0
        public virtual void Initializa(long local_player_pstid, CombatStartInfo combat_start_info)
        {
            //真正的local_player_pstid在局外,传进来就好;combat_start_info是给所有玩家、观战者、以及录像回放时,都一致的消息
            m_local_player_pstid = local_player_pstid;
            m_level_data         = GetConfigProvider().GetLevelData(combat_start_info.m_level_id);
            m_state            = CombatClientState.Loading;
            m_state_frame_cnt  = 0;
            m_state_start_time = -1;
            m_last_update_time = -1;
            m_waiting_cnt      = 0;
#if UNITY_EDITOR
            m_is_first_frame = true;
#endif

            AttributeSystem.Instance.InitializeAllDefinition(m_combat_factory.GetConfigProvider());
            ComponentTypeRegistry.RegisterDefaultComponents();
            BehaviorTreeNodeTypeRegistry.RegisterDefaultNodes();
            DamageModifier.RegisterDefaultModifiers();
            m_combat_factory.RegisterCommands();

            BehaviorTreeFactory.Instance.SetConfigProvider(m_combat_factory.GetConfigProvider());

            m_logic_world = m_combat_factory.CreateLogicWorld();
            m_logic_world.Initialize(this, combat_start_info.m_world_seed, true);
            m_render_world = m_combat_factory.CreateRenderWorld();
            m_render_world.Initialize(this, m_logic_world);
            m_logic_world.SetIRenderWorld(m_render_world);
            m_sync_client = m_combat_factory.CreateSyncClient();
            m_sync_client.Init(m_logic_world);

            BuildLogicWorld(combat_start_info);
            BuildRenderWorld(m_level_data);
        }
Esempio n. 2
0
        public void Initialize()
        {
            CombatStartInfo csi = new CombatStartInfo();

            csi.m_level_id   = 1;
            csi.m_world_seed = 1;
            m_combat_client  = new CombatClient(new MyCombatFactory());
            m_combat_client.Initializa(TEST_LOCAL_PLAYER_PSTID, csi);
            m_combat_client.AddPlayer(TEST_LOCAL_PLAYER_PSTID);
            m_init = true;
        }
Esempio n. 3
0
        public virtual void Initializa(CombatStartInfo combat_start_info)
        {
            AttributeSystem.Instance.InitializeAllDefinition(m_combat_factory.GetConfigProvider());
            m_level_data  = GetConfigProvider().GetLevelData(combat_start_info.m_level_id);
            m_logic_world = m_combat_factory.CreateLogicWorld();
            m_logic_world.Initialize(this, combat_start_info.m_world_seed, false);
            m_sync_server = m_combat_factory.CreateSyncServer();
            m_sync_server.Init(m_logic_world);
            WorldCreationContext world_context = m_combat_factory.CreateWorldCreationContext(combat_start_info);

            m_logic_world.BuildLogicWorld(world_context);
        }
Esempio n. 4
0
        protected virtual void BuildLogicWorld(CombatStartInfo combat_start_info)
        {
            WorldCreationContext world_context = m_combat_factory.CreateWorldCreationContext(combat_start_info);

            m_logic_world.BuildLogicWorld(world_context);
        }
Esempio n. 5
0
        public WorldCreationContext CreateWorldCreationContext(CombatStartInfo combat_start_info)
        {
            WorldCreationContext world_context = new WorldCreationContext();

            world_context.m_level_id   = combat_start_info.m_level_id;
            world_context.m_game_mode  = combat_start_info.m_game_mode;
            world_context.m_world_seed = combat_start_info.m_world_seed;

            //本地玩家
            world_context.m_pstid2proxyid[CombatTester.TEST_LOCAL_PLAYER_PSTID] = PlayerManager.LOCAL_PLAYER_PROXYID;
            world_context.m_proxyid2pstid[PlayerManager.LOCAL_PLAYER_PROXYID]   = CombatTester.TEST_LOCAL_PLAYER_PSTID;
            ObjectCreationContext obj_context = new ObjectCreationContext();

            obj_context.m_object_proxy_id = PlayerManager.LOCAL_PLAYER_PROXYID;
            obj_context.m_object_type_id  = 3;
            obj_context.m_object_proto_id = -1;
            obj_context.m_is_local        = true;
            world_context.m_players.Add(obj_context);

            //NPC敌人玩家
            long proxy_pstid = PlayerManager.AI_ENEMY_PLAYER_PROXYID;

            world_context.m_pstid2proxyid[proxy_pstid] = PlayerManager.AI_ENEMY_PLAYER_PROXYID;
            world_context.m_proxyid2pstid[PlayerManager.AI_ENEMY_PLAYER_PROXYID] = proxy_pstid;
            obj_context = new ObjectCreationContext();
            obj_context.m_object_proxy_id = PlayerManager.AI_ENEMY_PLAYER_PROXYID;
            obj_context.m_object_type_id  = 2;
            obj_context.m_object_proto_id = -1;
            world_context.m_players.Add(obj_context);

            //本地玩家的Entity
            obj_context = new ObjectCreationContext();
            obj_context.m_object_proxy_id = PlayerManager.LOCAL_PLAYER_PROXYID;
            obj_context.m_object_type_id  = 111;
            obj_context.m_object_proto_id = 111001;
            obj_context.m_birth_info      = new BirthPositionInfo(new FixPoint(-5), new FixPoint(0), new FixPoint(-5), new FixPoint(90));
            obj_context.m_is_local        = true;
            world_context.m_entities.Add(obj_context);

            obj_context = new ObjectCreationContext();
            obj_context.m_object_proxy_id = PlayerManager.LOCAL_PLAYER_PROXYID;
            obj_context.m_object_type_id  = 101;
            obj_context.m_object_proto_id = 101002;
            obj_context.m_birth_info      = new BirthPositionInfo(new FixPoint(-5), new FixPoint(0), new FixPoint(0), new FixPoint(90));
            obj_context.m_is_local        = true;
            obj_context.m_is_ai           = true;
            world_context.m_entities.Add(obj_context);

            obj_context = new ObjectCreationContext();
            obj_context.m_object_proxy_id = PlayerManager.LOCAL_PLAYER_PROXYID;
            obj_context.m_object_type_id  = 112;
            obj_context.m_object_proto_id = 112001;
            obj_context.m_birth_info      = new BirthPositionInfo(new FixPoint(-5), new FixPoint(0), new FixPoint(7), new FixPoint(90));
            obj_context.m_is_local        = true;
            obj_context.m_is_ai           = true;
            world_context.m_entities.Add(obj_context);

            //NPC敌人玩家Entity
            obj_context = new ObjectCreationContext();
            obj_context.m_object_proxy_id = PlayerManager.AI_ENEMY_PLAYER_PROXYID;
            obj_context.m_object_type_id  = 101;
            obj_context.m_object_proto_id = 101001;
            obj_context.m_birth_info      = new BirthPositionInfo(new FixPoint(5), new FixPoint(0), new FixPoint(0), new FixPoint(90));;
            world_context.m_entities.Add(obj_context);

            return(world_context);
        }