component EmoteIconParticleViewModel{ EmoteIconParticleView eView; list particleAnimList; public EmoteIconParticleViewModel(){ particleAnimList = new list(); eView = new EmoteIconParticleView(); hsAddEventListener("emoteIcon", eView.CreateEmoteIcon); hsAddEventListener("addEmoteIcon", AddParticleAnim); } public void Update(){ for(int i = particleAnimList.Count()-1; i >= 0; i--){ particleAnimList[i].ParticleAnimation(); if(particleAnimList[i].IsAnimEnd()){ particleAnimList.RemoveAt(i); } } } public void AddParticleAnim(string param){ EmoteIconParticleAnimator anim = new EmoteIconParticleAnimator(); list paramData = param.Split(":"); int layerIndex = 0; int portraitFlagIndex = 1; int guiNameIndex = 2; anim.FindGUIElement(paramData[layerIndex], paramData[portraitFlagIndex], paramData[guiNameIndex]); particleAnimList.Add(anim); } }