CultivationOfBrewing-2/Assets/Scripts/CXX/Tools/Tool_Multimeter.cs

200 lines
7.3 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System.Collections;
using System.Collections.Generic;
using UniRx.Triggers;
using UnityEngine;
/// <summary>
/// 拱痰깊
/// </summary>
public class Tool_Multimeter : Tool_Base
{
/// <summary>
/// 뎡貫
/// </summary>
public Multimeter_dangwei dangWei;
private TapGesture tapGesture;
public GameObject target;
public Multimeter_pen currentMultimeter_pen;
/// <summary>
/// 쥐窟
/// </summary>
public Multimeter_pen blackPen;
/// <summary>
/// 삽窟
/// </summary>
public Multimeter_pen redPen;
public GameObject tips;
private void Start()
{
tips.SetActive(GameManager.RunModelMgr.SceneType == E_SceneType.Site);
tapGesture = GetComponent<TapGesture>();
tapGesture.onOneClick += (() =>
{
if (LiveSceneManager.Instance == null) return;
tapGesture.OnRay(ref target);
if (currentMultimeter_pen == null)
{
if (target != null && target.name == "도貫")
{
if (GameManager.ProcessMgr.IsRightSubProcessStepsTriggerID($"데샌+{target.GetComponent<Multimeter_dangwei>().triggerName}", true) == 0)
{
dangWei.ChangeDangwei(true);
base.CallScoreAction(null, $"데샌+{target.GetComponent<Multimeter_dangwei>().triggerName}");
target = null;
}
}
if (target != null && target.GetComponent<Multimeter_pen>())
{
if (GameManager.ProcessMgr.IsRightSubProcessStepsTriggerID($"데샌+{target.GetComponent<Multimeter_pen>().triggerName}", true) == 0)
{
currentMultimeter_pen = target.GetComponent<Multimeter_pen>();
currentMultimeter_pen.ResetCurrentLineState();
currentMultimeter_pen.selfColldier.enabled = false;
currentMultimeter_pen.currentScrew = null;
CheckValue("든箕도貫");
}
}
else
{
target = null;
}
}
else
{
///쇱꿎窟角뤠角攣끽
if (target != null && target.transform.parent.GetComponent<TPEMLine>())
{
if (GameManager.ProcessMgr.IsRightSubProcessStepsTriggerID(target.GetComponent<TPEMLineTrigger>().triggerName, true) == 0)
{
TPEMLine t = target.transform.parent.GetComponent<TPEMLine>();
if (t.isCheckLine)
{
t.CheckLine(currentMultimeter_pen, target.GetComponent<Collider>(), (s) =>
{
CheckState(s);
});
if (LiveSceneManager.Instance.jiaoYanYi.tPEMLineController.IsCompeleteCheckLine())
{
Debug.Log("쌈窟供냥");
base.CallScoreAction(null, "拱痰깊繫뙤供냥");
}
currentMultimeter_pen.currentLine = t;
currentMultimeter_pen = null;
target = null;
}
}
}
else if(target != null && target.GetComponent<Tool_Screw>() != null)
{
//든궝갛陋돕쭁介<ECAD81>
Tool_Screw ts= target.GetComponent<Tool_Screw>();
if (GameManager.ProcessMgr.IsRightSubProcessStepsTriggerID(ts.curretTriggerName(), true) == 0)
{
if (currentMultimeter_pen.currentScrew==null)
{
currentMultimeter_pen.SetLocalLocalPenTran(ts.installPos.localPosition,Vector3.zero, true, target.GetComponent<Collider>(), false);
currentMultimeter_pen.currentScrew = ts;
currentMultimeter_pen = null;
target = null;
CheckState("든箕도貫");
CheckValue("든箕도貫");
}
}
}
}
});
tapGesture.onDoubleClick += (() =>
{
if (LiveSceneManager.Instance == null) return;
if (currentMultimeter_pen != null)
{
if (GameManager.ProcessMgr.IsRightSubProcessStepsTriggerID($"崗샌+{currentMultimeter_pen.triggerName}", true) == 0)
{
currentMultimeter_pen.ResetTran();
currentMultimeter_pen = null;
}
}
else
{
tapGesture.OnRay(ref target);
if (target != null && target.name == "도貫")
{
if (GameManager.ProcessMgr.IsRightSubProcessStepsTriggerID($"崗샌+{target.GetComponent<Multimeter_dangwei>().triggerName}", true) == 0)
{
dangWei.ChangeDangwei(false);
target = null;
}
}
if (target != null && target.GetComponent<Multimeter_pen>())
{
if (GameManager.ProcessMgr.IsRightSubProcessStepsTriggerID($"崗샌+{target.GetComponent<Multimeter_pen>().triggerName}", true) == 0)
{
target.GetComponent<Multimeter_pen>().ResetTran();
target = null;
}
}
}
});
}
private void Update()
{
if (currentMultimeter_pen != null)
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
currentMultimeter_pen.SetPenLocalTran(ray.origin + ray.direction * 0.5f, new Vector3(90, 0, 0), false, null, false);
}
}
/// <summary>
/// 鞫刻榴檄쭉서
/// </summary>
public void CheckState(string things)
{
//슥직든箕뎡貫
if (things == "든箕도貫" && dangWei.dangweiValue == 2)
{
Debug.Log("令된黨2");
}
if (things == "킹캠도貫" && dangWei.dangweiValue == 4) //┯뎡貫
{
Debug.Log("令된黨1");
TipPanel.ShowTip("唐룝츤<EBA39D>");
}
}
/// <summary>
/// 岬劤鞫鑒
/// </summary>
/// <param name="things"></param>
public void CheckValue(string things)
{
//슥직든箕뎡貫
if (things == "든箕도貫" && dangWei.dangweiValue == 2)
{
if(blackPen.currentScrew!=null && redPen.currentScrew!=null)
{
//댔롸
var tmpdic=new Dictionary<string, string>();
tmpdic.Add(blackPen.triggerName, blackPen.currentScrew.triggerName);
tmpdic.Add(redPen.triggerName, redPen.currentScrew.triggerName);
CallScoreAction(tmpdic, "拱痰깊든箕꿎좆");
if(blackPen.currentScrew.hasElectricity && redPen.currentScrew.hasElectricity)
{
dangWei.SetValue(2,redPen.currentScrew.ElectricityVlaue);
return;
}
}
dangWei.SetValue(2, 0);
}
}
}