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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,150 @@
|
||||
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 ForgottenWawiTech.Content.Tiles.CraftingStations;
|
||||
using Terraria.ModLoader.IO;
|
||||
using Terraria.Localization;
|
||||
|
||||
namespace ForgottenWawiTech.Content.Items.Tools.Transcendent
|
||||
{
|
||||
public class TranscendentOmnitool : ModItem
|
||||
{
|
||||
private bool hammerMode;
|
||||
private const int PickaxePower = 420;
|
||||
private const int HammerPower = 350;
|
||||
private const int AxePower = 80;
|
||||
|
||||
protected override bool CloneNewInstances => true;
|
||||
|
||||
public override void SetDefaults()
|
||||
{
|
||||
Item.width = 42;
|
||||
Item.height = 42;
|
||||
Item.damage = 220;
|
||||
Item.DamageType = DamageClass.Melee;
|
||||
Item.knockBack = 6f;
|
||||
Item.useTime = 5;
|
||||
Item.useAnimation = 10;
|
||||
Item.pick = PickaxePower;
|
||||
Item.axe = AxePower;
|
||||
Item.hammer = 0;
|
||||
Item.tileBoost += 6;
|
||||
Item.useTurn = true;
|
||||
Item.autoReuse = true;
|
||||
Item.useStyle = ItemUseStyleID.Swing;
|
||||
Item.UseSound = SoundID.Item15;
|
||||
Item.value = Item.sellPrice(platinum: 260);
|
||||
Item.rare = ModContent.RarityType<TranscendentItem>();
|
||||
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 HoldItem(Player player)
|
||||
{
|
||||
ApplyMode();
|
||||
player.blockRange += 3;
|
||||
player.pickSpeed -= 0.25f;
|
||||
if (player.pickSpeed < 0.35f)
|
||||
{
|
||||
player.pickSpeed = 0.35f;
|
||||
}
|
||||
|
||||
player.AddBuff(BuffID.Dangersense, 2);
|
||||
player.AddBuff(BuffID.Shine, 2);
|
||||
}
|
||||
|
||||
public override void ModifyHitNPC(Player player, NPC target, ref NPC.HitModifiers modifiers)
|
||||
{
|
||||
modifiers.SourceDamage *= 1.25f;
|
||||
}
|
||||
|
||||
public override void ModifyTooltips(List<TooltipLine> tooltips)
|
||||
{
|
||||
string modeText = hammerMode ? "Hammer" : "Pickaxe";
|
||||
tooltips.Add(new TooltipLine(Mod, "TranscendentOmnitoolMode", $"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()
|
||||
{
|
||||
CreateRecipe()
|
||||
.AddIngredient(ModContent.ItemType<ControlledSingularity>(), 6)
|
||||
.AddIngredient(ModContent.ItemType<SingularityAlloy>(), 10)
|
||||
.AddIngredient(ModContent.ItemType<EnergyCore>(), 14)
|
||||
.AddIngredient(ModContent.ItemType<MalfunctioningNanites>(), 18)
|
||||
.AddIngredient(ModContent.ItemType<UnstableMatter>(), 6)
|
||||
.AddTile(ModContent.TileType<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.", 120, 255, 225);
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 504 B |
Reference in New Issue
Block a user