public int EnhanceDuration(DCPlayer player, int duration) { (string _, int strength) = player.GetStat(Stat.STR); (string _, int dexterity) = player.GetStat(Stat.DEX); (string _, int intelligence) = player.GetStat(Stat.INT); (string _, int faith) = player.GetStat(Stat.FTH); (string _, int luck) = player.GetStat(Stat.LCK); return(Mathf.RoundToInt(((float)STR * (float)DEX * (float)INT * (float)FTH * (float)LCK * strength * dexterity * intelligence * faith * luck) / Mathf.Pow(BattleManager.maxSkillLevel * (float)Scaling.S, 2) * duration)); }
public void SaveGame() { try { GameManager.INSTANCE.profile.SaveStoryGame(classID, currentChapterID, currentSituationID, pathPlayerTook, player.GetAttributes(), player.GetUnlockedAttacks(), player.GetLevel(), player.GetSkillPoints(), player.GetStat(Stat.STR).Item2, player.GetStat(Stat.DEX).Item2, player.GetStat(Stat.INT).Item2, player.GetStat(Stat.FTH).Item2, player.GetStat(Stat.LCK).Item2, player.GetUnlockedPerks(), startSet ); GameManager.INSTANCE.SaveProfile(GameManager.INSTANCE.profile); } catch (NullReferenceException) { }; }
GetAttackInfo(DCPlayer player, bool preview = false) { (string _, int STR) = player.GetStat(Stat.STR); (string _, int DEX) = player.GetStat(Stat.DEX); (string _, int INT) = player.GetStat(Stat.INT); (string _, int FTH) = player.GetStat(Stat.FTH); (string _, int LCK) = player.GetStat(Stat.LCK); (Scaling[] scalings, float damageMultiplier, float critMultiplier, float statusProbability, List <Status> statuses) = Perk.ApplyAttackPerks(player.GetActivePerks(), this); Scaling newSTR = scalings[0]; Scaling newDEX = scalings[1]; Scaling newINT = scalings[2]; Scaling newFTH = scalings[3]; Scaling newLCK = scalings[4]; float luck = (float)newLCK * LCK / BattleManager.maxSkillLevel; float scaling = (preview ? 1f : Random.Range(0.9f, 1.1f)) + ((float)newSTR * STR + (float)newDEX * DEX + (float)newINT * INT + (float)newFTH * FTH + (float)newLCK * LCK) / (BattleManager.maxSkillLevel * (float)Scaling.C * 4); if (status != Status.None) { statusProbability += luck; for (int i = 0; i < timesStatusApplied; i++) { if (statusProbability > Random.Range(0f, 1f) || preview) { statuses.Add(status); } } } scaling *= damageMultiplier; scaling *= luck > Random.Range(0, 1f) && !preview ? critMultiplier : 1f; return(healthDamage * scaling, staminaDamage *scaling, manaDamage *scaling, statuses, statusProbability, luck); }
private void Update() { if (player == null) { player = storyManager.GetPlayerCharacter(); } if (player == null) { return; } else { (string name, int value) = player.GetStat(stat); text.text = $"{name}\n{value}"; } }