
function CreateCompositionElementP(fileName)
    local element = CreateCompositionElement(fileName);
    local anim = CreateAnimation('data/Texture/Effect/particles_2.png',32,64,32,32,1,0)
    anim:SetHotSpot(16,16)
	anim:SetBlendMode(0)
	anim:SetColor('0xFFFFFFFF')
	
	local obj = game_state.screen_mini_game:CreateObject(fileName,anim,0,0,900,0,1,1)
	obj:SetVisible(false)
	obj:AddParticleSystem('data/ParticleSystem/Complete.psi', obj:GetAnimationPtr())
	obj:GetParticleSystem():AffectedByParentOpacity(true)
	obj:AttachTo(game_state.screen_mini_game)
	element.particle = obj
		
    return element
end

    createCompositionLevelCompletedAnim = function()
    
        local compositionLevelCompletedAnim = CreateCompositionSequence();
        local compositionDuration = 4;
        compositionLevelCompletedAnim:SetDuration(compositionDuration);
        compositionLevelCompletedAnim.elements = {}
        local obj_effector = CreateAnimationEffector()
    
        -------------------------------------------------------------------------------------------------------
        -- Layer Letter_S_1
        local element = CreateCompositionElementP("data/Texture/Animations/minigame_complete/Letter_S_01.png");
        element:SetName("Letter_S_1");
        compositionLevelCompletedAnim:AddElement(element);
        element:SetHotSpot(32, 32);
        element:SetParentElement(compositionLevelCompletedAnim);
    
        effector = element:GetEffector();
        effector:SetLifeTime(0, 4);
    
        effector:SetKey(_TRACK_X, 0, -174);
        effector:SetKey(_TRACK_Y, 0, 724);
        effector:SetKey(_TRACK_X, 0.121484375, -124);
        effector:SetKey(_TRACK_Y, 0.121484375, 570);
        effector:SetKey(_TRACK_X, 0.21865234375, -36);
        effector:SetKey(_TRACK_Y, 0.21865234375, 432);
        effector:SetKey(_TRACK_X, 0.34010416666667, 72);
        effector:SetKey(_TRACK_Y, 0.34010416666667, 348);
        effector:SetKey(_TRACK_X, 0.46158854166667, 164);
        effector:SetKey(_TRACK_Y, 0.46158854166667, 312);
        effector:SetKey(_TRACK_X, 0.55875651041667, 253);
        effector:SetKey(_TRACK_Y, 0.55875651041667, 312);
        effector:SetKey(_TRACK_X, 0.65592447916667, 316);
        effector:SetKey(_TRACK_Y, 0.65592447916667, 335);
        effector:SetKey(_TRACK_X, 0.72880859375, 368);
        effector:SetKey(_TRACK_Y, 0.72880859375, 375);
        effector:SetKey(_TRACK_X, 2.9, 368);
        effector:SetKey(_TRACK_Y, 2.9, 375);
        effector:SetKey(_TRACK_X, 3.03333333333333, 302.555548258035);
        effector:SetKey(_TRACK_Y, 3.03333333333333, 465.224097684942);
        effector:SetKey(_TRACK_X, 3.23333333333333, 252.887266067095);
        effector:SetKey(_TRACK_Y, 3.23333333333333, 639.133440740801);
        effector:SetKey(_TRACK_X, 3.5, 222);
        effector:SetKey(_TRACK_Y, 3.5, 867);
        effector:SetKey(_TRACK_X, 3.96666666666667, 222);
        effector:SetKey(_TRACK_Y, 3.96666666666667, 867);
        effector:SetKey(_TRACK_SX, 0, 2);
        effector:SetKey(_TRACK_SY, 0, 2);
        effector:SetKey(_TRACK_SX, 0.72880859375, 1);
        effector:SetKey(_TRACK_SY, 0.72880859375, 1);
        effector:SetKey(_TRACK_SX, 0.8, 1.1);
        effector:SetKey(_TRACK_SY, 0.8, 1.1);
        effector:SetKey(_TRACK_SX, 0.9, 1);
        effector:SetKey(_TRACK_SY, 0.9, 1);
        effector:SetKey(_TRACK_SX, 2.06666666666667, 1);
        effector:SetKey(_TRACK_SY, 2.06666666666667, 1);
        effector:SetKey(_TRACK_SX, 2.16666666666667, 1.2);
        effector:SetKey(_TRACK_SY, 2.16666666666667, 1.2);
        effector:SetKey(_TRACK_SX, 2.3, 1);
        effector:SetKey(_TRACK_SY, 2.3, 1);
        effector:SetKey(_TRACK_SX, 3.96666666666667, 1);
        effector:SetKey(_TRACK_SY, 3.96666666666667, 1);
        effector:SetKey(_TRACK_A, 0, -6.2831853);
        effector:SetKey(_TRACK_A, 0.72880859375, 0);
        effector:SetKey(_TRACK_A, 2.9, 0);
        effector:SetKey(_TRACK_A, 3.5, 6.2831853);
        effector:SetKey(_TRACK_A, 3.96666666666667, 6.2831853);
        effector:SetKey(_TRACK_O, 0, 1);
        effector:SetKey(_TRACK_O, 0.72880859375, 1);
        effector:SetKey(_TRACK_O, 3.96666666666667, 1);
        effector:Play();
        
        obj_effector:SetKey(_TRACK_X, 0, -174);
        obj_effector:SetKey(_TRACK_Y, 0, 724);
        obj_effector:SetKey(_TRACK_X, 0.121484375, -124);
        obj_effector:SetKey(_TRACK_Y, 0.121484375, 570);
        obj_effector:SetKey(_TRACK_X, 0.21865234375, -36);
        obj_effector:SetKey(_TRACK_Y, 0.21865234375, 432);
        obj_effector:SetKey(_TRACK_X, 0.34010416666667, 72);
        obj_effector:SetKey(_TRACK_Y, 0.34010416666667, 348);
        obj_effector:SetKey(_TRACK_X, 0.46158854166667, 164);
        obj_effector:SetKey(_TRACK_Y, 0.46158854166667, 312);
        obj_effector:SetKey(_TRACK_X, 0.55875651041667, 253);
        obj_effector:SetKey(_TRACK_Y, 0.55875651041667, 312);
        obj_effector:SetKey(_TRACK_X, 0.65592447916667, 316);
        obj_effector:SetKey(_TRACK_Y, 0.65592447916667, 335);
        obj_effector:SetKey(_TRACK_X, 0.72880859375, 368);
        obj_effector:SetKey(_TRACK_Y, 0.72880859375, 375);
        obj_effector:SetKey(_TRACK_X, 2.9, 368);
        obj_effector:SetKey(_TRACK_Y, 2.9, 375);
        obj_effector:SetKey(_TRACK_X, 3.03333333333333, 302.555548258035);
        obj_effector:SetKey(_TRACK_Y, 3.03333333333333, 465.224097684942);
        obj_effector:SetKey(_TRACK_X, 3.23333333333333, 252.887266067095);
        obj_effector:SetKey(_TRACK_Y, 3.23333333333333, 639.133440740801);
        obj_effector:SetKey(_TRACK_X, 3.5, 222);
        obj_effector:SetKey(_TRACK_Y, 3.5, 867);
        obj_effector:SetKey(_TRACK_X, 3.96666666666667, 222);
        obj_effector:SetKey(_TRACK_Y, 3.96666666666667, 867);
        obj_effector:SetKey(_TRACK_SX, 0, 2);
        obj_effector:SetKey(_TRACK_SY, 0, 2);
        obj_effector:SetKey(_TRACK_SX, 0.72880859375, 1);
        obj_effector:SetKey(_TRACK_SY, 0.72880859375, 1);
        obj_effector:SetKey(_TRACK_SX, 0.8, 1.1);
        obj_effector:SetKey(_TRACK_SY, 0.8, 1.1);
        obj_effector:SetKey(_TRACK_SX, 0.9, 1);
        obj_effector:SetKey(_TRACK_SY, 0.9, 1);
        obj_effector:SetKey(_TRACK_SX, 2.06666666666667, 1);
        obj_effector:SetKey(_TRACK_SY, 2.06666666666667, 1);
        obj_effector:SetKey(_TRACK_SX, 2.16666666666667, 1.2);
        obj_effector:SetKey(_TRACK_SY, 2.16666666666667, 1.2);
        obj_effector:SetKey(_TRACK_SX, 2.3, 1);
        obj_effector:SetKey(_TRACK_SY, 2.3, 1);
        obj_effector:SetKey(_TRACK_SX, 3.96666666666667, 1);
        obj_effector:SetKey(_TRACK_SY, 3.96666666666667, 1);
        obj_effector:SetKey(_TRACK_A, 0, -6.2831853);
        obj_effector:SetKey(_TRACK_A, 0.72880859375, 0);
        obj_effector:SetKey(_TRACK_A, 2.9, 0);
        obj_effector:SetKey(_TRACK_A, 3.5, 6.2831853);
        obj_effector:SetKey(_TRACK_A, 3.96666666666667, 6.2831853);
        obj_effector:SetKey(_TRACK_O, 0, 1);
        obj_effector:SetKey(_TRACK_O, 0.72880859375, 1);
        obj_effector:SetKey(_TRACK_O, 3.96666666666667, 1);
    
        obj_effector:AttachTo(element.particle)
        obj_effector:Play();
        compositionLevelCompletedAnim.elements[1] = element
  
        ------------------------------------------------------------------------------------------------------- 
        -- Layer Letter_U_1
        local element = CreateCompositionElementP("data/Texture/Animations/minigame_complete/Letter_U_01.png");
        element:SetName("Letter_U_1");
        compositionLevelCompletedAnim:AddElement(element);
        element:SetHotSpot(32, 32);
        element:SetParentElement(compositionLevelCompletedAnim);
    
        obj_effector = CreateAnimationEffector()
        effector = element:GetEffector();
        effector:SetLifeTime(0, 4);
    
        effector:SetKey(_TRACK_X, 0.14407552083333, 1169);
        effector:SetKey(_TRACK_Y, 0.14407552083333, 652);
        effector:SetKey(_TRACK_X, 0.26555989583333, 873);
        effector:SetKey(_TRACK_Y, 0.26555989583333, 680);
        effector:SetKey(_TRACK_X, 0.36272786458333, 699);
        effector:SetKey(_TRACK_Y, 0.36272786458333, 672);
        effector:SetKey(_TRACK_X, 0.4841796875, 547);
        effector:SetKey(_TRACK_Y, 0.4841796875, 642);
        effector:SetKey(_TRACK_X, 0.6056640625, 450);
        effector:SetKey(_TRACK_Y, 0.6056640625, 588);
        effector:SetKey(_TRACK_X, 0.70283203125, 397);
        effector:SetKey(_TRACK_Y, 0.70283203125, 501);
        effector:SetKey(_TRACK_X, 0.8, 390);
        effector:SetKey(_TRACK_Y, 0.8, 433);
        effector:SetKey(_TRACK_X, 0.86555989583333, 423);
        effector:SetKey(_TRACK_Y, 0.86555989583333, 377);
        effector:SetKey(_TRACK_X, 3.1, 423);
        effector:SetKey(_TRACK_Y, 3.1, 377);
        effector:SetKey(_TRACK_X, 3.23333333333333, 386);
        effector:SetKey(_TRACK_Y, 3.23333333333333, 504.001063812442);
        effector:SetKey(_TRACK_X, 3.43333333333333, 368.500287620912);
        effector:SetKey(_TRACK_Y, 3.43333333333333, 694.503493615989);
        effector:SetKey(_TRACK_X, 3.63333333333333, 360);
        effector:SetKey(_TRACK_Y, 3.63333333333333, 885);
        effector:SetKey(_TRACK_X, 3.96666666666667, 360);
        effector:SetKey(_TRACK_Y, 3.96666666666667, 885);
        effector:SetKey(_TRACK_SX, 0.14407552083333, 2);
        effector:SetKey(_TRACK_SY, 0.14407552083333, 2);
        effector:SetKey(_TRACK_SX, 0.86555989583333, 1);
        effector:SetKey(_TRACK_SY, 0.86555989583333, 1);
        effector:SetKey(_TRACK_SX, 0.9322265625, 1.1);
        effector:SetKey(_TRACK_SY, 0.9322265625, 1.1);
        effector:SetKey(_TRACK_SX, 1.0322265625, 1);
        effector:SetKey(_TRACK_SY, 1.0322265625, 1);
        effector:SetKey(_TRACK_SX, 2.16666666666667, 1);
        effector:SetKey(_TRACK_SY, 2.16666666666667, 1);
        effector:SetKey(_TRACK_SX, 2.26666666666667, 1.2);
        effector:SetKey(_TRACK_SY, 2.26666666666667, 1.2);
        effector:SetKey(_TRACK_SX, 2.4, 1);
        effector:SetKey(_TRACK_SY, 2.4, 1);
        effector:SetKey(_TRACK_SX, 3.96666666666667, 1);
        effector:SetKey(_TRACK_SY, 3.96666666666667, 1);
        effector:SetKey(_TRACK_A, 0.14407552083333, -6.2831853);
        effector:SetKey(_TRACK_A, 0.86555989583333, 0);
        effector:SetKey(_TRACK_A, 3.1, 0);
        effector:SetKey(_TRACK_A, 3.63333333333333, 6.2831853);
        effector:SetKey(_TRACK_A, 3.96666666666667, 6.2831853);
        effector:SetKey(_TRACK_O, 0.14407552083333, 1);
        effector:SetKey(_TRACK_O, 0.86555989583333, 1);
        effector:SetKey(_TRACK_O, 3.96666666666667, 1);
        effector:Play();
        
        obj_effector:SetKey(_TRACK_X, 0.14407552083333, 1169);
        obj_effector:SetKey(_TRACK_Y, 0.14407552083333, 652);
        obj_effector:SetKey(_TRACK_X, 0.26555989583333, 873);
        obj_effector:SetKey(_TRACK_Y, 0.26555989583333, 680);
        obj_effector:SetKey(_TRACK_X, 0.36272786458333, 699);
        obj_effector:SetKey(_TRACK_Y, 0.36272786458333, 672);
        obj_effector:SetKey(_TRACK_X, 0.4841796875, 547);
        obj_effector:SetKey(_TRACK_Y, 0.4841796875, 642);
        obj_effector:SetKey(_TRACK_X, 0.6056640625, 450);
        obj_effector:SetKey(_TRACK_Y, 0.6056640625, 588);
        obj_effector:SetKey(_TRACK_X, 0.70283203125, 397);
        obj_effector:SetKey(_TRACK_Y, 0.70283203125, 501);
        obj_effector:SetKey(_TRACK_X, 0.8, 390);
        obj_effector:SetKey(_TRACK_Y, 0.8, 433);
        obj_effector:SetKey(_TRACK_X, 0.86555989583333, 423);
        obj_effector:SetKey(_TRACK_Y, 0.86555989583333, 377);
        obj_effector:SetKey(_TRACK_X, 3.1, 423);
        obj_effector:SetKey(_TRACK_Y, 3.1, 377);
        obj_effector:SetKey(_TRACK_X, 3.23333333333333, 386);
        obj_effector:SetKey(_TRACK_Y, 3.23333333333333, 504.001063812442);
        obj_effector:SetKey(_TRACK_X, 3.43333333333333, 368.500287620912);
        obj_effector:SetKey(_TRACK_Y, 3.43333333333333, 694.503493615989);
        obj_effector:SetKey(_TRACK_X, 3.63333333333333, 360);
        obj_effector:SetKey(_TRACK_Y, 3.63333333333333, 885);
        obj_effector:SetKey(_TRACK_X, 3.96666666666667, 360);
        obj_effector:SetKey(_TRACK_Y, 3.96666666666667, 885);
        obj_effector:SetKey(_TRACK_SX, 0.14407552083333, 2);
        obj_effector:SetKey(_TRACK_SY, 0.14407552083333, 2);
        obj_effector:SetKey(_TRACK_SX, 0.86555989583333, 1);
        obj_effector:SetKey(_TRACK_SY, 0.86555989583333, 1);
        obj_effector:SetKey(_TRACK_SX, 0.9322265625, 1.1);
        obj_effector:SetKey(_TRACK_SY, 0.9322265625, 1.1);
        obj_effector:SetKey(_TRACK_SX, 1.0322265625, 1);
        obj_effector:SetKey(_TRACK_SY, 1.0322265625, 1);
        obj_effector:SetKey(_TRACK_SX, 2.16666666666667, 1);
        obj_effector:SetKey(_TRACK_SY, 2.16666666666667, 1);
        obj_effector:SetKey(_TRACK_SX, 2.26666666666667, 1.2);
        obj_effector:SetKey(_TRACK_SY, 2.26666666666667, 1.2);
        obj_effector:SetKey(_TRACK_SX, 2.4, 1);
        obj_effector:SetKey(_TRACK_SY, 2.4, 1);
        obj_effector:SetKey(_TRACK_SX, 3.96666666666667, 1);
        obj_effector:SetKey(_TRACK_SY, 3.96666666666667, 1);
        obj_effector:SetKey(_TRACK_A, 0.14407552083333, -6.2831853);
        obj_effector:SetKey(_TRACK_A, 0.86555989583333, 0);
        obj_effector:SetKey(_TRACK_A, 3.1, 0);
        obj_effector:SetKey(_TRACK_A, 3.63333333333333, 6.2831853);
        obj_effector:SetKey(_TRACK_A, 3.96666666666667, 6.2831853);
        obj_effector:SetKey(_TRACK_O, 0.14407552083333, 1);
        obj_effector:SetKey(_TRACK_O, 0.86555989583333, 1);
        obj_effector:SetKey(_TRACK_O, 3.96666666666667, 1);
           
        obj_effector:AttachTo(element.particle)
        obj_effector:Play();
        compositionLevelCompletedAnim.elements[2] = element
    
        ----------------------------------------------------------------------------------------------------
        -- Layer Letter_C_1
        local element = CreateCompositionElementP("data/Texture/Animations/minigame_complete/Letter_C_01.png");
        element:SetName("Letter_C_1");
        compositionLevelCompletedAnim:AddElement(element);
        element:SetHotSpot(32, 32);
        element:SetParentElement(compositionLevelCompletedAnim);
    
        obj_effector = CreateAnimationEffector()
        effector = element:GetEffector();
        effector:SetLifeTime(0, 4);
    
        effector:SetKey(_TRACK_X, 0.3, 1085);
        effector:SetKey(_TRACK_Y, 0.3, -36.5);
        effector:SetKey(_TRACK_X, 0.421484375, 997);
        effector:SetKey(_TRACK_Y, 0.421484375, 233.5);
        effector:SetKey(_TRACK_X, 0.51865234375, 891);
        effector:SetKey(_TRACK_Y, 0.51865234375, 373.5);
        effector:SetKey(_TRACK_X, 0.64010416666667, 771);
        effector:SetKey(_TRACK_Y, 0.64010416666667, 455.5);
        effector:SetKey(_TRACK_X, 0.76158854166667, 646);
        effector:SetKey(_TRACK_Y, 0.76158854166667, 483.5);
        effector:SetKey(_TRACK_X, 0.85875651041667, 551);
        effector:SetKey(_TRACK_Y, 0.85875651041667, 476.5);
        effector:SetKey(_TRACK_X, 0.95592447916667, 487);
        effector:SetKey(_TRACK_Y, 0.95592447916667, 438.5);
        effector:SetKey(_TRACK_X, 1.03333333333333, 475);
        effector:SetKey(_TRACK_Y, 1.03333333333333, 374.5);
        effector:SetKey(_TRACK_X, 3.13333333333333, 475);
        effector:SetKey(_TRACK_Y, 3.13333333333333, 374.5);
        effector:SetKey(_TRACK_X, 3.73333333333333, 475);
        effector:SetKey(_TRACK_Y, 3.73333333333333, 890.5);
        effector:SetKey(_TRACK_X, 3.96666666666667, 475);
        effector:SetKey(_TRACK_Y, 3.96666666666667, 890.5);
        effector:SetKey(_TRACK_SX, 0.3, 2);
        effector:SetKey(_TRACK_SY, 0.3, 2);
        effector:SetKey(_TRACK_SX, 1.03333333333333, 1);
        effector:SetKey(_TRACK_SY, 1.03333333333333, 1);
        effector:SetKey(_TRACK_SX, 1.1, 1.1);
        effector:SetKey(_TRACK_SY, 1.1, 1.1);
        effector:SetKey(_TRACK_SX, 1.2, 1);
        effector:SetKey(_TRACK_SY, 1.2, 1);
        effector:SetKey(_TRACK_SX, 2.26666666666667, 1);
        effector:SetKey(_TRACK_SY, 2.26666666666667, 1);
        effector:SetKey(_TRACK_SX, 2.36666666666667, 1.2);
        effector:SetKey(_TRACK_SY, 2.36666666666667, 1.2);
        effector:SetKey(_TRACK_SX, 2.5, 1);
        effector:SetKey(_TRACK_SY, 2.5, 1);
        effector:SetKey(_TRACK_SX, 3.96666666666667, 1);
        effector:SetKey(_TRACK_SY, 3.96666666666667, 1);
        effector:SetKey(_TRACK_A, 0.3, -6.2831853);
        effector:SetKey(_TRACK_A, 1.03333333333333, 0);
        effector:SetKey(_TRACK_A, 3.13333333333333, 0);
        effector:SetKey(_TRACK_A, 3.73333333333333, 6.2831853);
        effector:SetKey(_TRACK_A, 3.96666666666667, 6.2831853);
        effector:SetKey(_TRACK_O, 0.3, 1);
        effector:SetKey(_TRACK_O, 1.03333333333333, 1);
        effector:SetKey(_TRACK_O, 3.96666666666667, 1);
        effector:Play();
        
        obj_effector:SetKey(_TRACK_X, 0.3, 1085);
        obj_effector:SetKey(_TRACK_Y, 0.3, -36.5);
        obj_effector:SetKey(_TRACK_X, 0.421484375, 997);
        obj_effector:SetKey(_TRACK_Y, 0.421484375, 233.5);
        obj_effector:SetKey(_TRACK_X, 0.51865234375, 891);
        obj_effector:SetKey(_TRACK_Y, 0.51865234375, 373.5);
        obj_effector:SetKey(_TRACK_X, 0.64010416666667, 771);
        obj_effector:SetKey(_TRACK_Y, 0.64010416666667, 455.5);
        obj_effector:SetKey(_TRACK_X, 0.76158854166667, 646);
        obj_effector:SetKey(_TRACK_Y, 0.76158854166667, 483.5);
        obj_effector:SetKey(_TRACK_X, 0.85875651041667, 551);
        obj_effector:SetKey(_TRACK_Y, 0.85875651041667, 476.5);
        obj_effector:SetKey(_TRACK_X, 0.95592447916667, 487);
        obj_effector:SetKey(_TRACK_Y, 0.95592447916667, 438.5);
        obj_effector:SetKey(_TRACK_X, 1.03333333333333, 475);
        obj_effector:SetKey(_TRACK_Y, 1.03333333333333, 374.5);
        obj_effector:SetKey(_TRACK_X, 3.13333333333333, 475);
        obj_effector:SetKey(_TRACK_Y, 3.13333333333333, 374.5);
        obj_effector:SetKey(_TRACK_X, 3.73333333333333, 475);
        obj_effector:SetKey(_TRACK_Y, 3.73333333333333, 890.5);
        obj_effector:SetKey(_TRACK_X, 3.96666666666667, 475);
        obj_effector:SetKey(_TRACK_Y, 3.96666666666667, 890.5);
        obj_effector:SetKey(_TRACK_SX, 0.3, 2);
        obj_effector:SetKey(_TRACK_SY, 0.3, 2);
        obj_effector:SetKey(_TRACK_SX, 1.03333333333333, 1);
        obj_effector:SetKey(_TRACK_SY, 1.03333333333333, 1);
        obj_effector:SetKey(_TRACK_SX, 1.1, 1.1);
        obj_effector:SetKey(_TRACK_SY, 1.1, 1.1);
        obj_effector:SetKey(_TRACK_SX, 1.2, 1);
        obj_effector:SetKey(_TRACK_SY, 1.2, 1);
        obj_effector:SetKey(_TRACK_SX, 2.26666666666667, 1);
        obj_effector:SetKey(_TRACK_SY, 2.26666666666667, 1);
        obj_effector:SetKey(_TRACK_SX, 2.36666666666667, 1.2);
        obj_effector:SetKey(_TRACK_SY, 2.36666666666667, 1.2);
        obj_effector:SetKey(_TRACK_SX, 2.5, 1);
        obj_effector:SetKey(_TRACK_SY, 2.5, 1);
        obj_effector:SetKey(_TRACK_SX, 3.96666666666667, 1);
        obj_effector:SetKey(_TRACK_SY, 3.96666666666667, 1);
        obj_effector:SetKey(_TRACK_A, 0.3, -6.2831853);
        obj_effector:SetKey(_TRACK_A, 1.03333333333333, 0);
        obj_effector:SetKey(_TRACK_A, 3.13333333333333, 0);
        obj_effector:SetKey(_TRACK_A, 3.73333333333333, 6.2831853);
        obj_effector:SetKey(_TRACK_A, 3.96666666666667, 6.2831853);
        obj_effector:SetKey(_TRACK_O, 0.3, 1);
        obj_effector:SetKey(_TRACK_O, 1.03333333333333, 1);
        obj_effector:SetKey(_TRACK_O, 3.96666666666667, 1);

        obj_effector:AttachTo(element.particle)
        obj_effector:Play();        
        compositionLevelCompletedAnim.elements[3] = element
    
        ----------------------------------------------------------------------------------------------------
        -- Layer Letter_C_2
        local element = CreateCompositionElementP("data/Texture/Animations/minigame_complete/Letter_C_02.png");
        element:SetName("Letter_C_2");
        compositionLevelCompletedAnim:AddElement(element);
        element:SetHotSpot(32, 32);
        element:SetParentElement(compositionLevelCompletedAnim);
    
        obj_effector = CreateAnimationEffector()
        effector = element:GetEffector();
        effector:SetLifeTime(0, 4);
    
        effector:SetKey(_TRACK_X, 0.43333333333333, 679);
        effector:SetKey(_TRACK_Y, 0.43333333333333, -131.5);
        effector:SetKey(_TRACK_X, 0.55481770833333, 743);
        effector:SetKey(_TRACK_Y, 0.55481770833333, 2.5);
        effector:SetKey(_TRACK_X, 0.65198567708333, 771);
        effector:SetKey(_TRACK_Y, 0.65198567708333, 138.5);
        effector:SetKey(_TRACK_X, 0.7734375, 751);
        effector:SetKey(_TRACK_Y, 0.7734375, 262.5);
        effector:SetKey(_TRACK_X, 0.894921875, 692);
        effector:SetKey(_TRACK_Y, 0.894921875, 350.5);
        effector:SetKey(_TRACK_X, 0.99208984375, 637);
        effector:SetKey(_TRACK_Y, 0.99208984375, 389.5);
        effector:SetKey(_TRACK_X, 1.0892578125, 575);
        effector:SetKey(_TRACK_Y, 1.0892578125, 401.5);
        effector:SetKey(_TRACK_X, 1.16666666666667, 527);
        effector:SetKey(_TRACK_Y, 1.16666666666667, 373.5);
        effector:SetKey(_TRACK_X, 3, 527);
        effector:SetKey(_TRACK_Y, 3, 373.5);
        effector:SetKey(_TRACK_X, 3.63333333333333, 526);
        effector:SetKey(_TRACK_Y, 3.63333333333333, 885.5);
        effector:SetKey(_TRACK_X, 3.96666666666667, 526);
        effector:SetKey(_TRACK_Y, 3.96666666666667, 885.5);
        effector:SetKey(_TRACK_SX, 0.43333333333333, 2);
        effector:SetKey(_TRACK_SY, 0.43333333333333, 2);
        effector:SetKey(_TRACK_SX, 1.16666666666667, 1);
        effector:SetKey(_TRACK_SY, 1.16666666666667, 1);
        effector:SetKey(_TRACK_SX, 1.23333333333333, 1.1);
        effector:SetKey(_TRACK_SY, 1.23333333333333, 1.1);
        effector:SetKey(_TRACK_SX, 1.33333333333333, 1);
        effector:SetKey(_TRACK_SY, 1.33333333333333, 1);
        effector:SetKey(_TRACK_SX, 2.36666666666667, 1);
        effector:SetKey(_TRACK_SY, 2.36666666666667, 1);
        effector:SetKey(_TRACK_SX, 2.46666666666667, 1.2);
        effector:SetKey(_TRACK_SY, 2.46666666666667, 1.2);
        effector:SetKey(_TRACK_SX, 2.6, 1);
        effector:SetKey(_TRACK_SY, 2.6, 1);
        effector:SetKey(_TRACK_SX, 3.96666666666667, 1);
        effector:SetKey(_TRACK_SY, 3.96666666666667, 1);
        effector:SetKey(_TRACK_A, 0.43333333333333, -6.2831853);
        effector:SetKey(_TRACK_A, 1.16666666666667, 0);
        effector:SetKey(_TRACK_A, 3, 0);
        effector:SetKey(_TRACK_A, 3.63333333333333, 6.2831853);
        effector:SetKey(_TRACK_A, 3.96666666666667, 6.2831853);
        effector:SetKey(_TRACK_O, 0.43333333333333, 1);
        effector:SetKey(_TRACK_O, 1.16666666666667, 1);
        effector:SetKey(_TRACK_O, 3.96666666666667, 1);
        effector:Play();
        
        obj_effector:SetKey(_TRACK_X, 0.43333333333333, 679);
        obj_effector:SetKey(_TRACK_Y, 0.43333333333333, -131.5);
        obj_effector:SetKey(_TRACK_X, 0.55481770833333, 743);
        obj_effector:SetKey(_TRACK_Y, 0.55481770833333, 2.5);
        obj_effector:SetKey(_TRACK_X, 0.65198567708333, 771);
        obj_effector:SetKey(_TRACK_Y, 0.65198567708333, 138.5);
        obj_effector:SetKey(_TRACK_X, 0.7734375, 751);
        obj_effector:SetKey(_TRACK_Y, 0.7734375, 262.5);
        obj_effector:SetKey(_TRACK_X, 0.894921875, 692);
        obj_effector:SetKey(_TRACK_Y, 0.894921875, 350.5);
        obj_effector:SetKey(_TRACK_X, 0.99208984375, 637);
        obj_effector:SetKey(_TRACK_Y, 0.99208984375, 389.5);
        obj_effector:SetKey(_TRACK_X, 1.0892578125, 575);
        obj_effector:SetKey(_TRACK_Y, 1.0892578125, 401.5);
        obj_effector:SetKey(_TRACK_X, 1.16666666666667, 527);
        obj_effector:SetKey(_TRACK_Y, 1.16666666666667, 373.5);
        obj_effector:SetKey(_TRACK_X, 3, 527);
        obj_effector:SetKey(_TRACK_Y, 3, 373.5);
        obj_effector:SetKey(_TRACK_X, 3.63333333333333, 526);
        obj_effector:SetKey(_TRACK_Y, 3.63333333333333, 885.5);
        obj_effector:SetKey(_TRACK_X, 3.96666666666667, 526);
        obj_effector:SetKey(_TRACK_Y, 3.96666666666667, 885.5);
        obj_effector:SetKey(_TRACK_SX, 0.43333333333333, 2);
        obj_effector:SetKey(_TRACK_SY, 0.43333333333333, 2);
        obj_effector:SetKey(_TRACK_SX, 1.16666666666667, 1);
        obj_effector:SetKey(_TRACK_SY, 1.16666666666667, 1);
        obj_effector:SetKey(_TRACK_SX, 1.23333333333333, 1.1);
        obj_effector:SetKey(_TRACK_SY, 1.23333333333333, 1.1);
        obj_effector:SetKey(_TRACK_SX, 1.33333333333333, 1);
        obj_effector:SetKey(_TRACK_SY, 1.33333333333333, 1);
        obj_effector:SetKey(_TRACK_SX, 2.36666666666667, 1);
        obj_effector:SetKey(_TRACK_SY, 2.36666666666667, 1);
        obj_effector:SetKey(_TRACK_SX, 2.46666666666667, 1.2);
        obj_effector:SetKey(_TRACK_SY, 2.46666666666667, 1.2);
        obj_effector:SetKey(_TRACK_SX, 2.6, 1);
        obj_effector:SetKey(_TRACK_SY, 2.6, 1);
        obj_effector:SetKey(_TRACK_SX, 3.96666666666667, 1);
        obj_effector:SetKey(_TRACK_SY, 3.96666666666667, 1);
        obj_effector:SetKey(_TRACK_A, 0.43333333333333, -6.2831853);
        obj_effector:SetKey(_TRACK_A, 1.16666666666667, 0);
        obj_effector:SetKey(_TRACK_A, 3, 0);
        obj_effector:SetKey(_TRACK_A, 3.63333333333333, 6.2831853);
        obj_effector:SetKey(_TRACK_A, 3.96666666666667, 6.2831853);
        obj_effector:SetKey(_TRACK_O, 0.43333333333333, 1);
        obj_effector:SetKey(_TRACK_O, 1.16666666666667, 1);
        obj_effector:SetKey(_TRACK_O, 3.96666666666667, 1);
        
        obj_effector:AttachTo(element.particle)
        obj_effector:Play();        
        compositionLevelCompletedAnim.elements[4] = element 
    
        -----------------------------------------------------------------------------------------------------
        -- Layer Letter_E_1
        local element = CreateCompositionElementP("data/Texture/Animations/minigame_complete/Letter_E_01.png");
        element:SetName("Letter_E_1");
        compositionLevelCompletedAnim:AddElement(element);
        element:SetHotSpot(32, 32);
        element:SetParentElement(compositionLevelCompletedAnim);
    
        obj_effector = CreateAnimationEffector()
        effector = element:GetEffector();
        effector:SetLifeTime(0, 4);
    
        effector:SetKey(_TRACK_X, 0.6, -191);
        effector:SetKey(_TRACK_Y, 0.6, 50.5);
        effector:SetKey(_TRACK_X, 0.721484375, 115);
        effector:SetKey(_TRACK_Y, 0.721484375, 22.5);
        effector:SetKey(_TRACK_X, 0.81865234375, 327);
        effector:SetKey(_TRACK_Y, 0.81865234375, 36.5);
        effector:SetKey(_TRACK_X, 0.94010416666667, 479);
        effector:SetKey(_TRACK_Y, 0.94010416666667, 102.5);
        effector:SetKey(_TRACK_X, 1.06158854166667, 572);
        effector:SetKey(_TRACK_Y, 1.06158854166667, 191.5);
        effector:SetKey(_TRACK_X, 1.15875651041667, 616);
        effector:SetKey(_TRACK_Y, 1.15875651041667, 265.5);
        effector:SetKey(_TRACK_X, 1.25592447916667, 617);
        effector:SetKey(_TRACK_Y, 1.25592447916667, 328.5);
        effector:SetKey(_TRACK_X, 1.33333333333333, 583);
        effector:SetKey(_TRACK_Y, 1.33333333333333, 373.5);
        effector:SetKey(_TRACK_X, 3.26666666666667, 583);
        effector:SetKey(_TRACK_Y, 3.26666666666667, 373.5);
        effector:SetKey(_TRACK_X, 3.9, 584);
        effector:SetKey(_TRACK_Y, 3.9, 889.5);
        effector:SetKey(_TRACK_X, 3.96666666666667, 584);
        effector:SetKey(_TRACK_Y, 3.96666666666667, 889.5);
        effector:SetKey(_TRACK_SX, 0.6, 2);
        effector:SetKey(_TRACK_SY, 0.6, 2);
        effector:SetKey(_TRACK_SX, 1.33333333333333, 1);
        effector:SetKey(_TRACK_SY, 1.33333333333333, 1);
        effector:SetKey(_TRACK_SX, 1.4, 1.1);
        effector:SetKey(_TRACK_SY, 1.4, 1.1);
        effector:SetKey(_TRACK_SX, 1.5, 1);
        effector:SetKey(_TRACK_SY, 1.5, 1);
        effector:SetKey(_TRACK_SX, 2.46666666666667, 1);
        effector:SetKey(_TRACK_SY, 2.46666666666667, 1);
        effector:SetKey(_TRACK_SX, 2.56666666666667, 1.2);
        effector:SetKey(_TRACK_SY, 2.56666666666667, 1.2);
        effector:SetKey(_TRACK_SX, 2.7, 1);
        effector:SetKey(_TRACK_SY, 2.7, 1);
        effector:SetKey(_TRACK_SX, 3.96666666666667, 1);
        effector:SetKey(_TRACK_SY, 3.96666666666667, 1);
        effector:SetKey(_TRACK_A, 0.6, -6.2831853);
        effector:SetKey(_TRACK_A, 1.33333333333333, 0);
        effector:SetKey(_TRACK_A, 3.26666666666667, 0);
        effector:SetKey(_TRACK_A, 3.9, 6.2831853);
        effector:SetKey(_TRACK_A, 3.96666666666667, 6.2831853);
        effector:SetKey(_TRACK_O, 0.6, 1);
        effector:SetKey(_TRACK_O, 1.33333333333333, 1);
        effector:SetKey(_TRACK_O, 3.96666666666667, 1);
        effector:Play();
        
        obj_effector:SetKey(_TRACK_X, 0.6, -191);
        obj_effector:SetKey(_TRACK_Y, 0.6, 50.5);
        obj_effector:SetKey(_TRACK_X, 0.721484375, 115);
        obj_effector:SetKey(_TRACK_Y, 0.721484375, 22.5);
        obj_effector:SetKey(_TRACK_X, 0.81865234375, 327);
        obj_effector:SetKey(_TRACK_Y, 0.81865234375, 36.5);
        obj_effector:SetKey(_TRACK_X, 0.94010416666667, 479);
        obj_effector:SetKey(_TRACK_Y, 0.94010416666667, 102.5);
        obj_effector:SetKey(_TRACK_X, 1.06158854166667, 572);
        obj_effector:SetKey(_TRACK_Y, 1.06158854166667, 191.5);
        obj_effector:SetKey(_TRACK_X, 1.15875651041667, 616);
        obj_effector:SetKey(_TRACK_Y, 1.15875651041667, 265.5);
        obj_effector:SetKey(_TRACK_X, 1.25592447916667, 617);
        obj_effector:SetKey(_TRACK_Y, 1.25592447916667, 328.5);
        obj_effector:SetKey(_TRACK_X, 1.33333333333333, 583);
        obj_effector:SetKey(_TRACK_Y, 1.33333333333333, 373.5);
        obj_effector:SetKey(_TRACK_X, 3.26666666666667, 583);
        obj_effector:SetKey(_TRACK_Y, 3.26666666666667, 373.5);
        obj_effector:SetKey(_TRACK_X, 3.9, 584);
        obj_effector:SetKey(_TRACK_Y, 3.9, 889.5);
        obj_effector:SetKey(_TRACK_X, 3.96666666666667, 584);
        obj_effector:SetKey(_TRACK_Y, 3.96666666666667, 889.5);
        obj_effector:SetKey(_TRACK_SX, 0.6, 2);
        obj_effector:SetKey(_TRACK_SY, 0.6, 2);
        obj_effector:SetKey(_TRACK_SX, 1.33333333333333, 1);
        obj_effector:SetKey(_TRACK_SY, 1.33333333333333, 1);
        obj_effector:SetKey(_TRACK_SX, 1.4, 1.1);
        obj_effector:SetKey(_TRACK_SY, 1.4, 1.1);
        obj_effector:SetKey(_TRACK_SX, 1.5, 1);
        obj_effector:SetKey(_TRACK_SY, 1.5, 1);
        obj_effector:SetKey(_TRACK_SX, 2.46666666666667, 1);
        obj_effector:SetKey(_TRACK_SY, 2.46666666666667, 1);
        obj_effector:SetKey(_TRACK_SX, 2.56666666666667, 1.2);
        obj_effector:SetKey(_TRACK_SY, 2.56666666666667, 1.2);
        obj_effector:SetKey(_TRACK_SX, 2.7, 1);
        obj_effector:SetKey(_TRACK_SY, 2.7, 1);
        obj_effector:SetKey(_TRACK_SX, 3.96666666666667, 1);
        obj_effector:SetKey(_TRACK_SY, 3.96666666666667, 1);
        obj_effector:SetKey(_TRACK_A, 0.6, -6.2831853);
        obj_effector:SetKey(_TRACK_A, 1.33333333333333, 0);
        obj_effector:SetKey(_TRACK_A, 3.26666666666667, 0);
        obj_effector:SetKey(_TRACK_A, 3.9, 6.2831853);
        obj_effector:SetKey(_TRACK_A, 3.96666666666667, 6.2831853);
        obj_effector:SetKey(_TRACK_O, 0.6, 1);
        obj_effector:SetKey(_TRACK_O, 1.33333333333333, 1);
        obj_effector:SetKey(_TRACK_O, 3.96666666666667, 1);
        
        obj_effector:AttachTo(element.particle)
        obj_effector:Play();   
        compositionLevelCompletedAnim.elements[5] = element
    
        ------------------------------------------------------------------------------------------------------
        -- Layer Letter_S_2
        local element = CreateCompositionElementP("data/Texture/Animations/minigame_complete/Letter_S_02.png");
        element:SetName("Letter_S_2");
        compositionLevelCompletedAnim:AddElement(element);
        element:SetHotSpot(32, 32);
        element:SetParentElement(compositionLevelCompletedAnim);
    
        obj_effector = CreateAnimationEffector()
        effector = element:GetEffector();
        effector:SetLifeTime(0, 4);
    
        effector:SetKey(_TRACK_X, 0.73333333333333, -165);
        effector:SetKey(_TRACK_Y, 0.73333333333333, 538.5);
        effector:SetKey(_TRACK_X, 0.85481770833333, 77);
        effector:SetKey(_TRACK_Y, 0.85481770833333, 340.5);
        effector:SetKey(_TRACK_X, 0.95198567708333, 221);
        effector:SetKey(_TRACK_Y, 0.95198567708333, 264.5);
        effector:SetKey(_TRACK_X, 1.0734375, 337);
        effector:SetKey(_TRACK_Y, 1.0734375, 234.5);
        effector:SetKey(_TRACK_X, 1.194921875, 466);
        effector:SetKey(_TRACK_Y, 1.194921875, 239.5);
        effector:SetKey(_TRACK_X, 1.29208984375, 552);
        effector:SetKey(_TRACK_Y, 1.29208984375, 267.5);
        effector:SetKey(_TRACK_X, 1.3892578125, 617);
        effector:SetKey(_TRACK_Y, 1.3892578125, 310.5);
        effector:SetKey(_TRACK_X, 1.46666666666667, 631);
        effector:SetKey(_TRACK_Y, 1.46666666666667, 373.5);
        effector:SetKey(_TRACK_X, 3.16666666666667, 631);
        effector:SetKey(_TRACK_Y, 3.16666666666667, 373.5);
        effector:SetKey(_TRACK_X, 3.33333333333333, 667.429000990342);
        effector:SetKey(_TRACK_Y, 3.33333333333333, 506.211215044509);
        effector:SetKey(_TRACK_X, 3.6, 689.315430637771);
        effector:SetKey(_TRACK_Y, 3.6, 718.549325162323);
        effector:SetKey(_TRACK_X, 3.8, 687);
        effector:SetKey(_TRACK_Y, 3.8, 889.5);
        effector:SetKey(_TRACK_X, 3.96666666666667, 687);
        effector:SetKey(_TRACK_Y, 3.96666666666667, 889.5);
        effector:SetKey(_TRACK_SX, 0.73333333333333, 2);
        effector:SetKey(_TRACK_SY, 0.73333333333333, 2);
        effector:SetKey(_TRACK_SX, 1.46666666666667, 1);
        effector:SetKey(_TRACK_SY, 1.46666666666667, 1);
        effector:SetKey(_TRACK_SX, 1.53333333333333, 1.1);
        effector:SetKey(_TRACK_SY, 1.53333333333333, 1.1);
        effector:SetKey(_TRACK_SX, 1.63333333333333, 1);
        effector:SetKey(_TRACK_SY, 1.63333333333333, 1);
        effector:SetKey(_TRACK_SX, 2.56666666666667, 1);
        effector:SetKey(_TRACK_SY, 2.56666666666667, 1);
        effector:SetKey(_TRACK_SX, 2.66666666666667, 1.2);
        effector:SetKey(_TRACK_SY, 2.66666666666667, 1.2);
        effector:SetKey(_TRACK_SX, 2.8, 1);
        effector:SetKey(_TRACK_SY, 2.8, 1);
        effector:SetKey(_TRACK_SX, 3.96666666666667, 1);
        effector:SetKey(_TRACK_SY, 3.96666666666667, 1);
        effector:SetKey(_TRACK_A, 0.73333333333333, -6.2831853);
        effector:SetKey(_TRACK_A, 1.46666666666667, 0);
        effector:SetKey(_TRACK_A, 3.16666666666667, 0);
        effector:SetKey(_TRACK_A, 3.8, 6.2831853);
        effector:SetKey(_TRACK_A, 3.96666666666667, 6.2831853);
        effector:SetKey(_TRACK_O, 0.73333333333333, 1);
        effector:SetKey(_TRACK_O, 1.46666666666667, 1);
        effector:SetKey(_TRACK_O, 3.96666666666667, 1);
        effector:Play();
        
        obj_effector:SetKey(_TRACK_X, 0.73333333333333, -165);
        obj_effector:SetKey(_TRACK_Y, 0.73333333333333, 538.5);
        obj_effector:SetKey(_TRACK_X, 0.85481770833333, 77);
        obj_effector:SetKey(_TRACK_Y, 0.85481770833333, 340.5);
        obj_effector:SetKey(_TRACK_X, 0.95198567708333, 221);
        obj_effector:SetKey(_TRACK_Y, 0.95198567708333, 264.5);
        obj_effector:SetKey(_TRACK_X, 1.0734375, 337);
        obj_effector:SetKey(_TRACK_Y, 1.0734375, 234.5);
        obj_effector:SetKey(_TRACK_X, 1.194921875, 466);
        obj_effector:SetKey(_TRACK_Y, 1.194921875, 239.5);
        obj_effector:SetKey(_TRACK_X, 1.29208984375, 552);
        obj_effector:SetKey(_TRACK_Y, 1.29208984375, 267.5);
        obj_effector:SetKey(_TRACK_X, 1.3892578125, 617);
        obj_effector:SetKey(_TRACK_Y, 1.3892578125, 310.5);
        obj_effector:SetKey(_TRACK_X, 1.46666666666667, 631);
        obj_effector:SetKey(_TRACK_Y, 1.46666666666667, 373.5);
        obj_effector:SetKey(_TRACK_X, 3.16666666666667, 631);
        obj_effector:SetKey(_TRACK_Y, 3.16666666666667, 373.5);
        obj_effector:SetKey(_TRACK_X, 3.33333333333333, 667.429000990342);
        obj_effector:SetKey(_TRACK_Y, 3.33333333333333, 506.211215044509);
        obj_effector:SetKey(_TRACK_X, 3.6, 689.315430637771);
        obj_effector:SetKey(_TRACK_Y, 3.6, 718.549325162323);
        obj_effector:SetKey(_TRACK_X, 3.8, 687);
        obj_effector:SetKey(_TRACK_Y, 3.8, 889.5);
        obj_effector:SetKey(_TRACK_X, 3.96666666666667, 687);
        obj_effector:SetKey(_TRACK_Y, 3.96666666666667, 889.5);
        obj_effector:SetKey(_TRACK_SX, 0.73333333333333, 2);
        obj_effector:SetKey(_TRACK_SY, 0.73333333333333, 2);
        obj_effector:SetKey(_TRACK_SX, 1.46666666666667, 1);
        obj_effector:SetKey(_TRACK_SY, 1.46666666666667, 1);
        obj_effector:SetKey(_TRACK_SX, 1.53333333333333, 1.1);
        obj_effector:SetKey(_TRACK_SY, 1.53333333333333, 1.1);
        obj_effector:SetKey(_TRACK_SX, 1.63333333333333, 1);
        obj_effector:SetKey(_TRACK_SY, 1.63333333333333, 1);
        obj_effector:SetKey(_TRACK_SX, 2.56666666666667, 1);
        obj_effector:SetKey(_TRACK_SY, 2.56666666666667, 1);
        obj_effector:SetKey(_TRACK_SX, 2.66666666666667, 1.2);
        obj_effector:SetKey(_TRACK_SY, 2.66666666666667, 1.2);
        obj_effector:SetKey(_TRACK_SX, 2.8, 1);
        obj_effector:SetKey(_TRACK_SY, 2.8, 1);
        obj_effector:SetKey(_TRACK_SX, 3.96666666666667, 1);
        obj_effector:SetKey(_TRACK_SY, 3.96666666666667, 1);
        obj_effector:SetKey(_TRACK_A, 0.73333333333333, -6.2831853);
        obj_effector:SetKey(_TRACK_A, 1.46666666666667, 0);
        obj_effector:SetKey(_TRACK_A, 3.16666666666667, 0);
        obj_effector:SetKey(_TRACK_A, 3.8, 6.2831853);
        obj_effector:SetKey(_TRACK_A, 3.96666666666667, 6.2831853);
        obj_effector:SetKey(_TRACK_O, 0.73333333333333, 1);
        obj_effector:SetKey(_TRACK_O, 1.46666666666667, 1);
        obj_effector:SetKey(_TRACK_O, 3.96666666666667, 1);
        
        obj_effector:AttachTo(element.particle)
        obj_effector:Play();   
        compositionLevelCompletedAnim.elements[6] = element
    
        -----------------------------------------------------------------------------------------------------
        -- Layer Letter_S_3
        local element = CreateCompositionElementP("data/Texture/Animations/minigame_complete/Letter_S_03.png");
        element:SetName("Letter_S_3");
        compositionLevelCompletedAnim:AddElement(element);
        element:SetHotSpot(32, 32);
        element:SetParentElement(compositionLevelCompletedAnim);
    
        obj_effector = CreateAnimationEffector()
        effector = element:GetEffector();
        effector:SetLifeTime(0, 4);
    
        effector:SetKey(_TRACK_X, 0.86666666666667, 69);
        effector:SetKey(_TRACK_Y, 0.86666666666667, 911.5);
        effector:SetKey(_TRACK_X, 0.98815104166667, 105);
        effector:SetKey(_TRACK_Y, 0.98815104166667, 623.5);
        effector:SetKey(_TRACK_X, 1.08531901041667, 175);
        effector:SetKey(_TRACK_Y, 1.08531901041667, 423.5);
        effector:SetKey(_TRACK_X, 1.20677083333333, 307);
        effector:SetKey(_TRACK_Y, 1.20677083333333, 288.5);
        effector:SetKey(_TRACK_X, 1.32825520833333, 464);
        effector:SetKey(_TRACK_Y, 1.32825520833333, 248.5);
        effector:SetKey(_TRACK_X, 1.42542317708333, 594);
        effector:SetKey(_TRACK_Y, 1.42542317708333, 265.5);
        effector:SetKey(_TRACK_X, 1.52259114583333, 661);
        effector:SetKey(_TRACK_Y, 1.52259114583333, 314.5);
        effector:SetKey(_TRACK_X, 1.6, 683);
        effector:SetKey(_TRACK_Y, 1.6, 372.5);
        effector:SetKey(_TRACK_X, 3.06666666666667, 683);
        effector:SetKey(_TRACK_Y, 3.06666666666667, 372.5);
        effector:SetKey(_TRACK_X, 3.23333333333333, 761.991005830096);
        effector:SetKey(_TRACK_Y, 3.23333333333333, 492.85765488913);
        effector:SetKey(_TRACK_X, 3.43333333333333, 795.176410380246);
        effector:SetKey(_TRACK_Y, 3.43333333333333, 685.676225015492);
        effector:SetKey(_TRACK_X, 3.63333333333333, 810);
        effector:SetKey(_TRACK_Y, 3.63333333333333, 890.5);
        effector:SetKey(_TRACK_X, 3.96666666666667, 810);
        effector:SetKey(_TRACK_Y, 3.96666666666667, 890.5);
        effector:SetKey(_TRACK_SX, 0.86666666666667, 2);
        effector:SetKey(_TRACK_SY, 0.86666666666667, 2);
        effector:SetKey(_TRACK_SX, 1.6, 1);
        effector:SetKey(_TRACK_SY, 1.6, 1);
        effector:SetKey(_TRACK_SX, 1.66666666666667, 1.1);
        effector:SetKey(_TRACK_SY, 1.66666666666667, 1.1);
        effector:SetKey(_TRACK_SX, 1.76666666666667, 1);
        effector:SetKey(_TRACK_SY, 1.76666666666667, 1);
        effector:SetKey(_TRACK_SX, 2.66666666666667, 1);
        effector:SetKey(_TRACK_SY, 2.66666666666667, 1);
        effector:SetKey(_TRACK_SX, 2.76666666666667, 1.2);
        effector:SetKey(_TRACK_SY, 2.76666666666667, 1.2);
        effector:SetKey(_TRACK_SX, 2.9, 1);
        effector:SetKey(_TRACK_SY, 2.9, 1);
        effector:SetKey(_TRACK_SX, 3.96666666666667, 1);
        effector:SetKey(_TRACK_SY, 3.96666666666667, 1);
        effector:SetKey(_TRACK_A, 0.86666666666667, -6.2831853);
        effector:SetKey(_TRACK_A, 1.6, 0);
        effector:SetKey(_TRACK_A, 3.06666666666667, 0);
        effector:SetKey(_TRACK_A, 3.63333333333333, 6.2831853);
        effector:SetKey(_TRACK_A, 3.96666666666667, 6.2831853);
        effector:SetKey(_TRACK_O, 0.86666666666667, 1);
        effector:SetKey(_TRACK_O, 1.6, 1);
        effector:SetKey(_TRACK_O, 3.96666666666667, 1);
        effector:Play();
        
        obj_effector:SetKey(_TRACK_X, 0.86666666666667, 69);
        obj_effector:SetKey(_TRACK_Y, 0.86666666666667, 911.5);
        obj_effector:SetKey(_TRACK_X, 0.98815104166667, 105);
        obj_effector:SetKey(_TRACK_Y, 0.98815104166667, 623.5);
        obj_effector:SetKey(_TRACK_X, 1.08531901041667, 175);
        obj_effector:SetKey(_TRACK_Y, 1.08531901041667, 423.5);
        obj_effector:SetKey(_TRACK_X, 1.20677083333333, 307);
        obj_effector:SetKey(_TRACK_Y, 1.20677083333333, 288.5);
        obj_effector:SetKey(_TRACK_X, 1.32825520833333, 464);
        obj_effector:SetKey(_TRACK_Y, 1.32825520833333, 248.5);
        obj_effector:SetKey(_TRACK_X, 1.42542317708333, 594);
        obj_effector:SetKey(_TRACK_Y, 1.42542317708333, 265.5);
        obj_effector:SetKey(_TRACK_X, 1.52259114583333, 661);
        obj_effector:SetKey(_TRACK_Y, 1.52259114583333, 314.5);
        obj_effector:SetKey(_TRACK_X, 1.6, 683);
        obj_effector:SetKey(_TRACK_Y, 1.6, 372.5);
        obj_effector:SetKey(_TRACK_X, 3.06666666666667, 683);
        obj_effector:SetKey(_TRACK_Y, 3.06666666666667, 372.5);
        obj_effector:SetKey(_TRACK_X, 3.23333333333333, 761.991005830096);
        obj_effector:SetKey(_TRACK_Y, 3.23333333333333, 492.85765488913);
        obj_effector:SetKey(_TRACK_X, 3.43333333333333, 795.176410380246);
        obj_effector:SetKey(_TRACK_Y, 3.43333333333333, 685.676225015492);
        obj_effector:SetKey(_TRACK_X, 3.63333333333333, 810);
        obj_effector:SetKey(_TRACK_Y, 3.63333333333333, 890.5);
        obj_effector:SetKey(_TRACK_X, 3.96666666666667, 810);
        obj_effector:SetKey(_TRACK_Y, 3.96666666666667, 890.5);
        obj_effector:SetKey(_TRACK_SX, 0.86666666666667, 2);
        obj_effector:SetKey(_TRACK_SY, 0.86666666666667, 2);
        obj_effector:SetKey(_TRACK_SX, 1.6, 1);
        obj_effector:SetKey(_TRACK_SY, 1.6, 1);
        obj_effector:SetKey(_TRACK_SX, 1.66666666666667, 1.1);
        obj_effector:SetKey(_TRACK_SY, 1.66666666666667, 1.1);
        obj_effector:SetKey(_TRACK_SX, 1.76666666666667, 1);
        obj_effector:SetKey(_TRACK_SY, 1.76666666666667, 1);
        obj_effector:SetKey(_TRACK_SX, 2.66666666666667, 1);
        obj_effector:SetKey(_TRACK_SY, 2.66666666666667, 1);
        obj_effector:SetKey(_TRACK_SX, 2.76666666666667, 1.2);
        obj_effector:SetKey(_TRACK_SY, 2.76666666666667, 1.2);
        obj_effector:SetKey(_TRACK_SX, 2.9, 1);
        obj_effector:SetKey(_TRACK_SY, 2.9, 1);
        obj_effector:SetKey(_TRACK_SX, 3.96666666666667, 1);
        obj_effector:SetKey(_TRACK_SY, 3.96666666666667, 1);
        obj_effector:SetKey(_TRACK_A, 0.86666666666667, -6.2831853);
        obj_effector:SetKey(_TRACK_A, 1.6, 0);
        obj_effector:SetKey(_TRACK_A, 3.06666666666667, 0);
        obj_effector:SetKey(_TRACK_A, 3.63333333333333, 6.2831853);
        obj_effector:SetKey(_TRACK_A, 3.96666666666667, 6.2831853);
        obj_effector:SetKey(_TRACK_O, 0.86666666666667, 1);
        obj_effector:SetKey(_TRACK_O, 1.6, 1);
        obj_effector:SetKey(_TRACK_O, 3.96666666666667, 1);
        
        obj_effector:AttachTo(element.particle)
        obj_effector:Play();  
        compositionLevelCompletedAnim.elements[7] = element
    
        compositionLevelCompletedAnim:Play();
	        
        return compositionLevelCompletedAnim;
    end
    
    function PlayMinigameFinalAnim()
        local function SetGeneration(comp_, index, gener)
            comp_.elements[index].particle:GetParticleSystem():SetGeneration(gener)
            if not gener then
                local af = CreateAnimationEffector()
                af:AttachTo( comp_.elements[index].particle:GetParticleSystem() )
                af:SetKey(_TRACK_O, 0.0, 1)
                af:SetKey(_TRACK_O, 0.25, 0)
                af:Play()
            else
                local af = CreateAnimationEffector()
                af:AttachTo( comp_.elements[index].particle:GetParticleSystem() )
                af:SetKey(_TRACK_O, 0.2, 0)
                af:SetKey(_TRACK_O, 0.45, 1)
                af:Play()
            end
        end
        ---------------------------
        local comp = createCompositionLevelCompletedAnim()
        comp:SetXY(0, 0)
        comp:SetZ(400)
        comp:AttachTo(game_state.screen_mini_game)
        for i = 1, 7 do
            TimerDo(play_field:GetTimer(), 1.0, SetGeneration, comp, i, false)
            --TimerDo(play_field:GetTimer(), 2.85, SetGeneration, comp, i, true)
        end
        
        local sound_complete_minigame = CreateSoundEntity('success_mini_game')
        sound_complete_minigame:AttachTo(game_state.screen_mini_game)
        sound_complete_minigame:Play(false)
    end
    
    