Ejemplo n.º 1
0
        public ViewModelOptions(InventoryItemInstance itemInstance, EquipSlot slot, PlayerWeaponComponent weaponComponent, WeaponViewShakeScript shakeComponent, WeaponMovebobComponent movebobComponent)
        {
            var wim = itemInstance.ItemModel as WeaponItemModel;

            UseShake     = wim.CheckFlag(ItemFlag.WeaponShake);
            UseMovebob   = !wim.CheckFlag(ItemFlag.WeaponNoMovebob);
            UseCrosshair = wim.CheckFlag(ItemFlag.WeaponUseCrosshair);
            AdsCrosshair = wim.CheckFlag(ItemFlag.WeaponCrosshairInADS);
            UseCharge    = wim.CheckFlag(ItemFlag.WeaponHasCharge);
            UseRecock    = wim.CheckFlag(ItemFlag.WeaponHasRecock);

            switch (slot)
            {
            case EquipSlot.LeftWeapon:
                Side = ViewModelSide.Left;
                break;

            case EquipSlot.RightWeapon:
                Side = ViewModelSide.Right;
                break;

            default:
                Side = ViewModelSide.Undefined;
                break;
            }

            WeaponItemInstance = itemInstance;
            WeaponComponent    = weaponComponent;
            ShakeComponent     = shakeComponent;
            MovebobComponent   = movebobComponent;
        }
Ejemplo n.º 2
0
        private void Start()
        {
            if (MovementComponent == null)
            {
                MovementComponent = GetComponentInParent <PlayerMovementComponent>();
            }

            if (MovementComponent == null)
            {
                Debug.LogError($"{nameof(WeaponMovebobComponent)} on {name} can't find {nameof(PlayerMovementComponent)}");
                enabled = false;
                return;
            }

            if (WeaponComponent == null)
            {
                WeaponComponent = GetComponentInParent <PlayerWeaponComponent>();
            }

            if (WeaponComponent == null)
            {
                Debug.LogError($"{nameof(WeaponMovebobComponent)} on {name} can't find {nameof(PlayerWeaponComponent)}");
                enabled = false;
                return;
            }

            WasInADS = WeaponComponent.IsADS;
        }
Ejemplo n.º 3
0
        public override void Start()
        {
            base.Start();

            Debug.Log("Player controller start");

            if (!CameraRoot)
            {
                CameraRoot = transform.Find("CameraRoot");
            }

            if (!ModelRoot)
            {
                ModelRoot = transform.GetChild(0).gameObject;
            }

            if (!MovementComponent)
            {
                MovementComponent = GetComponent <PlayerMovementComponent>();
            }

            if (!WeaponComponent)
            {
                WeaponComponent = GetComponentInChildren <PlayerWeaponComponent>();
            }

            if (!CameraZoomComponent)
            {
                CameraZoomComponent = GetComponentInChildren <PlayerCameraZoomComponent>(true);
            }

            if (!DeathComponent)
            {
                DeathComponent = GetComponentInChildren <PlayerDeathComponent>();
            }

            if (!HUDScript)
            {
                HUDScript = (RpgHUDController)BaseHUDController.Current; //I would not recommend this cast
            }

            if (!HUDScript && AutoinitHud)
            {
                Instantiate <GameObject>(CoreUtils.LoadResource <GameObject>("UI/DefaultWorldHUD"), CoreUtils.GetUIRoot());
                if (EventSystem.current == null)
                {
                    Instantiate(CoreUtils.LoadResource <GameObject>("UI/DefaultEventSystem"));
                }

                HUDScript = (RpgHUDController)BaseHUDController.Current;
            }

            MessageInterface = new QdmsMessageInterface(gameObject);

            LockPauseModule.CaptureMouse = true;

            SetDefaultPlayerView();
            SetInitialViewModels();
        }
Ejemplo n.º 4
0
    public void Initialize(PlayerWeaponComponent inWeaponComponent)
    {
        _weaponComponent = inWeaponComponent;

        if (_weaponComponent.heldWeapon)
        {
            UpdateText();
        }
        else
        {
            Hide();
        }

        StopAndHideReloadAnimation();

        SubscribeEvents();
    }
