Example #1
0
    public void ResolvePressureZone(GameObject zone)
    {
        PressureZone pressureScript = zone.GetComponent <PressureZone>();

        int        pressureResult = pressureScript.CheckPressure();
        GameObject replacement    = null;

        switch (pressureResult)
        {
        case 1:
            replacement = pressureScript.SpawnOnOverPressure();
            break;

        case -1:
            replacement = pressureScript.SpawnOnUnderPressure();
            break;

        default:
            break;
        }
        if (pressureResult != 0)
        {
            Vector2 position = zone.transform.position;
            removeActionsQueue.AddLast(CreateDirectAction(ActionTypes.REMOVE, ZoneTypes.GetZoneType(pressureScript), zone));
            if (replacement != null)
            {
                // create on replacement
                GameObject instance = Instantiate(replacement, position, Quaternion.identity) as GameObject;
                createActionsQueue.AddLast(CreateDirectAction(ActionTypes.CREATE, pressureScript.Pressure, instance));
            }
        }
        zeroActionsQueue.AddLast(CreateDirectAction(ActionTypes.PRESSURE_ZERO, pressureScript.Pressure, zone));
    }
Example #2
0
    protected void AddPressureZone(GameObject zone)
    {
        boardScript.AddPressureZone(zone);
        PressureZone pressureScript = zone.GetComponent <PressureZone>();

        // if zone is not on the board or on a brick
        if (!boardScript.PositionIsOnBoard(zone.transform.position) || (boardScript.PositionIsBrick(zone.transform.position) && pressureScript.GetType() != typeof(Brick)))
        {
            IssueAction(CreateDirectAction(ActionTypes.REMOVE, ZoneTypes.GetZoneType(pressureScript), zone));
        }
    }