コード例 #1
0
        static void Postfix(MWS_ChargeUp __instance)
        {
            if (Controllers.mainControllerPose.GetVelocity().magnitude > 0.5f)
            {
                Collider[] enemyColliders      = Physics.OverlapSphere(__instance.m_weapon.ModelData.m_damageRefAttack.position, VRHammer.hammerSizeMult * .75f, LayerManager.MASK_ENEMY_DAMAGABLE);
                bool       shouldReleaseCharge = enemyColliders.Length > 0;
                if (GTFO_VR_Plugin.DEBUG_ENABLED)
                {
                    if (VRConfig.configDebugShowHammerHitbox.Value)
                    {
                        DebugDraw3D.DrawSphere(__instance.m_weapon.ModelData.m_damageRefAttack.position, VRHammer.hammerSizeMult * .75f, ColorExt.Blue(0.2f));
                        DebugDraw3D.DrawSphere(__instance.m_weapon.ModelData.m_damageRefAttack.position, VRHammer.hammerSizeMult * .25f, ColorExt.Red(0.2f));
                    }
                }
                if (Controllers.mainControllerPose.GetVelocity().magnitude > 1.6f)
                {
                    Collider[] staticColliders = Physics.OverlapSphere(__instance.m_weapon.ModelData.m_damageRefAttack.position, VRHammer.hammerSizeMult * .25f, LayerManager.MASK_MELEE_ATTACK_TARGETS_WITH_STATIC);
                    shouldReleaseCharge = shouldReleaseCharge || staticColliders.Length > 0;
                }

                if (shouldReleaseCharge)
                {
                    __instance.OnChargeupRelease();
                }
            }
        }
コード例 #2
0
        private static void Prefix(MWS_ChargeUp __instance)
        {
            float progress = Mathf.Min(__instance.m_elapsed / __instance.m_maxDamageTime, 1f);

            if (progress >= 1 && !fullChargeEventFired)
            {
                HammerEvents.HammerFullyCharged();
                fullChargeEventFired = true;
            }
            if (progress >= .5f && !halfChargeEventFired)
            {
                HammerEvents.HammerHalfCharged();
                halfChargeEventFired = true;
            }
        }
コード例 #3
0
 private static void Prefix(MWS_ChargeUp __instance)
 {
     InjectHammerChargeEvents.fullChargeEventFired = false;
     InjectHammerChargeEvents.halfChargeEventFired = false;
 }