SoE: update to v0.46.1

* install via pypi, pin hashes
* add OoB logic option
* add sequence break logic option
* fix turd ball texts
* add option to fix OoB
* better textbox handling when turning in energy core fragments
This commit is contained in:
black-sliver
2023-10-08 17:27:05 +02:00
parent 58642edc17
commit e87d5d5ac2
9 changed files with 180 additions and 30 deletions

View File

@@ -0,0 +1,53 @@
from . import SoETestBase
class TestFragmentGoal(SoETestBase):
options = {
"energy_core": "fragments",
"available_fragments": 21,
"required_fragments": 20,
}
def testFragments(self):
self.collect_by_name(["Gladiator Sword", "Diamond Eye", "Wheel", "Gauge"])
self.assertBeatable(False) # 0 fragments
fragments = self.get_items_by_name("Energy Core Fragment")
victory = self.get_item_by_name("Victory")
self.collect(fragments[:-2]) # 1 too few
self.assertEqual(self.count("Energy Core Fragment"), 19)
self.assertBeatable(False)
self.collect(fragments[-2:-1]) # exact
self.assertEqual(self.count("Energy Core Fragment"), 20)
self.assertBeatable(True)
self.remove([victory]) # reset
self.collect(fragments[-1:]) # 1 extra
self.assertEqual(self.count("Energy Core Fragment"), 21)
self.assertBeatable(True)
def testNoWeapon(self):
self.collect_by_name(["Diamond Eye", "Wheel", "Gauge", "Energy Core Fragment"])
self.assertBeatable(False)
def testNoRocket(self):
self.collect_by_name(["Gladiator Sword", "Diamond Eye", "Wheel", "Energy Core Fragment"])
self.assertBeatable(False)
class TestShuffleGoal(SoETestBase):
options = {
"energy_core": "shuffle",
}
def testCore(self):
self.collect_by_name(["Gladiator Sword", "Diamond Eye", "Wheel", "Gauge"])
self.assertBeatable(False)
self.collect_by_name(["Energy Core"])
self.assertBeatable(True)
def testNoWeapon(self):
self.collect_by_name(["Diamond Eye", "Wheel", "Gauge", "Energy Core"])
self.assertBeatable(False)
def testNoRocket(self):
self.collect_by_name(["Gladiator Sword", "Diamond Eye", "Wheel", "Energy Core"])
self.assertBeatable(False)