Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sve dl #12

Closed
wants to merge 297 commits into from
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
297 commits
Select commit Hold shift + click to select a range
34de446
- Added shipsanity rules (now the tests are failing because many item…
agilbert1412 Aug 18, 2023
2524c5b
- Progress on new items for logic
agilbert1412 Nov 21, 2023
2ed4de9
- Shipsanity new logic, all craftable rules, more cooking rules, etc etc
agilbert1412 Aug 21, 2023
04ac741
- Fix a bug with logic tests
agilbert1412 Aug 21, 2023
c8913c0
- Added Journal Scrap into logic
agilbert1412 Aug 21, 2023
a20da1d
- Missing Bundle and changes for recursive region access update
agilbert1412 Aug 24, 2023
ae93568
- Added minsanity options
agilbert1412 Aug 26, 2023
87a9e00
- Add new options for buildings and tools to be cheaper
agilbert1412 Aug 26, 2023
8ed9f0c
- Turned ToolProgression and BUildingProgression into flags so the mo…
agilbert1412 Aug 31, 2023
cdb7625
- Added a few more bitflag tests
agilbert1412 Aug 31, 2023
0189458
- Rebase from main
agilbert1412 Sep 5, 2023
dd32795
- Finished the fixes for extracting shipping logic
agilbert1412 Sep 5, 2023
162482f
- Missed a rule
agilbert1412 Sep 5, 2023
c102e09
- Fixed the rule in the goal
agilbert1412 Sep 5, 2023
974a548
- Rename, modify monstersanity monster names and subset, to match mor…
agilbert1412 Sep 6, 2023
d5b7c15
- Update options to have better flags
agilbert1412 Sep 7, 2023
b3bf41d
- Fixed Building Progression flags
agilbert1412 Sep 7, 2023
759f228
- Improved the flags a little bit
agilbert1412 Sep 8, 2023
9f95b74
- Added shipping region
agilbert1412 Sep 9, 2023
4544fe4
- Added a test for the new dating rule
agilbert1412 Sep 9, 2023
fc4fdc9
- Fix hearts >= into >
agilbert1412 Sep 9, 2023
e7feb07
- Added Chefsanity
agilbert1412 Sep 9, 2023
f38e27c
- Updated location checks
agilbert1412 Sep 10, 2023
4799f77
- Placed all shipsanity locations in the shipping region, for perform…
agilbert1412 Sep 10, 2023
520aa80
- Renamed cookies
agilbert1412 Sep 17, 2023
6a917ca
- Fix name for Cookies
agilbert1412 Sep 18, 2023
c6844f9
- Rebase from main
agilbert1412 Sep 20, 2023
5bad6ca
- Chefsanity tests
agilbert1412 Sep 20, 2023
875bef8
- Added craftsanity
agilbert1412 Sep 26, 2023
2c1584e
- Added a few crafting recipe festival checks
agilbert1412 Sep 26, 2023
78eab0e
- Updated tests and added two items for the new festival checks
agilbert1412 Sep 26, 2023
c07c379
- Set proper regions for craftsanity recipes
agilbert1412 Sep 26, 2023
eb83420
- Add some requires museum flags
agilbert1412 Sep 27, 2023
d114a80
- Got rid of the concept of "requires museum", as it's easy to give a…
agilbert1412 Sep 27, 2023
9a67f1d
- Removed the last friendship heart being not progression, as that me…
agilbert1412 Sep 28, 2023
6b728ef
- Grass starter recipe is at Pierre
agilbert1412 Sep 28, 2023
a6610b8
- Added the moonlight jellies shop items
agilbert1412 Sep 29, 2023
f3a058a
- Fixes after big rebase from 993
agilbert1412 Oct 11, 2023
5ad8d7a
- Mod fixes
agilbert1412 Oct 11, 2023
4d8f469
- Added Monstersanity locations
agilbert1412 Aug 4, 2023
b9c8427
- Changed many items from progression to useful
agilbert1412 Aug 9, 2023
f229f77
- Missing Bundle and changes for recursive region access update
agilbert1412 Aug 24, 2023
30bcfcb
- Added minsanity options
agilbert1412 Aug 26, 2023
ff20141
- Some fixes
agilbert1412 Nov 21, 2023
8edc2be
Create bundle Logic
Albrekka Oct 24, 2023
c6da982
Initial SVE Items and Locations
Albrekka Oct 24, 2023
eb77f24
Add initial SVE regions
Albrekka Oct 24, 2023
f2bbede
Add SVE fish and villagers
Albrekka Oct 24, 2023
e072a2b
Initial SVE logic port
Albrekka Oct 24, 2023
2feeb90
Second Pass of SVE Logic Porting
Albrekka Oct 30, 2023
76ff2f9
Finalize initial SVE logic porting
Albrekka Oct 30, 2023
4ee681b
Modified NPC injection method
Albrekka Oct 30, 2023
d87a5d7
Introduce new modified flags for mods.
Albrekka Oct 30, 2023
a9caf7f
Add remove exit method.
Albrekka Oct 30, 2023
edc17bf
Add SVE to options.
Albrekka Nov 8, 2023
6c2ea80
Fix some errors.
Albrekka Nov 8, 2023
a39c5ac
Fill out more strings
Albrekka Nov 8, 2023
700fb7a
Utilize new strings, fix class name issue
Albrekka Nov 8, 2023
15cbc49
- Add system for modifying villagers when some mods are active
agilbert1412 Nov 8, 2023
eb740c8
- Fix Quests Logic
agilbert1412 Nov 8, 2023
1e7debd
- Gave SVE logic a little push in the right direction
agilbert1412 Nov 8, 2023
940bd03
Clean up relationship logic due to villager change.
Albrekka Nov 9, 2023
9eb42c3
Clean up logic with more proper imports.
Albrekka Nov 9, 2023
4057ed0
Fix friendsanity villager checks.
Albrekka Nov 9, 2023
83d8a04
- Fixed a bunch of syntax errors left and right
agilbert1412 Nov 9, 2023
eaea87b
- Fixes to tests
agilbert1412 Nov 9, 2023
b5fee9d
- Fix adventure guild entrance
agilbert1412 Nov 9, 2023
3c39328
- Fix quest test
agilbert1412 Nov 9, 2023
cfc7fe8
Fix item logic.
Albrekka Nov 9, 2023
cadfab1
Move grandpa's shed location
Albrekka Nov 9, 2023
be43e33
Fix region rules for ER
Albrekka Nov 9, 2023
994f773
Fix ginger island discrepency
Albrekka Nov 9, 2023
4ab096d
- removed redundant array creations
agilbert1412 Nov 12, 2023
578a3fe
- Slight refactoring for bundle logic
agilbert1412 Nov 12, 2023
a56278d
- Simplified rules
agilbert1412 Nov 12, 2023
b397b9b
- revert a change that wasn't necessary
agilbert1412 Nov 12, 2023
a6b80f5
- extracted a method in sve item rules
agilbert1412 Nov 12, 2023
11ac886
- Item logic improvements
agilbert1412 Nov 12, 2023
b6cd360
- Refactor modded quest logic
agilbert1412 Nov 12, 2023
c3ab239
- Remove duplicated options
agilbert1412 Nov 12, 2023
92bbcf8
- Fix fishing rules when playing unmodded and needing to catch any fi…
agilbert1412 Nov 12, 2023
085a155
- Sort fish names
agilbert1412 Nov 12, 2023
98b3561
Move Names
Albrekka Nov 12, 2023
9de2c22
Add SVE Recipes, fix rules
Albrekka Nov 12, 2023
46ebd5b
- Added filtering for gourmet chef recipes based on mod state
agilbert1412 Nov 12, 2023
10128e6
- Fix syntax error
agilbert1412 Nov 12, 2023
e28669b
Add Recipe Rules
Albrekka Nov 12, 2023
70b3ca5
Fix more conflicts related problems
agilbert1412 Nov 13, 2023
7f0c914
- Added caching everywhere with a decorator
agilbert1412 Nov 13, 2023
38e7e2a
- Created a profiling thing
agilbert1412 Nov 13, 2023
fcb8454
- profiling stuff removed
agilbert1412 Nov 14, 2023
7870c73
Created some performance tests to check things
agilbert1412 Nov 14, 2023
f45340d
- Updated the number of locations
agilbert1412 Nov 14, 2023
bfd6815
- Updated minmax locations
agilbert1412 Nov 14, 2023
f7eaa4e
- Add back kwargs
agilbert1412 Nov 14, 2023
56697f1
Simplify on call only
agilbert1412 Nov 14, 2023
42faae6
replace custom cache with lru
Jouramie Nov 14, 2023
2735f69
- Fix test options with the rename
agilbert1412 Nov 21, 2023
63d70ea
- Removed files I added accidentally
agilbert1412 Nov 14, 2023
f31c5bd
- Fixes to mod stuff for the cache
agilbert1412 Nov 14, 2023
c90c5d3
- get rid of lru cache
agilbert1412 Nov 15, 2023
0a898a5
- Revert accidental SC2 change
agilbert1412 Nov 21, 2023
0909ea5
- Add a test to detect if island access can get locked behind the island
agilbert1412 Nov 15, 2023
91ac65b
Fix entrance rando island bug
agilbert1412 Nov 16, 2023
8e6fa95
removed debug line
agilbert1412 Nov 16, 2023
c53ba55
- Added craft master goal
agilbert1412 Nov 16, 2023
4af678c
- Fix craft master condition
agilbert1412 Nov 16, 2023
68e6b96
- Fix Craft Master requiring the QI recipes
agilbert1412 Nov 16, 2023
849623c
- Fixed deluxe retaining soil's ginger island flag
agilbert1412 Nov 16, 2023
b5798d9
- Only have babies and baby checks if some level of friendsanity is e…
agilbert1412 Nov 16, 2023
e985b7d
- Updated number of minsanity locations
agilbert1412 Nov 16, 2023
f57af3a
- Added randomized farm type
agilbert1412 Nov 17, 2023
f5bee75
- Added goals Legend, Mystery of the stardrops and Allsanity
agilbert1412 Nov 17, 2023
1229249
- Fixed deprecated assert method
agilbert1412 Nov 17, 2023
f930639
- Remove extra precollected seasons
agilbert1412 Nov 18, 2023
98b20ff
- Removed an accidental file
agilbert1412 Nov 19, 2023
a1aece7
- Fixed some recipes that were not marked as special orders or festiv…
agilbert1412 Nov 20, 2023
67689a5
- Got rid of the concept of "Month End" for money
agilbert1412 Nov 21, 2023
4964fa6
Fix SVE friendsanity location requirements.
agilbert1412 Nov 21, 2023
7dfe13f
Recipe and Craftsanity Logic
Albrekka Nov 18, 2023
d053c24
Shipsanity Logic
Albrekka Nov 18, 2023
a6adca4
- Improved the shipping logic code a tiny bit
agilbert1412 Nov 19, 2023
95332bd
Consolidating strings and clean up code
Albrekka Nov 21, 2023
b5fc1d3
Remove default value
Albrekka Nov 21, 2023
e6f3f6a
- rename a variable, fix a syntax, etc
agilbert1412 Nov 21, 2023
5ddcb56
- Fix conflicts in relationship logic
agilbert1412 Nov 21, 2023
f180e63
- Fix cropsanity rename
agilbert1412 Nov 21, 2023
784b41f
- Fixed a few tests failing on the new money logic
agilbert1412 Nov 21, 2023
906e03d
- slight improvement to performance of And and Or
agilbert1412 Nov 14, 2023
6452441
- Remove skip performance test override again
agilbert1412 Nov 21, 2023
b2a78cf
- Undid some changes in base classes because alttp can't handle them
agilbert1412 Nov 21, 2023
013e393
- Improved buildings logic and houses
agilbert1412 Nov 21, 2023
6aeb7d8
- Updated check counts
agilbert1412 Nov 21, 2023
583983f
- Made the railroad boulder into an AP item
agilbert1412 Nov 22, 2023
10e9f9e
- Add Dark Talisman quest event
agilbert1412 Nov 22, 2023
9a1107b
- Fixed circular dependency
agilbert1412 Nov 22, 2023
8505940
delete dead code
Jouramie Nov 19, 2023
87b0a8e
delete dead code
Jouramie Nov 19, 2023
392a7e8
introduce first mixin
Jouramie Nov 20, 2023
cce8545
more mixin
Jouramie Nov 20, 2023
f0f5ad0
more mixin
Jouramie Nov 20, 2023
a10c171
mixin rework to be independent
Jouramie Nov 20, 2023
8d65da5
document logic mixins and content packs design
Jouramie Nov 20, 2023
f0de1d5
rework mixins again
Jouramie Nov 20, 2023
e13acfd
more mixin rework
Jouramie Nov 20, 2023
9ecbfa6
more mixin rework
Jouramie Nov 21, 2023
f03d3d2
skill and farming mixin
Jouramie Nov 21, 2023
18c1778
fishing and bundle mixin
Jouramie Nov 21, 2023
33cf528
cooking and mine mixin
Jouramie Nov 21, 2023
f3788d9
ability and mod skill mixin
Jouramie Nov 21, 2023
e354db8
quest and crafting mixin
Jouramie Nov 21, 2023
3b5c5c4
finish mod logic rewrite, put everything in registry
Jouramie Nov 21, 2023
64a7c26
fix options craps
Jouramie Nov 22, 2023
4dd49a3
Merge pull request #9 from agilbert1412/StardewValley/5.x.x-mod-rewrite
agilbert1412 Nov 22, 2023
ca2f7d4
- WIP - bundles rework
agilbert1412 Nov 22, 2023
2ac5fe7
- WIP again
agilbert1412 Nov 22, 2023
2e8d2b1
- WIP
agilbert1412 Nov 22, 2023
3699056
- started making the bundles
agilbert1412 Nov 22, 2023
6664130
fix a typo
Jouramie Nov 22, 2023
64b4787
remove unused init
Jouramie Nov 23, 2023
b603554
- Finally passing all the tests
agilbert1412 Nov 23, 2023
0dd79cf
- Fixed slot data
agilbert1412 Nov 23, 2023
32177bb
- Added more currency bundles
agilbert1412 Nov 24, 2023
c547d53
Merge branch 'StardewValley/5.x.x' of https://github.com/agilbert1412…
agilbert1412 Nov 24, 2023
011c330
- Fix skill_logic.py
agilbert1412 Nov 24, 2023
5b297f1
Run fill in performance tests
Jouramie Nov 24, 2023
ebdcf94
rename count percent to has progression percent
Jouramie Nov 24, 2023
fa99579
Run fill in performance tests
Jouramie Nov 24, 2023
33ad21d
fix seeds for more stability
Jouramie Nov 25, 2023
d4339b4
performance tests refactoring
Jouramie Nov 25, 2023
d1b69d7
shortcut geode logic if no geode
Jouramie Nov 25, 2023
bbd5846
invert and and or for better code reuse
Jouramie Nov 25, 2023
915f09f
and optimization
Jouramie Nov 24, 2023
7b90469
or has progression percent optimization
Jouramie Nov 25, 2023
d3a11cf
- Added a few remixed bundkes
agilbert1412 Nov 26, 2023
3af5784
Merge branch 'StardewValley/5.x.x' of https://github.com/agilbert1412…
agilbert1412 Nov 26, 2023
96abf17
- Fixed magic bait, improve rule explanation string
agilbert1412 Nov 26, 2023
2eb1ed8
- Added demolition bundle
agilbert1412 Nov 26, 2023
f902fbc
cleanup
Jouramie Nov 25, 2023
9b069f9
generify combinable rules
Jouramie Nov 25, 2023
641212a
fix or and combining of rules
Jouramie Nov 25, 2023
47029ad
eliminate duplication between Or and And
Jouramie Nov 26, 2023
32c3103
stop merging sets so much
Jouramie Nov 26, 2023
22a2eeb
change frozensets for tuple
Jouramie Nov 26, 2023
0db53e0
split rules while merging
Jouramie Nov 26, 2023
e35f87d
use type instead of __class__
Jouramie Nov 26, 2023
0cc02c8
delete dead code
Jouramie Nov 26, 2023
b2ca4a7
stuff
Jouramie Nov 26, 2023
1219b29
rename unique rules to other rules
Jouramie Nov 26, 2023
150b354
check combined rules before simplifying
Jouramie Nov 26, 2023
a9cf7c9
- Add shipping event so the indirect connections don't fuck me over
agilbert1412 Nov 26, 2023
0a90f54
Merge branch 'StardewValley/5.x.x' of https://github.com/agilbert1412…
agilbert1412 Nov 26, 2023
a2a3692
simplify merge of combinable stardew rules
Jouramie Nov 26, 2023
f161c8e
fix long tests
Jouramie Nov 26, 2023
39d19bf
Merge branch 'StardewValley/5.x.x' of https://github.com/agilbert1412…
agilbert1412 Nov 26, 2023
38413c8
- Added missing ginger island tags
agilbert1412 Nov 26, 2023
9088ab5
stuff
Jouramie Nov 26, 2023
8ce4c2f
simplify while evaluate
Jouramie Nov 26, 2023
bf759d1
change comprehension to classic for loop
Jouramie Nov 26, 2023
a98790b
check if simplified is in set and shortcircuit complement
Jouramie Nov 26, 2023
8d0c2f0
use _simplified_rules
Jouramie Nov 26, 2023
182b522
really evaluate while simplifying
Jouramie Nov 26, 2023
375cda7
return both simplified and value
Jouramie Nov 26, 2023
388f827
rename
Jouramie Nov 26, 2023
70fed84
spead evaluate_while_simplifying
Jouramie Nov 26, 2023
47ac61b
mark empty rules as simplified
Jouramie Nov 26, 2023
927409e
remove comment
Jouramie Nov 27, 2023
32f7cb8
remove unused simplify
Jouramie Nov 27, 2023
aa4ce68
add comments to clarify the algo
Jouramie Nov 27, 2023
b9e14c7
another comment
Jouramie Nov 27, 2023
0bf2578
fix Set changed size issue
Jouramie Nov 28, 2023
934564f
add tests yet to be fixed
Jouramie Nov 30, 2023
01746d7
rename for clarity
Jouramie Nov 30, 2023
2a6ddf4
add example to explain nested calls
Jouramie Nov 30, 2023
882aac0
- Cherry picked recipe changes from SVE
agilbert1412 Nov 30, 2023
2a13409
Merge branch 'StardewValley/5.x.x' of https://github.com/agilbert1412…
agilbert1412 Nov 30, 2023
1447b40
- Shorten region rules for always-accessible regions
agilbert1412 Dec 1, 2023
2384e68
fix tests
Jouramie Dec 2, 2023
c6c1b09
Fix regions and names
Albrekka Nov 29, 2023
20c1745
Add SVE Quest Iterable
Albrekka Nov 29, 2023
d3e2b53
Fix craftables
Albrekka Nov 29, 2023
e5bcfba
Add excalibur location
Albrekka Nov 29, 2023
9ea684b
Add SVE special orders
Albrekka Nov 29, 2023
62c2f7f
Fix Frostbolt name
Albrekka Nov 29, 2023
eab4da7
Include missing imports
Albrekka Nov 29, 2023
2b0c4d0
general fixes
Albrekka Nov 29, 2023
728f2cf
Rework some weapon additions
Albrekka Nov 30, 2023
943336b
Fix rules with names
Albrekka Nov 30, 2023
188fe3f
Add Cropsanity locations
Albrekka Nov 30, 2023
bc58bad
Remove Learned Craftsanity Locations
Albrekka Nov 30, 2023
321bf6c
Add Alecto & Distant Lands
Albrekka Nov 30, 2023
5500626
Fix SVE entrance name
Albrekka Dec 2, 2023
c614452
Fix SVE region name and remove shuffle
Albrekka Dec 2, 2023
81f5c8f
Fix some DL logic and names
Albrekka Dec 2, 2023
f6b2c12
Fix spacing problem I hope
Albrekka Dec 2, 2023
dd12c30
How about this for line endings.
Albrekka Dec 2, 2023
0556650
And the finale.
Albrekka Dec 2, 2023
c43591e
- Slight improvement
agilbert1412 Dec 3, 2023
3aa4eff
Add files via upload
Witchybun Dec 4, 2023
be42673
Utilize a weapons count method
Albrekka Dec 4, 2023
f29e05b
Make new recipe source
Albrekka Dec 4, 2023
2ace1e2
Fix locations and cropsanity logic
Albrekka Dec 4, 2023
24c12ca
Fix item and quest logic
Albrekka Dec 4, 2023
6b6b7bf
Make two quests GI required
Albrekka Dec 5, 2023
5e13c7f
Use has_seed_unlocked as name
Albrekka Dec 5, 2023
d7dbc5b
Swap season order
Albrekka Dec 5, 2023
6a228aa
Make weapons_count only run once
Albrekka Dec 5, 2023
37c8805
Combining runes to avoid patcher error
Albrekka Dec 6, 2023
b26df8d
Mark items as progression, fix tests.
Albrekka Dec 6, 2023
5af8e7c
Fix up Highlands Name
Albrekka Dec 6, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
- Missing Bundle and changes for recursive region access update
  • Loading branch information
agilbert1412 committed Nov 21, 2023
commit a20da1dbfb110c3bd7d7f75194db9bb8fa881a4d
47 changes: 24 additions & 23 deletions BaseClasses.py
Original file line number Diff line number Diff line change
Expand Up @@ -638,36 +638,37 @@ def __init__(self, parent: MultiWorld):
self.collect(item, True)

def update_reachable_regions(self, player: int):
new_connection: bool = True
self.stale[player] = False
rrp = self.reachable_regions[player]
bc = self.blocked_connections[player]
reachable_regions = self.reachable_regions[player]
blocked_connections = self.blocked_connections[player]
queue = deque(self.blocked_connections[player])
start = self.multiworld.get_region('Menu', player)
start = self.multiworld.get_region("Menu", player)

# init on first call - this can't be done on construction since the regions don't exist yet
if start not in rrp:
rrp.add(start)
bc.update(start.exits)
if start not in reachable_regions:
reachable_regions.add(start)
blocked_connections.update(start.exits)
queue.extend(start.exits)

# run BFS on all connections, and keep track of those blocked by missing items
while queue:
connection = queue.popleft()
new_region = connection.connected_region
if new_region in rrp:
bc.remove(connection)
elif connection.can_reach(self):
assert new_region, f"tried to search through an Entrance \"{connection}\" with no Region"
rrp.add(new_region)
bc.remove(connection)
bc.update(new_region.exits)
queue.extend(new_region.exits)
self.path[new_region] = (new_region.name, self.path.get(connection, None))

# Retry connections if the new region can unblock them
for new_entrance in self.multiworld.indirect_connections.get(new_region, set()):
if new_entrance in bc and new_entrance not in queue:
queue.append(new_entrance)
while new_connection:
new_connection = False
while queue:
connection = queue.popleft()
new_region = connection.connected_region
if new_region in reachable_regions:
blocked_connections.remove(connection)
elif connection.can_reach(self):
assert new_region, f"tried to search through an Entrance \"{connection}\" with no Region"
reachable_regions.add(new_region)
blocked_connections.remove(connection)
blocked_connections.update(new_region.exits)
queue.extend(new_region.exits)
self.path[new_region] = (new_region.name, self.path.get(connection, None))
new_connection = True
# sweep for indirect connections, mostly Entrance.can_reach(unrelated_Region)
queue.extend(blocked_connections)

def copy(self) -> CollectionState:
ret = CollectionState(self.multiworld)
Expand Down
38 changes: 22 additions & 16 deletions worlds/stardew_valley/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@
from .rules import set_rules
from worlds.generic.Rules import set_rule
from .stardew_rule import True_, StardewRule
from .strings.goal_names import Goal as GoalName
from .strings.ap_names.event_names import Event
from .strings.goal_names import Goal

client_version = 0

Expand Down Expand Up @@ -136,6 +137,7 @@ def create_items(self):

self.setup_early_items()
self.setup_month_events()
self.setup_construction_events()
self.setup_victory()

def precollect_starting_season(self) -> Optional[StardewItem]:
Expand Down Expand Up @@ -169,60 +171,64 @@ def setup_early_items(self):

def setup_month_events(self):
for i in range(0, MAX_MONTHS):
month_end = LocationData(None, "Stardew Valley", f"Month End {i + 1}")
month_end = LocationData(None, "Stardew Valley", f"{Event.month_end} {i + 1}")
if i == 0:
self.create_event_location(month_end, True_(), "Month End")
self.create_event_location(month_end, True_(), Event.month_end)
continue

self.create_event_location(month_end, self.logic.received("Month End", i).simplify(), "Month End")
self.create_event_location(month_end, self.logic.received(Event.month_end, i).simplify(), Event.month_end)

def setup_construction_events(self):
can_construct_buildings = LocationData(None, "Carpenter Shop", Event.can_construct_buildings)
self.create_event_location(can_construct_buildings, True_(), Event.can_construct_buildings)

def setup_victory(self):
if self.options.goal == Goal.option_community_center:
self.create_event_location(location_table[GoalName.community_center],
self.logic.can_complete_community_center().simplify(),
"Victory")
Event.victory)
elif self.options.goal == Goal.option_grandpa_evaluation:
self.create_event_location(location_table[GoalName.grandpa_evaluation],
self.logic.can_finish_grandpa_evaluation().simplify(),
"Victory")
Event.victory)
elif self.options.goal == Goal.option_bottom_of_the_mines:
self.create_event_location(location_table[GoalName.bottom_of_the_mines],
self.logic.mine.can_mine_to_floor(120).simplify(),
item="Victory")
Event.victory)
elif self.options.goal == Goal.option_cryptic_note:
self.create_event_location(location_table[GoalName.cryptic_note],
self.logic.can_complete_quest("Cryptic Note").simplify(),
"Victory")
Event.victory)
elif self.options.goal == Goal.option_master_angler:
self.create_event_location(location_table[GoalName.master_angler],
self.logic.can_catch_every_fish().simplify(),
"Victory")
Event.victory)
elif self.options.goal == Goal.option_complete_collection:
self.create_event_location(location_table[GoalName.complete_museum],
self.logic.museum.can_complete_museum().simplify(),
"Victory")
Event.victory)
elif self.options.goal == Goal.option_full_house:
self.create_event_location(location_table[GoalName.full_house],
(self.logic.relationship.has_children(2) & self.logic.relationship.can_reproduce()).simplify(),
"Victory")
Event.victory)
elif self.options.goal == Goal.option_greatest_walnut_hunter:
self.create_event_location(location_table[GoalName.greatest_walnut_hunter],
self.logic.has_walnut(130).simplify(),
"Victory")
Event.victory)
elif self.options[options.Goal] == options.Goal.option_protector_of_the_valley:
self.create_event_location(location_table[Goal.protector_of_the_valley],
self.logic.can_complete_all_monster_slaying_goals().simplify(),
"Victory")
Event.victory)
elif self.options[options.Goal] == options.Goal.option_full_shipment:
self.create_event_location(location_table[Goal.full_shipment],
self.logic.can_ship_everything().simplify(),
"Victory")
Event.victory)
elif self.options[options.Goal] == options.Goal.option_perfection:
self.create_event_location(location_table[Goal.perfection],
self.logic.has_everything(self.all_progression_items).simplify(),
"Victory")
Event.victory)

