From bface07b5ea879e40f5be8d082bfa77fb873b0bd Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期四, 15 一月 2026 18:07:44 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.1.20:10010/r/Project_SG_scripts
---
Main/System/Equip/EquipModel.cs | 17 +
Main/System/Main/AutoFightModel.cs | 81 ++++++
Main/System/Guild/GuildBossManager.cs | 13 +
Main/System/Main/EquipRecordManager.cs | 175 ++++++++++++++
Main/System/Main/EquipRecordManager.cs.meta | 11
Main/System/Setting/QuickSetting.cs | 9
Main/System/Store/StoreWin.cs | 10
Main/System/Battle/BattleField/OperationAgent/AutoModeOperationAgent.cs | 35 ++
Main/System/Main/AutoFightWin.cs | 151 +++++++++++
Main/System/Redpoint/MainRedDot.cs | 2
Main/System/Guild/GuildBossWin.cs | 34 ++
Main/System/Main/EquipRecordWin.cs.meta | 11
Main/System/Main/EquipRecordItem.cs.meta | 11
Main/System/Settlement/BattleSettlementManager.cs | 6
Main/System/Main/EquipRecordCell.cs | 13 +
Main/System/Main/EquipRecordWin.cs | 33 ++
Main/System/Main/HomeWin.cs | 8
Main/System/UIBase/UIJumpManager.cs | 14 +
Main/Main.cs | 1
Main/System/Main/EquipRecordCell.cs.meta | 11
Main/System/Main/EquipRecordItem.cs | 16 +
Main/System/Store/StoreModel.cs | 2
22 files changed, 633 insertions(+), 31 deletions(-)
diff --git a/Main/Main.cs b/Main/Main.cs
index 0f72ce9..63fbce6 100644
--- a/Main/Main.cs
+++ b/Main/Main.cs
@@ -100,6 +100,7 @@
managers.Add(GubaoManager.Instance);
managers.Add(WarlordPavilionManager.Instance);
managers.Add(ViewNPCManager.Instance);
+ managers.Add(EquipRecordManager.Instance);
foreach (var manager in managers)
{
manager.Init();
diff --git a/Main/System/Battle/BattleField/OperationAgent/AutoModeOperationAgent.cs b/Main/System/Battle/BattleField/OperationAgent/AutoModeOperationAgent.cs
index 4c2b3a7..d72f5d3 100644
--- a/Main/System/Battle/BattleField/OperationAgent/AutoModeOperationAgent.cs
+++ b/Main/System/Battle/BattleField/OperationAgent/AutoModeOperationAgent.cs
@@ -10,6 +10,7 @@
}
float lastTime;
+ float lastSendTime;
public override void Run()
{
//鏈�浣�1绉�
@@ -18,6 +19,33 @@
lastTime = Time.time;
if (AutoFightModel.Instance.isPause)
return;
+
+ // 鑷姩鎸戞垬boss
+ if (AutoFightModel.Instance.isAutoChallengeBoss)
+ {
+ if (!MainLevelManager.Instance.CanChallengeBoss())
+ {
+ DoNext();
+ return;
+ }
+ //涓婃鎸戞垬boss澶辫触浜嗭紝鍐嶆灏濊瘯瑕佺瓑CD
+ if (AutoFightModel.Instance.nowChallengeCount > 0 &&
+ Time.time - AutoFightModel.Instance.lastChallengeTime < AutoFightModel.Instance.maxTryChallengeCD)
+ {
+ DoNext();
+ return;
+ }
+ //宸茬粡寮�濮媌oss鎴樻枟
+ BattleField battleField = BattleManager.Instance.GetActiveBattleFieldByName(BattleConst.StoryBossBattleField);
+ if (battleField != null)
+ return;
+ if (Time.time - lastSendTime < 1.0f)
+ return;
+ lastSendTime = Time.time;
+ Debug.Log($"寮�濮嬫寫鎴榖oss ServerNow{TimeUtility.ServerNow}");
+ FightBoss();
+ return;
+ }
DoNext();
}
@@ -25,4 +53,11 @@
{
storyBattleField.RequestFight();
}
+
+ void FightBoss()
+ {
+ BattleManager.Instance.SendTurnFight(2);
+ BattleManager.Instance.storyBattleField.CleanBattle();
+ AutoFightModel.Instance.isPause = true;
+ }
}
\ No newline at end of file
diff --git a/Main/System/Equip/EquipModel.cs b/Main/System/Equip/EquipModel.cs
index 9cfc208..ab0c807 100644
--- a/Main/System/Equip/EquipModel.cs
+++ b/Main/System/Equip/EquipModel.cs
@@ -10,7 +10,7 @@
{
public const int TotleEquip = 12; //瑁呭鏍忓ぇ灏�
public bool waitEquipOPPack = false; // 绌挎埓瑁呭鐨勬搷浣� 涓嶅惈鍒嗚В
- public float waitEquipOPTime = 0;
+ public float waitEquipOPTime = 0;
public event Action<bool, int> OnEquipOPResultAction; //鏄惁鎹笂浜嗘柊瑁呭涓斿垎瑙d簡 瑁呭绱㈠紩
public event Action<BattleDrops> OnItemDropEvent;
@@ -304,6 +304,17 @@
waitEquipOPTime = Time.time;
Debug.LogWarning("绌挎埓瑁呭锛屽悜鏈嶅姟鍣ㄨ姹�");
}
+
+ //鍦ㄨ褰曢攢姣佹垨鏇挎崲鍓嶇殑瑁呭
+ if ((opType == 1 || opType == 2) && !itemIndexList.IsNullOrEmpty())
+ {
+ foreach (var index in itemIndexList)
+ {
+ var oldEquip = PackManager.Instance.GetItemByIndex(PackType.Equip, index);
+ EquipRecordManager.Instance.oldEquipDic[index] = oldEquip;
+ }
+ }
+
GameNetSystem.Instance.SendInfo(pack);
}
@@ -388,7 +399,7 @@
return false;
}
-
+
selectFloorEquip = GetSelectFloorEquip();
if (selectFloorEquip == null)
{
@@ -501,7 +512,7 @@
}
public ItemModel GetEquip(int index)
- {
+ {
return PackManager.Instance.GetItemByIndex(PackType.Equip, index);
}
}
diff --git a/Main/System/Guild/GuildBossManager.cs b/Main/System/Guild/GuildBossManager.cs
index 7ed0516..a9a8ebe 100644
--- a/Main/System/Guild/GuildBossManager.cs
+++ b/Main/System/Guild/GuildBossManager.cs
@@ -11,7 +11,18 @@
public List<HA513_tagMCFamilyActionInfo.tagMCFamilyAction> playerBossHurtRank = new List<HA513_tagMCFamilyActionInfo.tagMCFamilyAction>();
//鏃堕棿鎴筹細璁ㄤ紣鏁版嵁; 鐢ㄤ簬鎾斁姣忔鏀诲嚮
public Dictionary<int, TaofaAtkData> taofaAtkData = new Dictionary<int, TaofaAtkData>();
- public int lastPlayTick = 0; //鎸夋椂闂撮『搴忔挱鏀撅紝褰撳墠鎾斁鐨則ick锛屽鏋滄壘涓嶅埌鍒欎粠绗竴涓紑濮�
+ //鎸夋椂闂撮『搴忔挱鏀撅紝褰撳墠鎾斁鐨則ick锛屽鏋滄壘涓嶅埌鍒欎粠绗竴涓紑濮�
+ public int lastPlayTick
+ {
+ get
+ {
+ return LocalSave.GetInt("lastPlayTick" + PlayerDatas.Instance.baseData.PlayerID);
+ }
+ set
+ {
+ LocalSave.SetInt("lastPlayTick" + PlayerDatas.Instance.baseData.PlayerID, value);
+ }
+ }
//鐜╁ID锛氱帺瀹舵暟鎹� 锛堥��鍑哄叕浼氱殑鐜╁锛�
public Dictionary<int, MemberData> taofaPlayerData = new Dictionary<int, MemberData>();
public event Action BossHurtEvent;
diff --git a/Main/System/Guild/GuildBossWin.cs b/Main/System/Guild/GuildBossWin.cs
index 09fbbb1..cc6741c 100644
--- a/Main/System/Guild/GuildBossWin.cs
+++ b/Main/System/Guild/GuildBossWin.cs
@@ -74,6 +74,16 @@
[SerializeField] Transform fakeRedBZ;
[SerializeField] Transform fakeRedAward;
+ [Header("姝﹀皢杩涘満鏃堕棿")]
+ public float heroShowTime = 0.1f;
+ [Header("姝﹀皢鏀诲嚮閫熷害瓒婂ぇ瓒婂揩")]
+ public float heroAtkSpeed = 2f;
+ [Header("澶氭椋樿浠ュ強鐗╁搧鍑虹幇闂撮殧姣")]
+ public int atkValueShowCD = 200;
+
+ [Header("鏄惁寰幆鎾斁浠栦汉鎴樻枟")]
+ public bool isOthersLoop = false;
+
bool isCD = false;
int beforeLayerNum; //甯冮樀灞傜骇 瀵规瘮鍙樺寲灞曠ず鐗规晥
@@ -383,7 +393,7 @@
}
GuildBossManager.Instance.TaofaBoss(0);
- ShowAttackCD().Forget();
+ // ShowAttackCD().Forget();
}
async UniTask ShowAttackCD()
@@ -404,6 +414,7 @@
ShowDynamicUI();
}
+
void AtkResultEvent()
{
//1. 鐜╁浠巔os1 绉诲姩鍒皃os2
@@ -412,7 +423,7 @@
heroModel.GetHero().onComplete = null;
heroModel.PlayAnimation("run", true);
heroModel.transform.localPosition = pos1.localPosition;
- heroModel.transform.DOLocalMove(pos2.localPosition, 0.3f).OnComplete(() =>
+ heroModel.transform.DOLocalMove(pos2.localPosition, heroShowTime).OnComplete(() =>
{
ShowDmg().Forget();
});
@@ -426,6 +437,7 @@
heroModel.transform.localPosition = pos1.localPosition;
};
heroModel.HeroPlay("attack");
+
if (GuildBossManager.Instance.atkResult.AtkType == 0)
{
hurtEffect.Play();
@@ -463,7 +475,7 @@
attackType = hurtData.IsSuper == 1 ? (int)DamageType.CritDamage : 2
};
hurtValues[i].text = BattleUtility.DisplayDamageNum(dmg);
- await UniTask.Delay(200);
+ await UniTask.Delay(atkValueShowCD);
}
else
{
@@ -491,7 +503,7 @@
awardValues[i].text = itemData.Count.ToString();
awardIcons[i].SetItemSprite((int)itemData.ItemID);
- await UniTask.Delay(200);
+ await UniTask.Delay(atkValueShowCD);
}
else
{
@@ -505,6 +517,7 @@
{
var skinConfig = HorseSkinConfig.Get(HorseManager.Instance.GetUsingHorseSkinID(false));
heroModel.Create(skinConfig.SkinID, PhantasmPavilionManager.Instance.GetMyModelSkinID(), 1.2f);
+ heroModel.GetHero().SetSpeed(heroAtkSpeed);
for (int i = 0; i < hurtValues.Length; i++)
{
hurtValues[i].transform.localScale = Vector3.zero;
@@ -646,11 +659,16 @@
int index = keys.IndexOf(GuildBossManager.Instance.lastPlayTick) + 1;
if (index >= keys.Count)
{
- index = 0;
+ index = isOthersLoop ? 0 : -1; //鏄惁寰幆鎾斁
}
- GuildBossManager.Instance.lastPlayTick = keys[index];
- var atkData = GuildBossManager.Instance.taofaAtkData[keys[index]];
- var atkPlayerID = atkData.playerID;
+ int atkPlayerID = 0;
+ TaofaAtkData atkData = null;
+ if (index >= 0)
+ {
+ GuildBossManager.Instance.lastPlayTick = keys[index];
+ atkData = GuildBossManager.Instance.taofaAtkData[keys[index]];
+ atkPlayerID = atkData.playerID;
+ }
for (int i = 0; i < otherPlayers.Count; i++)
{
if (!otherPlayers[i].isActiveAndEnabled)
diff --git a/Main/System/Main/AutoFightModel.cs b/Main/System/Main/AutoFightModel.cs
index 0cf11c9..1eecad8 100644
--- a/Main/System/Main/AutoFightModel.cs
+++ b/Main/System/Main/AutoFightModel.cs
@@ -1,7 +1,4 @@
锘縰sing System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Text;
using LitJson;
using UnityEngine;
@@ -82,7 +79,65 @@
}
}
+ //鑷姩鎸戞垬棣栭
+ public bool isAutoChallengeBoss
+ {
+ get
+ {
+ return QuickSetting.Instance.GetQuickSettingBool(QuickSettingType.AutoFight_ChallengeBoss, 0);
+ }
+ set
+ {
+ QuickSetting.Instance.SetQuickSetting(QuickSettingType.AutoFight_ChallengeBoss, value);
+ }
+ }
+ //褰撳墠鎴樿触浜唜娆�
+ private int m_NowChallengeCount = 0;
+ public float lastChallengeTime = 0;
+ public int nowChallengeCount
+ {
+ get { return m_NowChallengeCount; }
+ set
+ {
+ m_NowChallengeCount = value;
+ lastChallengeTime = value == 0 ? 0 : Time.time;
+ Debug.Log($"褰撳墠鍦ㄤ富绾緽oss鎴樿触浜唟m_NowChallengeCount}娆�,涓婃鎴樿触鏃堕棿鏄瘂lastChallengeTime}");
+ if (m_NowChallengeCount >= tryChallengeCount)
+ {
+ isAutoAttackSet = false;
+ isAutoAttack = false;
+ SaveAutoFightSetting();
+ }
+ }
+ }
+
+ //鑷姩鎸戞垬棣栭锛屾垬璐娆″仠姝�
+ public int tryChallengeCount
+ {
+ get
+ {
+ int value = QuickSetting.Instance.GetQuickSettingValue<int>(QuickSettingType.AutoFight_TryChallengeCount, 0);
+ return Math.Min(Math.Max(value, 1), maxCost);
+ }
+ set
+ {
+ QuickSetting.Instance.SetQuickSetting(QuickSettingType.AutoFight_TryChallengeCount, value);
+ }
+ }
+
+ //鑷姩瀹屾垚浠诲姟
+ public bool isAutoFinishTask
+ {
+ get
+ {
+ return QuickSetting.Instance.GetQuickSettingBool(QuickSettingType.AutoFight_AutoFinishTask, 0);
+ }
+ set
+ {
+ QuickSetting.Instance.SetQuickSetting(QuickSettingType.AutoFight_AutoFinishTask, value);
+ }
+ }
public event Action ChangeAutoEvent;
public int maxSpeed = 3; //鏈�楂橀�熷害 绱㈠紩
@@ -90,10 +145,16 @@
public int[] autoCostWithBlessLV; //鑷姩鎴樻枟娑堣�楀�嶆暟鍏宠仈绁濈绛夌骇
public int speed2UnlockMissionID;
+ public int openAutoChallengeBossMissionID;//鑷姩鎸戞垬棣栭瑙i攣鐨勪换鍔D(闇�瀹屾垚)
+ public int maxTryChallengeCount;//鑷姩鎸戞垬棣栭鏈�澶ф垬璐ユ鏁帮紙涓嬫媺鍒楄〃鐨勬渶澶у�硷級
+ public int maxTryChallengeCD;
+ public int openAutoFinishMissionID;//鑷姩瀹屾垚浠诲姟瑙i攣鐨勪换鍔D(闇�瀹屾垚)
+
public override void Init()
{
ParseConfig();
DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += BeforePlayerInit;
+ DTC0102_tagCDBPlayer.beforePlayerDataInitializeEventOnRelogin += OnBeforePlayerDataInitializeEventOnRelogin;
BattleManager.Instance.onBattleFieldCreate += OnCreateBattleField;
EventBroadcast.Instance.AddListener<string, SkillConfig, TeamHero>(EventName.BATTLE_CAST_SKILL, OnSkillCast);
BlessLVManager.Instance.OnBlessLVUpdateEvent += UpdateRedpint;
@@ -106,6 +167,7 @@
{
BattleManager.Instance.onBattleFieldCreate -= OnCreateBattleField;
DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent -= BeforePlayerInit;
+ DTC0102_tagCDBPlayer.beforePlayerDataInitializeEventOnRelogin += OnBeforePlayerDataInitializeEventOnRelogin;
EventBroadcast.Instance.RemoveListener<string, SkillConfig, TeamHero>(EventName.BATTLE_CAST_SKILL, OnSkillCast);
BlessLVManager.Instance.OnBlessLVUpdateEvent -= UpdateRedpint;
TaskManager.Instance.OnTaskUpdate -= OnTaskUpdate;
@@ -119,6 +181,11 @@
autoCostWithBlessLV = JsonMapper.ToObject<int[]>(config.Numerical1);
speed2UnlockMissionID = int.Parse(config.Numerical2);
maxCost = autoCostWithBlessLV.Length;
+ config = FuncConfigConfig.Get("AutoGuaji1");
+ openAutoChallengeBossMissionID = int.Parse(config.Numerical1);
+ maxTryChallengeCount = int.Parse(config.Numerical2);
+ maxTryChallengeCD = int.Parse(config.Numerical3);
+ openAutoFinishMissionID = int.Parse(config.Numerical4);
}
@@ -126,6 +193,11 @@
{
fightingHeroSkinID = 0;
heroGuid = "";
+ }
+
+ private void OnBeforePlayerDataInitializeEventOnRelogin()
+ {
+ nowChallengeCount = 0;
}
public void SaveAutoFightSetting()
@@ -160,7 +232,7 @@
return true;
long showFightPower = FightPowerManager.Instance.GetFightPowerChange(item);
-
+
if (showFightPower < 0)
{
EquipModel.Instance.SendEquipOP(new ushort[] { (ushort)item.gridIndex }, 1);
@@ -178,6 +250,7 @@
}
+
#region 涓荤嚎鎴樻枟锛堣嚜鍔ㄥ拰鎵嬪姩锛�
public void StartFight()
diff --git a/Main/System/Main/AutoFightWin.cs b/Main/System/Main/AutoFightWin.cs
index 4971fbf..cedfa01 100644
--- a/Main/System/Main/AutoFightWin.cs
+++ b/Main/System/Main/AutoFightWin.cs
@@ -1,6 +1,4 @@
using System;
-using System.Collections;
-using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
@@ -13,8 +11,8 @@
[SerializeField] Button autoSaveBtn;
[SerializeField] Button changeCostBtn;
- [SerializeField] Text costText;
[SerializeField] Image costArrow;
+ [SerializeField] Text costText;
[SerializeField] Text costTip;
[SerializeField] ScrollerController costScroll;
@@ -25,14 +23,34 @@
[SerializeField] Toggle betterEquipToggle;
+ [SerializeField] Toggle autoChallengeBossToggle;
+ [SerializeField] Button tryChallengeBtn;
+ [SerializeField] Text tryChallengeText;
+ [SerializeField] Image tryChallengeArrow;
+ [SerializeField] ScrollerController tryChallengeScroll;
+ [SerializeField] Button tryChallengeTipBtn;
+
+ [SerializeField] Toggle autoFinishTaskToggle;
+ [SerializeField] Button autoFinishTaskTipBtn;
bool isOpenCostScroll = false;
bool isOpenSpeedScroll = false;
+ bool isOpenTryChallengeScroll = false;
+
protected override void InitComponent()
{
autoStartBtn.AddListener(OnClickAutoStart);
autoStopBtn.AddListener(OnClickAutoStop);
autoSaveBtn.AddListener(OnClickAutoStart);
+ tryChallengeTipBtn.AddListener(() =>
+ {
+ DislayTip("AutoFight15", tryChallengeTipBtn.transform.position);
+ });
+
+ autoFinishTaskTipBtn.AddListener(() =>
+ {
+ DislayTip("AutoFight16",autoFinishTaskTipBtn.transform.position);
+ });
changeCostBtn.AddListener(() =>
{
@@ -41,6 +59,7 @@
costArrow.transform.localRotation = Quaternion.Euler(0, 0, isOpenCostScroll ? 180 : 0);
AutoFightModel.Instance.ClickCostRed();
});
+
changeSpeedBtn.AddListener(() =>
{
isOpenSpeedScroll = !isOpenSpeedScroll;
@@ -49,9 +68,38 @@
AutoFightModel.Instance.ClickSpeedRed();
});
+ tryChallengeBtn.AddListener(() =>
+ {
+ isOpenTryChallengeScroll = !isOpenTryChallengeScroll;
+ tryChallengeScroll.SetActive(isOpenTryChallengeScroll);
+ tryChallengeArrow.transform.localRotation = Quaternion.Euler(0, 0, isOpenTryChallengeScroll ? 180 : 0);
+ AutoFightModel.Instance.ClickSpeedRed();
+ });
betterEquipToggle.AddListener((bool value) =>
{
betterEquipToggle.isOn = value;
+ });
+
+ autoChallengeBossToggle.AddListener((bool value) =>
+ {
+ if (!IsOpenTryChallenge(out int needtaskCount))
+ {
+ SysNotifyMgr.Instance.ShowTip("autofight2", needtaskCount);
+ autoChallengeBossToggle.SetIsOnWithoutNotify(false);
+ return;
+ }
+ autoChallengeBossToggle.isOn = value;
+ });
+
+ autoFinishTaskToggle.AddListener((bool value) =>
+ {
+ if (!IsOpenAutoFinishTask(out int needtaskCount))
+ {
+ SysNotifyMgr.Instance.ShowTip("autofight2", needtaskCount);
+ autoFinishTaskToggle.SetIsOnWithoutNotify(false);
+ return;
+ }
+ autoFinishTaskToggle.isOn = value;
});
costScroll.GetComponent<ClickScreenOtherSpace>().AddListener(() =>
@@ -65,12 +113,19 @@
isOpenSpeedScroll = false;
speedArrow.transform.localRotation = Quaternion.Euler(0, 0, 0);
});
+
+ tryChallengeScroll.GetComponent<ClickScreenOtherSpace>().AddListener(() =>
+ {
+ isOpenTryChallengeScroll = false;
+ tryChallengeArrow.transform.localRotation = Quaternion.Euler(0, 0, 0);
+ });
}
protected override void OnPreOpen()
{
costScroll.OnRefreshCell += OnRefreshCostCell;
speedScroll.OnRefreshCell += OnRefreshSpeedCell;
+ tryChallengeScroll.OnRefreshCell += OnRefreshTryChallengeCell;
Display();
}
@@ -78,14 +133,36 @@
{
costScroll.OnRefreshCell -= OnRefreshCostCell;
speedScroll.OnRefreshCell -= OnRefreshSpeedCell;
+ tryChallengeScroll.OnRefreshCell -= OnRefreshTryChallengeCell;
+ }
+ bool IsOpenTryChallenge(out int needtaskCount)
+ {
+ needtaskCount = TaskManager.Instance.GetNeedFinishTaskCount(AutoFightModel.Instance.openAutoChallengeBossMissionID);
+ return needtaskCount <= 0;
}
+ bool IsOpenAutoFinishTask(out int needtaskCount)
+ {
+ needtaskCount = TaskManager.Instance.GetNeedFinishTaskCount(AutoFightModel.Instance.openAutoChallengeBossMissionID);
+ return needtaskCount <= 0;
+ }
+
+ void DislayTip(string key, Vector3 worldPos)
+ {
+ SmallTipWin.showText = Language.Get(key);
+ SmallTipWin.worldPos = worldPos;
+ SmallTipWin.isDownShow = false;
+ UIManager.Instance.OpenWindow<SmallTipWin>();
+ }
void Display()
{
costText.text = AutoFightModel.Instance.fightCost.ToString();
speedText.text = AutoFightModel.Instance.fightSpeed.ToString();
+ tryChallengeText.text = AutoFightModel.Instance.tryChallengeCount.ToString();
betterEquipToggle.isOn = AutoFightModel.Instance.isStopFightByBetterEquip;
+ autoChallengeBossToggle.isOn = AutoFightModel.Instance.isAutoChallengeBoss;
+ autoFinishTaskToggle.isOn = AutoFightModel.Instance.isAutoFinishTask;
costTip.text = Language.Get("AutoFight2", ItemConfig.Get(GeneralDefine.MoneyDisplayModel[41]).ItemName, AutoFightModel.Instance.fightCost);
if (AutoFightModel.Instance.isAutoAttackSet)
@@ -98,15 +175,16 @@
usingAutoObj.SetActive(false);
autoStartBtn.SetActive(true);
}
-
+
costScroll.SetActive(false);
speedScroll.SetActive(false);
+ tryChallengeScroll.SetActive(false);
costArrow.transform.localRotation = Quaternion.Euler(0, 0, 0);
speedArrow.transform.localRotation = Quaternion.Euler(0, 0, 0);
-
+ tryChallengeArrow.transform.localRotation = Quaternion.Euler(0, 0, 0);
CreateCostScroll();
CreateSpeedScroll();
-
+ CreateTryChallengeScroll();
}
@@ -123,7 +201,7 @@
costScroll.JumpIndex(2);
}
}
-
+
void CreateSpeedScroll()
{
speedScroll.Refresh();
@@ -134,6 +212,15 @@
speedScroll.Restart();
}
+ void CreateTryChallengeScroll()
+ {
+ tryChallengeScroll.Refresh();
+ for (int i = 0; i < AutoFightModel.Instance.maxTryChallengeCount; i++)
+ {
+ tryChallengeScroll.AddCell(ScrollerDataType.Header, i + 1);
+ }
+ tryChallengeScroll.Restart();
+ }
void OnRefreshCostCell(ScrollerDataType type, CellView cell)
{
@@ -157,9 +244,9 @@
var cntText = cell.GetComponentInChildren<Text>();
-
+
if (AutoFightModel.Instance.autoCostWithBlessLV[cell.index - 1] <= BlessLVManager.Instance.m_TreeLV)
- {
+ {
cntText.text = UIHelper.AppendColor(TextColType.LightWhite, cell.index.ToString());
}
else
@@ -175,7 +262,7 @@
var needtaskCount = TaskManager.Instance.GetNeedFinishTaskCount(AutoFightModel.Instance.speed2UnlockMissionID);
bool isbuy = InvestModel.Instance.IsActiveFightSpeed(3);
bool isActiveSpeed2 = needtaskCount <= 0 || isbuy;
-
+
btn.AddListener(() =>
{
if (cell.index == 2)
@@ -198,7 +285,7 @@
speedScroll.SetActive(false);
speedArrow.transform.localRotation = Quaternion.Euler(0, 0, 0);
speedText.text = cell.index.ToString();
- });
+ });
var cntText = cell.GetComponentInChildren<Text>();
if (cell.index == 2)
@@ -215,12 +302,51 @@
}
}
+ void OnRefreshTryChallengeCell(ScrollerDataType type, CellView cell)
+ {
+ bool isOpen = IsOpenTryChallenge(out int needtaskCount);
+ bool isbuy = InvestModel.Instance.IsInvested(InvestModel.monthCardType);
+ var btn = cell.GetComponent<Button>();
+ btn.AddListener(() =>
+ {
+ if (cell.index != 1)
+ {
+ if (!isOpen)
+ {
+ SysNotifyMgr.Instance.ShowTip("autofight2", needtaskCount);
+ return;
+ }
+ if (!isbuy)
+ {
+ SysNotifyMgr.Instance.ShowTip("autofight3");
+ return;
+ }
+ }
+ isOpenTryChallengeScroll = false;
+ tryChallengeScroll.SetActive(false);
+ tryChallengeArrow.transform.localRotation = Quaternion.Euler(0, 0, 0);
+ tryChallengeText.text = cell.index.ToString();
+ });
+ var cntText = cell.GetComponentInChildren<Text>();
+ if (cell.index != 1)
+ {
+ cntText.text = UIHelper.AppendColor(!isOpen || !isbuy ? TextColType.Gray : TextColType.LightWhite, cell.index.ToString());
+ }
+ else
+ {
+ cntText.text = cell.index.ToString();
+ }
+ }
void OnClickAutoStart()
{
AutoFightModel.Instance.isAutoAttackSet = true;
AutoFightModel.Instance.fightCost = int.Parse(costText.text);
AutoFightModel.Instance.fightSpeed = int.Parse(speedText.text);
AutoFightModel.Instance.isStopFightByBetterEquip = betterEquipToggle.isOn;
+ AutoFightModel.Instance.isAutoChallengeBoss = autoChallengeBossToggle.isOn;
+ AutoFightModel.Instance.nowChallengeCount = 0;
+ AutoFightModel.Instance.tryChallengeCount = int.Parse(tryChallengeText.text);
+ AutoFightModel.Instance.isAutoFinishTask = autoFinishTaskToggle.isOn;
AutoFightModel.Instance.SaveAutoFightSetting();
CloseWindow();
SysNotifyMgr.Instance.ShowTip("autofight1");
@@ -238,6 +364,9 @@
AutoFightModel.Instance.fightCost = int.Parse(costText.text);
AutoFightModel.Instance.fightSpeed = int.Parse(speedText.text);
AutoFightModel.Instance.isStopFightByBetterEquip = betterEquipToggle.isOn;
+ AutoFightModel.Instance.isAutoChallengeBoss = autoChallengeBossToggle.isOn;
+ AutoFightModel.Instance.tryChallengeCount = int.Parse(tryChallengeText.text);
+ AutoFightModel.Instance.isAutoFinishTask = autoFinishTaskToggle.isOn;
AutoFightModel.Instance.SaveAutoFightSetting();
CloseWindow();
}
diff --git a/Main/System/Main/EquipRecordCell.cs b/Main/System/Main/EquipRecordCell.cs
new file mode 100644
index 0000000..4270e19
--- /dev/null
+++ b/Main/System/Main/EquipRecordCell.cs
@@ -0,0 +1,13 @@
+using UnityEngine;
+
+public class EquipRecordCell : MonoBehaviour
+{
+ [SerializeField] EquipRecordItem fromEquip;
+ [SerializeField] EquipRecordItem toEquip;
+ [SerializeField] ImageEx imgWear;
+ [SerializeField] ImageEx imgDecompose;
+ public void Display(int index)
+ {
+
+ }
+}
\ No newline at end of file
diff --git a/Main/System/Main/EquipRecordCell.cs.meta b/Main/System/Main/EquipRecordCell.cs.meta
new file mode 100644
index 0000000..63b3513
--- /dev/null
+++ b/Main/System/Main/EquipRecordCell.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 046355c8bdca2a54884b68bcd0ccc112
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Main/EquipRecordItem.cs b/Main/System/Main/EquipRecordItem.cs
new file mode 100644
index 0000000..0438d5a
--- /dev/null
+++ b/Main/System/Main/EquipRecordItem.cs
@@ -0,0 +1,16 @@
+using UnityEngine;
+
+public class EquipRecordItem : MonoBehaviour
+{
+ [SerializeField] ImageEx imgQuality;
+ [SerializeField] ImageEx imgEquip;
+ [SerializeField] TextEx txtName;
+ [SerializeField] TextEx txtQualityName;
+ [SerializeField] OutlineEx itemNameOutline;
+ [SerializeField] OutlineEx qualityNameOutline;
+ [SerializeField] TextEx txtLV;
+ public void Display(EquipRecordManager.EquipDetail detail)
+ {
+
+ }
+}
\ No newline at end of file
diff --git a/Main/System/Main/EquipRecordItem.cs.meta b/Main/System/Main/EquipRecordItem.cs.meta
new file mode 100644
index 0000000..2bf1362
--- /dev/null
+++ b/Main/System/Main/EquipRecordItem.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 01bd7c1ab16c45046a13f1394fec26ec
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Main/EquipRecordManager.cs b/Main/System/Main/EquipRecordManager.cs
new file mode 100644
index 0000000..4451e85
--- /dev/null
+++ b/Main/System/Main/EquipRecordManager.cs
@@ -0,0 +1,175 @@
+using System;
+using System.Collections.Generic;
+using LitJson;
+using UnityEngine;
+
+public class EquipRecordManager : GameSystemManager<EquipRecordManager>
+{
+ private List<EquipRecordData> recordList = new List<EquipRecordData>();
+ public Dictionary<int, ItemModel> oldEquipDic = new Dictionary<int, ItemModel>();
+
+ /// <summary>
+ /// 璋冭瘯鐢細閬嶅巻杈撳嚭鎵�鏈夎澶囪褰曠殑璇︾粏淇℃伅锛堝崟鏉og锛�
+ /// </summary>
+ public void DebugLogAllRecords()
+ {
+ var sb = new System.Text.StringBuilder();
+ sb.AppendLine($"=== 瑁呭璁板綍鎬绘暟: {recordList.Count} | 鏃ц澶囧瓧鍏告潯鐩暟: {oldEquipDic.Count} ===");
+
+ for (int i = 0; i < recordList.Count; i++)
+ {
+ var record = recordList[i];
+ sb.AppendLine($"--- 璁板綍 {i + 1} ---");
+ sb.AppendLine($"璁板綍ID: {record.recordId} | 鏃堕棿: {TimeUtility.GetTime((uint)record.timestamp)} | 绫诲瀷: {record.recordType}");
+
+ // 鏂拌澶囪鎯�
+ if (record.newEquip != null)
+ {
+ sb.AppendLine($"[鏂拌澶嘳 ID:{record.newEquip.itemId} | 鍚嶇О:{record.newEquip.itemName} | 寮哄寲:{record.newEquip.level} | 璇勫垎:{record.newEquip.score} | 閮ㄤ綅:{record.newEquip.equipPlace} | 鎴樺姏:{record.newEquip.fightPower} | GUID:{record.newEquip.guid}");
+ }
+ else
+ {
+ sb.AppendLine($"[鏂拌澶嘳 鏃犳暟鎹�");
+ }
+
+ // 鏃ц澶囪鎯�
+ if (record.oldEquip != null)
+ {
+ sb.AppendLine($"[鏃ц澶嘳 ID:{record.oldEquip.itemId} | 鍚嶇О:{record.oldEquip.itemName} | 寮哄寲:{record.oldEquip.level} | 璇勫垎:{record.oldEquip.score} | 閮ㄤ綅:{record.oldEquip.equipPlace} | 鎴樺姏:{record.oldEquip.fightPower} | GUID:{record.oldEquip.guid}");
+ }
+ else
+ {
+ sb.AppendLine($"[鏃ц澶嘳 鏃犳暟鎹�");
+ }
+
+ sb.AppendLine(); // 绌鸿鍒嗛殧
+ }
+
+ // 鏃ц澶囧瓧鍏�
+ sb.AppendLine("=== 鏃ц澶囧瓧鍏歌鎯� ===");
+ foreach (var kvp in oldEquipDic)
+ {
+ sb.AppendLine($"Key:{kvp.Key} | Value:ItemModel(itemId={kvp.Value?.itemId}, guid={kvp.Value?.guid})");
+ }
+
+ UnityEngine.Debug.Log(sb.ToString());
+ }
+
+
+
+ private int maxCnt;
+ public override void Init()
+ {
+ DTC0102_tagCDBPlayer.beforePlayerDataInitializeEventOnRelogin += OnBeforePlayerDataInitializeEventOnRelogin;
+ DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent += OnPlayerLoginOk;
+ // 鐩戝惉瑁呭鎿嶄綔缁撴灉
+ EquipModel.Instance.OnEquipOPResultAction += OnEquipOPResult;
+
+ var config = FuncConfigConfig.Get("AutoGuaji1");
+ maxCnt = int.Parse(config.Numerical5);
+ }
+
+ public override void Release()
+ {
+ DTC0102_tagCDBPlayer.beforePlayerDataInitializeEventOnRelogin -= OnBeforePlayerDataInitializeEventOnRelogin;
+ DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent -= OnPlayerLoginOk;
+ EquipModel.Instance.OnEquipOPResultAction -= OnEquipOPResult;
+ }
+
+
+
+ private void OnBeforePlayerDataInitializeEventOnRelogin()
+ {
+
+ }
+
+ private void OnPlayerLoginOk()
+ {
+ LoadRecords();
+ }
+
+ string Key { get { return $"EquipRecordData_{PlayerDatas.Instance.PlayerId}"; } }
+ private void SaveRecords()
+ {
+ // 鎸佷箙鍖栧瓨鍌�
+ var json = JsonMapper.ToJson(recordList);
+ LocalSave.SetString(Key, json);
+ }
+
+ private void LoadRecords()
+ {
+ var json = LocalSave.GetString(Key);
+ if (!string.IsNullOrEmpty(json))
+ {
+ recordList = JsonMapper.ToObject<List<EquipRecordData>>(json);
+ }
+ }
+
+ /// <summary>
+ /// 瑁呭鎿嶄綔缁撴灉鍥炶皟 - 璁板綍瑁呭鍙樺寲
+ /// </summary>
+ /// <param name="isDone">鏄惁鎴愬姛鏇存崲</param>
+ /// <param name="equipIndex">瑁呭鏍忕储寮�</param>
+ private void OnEquipOPResult(bool isDone, int equipIndex)
+ {
+ if (equipIndex < 0) return;
+
+ // 鑾峰彇鏂拌澶囧拰鏃ц澶囦俊鎭�
+ var newEquip = PackManager.Instance.GetItemByIndex(PackType.Equip, equipIndex);
+ if (newEquip == null) return;
+
+ // 鑾峰彇琚浛鎹㈢殑瑁呭锛堥渶瑕佷粠鍏朵粬鍦版柟璁板綍锛�
+ // 杩欓噷闇�瑕侀厤鍚� EquipModel 鐨� OnEquipResult 璁板綍琚浛鎹㈢殑瑁呭
+ // ...
+ }
+
+ /// <summary>
+ /// 鑾峰彇瑁呭璇︽儏
+ /// </summary>
+ private EquipDetail GetEquipDetail(ItemModel item)
+ {
+ if (item == null) return null;
+
+ var detail = new EquipDetail
+ {
+ itemId = item.itemId,
+ level = item.GetUseDataFirstValue(22),
+ equipPlace = item.config.EquipPlace,
+ guid = item.guid,
+ };
+ return detail;
+ }
+
+
+
+
+
+
+ // 瑁呭璁板綍鏁版嵁绫诲瀷
+ public class EquipRecordData
+ {
+ public string recordId; // 璁板綍鍞竴ID
+ public long timestamp; // 鏃堕棿鎴�
+ public RecordType recordType; // 璁板綍绫诲瀷
+ public EquipDetail newEquip; // 鏂拌澶囪鎯�
+ public EquipDetail oldEquip; // 鏃ц澶囪鎯�
+
+ }
+
+ public class EquipDetail
+ {
+ public int itemId; // 鐗╁搧閰嶇疆ID
+ public string itemName; // 鐗╁搧鍚嶇О
+ public int level; // 寮哄寲绛夌骇
+ public int score; // 瑁呭璇勫垎
+ public int equipPlace; // 瑁呭閮ㄤ綅
+ public long fightPower; // 鎴樺姏
+ public string guid; // 瑁呭鍞竴ID
+ }
+
+ public enum RecordType
+ {
+ Equip = 0, // 瑁呭
+ Decompose = 1 // 鍒嗚В
+ }
+}
\ No newline at end of file
diff --git a/Main/System/Main/EquipRecordManager.cs.meta b/Main/System/Main/EquipRecordManager.cs.meta
new file mode 100644
index 0000000..fb20b86
--- /dev/null
+++ b/Main/System/Main/EquipRecordManager.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: cd3bf4ecc67bfbc4c9e1fffe527e1b04
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Main/EquipRecordWin.cs b/Main/System/Main/EquipRecordWin.cs
new file mode 100644
index 0000000..32efaa3
--- /dev/null
+++ b/Main/System/Main/EquipRecordWin.cs
@@ -0,0 +1,33 @@
+using UnityEngine;
+
+public class EquipRecordWin : UIBase
+{
+ [SerializeField] ScrollerController scroller;
+
+ protected override void OnPreOpen()
+ {
+ scroller.OnRefreshCell += OnRefreshCell;
+ CreateScroller();
+ }
+
+ protected override void OnPreClose()
+ {
+ scroller.OnRefreshCell -= OnRefreshCell;
+ }
+
+ private void OnRefreshCell(ScrollerDataType type, CellView cell)
+ {
+ var _cell = cell.GetComponent<EquipRecordCell>();
+ _cell?.Display(cell.index);
+ }
+ private void CreateScroller()
+ {
+ scroller.Refresh();
+
+ for (int i = 0; i < 20; i++)
+ {
+ scroller.AddCell(ScrollerDataType.Header, i);
+ }
+ scroller.Restart();
+ }
+}
\ No newline at end of file
diff --git a/Main/System/Main/EquipRecordWin.cs.meta b/Main/System/Main/EquipRecordWin.cs.meta
new file mode 100644
index 0000000..e68ce7a
--- /dev/null
+++ b/Main/System/Main/EquipRecordWin.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 01cb6a0b7572e0642929fb24575d0c6d
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Main/HomeWin.cs b/Main/System/Main/HomeWin.cs
index ef49fec..222a427 100644
--- a/Main/System/Main/HomeWin.cs
+++ b/Main/System/Main/HomeWin.cs
@@ -588,6 +588,14 @@
}
awardIcon.SetItemSprite(taskConfig.AwardItemList[0][0]);
awardCnt.text = taskConfig.AwardItemList[0][1].ToString();
+ if (AutoFightModel.Instance.isAutoFinishTask)
+ {
+ if (TaskManager.Instance.GetMainTaskState() != 2)
+ {
+ return;
+ }
+ OnClickTaskButton();
+ }
}
}
diff --git a/Main/System/Redpoint/MainRedDot.cs b/Main/System/Redpoint/MainRedDot.cs
index aea7bd5..c60d52c 100644
--- a/Main/System/Redpoint/MainRedDot.cs
+++ b/Main/System/Redpoint/MainRedDot.cs
@@ -74,7 +74,7 @@
public const int RedPoint_OSHeroCard = 112;
public const int RedPoint_OSGala = 113; //寮�鏈嶅簡鍏�
Redpoint osGalaRedpoint = new Redpoint(RedPoint_OSGala);
-
+ public const int RedPoint_Ads = 114; //骞垮憡鐢�
public const int RedPoint_Download = 116;
public Redpoint downLoadRedpoint = new Redpoint(MainRedDot.RedPoint_Download);
//绾㈤
diff --git a/Main/System/Setting/QuickSetting.cs b/Main/System/Setting/QuickSetting.cs
index 6d56aa2..cfee59f 100644
--- a/Main/System/Setting/QuickSetting.cs
+++ b/Main/System/Setting/QuickSetting.cs
@@ -1,5 +1,4 @@
-锘縰sing System.Collections;
-using System.Collections.Generic;
+锘縰sing System.Collections.Generic;
using UnityEngine;
using System.Text;
using System;
@@ -22,6 +21,9 @@
quickSettingDic.Add(QuickSettingType.BattleSpeed, new QuickSettingRange(QuickSettingType.BattleSpeed, 14, 1));
quickSettingDic.Add(QuickSettingType.HeroCountLock, new QuickSettingRange(QuickSettingType.HeroCountLock, 15, 2));
quickSettingDic.Add(QuickSettingType.CreateRole, new QuickSettingRange(QuickSettingType.CreateRole, 17, 1));
+ quickSettingDic.Add(QuickSettingType.AutoFight_ChallengeBoss, new QuickSettingRange(QuickSettingType.AutoFight_ChallengeBoss, 18, 1));
+ quickSettingDic.Add(QuickSettingType.AutoFight_TryChallengeCount, new QuickSettingRange(QuickSettingType.AutoFight_TryChallengeCount, 19, 1));
+ quickSettingDic.Add(QuickSettingType.AutoFight_AutoFinishTask, new QuickSettingRange(QuickSettingType.AutoFight_AutoFinishTask, 20, 1));
setting = new string(UCharacter, 100);
DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent -= BeforePlayerDataInitializeEvent;
@@ -170,6 +172,9 @@
BattleSpeed, //鎴樻枟閫熷害绱㈠紩 闈炰富绾块儴鍒�
HeroCountLock, //涓婇樀浜烘暟鏉′欢閿佸畾
CreateRole, //鍒涘缓瑙掕壊鎴愬姛
+ AutoFight_ChallengeBoss, //鑷姩鎸戞垬棣栭
+ AutoFight_TryChallengeCount, //鑷姩鎸戞垬棣栭锛屾垬璐娆″仠姝�
+ AutoFight_AutoFinishTask, //鑷姩瀹屾垚浠诲姟
}
public class QuickSettingRange
diff --git a/Main/System/Settlement/BattleSettlementManager.cs b/Main/System/Settlement/BattleSettlementManager.cs
index dcadce9..75e8410 100644
--- a/Main/System/Settlement/BattleSettlementManager.cs
+++ b/Main/System/Settlement/BattleSettlementManager.cs
@@ -150,6 +150,12 @@
if (_data.ContainsKey("winFaction"))
{
var result = (int)_data["winFaction"];
+
+ if (battleName == BattleConst.StoryBossBattleField)
+ {
+ AutoFightModel.Instance.nowChallengeCount += result != 1 ? 1 : 0;
+ }
+
if (battleName == activeBattleName)
{
//鑷繁鍦烘櫙缁撶畻
diff --git a/Main/System/Store/StoreModel.cs b/Main/System/Store/StoreModel.cs
index 5a584dd..4214b94 100644
--- a/Main/System/Store/StoreModel.cs
+++ b/Main/System/Store/StoreModel.cs
@@ -29,7 +29,7 @@
public event Action RefreshShopEvent;
public StoreFunc selectStoreFuncType = StoreFunc.Normal;
-
+ public int jumpShopID;
public int buyShopID;
diff --git a/Main/System/Store/StoreWin.cs b/Main/System/Store/StoreWin.cs
index 240d780..111d50e 100644
--- a/Main/System/Store/StoreWin.cs
+++ b/Main/System/Store/StoreWin.cs
@@ -85,6 +85,7 @@
}
scroller.Refresh();
+ int jumpIndex = -1;
var list = StoreModel.Instance.storeTypeDict[(int)StoreModel.Instance.selectStoreFuncType];
for (int i = 0; i < list.Count; i++)
{
@@ -92,9 +93,18 @@
{
scroller.AddCell(ScrollerDataType.Header, i);
}
+ if (jumpIndex == -1 && list[i].shopId == StoreModel.Instance.jumpShopID)
+ {
+ jumpIndex = i / 3;
+ }
}
scroller.Restart();
scroller.lockType = EnhanceLockType.KeepVertical;
+ if (StoreModel.Instance.jumpShopID != 0)
+ {
+ scroller.JumpIndex(jumpIndex);
+ StoreModel.Instance.jumpShopID = 0;
+ }
}
diff --git a/Main/System/UIBase/UIJumpManager.cs b/Main/System/UIBase/UIJumpManager.cs
index c5e0ef4..5ebadfb 100644
--- a/Main/System/UIBase/UIJumpManager.cs
+++ b/Main/System/UIBase/UIJumpManager.cs
@@ -38,6 +38,20 @@
}
var config = WindowSearchConfig.Get(winID);
+ if (config.WinName == "StoreBaseWin")
+ {
+ //鎸囧畾鍟嗗搧
+ StoreModel.Instance.jumpShopID = int.Parse(config.Extra);
+ if (StoreModel.Instance.jumpShopID == 0)
+ {
+ StoreModel.Instance.selectStoreFuncType = StoreFunc.Normal;
+ }
+ else
+ {
+ StoreModel.Instance.selectStoreFuncType = (StoreFunc)StoreConfig.Get(StoreModel.Instance.jumpShopID).ShopType;
+ }
+ }
+
if (!UIManager.Instance.IsOpened(config.WinName))
{
UIManager.Instance.OpenWindow(config.WinName, config.TabIndex);
--
Gitblit v1.8.0