Пример #1
0
 private void StartRockingIfIAmPlaced(InstrumentType type, BeatMappedShooter shooter)
 {
     if (shooter.gameObject.Equals(gameObject))
     {
         StartCoroutine(StartRockingOnNextBeat());
         towerPlacer.OnTowerPlaced -= StartRockingIfIAmPlaced;
     }
 }
Пример #2
0
 private void UnlockInstrument(InstrumentType type, BeatMappedShooter ignored)
 {
     if (type == archetype.type)
     {
         Color originalColor = preview.color;
         preview.color = new Color(originalColor.r, originalColor.g, originalColor.b, 1);
     }
 }
Пример #3
0
 private void ResetGrabbedObject()
 {
     state                 = Mode.EMPTY;
     currentCell           = null;
     currentTower          = null;
     currentTowerRenderer  = null;
     currentTowerArchetype = null;
 }
 private void UpdateBandLevel(InstrumentType type, BeatMappedShooter ignored)
 {
     if (!bandComposition.Contains(type))
     {
         bandComposition.Add(type);
         if (BandLevel > 1)
         {
             notificationSystem.PublishNotification("Band Up!");
         }
     }
 }
Пример #5
0
 public void GrabTower(InstrumentArchetype tower)
 {
     if (state == Mode.EMPTY && TowerCurrency.Instance.Currency >= tower.cost)
     {
         currentTowerArchetype      = tower;
         currentTower               = Instantiate(currentTowerArchetype.towerPrefab, MousePositionToGameWorldPosition(), Quaternion.identity);
         currentTowerRenderer       = currentTower.GetComponent <SpriteRenderer>();
         originalColor              = currentTowerRenderer.color;
         currentTowerRenderer.color = originalColor * illegalPlacementTint;
         state = Mode.HOLDING;
     }
 }
Пример #6
0
    private IEnumerator LoadInstrumentBeatmapper(InstrumentType type, BeatMappedShooter shooter)
    {
        yield return(new WaitForEndOfFrame());

        var archetype = archetypes.Where(a => a.type == type).First();

        if (!players.ContainsKey(type))
        {
            if (players.Count == 0)
            {
                synchroniser.StartSynchronisation();
            }

            var player = gameObject.AddComponent <TrackPlayer>();
            player.LoadTracks(archetype.trackLevels.ToArray(), towerProgression.GetLevelForInstrument(type), synchroniser.LoopProgress);
            players[type] = player;
        }
        shooter.RegisterOnBeatCallback(players[type].Mapper);
    }
    private void HandleTowerPlaced(InstrumentType type, BeatMappedShooter ignored)
    {
        IncrementTowerTypeCount(type);

        UpdateTowerLevel(type);
    }
Пример #8
0
 // We run this in a coroutine so that other listeners to the event settle before we load the track (band level, tower progression)
 private void LoadInstrumentBeatmapperAtEndOfUpdate(InstrumentType type, BeatMappedShooter shooter)
 {
     StartCoroutine(LoadInstrumentBeatmapper(type, shooter));
 }