fix some more issues with end fight, dont allow player collision/material sucker after game ends, fix a notpalyer error

This commit is contained in:
bgkillas 2024-09-27 16:51:35 -04:00
parent 98a95cb5b6
commit 6898506b51
7 changed files with 115 additions and 125 deletions

45
ewext/Cargo.lock generated
View file

@ -4,41 +4,32 @@ version = 3
[[package]]
name = "addr2line"
version = "0.22.0"
version = "0.24.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678"
checksum = "f5fb1d8e4442bd405fdfd1dacb42792696b0cf9cb15882e5d097b742a676d375"
dependencies = [
"gimli",
]
[[package]]
name = "adler"
version = "1.0.2"
name = "adler2"
version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627"
[[package]]
name = "backtrace"
version = "0.3.73"
version = "0.3.74"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a"
checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a"
dependencies = [
"addr2line",
"cc",
"cfg-if",
"libc",
"miniz_oxide",
"object",
"rustc-demangle",
]
[[package]]
name = "cc"
version = "1.1.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b62ac837cdb5cb22e10a256099b4fc502b1dfe560cb282963a974d7abd80e476"
dependencies = [
"shlex",
"windows-targets",
]
[[package]]
@ -57,15 +48,15 @@ dependencies = [
[[package]]
name = "gimli"
version = "0.29.0"
version = "0.31.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd"
checksum = "32085ea23f3234fc7846555e85283ba4de91e21016dc0455a16286d87a292d64"
[[package]]
name = "libc"
version = "0.2.158"
version = "0.2.159"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439"
checksum = "561d97a539a36e26a9a5fad1ea11a3039a67714694aaa379433e580854bc3dc5"
[[package]]
name = "libloading"
@ -85,11 +76,11 @@ checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
[[package]]
name = "miniz_oxide"
version = "0.7.4"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08"
checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1"
dependencies = [
"adler",
"adler2",
]
[[package]]
@ -107,12 +98,6 @@ version = "0.1.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f"
[[package]]
name = "shlex"
version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
[[package]]
name = "windows-targets"
version = "0.52.6"

View file

@ -12,4 +12,4 @@ crate-type = ["cdylib"]
[dependencies]
libloading = "0.8.5"
backtrace = "0.3"
backtrace = "0.3.74"

47
noita-proxy/Cargo.lock generated
View file

@ -37,12 +37,6 @@ dependencies = [
"gimli",
]
[[package]]
name = "adler"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
[[package]]
name = "adler2"
version = "2.0.0"
@ -191,9 +185,9 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
[[package]]
name = "autocfg"
version = "1.3.0"
version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26"
[[package]]
name = "backtrace"
@ -204,7 +198,7 @@ dependencies = [
"addr2line",
"cfg-if",
"libc",
"miniz_oxide 0.8.0",
"miniz_oxide",
"object",
"rustc-demangle",
"windows-targets 0.52.6",
@ -442,9 +436,9 @@ dependencies = [
[[package]]
name = "cc"
version = "1.1.21"
version = "1.1.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "07b1695e2c7e8fc85310cde85aeaab7e3097f593c91d209d3f9df76c928100f0"
checksum = "9540e661f81799159abee814118cc139a2004b3a3aa3ea37724a1b66530b90e0"
dependencies = [
"jobserver",
"libc",
@ -1099,12 +1093,12 @@ dependencies = [
[[package]]
name = "flate2"
version = "1.0.33"
version = "1.0.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "324a1be68054ef05ad64b861cc9eaf1d623d2d8cb25b4bf2cb9cdd902b4bf253"
checksum = "a1b589b4dc103969ad3cf85c950899926ec64300a1a46d76c03a6072957036f0"
dependencies = [
"crc32fast",
"miniz_oxide 0.8.0",
"miniz_oxide",
]
[[package]]
@ -1932,16 +1926,6 @@ dependencies = [
"unicase",
]
[[package]]
name = "miniz_oxide"
version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08"
dependencies = [
"adler",
"simd-adler32",
]
[[package]]
name = "miniz_oxide"
version = "0.8.0"
@ -1949,6 +1933,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1"
dependencies = [
"adler2",
"simd-adler32",
]
[[package]]
@ -2378,15 +2363,15 @@ checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2"
[[package]]
name = "png"
version = "0.17.13"
version = "0.17.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1"
checksum = "52f9d46a34a05a6a57566bc2bfae066ef07585a6e3fa30fbbdff5936380623f0"
dependencies = [
"bitflags 1.3.2",
"crc32fast",
"fdeflate",
"flate2",
"miniz_oxide 0.7.4",
"miniz_oxide",
]
[[package]]
@ -2855,9 +2840,9 @@ dependencies = [
[[package]]
name = "rustls-pki-types"
version = "1.8.0"
version = "1.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0"
checksum = "0e696e35370c65c9c541198af4543ccd580cf17fc25d8e05c5a242b202488c55"
[[package]]
name = "rustls-platform-verifier"
@ -3245,9 +3230,9 @@ dependencies = [
[[package]]
name = "syn"
version = "2.0.77"
version = "2.0.79"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed"
checksum = "89132cd0bf050864e1d38dc3bbc07a0eb8e7530af26344d3d2bbbef83499f590"
dependencies = [
"proc-macro2",
"quote",

View file

@ -11,6 +11,8 @@ ModTextFileSetContent("data/entities/animals/boss_centipede/ending/gold_effect.x
ModTextFileSetContent("data/entities/animals/boss_centipede/ending/midas_sand.xml", "<Entity/>")
ModTextFileSetContent("data/entities/animals/boss_centipede/ending/midas_chunks.xml", "<Entity/>")
local dont_effect = {}
local function teleport_random()
SetRandomSeed(5, 5)
local my_num = Random(1,100)
@ -49,6 +51,7 @@ end
rpc.opts_everywhere()
function rpc.try_kill(x, y)
EntityLoad("mods/quant.ew/files/system/end_fight/gold_effect.xml", x, y )
done = true
end
function end_fight.on_world_update()
@ -98,24 +101,33 @@ function end_fight.on_world_update()
local x, y = EntityGetTransform(ctx.my_player.entity)
rpc.try_kill(x, y)
done = true
return
elseif try_kill == -1 then
try_kill = GameGetFrameNum() + 180
end
else
try_kill = -1
end
for _, player_data in pairs(ctx.players) do
local entity = player_data.entity
EntitySetComponentsWithTagEnabled(entity, "health_bar", false)
EntitySetComponentsWithTagEnabled(entity, "health_bar_back", false)
if EntityHasTag(entity, "ew_notplayer") then
end
for _, player_data in pairs(ctx.players) do
local entity = player_data.entity
EntitySetComponentsWithTagEnabled(entity, "health_bar", false)
EntitySetComponentsWithTagEnabled(entity, "health_bar_back", false)
if EntityHasTag(entity, "ew_notplayer") and not table.contains(dont_effect, entity) then
table.insert(dont_effect, entity)
async(function()
wait(2)
for _, com in ipairs(EntityGetComponent(entity, "SpriteComponent") or {}) do
EntitySetComponentIsEnabled(entity, com, false)
end
local collision = EntityGetFirstComponentIncludingDisabled(entity, "PlayerCollisionComponent")
local suck = EntityGetFirstComponentIncludingDisabled(entity, "MaterialSuckerComponent")
EntitySetComponentIsEnabled(entity, suck, false)
EntitySetComponentIsEnabled(entity, collision, false)
for _, child in ipairs(EntityGetAllChildren(entity) or {}) do
EntityKill(child)
end
end
end)
end
end
end

View file

@ -309,6 +309,10 @@ function rpc.trigger_game_over(message)
for _, com in ipairs(EntityGetComponent(entity, "SpriteComponent") or {}) do
EntitySetComponentIsEnabled(entity, com, false)
end
local suck = EntityGetFirstComponentIncludingDisabled(entity, "MaterialSuckerComponent")
local collision = EntityGetFirstComponentIncludingDisabled(entity, "PlayerCollisionComponent")
EntitySetComponentIsEnabled(entity, suck, false)
EntitySetComponentIsEnabled(entity, collision, false)
for _, child in ipairs(EntityGetAllChildren(entity) or {}) do
EntityKill(child)
end

View file

@ -1,5 +1,6 @@
local ctx = dofile_once("mods/quant.ew/files/core/ctx.lua")
local wandfinder = dofile_once("mods/quant.ew/files/system/notplayer_ai/wandfinder.lua")
dofile_once("mods/quant.ew/files/system/player_tether/player_tether.lua")
local MAX_RADIUS = 128*4
@ -208,6 +209,9 @@ end
local function has_ambrosia(entity)
local com = EntityGetFirstComponentIncludingDisabled(entity, "StatusEffectDataComponent")
if com == nil then
return
end
local stains = ComponentGetValue2(com, "stain_effects")
return stains ~= nil and stains[24] ~= nil and stains[24] >= 0.15
end
@ -622,62 +626,6 @@ local function is_in_box(x1, x2, y1, y2, x, y)
return x1 < x and x < x2 and y1 < y and y < y2
end
local function position_to_area_number(x, y)
if np.GetGameModeNr() == 2 then
if y < 1199 then
return 1
elseif y < 3759 then
return 2
elseif y < 6319 then
return 3
elseif y < 10415 then
return 4
elseif y < 12975 and (x < 2726 or x > 4135 or y < 12800) then
return 5
elseif is_in_box(5632, 7168, 14336, 15872, x, y) then
return 10
else
return 6
end
elseif tonumber(SessionNumbersGetValue("NEW_GAME_PLUS_COUNT")) > 0 then
if y < 1199 then
return 1
elseif y < 2735 then
return 2
elseif y < 6319 then
return 3
elseif y < 10415 then
return 4
elseif y < 12975 and (x < 2726 or x > 4135 or y < 12800) then
return 5
elseif is_in_box(5632, 7168, 14336, 15872, x, y) then
return 10
else
return 6
end
else
if y < 1199 then
return 1
elseif y < 2735 then
return 2
elseif y < 4783 then
return 3
elseif y < 6319 then
return 4
elseif y < 8367 then
return 5
elseif y < 10415 then
return 6
elseif y < 12975 and (x < 2726 or x > 4135 or y < 12800) then
return 7
elseif is_in_box(5632, 7168, 14336, 15872, x, y) then
return 10
else
return 8
end
end
end
local function teleport_to_area(area)
async(function()
if np.GetGameModeNr() == 2 then

View file

@ -6,7 +6,63 @@ local tether_length_2 = tether_length + 128
local module = {}
local function is_in_box(x1, x2, y1, y2, x, y)
function position_to_area_number(x, y)
if np.GetGameModeNr() == 2 then
if y < 1199 then
return 1
elseif y < 3759 then
return 2
elseif y < 6319 then
return 3
elseif y < 10415 then
return 4
elseif y < 12975 and (x < 2726 or x > 4135 or y < 12800) then
return 5
elseif is_in_box(5632, 7168, 14336, 15872, x, y) then
return 10
else
return 6
end
elseif tonumber(SessionNumbersGetValue("NEW_GAME_PLUS_COUNT")) > 0 then
if y < 1199 then
return 1
elseif y < 2735 then
return 2
elseif y < 6319 then
return 3
elseif y < 10415 then
return 4
elseif y < 12975 and (x < 2726 or x > 4135 or y < 12800) then
return 5
elseif is_in_box(5632, 7168, 14336, 15872, x, y) then
return 10
else
return 6
end
else
if y < 1199 then
return 1
elseif y < 2735 then
return 2
elseif y < 4783 then
return 3
elseif y < 6319 then
return 4
elseif y < 8367 then
return 5
elseif y < 10415 then
return 6
elseif y < 12975 and (x < 2726 or x > 4135 or y < 12800) then
return 7
elseif is_in_box(5632, 7168, 14336, 15872, x, y) then
return 10
else
return 8
end
end
end
function is_in_box(x1, x2, y1, y2, x, y)
return x1 < x and x < x2 and y1 < y and y < y2
end