public StatEntry(IProtoEntity source, StatName statName, double value, double percent) { this.Source = source; this.StatName = statName; this.Value = value; this.Percent = percent; }
public MobaItemStats(StatName name, string description, int index, string method) { statName = name; statDescription = description; methodIndex = index; methodName = method; }
/// <summary> /// Gives us access to the value of a certain stat /// </summary> /// <param name="name">The name of the stat to check</param> /// <returns>Returns the final value of the stat if it exists, -1 if it doesn't</returns> public float GetValue(StatName name) { Stat temp = null; stats?.TryGetValue(name, out temp); return(temp == null ? -1f : temp.value); }
public BaseStatsDictionary AddPercent(IProtoEntity source, StatName statName, double percent) { if (percent == 0) { return(this); } var multiplier = percent / 100d; // simply sum multipliers (like values) if (multiplier == 0) { return(this); } StatsSources.RegisterPercent(ref this.sources, source, statName, percent); if (this.Multipliers.TryGetValue(statName, out var currentMultiplier)) { // simply sum with existing value multiplier += currentMultiplier; } else { // non-existing multiplier - add base multiplier (one) multiplier += 1; } this.ValidateIsNotReadOnly(); this.Multipliers[statName] = multiplier; return(this); }
public StatEffect( StatName statName, byte level, FuncBonusAtLevel formulaValueBonus, FuncBonusAtLevel formulaPercentBonus, double valueBonus, double percentBonus, bool displayTotalValue) { this.StatName = statName; this.Level = level; if (formulaValueBonus == null && formulaPercentBonus == null && valueBonus == 0 && percentBonus == 0) { throw new ArgumentNullException( $"Both provided formulas for stat effect \'{statName}\" are null and {nameof(valueBonus)} and {nameof(percentBonus)} are zero"); } this.FormulaValueBonus = formulaValueBonus; this.FormulaPercentBonus = formulaPercentBonus; this.ValueBonus = valueBonus; this.PercentBonus = percentBonus; this.DisplayTotalValue = displayTotalValue; }
public StatEffect( StatName statName, string customDescription, byte level, FuncBonusAtLevel formulaValueBonus, FuncBonusAtLevel formulaPercentBonus, double valueBonus, double percentBonus) { this.StatName = statName; this.Level = level; this.Description = customDescription ?? statName.GetAttribute <DescriptionAttribute>()?.Description ?? throw new Exception("There is no [Description] attribute for stat " + statName); if (formulaValueBonus == null && formulaPercentBonus == null && valueBonus == 0 && percentBonus == 0) { throw new ArgumentNullException( $"Both provided formulas for stat effect \'{statName}\" are null and {nameof(valueBonus)} and {nameof(percentBonus)} are zero"); } this.FormulaValueBonus = formulaValueBonus; this.FormulaPercentBonus = formulaPercentBonus; this.ValueBonus = valueBonus; this.PercentBonus = percentBonus; }
// TODO make it an enum stat calculator public static int GetUpgradeCost(StatName statName, Stat stat) { switch (statName) { case StatName.Speed: return(CalculateUpgradeCost(stat, 1.0F, 100.0F, 1000.0F)); case StatName.ReactionTime: return(CalculateUpgradeCost(stat, 1.0F, 100.0F, -1000.0F)); case StatName.Health: return(CalculateUpgradeCost(stat, 1.0F, 100.0F, 1000.0F)); case StatName.Sight: return(CalculateUpgradeCost(stat, 1.0F, 100.0F, 1000.0F)); case StatName.MaxEnergy: return(CalculateUpgradeCost(stat, 1.0F, 100.0F, 1000.0F)); case StatName.Strength: return(CalculateUpgradeCost(stat, 1.0F, 100.0F, 1000.0F)); default: throw new System.Exception(); } }
/// <summary> /// Gives us access to a certain stat. Useful for registering callbacks on a stat, or adding bonuses /// </summary> /// <param name="name">The name of the stat to get</param> /// <returns>Returns the stat if it exists, null otherwise</returns> public Stat GetStat(StatName name) { Stat temp = null; stats?.TryGetValue(name, out temp); return(temp); }
public void UpdateStats() { CharacterStats statsCopy = null; if (selectedCharacter.currentEquipment.currentArmor != null && selectedItem != null && selectedItem.equipType.Equals(EquipType.Armor)) { EquipableItem currentArmor = selectedCharacter.currentEquipment.currentArmor; StatName statToDecrease = currentArmor.characterStat; statsCopy = ApplyValue(statToDecrease, selectedCharacter.charStats, -currentArmor.value); } else if (selectedCharacter.currentEquipment.currentWeapon != null && selectedItem != null && selectedItem.equipType.Equals(EquipType.Weapon)) { EquipableItem currentWeapon = selectedCharacter.currentEquipment.currentWeapon; StatName statToDecrease = currentWeapon.characterStat; statsCopy = ApplyValue(statToDecrease, selectedCharacter.charStats, -currentWeapon.value); } else { statsCopy = selectedCharacter.charStats; } PrintUpdatedStats(statsCopy); }
public void ShowUpdatedStats(EquipableItem item) { //Mirar si el pj tiene un objeto equipado en la casilla correspondiente //En caso afirmativo se deja como si no tuviera nada (usando variable a parte) CharacterStats statsCopy = null; if (selectedCharacter.currentEquipment.currentArmor != null && item.equipType.Equals(EquipType.Armor)) { EquipableItem currentArmor = selectedCharacter.currentEquipment.currentArmor; StatName statToDecrease = currentArmor.characterStat; statsCopy = ApplyValue(statToDecrease, selectedCharacter.charStats, -currentArmor.value); } if (selectedCharacter.currentEquipment.currentWeapon != null && item.equipType.Equals(EquipType.Weapon)) { EquipableItem currentWeapon = selectedCharacter.currentEquipment.currentWeapon; StatName statToDecrease = currentWeapon.characterStat; statsCopy = ApplyValue(statToDecrease, selectedCharacter.charStats, -currentWeapon.value); } //Se añade lo que se aplicaría y se muestra en el resultado actualizado if (statsCopy == null) { statsCopy = InitStatsCopy(selectedCharacter.charStats); } statsCopy = ApplyValue(item.characterStat, statsCopy, item.value); PrintUpdatedStats(statsCopy); }
private List <Pair <StatName, StatModifier> > makeListOfStatMod(StatName statName, StatModifier statMod) { List <Pair <StatName, StatModifier> > list = new List <Pair <StatName, StatModifier> >(); list.Add(new Pair <StatName, StatModifier>(statName, statMod)); return(list); }
/// <summary> /// Returns the average of the questioned stat /// </summary> /// <param name="name">ENUM for statname</param> /// <returns>double average</returns> public double average(StatName name) { if (!calculateAverage[(int)name]) { return(double.NaN); } if ((dictionary.Length <= (int)name) || (dictionary[(int)name] == null)) { return(double.NaN); } var value = dictionary[(int)name]; if (!ignoreZero[(int)name]) { return(value.Average()); } var size = 0; double total = 0; foreach (var doub in value) { if (doub != 0.0) { total += doub; size++; } } return(total / size); }
private int ScorePairs(List <CardView> list, ScoreCollection scoreStory, HandType handType) { List <List <CardView> > listlist = GetPairCards(list); int score = 0; foreach (List <CardView> cards in listlist) { int cardCount = cards.Count; StatName name = StatName.Ignored; if (cardCount == 2) { name = (handType == HandType.Regular) ? StatName.HandPairs : StatName.CribPairs; score += 2; } else if (cardCount == 3) { name = (handType == HandType.Regular) ? StatName.Hand3OfAKind : StatName.Crib3OfAKind; score += 6; } else if (cardCount == 4) { score += 12; name = (handType == HandType.Regular) ? StatName.Hand4OfAKind : StatName.Crib4OfAKind; } scoreStory.Scores.Add(new ScoreInstance(name, 1, score, CardListToIntList(cards))); } return(score); }
public ScoreInstance(StatName name, int count, int score, List <int> cards) { ScoreType = name; Count = count; Score = score; Cards = new List <int>(cards); }
private StatsSources AddOrUpdate( IProtoEntity source, StatName statName, double value, double percent) { this.list ??= new List <StatEntry>(); for (var index = 0; index < this.list.Count; index++) { var entry = this.list[index]; if (entry.StatName == statName && entry.Source == source) { // found existing entry - update it entry.Value += value; entry.Percent += percent; this.list[index] = entry; return(this); } } // create new entry this.list.Add(new StatEntry(source, statName, value, percent)); return(this); }
private void AddStatBox(GameObject targetCharacter, StatName stat) { GameObject statText = Instantiate(statUIPrefab); statText.GetComponent <StatUIBoxAutoUpdate>().targetCharacter = targetCharacter; statText.GetComponent <StatUIBoxAutoUpdate>().stat = stat; statText.transform.SetParent(characterStatPanel.transform); }
public static void RegisterValue( ref StatsSources stats, IProtoEntity source, StatName statName, double value) { stats = stats.AddOrUpdate(source, statName, value, percent: 0); }
public static void RegisterPercent( ref StatsSources stats, IProtoEntity source, StatName statName, double percent) { stats = stats.AddOrUpdate(source, statName, value: 0, percent: percent); }
public Stat(StatInspectorValue s) { name = s.name; SetBaseValue(s.value); if (DEBUGFLAGS.STATS) { Debug.Log(name + " created with value:" + baseValue); } }
public ScoreInstance(StatName name, int count, int score, int cardIndex) { ScoreType = name; Count = count; Score = score; Cards = new List <int>(); Cards.Add(cardIndex); Muggins = false; }
public override string ToString() { if (duration < 0) { return(string.Format("{0} {1}\n", amount, StatName.ToString(stat))); } return(string.Format("{0}{1} <color={4}>{2}</color> for {3} turns\n", amount < 0 ? "" : "+", amount, StatName.ToString(stat), duration, ColorPallete.GetStatHexColor(stat))); }
public ScoreInstance(StatName name, int count, int score, int cardIndex) { ScoreType = name; Count = count; Score = score; Cards = new List <int> { cardIndex }; }
public StatYapi this[StatName tecrube] { get { return(this._stats[(int)tecrube]); } set { this._stats[(int)tecrube] = value; } }
public void Contructor_Tests(StatName name, StatValue value, StatWeighting weighting) { // Act var stat = new Stat(name, value, weighting); // Assert stat.Name.Should().Be(name); stat.Value.Should().Be(value); stat.Weighting.Should().Be(weighting); stat.Score.Should().NotBeNull(); }
/// <summary> /// get all data from a specific stat type /// </summary> /// <param name="name"> ENUM for statname</param> /// <returns> returns a list<double> of all data of the specified statistic</returns> public List <double> getAll(StatName name) { var list = new List <double>(); if (dictionary[(int)name] == null) { dictionary[(int)name] = list; } list = dictionary[(int)name]; return(list); }
public static T GetStatFor <T>(string defName, StatName stat) { SRTSMod.mod.CheckDictionaryValid(); if (!mod.settings.defProperties.ContainsKey(defName) && DefDatabase <ThingDef> .GetNamedSilentFail(defName)?.GetCompProperties <CompProperties_LaunchableSRTS>() != null) { Log.Warning("Key was not able to be found inside ModSettings Dictionary. Resetting to default values and initializing: " + defName); mod.settings.defProperties.Add(defName, new SRTS_DefProperties(DefDatabase <ThingDef> .GetNamed(defName))); //Initialize } switch (stat) { case StatName.massCapacity: return((T)Convert.ChangeType(mod.settings.defProperties[defName].massCapacity, typeof(T))); case StatName.minPassengers: return((T)Convert.ChangeType(mod.settings.defProperties[defName].minPassengers, typeof(T))); case StatName.maxPassengers: return((T)Convert.ChangeType(mod.settings.defProperties[defName].maxPassengers, typeof(T))); case StatName.flightSpeed: return((T)Convert.ChangeType(mod.settings.defProperties[defName].flightSpeed, typeof(T))); /* SOS2 Compatibility */ case StatName.spaceFaring: return((T)Convert.ChangeType(mod.settings.defProperties[defName].spaceFaring, typeof(T))); case StatName.shuttleBayLanding: return((T)Convert.ChangeType(mod.settings.defProperties[defName].shuttleBayLanding, typeof(T))); /* ------------------ */ case StatName.bombingSpeed: return((T)Convert.ChangeType(mod.settings.defProperties[defName].bombingSpeed, typeof(T))); case StatName.numberBombs: return((T)Convert.ChangeType(mod.settings.defProperties[defName].numberBombs, typeof(T))); case StatName.radiusDrop: return((T)Convert.ChangeType(mod.settings.defProperties[defName].radiusDrop, typeof(T))); case StatName.distanceBetweenDrops: return((T)Convert.ChangeType(mod.settings.defProperties[defName].distanceBetweenDrops, typeof(T))); case StatName.researchPoints: return((T)Convert.ChangeType(mod.settings.defProperties[defName].researchPoints, typeof(T))); case StatName.fuelPerTile: return((T)Convert.ChangeType(mod.settings.defProperties[defName].fuelPerTile, typeof(T))); case StatName.precisionBombingNumBombs: return((T)Convert.ChangeType(mod.settings.defProperties[defName].precisionBombingNumBombs, typeof(T))); } return(default);
public void SetStat(StatName type, Stat stat) { if (!stats.ContainsKey(type)) { stats.Add(type, stat); } else { stats[type] = stat; } }
internal ScoreInstance GetScoreType(StatName statName) { foreach (ScoreInstance s in this.Scores) { if (s.ScoreType == statName) { return(s); } } return(null); }
public Stat Stat(StatName name) { try { return(_dictionary[name]); } catch { MainPage.LogTrace.TraceMessageAsync("Bad StatName: " + name.ToString()); return(null); } }
//initialize vars in constructor... public AttackCommand(string name, StatName target, StatName atkstat, StatName defstat, StatName coststat, float atkmod, float defmod, int cost, int varLo, int varHi) { Name = name; _target = target; _atkStat = atkstat; _defStat = defstat; _costStat = coststat; _atkMod = atkmod; _defMod = defmod; _cost = cost; _varianceLow = varLo; _varianceHi = varHi; }
// Token: 0x06000182 RID: 386 RVA: 0x000054B8 File Offset: 0x000036B8 public string GetStatValue(StatName name) { string result = ""; bool flag = !this.settingsById.TryGetValue(name, out result); bool flag2 = flag; bool flag3 = flag2; if (flag3) { result = "N/A"; } return(result); }
/// <summary> /// Read stats from a serialised byte array /// </summary> /// <param name="bitBuffer">The current buffer state.</param> /// <param name="stats">The stats block to populate.</param> /// <param name="readNameCount">TODO</param> public void ReadStats(BitBuffer bitBuffer, UnitObjectStats stats, bool readNameCount = false) { stats._version = bitBuffer.ReadBits(16); stats.Context = (StatContext)bitBuffer.ReadBits(3); if (_debugOutputLoadingProgress) { Debug.WriteLine(String.Format("stats.Version = {0}, stats.Context = {1} (0x{2:X2})", stats._version, stats.Context, (int)stats.Context)); } if (stats._version != 0x0A) { throw new Exceptions.NotSupportedVersionException("0x0A", "0x" + stats._version.ToString("X2")); } int statSelectorCount = bitBuffer.ReadBits(6); if (_debugOutputLoadingProgress) { Debug.WriteLine(String.Format("stats.StatSelectorCount = {0}", statSelectorCount)); } for (int i = 0; i < statSelectorCount; i++) { StatSelector statSelector = new StatSelector(); if (stats.Context == StatContext.UseRows) { statSelector.RowIndex = bitBuffer.ReadBits(5); statSelector.StatSelectorRow = (ExcelTablesRow)_fileManager.GetRowFromIndex(Xls.TableCodes.STATS_SELECTOR, statSelector.RowIndex); // StatsSelector table } else { statSelector.Code = bitBuffer.ReadUInt16(); statSelector.StatSelectorRow = (ExcelTablesRow)_fileManager.GetRowFromCode(Xls.TableCodes.STATS_SELECTOR, (short)statSelector.Code); // StatsSelector table } int selectorStatCount = bitBuffer.ReadInt16(); if (_debugOutputLoadingProgress) { Debug.WriteLine(String.Format("StatSelectors[{0}].Name = {1}, .Code = 0x{2:X4}, .RowIndex = {3}, .StatCount = {4}", i, statSelector.Name, statSelector.Code, statSelector.RowIndex, selectorStatCount)); } for (int j = 0; j < selectorStatCount; j++) { Stat stat = _ReadStat(bitBuffer, stats); statSelector.Stats.Add(stat); } stats.StatSelectors.Add(statSelector); } int statCount = bitBuffer.ReadBits(16); if (_debugOutputLoadingProgress) { Debug.WriteLine(String.Format("stats.StatCount = {0}", statCount)); } for (int i = 0; i < statCount; i++) { Stat stat = _ReadStat(bitBuffer, stats); stats.Stats[stat.StatRow.code] = stat; } if (!readNameCount) return; stats.NameCount = bitBuffer.ReadBits(8); if (_debugOutputLoadingProgress) { Debug.WriteLine(String.Format("stats.NameCount = {0}", stats.NameCount)); } for (int i = 0; i < stats.NameCount; i++) { StatName name = new StatName { Unknown1 = (short)bitBuffer.ReadBits(5), Stats = new UnitObjectStats(_fileManager, _version) }; if (_debugOutputLoadingProgress) { Debug.WriteLine(String.Format("stats.Unknown1 = {0}", name.Unknown1)); } ReadStats(bitBuffer, name.Stats, false); stats.Names.Add(name); } }
public StatComponent(StatName name, int baseval) { Name = name; BaseValue = baseval; BonusValue = 0; }
public void CreateCommand(CommandManager cm) { commandJump: Console.WriteLine("What type of command?\n\t1) Attack Command\n\t2)Timed Command"); var t = Console.ReadLine(); switch (t) { case "1": Console.WriteLine("Enter 'name'" + "\nstat 'targetStat'" + "\nstat 'atkStat'" + "\nstat 'defStat'" + "\nstat costStat" + "\nfloat 'atkmod'" + "\nfloat 'defmod'" + "\nint 'cost'" + "\nint 'loVar'" + "\nint 'hiVar'\n" + @"**separate with commas (,)"); var input = Console.ReadLine(); string s = ""; var nam = ""; var tar = new StatName(); var atk = new StatName(); var def = new StatName(); var cstat = new StatName(); var aMod = 0.00f; var dMod = 0.00f; var cst = 0; var lovar = 90; var hivar = 110; var i = 0; foreach (char c in input) { if (!(c.ToString() == ",")) s += c.ToString(); else { switch (i) { case 0: nam = s; break; case 1: var n1 = 0; int.TryParse(s, out n1); tar = (StatName)n1; break; case 2: var n2 = 0; int.TryParse(s, out n2); atk = (StatName)n2; break; case 3: var n3 = 0; int.TryParse(s, out n3); def = (StatName)n3; break; case 4: var n4 = 0; int.TryParse(s, out n4); cstat = (StatName)n4; break; case 5: float.TryParse(s, out aMod); break; case 6: float.TryParse(s, out dMod); break; case 7: int.TryParse(s, out cst); break; case 8: int.TryParse(s, out lovar); break; case 9: int.TryParse(s, out hivar); break; } s = ""; i++; } } cm.AddCommand( new AttackCommand(nam, tar, atk, def, cstat, aMod, dMod, cst, lovar, hivar)); break; case "2": Console.WriteLine("Enter 'name'" + "\nstat 'targetStat'" + "\nstat 'atkStat'" + "\nstat 'defStat'" + "\nstat costStat" + "\nfloat 'atkmod'" + "\nfloat 'defmod'" + "\nint 'cost'" + "\nint 'loVar'" + "\nint 'hiVar'" + "\nint 'maxTicks" + @"**separate with commas (,)"); var maxticks = 0; input = Console.ReadLine(); s = ""; i = 0; nam = ""; tar = new StatName(); atk = new StatName(); def = new StatName(); cstat = new StatName(); aMod = 0.00f; dMod = 0.00f; cst = 0; lovar = 90; hivar = 110; foreach (char c in input) { if (!(c.ToString() == ",")) s += c.ToString(); else { switch (i) { case 0: nam = s; break; case 1: var n1 = 0; int.TryParse(s, out n1); tar = (StatName)n1; break; case 2: var n2 = 0; int.TryParse(s, out n2); atk = (StatName)n2; break; case 3: var n3 = 0; int.TryParse(s, out n3); def = (StatName)n3; break; case 4: var n4 = 0; int.TryParse(s, out n4); cstat = (StatName)n4; break; case 5: float.TryParse(s, out aMod); break; case 6: float.TryParse(s, out dMod); break; case 7: int.TryParse(s, out cst); break; case 8: int.TryParse(s, out lovar); break; case 9: int.TryParse(s, out hivar); break; case 10: int.TryParse(s, out maxticks); break; } s = ""; i++; } } cm.AddCommand( new TimedCommand { Name = nam, _target = tar, _atkStat = atk, _defStat = def, _costStat = cstat, _atkMod = aMod, _defMod = dMod, _cost = cst, _varianceLow = lovar, _varianceHi = hivar, MaxTicks = maxticks}); break; default: Console.WriteLine("invalid input, try again..."); goto commandJump; } }
public ItemCommand(string name, StatName tstat, int val) { Name = name; Tstat = tstat; Val = val; }
public CreatureStat(StatName s) { Stat = s; }