From 2aeab450471cb80b59002da7da80faf251a0c4f4 Mon Sep 17 00:00:00 2001
From: asmrobot <asmrobot@hotmail.com>
Date: Mon, 25 Nov 2019 15:02:53 +0000
Subject: [PATCH] sigle computer

---
 src/RichCreator/Maps/Kalete/KaleteMap.cs |  103 +++++++++++++++++++++++++--------------------------
 1 files changed, 50 insertions(+), 53 deletions(-)

diff --git a/src/RichCreator/Maps/Kalete/KaleteMap.cs b/src/RichCreator/Maps/Kalete/KaleteMap.cs
index be2b081..b7eecb6 100644
--- a/src/RichCreator/Maps/Kalete/KaleteMap.cs
+++ b/src/RichCreator/Maps/Kalete/KaleteMap.cs
@@ -2,6 +2,7 @@
 using Emgu.CV.Structure;
 using RichCreator.Dnf;
 using RichCreator.Jobs.StateMachines;
+using RichCreator.Models;
 using RichCreator.Utility;
 using RichCreator.Utility.Captures;
 using RichCreator.Utility.CV;
@@ -32,29 +33,30 @@
         /// NextIndex=-2,出错
         /// </summary>
         private static readonly HouseInfo[] Houses = new HouseInfo[] {
-            new HouseInfo (0 ,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null),
-            new HouseInfo (1 ,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null),
-            new HouseInfo (2 ,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null),
-            new HouseInfo (3 ,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null),
-            new HouseInfo (4 ,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null),
-            new HouseInfo (5 ,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null),
-            new HouseInfo (6 ,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null),
-            new HouseInfo (7 ,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null),
-            new HouseInfo (8 ,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},new int[]{20,21,22,23 }),
-            new HouseInfo (9 ,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null),
-            new HouseInfo (10,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null),
-            new HouseInfo (11,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null),
-            new HouseInfo (12,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null),
-            new HouseInfo (13,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null),
-            new HouseInfo (14,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null),
-            new HouseInfo (15,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null),
-            new HouseInfo (16,MapType.Kalete,true ,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null),
-            new HouseInfo (17,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null),
-            new HouseInfo (18,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null),
-            new HouseInfo (19,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null)
+            new HouseInfo (0 ,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null,-1),
+            new HouseInfo (1 ,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null,0),
+            new HouseInfo (2 ,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null,0),
+            new HouseInfo (3 ,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null,0),
+            new HouseInfo (4 ,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null,0),
+            new HouseInfo (5 ,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null,0),
+            new HouseInfo (6 ,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null,1),
+            new HouseInfo (7 ,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null,6),
+            new HouseInfo (8 ,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},new int[]{20,21,22,23 },7),
+            new HouseInfo (9 ,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null,0),
+            new HouseInfo (10,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null,0),
+            new HouseInfo (11,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null,0),
+            new HouseInfo (12,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null,13),
+            new HouseInfo (13,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null,8),
+            new HouseInfo (14,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null,0),
+            new HouseInfo (15,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null,0),
+            new HouseInfo (16,MapType.Kalete,true ,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null,17),
+            new HouseInfo (17,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null,12),
+            new HouseInfo (18,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null,0),
+            new HouseInfo (19,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null,0)
         };
         
         private Int32 runningStep = RunningStep.None;
+        private DateTime startRoleTime = DateTime.Now;
 
         /// <summary>
         /// 开始
