/// <summary>Indicates whether the current object is equal to another object of the same type.</summary> /// <param name="other">An object to compare with this object.</param> /// <returns>true if the current object is equal to the <paramref name="other">other</paramref> parameter; otherwise, false.</returns> public bool Equals(OasSchema other) { if (other is null) return false; if (ReferenceEquals(this, other)) return true; if (JsonType != other.JsonType) return false; if (Format != other.Format) return false; if (Options != other.Options) return false; if (!NumberRange.Equals(other.NumberRange)) return false; if (!ItemsRange.Equals(other.ItemsRange)) return false; if (!LengthRange.Equals(other.LengthRange)) return false; if (!PropertiesRange.Equals(other.PropertiesRange)) return false; if (!ExternalDocumentation.Equals(other.ExternalDocumentation)) return false; if (!StringComparer.Ordinal.Equals(Title, other.Title)) return false; if (!StringComparer.Ordinal.Equals(Description, other.Description)) return false; if (!StringComparer.Ordinal.Equals(Pattern, other.Pattern)) return false; if (!Enum.NullableSetEquals(other.Enum)) return false; if (!AllOf.NullableSetEquals(other.AllOf)) return false; if (!OneOf.NullableSetEquals(other.OneOf)) return false; if (!AnyOf.NullableSetEquals(other.AnyOf)) return false; if (!Not.NullableSetEquals(other.Not)) return false; if (Items != other.Items) return false; if (!Properties.NullableDictionaryEquals(other.Properties)) return false; if (!AdditionalProperties.NullableDictionaryEquals(other.AdditionalProperties)) return false; return true; }
public static int TotalLevelsForPack(Pack pack) { ItemsRange range = PackLevelsRange(pack); // 10 - 6 = 4 // 5 - 1 = 4 return((range.To - range.From) + 1); }
public Rank RankForPack(Pack pack) { for (int i = 0; i < TotalRanks(); i++) { Rank r = Ranks().GetItem(i + 1); ItemsRange range = RankPacksRange(r); if (pack.Number >= range.From && pack.Number <= range.To) { return(r); } } return(null); }
public Pack PackForLevel(Level level) { for (int i = 0; i < TotalPacks(); i++) { Pack p = Packs().GetItem(i + 1); ItemsRange range = PackLevelsRange(p); if (level.Number >= range.From && level.Number <= range.To) { return(p); } } return(null); }
public int PointsForPack(Pack pack) { ItemsRange range = PackLevelsRange(pack); int points = 0; for (int i = range.From; i < range.To + 1; i++) { Level l = GameManager.Instance.Levels.GetItem(i); if (l != null) { points += l.HighScore; } } return(points); }
public bool LastLevelInPack(Level level) { Pack pack = PackForLevel(level); if (pack == null) { return(false); } ItemsRange range = PackLevelsRange(pack); if (range.To == level.Number) { return(true); } return(false); }
public void UnlockPack(Pack pack) { if (pack == null) { return; } pack.IsUnlocked = true; pack.UpdatePlayerPrefs(); GameManager.SafeQueueMessage(new PackUnlockedMessage(pack)); ItemsRange range = PackLevelsRange(pack); // unlock first level for this pack UnlockLevel(range.From); SaveState(); }
/// <summary>Returns the hash code for this instance.</summary> /// <returns>A 32-bit signed integer that is the hash code for this instance.</returns> public override int GetHashCode() { unchecked { var hc = 17L; hc = (hc * 23) + JsonType.GetHashCode(); hc = (hc * 23) + Options.GetHashCode(); hc = (hc * 23) + NumberRange.GetHashCode(); hc = (hc * 23) + ItemsRange.GetHashCode(); hc = (hc * 23) + LengthRange.GetHashCode(); hc = (hc * 23) + PropertiesRange.GetHashCode(); if (ExternalDocumentation != null) { hc = (hc * 23) + ExternalDocumentation.GetHashCode(); } if (Title != null) { hc = (hc * 23) + StringComparer.Ordinal.GetHashCode(Title); } if (Format != null) { hc = (hc * 23) + StringComparer.Ordinal.GetHashCode(Format); } if (Description != null) { hc = (hc * 23) + StringComparer.Ordinal.GetHashCode(Description); } if (Pattern != null) { hc = (hc * 23) + StringComparer.Ordinal.GetHashCode(Pattern); } hc = (hc * 23) + Enum.Count; hc = (hc * 23) + AllOf.Count; hc = (hc * 23) + OneOf.Count; hc = (hc * 23) + AnyOf.Count; hc = (hc * 23) + Not.Count; hc = (hc * 23) + Items.GetHashCode(); hc = (hc * 23) + Properties.Count; hc = (hc * 23) + AdditionalProperties.Count; return(((int)(hc >> 32)) ^ (int)hc); } }
public bool LastLevelInRank(Level level) { if (LastLevelInPack(level) == false) { return(false); } Pack pack = PackForLevel(level); Rank rank = RankForPack(pack); ItemsRange range = RankPacksRange(rank); if (range.To == pack.Number) { return(true); } return(false); }
public void PackWillChange(VerticalScrollSnap scrollSnap) { return; // TODO ScrollRect scrollRect = scrollSnap.GetComponent <ScrollRect>(); if (scrollRect == null) { return; } Transform child = scrollRect.content.GetChild(scrollSnap.CurrentPage); if (child == null) { return; } GameObject pageContainer = child.gameObject; Rank rank = LevelController.Ranks().GetItem(scrollSnap.CurrentPage + 1); ItemsRange range = LevelController.RankPacksRange(rank); int index = 0; for (int i = range.From; i < range.To + 1; i++) { GameObject newObject = pageContainer.transform.GetChild(index).gameObject; Pack pack = LevelController.Packs().GetItem(i); if (pack.JsonData == null) { pack.LoadData(); } SetPackData(pack, newObject); index++; } }
public void Refresh() { RankGameItemManager ranksManager = LevelController.Ranks(); for (int r = ranksManager.Items.Length; r > 0; r--) { Rank rank = ranksManager.GetItem(r); rank.LoadData(); GameObject pageObject = Instantiate(pagePrefab); pageObject.SetActive(false); pageObject.transform.SetParent(transform, false); Text _rankSignText = GameObjectHelper.GetChildComponentOnNamedGameObject <Text>(pageObject, "RankName", true); _rankSignText.text = LocaliseText.Get(rank.JsonData.GetString("name")); ItemsRange range = LevelController.RankPacksRange(rank); for (int i = range.From; i < range.To + 1; i++) { Pack pack = LevelController.Packs().GetItem(i); GameObject newObject = Instantiate(Prefab); newObject.GetComponent <PackItem>().Number = i; newObject.transform.SetParent(pageObject.transform, false); newObject.GetComponent <Button>().onClick.AddListener(() => { LevelsListController.Instance.OpenPackButton(pack); }); buttons.Add(newObject); } } CustomUI_ScrollRectOcclusion _occ = GetComponent <CustomUI_ScrollRectOcclusion>(); _occ.Init(); }
// mark this pack as completed public void PackProgressCompleted(Level level) { Pack pack = PackForLevel(level); if (pack == null) { return; } if (pack.JsonData == null) { pack.LoadData(); } ItemsRange range = PackLevelsRange(pack); bool completed = true; for (int i = range.From; i < range.To + 1; i++) { Level l = GameManager.Instance.Levels.GetItem(i); if (l.ProgressBest < 1.0f) { completed = false; } } if (completed && pack.Progress < 1.0f) { pack.Progress = 1.0f; pack.UpdatePlayerPrefs(); UnlockNextPack(pack); } }
public void Refresh() { Pack pack = ((CustomGameManager)CustomGameManager.Instance).Packs.Selected; ItemsRange range = LevelController.PackLevelsRange(pack); for (int i = range.From; i < range.To + 1; i++) { Level level = GameManager.Instance.Levels.GetItem(i); level.LoadData(); GameObject newObject = Instantiate(Prefab); newObject.transform.SetParent(transform, false); CustomLevelButton levelButton = newObject.GetComponent <CustomLevelButton>(); levelButton.Context.Number = i; if (level.IsUnlocked) { CanvasGroup canvasGroup = GameObjectHelper.GetChildComponentOnNamedGameObject <CanvasGroup> (newObject, "PlayButton", true); canvasGroup.alpha = 1f; } Level nextLevel = GameManager.Instance.Levels.GetItem(i + 1); if (nextLevel != null && nextLevel.IsUnlocked == false && level.IsUnlocked) { Animator anim = GameObjectHelper.GetChildComponentOnNamedGameObject <Animator>(newObject, "PlayButton", true); anim.enabled = true; } if (level.ProgressBest > 0.9f) { Text statusText = GameObjectHelper.GetChildComponentOnNamedGameObject <Text>(newObject, "Status", true); statusText.text = LocaliseText.Get("Text.Done"); } Text text = GameObjectHelper.GetChildComponentOnNamedGameObject <Text> (newObject, "Name", true); text.text = LocaliseText.Format("Text.LevelNumber", i); GameObject previewObject = GameObjectHelper.GetChildNamedGameObject(newObject, "Preview", true); GameObject wordsObject = GameObjectHelper.GetChildNamedGameObject(previewObject, "Words", true); string preview = level.JsonData.GetString("preview"); char[] characters = preview.ToCharArray(); int index = 0; int angle = 360 / characters.Length; foreach (char _char in characters) { GameObject _charObject = Instantiate(_charPrefab, wordsObject.transform); Vector3 pos = Vector3Utils.RandomCircle(wordsObject.transform.position, 0.2f, angle, index); _charObject.transform.position = pos; _charObject.transform.localScale = new Vector3(0.7f, 0.7f, 0.7f); GameObject _text = GameObjectHelper.GetChildNamedGameObject(_charObject, "Text", true); _text.GetComponent <Text> ().text = _char.ToString().ToUpper(); index++; } buttons.Add(newObject); } }