Example #1
0
 public void DeleteParty(int partyId)
 {
     // TODO fix this after changes to List<PlayerPartyData>
     PlayerPartyData[] newPartyData = new PlayerPartyData[allPlayerPartyData.Length - 1];
     for (int i = 0; i < allPlayerPartyData.Length; i++)
     {
         if (allPlayerPartyData[i].id < partyId)
         {
             newPartyData[i] = allPlayerPartyData[i];
         }
         else if (allPlayerPartyData[i].id > partyId)
         {
             allPlayerPartyData[i].id = allPlayerPartyData[i].id - 1;
             newPartyData[i - 1]      = allPlayerPartyData[i];
         }
     }
     loadedPlayerData.playerPartyData = newPartyData;
     if (partyId <= GetCurrentPlayerParty())
     {
         SetPlayerComp(GetCurrentPlayerParty() - 1);
     }
     else
     {
         SavePlayerData();
     }
 }
Example #2
0
 public void SwapCharacterInParty(PlayerPartyData party, int oldCharacterId, int newCharacterId)
 {
     int[] partyMembers = { party.slotOneCharacterId, party.slotTwoCharacterId, party.slotThreeCharacterId, party.slotFourCharacterId };
     for (int i = 0; i < partyMembers.Length; i++)
     {
         if (partyMembers[i] == oldCharacterId)
         {
             partyMembers[i] = newCharacterId;
             break;
         }
     }
     int[] newPartyMembers = { partyMembers[0], partyMembers[1], partyMembers[2], partyMembers[3] };
     for (int i = 0; i < allPlayerPartyData.Length; i++)
     {
         if (allPlayerPartyData[i] == party)
         {
             party.slotOneCharacterId   = newPartyMembers[0];
             party.slotTwoCharacterId   = newPartyMembers[1];
             party.slotThreeCharacterId = newPartyMembers[2];
             party.slotFourCharacterId  = newPartyMembers[3];
             allPlayerPartyData[i].Equals(party);
             break;
         }
     }
     loadedPlayerData.playerPartyData = allPlayerPartyData;
     SavePlayerData();
 }
Example #3
0
    public void EditPartyName(PlayerPartyData party)
    {
        List <PlayerPartyData> listPlayerPartyData = allPlayerPartyData.ToList();

        listPlayerPartyData[party.id].name = party.name;
        loadedPlayerData.playerPartyData   = listPlayerPartyData.ToArray();
        SavePlayerData();
    }
Example #4
0
 private void InitializeBattle()
 {
     #region Character Creation Variables
     List <BattleCharacter> tempCharacters = new List <BattleCharacter>();
     // temporary value
     int baseMovement = 1;
     // base this on rarity/level/armortype later TODO
     int baseHealth = 1824;
     // temporary value
     int baseInitiative = 6;
     #endregion
     PlayerPartyData party          = GetPlayerPartyData();
     int[]           partyMemberIds = { party.slotOneCharacterId, party.slotTwoCharacterId, party.slotThreeCharacterId, party.slotFourCharacterId };
     foreach (int id in partyMemberIds)
     {
         BattleCharacter     character     = new BattleCharacter();
         PlayerCharacterData characterData = GetCharacter(id);
         if (characterData.name != null && characterData.name != "")
         {
             // set Name
             character.name = characterData.name;
             // set Movement range
             // set Max HP
             character.maxHp = (int)Mathf.Floor(baseHealth * (characterData.armor / 10.0f)) + baseHealth;
             Debug.Log(character.maxHp);
             // set Initiative
             if (characterData.armor == 0)
             {
                 character.initiative   = baseInitiative + (int)Mathf.Floor(Random.value * 20);
                 character.movementCost = 1;
             }
             else if (characterData.armor == 1)
             {
                 character.initiative   = (baseInitiative + 5) + (int)Mathf.Floor(Random.value * 20);
                 character.movementCost = 1;
             }
             else if (characterData.armor == 2)
             {
                 character.initiative   = (baseInitiative - 5) + (int)Mathf.Floor(Random.value * 20);
                 character.movementCost = 2;
             }
             else
             {
                 Debug.LogError("Can not find out what armor character is wearing");
             }
             // set Damage Mod
             character.damageMod = 1;
             // Temporary
             character.abilities = LoadAbilities(characterData.weapon);
             tempCharacters.Add(character);
         }
         else
         {
             Debug.LogError("character does not exist in party");
         }
     }
     battleCharacters = tempCharacters;
 }
