internal static Skill FromString(string base64String) { if (string.IsNullOrEmpty(base64String)) { Log.Error("Skill.FromString with empty value!"); return(new Skill(Skill.SkillType.double_punch)); } string[] parts = Conv.StringPartsFromBase64(base64String, "Skill"); return(new Skill((Skill.SkillType)Conv.getIntFromParts(parts, "a")) { Level = new CDouble(Conv.getStringFromParts(parts, "b")), ShadowCloneCount = Conv.getCDoubleFromParts(parts, "c", false), CurrentDuration = Conv.getLongFromParts(parts, "d"), Extension = SkillExtension.FromString(Conv.getStringFromParts(parts, "e")) }); }