private void CustomizeTraits() { SpecialCharacter spChar = (SpecialCharacter)m_character; Trait newTrait = spChar.Traits[0]; TraitDescriptionText.text = newTrait.description; TraitNameText.text = newTrait.name; TraitImage.sprite = spChar.Traits[0].Sprite; Trait.SetActive(true); }
public void SetTraits() { foreach (GameObject trait in traits) { Destroy(trait.gameObject); } if (m_character.GetType() == typeof(SpecialCharacter)) { SpecialCharacter spChar = (SpecialCharacter)m_character; traits = new List <GameObject>(); for (int i = 0; i < spChar.Traits.Count; i++) { traits.Add(Instantiate(traitPrefab, traitsParameters.transform)); traits[i].GetComponent <TraitsCustomization>().CustomizeTrait(spChar.Traits[i]); } traitsParameters.SetActive(true); } else { traitsParameters.SetActive(false); } }
private static float CalculateBanditsStats(Robbery robbery, out List <Trait> chanceTraits) { int count = 0; RobberyType rType = robbery.RobberyType; chanceTraits = new List <Trait>(); List <Trait> groupTraits = new List <Trait>(); float cStrength = 0; float cAgility = 0; float cSkill = 0; float cLuck = 0; float cFear = 0; foreach (Character character in robbery.Characters) { count++; float coefStr = 1, coefAg = 1, coefSk = 1, coefL = 1, coefF = 1; if (character.GetType() == typeof(SpecialCharacter)) { SpecialCharacter spChar = (SpecialCharacter)character; foreach (Trait trait in spChar.Traits) { //При редактировании трейтов ДОБАВИТЬ ИХ СЮДА!!!!! switch (trait.traitType) { case TraitType.single: switch (trait.stat) { case Stat.strenght: coefStr = trait.value; break; case Stat.luck: coefL = trait.value; break; case Stat.fear: coefF = trait.value; break; case Stat.skill: coefSk = trait.value; break; case Stat.agility: coefAg = trait.value; break; } break; case TraitType.group: groupTraits.Add(trait); break; case TraitType.chance: chanceTraits.Add(trait); break; } } } cStrength += (character.Stats.Strength * coefStr); cAgility += (character.Stats.Agility * coefAg); cSkill += (character.Stats.Skill * coefSk); cLuck += (character.Stats.Luck * coefL); cFear += (character.Stats.Fear * coefF); } foreach (Trait groupTrait in groupTraits) { switch (groupTrait.stat) { case Stat.strenght: cStrength *= groupTrait.value; break; case Stat.luck: cLuck *= groupTrait.value; break; case Stat.fear: cFear *= groupTrait.value; break; case Stat.skill: cSkill *= groupTrait.value; break; case Stat.agility: cAgility *= groupTrait.value; break; } } return ((cStrength * m_robberiesCollection.Robberies[(int)rType].StrenghtInfluence + cLuck * m_robberiesCollection.Robberies[(int)rType].LuckInfluence + cAgility * m_robberiesCollection.Robberies[(int)rType].AgilityInfluence + cSkill * m_robberiesCollection.Robberies[(int)rType].SkillInfluence) * (1 - cFear / (110 * count))); }