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); } }
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); }
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); }
public void SetSpawner(DisasterSpawner sp) { spawner = sp; }