public void TestNestedStructs() { var color1 = new Color(128, 200, 64, 255); var color2 = new Color(230, 130, 60, 100); var cgroup = new ColorGroup(color1, color2); var root = DataNode.CreateObject("test"); Assert.NotNull(root); var obj = cgroup.ToDataNode(); Assert.IsTrue(obj.ChildCount == 2); root.AddNode(obj); Assert.IsTrue(root.ChildCount == 1); var xml = XMLWriter.WriteToString(root); Assert.IsFalse(string.IsNullOrEmpty(xml)); root = XMLReader.ReadFromString(xml); Assert.NotNull(root); var test = root.GetNode("test"); Assert.IsTrue("test".Equals(test.Name)); var content = test.GetNode("colorgroup"); Assert.NotNull(content); Assert.IsTrue(content.ChildCount == 2); var otherGroup = content.ToObject <ColorGroup>(); Assert.IsTrue(otherGroup.foreground.Equals(cgroup.foreground)); Assert.IsTrue(otherGroup.background.Equals(cgroup.background)); }
private void RefreshTaskInfo() { if (null == chaseTask) { return; } RefreshChallengeTimes(); _chaseStar?.RefreshPanel(chaseTask); var task = chaseTask.taskConfigInfo; if (task != null) { Util.SetText(_stageName, task.name); Util.SetText(_stageDesc, task.desc); Util.SetText(_energyCost, $"( ×{task.fatigueCount})"); Util.SetText(_recommend, Util.Format(ConfigText.GetDefalutString(TextForMatType.AssistUI, 9), task.recommend)); _recommend.color = ColorGroup.GetColor(ColorManagerType.Recommend, modulePlayer.roleInfo.fight >= task.recommend); _recommend?.transform.parent.SafeSetActive(task.recommend > 0); var stageInfo = ConfigManager.Get <StageInfo>(task.stageId); var str = stageInfo.icon.Split(';'); if (str.Length >= 1) { UIDynamicImage.LoadImage(_taskIcon.transform, str[0]); } List <int> reward = new List <int>(stageInfo.previewRewardItemId); reward.RemoveAll(item => { var prop = ConfigManager.Get <PropItemInfo>(item); return(!(prop && prop.proto != null && (prop.proto.Contains(CreatureVocationType.All) || prop.proto.Contains((CreatureVocationType)modulePlayer.proto)))); }); new DataSource <int>(reward, _rewardScrollView, OnSetItem, OnItemClick); } for (var i = 0; i < _stars.Length; i++) { _stars[i].SafeSetActive(chaseTask.star >= i + 1); } }
public void Refresh() { Util.SetText(Name, DataCache.CPetInfo.itemNameId); Util.SetText(LevelText, DataCache.Level.ToString()); var isGot = Module_Pet.instance.Contains(DataCache.ID); Name.color = ColorGroup.GetColor(ColorManagerType.UnlockPetNameColor, isGot); LockMask?.SafeSetActive(!isGot); SelectStateMark?.SafeSetActive(false); TrainingMask?.SafeSetActive(DataCache.IsTraining); Fighting?.SafeSetActive(DataCache.ID == Module_Pet.instance.FightingPetID); levelBg?.SafeSetActive(isGot); if (levelBg != null) { levelBg.color = ColorGroup.GetColor(ColorManagerType.PetQuality, DataCache.CPetInfo.quality); } Icon?.SetGray(!isGot); Util.SetPetSimpleInfo(transform, DataCache); RefreshMood(DataCache.Mood); }
private void RefreshDiscardCost(PSoulAttr prevSoulAttr) { var soulInfo = ConfigManager.Get <SoulInfo>(prevSoulAttr.soulId); if (null == soulInfo?.discardCosts) { return; } for (var i = 0; i < soulInfo.discardCosts.Length; i++) { var prop = ConfigManager.Get <PropItemInfo>(soulInfo.discardCosts[i].itemId); if (prop) { AtlasHelper.SetIcons(discardCostIcon, prop.icon); } if (soulInfo.discardCosts[i].itemId == 2) { Util.SetText(discardCost, soulInfo.discardCosts[i].count.ToString()); discardCost.color = ColorGroup.GetColor(ColorManagerType.IsMoneyEnough, soulInfo.discardCosts[i].count <= modulePlayer.gemCount); return; } else if (soulInfo.discardCosts[i].itemId == 1) { Util.SetText(discardCost, soulInfo.discardCosts[i].count.ToString()); discardCost.color = ColorGroup.GetColor(ColorManagerType.IsMoneyEnough, soulInfo.discardCosts[i].count <= modulePlayer.coinCount); return; } else { Util.SetText(discardCost, soulInfo.discardCosts[i].count.ToString()); discardCost.color = ColorGroup.GetColor(ColorManagerType.IsMatrialEnough, soulInfo.discardCosts[i].count <= moduleEquip.GetPropCount(soulInfo.discardCosts[i].count)); } } }
/// <summary> /// 返回预定义的几种颜色 /// </summary> /// <param name="colorGroup">预定义颜色</param> /// <returns></returns> private static MColor[] GetPredefinedColor(ColorGroup colorGroup) { List <MColor> retVal = new List <MColor>(); switch (colorGroup) { case ColorGroup.W3C16: foreach (string[] var in ColorDefined.GetW3C16Color()) { retVal.Add(new MColor(var[1], ColorTranslator.FromHtml(var[0]))); } break; case ColorGroup.Safe216: foreach (string var in ColorDefined.GetSafe216Color()) { retVal.Add(new MColor(var, ColorTranslator.FromHtml(var))); } break; case ColorGroup.IE4_PreNamed: foreach (string[] var in ColorDefined.GetIE4_PreNamedColor()) { retVal.Add(new MColor(var[1], ColorTranslator.FromHtml(var[0]))); } break; case ColorGroup.WIN: foreach (string var in ColorDefined.GetWINColor()) { retVal.Add(new MColor(var, Color.FromName(var))); } break; } return(retVal.ToArray()); }
private void RefreshCost() { var prop = moduleFurnace.currentSoulItem?.GetPropItem(); var soulCost = ConfigManager.Get <SoulCost>(prop?.quality ?? 0); if (soulCost != null) { for (var i = 0; i < soulCost.costs.Length; i++) { if (soulCost.costs[i].itemId == 1) { Util.SetText(costCoin, soulCost.costs[i].count.ToString()); costCoin.color = ColorGroup.GetColor(ColorManagerType.IsMoneyEnough, soulCost.costs[i].count <= modulePlayer.coinCount); } else { var own = moduleEquip.GetPropCount(soulCost.costs[i].itemId); Util.SetText(costItem, Util.Format(Util.GetString((int)TextForMatType.SoulUI, 17), soulCost.costs[i].count.ToString(), own)); costItem.color = ColorGroup.GetColor(ColorManagerType.IsMatrialEnough, soulCost.costs[i].count <= own); var costProp = ConfigManager.Get <PropItemInfo>(soulCost.costs[i].itemId); if (null != costProp) { Util.SetText(costItemName, costProp.itemName); AtlasHelper.SetIcons(costItemIcon, costProp.icon); costItemIcon.GetComponentDefault <Button>()? .onClick.AddListener(() => moduleGlobal.UpdateGlobalTip((ushort)costProp.ID)); } } } } else { Util.SetText(costCoin, "0"); Util.SetText(costItem, "0"); } }
protected override void OnBecameVisible(bool oldState, bool forward) { var args = GetWindowParam(name); if (args != null && args.param1 is ExchangeContent) { _content = (ExchangeContent)args.param1; } var prop = ConfigManager.Get <PropItemInfo>(_content.itemId); Util.SetItemInfo(itemRoot, prop, 0, _content.ownCount, false); Util.SetText(itemRoot.GetComponent <Text>("numberdi/count"), Util.Format(ConfigText.GetDefalutString(199, 8), _content.ownCount)); Util.SetText(needCountText, Util.Format(ConfigText.GetDefalutString(199, 6), BuyCount.ToString())); Util.SetText(priceText, Util.Format(ConfigText.GetDefalutString(199, 7), BuyCount * prop.diamonds)); Util.SetText(levelText, Util.Format(ConfigText.GetDefalutString(199, 10), prop.buyLevel)); priceText.color = ColorGroup.GetColor(ColorManagerType.IsMoneyEnough, IsMoneyEnough); bool level = modulePlayer.level >= prop.buyLevel ? true : false; levelText.color = level ? Color.white : Color.red; exchangeButton?.SetInteractable(IsMoneyEnough && level); }
private void Update() { var stratRect = new Rect(0.8f, 0, 0.2f, 1); var mousePos = new Vector3(Input.mousePosition.x / Screen.width, Input.mousePosition.y / Screen.height, Input.mousePosition.z); if (stratRect.Contains(mousePos)) { return; } if (Input.GetMouseButtonDown(0)) { PreviousMousePosition = Input.mousePosition; } if (Input.GetMouseButtonUp(0) && (PreviousMousePosition - Input.mousePosition).magnitude < 2 && Pane.PaneCamera.rect.Contains(mousePos)) { int hitCount = Physics.RaycastNonAlloc(Pane.PaneCamera.ScreenPointToRay(Input.mousePosition), HitResults, 150); ColorGroup.ResetSelection(); if (hitCount > 0) { float distance = float.MaxValue; float tempDistance; GameObject nearest = null; for (int i = 0; i < hitCount; i++) { tempDistance = (HitResults[i].point - Pane.PaneCamera.transform.position).magnitude; if (tempDistance < distance) { distance = tempDistance; nearest = HitResults[i].collider.gameObject; } } if (nearest != null) { ColorGroup cg = nearest.GetComponent <ColorGroup>(); if (cg != null) { cg.SetGroupColor(SelectionColor); foreach (int groupIndex in ColorDependancy.GetPrimaryGroupIndex(cg.GroupIndex)) { ColorGroup.SetGroupColor(groupIndex, PrimaryColor); } foreach (int groupIndex in ColorDependancy.GetSecondaryGroupIndex(cg.GroupIndex)) { ColorGroup.SetGroupColor(groupIndex, SecondaryColor); } foreach (int groupIndex in ColorDependancy.GetUnusedGroups(cg.GroupIndex)) { ColorGroup.SetGroupOpacity(groupIndex, OPACITY_RATE); } } } } } }
private void RefreshFatigueCost() { Util.SetText(energy, task.taskConfigInfo.fatigueCount.ToString()); energy.color = ColorGroup.GetColor(ColorManagerType.IsMatrialEnough, task.taskConfigInfo.fatigueCount <= modulePlayer.roleInfo.fatigue); }
public ColorComboBox(ColorGroup colorGroup) { InitializeComponent(); mColors = GetPredefinedColor(colorGroup); }
private void GeneratePuzzle() { if (colorGroups.Length < 1) { Debug.LogError("You need at least 1 color group to start!"); Debug.Break(); } puzzle.pieces = new Piece[puzzle.width, puzzle.height]; if (!colorChosen) { colorGroup = colorGroups[Random.Range(0, colorGroups.Length)]; } else { Random.Range(0, 1); } colorChosen = false; int randomQuarter = Random.Range(0, quarterPrefabs.Length); GameObject quarterPrefab = quarterPrefabs[randomQuarter]; float cameraX = puzzle.width % 2 == 0 ? puzzle.width / 2 - 0.5f : puzzle.width / 2; float cameraY = puzzle.height % 2 == 0 ? puzzle.height / 2 - 0.5f : puzzle.height / 2; Camera.main.transform.position = new Vector3(cameraX, cameraY, -10); int orthographicSize = Mathf.Max(puzzle.width, puzzle.height); Camera.main.orthographicSize = orthographicSize < 3 ? 3 : orthographicSize; backgroundColor = colorGroup.colors[4]; GameManager.Instance.levelText.color = colorGroup.colors[5]; ParticleSystem.MainModule mainModule = GameManager.Instance.levelClear.main; mainModule.startColor = colorGroup.colors[5]; backToMenu.color = colorGroup.colors[5]; showCompleted.color = colorGroup.colors[5]; int[] auxValues = { 0, 0, 0, 0 }; for (int h = 0; h < puzzle.height; ++h) { for (int w = 0; w < puzzle.width; ++w) { //Width restrictions if (w == 0) { auxValues[3] = Random.Range(0, 4); } else { auxValues[3] = puzzle.pieces[w - 1, h].values[1]; } if (w == puzzle.width - 1) { auxValues[1] = Random.Range(0, 4); } else { auxValues[1] = Random.Range(0, 4); } //Height restrictions if (h == 0) { auxValues[2] = Random.Range(0, 4); } else { auxValues[2] = puzzle.pieces[w, h - 1].values[0]; } if (h == puzzle.height - 1) { auxValues[0] = Random.Range(0, 4); } else { auxValues[0] = Random.Range(0, 4); } //Piece type GameObject piece = (GameObject)Instantiate(piecePrefab, new Vector3(w, h, 0), Quaternion.identity); GameObject p1 = (GameObject)Instantiate(quarterPrefab, piece.transform.position, Quaternion.Euler(0, 0, 180)); p1.transform.parent = piece.transform; p1.GetComponent <SpriteRenderer>().color = colorGroup.colors[auxValues[0]]; piece.GetComponent <Piece>().values[0] = auxValues[0]; GameObject p2 = (GameObject)Instantiate(quarterPrefab, piece.transform.position, Quaternion.Euler(0, 0, 90)); p2.transform.parent = piece.transform; p2.GetComponent <SpriteRenderer>().color = colorGroup.colors[auxValues[1]]; piece.GetComponent <Piece>().values[1] = auxValues[1]; GameObject p3 = (GameObject)Instantiate(quarterPrefab, piece.transform.position, Quaternion.Euler(0, 0, 0)); p3.transform.parent = piece.transform; p3.GetComponent <SpriteRenderer>().color = colorGroup.colors[auxValues[2]]; piece.GetComponent <Piece>().values[2] = auxValues[2]; GameObject p4 = (GameObject)Instantiate(quarterPrefab, piece.transform.position, Quaternion.Euler(0, 0, 270)); p4.transform.parent = piece.transform; p4.GetComponent <SpriteRenderer>().color = colorGroup.colors[auxValues[3]]; piece.GetComponent <Piece>().values[3] = auxValues[3]; //Rotate the piece correctly in order to count while (piece.GetComponent <Piece>().values[0] != auxValues[0] || piece.GetComponent <Piece>().values[1] != auxValues[1] || piece.GetComponent <Piece>().values[2] != auxValues[2] || piece.GetComponent <Piece>().values[3] != auxValues[3]) { piece.GetComponent <Piece>().RotatePiece(); } puzzle.pieces[w, h] = piece.GetComponent <Piece>(); } } }
/// <summary> /// Returns the <see cref="Color"/> for a given <see cref="ColorGroup"/> and group level. /// </summary> /// <param name="group">A <see cref="ColorGroup"/> value.</param> /// <param name="level">A level value within the <see cref="ColorGroup"/> and group level.</param> /// <returns>The <see cref="Color"/> for the given <see cref="ColorGroup"/> and group level.</returns> /// <exception cref="ArgumentOutOfRangeException">Thrown when the <paramref name="level"/> is out of range with respect to the current <see cref="ColorGroupSize"/> parameter.</exception> /// <exception cref="InvalidOperationException">Thrown when the <paramref name="group"/> and <paramref name="level"/> map to an invalid color index.</exception> public Color GroupToColor(ColorGroup group, int level) { int ci = GroupToColorIndex(group, level); if (ci < 0 || ci >= 256) { throw new InvalidOperationException("The specified group mapped to an invalid color index."); } return _colorIndex[ci]; }
/// <summary> /// Returns the color index for a given <see cref="ColorGroup"/> and group level. /// </summary> /// <param name="group">A <see cref="ColorGroup"/> value.</param> /// <param name="level">A level value within the <see cref="ColorGroup"/>.</param> /// <returns>The color index value for the given <see cref="ColorGroup"/> and group level.</returns> /// <exception cref="ArgumentOutOfRangeException">Thrown when the <paramref name="level"/> is out of range with respect to the current <see cref="ColorGroupSize"/> parameter.</exception> public int GroupToColorIndex(ColorGroup group, int level) { if (level < 0 || level >= _groupSize) { throw new ArgumentOutOfRangeException("level", level, "Argument 'level' must be in range [0, " + (_groupSize - 1) + "]"); } return (int)group * _groupSize + level; }
/// <summary> /// Returns the baseline <see cref="Color"/> within a particular <see cref="ColorGroup"/>. /// </summary> /// <param name="group">A <see cref="ColorGroup"/> value.</param> /// <returns>The baseline (level = 0) <see cref="Color"/> for the given <see cref="ColorGroup"/>.</returns> public Color GroupToColor(ColorGroup group) { return(GroupToColor(group, 0)); }
private static void InitializeResources(ExperienceType experienceType, ResourceType resourceType, string category) { m_resources = null; switch (experienceType) { case ExperienceType.NATURE: if (resourceType == ResourceType.LOCATION) { ExperienceGroup group = Array.Find(m_assetDb.NatureLocationsGroups, item => item.Name == category); if (group != null) { m_resources = group.Resources; } } if (resourceType == ResourceType.MUSIC) { AudioGroup group = Array.Find(m_assetDb.NatureMusic, item => item.Name == category); if (group != null) { m_resources = group.Resources; } } break; case ExperienceType.MANDALA: if (resourceType == ResourceType.COLOR) { ColorGroup group = Array.Find(m_assetDb.ColorGroups, item => item.Name == category); if (group != null) { m_resources = group.Resources; } } if (resourceType == ResourceType.MUSIC) { AudioGroup group = Array.Find(m_assetDb.MandalaMusic, item => item.Name == category); if (group != null) { m_resources = group.Resources; } } break; case ExperienceType.ABSTRACT: if (resourceType == ResourceType.LOCATION) { ExperienceGroup group = Array.Find(m_assetDb.AbstractLocationsGroups, item => item.Name == category); if (group != null) { m_resources = group.Resources; } } if (resourceType == ResourceType.MUSIC) { AudioGroup group = Array.Find(m_assetDb.AbstractMusic, item => item.Name == category); if (group != null) { m_resources = group.Resources; } } break; case ExperienceType.GLOBAL: if (resourceType == ResourceType.GUIDE_AUDIO) { GuideAudioGroup group = Array.Find(m_assetDb.GuideAudioGroups, item => item.Name == category); if (group != null) { m_resources = group.Resources; } } if (resourceType == ResourceType.AUDIO) { AudioGroup group = Array.Find(m_assetDb.AudioGroups, item => item.Name == category); if (group != null) { m_resources = group.Resources; } } if (resourceType == ResourceType.OBJECT) { ObjectGroup group = Array.Find(m_assetDb.ObjectGroups, item => item.Name == category); if (group != null) { m_resources = group.Resources; } } break; default: break; } if (m_resources == null) { return; } m_name = new string[m_resources.Length]; m_color = new Color[m_resources.Length]; m_description = new string[m_resources.Length]; m_sprite = new Sprite[m_resources.Length]; m_clip = new AudioClip[m_resources.Length]; }
public void CreatePuzzle(int level, int width, int height, bool showingCompleted) { Random.InitState(level); puzzle.width = width; puzzle.height = height; if (level != 0) { if (puzzle.width <= 0 || puzzle.height <= 0) { Debug.LogError("Please set the dimensions!"); Debug.Break(); } GeneratePuzzle(); } else { if (!colorChosen) { colorGroup = tutorialColorGroup; } colorChosen = false; float cameraX = puzzle.width % 2 == 0 ? puzzle.width / 2 - 0.5f : puzzle.width / 2; float cameraY = puzzle.height % 2 == 0 ? puzzle.height / 2 - 0.5f : puzzle.height / 2; Camera.main.transform.position = new Vector3(cameraX, cameraY, -10); int orthographicSize = Mathf.Max(puzzle.width, puzzle.height); Camera.main.orthographicSize = orthographicSize < 3 ? 3 : orthographicSize; Camera.main.backgroundColor = colorGroup.colors[4]; backgroundColor = colorGroup.colors[4]; Camera.main.backgroundColor = colorGroup.colors[4]; GameManager.Instance.levelText.color = colorGroup.colors[5]; ParticleSystem.MainModule mainModule = GameManager.Instance.levelClear.main; mainModule.startColor = colorGroup.colors[5]; backToMenu.color = colorGroup.colors[5]; showCompleted.color = colorGroup.colors[5]; Vector2 dimensions = CheckDimensions(); puzzle.width = (int)dimensions.x; puzzle.height = (int)dimensions.y; puzzle.pieces = new Piece[puzzle.width, puzzle.height]; foreach (var piece in GameObject.FindGameObjectsWithTag("Piece")) { puzzle.pieces[(int)piece.transform.position.x, (int)piece.transform.position.y] = piece.GetComponent <Piece>(); } } puzzle.winValue = GetWinValue(); if (level != 0 && !showingCompleted) { Shuffle(); } puzzle.curValue = Sweep(); generated = true; if (level != 0 && puzzle.curValue == puzzle.winValue) { GameManager.Instance.Win(showingCompleted); } }
//-------------------------------------------------------------------------------------- public void DefineColorPartition() { if (fSourceImage != null) { List <Color> lData = new List <Color>(fSourceImage.Height * fSourceImage.Width); for (int i = 0; i < fSourceImage.Width; i++) { for (int j = 0; j < fSourceImage.Height; j++) { lData.Add(fSourceImage.GetPixel(i, j)); } } var queryGroupColorRed = from ColorVal in lData group ColorVal by ColorVal.R into ColorGroup orderby ColorGroup.Key select new { ColorLevel = ColorGroup.Key, ColorWeight = ColorGroup.Count() }; var queryGroupColorGreen = from ColorVal in lData group ColorVal by ColorVal.G into ColorGroup orderby ColorGroup.Key select new { ColorLevel = ColorGroup.Key, ColorWeight = ColorGroup.Count() }; var queryGroupColorBlue = from ColorVal in lData group ColorVal by ColorVal.B into ColorGroup orderby ColorGroup.Key select new { ColorLevel = ColorGroup.Key, ColorWeight = ColorGroup.Count() }; var queryGroupColorSumma = from ColorVal in lData group ColorVal by(int) ColorVal.B + (int)ColorVal.G + (int)ColorVal.R into ColorGroup orderby ColorGroup.Key select new { ColorLevel = ColorGroup.Key, ColorWeight = ColorGroup.Count() }; var lArrGroupColorRed = queryGroupColorRed.ToArray(); var lArrGroupColorGreen = queryGroupColorGreen.ToArray(); var lArrGroupColorBlue = queryGroupColorBlue.ToArray(); var lArrGroupColorSumma = queryGroupColorSumma.ToArray(); fRedPartition = new int[lArrGroupColorRed.Length][]; fGreenPartition = new int[lArrGroupColorGreen.Length][]; fBluePartition = new int[lArrGroupColorBlue.Length][]; fSummaPartition = new int[lArrGroupColorSumma.Length][]; int k = 0; foreach (var lColorPart in lArrGroupColorRed) { fMainTextRed += lColorPart.ColorLevel.ToString() + ", "; fAddTextRed += lColorPart.ColorLevel.ToString("D3") + " : " + lColorPart.ColorWeight.ToString() + Environment.NewLine; fRedPartition[k++] = new int[] { lColorPart.ColorLevel, lColorPart.ColorWeight }; } k = 0; foreach (var lColorPart in lArrGroupColorGreen) { fMainTextGreen += lColorPart.ColorLevel.ToString() + ", "; fAddTextGreen += lColorPart.ColorLevel.ToString("D3") + " : " + lColorPart.ColorWeight.ToString() + Environment.NewLine; fGreenPartition[k++] = new int[] { lColorPart.ColorLevel, lColorPart.ColorWeight }; } k = 0; foreach (var lColorPart in lArrGroupColorBlue) { fMainTextBlue += lColorPart.ColorLevel.ToString() + ", "; fAddTextBlue += lColorPart.ColorLevel.ToString("D3") + " : " + lColorPart.ColorWeight.ToString() + Environment.NewLine; fBluePartition[k++] = new int[] { lColorPart.ColorLevel, lColorPart.ColorWeight }; } k = 0; foreach (var lColorPart in lArrGroupColorSumma) { fMainTextSumma += lColorPart.ColorLevel.ToString() + ", "; fAddTextSumma += lColorPart.ColorLevel.ToString("D3") + " : " + lColorPart.ColorWeight.ToString() + Environment.NewLine; fSummaPartition[k++] = new int[] { lColorPart.ColorLevel, lColorPart.ColorWeight }; } } }
private void DrawColorManagerToolbar() { GUILayout.FlexibleSpace(); if (GUILayout.Button(rangeGUI, EditorStyles.toolbarButton)) { colorGroups = colorGroups.OrderBy(g => g.Color.grayscale).ToArray(); colorGroups = colorGroups.OrderBy(g => g.Name).ToArray(); } if (GUILayout.Button(refreshGUI, EditorStyles.toolbarButton)) { LoadSprites(); } GUILayout.Space(15); // Reset if (GUILayout.Button(resetGUI, EditorStyles.toolbarButton) && EditorUtility.DisplayDialog(confirmDialogTitle, resetMessage, confirmDialogOK, confirmDialogCancel)) { colorGroups = new ColorGroup[] { }; LoadSprites(); Repaint(); } GUILayout.Space(10); // Load if (GUILayout.Button(loadGUI, EditorStyles.toolbarButton) && EditorUtility.DisplayDialog(confirmDialogTitle, loadMessage, confirmDialogOK, confirmDialogCancel)) { string _sceneName = EditorSceneManager.GetActiveScene().name; for (int _i = 0; _i < sceneGroupsName.Count; _i++) { if (sceneGroupsName[_i] == _sceneName) { string[] _groups = sceneGroups[_i].Split('\n'); string[] _groupColor = new string[] { }; string _groupName = string.Empty; colorGroups = new ColorGroup[_groups.Length - 1]; for (int _j = 0; _j < _groups.Length - 1; _j++) { _groupName = _groups[_j].Split('|')[0]; _groupColor = _groups[_j].Split('|')[1].Split('#'); colorGroups[_j] = new ColorGroup(new Color(float.Parse(_groupColor[0]), float.Parse(_groupColor[1]), float.Parse(_groupColor[2]), float.Parse(_groupColor[3])), _groupName); } LoadSprites(); break; } } } // Save if (GUILayout.Button(saveGUI, EditorStyles.toolbarButton)) { string _file = string.Empty; foreach (ColorGroup _group in colorGroups) { _file += $"{_group.Name}|{_group.Color.r}#{_group.Color.g}#{_group.Color.b}#{_group.Color.a}\n"; } bool _isSaved = false; string _sceneName = EditorSceneManager.GetActiveScene().name; for (int _i = 0; _i < sceneGroupsName.Count; _i++) { if (sceneGroupsName[_i] == _sceneName) { sceneGroups[_i] = _file; _isSaved = true; break; } } if (!_isSaved) { sceneGroupsName.Add(_sceneName); sceneGroups.Add(_file); } } }
public override void onSet(string s) { value = SettingsManager.GetColourGroup(s); GetComponent <UnityEngine.UI.Image>().color = value.Colour; base.onSet(s); }
/// <summary> /// 返回预定义的几种颜色 /// </summary> /// <param name="colorGroup">预定义颜色</param> /// <returns></returns> private static MColor[] GetPredefinedColor(ColorGroup colorGroup) { List<MColor> retVal = new List<MColor>(); switch (colorGroup) { case ColorGroup.W3C16: foreach (string[] var in ColorDefined.GetW3C16Color()) { retVal.Add(new MColor(var[1], ColorTranslator.FromHtml(var[0]))); } break; case ColorGroup.Safe216: foreach (string var in ColorDefined.GetSafe216Color()) { retVal.Add(new MColor(var, ColorTranslator.FromHtml(var))); } break; case ColorGroup.IE4_PreNamed: foreach (string[] var in ColorDefined.GetIE4_PreNamedColor()) { retVal.Add(new MColor(var[1], ColorTranslator.FromHtml(var[0]))); } break; case ColorGroup.WIN: foreach (string var in ColorDefined.GetWINColor()) { retVal.Add(new MColor(var, Color.FromName(var))); } break; } return retVal.ToArray(); }
public void Init(int suitId, int num, bool isDressOn, bool breath = false) { if (!isDressOn) { num = 0; } for (var i = 0; i < activePoints.Length; i++) { activePoints[i].SafeSetActive(i < num); } foreach (var go in attributeList) { GameObject.Destroy(go); } attributeList.Clear(); if (suitId <= 0) { Root.SafeSetActive(false); return; } var suitInfo = ConfigManager.Get <SuitInfo>(suitId); if (null == suitInfo) { Root.SafeSetActive(false); return; } Root.SafeSetActive(true); Util.SetText(suitName, $"{ConfigText.GetDefalutString(suitInfo.nameId)}({num}/3)"); for (var i = 0; i < suitInfo.effectDescs.Length; i++) { var t = group.AddNewChild(templete); t.SafeSetActive(true); attributeList.Add(t.gameObject); var text = t?.GetComponent <Text>("content"); Util.SetText(text, suitInfo.effectDescs[i]); if (text) { text.color = ColorGroup.GetColor(ColorManagerType.SuitActive, i < num && isDressOn); } Util.SetText(t?.GetComponent <Text>("type"), Util.Format(ConfigText.GetDefalutString(TextForMatType.SublimationUI, 0), i + 1)); var skillIconRoot = t?.GetComponent <Transform>("skill"); if (null != skillIconRoot) { //不显示技能图标了 skillIconRoot.SafeSetActive(false /*suitInfo.skillEffects[i].Length > 0*/); if (skillIconRoot.gameObject.activeInHierarchy) { var skillInfo = ConfigManager.Get <SkillInfo>(suitInfo.skillEffects[i][0].skillId); AtlasHelper.SetSkillIcon(skillIconRoot.GetComponent <Transform>("frame/icon"), skillInfo?.skillIcon); } } if (!isDressOn) { continue; } var tweens = t.GetComponentsInChildren <TweenBase>(); if (null == tweens || tweens.Length == 0) { continue; } if (i == num - 1 && breath) { for (var index = 0; index < tweens.Length; index++) { tweens[index].enabled = true; tweens[index].Play(); } } else { for (var index = 0; index < tweens.Length; index++) { tweens[index].enabled = false; } } } }
/// <summary> /// Returns the baseline color index within a particular <see cref="ColorGroup"/>. /// </summary> /// <param name="group">A <see cref="ColorGroup"/> value.</param> /// <returns>The baseline (level = 0) color index value for the given <see cref="ColorGroup"/>.</returns> public int GroupToColorIndex(ColorGroup group) { return(GroupToColorIndex(group, 0)); }
public void RemoveTransformFromColorGroup(ColorGroup group, RectTransform transToRemove) { switch (group) { case ColorGroup.Primary: if (!PrimaryColorObjects.Remove(transToRemove)) Debug.Log("Didn't Find Primary! " + transToRemove); break; case ColorGroup.Secondary: if (!SecondaryColorObjects.Remove(transToRemove)) Debug.Log("Didn't Find Secondary! " + transToRemove); break; case ColorGroup.Tertiary: TertiaryColorObjects.Remove(transToRemove); break; case ColorGroup.WarmSupport: WarmSupportObjects.Remove(transToRemove); break; case ColorGroup.CoolSupport: CoolSupportObjects.Remove(transToRemove); break; default: Debug.Log("ERROR - Not a valid color group!"); return; } }
/// <summary> /// Returns the baseline <see cref="Color"/> within a particular <see cref="ColorGroup"/>. /// </summary> /// <param name="group">A <see cref="ColorGroup"/> value.</param> /// <returns>The baseline (level = 0) <see cref="Color"/> for the given <see cref="ColorGroup"/>.</returns> public Color GroupToColor(ColorGroup group) { return GroupToColor(group, 0); }
public void AddRectTransformToColorGroup(ColorGroup group, RectTransform transToAdd) { int color = 0; switch (group) { case ColorGroup.Primary: PrimaryColorObjects.Add(transToAdd); color = 0; break; case ColorGroup.Secondary: SecondaryColorObjects.Add(transToAdd); color = 1; break; case ColorGroup.Tertiary: TertiaryColorObjects.Add(transToAdd); color = 2; break; case ColorGroup.WarmSupport: WarmSupportObjects.Add(transToAdd); color = 3; break; case ColorGroup.CoolSupport: CoolSupportObjects.Add(transToAdd); color = 4; break; default: return; } if(transToAdd.GetComponent<Image>()) transToAdd.GetComponent<Image>().color = new Color(Colors[currentColorGroup][color].r,Colors[currentColorGroup][color].g,Colors[currentColorGroup][color].b,transToAdd.GetComponent<Image>().color.a); else if (transToAdd.GetComponent<Text>()) transToAdd.GetComponent<Text>().color = new Color(Colors[currentColorGroup][color].r,Colors[currentColorGroup][color].g,Colors[currentColorGroup][color].b,transToAdd.GetComponent<Text>().color.a); }
/// <summary> /// Returns the baseline color index within a particular <see cref="ColorGroup"/>. /// </summary> /// <param name="group">A <see cref="ColorGroup"/> value.</param> /// <returns>The baseline (level = 0) color index value for the given <see cref="ColorGroup"/>.</returns> public int GroupToColorIndex(ColorGroup group) { return GroupToColorIndex(group, 0); }
public void Split() { Color originalColor = Color.white; Renderer originalRend = this.GetComponent <Renderer>(); if (originalRend != null) { originalColor = originalRend.material.color; } //0-R, 1-B, 2-G string colorName = ""; ColorGroup group = ColorGroup.RED; for (int i = 0; i < 3; i++) { Color splitColor = originalColor; switch (i) { case 0: colorName = "Red"; if (originalColor.r == 0) { continue; } splitColor.b = 0; splitColor.g = 0; group = ColorGroup.RED; break; case 1: colorName = "Green"; if (originalColor.g == 0) { continue; } splitColor.b = 0; splitColor.r = 0; group = ColorGroup.GREEN; break; case 2: colorName = "Blue"; if (originalColor.b == 0) { continue; } splitColor.r = 0; splitColor.g = 0; group = ColorGroup.BLUE; break; } GameObject fragment = CreateFragment(splitColor, LayerMask.NameToLayer(colorName), colorName); ConvergenceManager.Instance.RegisterObject(fragment, group); } originalRend.enabled = false; }
public void Assign(ColorGroup c) { cG = c; image.color = cG.Colour; ifield.text = cG.Name; }
public void Refresh() { if (Task.Task == null) { return; } var ct = ConfigManager.Get <ConfigText>((int)TextForMatType.PetTrainText); Util.SetText(title, Task.Task.name); if (Task.LimitCount == 0) { Util.SetText(count, ConfigText.GetDefalutString(TextForMatType.PetTrainText, 24)); } else { Util.SetText(count, Util.Format(ct[8], $"{Task.LimitCount - Task.Count}/{Task.LimitCount}")); } count.color = ColorGroup.GetColor(ColorManagerType.TimesUseUp, Task.TimesUseUp); Util.SetText(levelLimit, Util.Format(ct[7], Task.Task.minlv)); AtlasHelper.SetPetMission(taskIcon, Task.Task.icon); Util.ClearChildren(itemGroup); for (var i = 0; i < Task.Task.previewRewardItemId.Length; i++) { var itemData = Task.Task.previewRewardItemId[i]; var propInfo = ConfigManager.Get <PropItemInfo>(itemData); if (propInfo == null) { continue; } var t = itemGroup.AddNewChild(item); t.SafeSetActive(true); Util.SetItemInfoSimple(t, propInfo); var button = t.GetComponent <Button>(); if (button) { button.onClick.AddListener(() => Module_Global.instance.UpdateGlobalTip((ushort)itemData, true)); } } speedUp.SafeSetActive(Task.State == (int)PetTaskState.Training); cancel.SafeSetActive(Task.State == (int)PetTaskState.Training); hourglass.SafeSetActive(Task.State == (int)PetTaskState.Training); gotAward.SafeSetActive(Task.State == (int)PetTaskState.Success || Task.State == (int)PetTaskState.Defeat); startTrain.SafeSetActive(Task.State == (int)PetTaskState.None && !Task.TimesUseUp); completeImage.SafeSetActive(Task.State == (int)PetTaskState.Success); defeatImage.SafeSetActive(Task.State == (int)PetTaskState.Defeat); over.SafeSetActive(Task.TimesUseUp && Task.State == (int)PetTaskState.None); if (over.gameObject.activeInHierarchy) { Util.SetText(overText, ConfigText.GetDefalutString(TextForMatType.PetTrainText, Task.IsWeekTask ? 29 : 26)); } if (Task.State == (int)PetTaskState.None && !Task.TimesUseUp) { var a = Task.Task.costTime; var t = new TimeSpan(a * TimeSpan.TicksPerMinute); Util.SetText(timeremaining, Util.Format(ct[6], $"{(int)t.TotalHours:00}:{t.Minutes:00}:{t.Seconds:00}")); } else { Util.SetText(timeremaining, string.Empty); } prtListRoot.SafeSetActive(Task.GetTrainingPetCount() > 0); for (var i = 0; i < petList.Length; i++) { var petId = Task.GetTrainingPet(i); var petInfo = petId != 0 ? Module_Pet.instance.GetPet(petId) : null; if (petId == 0 || petInfo == null) { petList[i].SafeSetActive(false); } else { AtlasHelper.SetPetIcon(petList[i], petInfo.UpGradeInfo.icon); petList[i].SafeSetActive(true); } } taskTypeColor.color = ColorGroup.GetColor(ColorManagerType.TaskType, Task.Task.type); }