Inheritance: MonoBehaviour
 public void Remove(Blockade blockade)
 {
     if (blockades.Remove(blockade))
     {
         SendEvents(blockade, m => m.OnUnblock);
     }
 }
 public void Add(Blockade blockade)
 {
     if (!blockades.Contains(blockade))
     {
         SendEvents(blockade, m => m.OnBlock);
         blockades.Add(blockade);
     }
 }
        private void SendEvents(Blockade blockade, Func <EventMapping, Action> handler)
        {
            var type = blockade.BlockadeType;

            foreach (var pair in mapping)
            {
                if (((type & pair.Key) > 0) && !blockades.Any(b => (b.BlockadeType & pair.Key) > 0))
                {
                    handler(pair.Value).Invoke();
                }
            }
        }
Esempio n. 4
0
    void GenerateInEditor()
    {
        Generator gen = FindObjectOfType <Generator>();

        Transform combinations = Instantiate(gen.CombinationStartPrefab, Vector3.zero, Quaternion.identity, null).transform;

        for (int i = 0; i < combination.elements.Length; i++)
        {
            Vector3    pos      = new Vector3(0, 0, combination.elements[i].positionZ);
            Quaternion rotation = combination.elements[i].rotation;
            Blockade   blockade = Instantiate(gen.obstackles[combination.elements[i].prefab], pos, rotation, combinations).GetComponent <Blockade>();
            blockade.speed = combination.elements[i].speed;
        }
    }
Esempio n. 5
0
    public void Init()
    {
        _active = false;

        //get block and get parameters
        Blockade blockAde = gameObject.GetComponent <Blockade>();

        Assertion.Check(blockAde != null);

        _prefabName     = blockAde._gateForGame;
        _fadeoutSfxName = blockAde._fadeinSfxName;
        _fadeinSfxName  = blockAde._fadeinSfxName;
        _fadeoutEffect  = blockAde._fadeoutEffect;
    }
Esempio n. 6
0
    void GenerateNewCombination(int number)
    {
        combinations[number] = Instantiate(CombinationStartPrefab, Vector3.zero, Quaternion.identity, transform).transform;

        Color color = GetColor();

        int id = Random.Range(0, levels.Length);

        for (int i = 0; i < levels[id].elements.Length; i++)
        {
            Vector3    pos      = new Vector3(0, 0, levels[id].elements[i].positionZ);
            Quaternion rotation = levels[id].elements[i].rotation;
            Blockade   blockade = Instantiate(obstackles[levels[id].elements[i].prefab], pos, rotation, combinations[number]).GetComponent <Blockade>();
            blockade.speed = levels[id].elements[i].speed;
            blockade.gameObject.GetComponent <Renderer>().material.color = color;
        }
        float newDistance = levels[id].elements[levels[id].elements.Length - 1].positionZ;

        combinations[number].Translate(0, 0, startPosition);
        startPosition += newDistance + levels[id].freeSpace;
    }
 void Start()
 {
     blockade = GetComponent<Blockade>();
 }