From 5c70a5872042e3011b992715f6e1cce367a537ab Mon Sep 17 00:00:00 2001
From: client_Zxw <826696702@qq.com>
Date: 星期一, 08 十月 2018 14:44:26 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
---
System/Rune/RunePackCell.cs | 67 +++++++++++++++++++++++++++------
1 files changed, 55 insertions(+), 12 deletions(-)
diff --git a/System/Rune/RunePackCell.cs b/System/Rune/RunePackCell.cs
index 609aaa8..0aec98f 100644
--- a/System/Rune/RunePackCell.cs
+++ b/System/Rune/RunePackCell.cs
@@ -79,12 +79,32 @@
MessageWin.Inst.ShowFixedTip(Language.Get("L1061"));
return;
}
- if (model.IsSameInHoleRune(_rune.id, model.sltRuneHole))
- {
- MessageWin.Inst.ShowFixedTip(Language.Get("L1078"));
- return;
- }
var sltHoleRune = model.GetHoleRune(model.sltRuneHole);
+ bool switchOtherSameHole = false;
+ List<int> sameHoles = new List<int>();
+ if (sltHoleRune == null || runeComposeModel.m_RuneBothPropertys.Contains(sltHoleRune.id)
+ || !runeComposeModel.m_RuneBothPropertys.Contains(_rune.id))
+ {
+ if (model.IsSameInHoleRune(_rune.id, model.sltRuneHole))
+ {
+ MessageWin.Inst.ShowFixedTip(Language.Get("L1078"));
+ return;
+ }
+ }
+ else
+ {
+ model.IsSameRune(_rune.id, ref sameHoles);
+ if (sameHoles.Count > 0 && !sameHoles.Contains(model.sltRuneHole))
+ {
+ MessageWin.Inst.ShowFixedTip(Language.Get("L1078"));
+ return;
+ }
+ if (sameHoles.Count > 1)
+ {
+ switchOtherSameHole = true;
+ }
+ }
+
if (runeComposeModel.m_RuneBothPropertys.Contains(_rune.id)
&& model.GetDoublePropLimitCount() <= model.GetCurrentDoublePropCount()
&& (sltHoleRune == null || !runeComposeModel.m_RuneBothPropertys.Contains(sltHoleRune.id)))
@@ -93,13 +113,36 @@
SysNotifyMgr.Instance.ShowTip("RuneGridUnEnough", _count);
return;
}
- C073D_tagCPackItemExchange runeInlayPack = new C073D_tagCPackItemExchange();
- runeInlayPack.SrcBackpack = (byte)_rune.packtype;
- runeInlayPack.SrcIndex = (ushort)_rune.index;
- runeInlayPack.DesBackPack = (int)PackType.rptInterimPack;
- runeInlayPack.DestIndex = (ushort)model.sltRuneHole;
- GameNetSystem.Instance.SendInfo(runeInlayPack);
- WindowCenter.Instance.CloseImmediately<RunePackWin>();
+
+ if (switchOtherSameHole)
+ {
+ var otherSameHole = sameHoles[0] == model.sltRuneHole ? sameHoles[1] : sameHoles[0];
+ var otherRune = model.GetHoleRune(otherSameHole);
+ ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("SwitchDoublePropertyRune"), (bool isOk) =>
+ {
+ if (isOk)
+ {
+ SwitchRune(otherRune.packtype, otherSameHole, _rune.packtype, 0);
+ SwitchRune(_rune.packtype, _rune.index, (int)PackType.rptInterimPack, model.sltRuneHole);
+ WindowCenter.Instance.CloseImmediately<RunePackWin>();
+ }
+ });
+ }
+ else
+ {
+ SwitchRune(_rune.packtype, _rune.index, (int)PackType.rptInterimPack, model.sltRuneHole);
+ WindowCenter.Instance.CloseImmediately<RunePackWin>();
+ }
+ }
+
+ void SwitchRune(int srcpackType,int scrIndex,int destpackType,int destIndex)
+ {
+ C073D_tagCPackItemExchange pak = new C073D_tagCPackItemExchange();
+ pak.SrcBackpack = (byte)srcpackType;
+ pak.SrcIndex = (ushort)scrIndex;
+ pak.DesBackPack = (byte)destpackType;
+ pak.DestIndex = (ushort)destIndex;
+ GameNetSystem.Instance.SendInfo(pak);
}
}
}
--
Gitblit v1.8.0