using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Logging;
using HarmonyLib;
using JerryComponent;
using UnityEngine;
using UnityEngine.Windows.Speech;
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.0.0.0")]
[module: UnverifiableCode]
namespace JerryAr.T72A_MBT_Russian_Patch
{
[BepInPlugin("JerryAr.T72A_MBT_Russian_Patch", "T72A_MBT_Russian_Patch", "0.0.1")]
[BepInProcess("h3vr.exe")]
[Description("Built with MeatKit")]
public class T72A_MBT_Russian_PatchPlugin : BaseUnityPlugin
{
private static readonly string BasePath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
internal static ManualLogSource Logger;
private void Awake()
{
Logger = ((BaseUnityPlugin)this).Logger;
LoadAssets();
}
private void LoadAssets()
{
Harmony.CreateAndPatchAll(Assembly.GetExecutingAssembly(), "JerryAr.T72A_MBT_Russian_Patch");
}
}
}
namespace JerryRus
{
[BepInPlugin("JerryDLL.JerryRus", "JRus", "1.0.0")]
[BepInDependency("nrgill28.Sodalite", "1.4.1")]
[BepInProcess("h3vr.exe")]
public class T72ARussianPatch : BaseUnityPlugin
{
private TankCommanderVoiceControl driver;
private TankCommanderVoiceControl2 gunner;
private float cd = 5f;
private KeywordRecognizer keyword;
private Dictionary<string, Action> dic = new Dictionary<string, Action>();
private void Start()
{
//IL_0322: Unknown result type (might be due to invalid IL or missing references)
//IL_032c: Expected O, but got Unknown
//IL_0339: Unknown result type (might be due to invalid IL or missing references)
//IL_0343: Expected O, but got Unknown
dic.Add("Vaditsel. Sadiss.", DriverCrewOn);
dic.Add("Vaditsel. Vuhahdee.", DriverCrewOff);
dic.Add("Nahvochek, Sadiss.", GunnerCrewOn);
dic.Add("Nahvochek, Vuhahdee.", GunnerCrewOff);
dic.Add("Vaditsel, zabusti.", EngineOn);
dic.Add("Vaditsel, vugliucheety.", EngineOff);
dic.Add("Vaditsel, beelio.", MoveFore);
dic.Add("Vaditsel, nazat.", MoveRear);
dic.Add("Vaditsel, slyeva.", TurnLeft);
dic.Add("Vaditsel, splava.", TurnRight);
dic.Add("Vaditsel, sbilidee.", GoStraight);
dic.Add("Vaditsel, ostanavis.", HoldStop);
dic.Add("Vaditsel, art cleeti.", DriverHatchOpen);
dic.Add("Vaditsel, za cleevat.", DriverHatchClose);
dic.Add("Nahvochek, slyeva.", GunnerTurnLeft2);
dic.Add("Nahvochek, splava.", GunnerTurnRight2);
dic.Add("Nahvochek, vyeheh.", MoveUp2);
dic.Add("Nahvochek, vunees.", MoveDown2);
dic.Add("Nahvochek, ahgone.", FireCannon);
dic.Add("Nahvochek, pulimeotnee ahgone.", FirePKT);
dic.Add("Nahvochek, zahehvat tsiellia.", SeekTarget);
dic.Add("Nahvochek, art miyena.", CancelTarget);
dic.Add("Nahvochek, art cleeti.", GunnerHatchOpen);
dic.Add("Nahvochek, za cleevat.", GunnerHatchClose);
dic.Add("Nahvochek, ostanavis.", GunnerHoldStop);
dic.Add("Nahvochek, fugliu chee swiet.", IROn);
dic.Add("Nahvochek, vugliu cheety swiet.", IROff);
dic.Add("Nahvochek, lazviernoot nym", Smoke);
keyword = new KeywordRecognizer(dic.Keys.ToArray());
((PhraseRecognizer)keyword).OnPhraseRecognized += new PhraseRecognizedDelegate(Keyword_OnPhraseRecognized);
((PhraseRecognizer)keyword).Start();
}
private void Keyword_OnPhraseRecognized(PhraseRecognizedEventArgs args)
{
Debug.Log((object)args.text);
dic[args.text]();
}
private void FixedUpdate()
{
cd -= Time.deltaTime;
if (cd <= 0f)
{
cd = 5f;
if ((Object)(object)driver == (Object)null)
{
driver = Object.FindObjectOfType<TankCommanderVoiceControl>();
}
if ((Object)(object)gunner == (Object)null)
{
gunner = Object.FindObjectOfType<TankCommanderVoiceControl2>();
}
}
}
public void DriverCrewOn()
{
if ((Object)(object)driver != (Object)null)
{
driver.CrewOn();
}
}
public void DriverCrewOff()
{
if ((Object)(object)driver != (Object)null)
{
driver.CrewOff();
}
}
public void EngineOn()
{
if ((Object)(object)driver != (Object)null)
{
driver.EngineOn();
}
}
public void EngineOff()
{
if ((Object)(object)driver != (Object)null)
{
driver.EngineOff();
}
}
public void MoveFore()
{
if ((Object)(object)driver != (Object)null)
{
driver.MoveFore();
}
}
public void MoveRear()
{
if ((Object)(object)driver != (Object)null)
{
driver.MoveRear();
}
}
public void TurnLeft()
{
if ((Object)(object)driver != (Object)null)
{
driver.TurnLeft();
}
}
public void TurnRight()
{
if ((Object)(object)driver != (Object)null)
{
driver.TurnRight();
}
}
public void MoveFore2()
{
if ((Object)(object)driver != (Object)null)
{
driver.MoveFore2();
}
}
public void TurnLeft2()
{
if ((Object)(object)driver != (Object)null)
{
driver.TurnLeft2();
}
}
public void TurnRight2()
{
if ((Object)(object)driver != (Object)null)
{
driver.TurnRight2();
}
}
public void GoStraight()
{
if ((Object)(object)driver != (Object)null)
{
driver.GoStraight();
}
}
public void HoldStop()
{
if ((Object)(object)driver != (Object)null)
{
driver.HoldStop();
}
}
public void DriverHatchOpen()
{
if ((Object)(object)driver != (Object)null)
{
driver.HatchOpen();
}
}
public void DriverHatchClose()
{
if ((Object)(object)driver != (Object)null)
{
driver.HatchClose();
}
}
public void LightOn()
{
if ((Object)(object)driver != (Object)null)
{
driver.LightOn();
}
}
public void LightOff()
{
if ((Object)(object)driver != (Object)null)
{
driver.LightOff();
}
}
public void GunnerCrewOn()
{
if ((Object)(object)gunner != (Object)null)
{
gunner.CrewOn();
}
}
public void GunnerCrewOff()
{
if ((Object)(object)gunner != (Object)null)
{
gunner.CrewOff();
}
}
public void MoveUp()
{
if ((Object)(object)gunner != (Object)null)
{
gunner.MoveUp();
}
}
public void MoveDown()
{
if ((Object)(object)gunner != (Object)null)
{
gunner.MoveDown();
}
}
public void GunnerTurnLeft()
{
if ((Object)(object)gunner != (Object)null)
{
gunner.TurnLeft();
}
}
public void GunnerTurnRight()
{
if ((Object)(object)gunner != (Object)null)
{
gunner.TurnRight();
}
}
public void MoveUp2()
{
if ((Object)(object)gunner != (Object)null)
{
gunner.MoveUp2();
}
}
public void MoveDown2()
{
if ((Object)(object)gunner != (Object)null)
{
gunner.MoveDown2();
}
}
public void GunnerTurnLeft2()
{
if ((Object)(object)gunner != (Object)null)
{
gunner.TurnRight();
}
}
public void GunnerTurnRight2()
{
if ((Object)(object)gunner != (Object)null)
{
gunner.TurnLeft();
}
}
public void FireCannon()
{
if ((Object)(object)gunner != (Object)null)
{
gunner.FireCannon();
}
}
public void FireSmoke()
{
if ((Object)(object)gunner != (Object)null)
{
gunner.FireSmoke();
}
}
public void FirePKT()
{
if ((Object)(object)gunner != (Object)null)
{
gunner.FirePKT();
}
}
public void GunnerHoldStop()
{
if ((Object)(object)gunner != (Object)null)
{
gunner.HoldStop();
}
}
public void GunnerHatchOpen()
{
if ((Object)(object)gunner != (Object)null)
{
gunner.HatchOpen();
}
}
public void GunnerHatchClose()
{
if ((Object)(object)gunner != (Object)null)
{
gunner.HatchClose();
}
}
public void SeekTarget()
{
if ((Object)(object)gunner != (Object)null)
{
gunner.SeekTarget();
}
}
public void LockTarget()
{
if ((Object)(object)gunner != (Object)null)
{
gunner.LockTarget();
}
}
public void CancelTarget()
{
if ((Object)(object)gunner != (Object)null)
{
gunner.CancelTarget();
}
}
public void IROn()
{
if ((Object)(object)gunner != (Object)null)
{
gunner.IROn();
}
}
public void IROff()
{
if ((Object)(object)gunner != (Object)null)
{
gunner.IROff();
}
}
public void Smoke()
{
if ((Object)(object)gunner != (Object)null)
{
gunner.FireSmoke();
}
}
private void OnDestroy()
{
((PhraseRecognizer)keyword).Stop();
}
}
}