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

Randomizer version 1.11.0 #1166

Draft
wants to merge 101 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
101 commits
Select commit Hold shift + click to select a range
f506861
Implement nested entrance rando tracker
wooferzfg Jul 25, 2023
771bfeb
Update to support randomizer changes
wooferzfg Aug 21, 2023
aace877
Refactor to remove isDungeon and bug fixes
wooferzfg Aug 21, 2023
92cb995
Fix bugs and refactor
wooferzfg Aug 22, 2023
670b25a
Fix formatting
wooferzfg Aug 22, 2023
a2e7ba0
Support random minibosses and inner caves
wooferzfg Aug 25, 2023
abae744
Extract logic out of UI code
wooferzfg Aug 25, 2023
befff1e
Remove isRandomNestedEntrances
wooferzfg Aug 25, 2023
a3b2e9e
Add EOF newline
wooferzfg Aug 25, 2023
c2b01d3
Update launcher for new UI
wooferzfg Aug 26, 2023
dfb6e5c
Use new random entrance settings
wooferzfg Aug 26, 2023
73c1563
Rename mini-boss to miniboss
wooferzfg Aug 27, 2023
68b7b32
Use new randomizable miniboss flag
wooferzfg Aug 27, 2023
04740c8
Rename new flag
wooferzfg Aug 28, 2023
a820469
Fix cave entrance names
wooferzfg Aug 28, 2023
1a51234
Support fairy fountain entrance rando
wooferzfg Aug 30, 2023
52993e3
Fix Windfall locations not fitting
wooferzfg Sep 7, 2023
4c6e0e3
Fix missing key for dungeon entrances
wooferzfg Sep 7, 2023
8f20d5b
Support dungeon secrets option
wooferzfg Sep 7, 2023
1cb2dac
Update expression parsing to be more strict
wooferzfg Sep 7, 2023
2205b20
Support logic difficulty options
wooferzfg Sep 7, 2023
c9c3a45
Clean up launcher UI
wooferzfg Sep 7, 2023
cbb5a2e
Fix permalinks
wooferzfg Sep 11, 2023
f29cfb9
Merge branch 'main' into next-rando-version
wooferzfg Sep 11, 2023
2570657
Merge branch 'main' into next-rando-version
wooferzfg Sep 15, 2023
7622804
Merge branch 'main' into next-rando-version
wooferzfg Sep 15, 2023
831dba6
Add another test
wooferzfg Sep 15, 2023
8661b05
Merge branch 'main' into next-rando-version
wooferzfg Sep 15, 2023
f0dd32b
Improve tests
wooferzfg Sep 15, 2023
c031fc5
Merge branch 'main' into next-rando-version
wooferzfg Sep 15, 2023
f8614f3
Merge branch 'main' into next-rando-version
wooferzfg Sep 15, 2023
0855377
Fix linter error
wooferzfg Sep 15, 2023
84d62e6
Merge branch 'main' into next-rando-version
wooferzfg Sep 20, 2023
dcd533d
Refactor dungeon entrances
wooferzfg Sep 20, 2023
122ace5
Handle required bosses mode
wooferzfg Sep 29, 2023
fd4c186
Add Master Sword Chamber entrance
wooferzfg Sep 30, 2023
39c19c9
Merge branch 'main' into next-rando-version
wooferzfg Sep 30, 2023
783dae4
Merge branch 'main' into next-rando-version
wooferzfg Sep 30, 2023
67da9c7
Clean up island entrances config
wooferzfg Sep 30, 2023
bae6cc9
Rename variables and refactor
wooferzfg Sep 30, 2023
6329d20
Merge branch 'main' into next-rando-version
wooferzfg Oct 11, 2023
9e9935d
Merge branch 'main' into next-rando-version
wooferzfg Nov 1, 2023
2f0b577
Rename Cliff Plateau entrance
wooferzfg Nov 12, 2023
69cdae9
Simplify entryName
wooferzfg Nov 12, 2023
4df6028
Add required bosses config
wooferzfg Nov 12, 2023
2011533
Update required bosses mode
wooferzfg Nov 12, 2023
c068649
Add num required bosses to launcher
wooferzfg Nov 12, 2023
ef81dd9
Show required boss label as gray when disabled
wooferzfg Nov 12, 2023
d5b599e
Merge branch 'main' into next-rando-version
wooferzfg Nov 14, 2023
f89e1cc
Fix double counting in items remaining calculation
wooferzfg Nov 15, 2023
b6d2d0c
Add more tests
wooferzfg Nov 16, 2023
1b42808
Support trap chests setting
wooferzfg Nov 27, 2023
fd46980
Merge branch 'main' into next-rando-version
wooferzfg Nov 27, 2023
1f7d3f6
Merge branch 'main' into next-rando-version
wooferzfg Dec 11, 2023
ab80699
Use 2 columns for additional options
wooferzfg Dec 11, 2023
fd877a1
Merge branch 'main' into next-rando-version
wooferzfg Dec 11, 2023
e99ca22
Update with latest rando changes
wooferzfg Dec 13, 2023
d319619
Rename setting and fix linter errors
wooferzfg Dec 14, 2023
3e12273
Remove transferEntrances call
wooferzfg Dec 15, 2023
8aba1ab
Add option to toggle between viewing entrances vs. viewing exits (#1266)
wooferzfg Dec 16, 2023
a2f3abc
Merge branch 'main' into next-rando-version
wooferzfg Dec 16, 2023
9a7acbe
Update for new permalink format
wooferzfg Dec 16, 2023
952f3d5
Update for new permalink order and logic
wooferzfg Dec 17, 2023
7929af2
Update BYTE_SIZE to private
wooferzfg Dec 17, 2023
296d809
Revert back to dropdown options for shards and required bosses
wooferzfg Dec 17, 2023
55ff76c
Implement tracking an entrance as leading to nothing
wooferzfg Dec 17, 2023
0c0b7dd
Update tests
wooferzfg Dec 17, 2023
a37c9a4
Rename to setExitForEntrance
wooferzfg Dec 17, 2023
78a7956
Extract entrance logic into TrackerState
wooferzfg Dec 17, 2023
34e9327
Use decrementItem when unsetting exits
wooferzfg Dec 17, 2023
ef8ac87
Merge branch 'main' into next-rando-version
wooferzfg Dec 21, 2023
9778c86
Merge branch 'main' into next-rando-version
wooferzfg Dec 25, 2023
4fe6f25
Add Hero Mode setting
wooferzfg Jan 20, 2024
ec2efaf
Merge branch 'main' into next-rando-version
wooferzfg Feb 8, 2024
657678c
Merge branch 'main' into next-rando-version
wooferzfg Mar 16, 2024
3461232
Merge branch 'main' into next-rando-version
wooferzfg Mar 16, 2024
a58e1bc
Convert color picker to settings window
wooferzfg Apr 2, 2024
529e2a6
Remove invalid prop
wooferzfg Apr 2, 2024
59329cf
Add setting for tracking non-progress charts
wooferzfg Apr 3, 2024
32df250
Consolidate chart functions
wooferzfg Apr 3, 2024
7b927f3
Merge branch 'main' into next-rando-version
wooferzfg Apr 3, 2024
9b5f520
Fix "Show Location Logic" checkbox being inverted
wooferzfg Apr 3, 2024
4890015
Add logic to disable Mixing option
wooferzfg Apr 6, 2024
7f94daf
Handles changes to starting hearts
wooferzfg Apr 8, 2024
1efc3b3
Update to use master branch
wooferzfg Apr 9, 2024
9af8790
Merge branch 'main' into next-rando-version
wooferzfg Apr 9, 2024
727060f
Merge branch 'main' into next-rando-version
wooferzfg Apr 10, 2024
2850df0
Refactor clearBannedLocations to support non-dungeons
wooferzfg Apr 10, 2024
5f8e97f
Add Clear All buttons
wooferzfg Apr 11, 2024
154b8ca
Right clicking a sector clears all locations (#1338)
Ephyles Apr 12, 2024
ad73437
Merge branch 'main' into next-rando-version
wooferzfg Apr 12, 2024
05d09a4
Merge branch 'main' into next-rando-version
wooferzfg Apr 29, 2024
4587d2e
Move export button to bottom row
wooferzfg Apr 29, 2024
c77b332
Merge branch 'main' into next-rando-version
wooferzfg May 5, 2024
2e4b9e6
Merge branch 'main' into next-rando-version
wooferzfg May 5, 2024
f318d36
Fix React warnings
wooferzfg May 5, 2024
9883110
Use private properties instead of dangling underscores
wooferzfg May 29, 2024
676a7aa
Use private variables in BinaryString
wooferzfg May 29, 2024
ffbedcf
Use private variables in LogicCalculation and Spheres
wooferzfg May 29, 2024
887c8cf
Skip update prompts in invalid situations
wooferzfg Jun 7, 2024
854f36d
Allow starting with tingle statues
wooferzfg Jun 16, 2024
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
9 changes: 4 additions & 5 deletions .eslintrc
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
"newlines-between": "always"
}],
"no-continue": "off",
"no-underscore-dangle": "off",
"valid-jsdoc": ["error", {
"requireReturn": false
}],
Expand Down Expand Up @@ -82,20 +81,20 @@
"type": "method"
}],
"public-properties": [{
"name": "/[^_].+/",
"name": "/[^#].+/",
"type": "property"
}],
"public-static-methods": [{
"name": "/[^_].+/",
"name": "/[^#].+/",
"static": true,
"type": "method"
}],
"public-methods": [{
"name": "/[^_].+/",
"name": "/[^#].+/",
"type": "method"
}],
"private": [{
"name": "/_.+/"
"name": "/#.+/"
}]
}
}]
Expand Down
6 changes: 4 additions & 2 deletions scripts/update-test-data.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import fs from 'fs';

