コード例 #1
0
 public ModeLogic(IWeaponInitLogic weaponInitLogic, IWeaponSlotController weaponSlotController,
                  IBagSlotLogic bagSlotLogic, IPickupLogic pickupLogic, IReservedBulletLogic reservedBulletLogic,
                  IWeaponActionListener weaponActionListener)
 {
     _weaponInitLogic      = weaponInitLogic;
     _weaponSlotController = weaponSlotController;
     _bagSlotLogic         = bagSlotLogic;
     _pickupLogic          = pickupLogic;
     _reservedBulletLogic  = reservedBulletLogic;
     _weaponActionListener = weaponActionListener;
 }
コード例 #2
0
 public WeaponSlotAuxiliary(
     PlayerEntity player,
     IWeaponSlotController weaponSlotController,
     IPlayerWeaponActionLogic playerWeaponActionLogic,
     IReservedBulletLogic reservedBulletController,
     IGrenadeBagCacheAgent grenadeInventory)
 {
     Util.CommonUtil.ProcessDerivedTypeInstances(typeof(WeaponSlotBaseHandler), true, OnDerivedTypeInstanceProcess);
     //var slots = weaponSlotController.AvaliableSlots;
     //for(int i = 0; i < slots.Length; i++)
     //{
     //    var slot = slots[i];
     //    var weaponComponent = player.GetWeaponComponentBySlot(slot);
     //    var soundManager = player.soundManager.Value;
     //    switch(slot)
     //    {
     //        case EWeaponSlotType.GrenadeWeapon:
     //            _controllerDic[slot] = new GrenadeSlotHandler(
     //                player,
     //                playerWeaponActionLogic,
     //                weaponComponent,
     //                reservedBulletController,
     //                soundManager);
     //            break;
     //        case EWeaponSlotType.MeleeWeapon:
     //            _controllerDic[slot] = new MeleeSlotHandler(
     //                player,
     //                playerWeaponActionLogic,
     //                weaponComponent,
     //                reservedBulletController,
     //                soundManager);
     //            break;
     //        case EWeaponSlotType.TacticWeapon:
     //            _controllerDic[slot] = new TacticSlotHandler(
     //                player,
     //                playerWeaponActionLogic,
     //                weaponComponent,
     //                reservedBulletController,
     //                soundManager);
     //            break;
     //        default:
     //            _controllerDic[slot] = new WeaponSlotBaseHandler(
     //                player,
     //                playerWeaponActionLogic,
     //                weaponComponent,
     //                reservedBulletController,
     //                soundManager);
     //            break;
     //    }
     //}
 }
コード例 #3
0
 public PlayerWeaponActionLogic(
     PlayerEntity player,
     WeaponBagLogic bagLogic,
     ISceneObjectEntityFactory sceneObjectEntityFactory,
     IReservedBulletLogic reservedBulletLogic,
     IGrenadeBagCacheAgent grenadeInventory,
     IWeaponSlotController weaponSlotController,
     IWeaponActionListener weaponActionListener)
 {
     _playerEntity         = player;
     _weaponBagLogic       = bagLogic;
     _weaponSlotController = weaponSlotController;
     _slotAuxiliary        = new WeaponSlotAuxiliary(player,
                                                     weaponSlotController,
                                                     this,
                                                     reservedBulletLogic,
                                                     grenadeInventory);
     _weaponActionListener = weaponActionListener;
 }
コード例 #4
0
        public static PlayerEntity CreateNewPlayerEntity(
            PlayerContext playerContext,
            IWeaponSlotController weaponSlotController,
            Vector3 position,
            ICreatePlayerInfo playerInfo,
            bool prediction,
            bool autoMove)
        {
            PlayerEntity playerEntity = playerContext.CreateEntity();
            var          sex          = SingletonManager.Get <RoleConfigManager>().GetRoleItemById(playerInfo.RoleModelId).Sex;
            var          modelName    = sex == 1 ? SharedConfig.maleModelName : SharedConfig.femaleModelName;


            playerEntity.AddPlayerInfo(playerInfo.EntityId, playerInfo.PlayerId, playerInfo.PlayerName, playerInfo.RoleModelId, modelName,
                                       playerInfo.TeamId, playerInfo.Num, playerInfo.Level, playerInfo.BackId, playerInfo.TitleId, playerInfo.BadgeId, playerInfo.AvatarIds, playerInfo.WeaponAvatarIds, playerInfo.Camp);

            playerEntity.playerInfo.WeaponBags = playerInfo.WeaponBags;
            playerEntity.AddUserCmd();
            playerEntity.AddUserCmdSeq(0);
            playerEntity.AddUserCmdOwner(new UserCmdOwnerAdapter(playerEntity));
            playerEntity.AddEntityKey(new EntityKey(playerInfo.EntityId, (int)EEntityType.Player));
            playerEntity.AddPosition(position);

            playerEntity.AddVehicleCmdSeq(0);
            playerEntity.isFlagCompensation = true;
            playerEntity.isFlagSyncSelf     = true;
            playerEntity.isFlagSyncNonSelf  = true;
            playerEntity.isFlagAutoMove     = autoMove;
            playerEntity.isFlagSelf         = prediction;
            playerEntity.AddOrientation(0, 0, 0, 0, 0);
            playerEntity.AddPlayerRotateLimit(false);
            playerEntity.AddPlayerMove(Vector3.zero, 0, true, false, 0);
            playerEntity.AddPlayerSkyMove(true, -1);
            playerEntity.AddPlayerSkyMoveInterVar();
            playerEntity.AddTime(0);
            playerEntity.AddGamePlay(100, 100);

            playerEntity.AddWeaponState(0, 0);

#if UNITY_EDITOR
            if (SharedConfig.IsOffline)
            {
                playerEntity.weaponState.BagOpenLimitTime = 50000;
            }
#endif

            playerEntity.AddPlayerWeaponState(0, false, 0, 0, 0, 0, false, 0, 0);
            AddCameraStateNew(playerEntity);
            playerEntity.AddState();

            playerEntity.AddFirePosition();
            playerEntity.AddStateBefore();
            playerEntity.AddStateInterVar(new StateInterCommands(), new StateInterCommands(), new StateInterCommands(), new StateInterCommands());
            playerEntity.AddStateInterVarBefore();
            playerEntity.AddMoveUpdate();
            playerEntity.AddSkyMoveUpdate();
            playerEntity.AddPlayerMoveByAnimUpdate();

            playerEntity.AddFirstPersonAppearance(playerEntity.entityKey.Value.EntityId);
            playerEntity.AddThirdPersonAppearance();
            //playerEntity.AddNetworkWeaponAnimation(string.Empty, 0, string.Empty, 0);

            playerEntity.AddLatestAppearance();
            playerEntity.latestAppearance.Init();
            playerEntity.AddPredictedAppearance();

            playerEntity.AddOxygenEnergy(0);

            playerEntity.AddSound();
            playerEntity.AddUpdateMessagePool();
            playerEntity.AddRemoteEvents(new PlayerEvents());

            playerEntity.AddStatisticsData(false, new BattleData(), new StatisticsData());
            weaponSlotController.InitPlayerWeaponBySlotInfo(playerEntity);
            playerEntity.AddPlayerMask((byte)(EPlayerMask.TeamA | EPlayerMask.TeamB), (byte)(EPlayerMask.TeamA | EPlayerMask.TeamB));
            playerEntity.AddOverrideBag(0);
            //Logger.Info(playerEntity.Dump());
            return(playerEntity);
        }