// Start is called before the first frame update void Start() { if (!player) { player = Instantiate(playerPrefab); } DontDestroyOnLoad(player); DontDestroyOnLoad(forestSpawn.gameObject); DontDestroyOnLoad(houseSpawn.gameObject); uniquePlacement = GetComponent <ObjectPlacement>(); playerController = player.GetComponent <PlayerController>(); playerController.OnPlayerPickUpLastItem += UnlockEntranceDoor; playerController.checklistGameObject = playerCheckList; for (int i = 0; i < maxItemsNeeded; i++) { int random = Random.Range(0, allItems.Length); while (itemNumber.Contains(random)) { random = Random.Range(0, allItems.Length); } itemNumber.Add(random); } itemsNeeded = new GameObject[maxItemsNeeded]; playerController.checklistItems = new PlayerController.checklistItem[maxItemsNeeded]; uniquePlacement.prefabs = new ObjectPlacement.prefabInfo[itemsNeeded.Length]; for (int i = 0; i < itemsNeeded.Length; i++) { GameObject newItem = Instantiate(allItems[itemNumber[i]]); GameObject newIngredientText = Instantiate(checklistItemUIPrefab); ObjectCore newItemProperties = newItem.GetComponent <ObjectCore>(); itemsNeeded[i] = newItem; newIngredientText.transform.SetParent(playerController.checklistGameObject.transform, false); playerController.checklistItems[i].item = newIngredientText; playerController.checklistItems[i].id = newItemProperties.id; newIngredientText.name = "Ingredient #" + i + " Text"; newIngredientText.GetComponent <Text>().text = "• " + newItemProperties.itemName; newItem.SetActive(true); newItem.SetActive(false); uniquePlacement.prefabs[i].id = newItemProperties.id; } RelocatePlayer(); playerController.staffOfLighting.staffBar = staffBar; playerController.OnPlayerDeath += Loss; playerController.OnPlayerWin += Win; levelLoader = GetComponent <LevelLoader>(); //generator.OnGeneratorFinish += SpawnPlayer; }
private void PickUpItem(GameObject item) { if (objectsGrabbed.Count < maxInventorySlots) { if (item.GetComponent <ObjectCore>().canBePickedUp) { Debug.Log("nani1"); int randomNumber = Random.Range(0, pickupSounds.Length); if (pickupSounds.Length > 0) { pickupSounds[randomNumber].Play(); } ObjectCore newObject = item.transform.gameObject.GetComponent <ObjectCore>(); objectProperties newProperties = new objectProperties(); newProperties.id = newObject.id; GameObject newIcon = Instantiate(newObject.icon); newProperties.icon = newIcon; objectsGrabbed.Add(newProperties); Destroy(item); if (OnPlayerPickUpItem != null) { OnPlayerPickUpItem(); } if (idOfKeyItem == newProperties.id) { if (OnPlayerFoundKeyItem != null) { OnPlayerFoundKeyItem(); } } if (idOfWin == newProperties.id) { Debug.Log("You won!!"); fpsController.enabled = false; characterController.enabled = false; if (OnPlayerWin != null) { OnPlayerWin(); } } bool isItemOnChecklist = false; for (int i = 0; i < checklistItems.Length; i++) { if (checklistItems[i].id == newProperties.id) { GameObject checklistItem = checklistItems[i].item.transform.GetChild(0).gameObject; checklistItem.SetActive(true); Debug.Log("This item has been scratched"); scracthChecklistSound.Play(); isItemOnChecklist = true; } } if (newObject.isLastItem) { // Player can return to home. Debug.Log("Player Can Go Home"); if (OnPlayerPickUpLastItem != null) { OnPlayerPickUpLastItem(); } } newObject.PickupObject(); if (isItemOnChecklist) { scracthChecklistSound.Play(); } } } }
public EmptyObject2D() { Core = new ObjectCore(OnAdded, OnUpdate, OnRemoved, OnDispose); }