コード例 #1
0
        // сам носимый баллон:

        // внедряем в FX-объект баллона контроллер подмены анимации
        // вытаскиваем индекс из носителя и применяем подмену символа анимации
        // запоминаем ссылку на новый FX-объект
        private static void ApplySymbolOverrideBalloonFX(BalloonFX.Instance smi, KBatchedAnimController kbac)
        {
            kbac.usingNewSymbolOverrideSystem = true;
            SymbolOverrideController   symbolOverrideController = SymbolOverrideControllerUtil.AddToPrefab(kbac.gameObject);
            VaricolouredBalloonsHelper receiver = smi.master.GetComponent <VaricolouredBalloonsHelper>();

            if (receiver != null)
            {
                receiver.fx = smi;
                VaricolouredBalloonsHelper.ApplySymbolOverrideByIdx(symbolOverrideController, receiver.ReceiverBalloonSymbolIdx);
            }
        }
コード例 #2
0
 private static void Postfix(BalloonArtistChore.States __instance)
 {
     __instance.balloonStand.Enter((BalloonArtistChore.StatesInstance smi) => smi.GetComponent <VaricolouredBalloonsHelper>()?.RandomizeArtistBalloonSymbolIdx());
     __instance.balloonStand.idle.Enter((BalloonArtistChore.StatesInstance smi) =>
     {
         VaricolouredBalloonsHelper artist = smi.GetComponent <VaricolouredBalloonsHelper>();
         if (artist != null)
         {
             artist.ApplySymbolOverrideByIdx(artist.ArtistBalloonSymbolIdx);
         }
     });
 }
コード例 #3
0
        // перехватываем "задание 'получить баллон' начато"
        // вытаскиваем индекс из артиста, запихиваем его в получателя, и применяем подмену символа анимации
        // уничтожаем предыдущий FX-объект баллона если он есть
        private static void OnBeginGetBalloonChore(BalloonStandConfig balloonStandConfig, Chore chore)
        {
            GetBalloonWorkable balloonWorkable = chore.target?.GetComponent <GetBalloonWorkable>();

            if (balloonWorkable != null)
            {
                uint idx = BALLOONARTIST.Get(balloonWorkable)?.GetComponent <VaricolouredBalloonsHelper>()?.ArtistBalloonSymbolIdx ?? 0;
                VaricolouredBalloonsHelper receiver = chore.driver?.GetComponent <VaricolouredBalloonsHelper>();
                if (receiver != null)
                {
                    receiver.ReceiverBalloonSymbolIdx = idx;
                    receiver.ApplySymbolOverrideByIdx(idx);
                    if (receiver.fx != null)
                    {
                        receiver.fx.StopSM("Unequipped");
                        receiver.fx = null;
                    }
                }
            }
        }