//Initialize Objective References void InitializeObjectiveReferences() { int totalNumberOfObjectives = 2; objectives = new ObjectiveReference[totalNumberOfObjectives]; //Set objective references for (int i = 0; i < totalNumberOfObjectives; i++) { objectives[i] = new ObjectiveReference(transform.Find("Objective " + (i + 1))); objectives [i].Reset(); } //Set the button reference. continueToNextLevel = transform.Find("Level Continue").Find("Button").GetComponent <Button> (); continueToNextLevel.interactable = false; //Set initial values. switch (CurrentLevelVariableManagement.GetMainGameData().currentLevel) { case 0: objectives [0].icon.sprite = ResourceDatabase.GetItemByParameter("Subsidiary Reactor Core").itemIcon; objectives [0].description.text = "Subsidiary Reactor Core"; objectives [1].icon.sprite = ResourceDatabase.GetItemByParameter("Wooden Pickaxe").itemIcon; objectives [1].description.text = "Pickaxe"; break; default: Debug.LogError("The current level has not been added in ObjectiveManager!"); break; } }
//Used when a player profession is changed. public void UpdatePlayerProfession(Profession profession) { //Update with common gender sprites body.sprite = profession.body; idleArm.sprite = profession.arm; holdingArm.sprite = profession.arm; topLeg.sprite = profession.leg; bottomLeg.sprite = profession.leg; //Gender check. if (CurrentLevelVariableManagement.GetMainGameData().chosenGender == 0) { head.sprite = profession.maleHead; } else { head.sprite = profession.femaleHead; } //Add the initial items for the profession to the inventory. for (int i = 0; i < profession.initialObjects.Length; i++) { playerInventory.AssignNewItemToBestSlot(profession.initialObjects[i]); } }
//When a new item is added. public void OnNewItemAddedToPlayerInventory() { switch (CurrentLevelVariableManagement.GetMainGameData().currentLevel) { case 0: //Check to make sure the objective has not already been completed //Wooden Pickaxe Objective if (objectives [0].completed == false) { //Check whether the player has the hatchet. if (CurrentLevelVariableManagement.GetMainInventoryReference().GetComponent <InventoryFunctions> ().CheckForCertainInventoryItem(new ResourceReferenceWithStack(ResourceDatabase.GetItemByParameter("Wooden Pickaxe"), 1)) != null) { OnObjectiveHasBeenCompleted(1); } } // // //Wooden Sword Objective // if (objectives [3].completed == false) { // if (ModifiesSlotContent.DetermineWhetherPlayerHasCertainInventoryItem(new UISlotContentReference(ResourceDatabase.GetItemByParameter ("Wooden Pickaxe"), 1)) != null) { // OnObjectiveHasBeenCompleted(4); // } // } break; default: Debug.LogError("Objective Manager does not have a definition for this level!"); break; } }
void StartCountdown() { //Show the district thing. gameObject.SetActive(true); //Define the level that will be used locally by checking the current level in the GameData. int levelToUse = CurrentLevelVariableManagement.GetMainGameData().currentLevel; if (levelToUse + 1 <= levels.Length) { //Access game data and determine the correct LevelDisplay. LevelDisplay levelDisplayToUse = levels [levelToUse]; //Set the text or image. if (levelDisplayToUse.useImageInsteadOfText) { transform.Find("Image").gameObject.SetActive(true); transform.Find("Image").GetComponent <Image> ().sprite = levelDisplayToUse.image; } else { transform.Find("Text").gameObject.SetActive(true); transform.Find("Text").GetComponent <Text> ().text = levelDisplayToUse.text; } StartCoroutine(DistrictDisplayingTimer()); } else { Debug.LogError("No LevelDisplay fit the specified criteria"); } }
public void OnFireBuilt() { switch (CurrentLevelVariableManagement.GetMainGameData().currentLevel) { case 0: // if (objectives[4].completed == false) // OnObjectiveHasBeenCompleted(5); break; } }
//When a tree is chopped. Possibly consider counting this as a stat: i.e. trees chopped during game. public void OnTreeChopped() { switch (CurrentLevelVariableManagement.GetMainGameData().currentLevel) { case 0: // if (objectives [1].completed == false) { // OnObjectiveHasBeenCompleted (2); // } break; default: Debug.LogError("Objective Manager does not have a definition for this level!"); break; } }
void InitializeSpriteChildren() { mainPlayerAction = transform.parent.parent.gameObject.GetComponent <PlayerAction> (); playerInventory = CurrentLevelVariableManagement.GetMainInventoryReference().GetComponent <InventoryFunctions> (); //Just setting up the basic race costume. body = transform.Find("Body").GetComponent <SpriteRenderer> (); head = transform.Find("Head").GetComponent <SpriteRenderer> (); idleArm = transform.Find("Hands").Find("IdleHand").GetComponent <SpriteRenderer> (); holdingArm = transform.Find("Hands").Find("HoldingHand").GetComponent <SpriteRenderer> (); topLeg = transform.Find("Legs").Find("Top Leg").GetComponent <SpriteRenderer> (); bottomLeg = transform.Find("Legs").Find("Bottom Leg").GetComponent <SpriteRenderer> (); holdingItem = holdingArm.transform.Find("HoldingItem"); Profession currentPlayerProfession = CurrentLevelVariableManagement.GetMainGameData().chosenProfession; UpdatePlayerProfession(currentPlayerProfession); }
//When some amount of money is earned or taken. public void OnMoneyModified(int amount) { switch (CurrentLevelVariableManagement.GetMainGameData().currentLevel) { case 0: // if (amount > 0) { // if (objectives[2].completed == false) { // OnObjectiveHasBeenCompleted(3); // } // } break; default: Debug.LogError("Objective Manager does not have a definition for this level!"); break; } }
protected override void InitializeHealthBar() { if (lifePoints <= 0) { Debug.Log("Player health is " + lifePoints + " which is an invalid value. Switching to 10."); lifePoints = 10; } currentHealth = lifePoints; //Create panel uiHealthController = CurrentLevelVariableManagement.GetLevelUIReference().transform.Find("Health Controller").gameObject.GetComponent <UIHealthController> (); playerHealthPanelReference = uiHealthController.GetPlayerHealthPanelReference(); //Initialize icon characterHeadSprite = transform.Find("FlippingItem").GetChild(0).Find("Head").GetComponent <SpriteRenderer> ().sprite; playerHealthPanelReference.InitializePanel(characterHeadSprite, lifePoints, currentHealth); //Give player money obtained previously. GiveMoneyToPlayer(CurrentLevelVariableManagement.GetMainGameData().currentPlayerMoney); }
//The method that initializes the values of the health panel. protected override void InitializeHealthPanelReference() { base.InitializeHealthPanelReference(); //Name of player playerName = transform.Find("Name").gameObject.GetComponent <Text> (); playerName.text = CurrentLevelVariableManagement.GetMainGameData().specifiedPlayerName; //Experience components. currentPlayerProfession = transform.Find("Experience").Find("ProfessionName").gameObject.GetComponent <Text> (); currentPlayerProfession.text = CurrentLevelVariableManagement.GetMainGameData().chosenProfession.name; experienceSlider = transform.Find("Experience").Find("Experience Indicator").gameObject.GetComponent <Slider> (); playerLevel = transform.Find("Experience").Find("PlayerLevel").gameObject.GetComponent <Text> (); experienceSlider.maxValue = maxExpValue; experienceSlider.value = 0; //Coin Values coinValue = transform.Find("Cash").Find("Value").GetComponent <Text> (); coinValue.text = "0"; }
//Actual script void InitializeSystemWideParticleEffect() { //Check to make sure that this is the Ice Age. if (CurrentLevelVariableManagement.GetMainGameData().currentLevel == 0) { //Create the particle effect thing. GameObject createdParticleEffectParent = new GameObject("Level Particle Effect"); createdParticleEffectParent.transform.SetParent(GameObject.Find("Maze").transform); //Get level length float levelLength = CurrentLevelVariableManagement.GetLevelLengthX(); float amountOfAreaToCover = 1.2f * levelLength; //Set the position of the particle effect parent. createdParticleEffectParent.transform.localPosition = new Vector3(levelLength / 2, 45, 0); //The scale of the particle effect. float particleEffectScale = 100f / numberOfSegmentsToCreatePer100; //For all of the sub-100 segments. (i.e., 700 width, 7 times). for (int i = 0; i < (int)(amountOfAreaToCover / 100f); i++) { //For all of the particle effects that should be created for each interval of 100. for (int j = 0; j < numberOfSegmentsToCreatePer100; j++) { //Create a particle effect at some point. //Formula is half the level length (counteract the local position of the parent) + i * numberOfSegmentsToCreatePer100 float xPosition = (-amountOfAreaToCover / 2) + (i * numberOfSegmentsToCreatePer100 + j) * (particleEffectScale); //Create the particle effect GameObject createdParticleEffectSegment = (GameObject)(Instantiate(snowParticleEffect, Vector3.zero, snowParticleEffect.transform.localRotation)); createdParticleEffectSegment.transform.SetParent(createdParticleEffectParent.transform); createdParticleEffectSegment.transform.localPosition = new Vector3(xPosition, 0, 0); createdParticleEffectSegment.transform.localScale = new Vector3(particleEffectScale, 1, 1); //Set the emission rate of the particle effect. ParticleSystem.EmissionModule em = createdParticleEffectSegment.GetComponent <ParticleSystem> ().emission; em.rate = new ParticleSystem.MinMaxCurve(particleEffectScale); //Initialize the particle effect. createdParticleEffectSegment.GetComponent <ActivateParticleEffectDependingOnPlayerDistance> ().StartPlayerDistanceChecking(); } } } }