mirror of
https://github.com/IntQuant/noita_entangled_worlds.git
synced 2025-10-19 15:13:16 +00:00
fix cameras on death/end_fight and probably crashes on death/end_fight
This commit is contained in:
parent
c180a5d328
commit
40076e33d0
2 changed files with 54 additions and 75 deletions
|
@ -13,6 +13,44 @@ 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_sand.xml", "<Entity/>")
|
||||||
ModTextFileSetContent("data/entities/animals/boss_centipede/ending/midas_chunks.xml", "<Entity/>")
|
ModTextFileSetContent("data/entities/animals/boss_centipede/ending/midas_chunks.xml", "<Entity/>")
|
||||||
|
|
||||||
|
local function remove_stuff(entity)
|
||||||
|
for _, com in ipairs(EntityGetComponent(entity, "SpriteComponent") or {}) do
|
||||||
|
EntitySetComponentIsEnabled(entity, com, false)
|
||||||
|
end
|
||||||
|
EntityRemoveTag(entity, "ew_peer")
|
||||||
|
EntityRemoveTag(entity, "ew_client")
|
||||||
|
EntityRemoveTag(entity, "mortal")
|
||||||
|
EntityRemoveTag(entity, "homing_target")
|
||||||
|
EntityRemoveTag(entity, "hittable")
|
||||||
|
local collision = EntityGetFirstComponentIncludingDisabled(entity, "PlayerCollisionComponent")
|
||||||
|
local suck = EntityGetFirstComponentIncludingDisabled(entity, "MaterialSuckerComponent")
|
||||||
|
local gui = EntityGetFirstComponentIncludingDisabled(entity, "InventoryGuiComponent")
|
||||||
|
local damage = EntityGetFirstComponentIncludingDisabled(entity, "DamageModelComponent")
|
||||||
|
local genome = EntityGetFirstComponentIncludingDisabled(entity, "GenomeDataComponent")
|
||||||
|
local status = EntityGetFirstComponentIncludingDisabled(entity, "StatusEffectDataComponent")
|
||||||
|
if gui ~= nil then
|
||||||
|
EntitySetComponentIsEnabled(entity, gui, false)
|
||||||
|
end
|
||||||
|
if suck ~= nil then
|
||||||
|
EntitySetComponentIsEnabled(entity, suck, false)
|
||||||
|
end
|
||||||
|
if collision ~= nil then
|
||||||
|
EntitySetComponentIsEnabled(entity, collision, false)
|
||||||
|
end
|
||||||
|
if damage ~= nil then
|
||||||
|
EntitySetComponentIsEnabled(entity, damage, false)
|
||||||
|
end
|
||||||
|
if genome ~= nil then
|
||||||
|
EntitySetComponentIsEnabled(entity, genome, false)
|
||||||
|
end
|
||||||
|
if status ~= nil then
|
||||||
|
EntitySetComponentIsEnabled(entity, status, false)
|
||||||
|
end
|
||||||
|
for _, child in ipairs(EntityGetAllChildren(entity) or {}) do
|
||||||
|
EntityKill(child)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
local function teleport_random()
|
local function teleport_random()
|
||||||
SetRandomSeed(5, 5)
|
SetRandomSeed(5, 5)
|
||||||
local my_num = Random(1,100)
|
local my_num = Random(1,100)
|
||||||
|
@ -53,10 +91,14 @@ function rpc.try_kill(x, y)
|
||||||
EntityLoad("mods/quant.ew/files/system/end_fight/gold_effect.xml", x, y )
|
EntityLoad("mods/quant.ew/files/system/end_fight/gold_effect.xml", x, y )
|
||||||
done = true
|
done = true
|
||||||
async(function()
|
async(function()
|
||||||
wait(180)
|
wait(300)
|
||||||
if not ctx.run_ended then
|
if not ctx.run_ended then
|
||||||
|
GameSetCameraFree(true)
|
||||||
ctx.run_ended = true
|
ctx.run_ended = true
|
||||||
GameTriggerGameOver()
|
GameTriggerGameOver()
|
||||||
|
for _, data in pairs(ctx.players) do
|
||||||
|
EntityKill(data.entity)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
|
@ -156,38 +198,7 @@ function end_fight.on_world_update()
|
||||||
EntitySetComponentsWithTagEnabled(entity, "health_bar", false)
|
EntitySetComponentsWithTagEnabled(entity, "health_bar", false)
|
||||||
EntitySetComponentsWithTagEnabled(entity, "health_bar_back", false)
|
EntitySetComponentsWithTagEnabled(entity, "health_bar_back", false)
|
||||||
if EntityHasTag(entity, "ew_notplayer") then
|
if EntityHasTag(entity, "ew_notplayer") then
|
||||||
for _, com in ipairs(EntityGetComponent(entity, "SpriteComponent") or {}) do
|
remove_stuff(entity)
|
||||||
EntitySetComponentIsEnabled(entity, com, false)
|
|
||||||
end
|
|
||||||
EntityRemoveTag(entity, "ew_peer")
|
|
||||||
EntityRemoveTag(entity, "ew_client")
|
|
||||||
EntityRemoveTag(entity, "mortal")
|
|
||||||
EntityRemoveTag(entity, "homing_target")
|
|
||||||
EntityRemoveTag(entity, "hittable")
|
|
||||||
local collision = EntityGetFirstComponentIncludingDisabled(entity, "PlayerCollisionComponent")
|
|
||||||
local suck = EntityGetFirstComponentIncludingDisabled(entity, "MaterialSuckerComponent")
|
|
||||||
local gui = EntityGetFirstComponentIncludingDisabled(entity, "InventoryGuiComponent")
|
|
||||||
local damage = EntityGetFirstComponentIncludingDisabled(entity, "DamageModelComponent")
|
|
||||||
local genome = EntityGetFirstComponentIncludingDisabled(entity, "GenomeDataComponent")
|
|
||||||
if gui ~= nil then
|
|
||||||
EntitySetComponentIsEnabled(entity, gui, false)
|
|
||||||
end
|
|
||||||
if suck ~= nil then
|
|
||||||
EntitySetComponentIsEnabled(entity, suck, false)
|
|
||||||
end
|
|
||||||
if collision ~= nil then
|
|
||||||
EntitySetComponentIsEnabled(entity, collision, false)
|
|
||||||
end
|
|
||||||
if damage ~= nil then
|
|
||||||
EntitySetComponentIsEnabled(entity, damage, false)
|
|
||||||
end
|
|
||||||
if genome ~= nil then
|
|
||||||
EntitySetComponentIsEnabled(entity, genome, false)
|
|
||||||
end
|
|
||||||
for _, child in ipairs(EntityGetAllChildren(entity) or {}) do
|
|
||||||
EntityKill(child)
|
|
||||||
end
|
|
||||||
remove_status(entity)
|
|
||||||
end
|
end
|
||||||
::continue::
|
::continue::
|
||||||
end
|
end
|
||||||
|
|
|
@ -189,17 +189,17 @@ local function do_game_over(message)
|
||||||
set_camera_free(true, ctx.my_player.entity)
|
set_camera_free(true, ctx.my_player.entity)
|
||||||
if damage_model ~= nil and #(EntityGetAllChildren(ctx.my_player.entity) or {}) ~= 0 then
|
if damage_model ~= nil and #(EntityGetAllChildren(ctx.my_player.entity) or {}) ~= 0 then
|
||||||
local ent = end_poly_effect(ctx.my_player.entity)
|
local ent = end_poly_effect(ctx.my_player.entity)
|
||||||
polymorph.switch_entity(ent)
|
if ent ~= nil then
|
||||||
if ctx.my_player.entity ~= nil then
|
polymorph.switch_entity(ent)
|
||||||
ComponentSetValue2(damage_model, "wait_for_kill_flag_on_death", false)
|
if ctx.my_player.entity ~= nil then
|
||||||
EntityInflictDamage(ctx.my_player.entity, 1000000, "DAMAGE_CURSE", message, "NONE", 0, 0, GameGetWorldStateEntity())
|
ComponentSetValue2(damage_model, "wait_for_kill_flag_on_death", false)
|
||||||
GameTriggerGameOver()
|
EntityInflictDamage(ctx.my_player.entity, 1000000, "DAMAGE_CURSE", message, "NONE", 0, 0, GameGetWorldStateEntity())
|
||||||
EntityKill(ctx.my_player.entity)
|
end
|
||||||
else
|
|
||||||
GameTriggerGameOver()
|
|
||||||
end
|
end
|
||||||
else
|
end
|
||||||
GameTriggerGameOver()
|
GameTriggerGameOver()
|
||||||
|
for _, data in pairs(ctx.players) do
|
||||||
|
EntityKill(data.entity)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -369,38 +369,6 @@ rpc.opts_reliable()
|
||||||
rpc.opts_everywhere()
|
rpc.opts_everywhere()
|
||||||
function rpc.trigger_game_over(message)
|
function rpc.trigger_game_over(message)
|
||||||
do_game_over(message)
|
do_game_over(message)
|
||||||
for _, player_data in pairs(ctx.players) do
|
|
||||||
local entity = player_data.entity
|
|
||||||
if entity ~= nil and EntityGetIsAlive(entity) then
|
|
||||||
EntitySetComponentsWithTagEnabled(entity, "health_bar", false)
|
|
||||||
EntitySetComponentsWithTagEnabled(entity, "health_bar_back", false)
|
|
||||||
if EntityHasTag(entity, "ew_notplayer") then
|
|
||||||
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
|
|
||||||
if EntityGetFirstComponent(entity, "StatusEffectDataComponent") ~= nil then
|
|
||||||
for _, effect in pairs(status_effects) do
|
|
||||||
if EntityGetIsAlive(entity) then
|
|
||||||
EntityRemoveStainStatusEffect(entity, effect.id)
|
|
||||||
EntityRemoveIngestionStatusEffect(entity, effect.id)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
local damage_model = EntityGetFirstComponentIncludingDisabled(entity, "DamageModelComponent")
|
|
||||||
if damage_model ~= nil then
|
|
||||||
ComponentSetValue2(damage_model, "mFireProbability", 0)
|
|
||||||
ComponentSetValue2(damage_model, "mFireFramesLeft", 0)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue