Files
ppg-modkit/SledgeHammer/script.cs

73 lines
3.2 KiB
C#

using UnityEngine; //You'll probably need this...
namespace Mod
{
public class Mod
{
public static void OnLoad()
{
// Optional initialization method - runs when mod is first loaded
}
public static void OnUnload()
{
// Optional cleanup method - runs when mod is unloaded/game closes
}
public static void Main()
{
// register item to the mod api
ModAPI.Register(
new Modification()
{
OriginalItem = ModAPI.FindSpawnable("Power Hammer"), //item to derive from (better physics than Brick)
NameOverride = "SledgeHammer", //new item name
DescriptionOverride = "A heavy demolition sledgehammer.", //new item description
CategoryOverride = ModAPI.FindCategory("Melee"), //new item category
ThumbnailOverride = ModAPI.LoadSprite("sprites/sledgeHammerView.png"), //new item thumbnail (relative path)
AfterSpawn = (Instance) => //all code in the AfterSpawn delegate will be executed when the item is spawned
{
Instance.GetComponent<SpriteRenderer>().sprite = ModAPI.LoadSprite("sprites/sledgeHammer.png"); //get the SpriteRenderer and replace its sprite with a custom one
var physical = Instance.GetComponent<PhysicalBehaviour>();
if (physical != null)
{
physical.InitialMass = 8f; //make it heavier for realistic sledgehammer feel
physical.TrueInitialMass = 8f; //ensure the mass is actually applied
// Add custom impact sounds for different collision types
physical.OverrideImpactSounds = new AudioClip[]
{
ModAPI.LoadSound("sfx/simple-hit.wav"),
ModAPI.LoadSound("sfx/hard-hit.wav")
};
// Add custom bullet impact sounds (when shot)
physical.OverrideShotSounds = new AudioClip[]
{
ModAPI.LoadSound("sfx/hard-hit.wav")
};
}
// Add a spawn sound when the hammer is created
var audioSource = Instance.GetComponent<AudioSource>();
if (audioSource == null)
{
audioSource = Instance.AddComponent<AudioSource>();
}
// Play spawn sound
var spawnSound = ModAPI.LoadSound("sfx/spawn.wav");
if (spawnSound != null && audioSource != null)
{
audioSource.PlayOneShot(spawnSound);
}
Instance.FixColliders(); //fix colliders to match new sprite
}
}
);
}
}
}