Example #1
0
    public void savePlayerDataToFile()
    {
        //fetching and creating references to players current scripts
        player_log       = gameObject.GetComponent <Player_Log>();
        characterStats   = gameObject.GetComponent <CharacterStats>();
        player_Inventory = gameObject.GetComponent <Player_Inventory>();
        skillsManager    = gameObject.GetComponent <SkillsManager>();

        //creating scriptable instance of the PlayerObjectData that will be saved as JSON
        Data = (PlayerObjectData)ScriptableObject.CreateInstance("PlayerObjectData");

        //adding Data from different classes

        //adding Data from CharacterStats
        Data.saveCharacterStatData(characterStats.getStatBaseValue("HP"), characterStats.getCurrentHP(), characterStats.getStatBaseValue("Attack"), characterStats.getStatBaseValue("Defence"),
                                   characterStats.getStatBaseValue("Agility"), characterStats.CharacterLevel, characterStats.getExperiencePoints(), characterStats.Level_Experience_Required);

        //adding Data from inventory
        Data.saveInventoryItems(player_Inventory.getInventory());

        //Adding Data from SkillManager
        Data.saveSkillManager(skillsManager.getAllPlayerSkills(), skillsManager.getSlot1Skill(), skillsManager.getSlot2Skill());

        //Adding Data from Attacklog
        Data.savePlayerLog(player_log);

        //Saving instance to new file
        File.WriteAllText(Application.dataPath + "/Resources/SaveData/FloorTransitionData.txt",
                          JsonUtility.ToJson(Data));

        if (!transitionFloorInt.Equals(-1))
        {
            SceneManager.LoadScene(transitionFloorInt, LoadSceneMode.Single);
        }
    }
    public void displaySkillInfo(int buttonId)
    {
        if ((buttonId + currentListOffset) < playersManager.getTotalSkillCount())
        {
            currentButton = buttonId;

            gameObject.transform.Find("SetSkill1Button").gameObject.GetComponent <Button>().interactable = false;
            gameObject.transform.Find("SetSkill2Button").gameObject.GetComponent <Button>().interactable = false;


            if ((!playersManager.getSlot1Skill().getSkillName().Equals(playersManager.getSkillInfoAt((buttonId + currentListOffset)).getSkillName())) &&
                (!playersManager.getSlot2Skill().getSkillName().Equals(playersManager.getSkillInfoAt((buttonId + currentListOffset)).getSkillName())) &&
                (!playersManager.getSkillInfoAt((buttonId + currentListOffset)).isSkillLocked()))
            {
                gameObject.transform.Find("SetSkill1Button").gameObject.GetComponent <Button>().interactable = true;
                gameObject.transform.Find("SetSkill2Button").gameObject.GetComponent <Button>().interactable = true;
            }
            else
            {
                gameObject.transform.Find("SetSkill1Button").gameObject.GetComponent <Button>().interactable = false;
                gameObject.transform.Find("SetSkill2Button").gameObject.GetComponent <Button>().interactable = false;
            }

            //if the skill is still locked then enable the lock image
            if (playersManager.getSkillInfoAt((buttonId + currentListOffset)).isSkillLocked())
            {
                gameObject.transform.Find("SkillLock").gameObject.GetComponent <Image>().enabled = true;
            }
            else
            {
                gameObject.transform.Find("SkillLock").gameObject.GetComponent <Image>().enabled = false;
            }


            //setting skillName
            gameObject.transform.Find("SkillInfo").Find("SkillName").gameObject.GetComponent <Text>().text =
                playersManager.getSkillInfoAt((buttonId + currentListOffset)).getSkillName();

            //setting skillDescription
            gameObject.transform.Find("SkillInfo").Find("SkillDescription").gameObject.GetComponent <Text>().text =
                playersManager.getSkillInfoAt((buttonId + currentListOffset)).getSkillDescription();

            //setting accuracy
            gameObject.transform.Find("SkillInfo").Find("AccuracyTitle").gameObject.GetComponent <Text>().enabled = true;
            gameObject.transform.Find("SkillInfo").Find("AccuracyValue").gameObject.GetComponent <Text>().text    =
                playersManager.getSkillInfoAt((buttonId + currentListOffset)).getAccuracy().ToString();

            //setting cooldown
            gameObject.transform.Find("SkillInfo").Find("CooldownTitle").gameObject.GetComponent <Text>().enabled = true;
            gameObject.transform.Find("SkillInfo").Find("CooldownValue").gameObject.GetComponent <Text>().text    =
                playersManager.getSkillInfoAt((buttonId + currentListOffset)).getRequiredCooldownTime().ToString() + "s";


            //if there is a multiplier then setting it, otherwise blanking it
            if (playersManager.getSkillInfoAt((buttonId + currentListOffset)).getMultiplierValue() == 0.0f)
            {
                gameObject.transform.Find("SkillInfo").Find("MultiplierTitle").gameObject.GetComponent <Text>().enabled = false;
                gameObject.transform.Find("SkillInfo").Find("MultiplierValue").gameObject.GetComponent <Text>().text    = "";
            }
            else
            {
                gameObject.transform.Find("SkillInfo").Find("MultiplierTitle").gameObject.GetComponent <Text>().enabled = true;
                gameObject.transform.Find("SkillInfo").Find("MultiplierValue").gameObject.GetComponent <Text>().text    =
                    playersManager.getSkillInfoAt((buttonId + currentListOffset)).getMultiplierValue().ToString() + "x";
            }
        }
        else
        {
            //blanking fields
            gameObject.transform.Find("SkillInfo").Find("SkillName").gameObject.GetComponent <Text>().text        = "";
            gameObject.transform.Find("SkillInfo").Find("SkillDescription").gameObject.GetComponent <Text>().text = "";

            gameObject.transform.Find("SkillInfo").Find("AccuracyTitle").gameObject.GetComponent <Text>().enabled = false;
            gameObject.transform.Find("SkillInfo").Find("AccuracyValue").gameObject.GetComponent <Text>().text    = "";

            gameObject.transform.Find("SkillInfo").Find("CooldownTitle").gameObject.GetComponent <Text>().enabled = false;
            gameObject.transform.Find("SkillInfo").Find("CooldownValue").gameObject.GetComponent <Text>().text    = "";

            gameObject.transform.Find("SkillInfo").Find("MultiplierTitle").gameObject.GetComponent <Text>().enabled = false;
            gameObject.transform.Find("SkillInfo").Find("MultiplierValue").gameObject.GetComponent <Text>().text    = "";

            gameObject.transform.Find("SkillInfo").Find("BaseValueTitle").gameObject.GetComponent <Text>().enabled = false;
            gameObject.transform.Find("SkillInfo").Find("BaseValue").gameObject.GetComponent <Text>().text         = "";

            gameObject.transform.Find("SetSkill1Button").gameObject.GetComponent <Button>().interactable = false;
            gameObject.transform.Find("SetSkill2Button").gameObject.GetComponent <Button>().interactable = false;
        }
    }