Esempio n. 1
0
    void OnTriggerExit2D(Collider2D collider)
    {
        BaseDoor door = collider.GetComponent <BaseDoor>();

        if (door != null && door == activeDoor)
        {
            activeDoor = null;
        }

        Item item = collider.GetComponent <Item>();

        if (activeItems.Contains(item))
        {
            activeItems.Remove(item);
        }

        Disaster disaster = collider.GetComponent <Disaster>();

        if (disaster != null)
        {
            activeDisaster = null;
        }

        DisasterSpawner disasterSpawner = collider.GetComponent <DisasterSpawner>();

        if (activeDisasterSpawners.Contains(disasterSpawner))
        {
            activeDisasterSpawners.Remove(disasterSpawner);
        }
    }
Esempio n. 2
0
    void OnTriggerEnter2D(Collider2D collider)
    {
        Debug.Log("trigger entered");
        BaseDoor door = collider.GetComponent <BaseDoor>();

        if (door != null)
        {
            activeDoor = door;
        }

        Item item = collider.GetComponent <Item>();

        if (item != null && !activeItems.Contains(item))
        {
            activeItems.Add(item);
        }

        Disaster disaster = collider.GetComponent <Disaster>();

        if (disaster != null)
        {
            activeDisaster = disaster;
        }

        DisasterSpawner disasterSpawner = collider.GetComponent <DisasterSpawner>();

        if (disasterSpawner != null && !activeDisasterSpawners.Contains(disasterSpawner))
        {
            activeDisasterSpawners.Add(disasterSpawner);
        }
    }
 // Use this for initialization
 void Start()
 {
     mapGenerator    = GetComponent <GameHexMapGenerator>();
     disasterSpawner = GetComponent <DisasterSpawner>();
     for (int i = 0; i < numberOfMaps; i++)
     {
         maps.Add(mapGenerator.GenerateMap(i * 100)); // TODO remove magic number and pick a real offset
     }
     Debug.Assert(maps[0] != null);
     disasterSpawner.InitHexMap(maps[0]); // TODO allow for multiple maps
     disasterSpawner.SpawnDisaster(Vector3.zero);
 }
Esempio n. 4
0
    void Update()
    {
        if (isBusy)
        {
            return;
        }

        if (Input.GetKeyDown(KeyCode.UpArrow))
        {
            if (activeDisaster != null && activeDisaster.apartment == currentApartment && currentItem != null)
            {
                activeDisaster.Interact(this, currentItem);
                return;
            }

            if (activeDisasterSpawners.Count > 0)
            {
                DisasterSpawner spawner = activeDisasterSpawners.Find(ds => ds.broken && ds.apartment == currentApartment);
                if (spawner != null)
                {
                    spawner.Fix(this);
                    return;
                }
            }

            if (activeDoor != null)
            {
                activeDoor.Enter(this);
                return;
            }

            if (activeItems.Count > 0 && currentItem == null && activeItems[0].currentApartment == currentApartment)
            {
                PickUpItem(activeItems[0]);
                return;
            }
        }
        else if (Input.GetKeyDown(KeyCode.DownArrow))
        {
            if (activeDoor != null && currentApartment != null)
            {
                activeDoor.Exit(this);
                return;
            }

            if (currentItem != null)
            {
                DropItem(currentItem);
                return;
            }
        }

        float deltaTime      = Time.deltaTime;
        float distance       = speed * deltaTime;
        float directionValue = 0f;

        if (Input.GetKey(KeyCode.LeftArrow))
        {
            directionValue = -1f;
        }
        else if (Input.GetKey(KeyCode.RightArrow))
        {
            directionValue = 1f;
        }

        Move(distance * directionValue);
    }
Esempio n. 5
0
 public void SetSpawner(DisasterSpawner sp)
 {
     spawner = sp;
 }