import _ from 'lodash';

import Locations from '../src/services/locations';
import LogicHelper from '../src/services/logic-helper';
import LogicLoader from '../src/services/logic-loader';
Expand Down Expand Up @@ -31,8 +33,8 @@ const script = async () => {
macrosFile,
} = await LogicLoader.loadLogicFiles();

Locations.initialize(itemLocationsFile);
Macros.initialize(macrosFile);
Locations.initialize(_.cloneDeep(itemLocationsFile));
Macros.initialize(_.cloneDeep(macrosFile));

LogicTweaks.applyTweaks();

Expand Down
18 changes: 11 additions & 7 deletions scripts/verify-logic.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,15 @@ import LogicCalculation from '../src/services/logic-calculation';
import LogicHelper from '../src/services/logic-helper';
import LogicLoader from '../src/services/logic-loader';
import LogicTweaks from '../src/services/logic-tweaks';
import Permalink from '../src/services/permalink';
import TrackerController from '../src/services/tracker-controller';

LogicLoader.loadLogicFiles = async () => ({
itemLocationsFile: TEST_ITEM_LOCATIONS,
macrosFile: TEST_MACROS,
});

LogicTweaks._applyHasAccessedLocationTweaksForLocations = () => { };
LogicTweaks.applyHasAccessedLocationTweaksForLocations = () => { };

