public void BlockCleared(BarBlock block, bool wasCorrect) { var data = block.characterData; block.characterData = null; if (wasCorrect) data.correctBlocks++; else data.missedBlocks++; var reset = data.CheckComplete(); if (reset) _activeCharacters.Remove(data); }
public void RemoveBlock(BarBlock barBlock) { var count = room.GetWorkerCount(); var blockWasCleared = false; var currentblock = barBlock; if (count > 0) { blockWasCleared = room.RemoveWorker(); if (particlePrefab) SpawnParticleEmitter(); } manager.BlockCleared(currentblock, blockWasCleared); currentblock.FinishBlock(this, blockWasCleared); }
private void Awake() { _blockScript = blockPrefab.GetComponent<BarBlock>(); _mat = new Material(blockMaterial); int i; _mat.color = blockColor; /* Just give it 4 blocks to start with. If more are needed * to be shown at once, they'll be created on AddBlocks but it may cause * slowdown */ QueueUpNewBarBlocks(4); for (i = 0; i < 3; i++) { var pe = Instantiate(particlePrefab) as GameObject; pe.transform.parent = transform; pe.transform.localPosition = new Vector3(-14.3f + .5f, .2f, 0); _particleSystems.Add(pe.GetComponent<BlockParticlePop>()); _particleSystems[i].particleSystem.renderer.material = _mat; _queuedParticles.Enqueue(_particleSystems[i]); } room.OnWorkerChange += ChangeWorkerCountText; }
/// <summary> /// Used for when a block doesn't have a place to call home if passing the removal trigger. /// </summary> public void QueueVirtualBlock(BarBlock block) { _blockQueue.Enqueue(block); }