self.multiworld.completion_condition[self.player] = lambda state: state.has("Victory", self.player)
self.multiworld.completion_condition[self.player] = lambda state: state.has(Event.victory, self.player)

def create_item(self, item: Union[str, ItemData], override_classification: ItemClassification = None) -> StardewItem:
if isinstance(item, str):
Expand Down
7 changes: 6 additions & 1 deletion worlds/stardew_valley/bundles.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
"Bulletin Board/33": "Enchanter's/O 336 5/725 1 0 348 1 0 446 1 0 637 1 0/1",
"Bulletin Board/34": "Dye/BO 25 1/420 1 0 397 1 0 421 1 0 444 1 0 62 1 0 266 1 0/6",
"Bulletin Board/35": "Fodder/BO 104 1/262 10 0 178 10 0 613 3 0/3",
# "Abandoned Joja Mart/36": "The Missing//348 1 1 807 1 0 74 1 0 454 5 2 795 1 2 445 1 0/1/5"
"Abandoned Joja Mart/36": "The Missing//348 1 1 807 1 0 74 1 0 454 5 2 795 1 2 445 1 0/1/5"
}


Expand Down Expand Up @@ -204,6 +204,7 @@ def shuffle_bundles_thematically(random: Random, bundles: Dict[str, Bundle]):
shuffle_fish_tank_thematically(random, bundles)
shuffle_boiler_room_thematically(random, bundles)
shuffle_bulletin_board_thematically(random, bundles)
shuffle_abandoned_jojamart_thematically(random, bundles)


def shuffle_crafts_room_bundle_thematically(random: Random, bundles: Dict[str, Bundle]):
Expand Down Expand Up @@ -247,6 +248,10 @@ def shuffle_bulletin_board_thematically(random: Random, bundles: Dict[str, Bundl
bundles["Enchanter's Bundle"].randomize_requirements(random, enchanter_items)


def shuffle_abandoned_jojamart_thematically(random: Random, bundles: Dict[str, Bundle]):
bundles["The Missing Bundle"].randomize_requirements(random, missing_bundle_items)


def shuffle_vault_amongst_themselves(random: Random, bundles: Dict[str, Bundle]):
bundles["2,500g Bundle"].randomize_requirements(random, vault_bundle_items)
bundles["5,000g Bundle"].randomize_requirements(random, vault_bundle_items)
Expand Down
Loading