Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

更新: Economics.Skill 物品条件消耗物品(只消耗背包🀄物品 #175

Merged
merged 2 commits into from
Jun 7, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 17 additions & 9 deletions Economics.Shop/Shop.cs
Original file line number Diff line number Diff line change
Expand Up @@ -46,24 +46,32 @@ public static bool HasItem(TSPlayer player, List<ItemTerm> itemTerms)
return false;

}
foreach (ItemTerm term in itemTerms)
ConsumeItem(player, itemTerms);
return true;
}

private static void ConsumeItem(TSPlayer player, List<ItemTerm> terms)
{
foreach (var term in terms)
{
var stack = term.Stack;
for (int j = 0; j < player.TPlayer.inventory.Length; j++)
{
var item = player.TPlayer.inventory[j];
if (item.stack >= stack)
if (item.netID == term.netID)
{
item.stack -= stack;
TSPlayer.All.SendData(PacketTypes.PlayerSlot, "", player.Index, j);
}
else
{
stack -= item.stack;
if (item.stack >= stack)
{
item.stack -= stack;
TSPlayer.All.SendData(PacketTypes.PlayerSlot, "", player.Index, j);
}
else
{
stack -= item.stack;
}
}
}
}
return true;
}

private static void CheckBanksForItem(TSPlayer player, int itemId, ref int itemCount)
Expand Down
8 changes: 3 additions & 5 deletions Economics.Skill/Model/TermItem.cs
Original file line number Diff line number Diff line change
@@ -1,11 +1,6 @@

using EconomicsAPI.Model;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Economics.Skill.Model;

Expand All @@ -19,4 +14,7 @@ public class TermItem : Item

[JsonProperty("手持物品")]
public bool HeldItem { get; set; } = false;

[JsonProperty("是否消耗")]
public bool Consume { get; set; } = false;
}
26 changes: 26 additions & 0 deletions Economics.Skill/Utils.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
using Economics.Skill.Model.Options;
using EconomicsAPI.Extensions;
using Microsoft.Xna.Framework;
using System;
using Terraria;
using TShockAPI;

Expand Down Expand Up @@ -75,9 +76,34 @@ public static bool HasItem(TSPlayer player, List<TermItem> terms)
return false;
}
}
ConsumeItem(player, terms);
return true;
}

private static void ConsumeItem(TSPlayer player, List<TermItem> terms)
{
foreach (var term in terms)
{
var stack = term.Stack;
for (int j = 0; j < player.TPlayer.inventory.Length; j++)
{
var item = player.TPlayer.inventory[j];
if (item.netID == term.netID)
{
if (item.stack >= stack)
{
item.stack -= stack;
TSPlayer.All.SendData(PacketTypes.PlayerSlot, "", player.Index, j);
}
else
{
stack -= item.stack;
}
}
}
}
}

/// <summary>
/// 圆弧技能触发器
/// </summary>
Expand Down
Loading