private static void GetAttributes() { PlayerEntity playerEntity = GameManager.Instance.PlayerEntity; RaceTemplate playerRace = playerEntity.RaceTemplate; DaggerfallStats stats = playerEntity.Stats; agility = playerEntity.Stats.PermanentAgility; endurance = playerEntity.Stats.PermanentEndurance; intelligence = playerEntity.Stats.PermanentIntelligence; luck = playerEntity.Stats.PermanentLuck; personality = playerEntity.Stats.PermanentPersonality; speed = playerEntity.Stats.PermanentSpeed; strength = playerEntity.Stats.PermanentStrength; willpower = playerEntity.Stats.PermanentWillpower; }
public static DaggerfallStats GetClassBaseStats(DFCareer dfClass) { DaggerfallStats stats = new DaggerfallStats(); stats.SetPermanentStatValue(DFCareer.Stats.Strength, dfClass.Strength); stats.SetPermanentStatValue(DFCareer.Stats.Intelligence, dfClass.Intelligence); stats.SetPermanentStatValue(DFCareer.Stats.Willpower, dfClass.Willpower); stats.SetPermanentStatValue(DFCareer.Stats.Agility, dfClass.Agility); stats.SetPermanentStatValue(DFCareer.Stats.Endurance, dfClass.Endurance); stats.SetPermanentStatValue(DFCareer.Stats.Personality, dfClass.Personality); stats.SetPermanentStatValue(DFCareer.Stats.Speed, dfClass.Speed); stats.SetPermanentStatValue(DFCareer.Stats.Luck, dfClass.Luck); return(stats); }
public static DaggerfallStats GetClassBaseStats(DFCareer dfClass) { DaggerfallStats stats = new DaggerfallStats(); stats.Strength = dfClass.Strength; stats.Intelligence = dfClass.Intelligence; stats.Willpower = dfClass.Willpower; stats.Agility = dfClass.Agility; stats.Endurance = dfClass.Endurance; stats.Personality = dfClass.Personality; stats.Speed = dfClass.Speed; stats.Luck = dfClass.Luck; return(stats); }
public void Reroll(DFCareer dfClass) { // Assign base stats from class template DaggerfallStats rolledStats = CharacterDocument.GetClassBaseStats(dfClass); // Roll bonus value for each base stat // Using maxBonusRoll + 1 as Unity's Random.Range(int,int) is exclusive // of maximum value and we want to be inclusive of maximum value int strength = rolledStats.PermanentStrength + UnityEngine.Random.Range(minBonusRoll, maxBonusRoll + 1); int intelligence = rolledStats.PermanentIntelligence + UnityEngine.Random.Range(minBonusRoll, maxBonusRoll + 1); int willpower = rolledStats.PermanentWillpower + UnityEngine.Random.Range(minBonusRoll, maxBonusRoll + 1); int agility = rolledStats.PermanentAgility + UnityEngine.Random.Range(minBonusRoll, maxBonusRoll + 1); int endurance = rolledStats.PermanentEndurance + UnityEngine.Random.Range(minBonusRoll, maxBonusRoll + 1); int personality = rolledStats.PermanentPersonality + UnityEngine.Random.Range(minBonusRoll, maxBonusRoll + 1); int speed = rolledStats.PermanentSpeed + UnityEngine.Random.Range(minBonusRoll, maxBonusRoll + 1); int luck = rolledStats.PermanentLuck + UnityEngine.Random.Range(minBonusRoll, maxBonusRoll + 1); rolledStats.SetPermanentStatValue(DFCareer.Stats.Strength, strength); rolledStats.SetPermanentStatValue(DFCareer.Stats.Intelligence, intelligence); rolledStats.SetPermanentStatValue(DFCareer.Stats.Willpower, willpower); rolledStats.SetPermanentStatValue(DFCareer.Stats.Agility, agility); rolledStats.SetPermanentStatValue(DFCareer.Stats.Endurance, endurance); rolledStats.SetPermanentStatValue(DFCareer.Stats.Personality, personality); rolledStats.SetPermanentStatValue(DFCareer.Stats.Speed, speed); rolledStats.SetPermanentStatValue(DFCareer.Stats.Luck, luck); // Roll bonus pool for player to distribute // Using maxBonusPool + 1 for inclusive range as above int bonusPool = UnityEngine.Random.Range(minBonusPool, maxBonusPool + 1); // Apply stats to control SetStats(rolledStats, rolledStats, bonusPool); UpdateStatLabels(); // Play "rolling dice" sound DaggerfallUI.Instance.PlayOneShot(SoundClips.DiceRoll); }
private static void SetAttributes() { PlayerEntity playerEntity = GameManager.Instance.PlayerEntity; DaggerfallStats stats = playerEntity.Stats; RaceTemplate playerRace = playerEntity.RaceTemplate; int maxStat = FormulaHelper.MaxStatValue(); if (agility > maxStat || endurance > maxStat || intelligence > maxStat || luck > maxStat || personality > maxStat || speed > maxStat || strength > maxStat || willpower > maxStat) { string[] messages = new string[] { "Your racial modifiers have increased one or", "more Attribute over the maximum limit. It will be reduced." }; StatusPopup(messages); } if (agility > maxStat) { agility = maxStat; } if (endurance > maxStat) { endurance = maxStat; } if (intelligence > maxStat) { intelligence = maxStat; } if (luck > maxStat) { luck = maxStat; } if (personality > maxStat) { personality = maxStat; } if (speed > maxStat) { speed = maxStat; } if (strength > maxStat) { strength = maxStat; } if (willpower > maxStat) { willpower = maxStat; } if (agility <= 0) { dumbPlayer = true; } if (endurance <= 0) { dumbPlayer = true; } if (intelligence <= 0) { dumbPlayer = true; } if (luck <= 0) { dumbPlayer = true; } if (personality <= 0) { dumbPlayer = true; } if (speed <= 0) { dumbPlayer = true; } if (strength <= 0) { dumbPlayer = true; } if (willpower <= 0) { dumbPlayer = true; } stats.SetPermanentStatValue(DFCareer.Stats.Agility, agility); stats.SetPermanentStatValue(DFCareer.Stats.Endurance, endurance); stats.SetPermanentStatValue(DFCareer.Stats.Intelligence, intelligence); stats.SetPermanentStatValue(DFCareer.Stats.Luck, luck); stats.SetPermanentStatValue(DFCareer.Stats.Personality, personality); stats.SetPermanentStatValue(DFCareer.Stats.Speed, speed); stats.SetPermanentStatValue(DFCareer.Stats.Strength, strength); stats.SetPermanentStatValue(DFCareer.Stats.Willpower, willpower); }
private static void StartAttrbutes_OnStartGame(object sender, EventArgs e) { int maxStat = FormulaHelper.MaxStatValue(); DaggerfallStats stats = playerEntity.Stats; int agility = playerEntity.Stats.PermanentAgility + startAttribute; int endurance = playerEntity.Stats.PermanentEndurance + startAttribute; int intelligence = playerEntity.Stats.PermanentIntelligence + startAttribute; int luck = playerEntity.Stats.PermanentLuck + startAttribute; int personality = playerEntity.Stats.PermanentPersonality + startAttribute; int speed = playerEntity.Stats.PermanentSpeed + startAttribute; int strength = playerEntity.Stats.PermanentStrength + startAttribute; int willpower = playerEntity.Stats.PermanentWillpower + startAttribute; if (agility - startAttribute < 2 || endurance + startAttribute < 2 || intelligence + startAttribute < 2 || luck + startAttribute < 2 || personality + startAttribute < 2 || speed + startAttribute < 2 || strength + startAttribute < 2 || willpower + startAttribute < 2) { string[] messages = new string[] { "LevelUp Adjuster has changed all starting attributes by " + startAttribute.ToString() + ".", "One or more of your attributes is reduced 1 or 0, which kills you." }; StatusPopup(messages); } else if (agility + startAttribute > maxStat || endurance + startAttribute > maxStat || intelligence + startAttribute > maxStat || luck + startAttribute > maxStat || personality + startAttribute > maxStat || speed + startAttribute > maxStat || strength + startAttribute > maxStat || willpower + startAttribute > maxStat) { string[] messages = new string[] { "LevelUp Adjuster has changed all starting attributes by " + startAttribute.ToString() + ".", "One or more of your attributes is higher than the allowed maximum of " + maxStat.ToString() + " and will be adjusted down." }; StatusPopup(messages); if (agility > maxStat) { agility = maxStat; } if (endurance > maxStat) { endurance = maxStat; } if (intelligence > maxStat) { intelligence = maxStat; } if (luck > maxStat) { luck = maxStat; } if (personality > maxStat) { personality = maxStat; } if (speed > maxStat) { speed = maxStat; } if (strength > maxStat) { strength = maxStat; } if (willpower > maxStat) { willpower = maxStat; } } else { string[] messages = new string[] { "LevelUp Adjuster has changed all starting attributes by " + startAttribute.ToString() + "." }; StatusPopup(messages); } stats.SetPermanentStatValue(DFCareer.Stats.Agility, agility); stats.SetPermanentStatValue(DFCareer.Stats.Endurance, endurance); stats.SetPermanentStatValue(DFCareer.Stats.Intelligence, intelligence); stats.SetPermanentStatValue(DFCareer.Stats.Luck, luck); stats.SetPermanentStatValue(DFCareer.Stats.Personality, personality); stats.SetPermanentStatValue(DFCareer.Stats.Speed, speed); stats.SetPermanentStatValue(DFCareer.Stats.Strength, strength); stats.SetPermanentStatValue(DFCareer.Stats.Willpower, willpower); }