void NewChar_B_Click() { try { CharacterSave newchar = new CharacterSave(); newchar.name = newname.text; if (GameObject.Find("NewAge_T").GetComponent <Text>().text != "") { newchar.age.years = System.Convert.ToInt32(GameObject.Find("NewAge_T").GetComponent <Text>().text); } else { newchar.age.years = 0; } newchar.sexe = activesex; newchar.Pic_base = selected_bases; newchar.Pic_clothes = selected_clothes; newchar.Pic_paints = selected_paints; newchar.Pic_hairs = selected_hairs; if (activesex == 0) { newchar.Pic_jewels = selected_jewels; } else { newchar.Pic_beard = selected_beards; } newTribe.members.Add(newchar); tribe_members.text += "\n" + newname.text; } catch (System.FormatException) { Debug.Log("Age is not a number"); } }
public Character(CharacterSave save) { try { var baseExists = GameSettings.Instance.CharacterDatabase.Content.TryGetValue(save.baseUid, out var characterBase); if (!baseExists) { Debug.LogError("Missing character base"); throw new Exception(); } Base = characterBase; MasteryInstances = Base.masteryGroup.Deserialize(save.serializedTechInstances); Weapon = ItemInstanceBuilder.BuildInstance(save.Equipment[0]) as Equippable; Head = ItemInstanceBuilder.BuildInstance(save.Equipment[1]) as Equippable; Body = ItemInstanceBuilder.BuildInstance(save.Equipment[2]) as Equippable; Hand = ItemInstanceBuilder.BuildInstance(save.Equipment[3]) as Equippable; Feet = ItemInstanceBuilder.BuildInstance(save.Equipment[4]) as Equippable; Accessory = ItemInstanceBuilder.BuildInstance(save.Equipment[5]) as Equippable; Regenerate(); currentHp = save.currentHp; MasteryPoints = save.masteryPoints; } catch (Exception e) { throw new DeserializationFailureException(typeof(Character)); } }
/// <summary> /// Setup the PartySave from the serialized object. /// </summary> /// <param name="saveObject">Save object representing the state of the party.</param> public void InitFromSaveObject(PartySave saveObject) { List <Character> memList = new List <Character>(); // Inventory setup this.Shared.InitFromSaveObject(saveObject.Inventory); // Setup everything EXCEPT buffs for (int i = 0; i < saveObject.Characters.Count; i++) { CharacterSave charSave = saveObject.Characters[i]; Character restored = new Character(this.Shared); // Inventory restored.InitFromSaveObject(charSave); // Everything else but buffs memList.Add(restored); } // Setup buffs (which need members inited to make) // memList index should match saveObject.Characters index! for (int i = 0; i < memList.Count; i++) { Character c = memList[i]; c.Equipment.SetupTemporarySaveFields(memList); c.Equipment.InitFromSaveObject(saveObject.Characters[i].Equipment); c.Buffs.SetupTemporarySaveFields(memList); c.Buffs.InitFromSaveObject(saveObject.Characters[i].Buffs); // Assumes matching indices } // Add members foreach (Character c in memList) { members.Add(c); } }
public void StoreData(StatsContainer[] data, StatsContainer[] data2) { characters.Clear(); for (int i = 0; i < data.Length; i++) { if (data[i].id == -1) { continue; } CharacterSave c = new CharacterSave(); c.LoadData(data[i]); characters.Add(c); } for (int i = 0; i < data2.Length; i++) { if (data2[i].id == -1) { continue; } CharacterSave c = new CharacterSave(); c.LoadData(data2[i]); characters.Add(c); } while (characters.Count < ConstValues.AVAILABLE_SIZE) { characters.Add(new CharacterSave()); } }
void AssignMemberClick() { EventSave curE = GM.EM.events.Find(es => es.obj.id == obj.id); TribeGO tribe = GM.TribeGO.GetComponent <TribeGO>(); if (curE != null) { CharacterSave addedchar = tribe.tribeCurrent.members.Find(cs => cs.name == UI_Dropdown_Assign.captionText.text); if (addedchar != null) { if (!curE.cs.Contains(addedchar)) { if (curE.obj.modifiers.ContainsKey("activity")) { switch (curE.obj.modifiers["activity"]) { case "gather": if (!tribe.tribeCurrent.gatherers.Contains(addedchar) && (addedchar.available == true)) { addedchar.available = false; tribe.tribeCurrent.gatherers.Add(addedchar); curE.cs.Add(addedchar); } break; case "fish": if (!tribe.tribeCurrent.fishers.Contains(addedchar) && (addedchar.available == true)) { addedchar.available = false; tribe.tribeCurrent.fishers.Add(addedchar); curE.cs.Add(addedchar); } break; case "hunt": if (!tribe.tribeCurrent.hunters.Contains(addedchar) && (addedchar.available == true)) { addedchar.available = false; tribe.tribeCurrent.hunters.Add(addedchar); curE.cs.Add(addedchar); } break; case "source": if (!tribe.tribeCurrent.sourcers.Contains(addedchar) && (addedchar.available == true)) { addedchar.available = false; tribe.tribeCurrent.sourcers.Add(addedchar); curE.cs.Add(addedchar); } break; default: break; } } } } } }
public void OnContinueGame() { if (CharacterSave.IsSavePresent()) { LiveSession.SetPlayerData(CharacterSave.Load()); GetComponent <SceneTransition>().DelayedSceneChange("ControlRoom"); } }
void RemoveMemberClick() { EventSave curE = GM.EM.events.Find(es => es.obj.id == obj.id); TribeGO tribe = GM.TribeGO.GetComponent <TribeGO>(); if (curE != null) { CharacterSave removechar = tribe.tribeCurrent.members.Find(cs => cs.name == UI_Dropdown_Remove.captionText.text); if (removechar != null) { if (curE.cs.Contains(removechar)) { if (curE.obj.modifiers.ContainsKey("activity")) { switch (curE.obj.modifiers["activity"]) { case "gather": if (tribe.tribeCurrent.gatherers.Contains(removechar) && (removechar.available == false)) // available check not necessary, in case multiple assignments go back here later { removechar.available = true; curE.cs.Remove(removechar); tribe.tribeCurrent.gatherers.Remove(removechar); } break; case "fish": if (tribe.tribeCurrent.fishers.Contains(removechar) && (removechar.available == false)) // available check not necessary, in case multiple assignments go back here later { removechar.available = true; curE.cs.Remove(removechar); tribe.tribeCurrent.fishers.Remove(removechar); } break; case "hunt": if (tribe.tribeCurrent.hunters.Contains(removechar) && (removechar.available == false)) // available check not necessary, in case multiple assignments go back here later { removechar.available = true; curE.cs.Remove(removechar); tribe.tribeCurrent.hunters.Remove(removechar); } break; case "source": if (tribe.tribeCurrent.sourcers.Contains(removechar) && (removechar.available == false)) // available check not necessary, in case multiple assignments go back here later { removechar.available = true; curE.cs.Remove(removechar); tribe.tribeCurrent.sourcers.Remove(removechar); } break; } } } // else no char to remove } // else no char with that name } // no event associated (no char assigned to it) }
void Kill() { Instantiate(CarcassPrefab, transform.position, Quaternion.identity); gameObject.SetActive(false); GameObject.Find("Player").SetActive(false); isDead = true; DeathReport.ShowDeathPanel(); CharacterSave.Delete(); }
public CharacterSave Serialize() { var save = new CharacterSave() { baseUid = GameSettings.Instance.CharacterDatabase.GetId(Base).Value, currentHp = currentHp, //serializedTechInstances = Base.masteryGroup.Serialize(MasteryInstances), Equipment = EquippableSaves(), masteryPoints = MasteryPoints, }; return(save); }
public StatsContainer(CharacterSave save, CharacterStats stats) { if (save == null) { id = -1; statsID = -1; level = -1; } else { SetupValues(save, stats); } }
void Skip_B_Click() { TribeSave newtribe = new TribeSave(); Text skipX = GameObject.Find("Xchars_T").GetComponent <Text>(); try { newtribe.tribename = "skip " + newtribename.text; for (int i = 0; i < System.Convert.ToInt32(skipX.text); i++) { CharacterSave newcs = new CharacterSave(); newcs.name = i.ToString(); newcs.age.years = Random.Range(0, 35); newcs.sexe = Random.Range(0, 2); if (newcs.sexe == 0) { newcs.Pic_base = Random.Range(0, basesF.Length); newcs.Pic_clothes = Random.Range(0, clothesF.Length);; newcs.Pic_paints = Random.Range(0, paintsF.Length); newcs.Pic_hairs = Random.Range(0, hairsF.Length); newcs.Pic_jewels = Random.Range(0, jewelsF.Length);; } else { newcs.Pic_base = Random.Range(0, basesM.Length); newcs.Pic_clothes = Random.Range(0, clothesM.Length); newcs.Pic_paints = Random.Range(0, paintsM.Length); newcs.Pic_hairs = Random.Range(0, hairsM.Length); newcs.Pic_beard = Random.Range(0, beardsM.Length); } newtribe.members.Add(newcs); } newTribeGO.GetComponent <newTribeGO>().tribeCurrent = newtribe; } catch (System.FormatException) { Debug.Log("X is not a number"); } PlayerPrefs.SetString("NewName", newtribename.text); PlayerPrefs.SetString("mapfile", "Assets/Resources/Map/Chunk1.tmx"); PlayerPrefs.SetString("savefile", ""); PlayerPrefs.SetInt("spawnzone", 2); // to add random ? SceneManager.LoadScene("Sapiens_Load", LoadSceneMode.Single); }
void CreateCharClick() { try { TribeGO tribeGO = GameObject.Find("GameManager").GetComponent <GameManager>().TribeGO.GetComponent <TribeGO>(); GameObject Tribe_Members = GameObject.Find("Tribe_Members"); CharacterSave addedChar = new CharacterSave(); addedChar.age.years = Convert.ToInt32(CharAge.text); GameObject.Find("GameManager").GetComponent <GameManager>().CreatePlayer(tribeGO.tribeCurrent.members.Count, CharName.text, addedChar, tribeGO, Tribe_Members); GameObject Charlist = GameObject.Find("UI_CharPanel"); if (Charlist != null) { Charlist.GetComponent <PanelChar>().SetExistingChars(); } Debug.Log("Char : " + CharName.text + " created."); } catch (FormatException) { } }
public bool AddNew(int stars, CharacterStats stats) { for (int i = 0; i < values.Length; i++) { if (values[i].id != -1) { continue; } CharacterSave save = new CharacterSave(); save.GenerateDataFromStars(stars, stats); StatsContainer cont = new StatsContainer(save, stats) { id = ++SaveController.highestID, statsID = stats.statsID }; values[i] = cont; return(true); } return(false); }
private void SetupValues(CharacterSave save, CharacterStats stats) { id = save.id; statsID = save.statsID; _stats = stats; level = save.level; if (level == -1) { return; } currentExp = save.currentExp; currentSp = save.currentSp; weaponLevel = save.weaponLevel; supportLevel = save.supportLevel; skillLevel = save.skillLevel; skillALevel = save.skillALevel; skillBLevel = save.skillBLevel; skillCLevel = save.skillCLevel; iHp = save.iHp; iAtk = save.iAtk; iSpd = save.iSpd; iDef = save.iDef; iRes = save.iRes; eHp = save.eHp; eAtk = save.eAtk; eSpd = save.eSpd; eDef = save.eDef; eRes = save.eRes; charName = stats.charName; portrait = stats.portrait; battleSprite = stats.battleSprite; charClass = stats.charClass; CalculateStats(); }
/// <summary> /// Converts the party into a serializable object. /// </summary> /// <returns>A serializable object representing the state of the party.</returns> public PartySave GetSaveObject() { InventorySave inventory = Shared.GetSaveObject(); List <CharacterSave> mems = members.Select(c => c.GetSaveObject()).ToList(); // Go through all characters for (int i = 0; i < mems.Count; i++) { CharacterSave c = mems[i]; //Go through particular character's buffs foreach (BuffSave pb in c.Buffs) { bool isPartyMemberFound = false; // Search party list to see if any party member is the caster for (int j = 0; j < mems.Count && !isPartyMemberFound; j++) { // Id match -- Ref party member mode: we want to reference the member again on Load. if (mems[j].Id.Equals(pb.CasterCharacterId)) { pb.SetupAsCasterInParty(j); isPartyMemberFound = true; } } // Caster is not a party member -- Spoof stats mode: we want to reference the caster's stats only to avoid infinite loops. if (!isPartyMemberFound) { pb.SetupAsCasterNotInParty(); } } } return(new PartySave(mems, inventory)); }
private void ExportBtn_Click(object sender, EventArgs e) { path = exporttextBox.Text; index = (CharacterSave)dataGridView1.CurrentRow.DataBoundItem; this.DialogResult = DialogResult.OK; }
void CharacterValueChanged(Dropdown CharList) { foreach (Transform child in CharacterFace.GetComponent <Transform>()) { Destroy(child.gameObject); } if (GM.TribeGO.GetComponent <TribeGO>().tribeCurrent.members.Count > 0) { curChar = GM.TribeGO.GetComponent <TribeGO>().tribeCurrent.members[CharacterList.value]; Transform charT = CharacterFace.GetComponent <Transform>(); GameObject body = new GameObject(curChar.name + "_Body"); Transform bodyT = body.GetComponent <Transform>(); bodyT.SetParent(CharacterFace.GetComponent <Transform>()); bodyT.position = new Vector3(charT.position.x, charT.position.y, charT.position.z); body.AddComponent <Image>(); Sprite FaceSprite; if (curChar.sexe == 0) { FaceSprite = GM.basesF[curChar.Pic_base]; } else { FaceSprite = GM.basesM[curChar.Pic_base]; } body.GetComponent <Image>().sprite = FaceSprite; GameObject paints = new GameObject(curChar.name + "_Paints"); Transform paintsT = paints.GetComponent <Transform>(); paintsT.SetParent(CharacterFace.GetComponent <Transform>()); paintsT.position = new Vector3(charT.position.x, charT.position.y, charT.position.z); paints.AddComponent <Image>(); Sprite PaintSprite; if (curChar.sexe == 0) { PaintSprite = GM.paintsF[curChar.Pic_paints]; } else { PaintSprite = GM.paintsM[curChar.Pic_paints]; } paints.GetComponent <Image>().sprite = PaintSprite; GameObject hairs = new GameObject(curChar.name + "_Hairs"); Transform hairsT = hairs.GetComponent <Transform>(); hairsT.SetParent(CharacterFace.GetComponent <Transform>()); hairsT.position = new Vector3(charT.position.x, charT.position.y, charT.position.z); hairs.AddComponent <Image>(); Sprite HairsSprite; if (curChar.sexe == 0) { HairsSprite = GM.hairsF[curChar.Pic_hairs]; } else { HairsSprite = GM.hairsM[curChar.Pic_hairs]; } hairs.GetComponent <Image>().sprite = HairsSprite; GameObject extra = new GameObject(curChar.name + "_Extra"); Transform extraT = extra.GetComponent <Transform>(); extraT.SetParent(CharacterFace.GetComponent <Transform>()); extraT.position = new Vector3(charT.position.x, charT.position.y, charT.position.z); extra.AddComponent <Image>(); Sprite ExtraSprite; if (curChar.sexe == 0) { ExtraSprite = GM.jewelsF[curChar.Pic_jewels]; } else { ExtraSprite = GM.beardsM[curChar.Pic_beard]; } extra.GetComponent <Image>().sprite = ExtraSprite; GameObject clothes = new GameObject(curChar.name + "_Clothes"); Transform clothesT = clothes.GetComponent <Transform>(); clothesT.SetParent(CharacterFace.GetComponent <Transform>()); clothesT.position = new Vector3(charT.position.x, charT.position.y, charT.position.z); clothes.AddComponent <Image>(); Sprite ClothesSprite; if (curChar.sexe == 0) { ClothesSprite = GM.clothesF[curChar.Pic_clothes]; } else { ClothesSprite = GM.clothesM[curChar.Pic_clothes]; } clothes.GetComponent <Image>().sprite = ClothesSprite; Character_Name.text = "Name : " + curChar.name; } }
void Update() { if (GM.TribeGO.GetComponent <TribeGO>().tribeCurrent.members.Count > 0) { if (curChar == null) // added first with debug while char panel open { curChar = GM.TribeGO.GetComponent <TribeGO>().tribeCurrent.members[0]; } TribeSave tribe = GM.TribeGO.GetComponent <TribeGO>().tribeCurrent; // panel char bottom if (panel == "attributes") { Character_Strength.text = "Strength : " + curChar.strength; Character_Endurance.text = "Endurance : " + curChar.endu; Character_Body.text = "Body : " + curChar.body; Character_SpeedStat.text = "Speed : " + curChar.speed; Character_Dexterity.text = "Dexterity : " + curChar.dexte; Character_Perception.text = "Perception : " + curChar.percept; Character_Accuracy.text = "Accuracy : " + curChar.accu; Character_Autonomy.text = "Autonomy : " + curChar.autonomy; Character_Spirit.text = "Spirit : " + curChar.spirit; Character_Social.text = "Social : " + curChar.social; Character_Mental.text = "Mental : " + curChar.mental; Character_Language.text = "Language : " + curChar.lang; Character_Food.text = "Food : " + curChar.food; } if (panel == "stats") { curChar.moral = curChar.moralmax; // to remove, set elsewhere curChar.fatigue = curChar.fatiguemax; // to remove, set elsewhere curChar.life = curChar.lifemax; // to remove, set elsewhere HealthBar.fillAmount = (curChar.life / curChar.lifemax); FatigueBar.fillAmount = (curChar.fatigue / curChar.fatiguemax); MoraleBar.fillAmount = (curChar.moral / curChar.moralmax); LevelBar.fillAmount = (curChar.last / curChar.next); Fatiguecurrent.text = curChar.fatigue.ToString(); Fatiguemax.text = curChar.fatiguemax.ToString(); Healthcurrent.text = ((int)curChar.life).ToString(); Healthmax.text = ((int)curChar.lifemax).ToString(); Moralecurrent.text = curChar.moral.ToString(); Moralemax.text = curChar.moralmax.ToString(); Levelcurrent.text = curChar.level.ToString(); Levelmax.text = (curChar.level + 1).ToString(); LevelRank.text = curChar.exp_rank; } // panel tribe Tribe_Youngs.text = tribe.youngs.Count.ToString(); Tribe_Adults.text = tribe.adults.Count.ToString(); if (tribe.food_consumption < tribe.food_gain) { Tribe_FoodBar.fillAmount = tribe.food_consumption / tribe.food_gain; } else { Tribe_FoodBar.fillAmount = 0; } Tribe_FoodBarText.text = tribe.food_consumption + " used / " + tribe.food_gain + " available each day."; // panel char top Character_Age.text = "Age : " + curChar.age.days / 365 + "years, " + curChar.age.days + " days."; Character_Experience.text = "XP : " + curChar.xp; Character_Level.text = curChar.level.ToString(); Character_NextXP.text = "Next level : " + ((int)curChar.last).ToString() + " / " + ((int)curChar.next).ToString(); LevelTopBar.fillAmount = (curChar.last / curChar.next); LevelTopcurrent.text = curChar.level.ToString(); LevelTopmax.text = (curChar.level + 1).ToString(); } }
public PlayerCharacter(Game game, CharacterSave charsave) { ID = charsave.ID; BattleStats = new BattleStats(null); Name = charsave.Name; BattleStats.HP = charsave.HpSp[0]; BattleStats.MaxHP = charsave.HpSp[1]; BattleStats.SP = charsave.HpSp[2]; BattleStats.MaxSP = charsave.HpSp[3]; BattleStats.baseAttributes.Add(Magicians.Attributes.Strength, charsave.Stats[0]); BattleStats.baseAttributes.Add(Magicians.Attributes.Magic, charsave.Stats[1]); BattleStats.baseAttributes.Add(Magicians.Attributes.Dexterity, charsave.Stats[2]); StatGain = charsave.StatGain.ToArray(); Inventory.Capacity = 16; Spells.Capacity = 8; foreach (KeyValuePair <Attributes, int> kvp in BattleStats.baseAttributes) { BattleStats.Attributes.Add(kvp.Key, kvp.Value); } BattleStats.baseResistances.Add(DamageTypes.Physical, 0); BattleStats.baseResistances.Add(DamageTypes.Fire, 0); BattleStats.baseResistances.Add(DamageTypes.Cold, 0); BattleStats.baseResistances.Add(DamageTypes.Electricity, 0); BattleStats.baseResistances.Add(DamageTypes.Poison, 0); BattleStats.baseResistances.Add(DamageTypes.Raw, 0); BattleStats.baseResistances.Add(DamageTypes.Light, 100); foreach (KeyValuePair <DamageTypes, int> kvp in BattleStats.baseResistances) { BattleStats.Resistances.Add(kvp.Key, kvp.Value); } this.Arcana = charsave.Arcana; for (int i = 0; i < charsave.Inventory.Count; i++) { Inventory.Add(game.Items.Find(p => p.InternalName == charsave.Inventory[i])); } for (int i = 0; i < charsave.Equips.Length; i++) { for (int e = 0; e < Inventory.Count; e++) { if (Inventory[e].InternalName == charsave.Equips[i]) { EquipItem(e); } } } for (int i = 0; i < charsave.Spells.Count; i++) { for (int x = 0; x < game.Spells.Count; x++) { if (game.Spells[x].InternalName == charsave.Spells[i]) { LearnSpell(game.Spells[x]); break; } } } Level = charsave.Level; Exp = charsave.Exp; TotalExp = charsave.TotalExp; NextLevelExp = charsave.NextLevelExp; BattleStats.RecalculateStats(); GraphicsFolderName = charsave.SpriteFolder; Gender = charsave.Gender; if (Spells.Count > 8) { Spells.RemoveRange(8, Spells.Count - 8); } Spells.Capacity = 8; GetLevelUps(game); LearnableSpellLevels = charsave.LearnLevels; if (charsave.LearnSpells != null) { foreach (string s in charsave.LearnSpells) { var spell = game.Spells.Find(spl => spl.InternalName == s); if (spell != null) { LearnableSpells.Add(spell); } } } }
private void ImportBtn_Click(object sender, EventArgs e) { ImportTo = (CharacterSave)dataGridView1.CurrentRow.DataBoundItem; path = InputPathtextBox.Text; this.DialogResult = DialogResult.OK; }
public void Save() { CharacterSave.Save(characterDataPath, CharacterSave.characterContainer); }
public void Load() { CharacterSave.Load(characterDataPath); }
public void ApplyData() { //add characterData to the container CharacterSave.AddCharacterData(characterData); }
public static void SavePlayer() { CharacterSave.Save(PlayerData); }