using asap.core;
using cfg;
using game;
using System.Collections.Generic;
using UnityEngine;
public class MMTService
{
[Inject]
public Tables _tables { set; get; }
public int MMTValue { private set; get; }
public string MMTStr { private set; get; }
public bool CanShowHand { set; get; } = true;
public bool MMFailParamValue;
public bool MMTNoviceProtectionValue;
public bool MMTEventTargetIDValue;
public bool MMTFastAutoBuildSwitchValue;
public MMTFailParam MMTFailParamData { get; private set; }
public MMTNoviceProtection MMTNoviceProtectionData { get; private set; }
public MMTEventTargetID MMTEventTargetIDData { get; private set; }
public float GetFailDelayTime() => MMFailParamValue ? MMTFailParamData.FailDelayTime : _tables.TbGlobalConfig.FailDelayTime;
public float GetFishingFailStrugglingTime() => MMFailParamValue ? MMTFailParamData.FishingFailStrugglingTime : _tables.TbGlobalConfig.FishingFailStrugglingTime;
public float GetFishingFailProgress() => MMFailParamValue ? MMTFailParamData.FishingFailProgress : _tables.TbGlobalConfig.FishingFailProgress;
public int GetNoFail() => MMTNoviceProtectionValue ? MMTNoviceProtectionData.NoFail : _tables.TbGlobalConfig.NoFail;
public int GetNoFailWithGuidance() => MMTNoviceProtectionValue ? MMTNoviceProtectionData.NoFailWithGuidance : _tables.TbGlobalConfig.NoFailWithGuidance;
public int GetEventTargetIDOffset() => MMTEventTargetIDValue ? MMTEventTargetIDData.IDOffset : 0;
public string Init(int MMTValue)
{
this.MMTValue = MMTValue;
MMFailParamValue = false;
MMTNoviceProtectionValue = false;
MMTEventTargetIDValue = false;
MMTFastAutoBuildSwitchValue = false;
MMTFailParamData = null;
MMTNoviceProtectionData = null;
MMTEventTargetIDData = null;
var mmDatas = _tables.TbMMTInit.DataList;
string MMType = "";
for (int i = 0; i < mmDatas.Count; i++)
{
MMTInit data = mmDatas[i];
bool isB = false;
// #if UNITY_ANDROID
if (CheckMMT(data.ID - 1001))
{
isB = true;
switch (data.MMTParam)
{
case MMTFailParam fp:
MMFailParamValue = true;
MMTFailParamData = fp;
break;
case MMTNoviceProtection np:
MMTNoviceProtectionValue = true;
MMTNoviceProtectionData = np;
break;
case MMTEventTargetID et:
MMTEventTargetIDValue = true;
MMTEventTargetIDData = et;
break;
case MMTFastAutoBuildSwitch:
MMTFastAutoBuildSwitchValue = true;
break;
default:
break;
}
}
// #endif
if (isB)
{
MMType += "B";
}
else
{
MMType += "A";
}
}
MMTStr = MMType;
return MMType;
}
///
/// 检查分组
///
/// 第几大组0,1,2
/// false=A true=B
bool CheckMMT(int index)
{
int ab = 1 << index;
return (MMTValue & ab) == ab;
}
}