void InitTurnTable() { armyConfigList = new List <ArmyConfig>(); for (int i = 1; i <= 12; i++) { int index = i + 20; ArmyConfig config = new ArmyConfig { level = i, image_name = "Army_Model_" + index, name = i + "级将军" }; armyConfigList.Add(config); } //Unity卡死问题 amount = max; int defaultIndex = this.GetDefaultSelectedSoldier(); currentArmyConfig = armyConfigList[defaultIndex]; turnTable.SetAdapter(new TroopTypeAdapter(armyConfigList, soldierItemPrefab), true); turnTable.selectedListener += OnSelectedChanged; turnTable.scrollStatusListener += OnScrollStatusChanged; turnTable.SetSelected(defaultIndex); }
private void OnMapChanged(int value) { config.map = R.asset.maps.defaultMaps[value]; // Show map to map preview and map description ArmyConfig.OnMapChanged(config.map); }
private static void OnColorChanged(ArmyConfig cfg, Army.Color oldColor, Army.Color newColor) { var opt = new Dropdown.OptionData(oldColor.ToString()); foreach (var c in instance.armyConfigs) { if (c != cfg && c.isOn) { int index = c.colorList.IndexOf(newColor); c.colorList[index] = oldColor; c.selectColor.options[index] = opt; } } }
public void SetArmyConfig(int index, ArmyConfig config) { string path = @"file://" + Application.dataPath + @"/Resources/Images/TrainTroop/Army/" + config.image_name + ".png"; StartCoroutine(KSLoadImage.LoadImage(image, path)); }
private void OnSelectedChanged(int index) { currentArmyConfig = armyConfigList[index]; info.UpdateInfo(currentArmyConfig.level, currentArmyConfig.name); }
// ===================== EVENTS =================================== private static void OnIsOnChanged(ArmyConfig cfg, bool value) { if (value) { // Show army config // Check group List <Army.Group> currentList = null; foreach (var c in instance.armyConfigs) { if (c != cfg && c.isOn) { currentList = c.groupList; break; } } if (currentList == null) { currentList = new List <Army.Group>(); } var mapGroups = new List <Army.Group>(); int length = instance.config.map.armyColors.Length; for (int i = 0; i < length; ++i) { mapGroups.Add((Army.Group)i); } var freeGroups = new List <Army.Group>(); foreach (var group in mapGroups) { if (!currentList.Contains(group)) { freeGroups.Add(group); } } var freeGroup = freeGroups[0]; var opt = new Dropdown.OptionData(freeGroup.ToString()); cfg.group = freeGroup; cfg.selectGroup.options = new List <Dropdown.OptionData>() { opt }; foreach (var group in currentList) { cfg.selectGroup.options.Add(new Dropdown.OptionData(group.ToString())); } cfg.groupList = new List <Army.Group>() { freeGroup }; cfg.groupList.AddRange(currentList); foreach (var c in instance.armyConfigs) { if (c != cfg && c.isOn) { c.selectGroup.options.Add(opt); c.groupList.Add(freeGroup); } } // Check color List <Army.Color> freeColors = null; foreach (var c in instance.armyConfigs) { if (c != cfg && c.isOn) { freeColors = new List <Army.Color>(c.colorList); freeColors.Remove(c.color); break; } } if (freeColors == null) { freeColors = new List <Army.Color>(instance.config.map.armyColors); } cfg._color = freeColors[0]; cfg.panel.color = InfoUI.armyColors[cfg.color]; opt = new Dropdown.OptionData(cfg.color.ToString()); cfg.selectColor.options = new List <Dropdown.OptionData>() { opt }; cfg.colorList = new List <Army.Color>() { cfg.color }; foreach (var color in freeColors) { if (color != cfg.color) { cfg.selectColor.options.Add(new Dropdown.OptionData(color.ToString())); cfg.colorList.Add(color); } } foreach (var c in instance.armyConfigs) { if (c != cfg && c.isOn) { int index = c.colorList.IndexOf(cfg.color); c.colorList.RemoveAt(index); c.selectColor.options.RemoveAt(index); } } } else { // Hide army config // Check group var currentOtherGroups = new List <Army.Group>(); foreach (var c in instance.armyConfigs) { if (c.isOn) { currentOtherGroups.Add(c.group); } } var freeGroups = new List <Army.Group>(); foreach (var group in cfg.groupList) { if (!currentOtherGroups.Contains(group)) { freeGroups.Add(group); } } var freeGroup = freeGroups[0]; foreach (var c in instance.armyConfigs) { if (c.isOn) { c.selectGroup.options.RemoveAt(c.groupList.IndexOf(freeGroup)); c.groupList.Remove(freeGroup); } } // Check color var opt = new Dropdown.OptionData(cfg.color.ToString()); foreach (var c in instance.armyConfigs) { if (c.isOn) { c.selectColor.options.Add(opt); c.colorList.Add(cfg.color); } } } }