public void SetWeaponController(WeaponControllerBase weaponControllerBase, float?delay = null)
 {
     if (delay.HasValue)
     {
         StartCoroutine(SetWeaponControllerByDelay(weaponControllerBase, delay.Value));
     }
     else
     {
         _weaponController = weaponControllerBase;
     }
 }
        public GrenadeControllerSwitchCommand(BattleUnit unit) : base(unit)
        {
            _defaultWeaponController = unit.WeaponController;
            _nullWeaponController    = unit.GetComponentInChildren <NullWeaponController>(true);
            _grenadeController       = unit.GetComponentInChildren <GrenadeController>(true);

            GameHelper.CheckForNull(_defaultWeaponController, nameof(GrenadeControllerSwitchCommand));
            GameHelper.CheckForNull(_nullWeaponController, nameof(GrenadeControllerSwitchCommand));
            GameHelper.CheckForNull(_grenadeController, nameof(GrenadeControllerSwitchCommand));

            _grenadeController.OnGrenadeLaunchedCallback = OnGrenadeLaunchedCallback;
        }
        private void Awake()
        {
            if (_weaponController == null)
            {
                _weaponController = FindObjectOfType <NullWeaponController>();
            }

            Assert.IsNotNull(_weaponController, "_weaponController != null");
            Assert.IsNotNull(_hittableObject, "_hittableObject != null");
            Assert.IsNotNull(_teamController, "_teamController != null");

            InitOwnerableChilds();
        }
        private void OnValidate()
        {
            if (_weaponController == null)
            {
                _weaponController = GetComponentInChildren <NullWeaponController>();
            }

            if (_hittableObject == null)
            {
                _hittableObject = GetComponentInChildren <HittableObject>();
            }

            if (_teamController == null)
            {
                _teamController = GetComponentInChildren <TeamController>();
            }
        }
        private IEnumerator SetWeaponControllerByDelay(WeaponControllerBase weaponControllerBase, float delay)
        {
            yield return(new WaitForSeconds(delay));

            _weaponController = weaponControllerBase;
        }
Exemplo n.º 6
0
 public void SetWeaponController(WeaponControllerBase value)
 {
     _weaponController = value as WeaponController;
 }