using System; using System.Collections.Generic; using ET; namespace GFGGame { public class BonusController { public static void TryShowBonusList(int[][] bonusInfos, Action onSuccess = null) { if (bonusInfos != null && bonusInfos.Length > 0) { List bonusList = ItemUtil.CreateItemDataList(bonusInfos); CheckUpdateAutoUseItem(bonusList); if (bonusList.Count == 0) return; ViewManager.Show(new object[] { bonusList, onSuccess }); } } public static void TryShowBonusList(List bonusList, Action onSuccess = null) { if (bonusList != null && bonusList.Count > 0) { CheckUpdateAutoUseItem(bonusList); if (bonusList.Count == 0) return; ViewManager.Show(new object[] { bonusList, onSuccess }); } } private static void CheckUpdateAutoUseItem(List bonusList) { List itemDatasFromAutoUsedItem = new List(); int count = bonusList.Count; for (var i = count - 1; i >= 0; i--) { var t = bonusList[i]; var itemCfg = ItemCfgArray.Instance.GetCfg(t.id); if (itemCfg != null && itemCfg.itemType == ConstItemType.USEABLE && (itemCfg.subType == ConstItemSubType.USEABLE_AUTO)) { itemDatasFromAutoUsedItem.AddRange(ItemUtil.CreateItemDataList(itemCfg.itemsArr, t.num)); bonusList.RemoveAt(i); } } bonusList.AddRange(itemDatasFromAutoUsedItem); } } }