From 0881c0464e2028b20163794025aabf603c7ccabe Mon Sep 17 00:00:00 2001 From: Dennis Date: Fri, 15 May 2020 01:33:09 +0200 Subject: [PATCH] added 3 more tricks rewrote gerudo/wasteland/colossus logic --- .../images/logic_lab_diving.png | Bin 0 -> 2456 bytes .../images/logic_reverse_wasteland.png | Bin 0 -> 2076 bytes .../images/logic_wasteland_crossing.png | Bin 0 -> 2628 bytes .../items/tricks.json | 21 ++++ .../layouts/options.json | 18 +++ .../locations/overworld.json | 6 +- .../scripts/logic.lua | 119 ++++++++++++------ 7 files changed, 122 insertions(+), 42 deletions(-) create mode 100644 ootrando_overworldmap_hamsda/images/logic_lab_diving.png create mode 100644 ootrando_overworldmap_hamsda/images/logic_reverse_wasteland.png create mode 100644 ootrando_overworldmap_hamsda/images/logic_wasteland_crossing.png diff --git a/ootrando_overworldmap_hamsda/images/logic_lab_diving.png b/ootrando_overworldmap_hamsda/images/logic_lab_diving.png new file mode 100644 index 0000000000000000000000000000000000000000..78f520861b151721ce6f646e1652d7cbd773142e GIT binary patch literal 2456 zcmd^A_fr!H6AhgZN+?1oB7uN8ddpD+l!RVF;6fLVUIZikKm?U42m}mBJ3){x29PE_ zG|fo~y(rR)p%_qlk>mb}@0ah*?7rEVoq02F_RS_@(1sjrLTms4fWz2G&+3xNmjz~J zxa{tmr0tIk~vFz+f;pH#ZLt4=*n-A0OY9D_8jW z`2_?7AP|V4prDYDkg%|@h=_=&sHm8j7!(Q>7Z;b1kbuEpl9G~AQc~BiUx<($dm0 zGBUEVvT|~A^78Tu3JQvfib_gK%F4OTlCZ?vQW@cvQ=H_TL+QPyD zgTYu@T4J$SYiny88yj0&TRS^DdwY8a2M0$-$J@7WJ2^QyJ3G6&y1Kc!xx2f2czAev zdU|C?o-#H6I8XV0D`Cnu+*q@<>%;_>+O z^mGD&kdcv*nVFfDm6e^Hos*N3o12@Lm-q7J%YuS}!otGWuU{7z7nhWjl$Ms3m6es3 zmseC&R905LdGn^Ks_O0Aw?rbby1Kfirlz*Gwyv(OzP`Spp`o#{v8k!4xw*NerKPpC zwXLnKv$K;#B6W3jb$567^z`)h_V)GlefaR<aBy&FXoy0g3=a>F zjEszqj*g9ujgOB{OiWBpPEJitO;1nH%*=fL{Q1k5FSE0=b8~a^^YaS}3yX`3OG``3 z%gZY(E32!kYin!k>+4i1bz@^=b8~ZRYioOZ`}_CrG#YJZXJ>bJ_s5SPKY#w*+uPgU z-#<7wI6OQ&IyyQ&K0Y})IXyi+KR^HV>(|A_#pPxG5AXyL&~q69K(H11k4w@2X8`^< zWRbkI9O!Rk9|Qn!Ui!k>L-+B1xjO*Bbj4Ut7i(nNZVht8TJt$c;<MU_-1$AkF}8^Z^lUJEZL&;%V1)Zj^| ze^duJNGqw6o_lj&4ej#l3o2S_*F4oXNw|(vJGvk(rq-wxDU9W_%~YA7ulHF;50~%T z!(HS*2rCLf)Ho}FW{EkFD%k`#ItEED(=!AcxxYGHDWX!VbTBhv4gdHtz@w6#8J^M< zxT>^C7h5rMle@gj^tU8~UH&qDl^k}Io|;oxKXUy2wKsKOu!+Fb;BciR50V41 zcE`&@K`(2p(xEG&8Gp@L^s31<%)U&)R4n=6Y1-^cI_sj37$v#IEOYX~3sr<+Wq`(( zcrig30p&UCB|@PB(}wSKlD3F_MVM~wJ z*@c0|glqy@5{eujc53&lLj6H#a!uJ_%;c*;;vTwvPTB1e%nTD%Mn zozXvWIlN<3)UrbMI`z{L3@!<&Yd!UCj%0R`P|yfXexkUhL!FAHHzmKou$1h*O@@&Izrd@y36r1I#Mym1PlR54iDUOe~fVd}5g+O#@Gu<+0 l5f*q-QN3mAx2w!77XbLTRlD&yb?5&cm9airkBD@R{uibV+)w}j literal 0 HcmV?d00001 diff --git a/ootrando_overworldmap_hamsda/images/logic_reverse_wasteland.png b/ootrando_overworldmap_hamsda/images/logic_reverse_wasteland.png new file mode 100644 index 0000000000000000000000000000000000000000..4f0202ce4728f5cacfcd06304db076faa72fa001 GIT binary patch literal 2076 zcmeHHXIB#j6b-V%2w{s5AgszVMT`arLf8p}kQ0!CvLdLgLXaUMD2lSfp2h|cgb2z; zT85M%dz5WKb|O3BfGk;!|DfO7d(M6Ly!Y|Gb8j3TX941u<_7=(APm}+z}9Xyg@K&x z>9PJNlPw&91Pfz8`5Q(#vNi$$s*(kciQE7HCjgJNGy8Gp;^OA!=HcPt<>dte zfqZ;?{QUd^0s?}9f*=q`NJt0_1`7)di;9YhiHV7ei%UpINJ>gdNl8gdOUuZ}Kp+rV zSy?$bIeB?`C={x!tgND(>no3=9noQ7DwLv9YPCDH@H&U@(@JmRKwnkH_2E+S=LKIXE~tIy&CEb<4@g z$;HLR)z#I_&5cMTdU$wvdU|?!dHMMG`1<<#`T3DZq@bXn;NakpkdV;O(D3l^h=_>D z$jGRusOaeEn3$N@*x2~^_=JRn#Kc50nVgiAl$@NLl9G~^mX@BLo|&1Mm6es9o&ECV zOA3YZ>eVYMm715Am!F?sSXlVx&70!l;*ydQ8jV&~R#s6_QCV48U0q#MQ&U%0S6^S> z(9qD>*x1z6)Y8(@*4EbE-rmvC(bd(}-QC^S*Vo_QKQJ&bG&D3kJUlWoGCDdsIXO8s zH8njwJu@>iH#avwKfkcBu(-Imw6sL0(-{oL^78V^%F62M>e|}c`uh6D#s-tgWU*LV zTU*=P+dDfudwYBP`}+q62j9PcKRP-(IXO8!Jv}=+W54x({2K?}fhJ|xIROL_aJFpU z{>uQ^?(?d!J>w&x9RmRXq4po-=<=s|u*)JBV`^lFwwlS>d?02f-kE1M+3*>S9`nA9 zrJIp&-o$cUnmDi*nJKNso4E&(C(Jb_uD(+fvBF*!g;q+J77U$9v#^qH>!_pPp4O!u z1>}Rh!TythFG!i7vx~;(5fa~gOMzY$J(Mr*N&=4`EBs>M2F8zy2lZe3HuF=XjrZ?O|#Cx4Elu zc&!P7`2^CAyrja%O>D_%SM@;^&|DMRia9ogf$Vs8MvslB9gZnEG$)ThM`8H8m)C|X zcHDCBDAimmAP*0rU5;;a`R}Md(IGi%GHqKgF|xHRn23`^K?)}!(|aJH#+TQbfWrT31Oo_$D7)fCEN<-yU9J}qZ>lv_`Zf`<^93!PBt;ETHR zq_ktY5XWIsv!I1n^e0jb*8PiyR)Q&ITwHiTezDTh;y7vB#A|85IP>ynzqrR>x)BTv z^q7kH?UXY*RK4LaO{NoTH%(=(=+&>+Tk{5_b)iB)SN19Zo{_q zH0v_`!Hmf8=ac4mmv@$_pZ#cqa_Gc4FtBJvTEhunHEr*0C-Lz(mdLzub#ePT*mWVFnwP4WDmGx1Yj!~4i8BndM;Ub5C=sUw2+9QcRUDW;??wubWfQ(RhgDLM!24F4Td7AX=~T5 z-1P>4a))OK6sCFsZW@+fU=UIdxupC-st&V_pj~VZajo0UINLbM9{1k`{nWI%{sA^? c7~J^e-22ih*2BXKem~j{V}>&=H+FmW4>$A9&;S4c literal 0 HcmV?d00001 diff --git a/ootrando_overworldmap_hamsda/images/logic_wasteland_crossing.png b/ootrando_overworldmap_hamsda/images/logic_wasteland_crossing.png new file mode 100644 index 0000000000000000000000000000000000000000..a68fd26c15b233552ad53b594416270c8afd1ed1 GIT binary patch literal 2628 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 literal 0 HcmV?d00001 diff --git a/ootrando_overworldmap_hamsda/items/tricks.json b/ootrando_overworldmap_hamsda/items/tricks.json index f66ad229..df4c6493 100644 --- a/ootrando_overworldmap_hamsda/items/tricks.json +++ b/ootrando_overworldmap_hamsda/items/tricks.json @@ -195,6 +195,20 @@ "img": "images/logic_fire_boss_door_jump.png", "codes": "logic_fire_boss_door_jump" }, + { + "name": "Diving in the Lab without Gold Scale", + "type": "toggle", + "initial_active_state": false, + "img": "images/logic_lab_diving.png", + "codes": "logic_lab_diving" + }, + { + "name": "Wasteland Crossing without Hover Boots or Longshot", + "type": "toggle", + "initial_active_state": false, + "img": "images/logic_wasteland_crossing.png", + "codes": "logic_wasteland_crossing" + }, { "name": "Water Temple Boss Key Region with Hover Boots", "type": "toggle", @@ -223,6 +237,13 @@ "img": "images/logic_water_hookshot_entry.png", "codes": "logic_water_hookshot_entry" }, + { + "name": "Reverse Wasteland", + "type": "toggle", + "initial_active_state": false, + "img": "images/logic_reverse_wasteland.png", + "codes": "logic_reverse_wasteland" + }, { "name": "Lost Woods Adult GS without Bean", "type": "toggle", diff --git a/ootrando_overworldmap_hamsda/layouts/options.json b/ootrando_overworldmap_hamsda/layouts/options.json index cc0071b9..9566eb2c 100644 --- a/ootrando_overworldmap_hamsda/layouts/options.json +++ b/ootrando_overworldmap_hamsda/layouts/options.json @@ -245,6 +245,18 @@ "width": 200, "height": 16 }, + { + "type": "item", + "item": "logic_lab_diving", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_wasteland_crossing", + "width": 200, + "height": 16 + }, { "type": "item", "item": "logic_water_boss_key_region", @@ -269,6 +281,12 @@ "width": 200, "height": 16 }, + { + "type": "item", + "item": "logic_reverse_wasteland", + "width": 200, + "height": 16 + }, { "type": "item", "item": "logic_lost_woods_gs_bean", diff --git a/ootrando_overworldmap_hamsda/locations/overworld.json b/ootrando_overworldmap_hamsda/locations/overworld.json index 597b23e7..94837fdf 100644 --- a/ootrando_overworldmap_hamsda/locations/overworld.json +++ b/ootrando_overworldmap_hamsda/locations/overworld.json @@ -1447,7 +1447,7 @@ "short_name": "Dive down", "access_rules": [ "scale2", - "$has_age|adult,hookshot,ironboots,[scale2]" + "$has_age|adult,[logic_lab_diving],ironboots,hookshot" ], "item_count": 1 }, @@ -5438,7 +5438,7 @@ "access_rules": [ "$has_age|child", "$has_age|adult,longshot", - "$gerudo_bridge,[longshot],hoverboots" + "$gerudo_valley_far_side,[longshot],hoverboots" ], "chest_unopened_img": "images/HP.png", "chest_opened_img": "images/HP_grey.png", @@ -5591,7 +5591,7 @@ { "name": "Bridge Crossing", "access_rules": [ - "$gerudo_bridge" + "$gerudo_valley_far_side" ], "children": [ { diff --git a/ootrando_overworldmap_hamsda/scripts/logic.lua b/ootrando_overworldmap_hamsda/scripts/logic.lua index 149a9d9e..389ed5a0 100644 --- a/ootrando_overworldmap_hamsda/scripts/logic.lua +++ b/ootrando_overworldmap_hamsda/scripts/logic.lua @@ -195,48 +195,98 @@ end function gerudo_bridge() if has_age("adult") == 0 then return 0 - elseif has("longshot") + end + if has("longshot") or has("ocarina") and has("epona") or has("gerudo_fortress_open") then - return 1, AccessibilityLevel.Normal - elseif has("ocarina") - and has("requiem") + return 1 + else + return 0 + end +end + +function quicksand() + if has("longshot") + or has("hoverboots") + or has("logic_wasteland_crossing") + then + return 1 + else + return 1, AccessibilityLevel.SequenceBreak + end +end + +function wasteland_forward() + if has("setting_lens_chest") + or has("lens") and has("magic") then + return 1 + else return 1, AccessibilityLevel.SequenceBreak + end +end + +function wasteland_reverse() + if has("logic_reverse_wasteland") then + return 1 else + return 1, AccessibilityLevel.SequenceBreak + end +end + +function gerudo_valley_far_side() + if has_age("adult") == 0 then return 0 end + + if gerudo_bridge() > 0 then + return 1 + end + + if has("ocarina") and has("requiem") then + local _, reverse_level = wasteland_reverse() + local _, quicksand_level = quicksand() + + if reverse_level == AccessibilityLevel.SequenceBreak + or quicksand_level == AccessibilityLevel.SequenceBreak + then + return 1, AccessibilityLevel.SequenceBreak + else + return 1 + end + end + + return 0 end function wasteland() - local count = 0 - local level = AccessibilityLevel.Normal + local forward_count = 0 + local forward_level = AccessibilityLevel.Normal - local bridge_count, bridge_level = gerudo_bridge() + local bridge_count = gerudo_bridge() local card_count, card_level = gerudo_card() + local _, quicksand_level = quicksand() if bridge_count > 0 and card_count > 0 then - count = 1 + forward_count = 1 - if bridge_level == AccessibilityLevel.SequenceBreak - or card_level == AccessibilityLevel.SequenceBreak - or has("hoverboots", 0) and has("longshot", 0) + if card_level == AccessibilityLevel.SequenceBreak + or quicksand_level == AccessibilityLevel.SequenceBreak then - level = AccessibilityLevel.SequenceBreak + forward_level = AccessibilityLevel.SequenceBreak + else + return 1 end end - if count == 0 - and has("ocarina") - and has("requiem") - then - return 1, AccessibilityLevel.SequenceBreak + if has("ocarina") and has("requiem") then + return wasteland_reverse() end - return count, level + return forward_count, forward_level end function child_colossus() @@ -251,38 +301,29 @@ function child_colossus() end function adult_colossus() - if has("ocarina") - and has("requiem") - then + if has("ocarina") and has("requiem") then return 1 end - - local level = AccessibilityLevel.Normal - - local bridge = gerudo_bridge() - if bridge == 0 then + + local bridge_count = gerudo_bridge() + if bridge_count == 0 then return 0 end - + local card_count, card_level = gerudo_card() if card_count == 0 then return 0 end - level = card_level - - if has("hoverboots", 0) - and has("longshot", 0) - then - level = AccessibilityLevel.SequenceBreak - end - - if has("setting_lens_chest", 0) - and (has("lens", 0) - or has("magic", 0)) + local level = card_level + + local _, quicksand_level = quicksand() + local _, forward_level = wasteland_forward() + if quicksand_level == AccessibilityLevel.SequenceBreak + or forward_level == AccessibilityLevel.SequenceBreak then level = AccessibilityLevel.SequenceBreak end - + return 1, level end