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); } } }
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); } } }
public void AfterAdd(IWieldable klass) { this.color = klass.EnergyColor(); }