Files
crystall-punk-14/Content.Shared/_CP14/Currency/CP14SharedCurrencySystem.cs
Ed 08a4c4340d Bank implementation (#512)
* get currency refactor

* bank work

* finish vault markers

* add bank doors

* map update

* loadouts

* Update CP14StationTravelingStoreShipTargetComponent.cs

* oopsie
2024-10-26 18:18:30 +03:00

60 lines
1.6 KiB
C#

using System.Text;
using Content.Shared.Stacks;
using Robust.Shared.Prototypes;
namespace Content.Shared._CP14.Currency;
public partial class CP14SharedCurrencySystem : EntitySystem
{
public static readonly KeyValuePair<EntProtoId, int> CP = new("CP14CopperCoin1", 1);
public static readonly KeyValuePair<EntProtoId, int> SP = new("CP14SilverCoin1", 10);
public static readonly KeyValuePair<EntProtoId, int> GP = new("CP14GoldCoin1", 100);
public static readonly KeyValuePair<EntProtoId, int> PP = new("CP14PlatinumCoin1", 1000);
public string GetCurrencyPrettyString(int currency)
{
var total = currency;
if (total <= 0)
return string.Empty;
var gp = total / 100;
total %= 100;
var sp = total / 10;
total %= 10;
var cp = total;
var sb = new StringBuilder();
if (gp > 0)
sb.Append( " " + Loc.GetString("cp14-currency-examine-gp", ("coin", gp)));
if (sp > 0)
sb.Append( " " + Loc.GetString("cp14-currency-examine-sp", ("coin", sp)));
if (cp > 0)
sb.Append( " " + Loc.GetString("cp14-currency-examine-cp", ("coin", cp)));
return sb.ToString();
}
public int GetTotalCurrency(EntityUid uid)
{
var ev = new CP14GetCurrencyEvent();
RaiseLocalEvent(uid, ev);
return (int)(ev.Currency * ev.Multiplier);
}
}
public sealed class CP14GetCurrencyEvent : EntityEventArgs
{
public int Currency;
public float Multiplier;
public CP14GetCurrencyEvent(int cur = 0, int mult = 1)
{
Currency = cur;
Multiplier = mult;
}
}