public void DeleteParty(int partyId)
 {
     // TODO fix this after changes to List<MenuPartyData>
     MenuPartyData[] newPartyData = new MenuPartyData[allMenuPartyData.Length - 1];
     for (int i = 0; i < allMenuPartyData.Length; i++)
     {
         if (allMenuPartyData[i].id < partyId)
         {
             newPartyData[i] = allMenuPartyData[i];
         }
         else if (allMenuPartyData[i].id > partyId)
         {
             allMenuPartyData[i].id = allMenuPartyData[i].id - 1;
             newPartyData[i - 1]    = allMenuPartyData[i];
         }
     }
     loadedData.allMenuPartyData = newPartyData;
     if (partyId <= GetCurrentPlayerParty())
     {
         SetPlayerComp(GetCurrentPlayerParty() - 1);
     }
     else
     {
         SaveMenuData();
         LoadMenuData();
     }
 }
    public void EditPartyName(MenuPartyData party)
    {
        List <MenuPartyData> listMenupartyData = allMenuPartyData.ToList();

        listMenupartyData[party.id].name = party.name;
        loadedData.allMenuPartyData      = listMenupartyData.ToArray();
        SaveMenuData();
        LoadMenuData();
    }
    // Temporary to get to testing, complete rewrite later
    public void CreateTestParty(MenuPartyData testParty)
    {
        List <MenuPartyData> listMenuPartyData = allMenuPartyData.ToList();

        testParty.id = listMenuPartyData.Count;
        listMenuPartyData.Add(testParty);
        loadedData.allMenuPartyData = listMenuPartyData.ToArray();
        SaveMenuData();
        LoadMenuData();
    }
 private void LoadBattleData()
 {
     #region Character Creation Variables
     List <BattleCharacter> tempCharacters = new List <BattleCharacter>();
     // temporary value
     int baseMovement = 5;
     // base this on rarity/level/armortype later TODO
     int baseHealth = 1824;
     // temporary value
     int baseInitiative = 6;
     #endregion
     MenuPartyData party          = GetMenuPartyData();
     int[]         partyMemberIds = { party.slotOneCharacterId, party.slotTwoCharacterId, party.slotThreeCharacterId, party.slotFourCharacterId };
     foreach (int id in partyMemberIds)
     {
         BattleCharacter   character     = new BattleCharacter();
         MenuCharacterData characterData = GetCharacter(id);
         if (characterData.name != null && characterData.name != "")
         {
             // set Name
             character.name = characterData.name;
             // set Movement range
             character.movementRange = baseMovement - (int)Mathf.Floor(characterData.armor / 2); // Light and Medium armor get movement of 5, Heavy gets movement of 4
             // set Max HP
             character.maxHp = (int)Mathf.Floor(baseHealth * (characterData.armor / 10)) + baseHealth;
             // set Initiative
             if (characterData.armor == 0)
             {
                 character.initiative = baseInitiative + (int)Mathf.Floor(Random.value * 20);
             }
             else if (characterData.armor == 1)
             {
                 character.initiative = (baseInitiative + 5) + (int)Mathf.Floor(Random.value * 20);
             }
             else if (characterData.armor == 2)
             {
                 character.initiative = (baseInitiative - 5) + (int)Mathf.Floor(Random.value * 20);
             }
             else
             {
                 Debug.LogError("Can not find out what armor character is wearing");
             }
             // set Damage Mod
             character.damageMod = 1;
             character.abilities = LoadAbilities(characterData.weapon);
             tempCharacters.Add(character);
         }
         else
         {
             Debug.LogError("character does not exist in party");
         }
     }
     battleCharacters = tempCharacters;
 }
Пример #5
0
    private UIParty CreateUIParty(MenuPartyData 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);
    }
Пример #6
0
    // todo add the fetch data stuff, get the weapons and format the character data in here
    public void SwapPartyCharacter()
    {
        int            characterId   = character.id;
        MenuPartyData  partyToChange = party;
        DataLoader     dataLoader    = new DataLoader();
        DataController data          = dataLoader.LoadData();

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

        sceneLoader.CharactersMenu();
    }
    private void AddCharacters(List <UICharacter> characters, MenuPartyData menuPartyData)
    {
        // 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 = characterObjectPool.GetObject();
            newCharacter.transform.SetParent(contentPanel);

            SampleCharacter sampleCharacter = newCharacter.GetComponent <SampleCharacter>();
            Debug.Log(party.name);
            sampleCharacter.Setup(character, this, menuPartyData);
        }
    }
Пример #8
0
    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
        MenuPartyData party = data.GetMenuPartyData();

        MenuCharacterData[] characters = data.GetAllMenuCharacterData();

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

        dataPop.PopulateParty(data, party, characters);
    }
Пример #9
0
 public void Setup(UICharacter currentCharacter, ScrollParty currentScrollParty, MenuPartyData currentParty)
 {
     // todo handle ID
     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;
     scrollParty  = currentScrollParty;
 }
Пример #10
0
    // This is placeholder to get to the testing phase. Complete rewrite
    public void CreateNewTestParty()
    {
        DataLoader     dataLoader = new DataLoader();
        DataController data       = dataLoader.LoadData();
        MenuPartyData  testParty  = new MenuPartyData();

        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();
    }
    public void DuplicateParty(MenuPartyData party)
    {
        // TODO fix this its probably too much resources for what its doing
        List <MenuPartyData> listMenupartyData = allMenuPartyData.ToList();
        MenuPartyData        newParty          = new MenuPartyData();

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

        listMenupartyData.Add(newParty);
        loadedData.allMenuPartyData = listMenupartyData.ToArray();
        SaveMenuData();
        LoadMenuData();
    }
Пример #12
0
    public void Setup(UIParty currentParty, PartiesMenu currentPartiesMenu, List <UICharacter> characters, MenuPartyData[] menuParties)
    {
        menuPartyData = menuParties;
        foreach (UICharacter character in characters)
        {
            character.partyId = currentParty.partyId;
        }
        foreach (MenuPartyData menuParty in menuPartyData)
        {
            if (currentParty.partyId == menuParty.id)
            {
                party = menuParty;
            }
        }
        RefreshDisplay(characters, party);
        AppendDataToButtons(currentParty.partyId);

        // we have the party ID at this point

        partiesMenu = currentPartiesMenu;
    }
    private void LoadMenuData()
    {
        string filePath = Path.Combine(Application.streamingAssetsPath, gameDataFileName);

        if (File.Exists(filePath))
        {
            string dataAsJson = File.ReadAllText(filePath);
            loadedData           = MenuData.CreateFromJSON(dataAsJson);
            allMenuCharacterData = loadedData.allMenuCharacterData;
            allMenuPartyData     = loadedData.allMenuPartyData;
            allMenuWeaponData    = loadedData.allMenuWeaponData;
            allMenuAbilityData   = loadedData.allMenuAbilityData;
            navData             = loadedData.navData;
            previousCharacterId = loadedData.previousCharacterId;
            characterSwapParty  = loadedData.characterSwapParty;
        }
        else
        {
            Debug.LogError("Cannot load game data");
        }
    }
Пример #14
0
    public void PopulateParty(DataController data, MenuPartyData party, MenuCharacterData[] 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 = "";
                    }
                }
            }
        }
    }
Пример #15
0
 private void RefreshDisplay(List <UICharacter> characters, MenuPartyData menuPartyData)
 {
     AddCharacters(characters, menuPartyData);
 }
 public void SetCharacterSwap(MenuPartyData party, int characterId)
 {
     previousCharacterId = characterId;
     characterSwapParty  = party;
     Debug.Log(party.name);
 }