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_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()
|
||||
SetRandomSeed(5, 5)
|
||||
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 )
|
||||
done = true
|
||||
async(function()
|
||||
wait(180)
|
||||
wait(300)
|
||||
if not ctx.run_ended then
|
||||
GameSetCameraFree(true)
|
||||
ctx.run_ended = true
|
||||
GameTriggerGameOver()
|
||||
for _, data in pairs(ctx.players) do
|
||||
EntityKill(data.entity)
|
||||
end
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
@ -156,38 +198,7 @@ function end_fight.on_world_update()
|
|||
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
|
||||
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)
|
||||
remove_stuff(entity)
|
||||
end
|
||||
::continue::
|
||||
end
|
||||
|
|
|
@ -189,17 +189,17 @@ local function do_game_over(message)
|
|||
set_camera_free(true, ctx.my_player.entity)
|
||||
if damage_model ~= nil and #(EntityGetAllChildren(ctx.my_player.entity) or {}) ~= 0 then
|
||||
local ent = end_poly_effect(ctx.my_player.entity)
|
||||
polymorph.switch_entity(ent)
|
||||
if ctx.my_player.entity ~= nil then
|
||||
ComponentSetValue2(damage_model, "wait_for_kill_flag_on_death", false)
|
||||
EntityInflictDamage(ctx.my_player.entity, 1000000, "DAMAGE_CURSE", message, "NONE", 0, 0, GameGetWorldStateEntity())
|
||||
GameTriggerGameOver()
|
||||
EntityKill(ctx.my_player.entity)
|
||||
else
|
||||
GameTriggerGameOver()
|
||||
if ent ~= nil then
|
||||
polymorph.switch_entity(ent)
|
||||
if ctx.my_player.entity ~= nil then
|
||||
ComponentSetValue2(damage_model, "wait_for_kill_flag_on_death", false)
|
||||
EntityInflictDamage(ctx.my_player.entity, 1000000, "DAMAGE_CURSE", message, "NONE", 0, 0, GameGetWorldStateEntity())
|
||||
end
|
||||
end
|
||||
else
|
||||
GameTriggerGameOver()
|
||||
end
|
||||
GameTriggerGameOver()
|
||||
for _, data in pairs(ctx.players) do
|
||||
EntityKill(data.entity)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -369,38 +369,6 @@ rpc.opts_reliable()
|
|||
rpc.opts_everywhere()
|
||||
function rpc.trigger_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
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue