[Tweak] Смешное с экономикой. (#451)

* tweak: цены продажи некоторых предметов понижены

* tweak: сервера РнД теперь не работают между гридами

* tweak: подняты цены в раздатчиках в среднем в два раза. А может больше

* tweak: тебя забыли

* add: добавим буквы
This commit is contained in:
Remuchi
2024-07-17 17:57:09 +07:00
committed by GitHub
parent a7d741c9ec
commit eeed240df0
42 changed files with 228 additions and 167 deletions

View File

@@ -84,9 +84,8 @@ public sealed partial class ResearchSystem
TryGetClientServer(uid, out _, out var serverComponent, component);
var names = GetServerNames();
var state = new ResearchClientBoundInterfaceState(names.Length, names,
GetServerIds(), serverComponent?.Id ?? -1);
var servers = GetAllServers(uid);
var state = new ResearchClientBoundInterfaceState(servers, serverComponent?.Id ?? -1);
_uiSystem.TrySetUiState(uid, ResearchClientUiKey.Key, state);
}

View File

@@ -1,5 +1,4 @@
using System.Diagnostics.CodeAnalysis;
using System.Linq;
using Content.Server.Administration.Logs;
using Content.Server.Radio.EntitySystems;
using Content.Shared.Access.Systems;
@@ -58,34 +57,70 @@ namespace Content.Server.Research.Systems
}
/// <summary>
/// Gets the names of all the servers.
/// Gets all the servers on the grid.
/// </summary>
/// <returns></returns>
public string[] GetServerNames()
public List<ResearchServerComponent> GetAllServers(EntityUid client)
{
var allServers = EntityQuery<ResearchServerComponent>(true).ToArray();
var list = new string[allServers.Length];
var query = EntityQueryEnumerator<ResearchServerComponent>();
var clientTransform = Transform(client);
var list = new List<ResearchServerComponent>(3);
for (var i = 0; i < allServers.Length; i++)
while (query.MoveNext(out var uid, out var server))
{
list[i] = allServers[i].ServerName;
var serverTransform = Transform(uid);
if (clientTransform.GridUid != serverTransform.GridUid)
{
continue;
}
list.Add(server);
}
return list;
}
/// <summary>
/// Gets the ids of all the servers
/// Gets the names of all the servers on the grid.
/// </summary>
/// <returns></returns>
public int[] GetServerIds()
public List<string> GetServerNames(EntityUid client)
{
var allServers = EntityQuery<ResearchServerComponent>(true).ToArray();
var list = new int[allServers.Length];
var query = EntityQueryEnumerator<ResearchServerComponent>();
var clientTransform = Transform(client);
var list = new List<string>(3);
for (var i = 0; i < allServers.Length; i++)
while (query.MoveNext(out var uid, out var server))
{
list[i] = allServers[i].Id;
var serverTransform = Transform(uid);
if (clientTransform.GridUid != serverTransform.GridUid)
{
continue;
}
list.Add(server.ServerName);
}
return list;
}
/// <summary>
/// Gets the ids of all the servers on the grid.
/// </summary>
/// <returns></returns>
public List<int> GetServerIds(EntityUid client)
{
var query = EntityQueryEnumerator<ResearchServerComponent>();
var clientTransform = Transform(client);
var list = new List<int>(3);
while (query.MoveNext(out var uid, out var server))
{
var serverTransform = Transform(uid);
if (clientTransform.GridUid != serverTransform.GridUid)
{
continue;
}
list.Add(server.Id);
}
return list;

View File

@@ -52,7 +52,7 @@ namespace Content.Server.VendingMachines
[Dependency] private readonly StackSystem _stackSystem = default!;
// WD END
private double _priceMultiplier = 1.0; // WD
private const double GlobalPriceMultiplier = 2.0; // WD
public override void Initialize()
{
@@ -241,7 +241,8 @@ namespace Content.Server.VendingMachines
protected override int GetEntryPrice(EntityPrototype proto)
{
return (int) _pricing.GetEstimatedPrice(proto);
var price = (int) _pricing.GetEstimatedPrice(proto);
return price > 0 ? price : 25;
}
private int GetPrice(VendingMachineInventoryEntry entry, VendingMachineComponent comp)
@@ -251,13 +252,13 @@ namespace Content.Server.VendingMachines
private double GetPriceMultiplier(VendingMachineComponent comp)
{
return comp.PriceMultiplier * _priceMultiplier;
return comp.PriceMultiplier * GlobalPriceMultiplier;
}
private void OnWithdrawMessage(EntityUid uid, VendingMachineComponent component, VendingMachineWithdrawMessage args)
{
_stackSystem.Spawn(component.Credits,
PrototypeManager.Index<StackPrototype>(component.CreditStackPrototype), Transform(uid).Coordinates);
_stackSystem.Spawn(component.Credits, PrototypeManager.Index(component.CreditStackPrototype),
Transform(uid).Coordinates);
component.Credits = 0;
Audio.PlayPvs(component.SoundWithdrawCurrency, uid);