Commit Graph

284 Commits

Author SHA1 Message Date
Fabian Dill b5d91af752 New Logic:
Enemy Shuffle awareness
Easy Item Functionality awareness
Dark Room Logic option
Boss Item Shuffle option
Silverless Ganon is a Minor Glitch

Faster Dungeon Item Fill
2020-10-07 19:51:46 +02:00
CaitSith2 9812e2cca5 Add sprite_pool for limiting sprites used in randomonevent. 2020-10-06 13:22:03 -07:00
CaitSith2 dd1bf446ea Put bombos into logic for swordless players 2020-09-27 10:17:35 -07:00
Fabian Dill 5b19818d14 fix prize shuffle alignment in spoiler log 2020-09-20 04:37:12 +02:00
Fabian Dill a668aa3b23 Make "Prize" shuffling an option 2020-09-20 04:35:45 +02:00
CaitSith2 f040e96bef Fix for Killable thieves, tile shuffle, bush shuffle always saying Yes in the spoiler log. 2020-09-14 23:09:47 -07:00
Fabian Dill d32bfb7bdf Change "not found" style errors from RuntimeError (misc error) to KeyError (value not found for a given search key) 2020-09-13 17:07:46 +02:00
Fabian Dill ada13a67fc rebuild world cache on cache miss 2020-09-08 15:02:37 +02:00
CaitSith2 096fc988c4 Show replacement items in shop spoiler if applicable 2020-09-01 21:23:43 -07:00
Fabian Dill 112868b751 remove duplicate shop setting in gui and make entrance/location cache renew slightly faster 2020-08-27 04:05:11 +02:00
Fabian Dill 6370f4793b Make triforce hunt item pool fully dynamic 2020-08-25 19:45:33 +02:00
Fabian Dill d86eb69b4c Remove old fill algorithms that I have no intention to optimize or support in the future 2020-08-25 17:44:03 +02:00
Fabian Dill 6d38e87527 Refactor some shop code 2020-08-25 14:31:20 +02:00
Fabian Dill ff79cb6e08 Fix custom item pool
fixes #136
2020-08-24 02:24:48 +02:00
Fabian Dill 9cabd41d3b shopsanity 2020-08-23 21:38:21 +02:00
Fabian Dill 26ab3dd69a Shop Shuffle
- more can be done here, but this works fine as a sometimes fun proof of concept
2020-08-23 15:03:06 +02:00
Fabian Dill b5048d99b9 optimize sweep_for_events, some has_ functions and some minor things 2020-08-22 19:19:29 +02:00
Fabian Dill 45268b18f3 another round of optimizations and cleanup including some I/O multithreading
also alias sprite names with their file names as that's an often done mistake
2020-08-21 18:35:48 +02:00
Fabian Dill 685ff49711 make "universal" small key shuffle a thing and split it out of retro
also make retro usable independently from the other world modes in mystery
2020-08-20 20:13:00 +02:00
Fabian Dill 367c853300 optimize getting player names 2020-08-20 03:57:09 +02:00
Fabian Dill cb4fa6dd33 Split enemy shuffle into its components 2020-08-19 23:24:17 +02:00
Fabian Dill 41163d50f5 default triforces in custom gui to their actual default 2020-08-16 16:49:48 +02:00
Fabian Dill df6ee1a08b Fill Algorithm optimisations (somewhat minor, but easy pickings) 2020-08-14 00:34:41 +02:00
Fabian Dill 615192f65b remove lamps_needed_for_dark_rooms variable 2020-08-01 06:26:30 +02:00
compiling d046829eae Change item placement rules to not be part of logic - they are used for local items and to prevent placing items in ways that would make seed generation impossible. 2020-07-16 18:59:23 +10:00
Fabian Dill 93ecf5988b implement secrets.SystemRandom() for --race 2020-07-14 07:01:51 +02:00
compiling 1594d82fb2 Add logic for including nologic seeds in multiworlds (overworld glitch rules)
nologic seeds are generated as beatable only with no progression balancing, where it is assumed the player can always win no matter where items are placed.
Add superbunny and dungeon revival to minor glitch ruleset.
2020-07-12 20:19:45 +10:00
Fabian Dill 57fe16ab60 remove special rules for pinball room 2020-07-09 16:16:31 +02:00
Fabian Dill dd19834e94 implement Silver Bow as default non-progressive Bow 2020-06-30 09:51:11 +02:00
Fabian Dill 521d3b0584 make larger trackers linked tables 2020-06-30 07:32:05 +02:00
CaitSith2 545bb8023c
Add ganon triforce hunt (#117)
* Add ganon triforce hunt

* Add self to license

* Correction of help message for Local Ganon Triforce Hunt.

* if 'triforcehunt in world.goal[player]:
2020-06-26 16:18:53 +02:00
Fabian Dill d3d68fcba2 Rename Escape Dungeon to Hyrule Castle by vote on discord 2020-06-24 16:22:49 +02:00
Fabian Dill f311d3a8b9 implement "crossover logic".
Makes it impossible that logical progression for a logic-having player is placed inside a no-logic world. All other placements remain available.
2020-06-19 03:01:23 +02:00
caitsith2 617312fd4b add available_triforce_pieces 2020-06-17 01:02:54 -07:00
Fabian Dill 9fcad5b392 fix that in a copied world progressive equipment would always say "on", including spoiler log 2020-06-09 18:44:02 +02:00
Fabian Dill 17f884d047 make triforce pieces required an option 2020-06-07 15:22:24 +02:00
Fabian Dill 2a649a749c fix crash when quick filling locally locked trash items 2020-06-04 03:30:59 +02:00
Fabian Dill e55726efca make world-local items available as a general option 2020-06-03 22:13:58 +02:00
Fabian Dill 3864eb5071 fix /snes <snes_interface> if interface contains spaces (which it shouldn't, but meh) 2020-06-03 02:19:16 +02:00
Fabian Dill daf3747bec add progression balancing to spoiler 2020-05-20 22:30:21 +02:00
CaitSith2 0deac5ef9d
Add Bosses to spoiler log (#96) 2020-05-20 22:21:05 +02:00
Fabian Dill 11678fa20b turn progression balancing into a per-player option 2020-05-18 03:54:29 +02:00
compiling 195f6c86d2 Replace world exploration with a faster algorithm - use BFS and keep track of all entrances that are currently blocked by progression items 2020-05-10 19:27:13 +10:00
Fabian Dill 1a53b0e69b rename has_blunt_weapon to has_melee_weapon 2020-04-20 19:17:10 +02:00
Fabian Dill 860faf6ef5 unify versions 2020-04-20 14:50:49 +02:00
Fabian Dill 31d3b7ce84 implement glitch_boots as a proper CLI option 2020-04-16 11:02:16 +02:00
Fabian Dill 26ea2d5905 some optimization 2020-04-14 18:59:00 +02:00
Fabian Dill 2fb419263e remove some instances of no longer existing __unicode__ 2020-04-10 21:31:15 +02:00
Fabian Dill 01b7a590e7 add glitch_boots mystery node 2020-04-10 20:58:52 +02:00
Fabian Dill 2ebc133cab add world get_type type checker 2020-04-10 20:54:18 +02:00
Fabian Dill 95d51d48bf Merge branch 'pull/23'
# Conflicts:
#	BaseClasses.py
#	EntranceShuffle.py
#	ItemList.py
#	Mystery.py
#	Rules.py
2020-04-08 15:07:19 +02:00
Fabian Dill f89c28d5c2 Merge branch 'master' into pull/58
# Conflicts:
#	AdjusterMain.py
#	BaseClasses.py
#	EntranceShuffle.py
#	Gui.py
#	InvertedRegions.py
#	ItemList.py
#	Main.py
#	Plando.py
#	Rom.py
#	Rules.py
2020-04-04 09:16:39 +02:00
compiling 270fbce516 Fix bombs check 2020-03-15 21:59:06 +11:00
compiling ab89f70fa3 Add 10 bombs as an uncle weapon for standard. 2020-03-15 11:09:34 +11:00
compiling 18c10dc7ad Make retro arrows always require buying the wooden arrow.
The Silver Arrows grant the ability to shoot if they are non-progressive, but this is harder to model.
2020-03-15 10:12:22 +11:00
compiling 5c95cf8730 Fix Half Magic logic 2020-03-14 10:31:28 +11:00
Fabian Dill 4cb5af19d6 write spoiler in unicode 2020-03-10 00:36:26 +01:00
Fabian Dill 99e7d51f11 remove reachable cache. Seems I missed invalidations somewhere as the wrong state can be retained. 2020-03-08 05:41:56 +01:00
Fabian Dill f583db3ee9 remove collections_extended dependency and replace with much faster stdlib Counter 2020-03-07 23:35:55 +01:00
Fabian Dill 27b6dd8bd7 some speed improvments 2020-03-07 23:20:11 +01:00
Fabian Dill 6059db3ea0 some general improvements. Mostly performance improvements of patching roms in multiworld with enemizer 2020-03-06 23:08:46 +01:00
Fabian Dill e3beb702f8 fix clock mode, again 2020-03-04 13:55:03 +01:00
Fabian Dill d49bb10534 remove unused checks (as indicated by new type annotations) 2020-03-03 00:17:36 +01:00
Fabian Dill 260e156316 add some annotations to BaseClasses.py 2020-03-03 00:12:14 +01:00
Fabian Dill 11e1ad6901 some small improvements for mystery 2020-02-23 17:06:44 +01:00
Fabian Dill 95aea8c4b4 rename ocarina to flute. 2020-02-17 10:08:03 +01:00
Fabian Dill b04db006e0 implement server-client handshake and move hint system to optional colorama support 2020-02-16 15:32:40 +01:00
qadan 3d021356b8 hera and tr superbunny logic 2020-02-12 19:48:36 -04:00
qadan aa569d1c3d rework as region connectors (inverted will be broken) 2020-02-10 23:54:35 -04:00
qadan ff3b879a02 more idiomatic, bugfix too 2020-02-10 00:38:55 -04:00
qadan d22ccdedb3 some changes 2020-02-06 12:20:50 -04:00
cassidy 0e18dd06a6
Fix can_take_damage world attribute (#24) 2020-02-03 03:52:57 +01:00
cassidy 21b8c73179
Add "timer" as individual setting (#23) 2020-02-03 02:10:56 +01:00
qadan 4b7694b50f updates 2020-01-28 18:19:07 -04:00
DatXFire fbfcb54bab Add missing colon (#15) 2020-01-22 18:08:56 +01:00
Fabian Dill 06ea170ecd
Non progressive option (#12)
* allow non-progressive

* use the actual extended_collections module
2020-01-22 06:28:58 +01:00
DatXFire 341e794cd8 Add Beemizer and Pot Shuffle to Spoiler Log Output 2020-01-18 12:51:10 -05:00
Bonta-kun f988f7671b --remote_items toggle: items will no longer be stored in the rom, a connection to a multiworld server will be required to receive them 2020-01-18 09:50:12 +01:00
Bonta-kun ad278f91d6 Multiworld: clients will now be automatically be identified from the rom name and have their names and teams set by the host, meaning those need to be configured during seed gen
Player names will show up in spoiler log and hint tiles instead of player id
MultiClient: autoreconnect to mw server
2020-01-14 10:42:27 +01:00
Bonta-kun 2f5a3e24dd Small shops refactor, cleanup some inverted mess 2020-01-10 11:41:22 +01:00
Bonta-kun 77ae96cf1b Refactor rom patching now that jsonrom patches can safely be merged 2020-01-10 07:02:44 +01:00
Bonta-kun 6bafdfafe6 Mystery: rom options can be set in weights file, eg
rom:
  sprite:
    random: 1
    randomonhit: 1
    mog: 1
  disablemusic: off
  quickswap:
    on: 1
    off: 0
  menuspeed:
    normal: 1
    instant: 1
    double: 1
    triple: 1
    quadruple: 1
    half: 1
  heartcolor:
    red: 1
    blue: 1
    green: 1
    yellow: 1
    random: 1
  heartbeep:
    double: 1
    normal: 1
    half: 1
    quarter: 1
    off: 1
  ow_palettes:
    default: 1
    random: 1
    blackout: 1
  uw_palettes:
    default: 1
    random: 1
    blackout: 1
2020-01-09 17:46:07 +01:00
Bonta-kun 42b85d7a3c Include sphere0 items in the spoiler log and in the playthrough 2020-01-09 08:31:49 +01:00
compiling edd656b903 Swap implementation of Take Any fix to match Multiworld. 2020-01-03 08:27:22 +11:00
compiling 0eed4bb527 Add shop door ids to tables (used when shop locations are vanilla)
Do not replace Upgrade Fairy with retro shop
2020-01-02 16:33:00 +11:00
Bonta-kun fe307b1ac7 bzzz bzzz 2019-12-30 03:03:53 +01:00
Bonta-kun 819f6dc975 Retro: fix take any entrances with default connections 2019-12-27 19:11:41 +01:00
Bonta-kun aa080eb455 Include unreachable items in the spoiler log 2019-12-21 13:33:07 +01:00
Bonta-kun 4a16ba74e8 Fix triforce hunt icon showing for every player 2019-12-21 10:42:59 +01:00
Bonta-kun 8721310cf7 World: include can_access_trock_eyebridge can_access_trock_front can_access_trock_big_chest can_access_trock_middle and fix_fake_world in the player specific attributes 2019-12-18 20:45:51 +01:00
Bonta-kun 36bdb5f487 Spoiler: reorder some settings for visibility 2019-12-17 21:12:05 +01:00
Bonta-kun a24fe1f3bf World.__init__: group player attributes to remove some redundancy 2019-12-17 21:09:33 +01:00
Bonta-kun 1ecb5fe40b Individual settings: shufflebosses shuffleenemies enemy_health enemy_damage 2019-12-17 15:55:53 +01:00
Bonta-kun 8a5eef11ce Individual settings: hints 2019-12-17 12:22:55 +01:00
Bonta-kun d9281adc07 Individual settings: accessibility 2019-12-17 12:14:29 +01:00
Bonta-kun e5246d5d5a Individual settings: retro 2019-12-17 00:16:02 +01:00
Bonta-kun 1315eb55cf Individual settings: map/compass/key/bk shuffle 2019-12-16 21:46:47 +01:00
Bonta-kun dc26dfce77 Individual settings: crystals_ganon crystals_gt openpyramid 2019-12-16 19:09:15 +01:00
Bonta-kun ec1b9eca43 Individual settings: shuffle 2019-12-16 18:24:34 +01:00
Bonta-kun 203147dda1 Individual settings: difficulty and item_functionality 2019-12-16 17:46:21 +01:00