Ejemplo n.º 5
0
    public void TriggerSpawnBullet(PlayerWeaponComponent weapon, Vector3 position, Vector3 rotation)
    {
        if (weapon.HasAmmo())
        {
            weapon.SpentAmmo();

            var bullet = Singleton.Get <BulletComponent>();

            if (bullet == null)
            {
                Singleton.Push(Instantiate(Singleton.bulletPrefab, position, Quaternion.Euler(rotation)));
            }
            else
            {
                bullet.transform.position = position;
                bullet.transform.rotation = Quaternion.Euler(rotation);
            }
        }
    }
Ejemplo n.º 6
0
        public override void OnAddedToScene()
        {
            base.OnAddedToScene();

            var mainScene = (Scene as MainScene);

            truck        = mainScene.truck;
            playerWeapon = truck.GetComponent <PlayerWeaponComponent>();
            playerWeapon.OnWeaponCycle += UpdateWeaponIcons;

            playerMove = truck.GetComponent <PlayerMovementComponent>();

            playerHealth = truck.GetComponent <HealthComponent>();
            playerHealth.OnHealthChanged += (h) => UpdateHealth(h);

            playerAmmo = truck.GetComponent <AmmoComponent>();
            playerAmmo.OnAmmoChanged += a => UpdateAmmo(a);

            playerState = truck.GetComponent <PlayerStateMachine>();

            SetUpUI();
        }
Ejemplo n.º 7
0
 public static void SpawnBullet(PlayerWeaponComponent weapon, Vector3 position, Vector3 rotation)
 {
     Singleton.InvokeServerRpc(Singleton.TriggerSpawnBullet, weapon, position, rotation);
 }
Ejemplo n.º 8
0
        public override void Start()
        {
            base.Start();

            Debug.Log("Player controller start");

            if (!CameraRoot)
            {
                CameraRoot = transform.Find("CameraRoot");
            }

            if (!ModelRoot)
            {
                ModelRoot = transform.GetChild(0).gameObject;
            }

            if (!MovementComponent)
            {
                MovementComponent = GetComponent <PlayerMovementComponent>();
            }

            if (!WeaponComponent)
            {
                WeaponComponent = GetComponentInChildren <PlayerWeaponComponent>();
            }

            if (!CameraZoomComponent)
            {
                CameraZoomComponent = GetComponentInChildren <PlayerCameraZoomComponent>(true);
            }

            if (!DeathComponent)
            {
                DeathComponent = GetComponentInChildren <PlayerDeathComponent>();
            }

            if (!ShieldComponent)
            {
                ShieldComponent = GetComponent <PlayerShieldComponent>();
            }

            if (LightReportingComponent == null)
            {
                LightReportingComponent = GetComponentInChildren <IReportLight>() as MonoBehaviour;
            }

            if (!HUDScript)
            {
                HUDScript = SharedUtils.TryGetHudController() as RpgHUDController;
            }

            if (!HUDScript && AutoinitHud)
            {
                Instantiate <GameObject>(CoreUtils.LoadResource <GameObject>("UI/DefaultWorldHUD"), CoreUtils.GetUIRoot());
                if (EventSystem.current == null)
                {
                    Instantiate(CoreUtils.LoadResource <GameObject>("UI/DefaultEventSystem"));
                }

                HUDScript = SharedUtils.TryGetHudController() as RpgHUDController;
                if (HUDScript == null)
                {
                    Debug.LogError("[PlayerController] Failed to initialize HUD properly");
                }
            }

            MessageInterface = new QdmsMessageInterface(gameObject);

            LockPauseModule.CaptureMouse = true;

            SetDefaultPlayerView();
            SetInitialViewModels();

            ShieldComponent.Ref()?.HandleLoadStart();

            TryExecuteOnComponents(component => component.Init(this));
            Initialized = true;
        }