Example #1
0
    //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;
        }
    }
Example #2
0
    //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]);
        }
    }
Example #3
0
    //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;
        }
    }
Example #4
0
    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");
        }
    }
Example #5
0
    public void OnFireBuilt()
    {
        switch (CurrentLevelVariableManagement.GetMainGameData().currentLevel)
        {
        case 0:
//			if (objectives[4].completed == false)
//				OnObjectiveHasBeenCompleted(5);
            break;
        }
    }
Example #6
0
    //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;
        }
    }
Example #7
0
    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);
    }
Example #8
0
    //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;
        }
    }
Example #9
0
    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);
    }
Example #10
0
    //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();
                }
            }
        }
    }