public void TestEquipWeapon()
        {
            IWeaponConfig weaponConfig2 = Substitute.For <IWeaponConfig>();

            behaviour.AttachWeapon(weaponConfig2, instigator).Returns(weapon);
            Assert.IsInstanceOf <Weapon>(behaviour.EquipWeapon(weaponConfig2));
        }
 public WeaponControllerBehaviour(Transform rightHandTransform, Transform leftHandTransform, Animator anim, Equipment equipment, IWeaponConfig defaultWeapon, ICharacter instigator)
 {
     _rightHandTransform = rightHandTransform;
     _leftHandTransform  = leftHandTransform;
     _anim          = anim;
     _equipment     = equipment;
     _defaultWeapon = defaultWeapon as WeaponConfig;
     _instigator    = instigator;
 }
        public void UpdateWeapon()
        {
            IWeaponConfig weapon = _equipment.GetItemInSlot(EquipLocation.Weapon) as WeaponConfig;

            if (weapon == null)
            {
                weapon = _defaultWeapon;
            }
            EquipWeapon(weapon);
        }
 public Weapon EquipWeapon(IWeaponConfig weapon)
 {
     _currentWeaponConfig = weapon;
     _currentWeapon.value = AttachWeapon(weapon, _instigator);
     if (weapon.IsDual())
     {
         _currentSubWeapon.value = weapon.GetSubWeapon();
     }
     if (_iKController != null)
     {
         _iKController.SetGrabObj(_currentWeapon.value.GetGrabObj());
     }
     return(_currentWeapon.value);
 }
 public void init()
 {
     left          = Substitute.For <Transform>();
     right         = Substitute.For <Transform>();
     anim          = Substitute.For <Animator>();
     equipment     = Substitute.For <Equipment>();
     weaponConfig  = Substitute.For <IWeaponConfig>();
     instigator    = Substitute.For <ICharacter>();
     weapon        = Substitute.For <Weapon>();
     currentWeapon = new LazyValue <Weapon>(() => weapon);
     weaponConfig.Spawn(left, right, anim, instigator).Returns(weapon);
     behaviour = new WeaponControllerBehaviour(right, left, anim, equipment, weaponConfig, instigator);
     behaviour.init();
 }
 public Weapon EquipWeapon(IWeaponConfig weapon)
 {
     return(behaivour.EquipWeapon(weapon));
 }
        public Weapon AttachWeapon(IWeaponConfig weaponConfig, ICharacter instigator)
        {
            Weapon weapon = weaponConfig.Spawn(_rightHandTransform, _leftHandTransform, _anim, instigator);

            return(weapon);
        }