|
|
@@ -17,7 +17,7 @@ namespace Fort23.Mono
|
|
|
|
|
|
private DaoyouModelConfig _daoyouModelConfig;
|
|
|
|
|
|
- private WidgetItem currentSelectWidgetItem;
|
|
|
+ private ItemInfo currentSelectWidgetItem;
|
|
|
|
|
|
List<WidgetItem> widgetItems = new List<WidgetItem>();
|
|
|
List<WidgetItem> giveWidgetItems = new List<WidgetItem>();
|
|
|
@@ -161,13 +161,13 @@ namespace Fort23.Mono
|
|
|
//喜好礼物翻倍
|
|
|
if (_daoyouModelConfig.PreferGiftID.Contains(daoyouGiftConfig.ItemID))
|
|
|
{
|
|
|
- daoYouData.exp += (int)(daoyouGiftConfig.emotionValue * bl * 0.001f *
|
|
|
- PlayerManager.Instance.gameConstantConfig.daolvfavoratePara *
|
|
|
- 0.01f);
|
|
|
+ daoYouData.exp += (daoyouGiftConfig.emotionValue * bl * 0.001f *
|
|
|
+ PlayerManager.Instance.gameConstantConfig.daolvfavoratePara *
|
|
|
+ 0.01f);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- daoYouData.exp += (int)(daoyouGiftConfig.emotionValue * bl * 0.001f);
|
|
|
+ daoYouData.exp += (daoyouGiftConfig.emotionValue * bl * 0.001f);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -181,6 +181,10 @@ namespace Fort23.Mono
|
|
|
daoYouData.exp -= configs[i].exp;
|
|
|
daoYouData.favorabilityLv++;
|
|
|
}
|
|
|
+ else
|
|
|
+ {
|
|
|
+ break;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
AudioManager.Instance.PlayAudio("ui_shiyonghuode");
|
|
|
@@ -326,54 +330,92 @@ namespace Fort23.Mono
|
|
|
DaoyouLevelupConfig[] configs = ConfigComponent.Instance.GetAll<DaoyouLevelupConfig>();
|
|
|
if (daoYouData.favorabilityLv >= configs.Length)
|
|
|
{
|
|
|
- Text_Exp.text = $"{daoYouData.exp}/MAX";
|
|
|
+ Text_Exp.text = $"{daoYouData.exp.ToString("0.0")}/MAX";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- Text_Exp.text = $"{daoYouData.exp}/{currentDaoyouLevelupConfig.exp}";
|
|
|
+ Text_Exp.text = $"{daoYouData.exp.ToString("0.0")}/{currentDaoyouLevelupConfig.exp}";
|
|
|
}
|
|
|
|
|
|
|
|
|
Slider_LeveUp.value = daoYouData.exp;
|
|
|
|
|
|
+ CTaskAwaitBuffer taskAwaitBuffer = new CTaskAwaitBuffer();
|
|
|
+
|
|
|
+ CTaskAwaitBuffer<WidgetItem> cts = null;
|
|
|
if (_daoyouModelConfig.PreferGiftID != null)
|
|
|
{
|
|
|
+ cts = new CTaskAwaitBuffer<WidgetItem>();
|
|
|
foreach (var i in _daoyouModelConfig.PreferGiftID)
|
|
|
{
|
|
|
- WidgetItem widgetItem =
|
|
|
- await UIManager.Instance.CreateGComponent<WidgetItem>(null, LoveItemContent);
|
|
|
- widgetItems.Add(widgetItem);
|
|
|
- if (_daoyouModelConfig.shownPreferGiftID.Contains(i) ||
|
|
|
- (daoYouData != null && daoYouData.loveIds.Contains(i)))
|
|
|
+ cts.AddTask(UIManager.Instance.CreateGComponent<WidgetItem>(null, LoveItemContent));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ taskAwaitBuffer.AddTask(cts.WaitAll());
|
|
|
+ }
|
|
|
+
|
|
|
+ CTaskAwaitBuffer<DaoYouaaFfixWidget> cts2 = null;
|
|
|
+
|
|
|
+ if (_daoyouModelConfig.daolvSkillID != null)
|
|
|
+ {
|
|
|
+ cts2 = new CTaskAwaitBuffer<DaoYouaaFfixWidget>();
|
|
|
+ for (var i = 0; i < _daoyouModelConfig.daolvSkillID.Length; i++)
|
|
|
+ {
|
|
|
+ cts2.AddTask(UIManager.Instance.CreateGComponent<DaoYouaaFfixWidget>(null, DaoLvContent));
|
|
|
+ }
|
|
|
+
|
|
|
+ taskAwaitBuffer.AddTask(cts2.WaitAll());
|
|
|
+ }
|
|
|
+
|
|
|
+ CTaskAwaitBuffer<DaoYouLevelWidget> cts1 = new CTaskAwaitBuffer<DaoYouLevelWidget>();
|
|
|
+ foreach (var daoyouLevelupConfig in configs)
|
|
|
+ {
|
|
|
+ cts1.AddTask(UIManager.Instance.CreateGComponent<DaoYouLevelWidget>(null, DaoYouLevelWidgetContent));
|
|
|
+ }
|
|
|
+
|
|
|
+ taskAwaitBuffer.AddTask(cts1.WaitAll());
|
|
|
+
|
|
|
+ await taskAwaitBuffer.WaitAll();
|
|
|
+
|
|
|
+ if (_daoyouModelConfig.PreferGiftID != null)
|
|
|
+ {
|
|
|
+ widgetItems = cts.GetResultsLists();
|
|
|
+
|
|
|
+ for (var i = 0; i < _daoyouModelConfig.PreferGiftID.Length; i++)
|
|
|
+ {
|
|
|
+ if (_daoyouModelConfig.shownPreferGiftID.Contains(_daoyouModelConfig.PreferGiftID[i]) ||
|
|
|
+ (daoYouData != null && daoYouData.loveIds.Contains(_daoyouModelConfig.PreferGiftID[i])))
|
|
|
{
|
|
|
- widgetItem.InitWidget(new ItemInfo(i, 0));
|
|
|
+ widgetItems[i].InitWidget(new ItemInfo(_daoyouModelConfig.PreferGiftID[i], 0));
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- widgetItem.ShowWenhao();
|
|
|
+ widgetItems[i].ShowWenhao();
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
if (_daoyouModelConfig.daolvSkillID != null)
|
|
|
{
|
|
|
- foreach (var i in _daoyouModelConfig.daolvSkillID)
|
|
|
+ daoYouaaFfixWidgets = cts2.GetResultsLists();
|
|
|
+ for (var i = 0; i < _daoyouModelConfig.daolvSkillID.Length; i++)
|
|
|
{
|
|
|
- DaoYouaaFfixWidget daoYouaaFfixWidge =
|
|
|
- await UIManager.Instance.CreateGComponent<DaoYouaaFfixWidget>(null, DaoLvContent);
|
|
|
- daoYouaaFfixWidge.CustomInit(i);
|
|
|
- daoYouaaFfixWidgets.Add(daoYouaaFfixWidge);
|
|
|
+ daoYouaaFfixWidgets[i].CustomInit(_daoyouModelConfig.daolvSkillID[i]);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
- foreach (var daoyouLevelupConfig in configs)
|
|
|
+ _daoYouLevelWidgets = cts1.GetResultsLists();
|
|
|
+ for (var i = 0; i < configs.Length; i++)
|
|
|
{
|
|
|
- DaoYouLevelWidget daoYouLevelWidget =
|
|
|
- await UIManager.Instance.CreateGComponent<DaoYouLevelWidget>(null, DaoYouLevelWidgetContent);
|
|
|
- daoYouLevelWidget.CustomInit(daoYouData, daoyouLevelupConfig.ID);
|
|
|
- _daoYouLevelWidgets.Add(daoYouLevelWidget);
|
|
|
+ _daoYouLevelWidgets[i].CustomInit(daoYouData, configs[i].ID);
|
|
|
}
|
|
|
+
|
|
|
+ taskAwaitBuffer?.Dispose();
|
|
|
+ cts?.Dispose();
|
|
|
+ cts1?.Dispose();
|
|
|
+ cts2?.Dispose();
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -432,14 +474,20 @@ namespace Fort23.Mono
|
|
|
|
|
|
private async CTask CreatItem(List<ItemInfo> shownItems)
|
|
|
{
|
|
|
- // ClosePoolGive();
|
|
|
+ using (CTaskAwaitBuffer<WidgetItem> cts = new CTaskAwaitBuffer<WidgetItem>())
|
|
|
+ {
|
|
|
+ foreach (var itemInfo in shownItems)
|
|
|
+ {
|
|
|
+ cts.AddTask(UIManager.Instance.CreateGComponent<WidgetItem>(null, GiveGiftContent));
|
|
|
+ }
|
|
|
+
|
|
|
+ giveWidgetItems = await cts.WaitAll();
|
|
|
+ }
|
|
|
|
|
|
- foreach (var itemInfo in shownItems)
|
|
|
+ for (var i = 0; i < shownItems.Count; i++)
|
|
|
{
|
|
|
- WidgetItem widgetItem = await UIManager.Instance.CreateGComponent<WidgetItem>(null, GiveGiftContent);
|
|
|
- widgetItem.InitWidget(itemInfo, false);
|
|
|
- widgetItem.OnClick = OnClick;
|
|
|
- giveWidgetItems.Add(widgetItem);
|
|
|
+ giveWidgetItems[i].InitWidget(shownItems[i], false);
|
|
|
+ giveWidgetItems[i].OnClick = OnClick;
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -447,7 +495,19 @@ namespace Fort23.Mono
|
|
|
{
|
|
|
if (currentSelectWidgetItem != null)
|
|
|
{
|
|
|
- currentSelectWidgetItem.OnPointerClick();
|
|
|
+ bool isHave = false;
|
|
|
+ foreach (var giveWidgetItem in giveWidgetItems)
|
|
|
+ {
|
|
|
+ if (giveWidgetItem.itemInfo == currentSelectWidgetItem)
|
|
|
+ {
|
|
|
+ giveWidgetItem.OnPointerClick();
|
|
|
+ isHave = true;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if(!isHave)
|
|
|
+ giveWidgetItems[0].OnPointerClick();
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
@@ -463,7 +523,7 @@ namespace Fort23.Mono
|
|
|
private async void OnClick(ItemWidgetBasic obj)
|
|
|
{
|
|
|
WidgetItem widgetItem = obj as WidgetItem;
|
|
|
- currentSelectWidgetItem = widgetItem;
|
|
|
+ currentSelectWidgetItem = widgetItem.itemInfo;
|
|
|
if (widgetItem1 == null)
|
|
|
{
|
|
|
widgetItem1 = await UIManager.Instance.CreateGComponent<WidgetItem>(null, WidgetItemRoot);
|