@@ -66,12 +68,8 @@
         public override ZTResult Start(Int32 runningStep)
         {
             this.runningStep = runningStep;
-
-
-            WindowUtils.SetDnfToTop();
-
-        
-
+            WindowUtils.SetDnfToTop();            
+            
             if (runningStep < RunningStep.War)
             {
                 if (!MoveToSunan())
@@ -104,10 +102,10 @@
                 {
                     return ZTResult.Cancel;
                 }
-
-
-                DateTime startHouse = DateTime.Now;
-                ZTResult killResult = KillMonster();
+                DateTime startMapTime = DateTime.Now;
+                ZTResult killResult = KillOfMap();
+                StateProvider.Instance.RoleTimePassed = (Int32)(DateTime.Now - startRoleTime).TotalSeconds;
+                StateProvider.Instance.PreMapTime= (Int32)(DateTime.Now - startMapTime).TotalSeconds;
                 if (killResult == ZTResult.Success)
                 {
                     //捡东西
@@ -118,17 +116,13 @@
                         G.Instance.InputControl.PressKey(RandomUtils.KeyPressDuration, HIDCode.X);
                         Thread.Sleep(RandomUtils.KeyPressDuration * 3);
                     }
-
-
+                    
                     //卖装备并关闭商店
                     SaleEquipment();
-
-                    Int32 houseTotalSecond = (Int32)(DateTime.Now - startHouse).TotalSeconds;
-                    G.Instance.InfoWriter("单次刷图成功,用时:" + (houseTotalSecond / 60) + "分" + (houseTotalSecond % 60) + "秒");
-
+                    G.Instance.InfoWriter("单次刷图完成");
+                    
                     //查询疲劳值
                     Int32 pilaozhi = DnfCVHelper.GetPiLaoZhi(this.GameRect);
-
                     G.Instance.InfoWriter("疲劳值:" + pilaozhi);
                     if (pilaozhi <= 0)
                     {
@@ -223,28 +217,26 @@
         /// 刷房间
         /// </summary>
         /// <returns></returns>
-        private ZTResult KillMonster()
+        private ZTResult KillOfMap()
         {
             bool ret = false;
-
+            DateTime startMapTime = DateTime.Now;
             if (!IsEntryMap())
             {
-                G.Instance.InfoWriter("未找到进入凛冬");
+                G.Instance.InfoWriter("未找到进入卡勒特");
                 return ZTResult.Failed;
             }
-            G.Instance.InfoWriter("进入卡勒特");
-
-            Int32 preHouseIndex = -1;
-            Int32 houseIndex = -1;
-
-
+            G.Instance.InfoWriter("进入卡勒特");            
+            Int32 houseIndex = -1;            
+            
             //技能加成
             G.Instance.InputControl.PressKey(RandomUtils.KeyPressDuration, HIDCode.Space);
-
+            
             //循环刷房间
             while (true)
             {
-                preHouseIndex = houseIndex;
+                DateTime startHouseTime = DateTime.Now;
+                Int32 fromHouseIndex = houseIndex;
                 //看房间号
                 ret = this.MiniMap.GetCurrentHouseIndexWaitTimeout(out houseIndex, null, this.CancelToken, 3 * 1000);
                 if (!ret)
@@ -253,15 +245,20 @@
                     return ZTResult.Failed;
                 }
 
-                G.Instance.InfoWriter("进入房间->" + houseIndex.ToString());
+                StateProvider.Instance.HouseIndex = houseIndex;
+                G.Instance.InfoWriter($"进入房间({houseIndex})");
+                
 
                 HouseInfo houseInfo = Houses[houseIndex];
                 this.Role.SetHouse(houseInfo);
-                DateTime startTime = DateTime.Now;
+
+                
                 KillMonsterStateMachine kmsm = new KillMonsterStateMachine(this, houseInfo,this.Role);
-                ZTResult smresult = kmsm.Work(2 * 60 * 1000,preHouseIndex,this.runningStep);
-                Int32 roomTotalSecond = (Int32)(DateTime.Now - startTime).TotalSeconds;
-                G.Instance.InfoWriter("房间刷完,用时:" + (roomTotalSecond / 60) + "分" + (roomTotalSecond % 60) + "秒");
+                ZTResult smresult = kmsm.Work(2 * 60 * 1000,fromHouseIndex,this.runningStep);
+                G.Instance.InfoWriter($"房间刷完({houseIndex})");
+                StateProvider.Instance.RoleTimePassed = (Int32)(DateTime.Now - startRoleTime).TotalSeconds;
+                StateProvider.Instance.MapTimePassed= (Int32)(DateTime.Now - startMapTime).TotalSeconds;
+                StateProvider.Instance.PreHouseTime = (Int32)(DateTime.Now - startHouseTime).TotalSeconds;
 
                 runningStep = RunningStep.None;
                 if (smresult == ZTResult.Success)

--
Gitblit v1.9.3