Remove ref passing, but keep devirtualizations

This commit is contained in:
Asriel Camora
2024-03-16 13:24:26 -07:00
parent 3223bdcbfb
commit ec77f1d021
48 changed files with 411 additions and 787 deletions
+12 -24
View File
@@ -1,32 +1,20 @@
namespace Craftimizer.Simulator.Actions;
internal sealed class ByregotsBlessing : BaseAction
internal sealed class ByregotsBlessing() : BaseAction(
ActionCategory.Quality, 50, 100339,
increasesQuality: true,
defaultCPCost: 24,
defaultEfficiency: 100)
{
public int CP = 24;
public override int Efficiency(Simulator s) =>
100 + (20 * s.GetEffectStrength(EffectType.InnerQuiet));
public ByregotsBlessing()
public override bool CouldUse(Simulator s) =>
s.HasEffect(EffectType.InnerQuiet) && base.CouldUse(s);
public override void UseSuccess(Simulator s)
{
Category = ActionCategory.Quality;
Level = 50;
ActionId = 100339;
IncreasesQuality = true;
}
public override void CPCost(Simulator s, ref int cost)
{
cost = CP;
}
public override void Efficiency(Simulator s, ref int eff)
{
eff = 100 + (20 * s.GetEffectStrength(EffectType.InnerQuiet));
}
public override bool CouldUse(Simulator s, ref int cost) => s.HasEffect(EffectType.InnerQuiet) && base.CouldUse(s, ref cost);
public override void UseSuccess(Simulator s, ref int eff)
{
base.UseSuccess(s, ref eff);
base.UseSuccess(s);
s.RemoveEffect(EffectType.InnerQuiet);
}
}