31 public virtual float Power {
get;
set; }
35 Magnitude = RollMagnitude(magnitudePower, lukStat);
37 int iterations = (int)Math.Ceiling(lukStat) / 2;
40 for (
int i = 0; i < iterations; i++)
42 float rolledMagnitude = RollMagnitude(magnitudePower, lukStat);
54 internal float RollMagnitude(
float magnitudePower,
float lukStat)
58 float randomMag = (useMin + Main.rand.NextFloat() * (useMax - useMin));
62 internal float RollPower()
71 Main.instance =
new Main();
73 Main.rand =
new UnifiedRandom();
79 var p =
new ModifierProperties();
80 Assert.AreEqual(p.Magnitude, 0f);
81 Assert.AreEqual(p.Power, 0f);
82 Assert.AreEqual(p.RoundedPower, 0f);
84 float n = 10f, m = n * 2f;
85 p =
new ModifierProperties(minMagnitude: n, maxMagnitude: m);
86 Assert.AreEqual(p.MinMagnitude, n);
87 Assert.AreEqual(p.MaxMagnitude, m);
88 Assert.AreEqual(p.MinMagnitude, p.MaxMagnitude - n);
89 Assert.AreEqual(p.MaxMagnitude, p.MinMagnitude + n);
90 Assert.IsTrue(p.MinMagnitude <= p.MaxMagnitude);
91 Assert.IsTrue(p.MaxMagnitude >= p.MinMagnitude);
99 var p =
new ModifierProperties
104 var tc = ModifierProperties._Save(null, p);
105 Assert.IsInstanceOf<TagCompound>(tc);
106 Assert.IsTrue(tc.ContainsKey(
"Magnitude"));
107 Assert.IsTrue(tc.ContainsKey(
"Power"));
108 Assert.IsTrue(tc.ContainsKey(
"ModifierPropertiesSaveVersion"));
109 Assert.AreEqual(tc.Get<
float>(
"Magnitude"), 10f);
110 Assert.AreEqual(tc.Get<
float>(
"Power"), 100f);
111 Assert.IsTrue(tc.Get<
int>(
"ModifierPropertiesSaveVersion") > 0);
113 p = ModifierProperties._Load(null, tc);
114 Assert.IsInstanceOf<ModifierProperties>(p);
115 Assert.AreEqual(p.Magnitude, 10f);
116 Assert.AreEqual(p.Magnitude, tc.Get<
float>(
"Magnitude"));
117 Assert.AreEqual(p.Power, 100f);
118 Assert.AreEqual(p.Power, tc.Get<
float>(
"Power"));
125 var mock =
new Mock<FakeProperties>();
126 mock.SetupAllProperties();
127 mock.SetupProperty(x => x.Magnitude);
128 mock.SetupProperty(x => x.Power);
129 mock.SetupSet(x => x.Magnitude = 1f);
130 mock.SetupSet(x => x.Power = 2f);
132 mock.Object.RollMagnitudeAndPower(10f, 10);
134 mock.VerifySet(x => x.Magnitude = It.IsAny<
float>(), Times.AtLeastOnce);
135 mock.VerifySet(x => x.Power = It.IsAny<
float>(), Times.Once);
136 mock.Verify(x => x.RollMagnitude(It.IsAny<
float>(), It.IsAny<
float>()), Times.AtLeastOnce);
137 mock.Verify(x => x.RollPower(), Times.Once);
139 Assert.AreEqual(mock.Object.Magnitude, 1f);
140 Assert.AreEqual(mock.Object.Power, 2f);
void TestMinMaxMagnitudes()
FakeProperties RollMagnitudeAndPower(float magnitudePower=1f, float lukStat=0f)