internal static void PostFix(HeatBlade __instance, ref int __result) { if (Guard.IsGamePaused()) { return; } __result = Stats.HeatBladeData.UsesPerHit; }
private static GameObject SetupPrefab(GameObject activePrefab) { var obj = GameObject.Instantiate(activePrefab); if (obj == null) { return(null); } Knife knife = obj.GetComponent <Knife>(); VibrobladeBehaviour blade = obj.EnsureComponent <VibrobladeBehaviour>(); if (blade != null) { if (hbPrefab != null) { HeatBlade hb = hbPrefab.GetComponent <HeatBlade>(); blade.fxControl = hb.fxControl; blade.vfxEventType = hb.vfxEventType; } if (knife != null) { #if SUBNAUTICA_STABLE blade.attackSound = knife.attackSound; blade.underwaterMissSound = knife.underwaterMissSound; blade.surfaceMissSound = knife.surfaceMissSound; #endif blade.mainCollider = knife.mainCollider; blade.drawSound = knife.drawSound; blade.firstUseSound = knife.firstUseSound; blade.hitBleederSound = knife.hitBleederSound; if (hbPrefab == null) { blade.vfxEventType = knife.vfxEventType; } GameObject.DestroyImmediate(knife); } blade.attackDist = 2f; blade.damageType = DamageType.Normal; blade.socket = PlayerTool.Socket.RightHand; blade.ikAimRightArm = true; #if BELOWZERO blade.bleederDamage = 90f; #endif } else { #if !RELEASE Logger.Log(Logger.Level.Debug, $"Could not ensure VibrobladeBehaviour component in Vibroblade prefab"); #endif } ModPrefabCache.AddPrefab(obj, false); return(obj); }
private static GameObject ModifyPrefab(GameObject activePrefab) { var obj = Object.Instantiate(activePrefab); if (obj == null) { #if !RELEASE Logger.Log(Logger.Level.Error, "Failed to instantiate GameObject for prefab DiamondBlade"); #endif return(null); } var component = obj.GetComponent <Knife>(); if (component != null) { GameObject.DestroyImmediate(component); } VibrobladeBehaviour blade = obj.EnsureComponent <VibrobladeBehaviour>(); if (blade != null) { /* * #if SN1 * HeatBlade hb = Resources.Load<GameObject>("WorldEntities/Tools/Heatblade").GetComponent<HeatBlade>(); #elif BELOWZERO * task = CraftData.GetPrefabForTechTypeAsync(TechType.HeatBlade); * yield return task; * * HeatBlade hb = task.GetResult().GetComponent<HeatBlade>(); #endif */ if (hbPrefab != null) { HeatBlade hb = hbPrefab.GetComponent <HeatBlade>(); blade.fxControl = Object.Instantiate(hb.fxControl, obj.transform); } blade.attackDist = 2f; blade.bleederDamage = 90f; blade.damage = 90f; blade.damageType = DamageType.Normal; blade.socket = PlayerTool.Socket.RightHand; blade.ikAimRightArm = true; } else { #if !RELEASE Logger.Log(Logger.Level.Debug, $"Could not ensure VibrobladeBehaviour component in Vibroblade prefab"); #endif } return(obj); }
// Token: 0x0600000C RID: 12 RVA: 0x00002334 File Offset: 0x00000534 public static bool Prefix(HeatBlade __instance) { MeshRenderer[] allComponentsInChildren = __instance.GetAllComponentsInChildren <MeshRenderer>(); foreach (MeshRenderer meshRenderer in allComponentsInChildren) { bool flag = meshRenderer.name.Contains("knife_01_hot"); if (flag) { meshRenderer.material.color = new Color32(Convert.ToByte(MainPatch.config.Hknifevalue), Convert.ToByte(MainPatch.config.Hknifegvalue), Convert.ToByte(MainPatch.config.Hknifebvalue), 1); } } return(true); }
/// <summary> /// Reduces the number of uses per het. /// </summary> /// <param name="heatBlade"></param> /// <param name="amount">Amount to reduce by.</param> public static void ReduceUsesPerHit(this HeatBlade heatBlade, int amount) => Stats.HeatBladeData.UsesPerHit -= amount;