mirror of
https://github.com/cave-story-randomizer/cave-story-randomizer
synced 2025-01-28 22:37:34 +00:00
Merge pull request #78 from duncathan/spawnpoints
adds arthur's house and camp as spawn points
This commit is contained in:
commit
9eb5b6e4b1
Binary file not shown.
|
@ -1 +1 @@
|
|||
>;Taaja>;m~rmt~<7E>aaimwrzaaaamvu>;Taajb>;m~rmt~<7E>aaimwrzaaabmvu>;Taajc>;m~rmt~<7E>aaimwrzaaacmvu>;Taajd>;m~rmt~<7E>aaimwrzaaadmvu>;Taaje>;m~rmt~<7E>aaimwrzaaaemvu>;>;Taajj>;mt~<7E>aaimwrzaaaemvu>;>;>;Tabab>;m<zmt∥babkaaaakaaaamо<6D>abbmwraaadm<64>raabdkaajdkaabakaaad>;>;Tabac>;m<zmw}{adackabaemw}{adabkabadm~зpRmumvu>;Tabad>;m<z>;mw}{adaekabafm~зm<D0B7>ヘ<EFBFBD>」<EFBFBD>・・圈浪、<E6B5AA>椁・劒沽pmumvu>;Tabae>;m|v確wraaacm<63>raa1bkaajekaaaikaaag>;Tabaf>;mw}{bgeakabagm~зm<D0B7>ヘ<EFBFBD>」<EFBFBD>・・圈浪、<E6B5AA>椁・劒沽pmumvu>;Tabag>;mwraaacmw}\adacmw}\bgebmw}\bgec>;m~隔aaacm<63>raabbkadackaaaikaaag>;>;Tabba>;m|v確wraaaem<65>raajakaajckaaahkaaaj>;>;>;Tabfa>;m|v確~隔aaaamt~<7E>aaimwrzaaae>;m<>zaada>;mо<6D>abcmt~∥afakaadfkaaghm<68>zaaca>;mо<6D>abcmt~∥afakaadgkaaghm<68>zaaca>;mvu>;>;Tacaa>;mvu>;Tacab>;mvu>;>;>;Taeaa>;m<zmо<6D>accmu∥eaamv<6D>aeab>;>;Taeab>;mv<6D>aabc>;>;
|
||||
a^w„„<E2809E>„a^<5E>¡¢•<C2A2>—¡©„„„Œ<E2809E>š•<C5A1>„„„„<E2809E>™¢˜a^w„„<E2809E>…a^<5E>¡¢•<C2A2>—¡©„„„Œ<E2809E>š•<C5A1>„„„…<E2809E>™¢˜a^w„„<E2809E>†a^<5E>¡¢•<C2A2>—¡©„„„Œ<E2809E>š•<C5A1>„„„†<E2809E>™¢˜a^w„„<E2809E>‡a^<5E>¡¢•<C2A2>—¡©„„„Œ<E2809E>š•<C5A1>„„„‡<E2809E>™¢˜a^w„„<E2809E>ˆa^<5E>¡¢•<C2A2>—¡©„„„Œ<E2809E>š•<C5A1>„„„ˆ<E2809E>™¢˜a^w„„<E2809E><E2809E>a^<5E>—¡©„„„Œ<E2809E>š•<C5A1>„„„ˆ<E2809E>™¢˜a^w„…„…a^<5E>¤¦<C2A4><C2A6>—¢¤„…„…Ž„„„„Ž„„„„<E2809E>§£©„„……<E280A6>š•£„„„‡<E2809E>¨¦•„„…‡Ž„„<E2809E>‡Ž„„…„Ž„„„‡a^w„…„†a^<5E>¤¦<C2A4><C2A6>š ž„‡„†Ž„…„ˆ<E2809E>š ž„‡„…Ž„…„‡<E2809E>¡§›“u<E2809C>¢£˜<C2A3>™¢˜a^w„…„‡a^<5E>¤¦<C2A4>a^<5E>š ž„‡„ˆŽ„…„‰<E2809E>¡§›<C2A7>¨©¦šÃÆ»¹ÈȽ»tÇÃÁ¹È¼½Â»“<C2BB>¢£˜<C2A3>™¢˜a^w„…„ˆa^<5E>Ÿ™<E284A2>š•£„„„†<E2809E>T¦•„„……Ž„„<E2809E>ˆŽ„„„ŒŽ„„„Ša^w„…„‰a^<5E>š ž…Šˆ„Ž„…„Š<E2809E>¡§›<C2A7>¨©¦šÃÆ»¹ÈȽ»tÇÃÁ¹È¼½Â»“<C2BB>¢£˜<C2A3>™¢˜a^w„…„Ša^<5E>š•£„„„†<E2809E>š „‡„†<E2809E>š …Šˆ…<CB86>š …Šˆ†a^<5E>¡˜„„„†<E2809E>¨¦•„„……Ž„‡„†Ž„„„ŒŽ„„„Ša^w„……„a^<5E>Ÿ™<E284A2>š•£„„„ˆ<E2809E>¨¦•„„<E2809E>„Ž„„<E2809E>†Ž„„„‹Ž„„„<E2809E>a^w„…‰„a^<5E>Ÿ™<E284A2>¡˜„„„„<E2809E>—¡©„„„Œ<E2809E>š•<C5A1>„„„ˆa^<5E>«•<C2AB>„„‡„a^<5E>§£©„„…†<E280A6>—¡¤„„‰„Ž„„‡‰Ž„„Š‹<C5A0>«•<C2AB>„„†„a^<5E>§£©„„…†<E280A6>—¡¤„„‰„Ž„„‡ŠŽ„„Š‹<C5A0>«•<C2AB>„„†„a^<5E>™¢˜a^w„†„„a^<5E>™¢˜a^w„†„…a^<5E>™¢˜a^w„ˆ„„a^<5E>¤¦<C2A4><C2A6>§£©„„††<E280A0>˜¢¤„ˆ„„<E2809E>™ª™„ˆ„…a^w„ˆ„…a^<5E>™ª™„„…†
|
|
@ -1 +1 @@
|
|||
ro垥暈時o〔肠~悲暆晻煏暈殹ú簳晻潯<EFBFBD>畷晻暋<EFBFBD>﹔o垥暈杛o〔肠〃埠晻暆~Ξ晻晼—畅ro垥暈梤o〔肠~悲暆晻煏暈洝ú簳晻潯<EFBFBD>畷晻棥<EFBFBD>﹔o垥暈榬o〔肠〃埠晻暆~Ξ晻晿—畅ro垥暈檙o〔肠〃埠晻暆~Ξ晻暀—畅ro垥暈歳o〃埠晻棙~Ξ晻晻—畅ro垥暈況o〃埠晻棙~Ξ晻晽—畅ro垥枙時o“<EFBFBD>「春晻枛ˇ车晼晻煏晻暉晻晽~Υ晻晻」乏晻櫄煏暈暉晻潠煏暁榬o垥枙杛o“<EFBFBD>〔脯<EFBFBD>呠杂屬呍帐訐〕穿—畅ro垥枛時o“<EFBFBD>~悲暅潟煏枛枴哺瑖┢犹首唶呚翁迂吰资呎哑刭首噬ro蒲褏咱首呝褪吷栽讚〕穿ro<EFBFBD>屫呎自瞧茄迏釉賲茀淘陨呂墒苧o僭吺淤首吰言邮摀摗炒<EFBFBD><EFBFBD>﹔o垥枛杛o“<EFBFBD>「春晻枛ˇ车晼枙煏晻暉晻晽~Υ晻晽」乏晻櫆煏暈棢晻暀煏晼渞o垥枟時o‘汞晻棖煏枟杛o“<EFBFBD>〔脯驹趨褪谱呝褪呚在由呍藚宗赝斡蘲o芷偈讌俗砸呠钨臀訐〕穿ro<EFBFBD>呠在焉訉賲鞘吰吿栽蓞紊e茀僭呁势蓃o斡呠钨驮谫吰訁莆讌倨有摗炒<EFBFBD><EFBFBD>﹔o垥枟杛o“<EFBFBD>~Υ晻晿」乏晻櫇煏暈槦晼殮煏晻杛oro垥枤時o“<EFBFBD>〔肠〃埠晻暆〖Ξ晻暁〃车晿晻煏枛湡晻晽~Ξ晻晽ro〖Ξ晻枙roˇ车晿晻煏晻槦晻晽〖Ξ晻枦roˇ车晿晻煏晻枱晻晽ro〔脯」悍~Θ晻棜ψ蕝苁呚傥蜒呂訁偻蕆o逼寝孜淤亭〕穿~Θ晻晻〃贝roˇ车晿晻煏晻槦晻晽〖Ξ晻洐roˇ车晿晻煏晽暉晻晽〖Ξ晻殨roˇ车晿晻煏晻枱晻晽〖Ξ晻枙roˇ车晿晻煏晻槦晻晽〖Ξ晼櫀roˇ车晿晻煏晽暉晻晽〖Ξ晻枙ro「春晻枛ˇ车晼枙煏晻暉晻晽〖Ξ晻棔ro々车晿晻〖Ξ晻棔ro「春晻枛ˇ车晼枙煏晻暉晻晻~睈暆棔—畅ro垥槙時o垥槝時o〉樊〔脯驹趨厥蕝茀勤儋杂摗炒<EFBFBD>复簳暀槨ū贰哺<EFBFBD>资刎噬呂贀〕穿〃贝ro〖Ξ晻殨ro「春晻湒ro〃驳晻暅煏晿殶晻晻ro〃驳晻暆煏晿殶晻晻ro〃驳晻棝煏晿枱晼枛ro〖Ξ晻殨—畅ro
|
||||
<EFBFBD>银妍<EFBFBD><EFBFBD>霰董衛薛祐妤壯鬲竟騷壯妖魚蛻壯壯頃驍<EFBFBD>银妍<EFBFBD><EFBFBD>霰董瘧怬壯秦螂嬪壯迅敷<EFBFBD><EFBFBD>壯骨<EFBFBD>傍顫魚藪妖壯惕妍韋瘧怬壯秦螂嬪壯底敷<EFBFBD><EFBFBD>壯高<EFBFBD>傍顫竟騷壯妖魚蛻壯妒頃驍<EFBFBD>银妍<EFBFBD><EFBFBD>霰董衛薛祐妤壯乾竟騷壯妖魚蛻壯妨頃驍<EFBFBD>银妍<EFBFBD><EFBFBD>瘧怬妝玟螂嬪壯妊敷<EFBFBD><EFBFBD>壯鬼<EFBFBD>竟騷壯帚魚蛻壯妝頃驍<EFBFBD>银妍<EFBFBD><EFBFBD>瘧怬妝玟螂嬪壯奕敷<EFBFBD><EFBFBD>夾壯<EFBFBD>麻標傘巛壯豕雩龔夾壯惕壯妤壯妝魚裟壯壯傚伓壯型惕妍妤壯祠惕妞<EFBFBD><EFBFBD>夾夾<EFBFBD>麻標傍尨燭𢎽緪癔埈諗憟傅ⅶ頃驍<EFBFBD>银豕<EFBFBD><EFBFBD>翹迣衛薛悖妤夾豕傍尨蒈嵒睖<EFBFBD><EFBFBD>罻碚<EFBFBD>嵂<EFBFBD>誽崹醏橎<EFBFBD><EFBFBD>蝆埈縰<EFBFBD>錈<EFBFBD>貁縃戊齪<EFBFBD><EFBFBD><EFBFBD><EFBFBD>賟箬崷蜸堒緦𠏵䡱緧<EFBFBD>靷嗏<EFBFBD>錛䚀槶塕𠏵蜪樔孕戊齪輒敷<EFBFBD><EFBFBD>夾豕<EFBFBD>麻標傘巛壯豕雩龔夾豆惕壯妤壯妝魚裟壯妝傚伓壯垣惕妍店壯妨惕夾<EFBFBD><EFBFBD>夾岱<EFBFBD>鹿佹壯岳惕貝<EFBFBD><EFBFBD>翹迣騫憶緶姄嗏<EFBFBD>錈<EFBFBD>耩懤<EFBFBD>篊烾擣葮槧<EFBFBD>鍐醏<EFBFBD>楌緛𢎽鳪葮憟傅ⅶ<EFBFBD>燭𨫎緶蜞<EFBFBD><EFBFBD>欿𠏵䡱緧<EFBFBD>靷嗏𤩱<EFBFBD>葄嵫<EFBFBD>馲𢎽鳪蛺擫𠏵<EFBFBD>嵑<EFBFBD>醓槻戊齪輒敷<EFBFBD><EFBFBD>夾岳<EFBFBD>麻標魚裟壯妒傚伓壯垢惕妍玩夾洵惕壯<EFBFBD><EFBFBD><EFBFBD>夾洹<EFBFBD>麻標傍顫竟騷壯妖割蛻壯妞竟龔妒壯惕豕拳壯妝魚蛻壯妝<EFBFBD>割蛻壯豆<EFBFBD>雩龔妒壯惕壯玩壯妝割蛻壯身<EFBFBD>雩龔妒壯惕壯迂壯妝<EFBFBD>傍尨傚旻魚蛹壯帕賊<EFBFBD>鎏𤍢錟蝆鉮<EFBFBD>錈<EFBFBD><EFBFBD>崷謮馲錈雲齪輒螂漣壯妊疑<EFBFBD><EFBFBD>衙カ爭妤壯妒惕壯底庛嬪妣<EFBFBD><EFBFBD>衙カ爭妤壯岱惕壯底庛嬪妞<EFBFBD><EFBFBD>衙カ爭妤壯夾惕壯底庛嬪夾<EFBFBD><EFBFBD>衙カ爭妤壯妒惕壯底庛嬪走<EFBFBD><EFBFBD>衙カ爭妤壯岱惕壯底庛嬪夾<EFBFBD><EFBFBD>岊怬夾迅衙カ豕妤壯壯惕壯底庛嬪妝<EFBFBD><EFBFBD>酷カ爭妊庛嬪妝<EFBFBD><EFBFBD>岊怬夾迅衙カ豕妤壯壯惕壯妊衛╡祟妊敷<EFBFBD><EFBFBD>妒壯<EFBFBD>银牧<EFBFBD><EFBFBD>ネ應騫憶緶𤍢嗈𠏵畑擫錛憟傅ⅶ傘巛壯囿竟蟹傍尨ロ塎縔<EFBFBD>鳪戊齪輒疑<EFBFBD><EFBFBD>庛嬪妞<EFBFBD><EFBFBD>岊怬妙<EFBFBD><EFBFBD>瘧カ壯拳壯狀惕壯<EFBFBD><EFBFBD>瘧カ壯秧壯狀惕壯<EFBFBD><EFBFBD>瘧カ妝面壯爸惕豕<EFBFBD><EFBFBD>庛嬪妞妊敷<EFBFBD><EFBFBD>
|
|
@ -1 +1 @@
|
|||
=:S``i`=:l}~qls}…``cglvqy````lu~t=:S``ia=:l}~qls}…``cglvqy```alu~t=:S``ib=:l}~qls}…``cglvqy```blu~t=:S``ic=:l}~qls}…``cglvqy```clu~t=:S``id=:l}~qls}…``cglvqy```dlu~t=:S`a``=:l€‚ylvq```bl„‚q``chj``ibj```ej```c=:S`a`a=:S`a`b=:l€‚ylƒ…``aalt~€`a`blvq```dl„‚q``d`j``ibj```dj```e=:S`a`c=:lv|z`fhaj`a`e=:ly„z``agj`a`d=:l€‚yl}ƒw|Ÿ“›•”^l~tlu~t=:S`a`d=:l€‚ylƒ…``bblwy„a`aglv|[`fhaly„]``ag=:l}ƒwl„…‚…£•”P¤˜•Pmsœ™ž™“P{•©m^l~tls|lu†u`a`e=:S`a`e=:l€‚ylƒ…``aalt~€`a`clvq````l„‚q``daj``i`j``aej```i=:S`a`f=:l{u‰lƒ…``aalq~€`a`fj``0`j```blvq```dl„‚q``dbj``idj```ej```i=:S`aa`=:lu†u`aaa=:S`aaa=:l{u‰lƒ…``aalq~€`aa`j````j```blvq```bl„‚q``dcj``ibj```dj``ac=:S`ab`=:l{u‰lvq```dl„‚q``d`j``idj``abj```b=:S`c``=:S`c`a=:lt~€`c`alrq```alv|]`fh`lu~t=:S`c`b=:lt~€`c`bls}…```glrq``a`ls~€`c``j``acj````lrƒ|````lu~t=:Sa```=:l{u‰lvr````j``afl‡qy`be`ls}…````=:l}ƒcl„…‚ls}…``ae=:t•–•‘¤•”P}Ÿž£¤•¢Pˆ^lv}``afl‡qy`af`lv|[fa`fl~tls|ls}…``cg=:ls~€`c``j````j````lv|[`fh`lu~t=:Sab``=:l{u‰lq~€ab``j``b`j```b=:lv~ab``j``aflvqy```a=:l‡qy`a``lvq```al„‚q``dgjab``j``chj``af
|
||||
>;Taaja>;m~rmt~<7E>adhmwrzaaaamw}{gcackaajfmvu>;Taajb>;m~rmt~<7E>adhmwrzaaabmw}{gcackaajfmvu>;Taajc>;m~rmt~<7E>adhmwrzaaacmw}{gcackaajfmvu>;Taajd>;m~rmt~<7E>adhmwrzaaadmw}{gcackaajfmvu>;Taaje>;m~rmt~<7E>adhmwrzaaaemw}{gcackaajfmvu>;Taajf>;mt~∥aiakaaagkaabgmvu>;Tabaa>;m<zmwraaacm<63>raadikaajckaaafkaaad>;Tabab>;Tabac>;m<zmо<6D>abbmu∥bacmwraaaem<65>raaeakaajckaaaekaaaf>;Tabad>;mw}{agibkabaf>;mz<6D>aabhkabae>;m<zm~з}<7D>莫抹_mumvu>;Tabae>;m<zmо<6D>accmxz<78>abhmw}\agibmz<6D>aabh>;m~зm<D0B7>ユ、抹Q・剿Qnt撓泅撚|蓑n_mumt}mv<6D>abaf>;Tabaf>;m<zmо<6D>abbmu∥badmwraaaam<61>raae1kaajakaabfkaaaj>;Tabag>;m|v確о<E7A2BA>abbmr∥bagkaaaakaaacmwraaaem<65>raaeckaajekaaafkaaaj>;Tabba>;mv<6D>abbb>;Tabbb>;m|v確о<E7A2BA>abbmr∥bbakaaaakaaacmwraaacm<63>raaedkaajckaaaekaabd>;Tabca>;m|v確wraaaem<65>raaeakaajekaabckaaac>;Tadaa>;Tadab>;mu∥dabmsraaabmw}^agiamvu>;Tadac>;mu∥dacmt~<7E>aahmsraabamt∥daakaabdkaaaamsмaaaamvu>;Tbaaa>;m|v確wsaaaakaabgm<67>zacfamt~<7E>aaa>;m~<7E>m<EFBFBD>ノt~<7E>abf>;u沫亦・抹Q~<7E>洟・魅Q雲mw~aabgm<67>zabgamw}\gbagmumt}mt~<7E>adh>;mt∥daakaaaakaaaamw}\agiamvu>;Tbcaa>;m|v確r|caakaacakaaac>;mwbcaakaabgmwrzaaab>;m<>zabaamwraaabm<62>raaehkbcaakaadikaabg
|
File diff suppressed because one or more lines are too long
Binary file not shown.
|
@ -1 +1 @@
|
|||
|y挓煥焲y<E784B2>桨<EFBFBD>寄煙牐<E78599>案煙煙<E78599>匠|y挓煥爘y<E78898>桨<EFBFBD>寄煙牐<E78599>案煙煚<E78599>匠|y挓煥<E68C93>y<EFBFBD>桨<EFBFBD>寄煙牐<E78599>案煙煛<E78599>匠|y挓煥<E68C93>y<EFBFBD>桨<EFBFBD>寄煙牐<E78599>案煙煝<E78599>匠|y挓煥<E68C93>y<EFBFBD>桨<EFBFBD>寄煙牐<E78599>案煙煟<E78599>匠|y挓煥<E68C93>y<EFBFBD>案煙煚<E78599>匠|y挓牊焲y<E784B2>慈<EFBFBD>娇煚煙<E7859A>煙煩煙煛<E78599>灸煙牋|y<>熬煙煟<E78599>侣<EFBFBD>涟煙'<E78599>煥)煚あ<E7859A>煚<EFBFBD>y挓<79>焲y<E784B2>慈<EFBFBD>懊|y<>还牐 <E78990><E38080><EFBFBD>y<EFBFBD>还牐<E8BF98><E78990><EFBFBD><EFBFBD>y<EFBFBD>还煣ⅳ<E785A3><E285B3>爘y<E78898>露<EFBFBD>牧妻嵊鈴圬肿銖溥忋自忊裔栽轁<E6A0BD>境<EFBFBD>涣|y煟湡<E7859F>煣徠卣詮艳嵩徱棕塾潾骄倡唇硘y挓<79>爘y<E78898>慈<EFBFBD>露<EFBFBD>牧妻嵊鈴圬肿銖溥忋自忊裔栽轁<E6A0BD>境<EFBFBD>涣|y<>牧谱鑿愚輺銖柁鋸阈谠徯忈遭惝<E981AD>境<EFBFBD>匠|y挓<79><E68C93>y<EFBFBD>慈<EFBFBD>粴牐¥<E78990>露<EFBFBD>牧妻嵊鈴圬肿銖溥忋自忊裔栽轁<E6A0BD>境<EFBFBD>涣<EFBFBD>牧绒鋸谳捩洀笍拚阍輳嵩肄嵊杂忔仔銃y笍墼嗅菰訌剌忋仔銖蒉阍艳挹潩潾骄倡唇硘y挓<79><E68C93>y<EFBFBD>慈<EFBFBD>露妻嵊鈴圬肿銖溥忋自忊裔栽轁<E6A0BD>境<EFBFBD>涣|y<>牧笍哚需徴掎忚掬釓遑毅掎铦<E68E8E>境<EFBFBD>匠|y挓<79>焲y挓 焲y<E784B2>慈<EFBFBD>露绒鋸肇萦忀捭棕葜忁諒剌阍嵩忏潩潾骄倡唇硘y挓 爘y<E78898>慈<EFBFBD>懊<EFBFBD>露米葬詵鈴袕蒉阍艳挹洀肄逶嵩觸y剌徲溻銤潩<E98AA4>境<EFBFBD>还牐 <E78990> <EFBFBD>祷範#ぉ煛 <E7859B>匠|y挓 <E68C93>y<EFBFBD>慈<EFBFBD>露<EFBFBD>牧|y侈忚o鋸嫘葶忋迯捱暂忋自忀捭匝揶诋<E68FB6>焦煙煙<E78599>粴牐 |y<>涣<EFBFBD>寄煙牊辉嗅菰訌邹鎻戕忋嵩秀徴坜抻杂|y徂艳汊惈瓢笩牓煫骄倡良墨唇硘y挓 <E68C93>y<EFBFBD>慈<EFBFBD>露睫阕剌謴咱庠徸葬詮羞咴嗅鈢y遭咴邑雄坭忎庠珍蹪潩<E8B9AA>境<EFBFBD>匠|y挓·焲y<E784B2>慈|y<>懊|y<>还牐#<E78990>·<EFBFBD>y<EFBFBD>还牐!<E78990>·<EFBFBD>y<EFBFBD>还牐 <E78990>·<EFBFBD>y<EFBFBD>还牐<E8BF98><E78990>·<EFBFBD>y<EFBFBD>还煣ⅴ<E785A3>·牜磁礋煚▅y挓·爘y<E78898>慈<EFBFBD>露|y侈忚掬忔休銖戕忈遭惝<E981AD>焦煙煙<E78599>熬煙煟<E78599>寄煙煙<E78599>案煙<E6A188><E78599>涣|y潩潩潾骄倡不緗y<E7B797>案煚煙<E7859A>笟牊煙|y<>娇煛牊<E7859B>粶煣ⅴ<E785A3>粴牐<E7B2B4><E78990>瘸煙煛<E78599>寄|y<>涟煙Β<E78599>煥ぉ煙牎<E78599>煙▅y挓·<E68C93>y<EFBFBD>慈<EFBFBD>露<EFBFBD>牧伦詮剽輺銖苻遑葜洀唁銖劂徾揶阝|y圬谠忊自栤忊阖圹徯圬逶潾骄倡唇硘y挓·<E68C93>y<EFBFBD>慈<EFBFBD>露<EFBFBD>牧侈忚掬忔休銖戕徲嵝剌忋自忔秀葬|y蔗捃彶溽坭<E6BABD>冉篃煙煫不緗y<E7B797>粴牐!<E78990>熬煙煚<E78599>寄煙煙<E78599>案煚煙<E7859A>案煙煚|y<>案煙<E6A188>|y<>寄煙牐<E78599>娇煛<E5A887><E7859B>煙牘煙煛<E78599>案煙<E6A188><E78599>娇煛<E5A887><E7859B>煙牘煙煙|y<>案煙<E6A188>|y<>露<EFBFBD>牧伦詮赵圹忊掬萦徯廑栽邼<E6A0BD>境|y<>匠|y挓·<E68C93>y<EFBFBD>慈<EFBFBD>娇煛<E5A887><E7859B>·ī煙煙<E78599>粴煣ⅴ<E785A3>粴牊!<E7898A>粶牐<E7B2B6><E78990>粴牐#<E78990>案煙牊<E78599>匠|y挓·<E68C93>y<EFBFBD>慈<EFBFBD>露米詮言訓鈴廪哌剌謴嬖銤<E5AC96>境<EFBFBD>匠|y挓ˉ<E68C93>
|
||||
0==F=IZ[NIPZb==>AISNV====IR[Q0==F>IZ[NIPZb==>AISNV===>IR[Q0==F?IZ[NIPZb==>AISNV===?IR[Q0==F@IZ[NIPZb==>AISNV===@IR[Q0==FAIZ[NIPZb==>AISNV===AIR[Q0==FBISNV===>IR[Q0=>==IXRfIN[]=>==G====G===?I`\b==>>ISN\===AIP``Ia_N==AEG==FAG=>B@G==>C0=?==IXRfI`NaISYW>AA>G=?=@ISYW>AA=G=?=?ISYW=E@BG=?=>IZ`TIab_d|q<7F>-yvtu<74>-<2D>}-<2D>ur-<2D>prr{;I[\QIPY_=A:=E:=E-dvsr-o|r-puvyq;I[\QIR[Q0=?=>IXRfIZ`TIab_d|q<7F>-yvtu<74>-<2D>}-<2D>ur-<2D>prr{;I[\QIPY_Iab_du<64>-q|{4<>-<2D>|<7C>-<2D>nxr-n-r<7F><72>LI[\QIR[Q0=?=?IXRfISY8>AABIZ`TIab_d|q<7F>-yvtu<74>-<2D>}-<2D>ur-<2D>prr{;I[\QIPY_Iab_f|<7C>-x{|<7C>9-V-|s<>r{-rp|qrq-<2D>un<75>V-yrn{rq-v{-<2D>un<75>-{|<7C>ro||x;;;I[\QIR[Q0=?=@IXRfIZ`Td|q<7F>-yvtu<74>-<2D>}-<2D>ur-<2D>prr{;I[\QIPY_Iab_V-}n<7F>-s|-<2D>|<7C>-<2D>vp<76>|<>;I[\QIR[Q0=?>=0=??=IXRfIZ`Tf|<7C>-sv{q-{|<7C>uv{t-|s-v{<7B>rr<7F><72>;;;I[\QIR[Q0=??>IXRfI`NaIZ`Taurr4<72>-n-{|<7C>ro||x9-p|<7C>rrqv{-q<><71><EFBFBD>;;;I[\QISYW>AA>G=??@ISYW>AABG=???IR[Q0=???IXRfIZ`TIab_Q|-<2D>|<7C>-<2D>n{<7B>-<2D>|-|}r{-<2D>ur-{|<7C>ro||xLIf[W====ISY8>AA>
IPY_IPZb==>=Yrn{rq-u|<7C>-<2D>|-<2D>rn<72>-sy||qrq|o|<7C><>.IdNV=>C=I[\QI_ZbIR[Q0=??@IXRfIZ`T[|<7C>uv{t-ry<72>r-urr-n}}rn<6E>r<>}rpvnyy<79>-<2D><>rs<72>y;;;I[\QIR[Q0=?A=IXRfIZ`TIab_T|-onpx-<2D>|-<2D>ur-yno<6E>v{<7B>uLIf[W====I]_VISN\===AIa_N==ACG==FAG===EG===F0=?B=IXRfI`NaISYW>AAAG=?BDISYW>AA?G=?BAISYW>AA>G=?B@ISYW>AA=G=?B?ISYW=E@CG=?B>IRcR==>F0=?B>IXRfIZ`TQ|-<2D>|<7C>-<2D>n{<7B>-<2D>|-r<7F><72>LIf[W====ISN\===AIPZb====IdNV==?=IPY_;;;;;I[\QIPY\IdNV=>==IYV8>===IQ[]=?>=ISY:=E@CISY8>AA=IZfQ===?I_ZbIa_N==D@G==FBG==>?G===F0=?B?IXRfIZ`TIab_`ur-v<>{4<>-z|<7C>v{t9-o<><6F>-v<>-y||x<>yvxr-<2D>ur4<72>-<2D><>vyy-nyv<79>r;I[\QIR[Q0=?B@IXRfIZ`TIab_Q|-<2D>|<7C>-<2D>n{<7B>-<2D>|-qnv{-<2D>ur-<2D>n<EFBFBD>rs|z-P<>y<7F>LIf[W====IPY\ISY8>AA?ISN\===>IPZb====IdNV=>==ISNV===>IdNV==C=IPZb==>AIN[]=?C=G===>G===?IdNV==A=IN[]=?C=G===>G====IdNV==B=IZ`TIab_`ur-sryy-<2D>|<7C>{q-n<>yrr};I[\QIR[Q0=?BAIXRfIP[]=?C=G=?BFG====ISY8=E@CISY8>=A?ISY:>AA=ISY8>AAAIdNV==>=IR[Q0=?BDIXRfIZ`Taur-orq4<71>-<2D>|}}v{t-<2D>r<EFBFBD>;I[\QIR[Q0=?C=
|
Binary file not shown.
|
@ -1 +1 @@
|
|||
ro垥暈時o〔肠~悲晿櫀煏暈殹ú簳晻灐<EFBFBD>畷晻暋<EFBFBD>﹔o垥暈杛o〔肠~悲晿櫀煏暈洝ú簳晻灐<EFBFBD>畷晻枴<EFBFBD>﹔o垥暈梤o〔肠~悲晿櫀煏暈湣ú簳晻灐<EFBFBD>畷晻棥<EFBFBD>﹔o垥暈榬o〔肠~悲晿櫀煏暈潯ú簳晻灐<EFBFBD>畷晻槨<EFBFBD>﹔o垥暈檙o〔肠~悲晿櫀煏暈灐ú簳晻灐<EFBFBD>畷晻櫋<EFBFBD>﹔o垥暈歳o〃埠晻棟~Ξ晻晻—畅ro垥暈況o〃埠晻棟~Ξ晻晼—畅ro垥暈渞o〃埠晻棟~Ξ晻晽—畅ro垥暈漴o〃埠晻棟~Ξ晻晿—畅ro垥暈瀝o〃埠晻棟~Ξ晻暀—畅ro垥枙時o〉樊~Υ晻晽」乏晻枛煏暈棢晻晼煏晿漴o垥枙杛o〉樊~Υ晻晽」乏晻枛煏槙潫晻晼煏晿漴o垥棔時o“<EFBFBD>〔脯岗胜〕穿〃狈臼仆憛畢杏攒呁首摗炒﹔o雇瀑屫呝褪吶谫蕝涛籽呠驮呚倨挢ro仍哉噬呞諈斡叇踪挖讓貐驮谪蕆o蒲褏偻蕝傥沂憛孜掏伽〕穿ro竿e呚驮苁蓞谡呁首蕝釉賲僭詒o言犹吰淘摗炒﹔o际吽在由呁首呠曝褪蓞谡呑翁唾ro褪资呂訁偻蕝资厥综晕讚〕穿ro竿蕝稍守訉賲厥室呝詤盐惺呞豶o亿韧摀摗炒﹔o畢稍訉賲杏攒呠娃憛匚尤蕝赝蕦豶o茀参椅唐呄谪賲盐惺呞負〕穿—畅ro垥槙時o〉樊ro~睈晿棝~睈晿湒~睊晿棖~睈晿洍ro々车晿晻—华晿晼ro垥槙杛o—华晻殭ro垥檿時o—畅ro垥檿杛o“<EFBFBD>〔京晻晽々车暀晻〔脯~Θ晻暃ν啞炒<EFBFBD>ū磖oˇ车暀晽煏晻洘晻晽〖Ξ晻湞々车暀晽~睈晿湒—畅ro垥檿梤o垥櫀時o“<EFBFBD>〃埠晻晻…波〔京晻晽ro〃车暀枙煏枤暉晻晻〖Ξ晻晼roˇ车暀枙煏晼枱晻晽〖Ξ晼殨ro~Ξ晻晼〖Ξ晼晻ro「波々车暀枙〖Ξ晻殨〃埠晻棟—华暀枛ro垥櫀杛o~悲棛暀煏晻暋<EFBFBD>悧檿櫋<EFBFBD>獣櫀梤o垥櫀梤o—华晻潧
|
||||
|y挓煥焲y<E784B2>桨<EFBFBD>还煝 <E7859D>煥か布臒煙ǐ蛋笩煙煫唇硘y挓煥爘y<E78898>桨<EFBFBD>还煝 <E7859D>煥カ布臒煙ǐ蛋笩煙牜唇硘y挓煥<E68C93>y<EFBFBD>桨<EFBFBD>还煝 <E7859D>煥Λ布臒煙ǐ蛋笩煙~唇硘y挓煥<E68C93>y<EFBFBD>桨<EFBFBD>还煝 <E7859D>煥Й布臒煙ǐ蛋笩煙<E7ACA9>唇硘y挓煥<E68C93>y<EFBFBD>桨<EFBFBD>还煝 <E7859D>煥ǐ布臒煙ǐ蛋笩煙+唇硘y挓煥<E68C93>y<EFBFBD>寄煙¨<E78599>案煙煙<E78599>匠|y挓煥<E68C93>y<EFBFBD>寄煙¨<E78599>案煙煚<E78599>匠|y挓煥<E68C93>y<EFBFBD>寄煙¨<E78599>案煙煛<E78599>匠|y挓煥<E68C93>y<EFBFBD>寄煙¨<E78599>案煙煝<E78599>匠|y挓煥▅y<E29685>寄煙¨<E78599>案煙煟<E78599>匠|y挓牊焲y<E784B2>粮<EFBFBD>熬煙煛<E78599>涟煙牋<E78599>煥々煙煚<E78599>煝<EFBFBD>y挓牊爘y<E78898>粮<EFBFBD>熬煙煛<E78599>涟煙牋<E78599><E7898B>З煙煚<E78599>煝<EFBFBD>y挓<79>焲y<E784B2>慈<EFBFBD>露落援<E890BD>境<EFBFBD>涣仍凶洀笍谳捩徸葬潾骄硘y米秀栤忋自徱溷詮重巅忔邹忊阈桠|y肄捱杂忎邚剌彴徙卒釚鈴邹溻詜y雄蹚阕詮阖茉洀嶝肿惝<E882BF>境|y伦詮庾捩杂忎邚自嵩忀捭忋揶|y坜葜徯洲潾骄硘y圃徴o漭訌自釓嫘庾杂忎邚嶝肿銃y自嵩徹輳阕詮嵩庠徨挢釢<E68CA2>境|y伦詮愚遭輺銖庠攒忋迯圬谠忎鈢y茕易潩潾骄硘y笍愚輺銖谳捩忔阻洀庳菀詮庾詵鈢y袕钾茇中徺溻銖圬谠忎鉂<E5BF8E>境<EFBFBD>匠|y挓<79>焲y<E784B2>粮|y<>粴煝ˉ<E7859D>粴煝<E7B2B4><E7859D>粶煝<E7B2B6><E7859D>粴煝ァ|y<>娇煝煙<E7859D>糯煝煚|y挓<79>爘y<E78898>糯煙ぃ|y挓<79>焲y<E784B2>匠|y挓<79>爘y<E78898>慈<EFBFBD>瘸煙煛<E78599>娇煟煙<E7859F>露<EFBFBD>安煙煡白惈骄倡不緗y<E7B797>娇煟煛<E7859F>煙ォ煙煛<E78599>案煙Η<E78599>娇煟煛<E7859F>粴煝<E7B2B4><E7859D>匠|y挓<79><E68C93>y挓 焲y<E784B2>慈<EFBFBD>寄煙煙<E78599>疾<EFBFBD>瘸煙煛|y<>娇煟牊<E7859F>牑煩煙煙<E78599>案煙煚|y<>娇煟牊<E7859F>煚牘煙煛<E78599>案煚<E6A188>|y<>案煙煚<E78599>案煚煙|y<>疾<EFBFBD>娇煟牊<E7859F>案煙<E6A188><E78599>寄煙¨<E78599>糯煟牋|y挓 爘y<E78898>还。煟<E38082>煙煫祷殹<E7A5B7>+磁礋 <E7A48B>y挓 <E68C93>y<EFBFBD>糯煙Д|y挓<79>焲y<E784B2>慈<EFBFBD>露<EFBFBD>牧掇徰幸趶戕忋自徾醒栳剌阕<E5898C>冉篃煙焲y<E784B2>粮<EFBFBD>熬煙煟<E78599>涟煙%<E78599>煥)煙煣<E78599>煙<EFBFBD>
|
|
@ -8,12 +8,14 @@
|
|||
#0093
|
||||
<MNA<CMU0008<FAI0003<END
|
||||
#0094
|
||||
<MNA<CMU0008<FAI0004<END
|
||||
<MNA<FLJ0800:0097<CMU0008<FAI0004<END
|
||||
|
||||
#0095
|
||||
<CMU0023<FAI0000<END
|
||||
#0096
|
||||
<CMU0023<FAI0002<END
|
||||
#0097
|
||||
<CMU0023<FAI0004<END
|
||||
|
||||
#0100
|
||||
<KEY<SOU0011<ANP0100:0000:0002<FAO0000<TRA0045:0090:0081:0053
|
||||
|
@ -65,4 +67,3 @@ Labyrinth?<NOD<FAC0000<CLO
|
|||
<CMP0026:0031:0111
|
||||
<WAI0050<END
|
||||
<END
|
||||
|
||||
|
|
|
@ -1,14 +1,16 @@
|
|||
|
||||
#0090
|
||||
<MNA<CMU0037<FAI0000<END
|
||||
<MNA<CMU0037<FAI0000<FLJ6202:0095<END
|
||||
#0091
|
||||
<MNA<CMU0037<FAI0001<END
|
||||
<MNA<CMU0037<FAI0001<FLJ6202:0095<END
|
||||
#0092
|
||||
<MNA<CMU0037<FAI0002<END
|
||||
<MNA<CMU0037<FAI0002<FLJ6202:0095<END
|
||||
#0093
|
||||
<MNA<CMU0037<FAI0003<END
|
||||
<MNA<CMU0037<FAI0003<FLJ6202:0095<END
|
||||
#0094
|
||||
<MNA<CMU0037<FAI0004<END
|
||||
<MNA<CMU0037<FAI0004<FLJ6202:0095<END
|
||||
#0095
|
||||
<CMP0080:0006:0016<END In Camp mode, make Camp chest accessible without flight or damage boost
|
||||
|
||||
#0100
|
||||
<PRI<FAO0002<TRA0038:0092:0005:0003
|
||||
|
|
|
@ -28,6 +28,13 @@
|
|||
#0101
|
||||
<PRI<FAO0004<TRA0012:0094:0037:0011
|
||||
#0102
|
||||
<PRI<FLJ0324:0104
|
||||
<ITJ0001:0103
|
||||
<MSGLocked.<NOD<END
|
||||
#0103
|
||||
<SOU0022<GIT1001<FL+0324<FL+0441
|
||||
<MSG<TURUsed =Arthur's Key=.<NOD<IT-0001<GIT0000<CLO<EVE0104
|
||||
#0104
|
||||
<PRI<SOU0011<DNP0102<FAO0004<TRA0011:0094:0016:0053
|
||||
#0200
|
||||
<KEY
|
||||
|
|
|
@ -52,6 +52,10 @@ robots!<WAI0160<NOD<RMU<END
|
|||
<KEY<MSGNothing else here appears
|
||||
especially useful...<NOD<END
|
||||
|
||||
#0240
|
||||
<KEY<MSG<TURGo back to the labyrinth?<YNJ0000
|
||||
<PRI<FAO0004<TRA0046:0094:0008:0009
|
||||
|
||||
#0250
|
||||
<KEY
|
||||
<SAT
|
||||
|
|
|
@ -69,3 +69,7 @@ a Mimiga just like us.<NOD<END
|
|||
#0412
|
||||
<EVE0086
|
||||
|
||||
#0500
|
||||
<KEY<MSG<TURGo back to the labyrinth?<YNJ0000
|
||||
<PRI<FAO0004<TRA0046:0094:0008:0009
|
||||
|
||||
|
|
|
@ -31,12 +31,16 @@
|
|||
<EVE1002
|
||||
|
||||
#1002
|
||||
<CMU0000<EVE1010
|
||||
<CMU0000<EVE1004
|
||||
|
||||
#1003
|
||||
<FL-0836
|
||||
<EVE1010
|
||||
|
||||
#1004
|
||||
<FLJ6200:1010
|
||||
<FL+6300<EVE1010
|
||||
|
||||
#1010
|
||||
<NCJ0336:1011
|
||||
<TRA0015:0410:0016:0012<END
|
||||
|
|
|
@ -1 +1 @@
|
|||
?<Ubbkb?<nsnu㍍bcjn〝{bbbcn久bbbbnxs{bbbbnwv?<Ubbkc?<nsnu㍍bcjn〝{bbbcn久bbbbnxs{bbbcnwv?<Ubbkd?<nsnu㍍bcjn〝{bbbcn久bbbdnxs{bbbdnt<6E>bbbbnwv?<Ubbke?<nsnu㍍bcjn〝{bbbcn久bbbbnxs{bbbenwv?<Ubbkf?<nsnu㍍bcjn〝{bbbcn久bbbbnxs{bbbfnwv?<Ubbkg?<nu㍍bdenxs{bbbbnwv?<Ubcbb?<n}w杵xs|bbcnu<6E>n<EFBFBD>sbbfilbbkclbbbjlbbbk?<Ub2bb?<Ubdcb?<Ucbbb?<n}w杵t《cbbbnx~]hcbk?<nsCdbblbbcblbbbb?<nsCdcblbbcblbbbb?<n鋭{bebbnxs|bbd?<n〝{bbbbnu<6E>nw<6E>cbbc?<Ucbbc?<nw<6E>cbbd?<Ucbbd?<nu㍍bbbnw<6E>cbcb?<Ucbbe?<nx~_bjeh?<nw<6E>cbcb?<Ucbcb?<nu|beehlcbcc?<n<>sbbcglbfcblbbchlbbcd?<Ucbcc?<nx~|hbbdlcbcd?<n{<7B>bbbg?<n<>sbbcglbfcblbbchlbbcd?<Ucbcd?<n{<7B>bbbh?<n<>sbbcglbfcblbbchlbbcd
|
||||
XUn{{кXU∟剏㍽丐{{|ョ<>剩{{{|∟、旬{{{≡券{{{{≒剌XUn{{лXU∟剏㍽丐{{|ョ<>剩{{{|∟、旬{{{≡券{{{|≒剌XUn{{мXU∟剏㍽丐{{|ョ<>剩{{{|∟、旬{{}≡券{{{}㍾棊{{{{≒剌XUn{{нXU∟剏㍽丐{{|ョ<>剩{{{|∟、旬{{{≡券{{{~≒剌XUn{{<7B>XU∟剏㍽丐{{|ョ<>剩{{{|∟、旬{{{≡券{{{≒剌XUn{{оXU㍽丐{{}~≡券{{{{≒剌XUn{|{{XU⊥畝≡建{{{|㍽棍<E38DBD>搆{{e{{л<>{{ュ{{{ЧUn{}{{XUn{}|{XUn|{{{XU⑫畝㍾嚮|{{{≡要-{ЧU㈹剱{}{{<7B>{|{<7B>{{{XU㈹剱{}|{<7B>{|{<7B>{{{XU<58>券{~{{≡建{{{}XU<58>剩{{{{㍽棍≒。酢{{|XUn|{{|XU≒。酢{{}XUn|{{}XU㍽丐{{{{≒。酢{{XUn|{{~XU≡踊{ミ々U≒。酢{|{XUn|{{XU≡藍±{{<7B>{|{XU≡要×{{≒。酢{|{XUn|{|{XU⊿歯{~~≦|{||XU<58>搆{{|<>|{<7B>{|≦{{|}XUn|{||XU≡藍+{}<7D>{|}XU∑殼{{{XU<58>搆{{|<>|{<7B>{|≦{{|}XUn|{|}XU∑殼{{{々U<E38085>搆{{|<>|{<7B>{|≦{{|}
|
BIN
src/assets/icon/Arthur2.png
Normal file
BIN
src/assets/icon/Arthur2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.2 KiB |
BIN
src/assets/icon/Camp.png
Normal file
BIN
src/assets/icon/Camp.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.2 KiB |
BIN
src/assets/icon/StartPoint2.png
Normal file
BIN
src/assets/icon/StartPoint2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.2 KiB |
|
@ -78,7 +78,7 @@ local function _itemData()
|
|||
snake = {
|
||||
name = "Snake",
|
||||
script = "<EVE0005",
|
||||
attributes = {"weapon", "weaponBoss", "nonProgressive"}
|
||||
attributes = {"weapon", "weaponBoss", "nonProgressive", "weaponStrong"}
|
||||
},
|
||||
bubbler = {
|
||||
name = "Bubbler",
|
||||
|
@ -88,17 +88,17 @@ local function _itemData()
|
|||
machineGun = {
|
||||
name = "Machine Gun",
|
||||
script = "<EVE0008",
|
||||
attributes = {"weapon", "weaponBoss", "weaponSN", "flight", "mandatory"}
|
||||
attributes = {"weapon", "weaponBoss", "weaponSN", "flight", "mandatory", "weaponStrong"}
|
||||
},
|
||||
blade = {
|
||||
name = "Blade",
|
||||
script = "<EVE0009",
|
||||
attributes = {"weapon", "weaponBoss", "weaponSN", "mandatory"}
|
||||
attributes = {"weapon", "weaponBoss", "weaponSN", "mandatory", "weaponStrong"}
|
||||
},
|
||||
nemesis = {
|
||||
name = "Nemesis",
|
||||
script = "<EVE0010",
|
||||
attributes = {"weapon", "weaponBoss", "weaponSN", "nonProgressive"}
|
||||
attributes = {"weapon", "weaponBoss", "weaponSN", "nonProgressive", "weaponStrong"}
|
||||
},
|
||||
|
||||
---------------
|
||||
|
@ -359,10 +359,10 @@ local function _itemData()
|
|||
----------------
|
||||
-- GAME MODES --
|
||||
----------------
|
||||
objBadEnd = objective("Bad Ending", "<FL+6003<EVE0091"),
|
||||
objNormalEnd = objective("Normal Ending", "<FL+6000<EVE0091"),
|
||||
objBestEnd = objective("Best Ending", "<FL+6001<EVE0091"),
|
||||
objAllBosses = objective("All Bosses", "<FL+6002<IT+0005<EVE0091")
|
||||
objBadEnd = objective("Bad Ending", "<FL+6003"),
|
||||
objNormalEnd = objective("Normal Ending", "<FL+6000"),
|
||||
objBestEnd = objective("Best Ending", "<FL+6001"),
|
||||
objAllBosses = objective("All Bosses", "<FL+6002<IT+0005")
|
||||
}
|
||||
|
||||
local array = {}
|
||||
|
|
|
@ -4,6 +4,8 @@ function C:new(worldGraph, name)
|
|||
self.locations = {}
|
||||
self.world = worldGraph
|
||||
self.name = name
|
||||
self.order = worldGraph.order
|
||||
worldGraph.order = worldGraph.order + 1
|
||||
end
|
||||
|
||||
function C:canAccess(items)
|
||||
|
|
|
@ -16,9 +16,17 @@ function firstCave:new(worldGraph)
|
|||
firstCapsule = Location("First Cave Life Capsule", "Cave", "0401", self),
|
||||
gunsmithChest = Location("Hermit Gunsmith Chest", "Pole", "0202", self),
|
||||
gunsmith = Location("Tetsuzou", "Pole", "0303", self),
|
||||
objective = Location("Objective", "Start", "0201", self)
|
||||
objective = Location("Game Settings", "Start", "0201", self)
|
||||
}
|
||||
|
||||
self.requirements = function(self, items)
|
||||
if self.world:StartPoint() then
|
||||
return true
|
||||
elseif self.world:Arthur() or self.world:Camp() then
|
||||
return _has(items, "flight") and self.world.regions.mimigaVillage:canAccess(items)
|
||||
end
|
||||
end
|
||||
|
||||
self.locations.gunsmith.requirements = function(self, items)
|
||||
return _has(items, "flight") and _has(items, "polarStar") and _has(items, "eventCore") and self.region.world.regions.mimigaVillage:canAccess(items)
|
||||
end
|
||||
|
@ -39,7 +47,11 @@ function mimigaVillage:new(worldGraph)
|
|||
}
|
||||
|
||||
self.requirements = function(self, items)
|
||||
return _has(items, "weaponSN")
|
||||
if self.world:StartPoint() then
|
||||
return _has(items, "weaponSN")
|
||||
elseif self.world:Camp() or self.world:Arthur() then
|
||||
return _has(items, "arthurKey") and self.world.regions.arthur:canAccess(items) or self.world.regions.waterway:canAccess(items)
|
||||
end
|
||||
end
|
||||
|
||||
self.locations.assembly.requirements = function(self, items) return _has(items, "juice") end
|
||||
|
@ -70,8 +82,13 @@ function arthur:new(worldGraph)
|
|||
}
|
||||
|
||||
self.requirements = function(self, items)
|
||||
if _has(items, "arthurKey") and _has(items, "weaponSN") then return true end
|
||||
return false
|
||||
if self.world:StartPoint() then
|
||||
return _has(items, "arthurKey") and _has(items, "weaponSN")
|
||||
elseif self.world:Camp() then
|
||||
return self.world.regions.labyrinthB:canAccess(items)
|
||||
elseif self.world:Arthur() then
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
||||
self.locations.risenBooster.requirements = function(self, items) return _has(items, "eventCore") end
|
||||
|
@ -90,6 +107,7 @@ function eggCorridor1:new(worldGraph)
|
|||
|
||||
self.requirements = function(self, items) return self.world.regions.arthur:canAccess(items) end
|
||||
|
||||
self.locations.cthulhu.requirements = function(self, items) return _has(items, "weaponSN") or _has(items, "flight") end
|
||||
self.locations.eventSue.requirements = function(self, items) return _has(items, "idCard") and _has(items, "weaponBoss") end
|
||||
self.locations.eventSue:setItem(self.world.items:getByKey("eventSue"))
|
||||
end
|
||||
|
@ -170,7 +188,7 @@ function upperSandZone:new(worldGraph)
|
|||
}
|
||||
|
||||
self.requirements = function(self, items)
|
||||
return self.world.regions.arthur:canAccess(items)
|
||||
return self.world.regions.arthur:canAccess(items) and _has(items, "weaponSN")
|
||||
end
|
||||
|
||||
self.locations.curly.requirements = function(self, items) return _has(items, "polarStar") end
|
||||
|
@ -197,7 +215,11 @@ function lowerSandZone:new(worldGraph)
|
|||
}
|
||||
|
||||
self.requirements = function(self, items)
|
||||
return _has(items, "eventOmega") and self.world.regions.upperSandZone:canAccess(items)
|
||||
if self.world:StartPoint() or self.world:Arthur() then
|
||||
return _has(items, "eventOmega") and self.world.regions.upperSandZone:canAccess(items)
|
||||
elseif self.world:Camp() then
|
||||
return self.world.regions.labyrinthW:canAccess(items)
|
||||
end
|
||||
end
|
||||
|
||||
self.locations.jenka.requirements = function(self, items) return _count(items, "puppy", 5) end
|
||||
|
@ -223,17 +245,21 @@ function labyrinthW:new(worldGraph)
|
|||
}
|
||||
|
||||
self.requirements = function(self, items)
|
||||
if not self.world.regions.arthur:canAccess(items) then return false end
|
||||
if _has(items, "eventToroko") and self.world.regions.lowerSandZone:canAccess(items) then return true end
|
||||
if _has(items, "flight") and _has(items, "weaponBoss") and self.world.regions.labyrinthB:canAccess(items) then return true end
|
||||
return false
|
||||
if self.world:StartPoint() or self.world:Arthur() then
|
||||
if not self.world.regions.arthur:canAccess(items) then return false end
|
||||
if _has(items, "eventToroko") and self.world.regions.lowerSandZone:canAccess(items) then return true end
|
||||
if _has(items, "flight") and _has(items, "weaponBoss") and self.world.regions.labyrinthB:canAccess(items) then return true end
|
||||
return false
|
||||
elseif self.world:Camp() then
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
||||
self.locations.mazeCapsule.requirements = function(self, items) return _has(items, "weapon") end
|
||||
self.locations.turboChaba.requirements = function(self, items) return _has(items, "machineGun") end
|
||||
self.locations.snakeChaba.requirements = function(self, items) return _has(items, "fireball") end
|
||||
self.locations.whimChaba.requirements = function(self, items) return _count(items, "polarStar", 2) end
|
||||
self.locations.campChest.requirements = function(self, items) return _has(items, "flight") end
|
||||
self.locations.campChest.requirements = function(self, items) return _has(items, "flight") or self.region.world:Camp() end
|
||||
self.locations.puuBlack.requirements = function(self, items) return _has(items, "clinicKey") and _has(items, "weaponBoss") end
|
||||
end
|
||||
|
||||
|
@ -245,7 +271,11 @@ function labyrinthB:new(worldGraph)
|
|||
}
|
||||
|
||||
self.requirements = function(self, items)
|
||||
return self.world.regions.arthur:canAccess(items)
|
||||
if self.world:StartPoint() or self.world:Arthur() then
|
||||
return self.world.regions.arthur:canAccess(items)
|
||||
elseif self.world:Camp() then
|
||||
return self.world.regions.labyrinthW:canAccess(items) and _has(items, "weaponBoss")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -292,7 +322,6 @@ function waterway:new(worldGraph)
|
|||
}
|
||||
|
||||
self.requirements = function(self, items)
|
||||
if not self.world.regions.arthur:canAccess(items) then return false end
|
||||
if _has(items, "airTank") and _has(items, "weaponBoss") and self.world.regions.labyrinthM:canAccess(items) then return true end
|
||||
return false
|
||||
end
|
||||
|
@ -317,7 +346,7 @@ function eggCorridor2:new(worldGraph)
|
|||
return false
|
||||
end
|
||||
|
||||
self.locations.dragonChest.requirements = function(self, items) return _has(items, "weapon") end
|
||||
self.locations.dragonChest.requirements = function(self, items) return _has(items, "weaponSN") or _has(items, "eventCore") end
|
||||
self.locations.sisters.requirements = function(self, items) return _has(items, "weaponBoss") end
|
||||
end
|
||||
|
||||
|
@ -409,6 +438,8 @@ local worldGraph = Class:extend()
|
|||
|
||||
function worldGraph:new(items)
|
||||
self.items = items
|
||||
self.order = 0
|
||||
self.spawn = ""
|
||||
|
||||
self.regions = {
|
||||
firstCave = firstCave(self),
|
||||
|
@ -432,6 +463,16 @@ function worldGraph:new(items)
|
|||
}
|
||||
end
|
||||
|
||||
function worldGraph:StartPoint() return self.spawn == "Start Point" end
|
||||
function worldGraph:Arthur() return self.spawn == "Arthur's House" end
|
||||
function worldGraph:Camp() return self.spawn == "Camp" end
|
||||
|
||||
function worldGraph:getSpawnScript()
|
||||
if self:StartPoint() then return "<FL+6200<EVE0091" end
|
||||
if self:Arthur() then return "<FL+6201<FL+0301<FL+0302<TRA0001:0094:0008:0004" end
|
||||
if self:Camp() then return "<FL+6202<FL+0301<FL+0302<TRA0040:0094:0014:0009" end
|
||||
end
|
||||
|
||||
function worldGraph:getLocations()
|
||||
local locations = {}
|
||||
for key, region in pairs(self.regions) do
|
||||
|
@ -450,6 +491,10 @@ function worldGraph:getMALCO()
|
|||
return {self.regions.grasstownEast.locations.malco}
|
||||
end
|
||||
|
||||
function worldGraph:getCamp()
|
||||
return {self.regions.labyrinthW.locations.physician, self.regions.labyrinthW.locations.campChest}
|
||||
end
|
||||
|
||||
function worldGraph:getPuppySpots()
|
||||
return {
|
||||
self.regions.upperSandZone.locations.curly,
|
||||
|
@ -550,7 +595,15 @@ function worldGraph.locationsArray(locations)
|
|||
end
|
||||
|
||||
function worldGraph:logLocations()
|
||||
for k,r in pairs(self.regions) do
|
||||
local array = {}
|
||||
for k,v in pairs(self.regions) do
|
||||
table.insert(array, v)
|
||||
end
|
||||
local function sort(a,b)
|
||||
return a.order < b.order
|
||||
end
|
||||
|
||||
for k,r in ipairs(_.sort(array,sort)) do
|
||||
if next(r.locations) then
|
||||
logSpoiler("")
|
||||
logSpoiler("Region: " .. r.name)
|
||||
|
|
|
@ -144,36 +144,53 @@ function C:getObjective()
|
|||
end
|
||||
|
||||
function C:_shuffleItems(tscFiles)
|
||||
-- place the objective scripts in Start Point
|
||||
self:_fastFillItems(self:getObjective(), self.worldGraph:getObjectiveSpot())
|
||||
-- ensure unique randomization between settings with the same seed
|
||||
local function shuffle(t)
|
||||
if self.obj == "objBadEnd" then return _.shuffle(_.shuffle(t)) end
|
||||
if self.obj == "objNormalEnd" then return _.shuffle(_.shuffle(_.shuffle(t))) end
|
||||
if self.obj == "objAllBosses" then return _.shuffle(_.shuffle(_.shuffle(_.shuffle(t)))) end
|
||||
return _.shuffle(t)
|
||||
end
|
||||
|
||||
-- first, fill one of the first cave spots with a weapon that can break blocks
|
||||
_.shuffle(self.worldGraph:getFirstCaveSpots())[1]:setItem(_.shuffle(self.itemDeck:getItemsByAttribute("weaponSN"))[1])
|
||||
local obj = self:getObjective()[1]
|
||||
obj.name = obj.name .. (", %s"):format(self.worldGraph.spawn)
|
||||
obj.script = obj.script .. self.worldGraph:getSpawnScript()
|
||||
-- place the objective scripts in Start Point
|
||||
self:_fastFillItems({obj}, self.worldGraph:getObjectiveSpot())
|
||||
|
||||
if self.worldGraph:StartPoint() then
|
||||
-- first, fill one of the first cave spots with a weapon that can break blocks
|
||||
_.shuffle(self.worldGraph:getFirstCaveSpots())[1]:setItem(shuffle(self.itemDeck:getItemsByAttribute("weaponSN"))[1])
|
||||
elseif self.worldGraph:Camp() then
|
||||
-- give Dr. Gero a strong weapon... you'll need it
|
||||
self.worldGraph:getCamp()[1]:setItem(shuffle(self.itemDeck:getItemsByAttribute("weaponStrong"))[1])
|
||||
-- and some HP once you fight your way past the first few enemies
|
||||
self.worldGraph:getCamp()[2]:setItem(self.itemDeck:getByKey("capsule5G"))
|
||||
end
|
||||
|
||||
-- place the bomb on MALCO for bad end
|
||||
if self.obj == "objBadEnd" then
|
||||
self.worldGraph:getMALCO()[1]:setItem(self.itemDeck:getByKey("bomb"))
|
||||
end
|
||||
|
||||
|
||||
local mandatory = _.compact(_.shuffle(self.itemDeck:getMandatoryItems(true)))
|
||||
local optional = _.compact(_.shuffle(self.itemDeck:getOptionalItems(true)))
|
||||
local puppies = _.compact(_.shuffle(self.itemDeck:getItemsByAttribute("puppy")))
|
||||
local mandatory = _.compact(shuffle(self.itemDeck:getMandatoryItems(true)))
|
||||
local optional = _.compact(shuffle(self.itemDeck:getOptionalItems(true)))
|
||||
local puppies = _.compact(shuffle(self.itemDeck:getItemsByAttribute("puppy")))
|
||||
|
||||
if not self.puppy then
|
||||
-- then fill puppies, for normal gameplay
|
||||
self:_fastFillItems(puppies, _.shuffle(self.worldGraph:getPuppySpots()))
|
||||
self:_fastFillItems(puppies, shuffle(self.worldGraph:getPuppySpots()))
|
||||
else
|
||||
-- for puppysanity, shuffle puppies in with the mandatory items
|
||||
mandatory = _.shuffle(_.append(mandatory, puppies))
|
||||
mandatory = shuffle(_.append(mandatory, puppies))
|
||||
puppies = {}
|
||||
end
|
||||
|
||||
-- next fill hell chests, which cannot have mandatory items
|
||||
self:_fastFillItems(optional, _.shuffle(self.worldGraph:getHellSpots()))
|
||||
self:_fastFillItems(optional, shuffle(self.worldGraph:getHellSpots()))
|
||||
|
||||
-- place mandatory items with assume fill
|
||||
self:_fillItems(mandatory, _.shuffle(_.reverse(self.worldGraph:getEmptyLocations())))
|
||||
self:_fillItems(mandatory, shuffle(_.reverse(self.worldGraph:getEmptyLocations())))
|
||||
|
||||
-- place optional items with a simple random fill
|
||||
local opt = #optional
|
||||
|
@ -181,7 +198,7 @@ function C:_shuffleItems(tscFiles)
|
|||
if opt > loc then
|
||||
logWarning(("Trying to fill more optional items than there are locations! Items: %d Locations: %d"):format(opt, loc))
|
||||
end
|
||||
self:_fastFillItems(optional, _.shuffle(self.worldGraph:getEmptyLocations()))
|
||||
self:_fastFillItems(optional, shuffle(self.worldGraph:getEmptyLocations()))
|
||||
|
||||
self.worldGraph:writeItems(tscFiles)
|
||||
self.worldGraph:logLocations()
|
||||
|
@ -269,6 +286,8 @@ function C:_unmountDirectory(path)
|
|||
end
|
||||
|
||||
function C:_logSettings()
|
||||
-- these random calls are a hacky way to make sure that
|
||||
-- randomization changes between seeds if settings change
|
||||
local obj = "Best Ending"
|
||||
if self.obj == "objBadEnd" then
|
||||
obj = "Bad Ending"
|
||||
|
@ -278,32 +297,49 @@ function C:_logSettings()
|
|||
obj = "All Bosses"
|
||||
end
|
||||
|
||||
local spawn = (", %s"):format(self.worldGraph.spawn)
|
||||
|
||||
local puppy = self.puppy and ", Puppysanity" or ""
|
||||
logNotice(("Game settings: %s"):format(obj .. puppy))
|
||||
logNotice(("Game settings: %s"):format(obj .. spawn .. puppy))
|
||||
end
|
||||
|
||||
function C:_updateSettings()
|
||||
Settings.settings.puppy = self.puppy
|
||||
Settings.settings.obj = self.obj
|
||||
Settings.settings.mychar = self.mychar
|
||||
Settings.settings.spawn = self.worldGraph.spawn
|
||||
Settings:update()
|
||||
end
|
||||
|
||||
function C:_updateSharecode(seed)
|
||||
local settings = 0 -- 0b00000000
|
||||
-- 0bXXXXXPOO
|
||||
-- 0bXXXSSPOO
|
||||
-- P: single bit used for puppysanity
|
||||
-- O: two bits used for objective
|
||||
-- S: two bits used for spawn location
|
||||
-- X: unused
|
||||
|
||||
-- bitshift intervals
|
||||
local obj = 0
|
||||
local pup = 2
|
||||
local spn = 3
|
||||
|
||||
if self.obj == "objBadEnd" then
|
||||
settings = bit.bor(settings, 1)
|
||||
settings = bit.bor(settings, bit.blshift(1, obj))
|
||||
elseif self.obj == "objNormalEnd" then
|
||||
settings = bit.bor(settings, 2)
|
||||
settings = bit.bor(settings, bit.blshift(2, obj))
|
||||
elseif self.obj == "objAllBosses" then
|
||||
settings = bit.bor(settings, 3)
|
||||
settings = bit.bor(settings, bit.blshift(3, obj))
|
||||
end
|
||||
if self.puppy then settings = bit.bor(settings, bit.blshift(1, pup)) end
|
||||
|
||||
if self.worldGraph:StartPoint() then
|
||||
settings = bit.bor(settings, bit.blshift(0, spn))
|
||||
elseif self.worldGraph:Arthur() then
|
||||
settings = bit.bor(settings, bit.blshift(1, spn))
|
||||
elseif self.worldGraph:Camp() then
|
||||
settings = bit.bor(settings, bit.blshift(2, spn))
|
||||
end
|
||||
if self.puppy then settings = bit.bor(settings, 4) end
|
||||
|
||||
if #seed < 20 then
|
||||
seed = seed .. (" "):rep(20-#seed)
|
||||
|
|
|
@ -12,6 +12,7 @@ function C:setDefaults()
|
|||
self.settings.csdirectory = nil
|
||||
self.settings.puppy = false
|
||||
self.settings.obj = "objBestEnd"
|
||||
self.settings.spawn = "Start Point"
|
||||
self:update()
|
||||
end
|
||||
|
||||
|
@ -26,6 +27,7 @@ function C:serialize()
|
|||
line = line .. ("puppy = %s,\r\n "):format(self.settings.puppy)
|
||||
line = line .. ("obj = %q,\r\n "):format(self.settings.obj or "")
|
||||
line = line .. ("mychar = %q,\r\n "):format(self.settings.mychar or "")
|
||||
line = line .. ("spawn = %q,\r\n "):format(self.settings.spawn or "")
|
||||
|
||||
line = line .. "\r\n}"
|
||||
return line
|
||||
|
|
|
@ -12,14 +12,14 @@ layout:setTheme(require 'lib.luigi.theme.dark')
|
|||
settings:setTheme(require 'lib.luigi.theme.dark')
|
||||
|
||||
function C:setup()
|
||||
self:loadSettings(Settings.settings.puppy, Settings.settings.obj, nil, Settings.settings.mychar)
|
||||
self:loadSettings(Settings.settings.puppy, Settings.settings.obj, nil, Settings.settings.mychar, Settings.settings.spawn)
|
||||
|
||||
background = lg.newImage('assets/background.png')
|
||||
self:draw()
|
||||
layout:show()
|
||||
end
|
||||
|
||||
function C:loadSettings(puppy, obj, seed, mychar)
|
||||
function C:loadSettings(puppy, obj, seed, mychar, spawn)
|
||||
settings.puppy.value = puppy
|
||||
|
||||
if obj == "objBadEnd" or obj == 1 then
|
||||
|
@ -55,6 +55,15 @@ function C:loadSettings(puppy, obj, seed, mychar)
|
|||
settings.mychar.index = 7
|
||||
end
|
||||
settings.mychar.value = "override"
|
||||
|
||||
if spawn == "Start Point" or spawn == 0 then
|
||||
settings.spawn.index = 1
|
||||
elseif spawn == "Arthur's House" or spawn == 1 then
|
||||
settings.spawn.index = 2
|
||||
elseif spawn == "Camp" or spawn == 2 then
|
||||
settings.spawn.index = 3
|
||||
end
|
||||
settings.spawn.value = "override"
|
||||
end
|
||||
|
||||
layout.version.text = 'Cave Story Randomizer [Open Mode] v' .. VERSION
|
||||
|
@ -74,6 +83,7 @@ layout.go:onPress(function()
|
|||
Randomizer.obj = settings.objective.value
|
||||
Randomizer.puppy = settings.puppy.value
|
||||
Randomizer.mychar = settings.mychar.value
|
||||
Randomizer.worldGraph.spawn = settings.spawn.value
|
||||
|
||||
C:setStatus(Randomizer:randomize())
|
||||
|
||||
|
@ -119,8 +129,9 @@ settings.importshare:onPress(function()
|
|||
settings.importshare.text = "Sharecode Imported"
|
||||
local pup = bit.band(sharesettings, 4) ~= 0
|
||||
local obj = bit.band(sharesettings, 3)
|
||||
local spn = bit.brshift(bit.band(sharesettings, 24), 3)
|
||||
seed = seed:gsub("^%s*(.-)%s*$", "%1") -- trim any leading or trailing whitespace
|
||||
Screen:loadSettings(pup, obj, seed)
|
||||
Screen:loadSettings(pup, obj, seed, nil, spn)
|
||||
else
|
||||
settings.importshare.text = "Invalid Sharecode!"
|
||||
end
|
||||
|
|
|
@ -29,6 +29,12 @@ return { style = 'dialog',
|
|||
{ text = " King", value = "assets/myChar/King.bmp", icon = "assets/icon/King.png" },
|
||||
{ text = " Kanpachi", value = "assets/myChar/Kanpachi.bmp", icon = "assets/icon/Kanpachi.png" },
|
||||
{ text = " Frog", value = "assets/myChar/Frog.bmp", icon = "assets/icon/Frog.png" }
|
||||
},
|
||||
{ type = 'label', text = 'Spawn Location', minheight = 32 },
|
||||
{ type = 'stepper', id = 'spawn', align = 'middle left', height = 48, width = 200,
|
||||
{ text = " Start\r\n Point", value = "Start Point", icon = "assets/icon/StartPoint2.png" },
|
||||
{ text = " Arthur's\r\n House", value = "Arthur's House", icon = "assets/icon/Arthur2.png" },
|
||||
{ text = " Camp", value = "Camp", icon = "assets/icon/Camp.png" }
|
||||
}
|
||||
},
|
||||
},
|
||||
|
|
Loading…
Reference in a new issue