Add Nullified debuff, add Transcendent weapons and tool
This commit is contained in:
@@ -1,13 +1,25 @@
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using Terraria;
|
||||
using Terraria.Audio;
|
||||
using Terraria.ID;
|
||||
using Terraria.ModLoader;
|
||||
using ForgottenWawiTech.Content.Items.Materials;
|
||||
using ForgottenWawiTech.Content.Rarities;
|
||||
using Terraria.ModLoader.IO;
|
||||
using Terraria.Localization;
|
||||
|
||||
namespace ForgottenWawiTech.Content.Items.Tools.SingularitySet
|
||||
{
|
||||
public class SingularityMultitool : ModItem
|
||||
{
|
||||
private bool hammerMode;
|
||||
private const int PickaxePower = 500;
|
||||
private const int HammerPower = 500;
|
||||
private const int AxePower = 500;
|
||||
|
||||
protected override bool CloneNewInstances => true;
|
||||
|
||||
public override void SetDefaults()
|
||||
{
|
||||
Item.damage = 500;
|
||||
@@ -23,8 +35,52 @@ namespace ForgottenWawiTech.Content.Items.Tools.SingularitySet
|
||||
Item.UseSound = SoundID.Item1;
|
||||
Item.autoReuse = true;
|
||||
Item.useTurn = true;
|
||||
Item.axe = 500;
|
||||
Item.pick = 500;
|
||||
Item.axe = AxePower;
|
||||
Item.pick = PickaxePower;
|
||||
Item.hammer = 0;
|
||||
ApplyMode();
|
||||
}
|
||||
|
||||
public override bool AltFunctionUse(Player player) => true;
|
||||
|
||||
public override bool CanUseItem(Player player)
|
||||
{
|
||||
if (player.altFunctionUse == 2)
|
||||
{
|
||||
ToggleMode(player);
|
||||
return false;
|
||||
}
|
||||
|
||||
ApplyMode();
|
||||
return base.CanUseItem(player);
|
||||
}
|
||||
|
||||
public override void ModifyTooltips(List<TooltipLine> tooltips)
|
||||
{
|
||||
string modeText = hammerMode ? "Hammer" : "Pickaxe";
|
||||
tooltips.Add(new TooltipLine(Mod, "SingularityMultitoolMode", $"Current Mode: {modeText}"));
|
||||
}
|
||||
|
||||
public override void SaveData(TagCompound tag)
|
||||
{
|
||||
tag["HammerMode"] = hammerMode;
|
||||
}
|
||||
|
||||
public override void LoadData(TagCompound tag)
|
||||
{
|
||||
hammerMode = tag.GetBool("HammerMode");
|
||||
ApplyMode();
|
||||
}
|
||||
|
||||
public override void NetSend(BinaryWriter writer)
|
||||
{
|
||||
writer.Write(hammerMode);
|
||||
}
|
||||
|
||||
public override void NetReceive(BinaryReader reader)
|
||||
{
|
||||
hammerMode = reader.ReadBoolean();
|
||||
ApplyMode();
|
||||
}
|
||||
|
||||
public override void AddRecipes()
|
||||
@@ -35,5 +91,36 @@ namespace ForgottenWawiTech.Content.Items.Tools.SingularitySet
|
||||
.AddTile<Content.Tiles.CraftingStations.SingularitySealingUnit>()
|
||||
.Register();
|
||||
}
|
||||
|
||||
private void ToggleMode(Player player)
|
||||
{
|
||||
hammerMode = !hammerMode;
|
||||
ApplyMode();
|
||||
|
||||
if (Main.myPlayer == player.whoAmI)
|
||||
{
|
||||
string itemName = Lang.GetItemNameValue(Item.type);
|
||||
string modeText = hammerMode ? "Hammer" : "Pickaxe";
|
||||
Main.NewText($"{itemName} switched to {modeText} mode.", 190, 120, 255);
|
||||
}
|
||||
|
||||
SoundEngine.PlaySound(SoundID.MenuTick, player.Center);
|
||||
}
|
||||
|
||||
private void ApplyMode()
|
||||
{
|
||||
if (hammerMode)
|
||||
{
|
||||
Item.pick = 0;
|
||||
Item.hammer = HammerPower;
|
||||
}
|
||||
else
|
||||
{
|
||||
Item.pick = PickaxePower;
|
||||
Item.hammer = 0;
|
||||
}
|
||||
|
||||
Item.axe = AxePower;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user