示例#1
0
    /// <summary>
    /// Places a random selected block at the given position
    /// </summary>
    /// <param name="position">position of the block</param>
    private void PlaceBlock(Vector2 position)
    {
        float randomBlockType = Random.value;

        if (randomBlockType < ConfigurationUtils.StandardBlockProbability)
        {
            Instantiate(prefabStandardBlock, position, Quaternion.identity);
        }
        else if (randomBlockType <
                 ConfigurationUtils.StandardBlockProbability + ConfigurationUtils.BonusBlockProbability)
        {
            Instantiate(prefabBonusBlock, position, Quaternion.identity);
        }
        else
        {
            // pickup block selected
            GameObject   pickupBlock       = Instantiate(prefabPickupBlock, position, Quaternion.identity);
            PickupBlocks pickupBlockScript = pickupBlock.GetComponent <PickupBlocks>();

            // set pickup effect
            float freezerThreshold = ConfigurationUtils.StandardBlockProbability +
                                     ConfigurationUtils.BonusBlockProbability +
                                     ConfigurationUtils.FreezerBlockProbability;
            pickupBlockScript.Effect = randomBlockType < freezerThreshold ?
                                       PickupEffect.Freezer : PickupEffect.Speedup;
        }
    }
示例#2
0
 /// <summary>
 /// Adds invoker for the speedup event
 /// </summary>
 /// <param name="invoker">invoker</param>
 public static void AddSpeedupEffectInvoker(PickupBlocks invoker)
 {
     _speedupEffectInvokers.Add(invoker);
     foreach (UnityAction <int, int> listener in _speedupEffectListeners)
     {
         invoker.AddSpeedupEffectListener(listener);
     }
 }
示例#3
0
 /// <summary>
 /// Adds invoker for the freeze event
 /// </summary>
 /// <param name="invoker">invoker</param>
 public static void AddFreezeEffectInvoker(PickupBlocks invoker)
 {
     _freezeEffectInvokers.Add(invoker);
     foreach (UnityAction <int> listener in _freezeEffectListeners)
     {
         invoker.AddFreezerEffectListener(listener);
     }
 }
示例#4
0
 /// <summary>
 /// Adds invoker for the freeze event
 /// </summary>
 /// <param name="invoker">invoker</param>
 public static void AddFreezeEffectInvoker(PickupBlocks invoker)
 {
     _freezeEffectInvoker = invoker;
     if (_freezeEffectListener != null)
     {
         _freezeEffectInvoker.AddFreezerEffectListener(_freezeEffectListener);
     }
 }