OOT updates (#821)
* oot: remove all escape characters in LogicTricks.py * only attempt to connect to client once * oot: don't kill player outside ToT or in market entrance fixed camera makes the game crash outside ToT. added market entrance to be safe, it doesn't matter if you don't die there
This commit is contained in:
parent
cfc9d79c79
commit
e6635cdd77
|
@ -48,7 +48,7 @@ deathlink_sent_this_death: we interacted with the multiworld on this death, wait
|
|||
|
||||
oot_loc_name_to_id = network_data_package["games"]["Ocarina of Time"]["location_name_to_id"]
|
||||
|
||||
script_version: int = 1
|
||||
script_version: int = 2
|
||||
|
||||
def get_item_value(ap_id):
|
||||
return ap_id - 66000
|
||||
|
@ -186,7 +186,7 @@ async def n64_sync_task(ctx: OoTContext):
|
|||
data = await asyncio.wait_for(reader.readline(), timeout=10)
|
||||
data_decoded = json.loads(data.decode())
|
||||
reported_version = data_decoded.get('scriptVersion', 0)
|
||||
if reported_version == script_version:
|
||||
if reported_version >= script_version:
|
||||
if ctx.game is not None and 'locations' in data_decoded:
|
||||
# Not just a keep alive ping, parse
|
||||
asyncio.create_task(parse_payload(data_decoded, ctx, False))
|
||||
|
|
|
@ -2,8 +2,8 @@ local socket = require("socket")
|
|||
local json = require('json')
|
||||
local math = require('math')
|
||||
|
||||
local last_modified_date = '2022-05-25' -- Should be the last modified date
|
||||
local script_version = 1
|
||||
local last_modified_date = '2022-07-24' -- Should be the last modified date
|
||||
local script_version = 2
|
||||
|
||||
--------------------------------------------------
|
||||
-- Heavily modified form of RiptideSage's tracker
|
||||
|
@ -1723,6 +1723,11 @@ function get_death_state()
|
|||
end
|
||||
|
||||
function kill_link()
|
||||
-- market entrance: 27/28/29
|
||||
-- outside ToT: 35/36/37.
|
||||
-- if killed on these scenes the game crashes, so we wait until not on this screen.
|
||||
local scene = global_context:rawget('cur_scene'):rawget()
|
||||
if scene == 27 or scene == 28 or scene == 29 or scene == 35 or scene == 36 or scene == 37 then return end
|
||||
mainmemory.write_u16_be(0x11A600, 0)
|
||||
end
|
||||
|
||||
|
@ -1824,13 +1829,15 @@ function main()
|
|||
elseif (curstate == STATE_UNINITIALIZED) then
|
||||
if (frame % 60 == 0) then
|
||||
server:settimeout(2)
|
||||
print("Attempting to connect")
|
||||
local client, timeout = server:accept()
|
||||
if timeout == nil then
|
||||
print('Initial Connection Made')
|
||||
curstate = STATE_INITIAL_CONNECTION_MADE
|
||||
ootSocket = client
|
||||
ootSocket:settimeout(0)
|
||||
else
|
||||
print('Connection failed, ensure OoTClient is running and rerun oot_connector.lua')
|
||||
return
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -51,20 +51,20 @@ known_logic_tricks = {
|
|||
Can be reached by side-hopping off
|
||||
the watchtower.
|
||||
'''},
|
||||
'Dodongo\'s Cavern Staircase with Bow': {
|
||||
"Dodongo's Cavern Staircase with Bow": {
|
||||
'name' : 'logic_dc_staircase',
|
||||
'tags' : ("Dodongo's Cavern",),
|
||||
'tooltip' : '''\
|
||||
The Bow can be used to knock down the stairs
|
||||
with two well-timed shots.
|
||||
'''},
|
||||
'Dodongo\'s Cavern Spike Trap Room Jump without Hover Boots': {
|
||||
"Dodongo's Cavern Spike Trap Room Jump without Hover Boots": {
|
||||
'name' : 'logic_dc_jump',
|
||||
'tags' : ("Dodongo's Cavern",),
|
||||
'tooltip' : '''\
|
||||
Jump is adult only.
|
||||
'''},
|
||||
'Dodongo\'s Cavern Vines GS from Below with Longshot': {
|
||||
"Dodongo's Cavern Vines GS from Below with Longshot": {
|
||||
'name' : 'logic_dc_vines_gs',
|
||||
'tags' : ("Dodongo's Cavern", "Skulltulas",),
|
||||
'tooltip' : '''\
|
||||
|
@ -73,7 +73,7 @@ known_logic_tricks = {
|
|||
from below, by shooting it through the vines,
|
||||
bypassing the need to lower the staircase.
|
||||
'''},
|
||||
'Thieves\' Hideout "Kitchen" with No Additional Items': {
|
||||
'''Thieves' Hideout "Kitchen" with No Additional Items''': {
|
||||
'name' : 'logic_gerudo_kitchen',
|
||||
'tags' : ("Thieves' Hideout", "Gerudo's Fortress"),
|
||||
'tooltip' : '''\
|
||||
|
@ -157,7 +157,7 @@ known_logic_tricks = {
|
|||
Can jump up to the spinning platform from
|
||||
below as adult.
|
||||
'''},
|
||||
'Crater\'s Bean PoH with Hover Boots': {
|
||||
"Crater's Bean PoH with Hover Boots": {
|
||||
'name' : 'logic_crater_bean_poh_with_hovers',
|
||||
'tags' : ("Death Mountain Crater",),
|
||||
'tooltip' : '''\
|
||||
|
@ -165,7 +165,7 @@ known_logic_tricks = {
|
|||
near Goron City and walk up the
|
||||
very steep slope.
|
||||
'''},
|
||||
'Zora\'s Domain Entry with Cucco': {
|
||||
"Zora's Domain Entry with Cucco": {
|
||||
'name' : 'logic_zora_with_cucco',
|
||||
'tags' : ("Zora's River",),
|
||||
'tooltip' : '''\
|
||||
|
@ -404,7 +404,7 @@ known_logic_tricks = {
|
|||
Longshot can be shot through the ceiling to obtain
|
||||
the token with two fewer small keys than normal.
|
||||
'''},
|
||||
'Zora\'s River Lower Freestanding PoH as Adult with Nothing': {
|
||||
"Zora's River Lower Freestanding PoH as Adult with Nothing": {
|
||||
'name' : 'logic_zora_river_lower',
|
||||
'tags' : ("Zora's River",),
|
||||
'tooltip' : '''\
|
||||
|
@ -502,7 +502,7 @@ known_logic_tricks = {
|
|||
you can get enough of a break to take some time
|
||||
to aim more carefully.
|
||||
'''},
|
||||
'Dodongo\'s Cavern Scarecrow GS with Armos Statue': {
|
||||
"Dodongo's Cavern Scarecrow GS with Armos Statue": {
|
||||
'name' : 'logic_dc_scarecrow_gs',
|
||||
'tags' : ("Dodongo's Cavern", "Skulltulas",),
|
||||
'tooltip' : '''\
|
||||
|
@ -541,7 +541,7 @@ known_logic_tricks = {
|
|||
'name' : 'logic_spirit_mq_lower_adult',
|
||||
'tags' : ("Spirit Temple",),
|
||||
'tooltip' : '''\
|
||||
It can be done with Din\'s Fire and Bow.
|
||||
It can be done with Din's Fire and Bow.
|
||||
Whenever an arrow passes through a lit torch, it
|
||||
resets the timer. It's finicky but it's also
|
||||
possible to stand on the pillar next to the center
|
||||
|
@ -704,13 +704,13 @@ known_logic_tricks = {
|
|||
in the same jump in order to destroy it before you
|
||||
fall into the lava.
|
||||
'''},
|
||||
'Zora\'s Domain Entry with Hover Boots': {
|
||||
"Zora's Domain Entry with Hover Boots": {
|
||||
'name' : 'logic_zora_with_hovers',
|
||||
'tags' : ("Zora's River",),
|
||||
'tooltip' : '''\
|
||||
Can hover behind the waterfall as adult.
|
||||
'''},
|
||||
'Zora\'s Domain GS with No Additional Items': {
|
||||
"Zora's Domain GS with No Additional Items": {
|
||||
'name' : 'logic_domain_gs',
|
||||
'tags' : ("Zora's Domain", "Skulltulas",),
|
||||
'tooltip' : '''\
|
||||
|
@ -736,7 +736,7 @@ known_logic_tricks = {
|
|||
needing a Bow.
|
||||
Applies in both vanilla and MQ Shadow.
|
||||
'''},
|
||||
'Stop Link the Goron with Din\'s Fire': {
|
||||
"Stop Link the Goron with Din's Fire": {
|
||||
'name' : 'logic_link_goron_dins',
|
||||
'tags' : ("Goron City",),
|
||||
'tooltip' : '''\
|
||||
|
@ -825,7 +825,7 @@ known_logic_tricks = {
|
|||
Link will not be expected to do anything at Gerudo's
|
||||
Fortress.
|
||||
'''},
|
||||
'Zora\'s River Upper Freestanding PoH as Adult with Nothing': {
|
||||
"Zora's River Upper Freestanding PoH as Adult with Nothing": {
|
||||
'name' : 'logic_zora_river_upper',
|
||||
'tags' : ("Zora's River",),
|
||||
'tooltip' : '''\
|
||||
|
@ -971,7 +971,7 @@ known_logic_tricks = {
|
|||
in the Water Temple are not going to be relevant unless this
|
||||
trick is first enabled.
|
||||
'''},
|
||||
'Water Temple Central Pillar GS with Farore\'s Wind': {
|
||||
"Water Temple Central Pillar GS with Farore's Wind": {
|
||||
'name' : 'logic_water_central_gs_fw',
|
||||
'tags' : ("Water Temple", "Skulltulas",),
|
||||
'tooltip' : '''\
|
||||
|
@ -1104,7 +1104,7 @@ known_logic_tricks = {
|
|||
this allows you to obtain the GS on the door frame
|
||||
as adult without Hookshot or Song of Time.
|
||||
'''},
|
||||
'Dodongo\'s Cavern MQ Early Bomb Bag Area as Child': {
|
||||
"Dodongo's Cavern MQ Early Bomb Bag Area as Child": {
|
||||
'name' : 'logic_dc_mq_child_bombs',
|
||||
'tags' : ("Dodongo's Cavern",),
|
||||
'tooltip' : '''\
|
||||
|
@ -1113,7 +1113,7 @@ known_logic_tricks = {
|
|||
without needing a Slingshot. You will
|
||||
take fall damage.
|
||||
'''},
|
||||
'Dodongo\'s Cavern Two Scrub Room with Strength': {
|
||||
"Dodongo's Cavern Two Scrub Room with Strength": {
|
||||
'name' : 'logic_dc_scrub_room',
|
||||
'tags' : ("Dodongo's Cavern",),
|
||||
'tooltip' : '''\
|
||||
|
@ -1122,7 +1122,7 @@ known_logic_tricks = {
|
|||
destroy the mud wall blocking the room with two
|
||||
Deku Scrubs.
|
||||
'''},
|
||||
'Dodongo\'s Cavern Child Slingshot Skips': {
|
||||
"Dodongo's Cavern Child Slingshot Skips": {
|
||||
'name' : 'logic_dc_slingshot_skip',
|
||||
'tags' : ("Dodongo's Cavern",),
|
||||
'tooltip' : '''\
|
||||
|
@ -1132,7 +1132,7 @@ known_logic_tricks = {
|
|||
you also enable the Adult variant: "Dodongo's
|
||||
Cavern Spike Trap Room Jump without Hover Boots".
|
||||
'''},
|
||||
'Dodongo\'s Cavern MQ Light the Eyes with Strength': {
|
||||
"Dodongo's Cavern MQ Light the Eyes with Strength": {
|
||||
'name' : 'logic_dc_mq_eyes',
|
||||
'tags' : ("Dodongo's Cavern",),
|
||||
'tooltip' : '''\
|
||||
|
@ -1145,7 +1145,7 @@ known_logic_tricks = {
|
|||
Also, the bombable floor before King Dodongo can be
|
||||
destroyed with Hammer if hit in the very center.
|
||||
'''},
|
||||
'Dodongo\'s Cavern MQ Back Areas as Child without Explosives': {
|
||||
"Dodongo's Cavern MQ Back Areas as Child without Explosives": {
|
||||
'name' : 'logic_dc_mq_child_back',
|
||||
'tags' : ("Dodongo's Cavern",),
|
||||
'tooltip' : '''\
|
||||
|
@ -1232,7 +1232,7 @@ known_logic_tricks = {
|
|||
It can also be done as child, using the
|
||||
Slingshot instead of the Bow.
|
||||
'''},
|
||||
'Fire Temple East Tower without Scarecrow\'s Song': {
|
||||
"Fire Temple East Tower without Scarecrow's Song": {
|
||||
'name' : 'logic_fire_scarecrow',
|
||||
'tags' : ("Fire Temple",),
|
||||
'tooltip' : '''\
|
||||
|
@ -1277,14 +1277,14 @@ known_logic_tricks = {
|
|||
Removes the requirements for the Lens of Truth
|
||||
in Bottom of the Well.
|
||||
'''},
|
||||
'Ganon\'s Castle MQ without Lens of Truth': {
|
||||
"Ganon's Castle MQ without Lens of Truth": {
|
||||
'name' : 'logic_lens_castle_mq',
|
||||
'tags' : ("Lens of Truth","Ganon's Castle",),
|
||||
'tooltip' : '''\
|
||||
Removes the requirements for the Lens of Truth
|
||||
in Ganon's Castle MQ.
|
||||
'''},
|
||||
'Ganon\'s Castle without Lens of Truth': {
|
||||
"Ganon's Castle without Lens of Truth": {
|
||||
'name' : 'logic_lens_castle',
|
||||
'tags' : ("Lens of Truth","Ganon's Castle",),
|
||||
'tooltip' : '''\
|
||||
|
|
Loading…
Reference in New Issue