Exemplo n.º 1
0
        internal static void PostFix(HeatBlade __instance, ref int __result)
        {
            if (Guard.IsGamePaused())
            {
                return;
            }

            __result = Stats.HeatBladeData.UsesPerHit;
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 4
0
 // 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);
 }
Exemplo n.º 5
0
 /// <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;