Commit Graph

260 Commits

Author SHA1 Message Date
CaitSith2 07f97887d1 Fix bug with boss plandomizer 2021-01-06 11:12:23 -08:00
CaitSith2 3d13ab749e Allow specifying multiple items and locations to fill at once. 2021-01-06 09:55:16 -08:00
CaitSith2 a6d53aafb0 Add option to hard require plando item placement. 2021-01-04 13:50:42 -08:00
CaitSith2 bf5930e193 Catch plando errors that will never resolve at mystery rolling time. 2021-01-03 07:14:31 -08:00
Fabian Dill 8ebd36b5a7 update Archipelago 2021-01-03 14:32:32 +01:00
Fabian Dill 08ca4245c1 Merge branch 'main' into breaking_changes
# Conflicts:
#	Adjuster.py
#	AdjusterMain.py
#	BaseClasses.py
#	MultiClient.py
#	MultiServer.py
#	Mystery.py
#	Utils.py
#	WebHostLib/downloads.py
#	WebHostLib/generate.py
#	dumpSprites.py
#	test/TestBase.py
#	worlds/alttp/EntranceRandomizer.py
#	worlds/alttp/Main.py
#	worlds/alttp/Rom.py
2021-01-03 13:13:59 +01:00
Fabian Dill e7beb80219 Allow Mystery setting Misery Mire and Turtle Rock medallions 2021-01-02 23:00:14 +01:00
Fabian Dill be162f5b8d Connections Plando Support 2021-01-02 22:41:03 +01:00
Fabian Dill 07df9b9e80 Text Plando Support 2021-01-02 16:44:58 +01:00
Fabian Dill f3b6be2b20 Item Plando Support 2021-01-02 12:49:43 +01:00
Fabian Dill 3d53adf45c more debug/warning feedback for linked options 2021-01-02 05:24:53 +01:00
Fabian Dill 6256337df1 Manual Boss Placements 2020-12-31 13:23:32 +01:00
pepperpow 7b5bd016b9 Merge branch 'potion-shop' of github.com:pepperpow/MultiWorld-Utilities into multishop-all 2020-12-02 20:35:59 -06:00
pepperpow 608d96329f Shop Item Pool fill feature + multiworld player compatability 2020-11-23 20:05:04 -06:00
pepperpow fe218fffa6 Potion Shop Changes
(reduced)
2020-11-23 19:00:11 -06:00
CaitSith2 4370447adc More fixes to non_local_items 2020-11-22 14:29:11 -08:00
Fabian Dill fc2f1dfd29 implement "non_local_items" 2020-11-22 22:53:31 +01:00
CaitSith2 7312ffdf5f Recognize list as an unweighted list of choices. 2020-11-05 17:03:33 -08:00
Kaito Sinclaire 41a58084f1 Options for amount of time given in timer modes
(Primarily to make Timed OHKO a viable multiworld and/or mystery option,
but also works with other timer modes as well)
2020-10-28 16:20:59 -07:00
Fabian Dill 1d58f54101 move ALTTP to its own world folder 2020-10-24 05:38:56 +02:00
Fabian Dill 2d43cae88e palette fixes 2020-10-24 05:33:52 +02:00
Edos512 b91a627b32
Added options from Maseya Palette Randomizer (#145)
Add remaining palette shuffle options
2020-10-24 02:44:27 +02:00
CaitSith2 651e1a1901 Changes
* Fix chests always being for yourself AND intended recipient for Race Rom seeds.
* Fix MultiMystery not being able to correctly pack Race Rom seeds into a zip file.
* Add tags to multidata for Race rom, Spoiler log, and Playthrough if spoiler log was generated.
2020-10-21 02:02:13 -07:00
Fabian Dill 5436c062d3 Cast to number types explicitly in case they come as string from yaml in Mystery.py 2020-10-18 07:12:09 +02:00
Chris Wilson c714131b37 Fix the player settings page generating yaml files with string keys containing integers 2020-10-18 00:51:50 -04:00
CaitSith2 f17682e997 Implement pedestal ganon goal 2020-10-15 15:24:52 -07:00
CaitSith2 4e0a2ad696 Actually iterate the dictionary correctly. 2020-10-14 20:33:12 -07:00
CaitSith2 99e21a68fb Add a more direct random-sprite-on-event yaml option 2020-10-14 12:46:05 -07:00
Fabian Dill 88a5e024c7 Fix typo 2020-10-07 23:19:16 +02:00
Fabian Dill 0157294383 Fix sprite array crashing yaml_output
Fix "Torches" toggle misname
2020-10-07 20:19:31 +02:00
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
Edos512 068659fcb4
Extra Triforce pieces modes (#141)
* Added triforce hunt mode

Added modes to calculate the extra available triforce pieces in mystery seeds:
availabe: classic mode
extra: available= required+extra
percentage : available =required*(percentage/100)
2020-09-23 19:43:18 +02:00
Fabian Dill 823d8362ac Fix local keys working without "dungeon_items" key in mystery 2020-09-21 19:16:10 +02:00
CaitSith2 f249d9d86c Assign defaults to everything that was otherwise required in the yaml. 2020-09-19 22:25:58 -07:00
Fabian Dill a668aa3b23 Make "Prize" shuffling an option 2020-09-20 04:35:45 +02:00
Fabian Dill 154fffbb8d properly handle yaml read errors 2020-09-18 06:03:04 +02:00
Fabian Dill 2292dbc1ce PEP 8 format Mystery.py 2020-09-13 17:15:49 +02:00
Fabian Dill 06396b9bf2 Go back to always open pyramid with fast ganon 2020-09-13 17:13:47 +02:00
CaitSith2 ce8d9ff6a9 Report which linked option is badly formatted if possible. 2020-09-12 13:33:26 -07:00
Fabian Dill da01325abd Only pre-open pyramid if ER falls within vanilla/dungeonssimple/dungeonsfull 2020-09-11 03:23:00 +02:00
Fabian Dill f6439dadea Rename Progressive Armor to Progressive Mail to bring it in line with Red Mail and Blue Mail
Also add some more item groups
2020-09-06 17:19:34 +02:00
Fabian Dill 1ce4f55ea4 Fix Operator precendence in local items to make big keys local again when "l" is in dungeon_items 2020-09-06 17:05:50 +02:00
Fabian Dill c0632db403 Set rom default options 2020-09-05 05:20:34 +02:00
Fabian Dill fadf073acd remove "s" in dungeon_items if "u" is present 2020-08-30 03:19:02 +02:00
Fabian Dill a0c4337bac give Mystery.py the create_diff argument, then make MultiMystery.py use them 2020-08-26 22:28:48 +02:00
Fabian Dill 76f9717c99 fix chaos boss shuffle in mystery being vanilla, and prevent that mistake in the future 2020-08-25 23:53:15 +02:00
Fabian Dill 6370f4793b Make triforce hunt item pool fully dynamic 2020-08-25 19:45:33 +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 8e85e2892a secure sprite table fill with threadlock 2020-08-22 02:56:33 +02:00
Fabian Dill f1772982b0 remove a rogue log 2020-08-21 00:37:37 +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
CaitSith2 c9bd32a809 Whoops, fix double assignment. 2020-08-19 16:10:09 -07:00
CaitSith2 458e4a988a chaosthieves is supposed to be 50/50 killable thieves. 2020-08-19 15:59:28 -07:00
Fabian Dill cb4fa6dd33 Split enemy shuffle into its components 2020-08-19 23:24:17 +02:00
Fabian Dill c2e2c2d5f9 merge singularity and duality into one; under the singularity name 2020-08-19 21:10:02 +02:00
Fabian Dill 5247bd0ff0 Mystery: fix player naming if per-player and general weights are mixed 2020-08-11 22:11:37 +02:00
Fabian Dill 22abd09087 WebHost: On-Server rolling 2020-08-02 22:11:52 +02:00
Fabian Dill 25b43e8357 Add Singularity and Duality Boss Shuffles 2020-07-31 00:07:55 +02:00
Fabian Dill 5cd5223ae0 WebHost: Add youtube livestreaming and autogenerated multistream link 2020-07-25 22:40:24 +02:00
Fabian Dill 93ecf5988b implement secrets.SystemRandom() for --race 2020-07-14 07:01:51 +02:00
Fabian Dill baa1f1d2ba fix "l" in dungeon items to actually work 2020-07-08 23:50:08 +02:00
Fabian Dill 252f9600fe restore unkillable thieves in chaosthieves option 2020-07-05 03:12:28 +02:00
Fabian Dill d2e3c457be restore mystery determinism 2020-06-29 03:59:16 +02:00
Fabian Dill 36db420120 significantly increase the amount of seed numbers, reducing capability to infer source seed 2020-06-28 00:24:45 +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
caitsith2 6beeb7934d Add local_keys option to go in line with the *_shuffle options, and document both local_keys and l in easy.yaml 2020-06-19 16:10:22 -07:00
Fabian Dill 10f675a61e
Merge pull request #111 from Berserker66/tweaks_and_fixes
Tweaks and fixes
2020-06-19 04:52:07 +02:00
caitsith2 55a5812b6b Remove list(map(int, x)) 2020-06-18 19:21:52 -07:00
Fabian Dill 5d3e22a911 make "l" for local keysanity a thing in mystery 2020-06-19 03:17:54 +02:00
caitsith2 d7d7f32d0c Clean up get_choice(x,weights) if x in weights else y code. 2020-06-18 08:55:15 -07:00
caitsith2 f8ad83c86d yaml descriptions are now optional 2020-06-18 08:52:31 -07:00
caitsith2 75e185e437 Allow specififying returned default values. Disallow ALL zero weights. 2020-06-18 08:51:38 -07:00
caitsith2 63eb0ffc7b Max triforce pieces reduced to 90 2020-06-18 08:48:33 -07:00
caitsith2 d8bc5ca2a8 Set triforce pieces available to max of available and required. 2020-06-17 01:33:34 -07:00
caitsith2 617312fd4b add available_triforce_pieces 2020-06-17 01:02:54 -07:00
caitsith2 233d12be30 Change max triforce_pieces_required from 30 to 112. 2020-06-11 11:53:10 -07:00
Fabian Dill 3a1f98aab6 add minor_glitches to mystery 2020-06-10 19:02:11 +02:00
CaitSith2 96bea214da
Merge branch 'master' into msu_v32 2020-06-08 02:04:41 -07:00
Fabian Dill 17f884d047 make triforce pieces required an option 2020-06-07 15:22:24 +02:00
caitsith2 73d1f56ffb base rom changes
* V32 MSU
* All items from chests/received in dark rooms now visible.
* Regular bunny can read signs
* Players up to Player 255 supported on send/received.
2020-06-06 20:49:53 -07:00
Fabian Dill 59a26e071c clean up 2020-06-04 21:12:05 +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 f918efb645 implement skip_playthrough in mystery 2020-05-31 00:28:03 +02:00
Fabian Dill 11678fa20b turn progression balancing into a per-player option 2020-05-18 03:54:29 +02:00
Fabian Dill cb7d4d43e1 implement progression balancing as an option in CLI, gui and MultiMystery 2020-05-11 02:17:18 +02:00
Fabian Dill 4a5fe1333c don't crash on empty meta-ignore dicts 2020-05-07 08:26:50 +02:00
Fabian Dill 3017aa3b9f remove old debug stuff 2020-04-28 17:42:25 +02:00
CaitSith2 f380542bab
2.1.1 hotfix (#76)
* 2.1.1 hotfix
* debug log options that have nothing defined.
* make sure there is at least one value in the dictionary before considering it important.
* only attempt to create outputpath if it is defined.

* whoops
2020-04-26 02:57:20 +02:00
CaitSith2 8f91e86223
Put Linked options before name roll. (#74) 2020-04-25 05:49:59 +02:00
Fabian Dill 43bf11b296 A dangling " 2020-04-25 02:25:46 +02:00
Fabian Dill e98981b57e introduce linked options to mystery 2020-04-25 02:24:37 +02:00
CaitSith2 b90484acb7
Implement logging options in mystery.py (#73)
Required for using the multimystery.py from the doors branch without modifications.
2020-04-25 02:01:55 +02:00
Fabian Dill 5a6035f6b7 fix mystery naming with --samesettings 2020-04-22 13:52:03 +02:00
Fabian Dill 31d3b7ce84 implement glitch_boots as a proper CLI option 2020-04-16 11:02:16 +02:00
Fabian Dill c6a61e9008 Merge branch 'master' into owg_test 2020-04-14 03:49:33 +02:00
CaitSith2 34df144f8c
Changes (#64)
* Fix bug where collected maps show on item menu if compass shuffle is on, (and collected compasses if map shuffle is on.)

* Add Dungeon Counter Options
2020-04-13 00:46:32 +02:00
Fabian Dill 01b7a590e7 add glitch_boots mystery node 2020-04-10 20:58:52 +02:00
Fabian Dill 1c855fea9a refix yaml laoding 2020-04-10 06:41:32 +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 44086152a2 add remote_items to Mystery.py 2020-03-30 08:47:53 +02:00
CaitSith2 e9669a59c8
Move sprite warning to place where it can identify which file the warning applies to. (#54) 2020-03-28 18:43:02 +01:00
Fabian Dill 9b82f220bb improve some random things 2020-03-05 02:31:26 +01:00
Fabian Dill e3beb702f8 fix clock mode, again 2020-03-04 13:55:03 +01:00
Fabian Dill 5d0747585d pull names through files, always, unless gui. 2020-02-26 19:41:05 +01:00
Fabian Dill 11e1ad6901 some small improvements for mystery 2020-02-23 17:06:44 +01:00
Fabian Dill 76b92f960a copy over teams argument to allow it to work in mystery 2020-02-23 07:21:05 +01:00
Fabian Dill b755e9a9ee implement dict-based meta_ignore 2020-02-22 03:04:55 +01:00
Fabian Dill a5e3777484 fix an exception text 2020-02-18 09:50:50 +01:00
Fabian Dill 0220575c50 Meta-Mystery 2020-02-18 09:14:31 +01:00
DatXFire f66467c2f5
Return support for standard dungeon_items option (#33) 2020-02-17 19:29:25 +01:00
Fabian Dill 14e24037a5 împlement optional hint system (defaults to off) 2020-02-09 05:28:48 +01:00
qadan c10739e70c fixing up some stuff I broke 2020-02-08 19:17:34 -04:00
qadan d22ccdedb3 some changes 2020-02-06 12:20:50 -04:00
cassidy 21b8c73179
Add "timer" as individual setting (#23) 2020-02-03 02:10:56 +01:00
DatXFire 74e55a78db
Fix typo in Mystery.py (#21) 2020-02-01 06:08:03 +01:00
Fabian Dill 76f27ca7fd naming fixes 2020-01-30 23:03:54 +01:00
CaitSith2 42d4837cc0
fix for remove args. (#20) 2020-01-30 22:58:01 +01:00
Fabian Dill 588319ea72 remove extra args for compatibility 2020-01-30 12:02:08 +01:00
qadan 4b7694b50f updates 2020-01-28 18:19:07 -04:00
Fabian Dill c26d799fc1 remove debug logging line 2020-01-27 22:55:07 +01:00
Fabian Dill d595894990 Merge remote-tracking branch 'origin/master' 2020-01-27 22:52:16 +01:00
Fabian Dill c4cba170af add name option in yaml 2020-01-27 22:52:11 +01:00
CaitSith2 4b4a27992c Add in a way to see if the randomly selected sprite is actually valid… (#16)
* Add in a way to see if the randomly selected sprite is actually valid, and warn if it isn't, per yaml file.

* clean up code a bit, and import one less thing.
2020-01-26 01:37:29 +01:00
Fabian Dill 37933798cd fix a dungeon items regression 2020-01-23 08:35:52 +01:00
CaitSith2 18f15d80f9 MSU-1 (#13)
* Add Extended MSU as an option
2020-01-22 18:27:25 +01:00
CaitSith2 6fb732f4b9 Use the first dice roll. (#14) 2020-01-22 17:29:43 +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
qadan edd0a08143 Merge branch 'multiworld_31' of github.com:Bonta0/ALttPEntranceRandomizer into owg 2020-01-21 21:41:18 -04:00
CaitSith2 9e88eb48d2 Bug fix for multiple item quantity (#10) 2020-01-21 02:21:48 +01:00
CaitSith2 79a8123696 Starting item tweaks (#9)
* Starting item tweaks

* Add in capability to start with Progressive items higher than the first level.
* Auto-start no-logic seeds with Pegasus Boots.

``` #example
startinventory:
  Progressive Sword:
    0: 81
    1: 108
    2: 54
    3: 12
    4: 1
```

* Use .startwith() and support multiple ...

... items that can have multiples
2020-01-20 18:21:55 +01:00
Fabian Dill 8e5cf52e27 only heartbeep needs an "off" as text 2020-01-20 03:36:03 +01:00
Fabian Dill a2c9cf2f25 use "on"/"off" for rom options 2020-01-20 03:29:13 +01:00
Fabian Dill fa41f358fd introduce PyYAML and make associated changes 2020-01-19 23:30:22 +01:00
CaitSith2 154260d131
Update Mystery.py
Ignore comments in yaml files.
2020-01-19 01:25:51 -08:00
Fabian Dill 72c33a2348 Merge branch 'pull/5'
# Conflicts:
#	MultiClient.py
#	MultiServer.py
#	Mystery.py
2020-01-18 14:41:11 +01:00
Bonta-kun e214f78293 Mystery: fix a regression in goals logic 2020-01-18 10:06:50 +01:00
Fabian Dill 236f79e143 fix fast_ganon 2020-01-16 20:00:02 +01:00
qadan 348887ce92 merge conflicts 2020-01-15 19:37:39 -04:00
Fabian Dill baab6a76ef
Merge pull request #1 from Bonta0/multiworld_31
Multiworld 31
2020-01-14 19:49:40 +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
Fabian Dill b3ec435b7e implement race as an option and cmd argument 2020-01-13 19:47:30 +01:00
Fabian Dill 85a4e9d409 initial upload 2020-01-12 17:03:30 +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 240cf2d844 Mystery: pot_shuffle (on/off) 2020-01-09 09:13:50 +01:00
Bonta-kun 99577d9e4c Mystery: safer strip 2020-01-06 20:14:16 +01:00
Bonta-kun 48305adaa0 Mystery: weights can now specify a default value for convenience, eg:
dungeon_items: full
startinventory:
  Pegasus Boots: on
2020-01-06 20:01:03 +01:00
Bonta-kun 7d05d697dd Mystery: can now roll for starting inventory items, eg:
startinventory:
  Pegasus Boots:
    'on': 1
    'off': 0
  Bombs (3):
    'on': 1
    'off': 1
2020-01-06 19:13:55 +01:00