fix to be identical to crafty, remove debugs
This commit is contained in:
@@ -32,14 +32,17 @@ public abstract class BaseAction
|
||||
|
||||
public virtual void Use()
|
||||
{
|
||||
if (Simulation.RollSuccess(SuccessRate))
|
||||
UseSuccess();
|
||||
|
||||
Simulation.ReduceCP(CPCost);
|
||||
Simulation.ReduceDurability(DurabilityCost);
|
||||
|
||||
if (Simulation.HasEffect(EffectType.Manipulation))
|
||||
Simulation.RestoreDurability(5);
|
||||
|
||||
if (Simulation.RollSuccess(SuccessRate))
|
||||
UseSuccess();
|
||||
if (Simulation.Durability > 0)
|
||||
{
|
||||
if (Simulation.HasEffect(EffectType.Manipulation))
|
||||
Simulation.RestoreDurability(5);
|
||||
}
|
||||
|
||||
if (IncreasesStepCount)
|
||||
Simulation.IncreaseStepCount();
|
||||
|
||||
@@ -4,7 +4,8 @@ namespace Craftimizer.Simulator.Actions;
|
||||
|
||||
internal abstract class BaseBuffAction : BaseAction
|
||||
{
|
||||
public abstract Effect Effect { get; }
|
||||
public abstract EffectType Effect { get; }
|
||||
public virtual byte Duration => 1;
|
||||
public virtual EffectType[] ConflictingEffects => Array.Empty<EffectType>();
|
||||
|
||||
public override int DurabilityCost => 0;
|
||||
@@ -14,13 +15,13 @@ internal abstract class BaseBuffAction : BaseAction
|
||||
if (ConflictingEffects.Length != 0)
|
||||
foreach(var effect in ConflictingEffects)
|
||||
Simulation.RemoveEffect(effect);
|
||||
Simulation.AddEffect(Effect.Type, Effect.Duration, Effect.Strength);
|
||||
Simulation.AddEffect(Effect, Duration);
|
||||
}
|
||||
|
||||
public override string GetTooltip(bool addUsability)
|
||||
{
|
||||
var builder = new StringBuilder(base.GetTooltip(addUsability));
|
||||
builder.AppendLine($"{Effect.Duration} Steps");
|
||||
builder.AppendLine($"{Duration} Steps");
|
||||
return builder.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ internal class ByregotsBlessing : BaseAction
|
||||
public override uint ActionId => 100339;
|
||||
|
||||
public override int CPCost => 24;
|
||||
public override float Efficiency => 1.00f + (0.20f * (Simulation.GetEffect(EffectType.InnerQuiet)?.Strength ?? 0));
|
||||
public override float Efficiency => 1.00f + (0.20f * Simulation.GetEffectStrength(EffectType.InnerQuiet));
|
||||
public override bool IncreasesQuality => true;
|
||||
|
||||
public override bool CanUse => Simulation.HasEffect(EffectType.InnerQuiet) && base.CanUse;
|
||||
|
||||
@@ -9,5 +9,6 @@ internal class FinalAppraisal : BaseBuffAction
|
||||
public override int CPCost => 1;
|
||||
public override bool IncreasesStepCount => false;
|
||||
|
||||
public override Effect Effect => new() { Type = EffectType.FinalAppraisal, Duration = 5 };
|
||||
public override EffectType Effect => EffectType.FinalAppraisal;
|
||||
public override byte Duration => 5;
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@ internal class GreatStrides : BaseBuffAction
|
||||
|
||||
public override int CPCost => 32;
|
||||
|
||||
public override Effect Effect => new() { Type = EffectType.GreatStrides, Duration = 3 };
|
||||
public override EffectType Effect => EffectType.GreatStrides;
|
||||
public override byte Duration => 3;
|
||||
}
|
||||
|
||||
@@ -13,8 +13,7 @@ internal class Groundwork : BaseAction
|
||||
get
|
||||
{
|
||||
var ret = Simulation.Input.Stats.Level >= 86 ? 3.60f : 3.00f;
|
||||
// TODO: does not account for waste not
|
||||
return Simulation.Durability < DurabilityCost ? ret / 2 : ret;
|
||||
return Simulation.Durability < Simulation.CalculateDurabilityCost(DurabilityCost) ? ret / 2 : ret;
|
||||
}
|
||||
}
|
||||
public override bool IncreasesProgress => true;
|
||||
|
||||
@@ -9,7 +9,7 @@ internal class HeartAndSoul : BaseBuffAction
|
||||
public override int CPCost => 0;
|
||||
public override bool IncreasesStepCount => false;
|
||||
|
||||
public override Effect Effect => new() { Type = EffectType.HeartAndSoul };
|
||||
public override EffectType Effect => EffectType.HeartAndSoul;
|
||||
|
||||
public override bool CanUse => Simulation.Input.Stats.IsSpecialist && Simulation.CountPreviousAction(ActionType.HeartAndSoul) == 0;
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@ internal class Innovation : BaseBuffAction
|
||||
|
||||
public override int CPCost => 18;
|
||||
|
||||
public override Effect Effect => new() { Type = EffectType.Innovation, Duration = 4 };
|
||||
public override EffectType Effect => EffectType.Innovation;
|
||||
public override byte Duration => 4;
|
||||
}
|
||||
|
||||
@@ -8,5 +8,19 @@ internal class Manipulation : BaseBuffAction
|
||||
|
||||
public override int CPCost => 96;
|
||||
|
||||
public override Effect Effect => new() { Type = EffectType.Manipulation, Duration = 8 };
|
||||
public override EffectType Effect => EffectType.Manipulation;
|
||||
public override byte Duration => 8;
|
||||
|
||||
public override void Use()
|
||||
{
|
||||
if (Simulation.HasEffect(EffectType.Manipulation))
|
||||
Simulation.RestoreDurability(5);
|
||||
|
||||
Simulation.ReduceCP(CPCost);
|
||||
Simulation.ReduceDurability(DurabilityCost);
|
||||
|
||||
UseSuccess();
|
||||
|
||||
Simulation.IncreaseStepCount();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,6 +12,6 @@ internal class TrainedFinesse : BaseAction
|
||||
public override int DurabilityCost => 0;
|
||||
|
||||
public override bool CanUse =>
|
||||
(Simulation.GetEffect(EffectType.InnerQuiet)?.Strength ?? 0) == 10
|
||||
Simulation.GetEffectStrength(EffectType.InnerQuiet) == 10
|
||||
&& base.CanUse;
|
||||
}
|
||||
|
||||
@@ -9,5 +9,6 @@ internal class Veneration : BaseBuffAction
|
||||
public override int CPCost => 18;
|
||||
public override int DurabilityCost => 0;
|
||||
|
||||
public override Effect Effect => new() { Type = EffectType.Veneration, Duration = 4 };
|
||||
public override EffectType Effect => EffectType.Veneration;
|
||||
public override byte Duration => 4;
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ internal class WasteNot : BaseBuffAction
|
||||
|
||||
public override int CPCost => 56;
|
||||
|
||||
public override Effect Effect => new() { Type = EffectType.WasteNot, Duration = 4 };
|
||||
public override EffectType Effect => EffectType.WasteNot;
|
||||
public override byte Duration => 4;
|
||||
public override EffectType[] ConflictingEffects => new[] { EffectType.WasteNot2 };
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ internal class WasteNot2 : BaseBuffAction
|
||||
|
||||
public override int CPCost => 98;
|
||||
|
||||
public override Effect Effect => new() { Type = EffectType.WasteNot2, Duration = 8 };
|
||||
public override EffectType Effect => EffectType.WasteNot2;
|
||||
public override byte Duration => 8;
|
||||
public override EffectType[] ConflictingEffects => new[] { EffectType.WasteNot };
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user