Example #5
0
    // Temporary to get to testing, complete rewrite later
    public void CreateTestParty(PlayerPartyData testParty)
    {
        List <PlayerPartyData> listPlayerPartyData = allPlayerPartyData.ToList();

        testParty.id = listPlayerPartyData.Count;
        listPlayerPartyData.Add(testParty);
        loadedPlayerData.playerPartyData = listPlayerPartyData.ToArray();
        SavePlayerData();
    }
Example #6
0
    // todo add the fetch data stuff, get the weapons and format the character data in here
    public void SwapPartyCharacter()
    {
        PlayerPartyData partyToChange = party;
        DataLoader      dataLoader    = new DataLoader();
        DataController  data          = dataLoader.LoadData();

        data.SetCharacterSwap(partyToChange, characterId);
        SceneLoader sceneLoader = new SceneLoader();

        sceneLoader.CharactersMenu();
    }
    private UIParty CreateUIParty(PlayerPartyData party, DataController data)
    {
        UIParty curParty = new UIParty();

        curParty.partyId   = party.id;
        curParty.partyName = party.name;
        if (data.GetCurrentPlayerParty() == party.id)
        {
            curParty.selected = true;
        }
        return(curParty);
    }
    private void AddCharacters(List <UICharacter> characters, PlayerPartyData playerPartyData)
    {
        // will need to add empty slots if there are empty characters
        for (int i = 0; i < characters.Count; i++)
        {
            UICharacter character    = characters[i];
            GameObject  newCharacter = GameObject.Find("CharacterObjectPool").GetComponent <SimpleObjectPool>().GetObject();
            newCharacter.transform.SetParent(contentPanel);

            SampleCharacter sampleCharacter = newCharacter.GetComponent <SampleCharacter>();
            sampleCharacter.Setup(character, this, playerPartyData);
        }
    }
    void Start()
    {
        // Load data from file, and place it in data object. This will be where all player specific data is located
        DataLoader     dataLoader = new DataLoader();
        DataController data       = dataLoader.LoadData();
        // Get Players Current Selected party
        PlayerPartyData party = data.GetPlayerPartyData();

        PlayerCharacterData[] characters = data.GetAllPlayerCharacterData();

        // Display the data on the current scene canvas (MainMenu)
        DataFormat dataPop = new DataFormat();

        dataPop.PopulateParty(data, party, characters);
    }
Example #10
0
    public void DuplicateParty(PlayerPartyData party)
    {
        // TODO fix this its probably too much resources for what its doing
        List <PlayerPartyData> listPlayerPartyData = allPlayerPartyData.ToList();
        PlayerPartyData        newParty            = new PlayerPartyData();

        newParty.id   = listPlayerPartyData.Count();
        newParty.name = party.name;
        newParty.slotOneCharacterId   = party.slotOneCharacterId;
        newParty.slotTwoCharacterId   = party.slotTwoCharacterId;
        newParty.slotThreeCharacterId = party.slotThreeCharacterId;
        newParty.slotFourCharacterId  = party.slotFourCharacterId;

        listPlayerPartyData.Add(newParty);
        loadedPlayerData.playerPartyData = listPlayerPartyData.ToArray();
        SavePlayerData();
    }
 public void Setup(UICharacter currentCharacter, ScrollParty currentScrollParty, PlayerPartyData currentParty)
 {
     character    = currentCharacter;
     name.text    = character.name;
     level.text   = character.level;
     weapon.text  = character.weapon;
     armor.text   = character.armor;
     quality      = character.quality;
     weapon.color = quality;
     armor.color  = quality;
     partyId      = character.partyId;
     party        = currentParty;
     characterId  = character.id;
     scrollParty  = currentScrollParty;
     gameObject.GetComponent <Button>().onClick.RemoveAllListeners();
     gameObject.GetComponent <Button>().onClick.AddListener(SwapPartyCharacter);
 }
    // This is placeholder to get to the testing phase. Complete rewrite
    public void CreateNewTestParty()
    {
        DataLoader      dataLoader = new DataLoader();
        DataController  data       = dataLoader.LoadData();
        PlayerPartyData testParty  = new PlayerPartyData();

        testParty.name = "Temporary Party";
        testParty.slotOneCharacterId   = 0;
        testParty.slotTwoCharacterId   = 1;
        testParty.slotThreeCharacterId = 2;
        testParty.slotFourCharacterId  = 3;
        data.CreateTestParty(testParty);

        SceneLoader sceneLoader = new SceneLoader();

        sceneLoader.ReloadScene();
    }
