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(); } }
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(); }
public void EditPartyName(PlayerPartyData party) { List <PlayerPartyData> listPlayerPartyData = allPlayerPartyData.ToList(); listPlayerPartyData[party.id].name = party.name; loadedPlayerData.playerPartyData = listPlayerPartyData.ToArray(); SavePlayerData(); }
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; }
// 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(); }
// 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); }
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(); }
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); }
public void SetCharacterSwap(PlayerPartyData party, int characterId) { previousCharacterId = characterId; characterSwapParty = party; }