示例#1
0
    void FetchWeaponBehaviorsInternally()
    {
        var components = weapon.GetComponents <MonoBehaviour>();

        foreach (var component in components)
        {
            if (component is IFirable)
            {
                // Return back the weapon component
                weaponComponent = (IFirable)component;
                //.Log("Found component");
            }
        }

        var aimComponents = aimController.GetComponents <MonoBehaviour>();

        foreach (var component in aimComponents)
        {
            if (component is IWieldable)
            {
                IWieldable wieldableComponent = (IWieldable)component;
                wieldableComponent.SetWielder((IWielder)this);
            }
        }
    }
示例#2
0
        protected void OnWeaponChanged(IQuickSlotItem target)
        {
            if (base.hasAuthority && !isServerAuthoritative)
            {
                CmdWeaponChange(target.quickSlot);
            }

            if (m_ActiveWeapon != null)
            {
                if (m_ActiveWeapon is IThrownWeapon thrownWeapon)
                {
                    OnThrownChange(thrownWeapon);
                }

                if (m_ActiveWeapon is IMeleeWeapon meleeWeapon)
                {
                    OnMeleeChange(meleeWeapon);
                }

                if (m_ActiveWeapon is ModularFirearms.IModularFirearm fireWeapon)
                {
                    OnFirearmChange(fireWeapon);
                }
            }

            m_ActiveWeapon = target.wieldable;

            if (m_ActiveWeapon != null)
            {
                if (base.hasAuthority)
                {
                    m_ActiveWeapon.GetComponent <FpsInput>().enabled = true;
                }
                else
                {
                    m_ActiveWeapon.GetComponent <FpsInput>().enabled = false;
                }

                if (m_ActiveWeapon is IThrownWeapon thrownWeapon)
                {
                    OnThrownChange(thrownWeapon, true);
                }

                if (m_ActiveWeapon is IMeleeWeapon meleeWeapon)
                {
                    OnMeleeChange(meleeWeapon, true);
                }

                if (m_ActiveWeapon is ModularFirearms.IModularFirearm fireWeapon)
                {
                    OnFirearmChange(fireWeapon, true);
                }
            }
        }
示例#3
0
 public void AfterAdd(IWieldable klass)
 {
   this.color = klass.EnergyColor();
 }