Consistency/data/entities/animals/boss_alchemist/key_music.lua

64 lines
1.9 KiB
Lua

dofile_once("data/scripts/lib/utilities.lua")
local entity_id = GetUpdatedEntityID()
local x, y = EntityGetTransform( GetUpdatedEntityID() )
local radius = 96
local status = 0
local scomp = 0
local s = EntityGetComponent( entity_id, "VariableStorageComponent" )
if ( s ~= nil ) then
for i,v in ipairs( s ) do
local name = ComponentGetValue2( v, "name" )
if ( name == "music_machine" ) then
status = ComponentGetValue2( v, "value_int" )
scomp = v
end
end
end
local targets = EntityGetInRadiusWithTag( x, y, radius, "musicmachine" )
local mm = { "musicmachine1", "musicmachine2", "musicmachine3", "musicmachine4" }
for i,v in ipairs( targets ) do
local tags = EntityGetTags( v )
local mm_id = 0
local mm_flag = ""
if ( tags ~= nil ) then
for a,b in ipairs( mm ) do
if ( string.find( tags, b ) ~= nil ) then
mm_id = a
mm_flag = b
break
end
end
if ( mm_id > 0 ) then
if GameHasFlagRun( mm_flag ) and ( GameHasFlagRun( mm_flag .. "_done" ) == false ) then
GameAddFlagRun( mm_flag .. "_done" )
status = status + 1
local desc_text = "$itemdesc_alchemy_key_musicbox_" .. tostring( math.min( math.max( status, 1 ), 4 ) )
edit_component( entity_id, "ItemComponent", function(comp,vars)
ComponentSetValue2( comp, "ui_description", desc_text )
end)
if ( status < 4 ) then
EntityLoadToEntity( "data/entities/animals/boss_alchemist/key_particles_first_alt.xml", entity_id )
GamePrintImportant( "$log_alchemist_key_alt_first", "$logdesc_alchemist_key_alt_first" )
else
EntityLoadToEntity( "data/entities/animals/boss_alchemist/key_particles_second_alt.xml", entity_id )
GamePrintImportant( "$log_alchemist_key_alt_second", "$logdesc_alchemist_key_alt_second" )
end
end
end
end
end
if ( scomp ~= nil ) and ( scomp ~= 0 ) then
ComponentSetValue2( scomp, "value_int", status )
end