备份CatanBuilding瘦身独立工程
This commit is contained in:
202
Assets/Scripts/UI/Fishing/FishingFishInfo.cs
Normal file
202
Assets/Scripts/UI/Fishing/FishingFishInfo.cs
Normal file
@@ -0,0 +1,202 @@
|
||||
using asap.core;
|
||||
using System.Collections.Generic;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using GameCore;
|
||||
using cfg;
|
||||
|
||||
public class FishingFishInfo : MonoBehaviour
|
||||
{
|
||||
|
||||
private TMP_Text _comboText;
|
||||
|
||||
public GameObject FX_info_weakly;
|
||||
public GameObject FX_info_powerful;
|
||||
public GameObject fx_ui_fishingpanelbar_warm;
|
||||
public GameObject fx_ui_barlianji_full;
|
||||
public ParticleSystem fx_ui_hightligt_loop;
|
||||
|
||||
public Animation distance_ani;
|
||||
|
||||
GameObject start;
|
||||
|
||||
GameObject blood;
|
||||
GameObject mouse;
|
||||
GameObject distance;
|
||||
GameObject combo;
|
||||
public TMP_Text textDistance;
|
||||
TMP_Text text_distance_tips;
|
||||
public TMP_Text textDistanceWarning;
|
||||
public TMP_Text textDistanceRod;
|
||||
BarRoot fishingBarRoot;
|
||||
Tables _tables;
|
||||
Dictionary<string, bool> barShake = new Dictionary<string, bool>();
|
||||
FishingUpdateSys fishingUpdateSys;
|
||||
public void InitPanel(FishingUpdateSys fishingUpdateSys)
|
||||
{
|
||||
this.fishingUpdateSys = fishingUpdateSys;
|
||||
_tables = GContext.container.Resolve<Tables>();
|
||||
start = transform.Find("start").gameObject;
|
||||
combo = transform.Find("combo").gameObject;
|
||||
blood = transform.Find("blood").gameObject;
|
||||
mouse = transform.Find("mouse").gameObject;
|
||||
distance = transform.Find("distance").gameObject;
|
||||
distance_ani = distance.GetComponent<Animation>();
|
||||
|
||||
textDistance = transform.Find("distance/text_distance").GetComponent<TMP_Text>();
|
||||
text_distance_tips = transform.Find("distance/text_distance_tips").GetComponent<TMP_Text>();
|
||||
textDistanceWarning = transform.Find("distance/text_distance_warning").GetComponent<TMP_Text>();
|
||||
textDistanceRod = transform.Find("distance/text_distance_warning/text_distance_rod").GetComponent<TMP_Text>();
|
||||
fishingBarRoot = transform.Find("combo/barRoot").GetComponent<BarRoot>();
|
||||
textDistanceWarning.transform.localScale = Vector3.one * 1.8f;
|
||||
_comboText = transform.Find("combo/text_combo").GetComponent<TMP_Text>();
|
||||
fx_ui_barlianji_full = transform.Find("combo/barRoot/bar_lianji/fx_ui_barlianji_full").gameObject;
|
||||
FX_info_weakly = transform.Find("combo/FX_info_weakly").gameObject;
|
||||
FX_info_powerful = transform.Find("combo/FX_info_powerful").gameObject;
|
||||
fx_ui_fishingpanelbar_warm = transform.Find("combo/barRoot/fx_ui_fishingpanelbar_warm").gameObject;
|
||||
fx_ui_hightligt_loop = transform.Find("combo/barRoot/highlight/fx_ui_hightligt_loop/1").GetComponent<ParticleSystem>();
|
||||
combo.SetActive(false);
|
||||
}
|
||||
|
||||
public void SetTensionBarScale(float MaxZoneScale)
|
||||
{
|
||||
fishingBarRoot.SetTensionBarScale(MaxZoneScale);
|
||||
}
|
||||
|
||||
public void ShowTensionBar()
|
||||
{
|
||||
barShake.Clear();
|
||||
FX_info_weakly.SetActive(false);
|
||||
FX_info_powerful.SetActive(false);
|
||||
_comboText.text = "";
|
||||
fishingBarRoot.ShowTensionBar();
|
||||
fx_ui_barlianji_full.SetActive(false);
|
||||
fx_ui_hightligt_loop.Stop();
|
||||
}
|
||||
|
||||
public void ShowState(int value)
|
||||
{
|
||||
start.SetActive(value == 0);
|
||||
combo.SetActive(value == 1);
|
||||
blood.SetActive(value == 1);
|
||||
distance.SetActive(value > 0);
|
||||
mouse.SetActive(value == 2);
|
||||
}
|
||||
public void UpdateTensionBar(int type, float power)
|
||||
{
|
||||
if (type == 1)
|
||||
{
|
||||
fx_ui_hightligt_loop.Play();
|
||||
}
|
||||
else
|
||||
{
|
||||
fx_ui_hightligt_loop.Stop();
|
||||
}
|
||||
bool isWeakly = power <= fishingUpdateSys.FishingFailProgressLeft;
|
||||
bool isPowerful = power >= 1 - fishingUpdateSys.FishingFailProgressRight && fishingUpdateSys.NeverOvertensionToCrit <= 0;
|
||||
FX_info_weakly.SetActive(isWeakly);
|
||||
FX_info_powerful.SetActive(isPowerful);
|
||||
fx_ui_fishingpanelbar_warm.SetActive(isWeakly || isPowerful);
|
||||
//_comboText.gameObject.SetActive(!isWeakly && !isPowerful);
|
||||
//_comboText.gameObject.SetActive(!isWeakly && !isPowerful);
|
||||
fishingBarRoot.UpdateTensionBar(power);
|
||||
}
|
||||
|
||||
public void UpdateComboMultiplayer(float _curComboMultiplayer)
|
||||
{
|
||||
//string comboText = "";
|
||||
if (_curComboMultiplayer > 0)
|
||||
{
|
||||
fishingBarRoot.SetBarCombo(_curComboMultiplayer);
|
||||
//if (_curComboMultiplayer < 0.99f)
|
||||
// comboText = LocalizationMgr.GetFormatTextValue("UI_FishingPanel_Advanced_101001", ((int)(_curComboMultiplayer * 100)).ToString());
|
||||
//else
|
||||
// comboText = LocalizationMgr.GetText("UI_FishingPanel_Advanced_101002");
|
||||
}
|
||||
//_comboText.text = comboText;
|
||||
}
|
||||
public void ShowComboTips(bool isShow)
|
||||
{
|
||||
fishingBarRoot.arrow_guidance.SetActive(isShow);
|
||||
}
|
||||
public void ShowFishInfoPos(Vector3 bobber)
|
||||
{
|
||||
Vector3 targetPos = ConvertTools.WorldToScreenPoint(bobber);
|
||||
float offset = 250.0f;
|
||||
targetPos.y += offset;
|
||||
transform.localPosition = targetPos; // 设置位置
|
||||
}
|
||||
/// <summary>
|
||||
/// 距离显示
|
||||
/// </summary>
|
||||
/// <param name="fishSwimAreaZFar">远端</param>
|
||||
/// <param name="fishSwimAreaZNear">近端</param>
|
||||
/// <param name="curDistance">鱼线长度</param>
|
||||
/// <param name="maxDistance">最大长度</param>
|
||||
/// <param name="warning">红色警告</param>
|
||||
public void OnDrawFishingLine(float fishSwimAreaZFar, float fishSwimAreaZNear, float curDistance, float maxDistance, float warningLineLengthRatio)
|
||||
{
|
||||
float warningLine = maxDistance * warningLineLengthRatio;
|
||||
|
||||
if (curDistance >= warningLine)
|
||||
{
|
||||
textDistanceWarning.gameObject.SetActive(true);
|
||||
text_distance_tips.gameObject.SetActive(false);
|
||||
textDistance.gameObject.SetActive(false);
|
||||
if (curDistance > maxDistance)
|
||||
{
|
||||
curDistance = maxDistance;
|
||||
}
|
||||
textDistanceWarning.text = LocalizationMgr.GetFormatTextValue("UI_FishingPanel_Advanced_101009", curDistance.ToString("0"));
|
||||
textDistanceRod.text = LocalizationMgr.GetFormatTextValue("UI_FishingPanel_Advanced_101009", maxDistance.ToString("0"));
|
||||
}
|
||||
else if (curDistance > fishSwimAreaZFar)
|
||||
{
|
||||
//橙色警告
|
||||
text_distance_tips.text = LocalizationMgr.GetFormatTextValue("UI_FishingPanel_Advanced_101009", curDistance.ToString("0"));
|
||||
text_distance_tips.gameObject.SetActive(true);
|
||||
text_distance_tips.transform.localScale = Vector3.one *
|
||||
(0.4f * ((curDistance - fishSwimAreaZFar) / (warningLine - fishSwimAreaZFar)) + 1.4f);
|
||||
textDistance.gameObject.SetActive(false);
|
||||
textDistanceWarning.gameObject.SetActive(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (warningLine > fishSwimAreaZFar)
|
||||
{
|
||||
warningLine = fishSwimAreaZFar;
|
||||
}
|
||||
|
||||
textDistance.text = LocalizationMgr.GetFormatTextValue("UI_FishingPanel_Advanced_101009", curDistance.ToString("0"));
|
||||
textDistance.gameObject.SetActive(true);
|
||||
textDistance.transform.localScale = Vector3.one *
|
||||
(0.4f * ((curDistance - fishSwimAreaZNear) / (warningLine - fishSwimAreaZNear)) + 1f);
|
||||
text_distance_tips.gameObject.SetActive(false);
|
||||
textDistanceWarning.gameObject.SetActive(false);
|
||||
}
|
||||
}
|
||||
public void EndFull(bool isStart, float comboTime)
|
||||
{
|
||||
_comboText.gameObject.SetActive(!isStart);
|
||||
_comboText.text = "";
|
||||
if (isStart)
|
||||
{
|
||||
fishingBarRoot.BarComboBack(comboTime);
|
||||
}
|
||||
}
|
||||
|
||||
public void PlayBarAni(string aniName, bool isShake, float barShakeAmp)
|
||||
{
|
||||
barShake[aniName] = isShake;
|
||||
List<string> BarShakePriority = _tables.TbGlobalConfig.BarShakePriority;
|
||||
for (int i = 0; i < BarShakePriority.Count; i++)
|
||||
{
|
||||
if (barShake.ContainsKey(BarShakePriority[i]) && barShake[BarShakePriority[i]])
|
||||
{
|
||||
fishingBarRoot.PlayAni(BarShakePriority[i], barShakeAmp);
|
||||
return;
|
||||
}
|
||||
}
|
||||
fishingBarRoot.PlayAni(BarShakePriority[^1], barShakeAmp);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user