Example #13
0
    private void LoadPlayerData()
    {
        string filePath = Path.Combine(Application.streamingAssetsPath, playerDataFileName);

        if (File.Exists(filePath))
        {
            string dataAsJson = File.ReadAllText(filePath);
            loadedPlayerData       = PlayerData.CreateFromJSON(dataAsJson);
            allPlayerCharacterData = loadedPlayerData.playerCharacterData;
            allPlayerPartyData     = loadedPlayerData.playerPartyData;
            previousCharacterId    = loadedPlayerData.previousCharacterId;
            characterSwapParty     = loadedPlayerData.characterSwapParty;
        }
        else
        {
            Debug.LogError("Cannot load game data");
        }
    }
    private void AddCharacters(PlayerCharacterData[] characters)
    {
        // will need to add empty slots if there are empty characters
        for (int i = 0; i < characters.Length; i++)
        {
            int charId = characters[i].id;
            int slot1  = -1;
            int slot2  = -1;
            int slot3  = -1;
            int slot4  = -1;

            if (data.GetPreviousPage() == 3)
            {
                PlayerPartyData party = data.GetPartyToEdit();
                slot1 = party.slotOneCharacterId;
                slot2 = party.slotTwoCharacterId;
                slot3 = party.slotThreeCharacterId;
                slot4 = party.slotFourCharacterId;
                GameObject.Find("Backbutton").GetComponent <Button>().onClick.RemoveAllListeners();
                GameObject.Find("Backbutton").GetComponent <Button>().onClick.AddListener(delegate { new SceneLoader().PartiesMenu(); });
            }
            if (charId != slot1 && charId != slot2 && charId != slot3 && charId != slot4)
            {
                UICharacter character    = dataFormat.CreateUICharacter(characters[i], data);
                GameObject  newCharacter = GameObject.Find("CharacterObjectPool").GetComponent <SimpleObjectPool>().GetObject();
                newCharacter.transform.SetParent(GameObject.Find("CharacterContainer").transform);
                newCharacter.GetComponent <Button>().interactable = true;
                newCharacter.GetComponent <Button>().onClick.RemoveAllListeners();
                if (data.GetPreviousPage() == 3)
                {
                    newCharacter.GetComponent <Button>().onClick.AddListener(delegate { SelectPartyCharacter(charId); });
                }
                else
                {
                    newCharacter.GetComponent <Button>().onClick.AddListener(delegate { EditPartyCharacter(charId); });
                }

                SampleCharacter sampleCharacter = newCharacter.GetComponent <SampleCharacter>();
                sampleCharacter.Setup(character, this);
            }
        }
    }
    public void Setup(UIParty currentParty, PartiesMenu currentPartiesMenu, List <UICharacter> characters, PlayerPartyData[] playerParties)
    {
        playerPartyData = playerParties;
        foreach (UICharacter character in characters)
        {
            character.partyId = currentParty.partyId;
        }
        foreach (PlayerPartyData playerParty in playerPartyData)
        {
            if (currentParty.partyId == playerParty.id)
            {
                party = playerParty;
            }
        }
        RefreshDisplay(characters, party);
        AppendDataToButtons(currentParty.partyId);

        // we have the party ID at this point

        partiesMenu = currentPartiesMenu;
    }
    // This is placeholder to get to the testing phase. Complete rewrite
    public void CreateNewTestParty()
    {
        DataLoader      dataLoader = new DataLoader();
        DataController  data       = dataLoader.LoadData();
        PlayerPartyData testParty  = new PlayerPartyData();

        testParty.name = "Temporary Party " + data.GetAllPlayerParties().Length;
        for (int i = 0; i < 4; i++)
        {
            data.AddNewCharacter();
        }
        testParty.slotOneCharacterId   = data.GetAllPlayerCharacterData().Length - 4;
        testParty.slotTwoCharacterId   = data.GetAllPlayerCharacterData().Length - 3;
        testParty.slotThreeCharacterId = data.GetAllPlayerCharacterData().Length - 2;
        testParty.slotFourCharacterId  = data.GetAllPlayerCharacterData().Length - 1;
        data.CreateTestParty(testParty);

        SceneLoader sceneLoader = new SceneLoader();

        sceneLoader.ReloadScene();
    }
    public void PopulateParty(DataController data, PlayerPartyData party, PlayerCharacterData[] characters)
    {
        // Get all of the Button Elements (Character Slots)
        Button[] buttons = GameObject.FindGameObjectWithTag("PartyCharacters").GetComponentsInChildren <Button>();
        // store the character IDs in array for loop
        int[] characterIds = { party.slotOneCharacterId, party.slotTwoCharacterId, party.slotThreeCharacterId, party.slotFourCharacterId };

        for (int i = 0; i < buttons.Length; i++)
        {
            // Get all of the text elements
            TextMeshProUGUI[] allText = buttons[i].GetComponentsInChildren <TextMeshProUGUI>();

            if (characters[characterIds[i]].name != "")
            {
                // TODO set id and hide it somewhere in button

                // pass on values to get changed from IDs to display values
                #region CharacterDataVars
                string characterName   = characters[characterIds[i]].name;
                string characterLevel  = FormatCharacterLevel(characters[characterIds[i]].level);
                string characterWeapon = GetWeaponName(characters[characterIds[i]].weapon, data);
                if (characters[characterIds[i]].offHand > -1)
                {
                    string characterOffhand = GetWeaponName(characters[characterIds[i]].offHand, data);
                    characterWeapon = characterWeapon + " / " + characterOffhand;
                }
                string  characterArmor   = GetArmorName(characters[characterIds[i]].armor);
                Color32 characterQuality = ConvertQuality(characters[characterIds[i]].quality);
                #endregion

                // create string array for the loop
                string[] characterData =
                {
                    characterName,
                    characterLevel,
                    characterWeapon,
                    characterArmor
                };

                // loop through the text fields and populate the data
                for (int j = 0; j < allText.Length; j++)
                {
                    allText[j].text = characterData[j];
                }

                // change rarity color for last 2 elements
                System.Array.Reverse(allText);
                for (int j = 0; j < 2; j++)
                {
                    allText[j].color = characterQuality;
                }
            }
            else
            {
                // make sure text fields are empty if no character data, and make first field 'Empty Slot'
                for (int j = 0; j < allText.Length; j++)
                {
                    if (j == 0)
                    {
                        allText[j].text = "Empty Slot";
                    }
                    else
                    {
                        allText[j].text = "";
                    }
                }
            }
        }
    }
 private void RefreshDisplay(List <UICharacter> characters, PlayerPartyData playerPartyData)
 {
     AddCharacters(characters, playerPartyData);
 }
Example #19
0
 public void SetCharacterSwap(PlayerPartyData party, int characterId)
 {
     previousCharacterId = characterId;
     characterSwapParty  = party;
 }