private void StartRockingIfIAmPlaced(InstrumentType type, BeatMappedShooter shooter) { if (shooter.gameObject.Equals(gameObject)) { StartCoroutine(StartRockingOnNextBeat()); towerPlacer.OnTowerPlaced -= StartRockingIfIAmPlaced; } }
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); } }
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!"); } } }
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; } }
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); }
// 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)); }