Skip to content

Commit

Permalink
Merge pull request #127 from Cupcak3/development
Browse files Browse the repository at this point in the history
Development
  • Loading branch information
Andrewthe13th committed Dec 21, 2021
2 parents 6a28fc1 + 953e21e commit 64d0bb3
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 21 deletions.
4 changes: 3 additions & 1 deletion InventoryKamera/Artifact.cs
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,9 @@ public struct SubStat

public override string ToString()
{
return stat.Contains("%") || stat.Contains("crit") || stat.Contains("bonus") ? $"{stat.Replace("%", "")} + {value}%" : $"{stat} + {value}";
return stat is null
? "NULL"
: stat.Contains("%") || stat.Contains("crit") || stat.Contains("bonus") ? $"{stat.Replace("%", "")} + {value}%" : $"{stat} + {value}";
}
}

Expand Down
31 changes: 23 additions & 8 deletions InventoryKamera/Character.cs
Original file line number Diff line number Diff line change
Expand Up @@ -43,23 +43,36 @@ public class Character

public Character()
{
Talents = new Dictionary<string, int>
{
["auto"] = 0,
["skill"] = 0,
["burst"] = 0
};
Artifacts = new Dictionary<string, Artifact>();
}

public Character(string _name, string _element, int _level, bool _ascension, int _experience, int _constellation, int[] _talents, WeaponType _weaponType) : this()
{
Name = string.IsNullOrWhiteSpace(_name) ? "" : (string)Scraper.Characters[_name.ToLower()]["GOOD"];
try
{
Name = (string)Scraper.Characters[_name.ToLower()]["GOOD"];
}
catch (Exception)
{ }
Element = _element;
Level = _level;
Ascended = _ascension;
Experience = _experience;
Constellation = _constellation;
Talents = new Dictionary<string, int>()
try
{
["auto"] = _talents[0],
["skill"] = _talents[1],
["burst"] = _talents[2]
};
Talents["auto"] = _talents[0];
Talents["skill"] = _talents[1];
Talents["burst"] = _talents[2];
}
catch (Exception)
{ }
WeaponType = _weaponType;
}

Expand All @@ -70,7 +83,7 @@ public bool IsValid()

public bool HasValidName()
{
return Scraper.IsValidCharacter(Name);
return !string.IsNullOrWhiteSpace(Name) && Scraper.IsValidCharacter(Name);
}

public bool HasValidLevel()
Expand All @@ -80,7 +93,7 @@ public bool HasValidLevel()

public bool HasValidElement()
{
return Scraper.IsValidElement(Element);
return !string.IsNullOrWhiteSpace(Element) && Scraper.IsValidElement(Element);
}

public bool HasValidConstellation()
Expand All @@ -90,6 +103,8 @@ public bool HasValidConstellation()

public bool HasValidTalents()
{
if (Talents is null || Talents.Keys.Count != 3) return false;

foreach (var value in Talents.Values) if (value < 1 || value > 15) return false;

return true;
Expand Down
24 changes: 12 additions & 12 deletions InventoryKamera/CharacterScraper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public static List<Character> ScanCharacters()
int characterCount = 0;
firstCharacterName = null; // Static variable might already be set
UserInterface.ResetCharacterDisplay();
while (ScanCharacter(out Character character) || characterCount < 4)
while (ScanCharacter(out Character character) || characterCount <= 4)
{
if (character.IsValid())
{
Expand All @@ -37,12 +37,10 @@ public static List<Character> ScanCharacters()

private static bool ScanCharacter(out Character character)
{
character = null;
string name = null; string element = null;
bool ascension = false;
int experience = 0;

character = new Character();
Navigation.SelectCharacterAttributes();
string name = null;
string element = null;

// Scan the Name and element of Character. Attempt 75 times max.
ScanNameAndElement(ref name, ref element);
Expand All @@ -60,8 +58,9 @@ private static bool ScanCharacter(out Character character)
if (string.IsNullOrWhiteSpace(firstCharacterName))
firstCharacterName = name;

bool ascended = false;
// Scan Level and ascension
int level = ScanLevel(ref ascension);
int level = ScanLevel(ref ascended);
if (level == -1)
{
UserInterface.AddError($"Could not determine {name}'s level");
Expand All @@ -88,13 +87,12 @@ private static bool ScanCharacter(out Character character)
if (Scraper.Characters.ContainsKey(name.ToLower()))
{
// get talent if character
string talent = (string)Scraper.Characters[name.ToLower()]["ConstellationOrder"][0];
if (constellation >= 5)
{
talents[1] -= 3;
talents[2] -= 3;
}
else if (talent == "skill")
else if ((string)Scraper.Characters[name.ToLower()]["ConstellationOrder"][0] == "skill")
{
talents[1] -= 3;
}
Expand All @@ -109,7 +107,8 @@ private static bool ScanCharacter(out Character character)

var weaponType = Scraper.Characters[name.ToLower()]["WeaponType"].ToObject<int>();

character = new Character(name, element, level, ascension, experience, constellation, talents, (WeaponType)weaponType);
int experience = 0;
character = new Character(name, element, level, ascended, experience, constellation, talents, (WeaponType)weaponType);
return true;
}
return false;
Expand Down Expand Up @@ -226,7 +225,7 @@ private static void ScanNameAndElement(ref string name, ref string element)
element = null;
}

private static int ScanLevel(ref bool ascension)
private static int ScanLevel(ref bool ascended)
{
int level = -1;

Expand Down Expand Up @@ -260,7 +259,8 @@ private static int ScanLevel(ref bool ascension)
var values = text.Split('/');
if (int.TryParse(values[0], out level) && int.TryParse(values[1], out int maxLevel))
{
ascension = level < maxLevel;
maxLevel = (int)Math.Round(maxLevel / 10.0, MidpointRounding.AwayFromZero) * 10;
ascended = level < maxLevel;
UserInterface.SetCharacter_Level(bm, level, maxLevel);
n.Dispose();
bm.Dispose();
Expand Down

0 comments on commit 64d0bb3

Please sign in to comment.