From bbbdd243511364e2c83712c0434de8690d050147 Mon Sep 17 00:00:00 2001
From: chenxiangxue <910695411@qq.com>
Date: Thu, 29 Aug 2024 11:38:23 +0800
Subject: [PATCH] =?UTF-8?q?=E6=89=93=E5=88=86?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Device_3Phase4WireMeter.cs | 2 +
.../Device_NamePlate.cs | 1 +
Assets/Scripts/CXX/Score/ScoreSubjectStep.cs | 11 +-
Assets/Scripts/CXX/Score/Score_1002.cs | 181 ++++++++++++++++--
Assets/Scripts/CXX/Tools/Tool_Line.cs | 2 +
Assets/Scripts/CXX/Tools/Tool_Screw.cs | 4 +
Assets/Scripts/CXX/Tools/Tool_Screwdriver.cs | 10 +-
7 files changed, 193 insertions(+), 18 deletions(-)
diff --git a/Assets/Scripts/CXX/Devices/直接接入式电能计量装置/Device_3Phase4WireMeter.cs b/Assets/Scripts/CXX/Devices/直接接入式电能计量装置/Device_3Phase4WireMeter.cs
index 3f29cd6..525d457 100644
--- a/Assets/Scripts/CXX/Devices/直接接入式电能计量装置/Device_3Phase4WireMeter.cs
+++ b/Assets/Scripts/CXX/Devices/直接接入式电能计量装置/Device_3Phase4WireMeter.cs
@@ -188,6 +188,7 @@ public class Device_3Phase4WireMeter : Device_Base
Debug.Log("ܱѲ");
transform.DOLocalMove(transform.localPosition - new Vector3(0, 0.2f, 0.2f), 2).OnComplete(() =>
{
+ CallScoreAction(false);
gameObject.SetActive(false);
});
}
@@ -209,6 +210,7 @@ public class Device_3Phase4WireMeter : Device_Base
{
LiveSceneManager.Instance.currentTool = null;
Debug.Log("ܱѰװ");
+ CallScoreAction(true);
});
}
}
diff --git a/Assets/Scripts/CXX/Devices/直接接入式电能计量装置/Device_NamePlate.cs b/Assets/Scripts/CXX/Devices/直接接入式电能计量装置/Device_NamePlate.cs
index 418c77a..ecb116a 100644
--- a/Assets/Scripts/CXX/Devices/直接接入式电能计量装置/Device_NamePlate.cs
+++ b/Assets/Scripts/CXX/Devices/直接接入式电能计量装置/Device_NamePlate.cs
@@ -48,6 +48,7 @@ public class Device_NamePlate : Device_Base
tip2.Init("˶Ժͳ¼ɣ");
}
int state = (triggerAction == null ? 0 : triggerAction.Invoke(triggerName, true));
+ CallScoreAction();
}
});
}
diff --git a/Assets/Scripts/CXX/Score/ScoreSubjectStep.cs b/Assets/Scripts/CXX/Score/ScoreSubjectStep.cs
index 0c5637a..ed67efb 100644
--- a/Assets/Scripts/CXX/Score/ScoreSubjectStep.cs
+++ b/Assets/Scripts/CXX/Score/ScoreSubjectStep.cs
@@ -19,7 +19,7 @@ public class ScoreSubjectStep
///
/// Ƿ
///
- bool isDone;
+ public bool isDone;
public ScoreSubjectStep(int subProcessId,float maxScore)
{
@@ -35,9 +35,10 @@ public class ScoreSubjectStep
/// ȫ۹
///
///
- public void SetScore(bool AllScore)
+ /// Ƿظ
+ public void SetScore(bool AllScore,bool canRepeat=false)
{
- if (!isDone)
+ if (!isDone || canRepeat)
{
isDone = true;
currentScore = (AllScore ? maxScore : 0);
@@ -48,9 +49,9 @@ public class ScoreSubjectStep
/// ٷֱȷ
///
///
- public void SetScore(float scaleScore)
+ public void SetScore(float scaleScore, bool canRepeat=false)
{
- if (!isDone)
+ if (!isDone || canRepeat)
{
isDone = true;
currentScore = scaleScore*maxScore;
diff --git a/Assets/Scripts/CXX/Score/Score_1002.cs b/Assets/Scripts/CXX/Score/Score_1002.cs
index bc3bc94..1ed0ffe 100644
--- a/Assets/Scripts/CXX/Score/Score_1002.cs
+++ b/Assets/Scripts/CXX/Score/Score_1002.cs
@@ -1,6 +1,7 @@
using System.Collections;
using System.Collections.Generic;
using System.Linq;
+using Unity.VisualScripting;
using UnityEngine;
public class Score_1002 : ScoreBase
@@ -45,9 +46,45 @@ public class Score_1002 : ScoreBase
///
List TestPen3list = new List();
///
- ///
+ ///
///
- List TestInSwitchList=new List();
+ List InSwitchCloseYDList=new List();
+ ///
+ /// ˳
+ ///
+ List unInstallJieXian=new List()
+ {
+ "A_in_˿up", "A_in_˿down", "A_in_",
+ "B_in_˿up","B_in_˿down","B_in_",
+ "C_in_˿up","C_in_˿down","C_in_",
+ "A_out_˿up","A_out_˿down","A_out_",
+ "B_out_˿up","B_out_˿down","B_out_",
+ "C_out_˿up","C_out_˿down","C_out_",
+ "__˿up","__˿down","__",
+ "_out_˿up","_out_˿down","_out_"
+ };
+ ///
+ /// ˿
+ ///
+ List currentunInstallJieXian = new List();
+ ///
+ /// װ˿˳
+ ///
+ List installJieXian = new List()
+ {
+ "_out_","_out_˿up","_out_˿down",
+ "__","__˿up","__˿down",
+ "C_out_","C_out_˿up","C_out_˿down",
+ "B_out_","B_out_˿up","B_out_˿down",
+ "A_out_","A_out_˿up","A_out_˿down",
+ "C_in_","C_in_˿up","C_in_˿down",
+ "B_in_","B_in_˿up","B_in_˿down",
+ "A_in_","A_in_˿up", "A_in_˿down"
+ };
+ ///
+ /// װ˿
+ ///
+ List currentInstallJieXian = new List();
public override void CheckScore(string triggerName, object para)
{
base.CheckScore(triggerName, para);
@@ -95,15 +132,16 @@ public class Score_1002 : ScoreBase
{
if ((bool)para)
{
- //
- //жǷȷ
- if (isCheckE())
+ //3012֮ǰʱ̣֮ʱװ
+ if (!steps[3012].isDone)
{
- steps[3009].SetScore(true);
+ //֣жǷȷ
+ steps[3009].SetScore(isCheckE());
}
else
{
-
+ //װ
+ steps[3014].SetScore(true);
}
}
}
@@ -113,11 +151,75 @@ public class Score_1002 : ScoreBase
TestPen3list.Add(triggerName);
}
else if (triggerName == "+in_˿1" || triggerName == "+in_˿2" || triggerName == "+in_˿3")
- {
- if(SiteManager.instance.measuringCabinet.inSwitch.isOpen==false)
+ {
+ //3012֮ǰDz֮ǰװ
+ if (!steps[3012].isDone)
{
- TestInSwitchList.Add(triggerName);
- isInSwitchCheckE();
+ //ϵ
+ if (SiteManager.instance.measuringCabinet.inSwitch.isOpen == false)
+ {
+ InSwitchCloseYDList.Add(triggerName);
+ steps[3010].SetScore(isInSwitchCheckE());
+ }
+ }
+ else
+ {
+ //ͨ
+ if (SiteManager.instance.measuringCabinet.inSwitch.isOpen==true)
+ {
+
+ }
+ }
+ }
+ else if(triggerName == "ܱ")
+ {
+ steps[3011].SetScore(true);
+ }
+ else if(unInstallJieXian.Contains(triggerName))
+ {
+ //3012֮ǰDz֮ǰװ
+ //˿
+ if (!steps[3012].isDone)
+ {
+ //жϲ
+ if ((bool)para)
+ currentunInstallJieXian.Remove(triggerName);
+ else
+ currentunInstallJieXian.Add(triggerName);
+ }
+ else
+ {
+ //жϰװ
+ if ((bool)para)
+ currentInstallJieXian.Add(triggerName);
+ else
+ currentInstallJieXian.Remove(triggerName);
+
+ //з
+ if (triggerName.Contains("A_in_˿"))
+ {
+ steps[3013].SetScore(IsInstallJieXianCheckE(), true);
+ }
+ }
+ }
+ else if(triggerName== "ܱײ")
+ {
+ //ȡµܱʱж˳
+ if(!(bool)para)
+ {
+ steps[3012].SetScore(IsUninstallJieXianCheckE());
+ }
+ }
+ else if(triggerName.Contains("ܱװ˿"))
+ {
+ //װ
+ if (steps[3012].isDone)
+ {
+ //װ˿
+ if ((bool)para)
+ currentInstallJieXian.Add(triggerName);
+ else
+ currentInstallJieXian.Remove(triggerName);
}
}
}
@@ -165,7 +267,7 @@ public class Score_1002 : ScoreBase
///
private bool isInSwitchCheckE()
{
- if (TestInSwitchList.Contains("+in_˿1") && TestInSwitchList.Contains("+in_˿2") && TestInSwitchList.Contains("+in_˿2"))
+ if (InSwitchCloseYDList.Contains("+in_˿1") && InSwitchCloseYDList.Contains("+in_˿2") && InSwitchCloseYDList.Contains("+in_˿2"))
{
return true;
}
@@ -174,4 +276,59 @@ public class Score_1002 : ScoreBase
return false;
}
}
+
+ ///
+ /// жϲ˳
+ ///
+ ///
+ private bool IsUninstallJieXianCheckE()
+ {
+ if(currentunInstallJieXian.Count!= unInstallJieXian.Count)
+ {
+ return false;
+ }
+
+ //һһȶ
+ for (int i = 0; i < currentunInstallJieXian.Count; i++)
+ {
+ if (currentunInstallJieXian[i] != unInstallJieXian[i])
+ {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ ///
+ /// жϰװ˳
+ ///
+ ///
+ public bool IsInstallJieXianCheckE()
+ {
+ if(!currentInstallJieXian.Contains("ܱװ˿1") || !currentInstallJieXian.Contains("ܱװ˿2"))
+ return false;
+
+ if (currentInstallJieXian.Count < currentInstallJieXian.Count+2)
+ {
+ return false;
+ }
+
+ //һһȶ
+ string[] tmps=new string[currentInstallJieXian.Count];
+ currentInstallJieXian.CopyTo(tmps);
+ var tmplist=tmps.ToList();
+ tmplist.Remove("ܱװ˿1");
+ tmplist.Remove("ܱװ˿2");
+
+ for (int i = 0; i < tmplist.Count; i++)
+ {
+ if (tmplist[i] != installJieXian[i])
+ {
+ return false;
+ }
+ }
+
+ return true;
+ }
}
diff --git a/Assets/Scripts/CXX/Tools/Tool_Line.cs b/Assets/Scripts/CXX/Tools/Tool_Line.cs
index 57a28dd..5f2c398 100644
--- a/Assets/Scripts/CXX/Tools/Tool_Line.cs
+++ b/Assets/Scripts/CXX/Tools/Tool_Line.cs
@@ -57,6 +57,7 @@ public class Tool_Line: Tool_Base
isConnected = false;
actionBack?.Invoke(isConnected);
int state = (triggerAction == null ? 0 : triggerAction.Invoke(triggerName, true));
+ CallScoreAction(false);
});
}
}
@@ -70,6 +71,7 @@ public class Tool_Line: Tool_Base
isConnected = true;
actionBack?.Invoke(isConnected);
int state = (triggerAction == null ? 0 : triggerAction.Invoke(triggerName, true));
+ CallScoreAction(true);
});
}
}
diff --git a/Assets/Scripts/CXX/Tools/Tool_Screw.cs b/Assets/Scripts/CXX/Tools/Tool_Screw.cs
index 32d0ea6..9ff07a2 100644
--- a/Assets/Scripts/CXX/Tools/Tool_Screw.cs
+++ b/Assets/Scripts/CXX/Tools/Tool_Screw.cs
@@ -85,6 +85,8 @@ public class Tool_Screw : Tool_Base
isMoving = false;
installAction?.Invoke(true);
screwdriver.ReBackHead();
+ screwdriver.isUseing = false;
+ CallScoreAction(true);
});
});
}
@@ -120,6 +122,8 @@ public class Tool_Screw : Tool_Base
isMoving = false;
installAction?.Invoke(false);
screwdriver.ReBackHead();
+ screwdriver.isUseing = false;
+ CallScoreAction(false);
});
});
}
diff --git a/Assets/Scripts/CXX/Tools/Tool_Screwdriver.cs b/Assets/Scripts/CXX/Tools/Tool_Screwdriver.cs
index 6fbce37..5390f87 100644
--- a/Assets/Scripts/CXX/Tools/Tool_Screwdriver.cs
+++ b/Assets/Scripts/CXX/Tools/Tool_Screwdriver.cs
@@ -8,6 +8,12 @@ using UnityEngine;
///
public class Tool_Screwdriver : Tool_Base
{
+ ///
+ /// ʹ
+ ///
+ [HideInInspector]
+ public bool isUseing;
+
///
/// ʼװ˿
///
@@ -16,6 +22,7 @@ public class Tool_Screwdriver : Tool_Base
{
if (!screw.isInstall)
{
+ isUseing = true;
screw.BeInstalled(this);
}
}
@@ -28,13 +35,14 @@ public class Tool_Screwdriver : Tool_Base
{
if (screw.isInstall)
{
+ isUseing = true;
screw.BeUnInstalled(this);
}
}
private void Update()
{
- if (Input.GetMouseButtonDown(0))
+ if (Input.GetMouseButtonDown(0) && !isUseing)
{
//˿
Ray tmpray = Camera.main.ScreenPointToRay(Input.mousePosition);