const verifyLogicForItemCounts = (
generalLocation,
Expand All @@ -31,14 +32,16 @@ const verifyLogicForItemCounts = (
const simplifiedRequirements = LogicHelper.requirementsForLocation(
generalLocation,
detailedLocation,
false,
);
const rawRequirements = LogicHelper._rawRequirementsForLocation(
const rawRequirements = LogicHelper.rawRequirementsForLocation(
generalLocation,
detailedLocation,
false,
);

const simplifiedRequirementsMet = logic._areRequirementsMet(simplifiedRequirements);
const rawRequirementsMet = logic._areRequirementsMet(rawRequirements);
const simplifiedRequirementsMet = logic.areRequirementsMet(simplifiedRequirements);
const rawRequirementsMet = logic.areRequirementsMet(rawRequirements);

if (simplifiedRequirementsMet !== rawRequirementsMet) {
throw Error(
Expand All @@ -54,9 +57,10 @@ const verifyLogicForItemCounts = (

const verifyLogicForLocation = (generalLocation, detailedLocation, trackerState) => {
console.log(`\nChecking location "${generalLocation} - ${detailedLocation}":`); // eslint-disable-line no-console
const rawRequirements = LogicHelper._rawRequirementsForLocation(
const rawRequirements = LogicHelper.rawRequirementsForLocation(
generalLocation,
detailedLocation,
false,
);
const rawItemsRequired = new Set();

Expand Down Expand Up @@ -129,8 +133,8 @@ const verifyLogicForSettings = async (permalink) => {
};

const script = async () => {
await verifyLogicForSettings('MS4xMC4wAEEABwEDAAygvgMQ0AAAAAAAAAAAAAAA'); // no starting items
await verifyLogicForSettings('MS4xMC4wAEEABwEDAAygvgMA0AACAAAAAAGAIAAA'); // default settings
await verifyLogicForSettings('bWFzdGVyAEEASRBQGQAA+wLoAgAAAAAAAAAAAAI='); // no starting items
await verifyLogicForSettings(Permalink.DEFAULT_PERMALINK);
};

script();
57 changes: 41 additions & 16 deletions src/css/main.scss
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,10 @@ body {
&.label-text {
padding-left: 20px;
padding-right: 10px;

&.label-disabled {
opacity: 0.7;
}
}

&.option-container {
Expand All @@ -136,6 +140,10 @@ body {
height: 34px;
font-size: 1em;
cursor: pointer;

&.select-disabled {
cursor: auto;
}
}
}

Expand Down Expand Up @@ -514,6 +522,10 @@ button:hover:enabled {
padding-top: 0;
padding-bottom: 0;
}

.extra-width-header {
width: 130px;
}
}

.zoom-map-background,
Expand Down Expand Up @@ -554,13 +566,22 @@ button:hover:enabled {
text-decoration: line-through;
}

&.font-small {
&.font-two-columns {
font-size: 13px;
}

&.font-smallest {
&.font-three-columns {
font-size: 10px;
}

&.less-padding {
padding-bottom: 2px;
}

&.detail-disabled span {
cursor: auto;
opacity: 0.7;
}
}
}
}
Expand Down Expand Up @@ -609,13 +630,11 @@ button:hover:enabled {
.extra-locations {
float: left;
background-color: rgba(160, 160, 160, 0.85);
width: 630px;
height: 242px;
margin-right: 8px;
margin-bottom: 8px;

.extra-location {
width: 120px;
float: left;
background-position-y: 15px;
display: flex;
Expand Down Expand Up @@ -661,7 +680,6 @@ button:hover:enabled {

.statistics {
float: left;
width: 620px;
background-color: rgba(80, 80, 80, 0.85);
height: 85px;
margin: 0 0 8px 0;
Expand Down Expand Up @@ -741,20 +759,27 @@ button:hover:enabled {
margin-top: 5px;
width: 250px;
}
}

.button-checkbox {
margin: 0 5px 0 0;
vertical-align: middle;
pointer-events: none;
}
.detail-span .button-checkbox,
.buttons .button-checkbox,
.buttons .button-radio {
margin: 0 5px 0 0;
vertical-align: middle;
pointer-events: none;
}

.buttons .second-button-radio {
margin-left: 20px;
}

.color-picker-window {
.settings-window {
position: fixed;
background-color: white;
padding: 10px;
width: 400px;
user-select: none;
z-index: 10;

.close-color-picker {
position: fixed;
Expand All @@ -769,27 +794,27 @@ button:hover:enabled {
z-index: 10;
}

.color-picker-top-row {
.settings-window-top-row {
display: flex;
}

.color-picker-title {
.settings-window-title {
font-size: 20px;
}

.color-picker-row {
.settings-window-row {
display: flex;
height: 35px;
align-items: center;
}

.color-picker-label {
.settings-window-label {
cursor: pointer;
width: 360px;
margin-left: 5px;
}

.color-picker-checkbox {
.settings-window-checkbox {
cursor: pointer;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
{
"Forbidden Woods": [
{
"generalLocation": "Mailbox",
"detailedLocation": "Letter from Orca"
}
],
"Forsaken Fortress": [
{
"generalLocation": "Mailbox",
"detailedLocation": "Letter from Aryll"
},
{
"generalLocation": "Mailbox",
"detailedLocation": "Letter from Tingle"
}
],
"Earth Temple": [
{
"generalLocation": "Mailbox",
"detailedLocation": "Letter from Baito"
}
]
}
{
"Forbidden Woods": [
{
"generalLocation": "Mailbox",
"detailedLocation": "Letter from Orca"
}
],
"Forsaken Fortress": [
{
"generalLocation": "Mailbox",
"detailedLocation": "Letter from Aryll"
},
{
"generalLocation": "Mailbox",
"detailedLocation": "Letter from Tingle"
}
],
"Earth Temple": [
{
"generalLocation": "Mailbox",
"detailedLocation": "Letter from Baito"
}
]
}
22 changes: 0 additions & 22 deletions src/data/cave-entrances.json

This file was deleted.

22 changes: 0 additions & 22 deletions src/data/caves.json

This file was deleted.

Loading