public void Setup(MeleeWeaponFirstPerson weapon) { m_weapon = weapon; m_animatorRoot = m_weapon.ModelData.m_damageRefAttack.parent; m_chargeupIndicatorLight = new GameObject("VR_Hammer_Chargeup_Light").AddComponent <Light>(); m_chargeupIndicatorLight.color = Color.white; m_chargeupIndicatorLight.enabled = false; m_chargeupIndicatorLight.shadows = LightShadows.None; HammerEvents.OnHammerFullyCharged += HammerFullyCharged; HammerEvents.OnHammerHalfCharged += HammerHalfCharged; }
static void Prefix(MeleeWeaponFirstPerson __instance) { if (!__instance.Owner.IsLocallyOwned) { return; } if (__instance.Owner.FPSCamera.CameraRayDist <= 3f && __instance.Owner.FPSCamera.CameraRayObject != null && __instance.Owner.FPSCamera.CameraRayObject.layer == LayerManager.LAYER_DYNAMIC) { iLG_WeakDoor_Destruction componentInParent = __instance.Owner.FPSCamera.CameraRayObject.GetComponentInParent <iLG_WeakDoor_Destruction>(); if (componentInParent != null && !componentInParent.SkinnedDoorEnabled) { componentInParent.EnableSkinnedDoor(); } } }
static void Postfix(MeleeWeaponFirstPerson __instance, MeleeWeaponDamageData data, bool isPush) { if (!__instance.Owner.IsLocallyOwned) { return; } Vector3 velocity = Controllers.mainControllerPose.GetVelocity() * 3f; data.sourcePos = data.hitPos - data.hitNormal * velocity.magnitude; if (isPush) { HammerEvents.HammerSmacked(0f); } else { HammerEvents.HammerSmacked(__instance.m_damageToDeal / __instance.m_damageHeavy); } }
private static void Postfix(MeleeWeaponFirstPerson __instance) { __instance.m_cameraDamageRayLength = 0f; }
static void Postfix(MeleeWeaponFirstPerson __instance) { __instance.gameObject.AddComponent <VRHammer>().Setup(__instance); }