| | |
| | | [SerializeField] Button requestBtn; |
| | | |
| | | |
| | | [SerializeField] ImageEx guildBattleLockImg; |
| | | [SerializeField] Text guildBattleTitleText; |
| | | [SerializeField] Button guildBattleBtn; |
| | | [SerializeField] Text guildBattleState; |
| | | [SerializeField] Image guildBattleStateImg; |
| | | [SerializeField] Text GuildBattleCountDownTime; |
| | | [SerializeField] ImageEx guildBattleImg; |
| | | [SerializeField] UIEffectPlayer guildBattleEffect; |
| | | |
| | | |
| | | [SerializeField] Color32 guildBattleState1;//未参战 |
| | | [SerializeField] Color32 guildBattleState2;//对战失败 |
| | | [SerializeField] Color32 guildBattleState3;//备战中 |
| | | [SerializeField] Color32 guildBattleState4;//激战中 |
| | | [SerializeField] Color32 guildBattleState5;//对战胜利 |
| | | |
| | | |
| | | //NPC对话相关 |
| | | [Header("行商必须放第一个")] |
| | | [SerializeField] HeroSkinModel[] funcNPCs; |
| | |
| | | { |
| | | UIManager.Instance.OpenWindow<GuildRankWin>(); |
| | | }); |
| | | guildBattleBtn.AddListener(() => |
| | | { |
| | | if (!GuildAtkDefBatManager.Instance.IsOpen(true)) |
| | | return; |
| | | UIManager.Instance.OpenWindowAsync<GuildAtkDefBatWin>().Forget(); |
| | | }); |
| | | InitHawker(); |
| | | talkBtn.AddListener(OnClickTalkButton); |
| | | talkBtn1.AddListener(OnClickTalkButton); |
| | |
| | | { |
| | | if (PlayerDatas.Instance.fairyData.fairy == null) |
| | | return; |
| | | |
| | | GlobalTimeEvent.Instance.secondEvent += OnSecondEvent; |
| | | GlobalTimeEvent.Instance.fiveSecondEvent += OnFiveSecondEvent; |
| | | ChatManager.Instance.OnUpdateTalkEvent += OnUpdateTalkEvent; |
| | | PlayerDatas.Instance.fairyData.OnRefreshFairyInfo += OnRefreshFairyInfo; |
| | | FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent; |
| | | GuildAtkDefBatManager.Instance.OnUpdateAtkDefBatInfoEvent += OnUpdateAtkDefBatInfoEvent; |
| | | Display(); |
| | | } |
| | | |
| | |
| | | GlobalTimeEvent.Instance.fiveSecondEvent -= OnFiveSecondEvent; |
| | | ChatManager.Instance.OnUpdateTalkEvent -= OnUpdateTalkEvent; |
| | | PlayerDatas.Instance.fairyData.OnRefreshFairyInfo -= OnRefreshFairyInfo; |
| | | FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent; |
| | | GuildAtkDefBatManager.Instance.OnUpdateAtkDefBatInfoEvent -= OnUpdateAtkDefBatInfoEvent; |
| | | } |
| | | private void OnUpdateAtkDefBatInfoEvent() |
| | | { |
| | | ShowGuildBattleInfo(); |
| | | } |
| | | |
| | | private void OnFuncStateChangeEvent(int funcId) |
| | | { |
| | | if (funcId == (int)FuncOpenEnum.GuildAtkDefBat) |
| | | ShowGuildBattleInfo(); |
| | | } |
| | | |
| | | void OnRefreshFairyInfo() |
| | |
| | | ShowGuildInfo(); |
| | | ShowHawkerTime(); |
| | | ShowTalkInfo(); |
| | | ShowGuildBattleInfo(); |
| | | } |
| | | |
| | | void OnSecondEvent() |
| | | { |
| | | ShowHawkerTime(true); |
| | | UpdateGuildBattleCountdown(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 刷新攻防战的当前状态及对应描边颜色 |
| | | /// </summary> |
| | | void ShowGuildBattleInfo() |
| | | { |
| | | bool isOpen = GuildAtkDefBatManager.Instance.IsOpen(); |
| | | guildBattleLockImg.SetActive(!isOpen); |
| | | guildBattleTitleText.color = isOpen ? new Color32(222, 212, 200, 255) : UIHelper.GetUIColor(TextColType.Gray); |
| | | guildBattleStateImg.SetActive(isOpen); |
| | | guildBattleImg.SetActive(isOpen); |
| | | guildBattleEffect.SetActive(false); |
| | | |
| | | if (!isOpen) |
| | | return; |
| | | |
| | | // 状态标识:1-未参战, 2-备战中, 3-激战中, 4-胜利(休战中), 5-失败(休战中) |
| | | int displayState = GuildAtkDefBatManager.Instance.GetGuildBattleDisplayState(); |
| | | |
| | | switch (displayState) |
| | | { |
| | | case 1: // 未参战 |
| | | guildBattleState.text = Language.Get("GuildAtkDefBat27"); |
| | | guildBattleState.color = guildBattleState1; |
| | | break; |
| | | case 2: // 备战中 |
| | | guildBattleState.text = Language.Get("GuildAtkDefBat25"); |
| | | guildBattleState.color = guildBattleState3; |
| | | break; |
| | | case 3: // 激战中 |
| | | guildBattleState.text = Language.Get("GuildAtkDefBat24"); |
| | | guildBattleState.color = guildBattleState4; |
| | | guildBattleImg.SetActive(false); |
| | | guildBattleEffect.SetActive(true); |
| | | break; |
| | | case 4: // 胜利(休战中) |
| | | guildBattleState.text = Language.Get("GuildAtkDefBat23"); |
| | | guildBattleState.color = guildBattleState5; |
| | | break; |
| | | case 5: // 失败(休战中) |
| | | guildBattleState.text = Language.Get("GuildAtkDefBat26"); |
| | | guildBattleState.color = guildBattleState2; |
| | | break; |
| | | } |
| | | UpdateGuildBattleCountdown(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 刷新倒计时文本 (每秒调用), 仅备战期/激战期显示 |
| | | /// </summary> |
| | | void UpdateGuildBattleCountdown() |
| | | { |
| | | int state = GuildAtkDefBatManager.Instance.BatState; |
| | | bool show = state == 2 || state == 3; |
| | | GuildBattleCountDownTime.SetActive(show); |
| | | if (!show) return; |
| | | |
| | | GuildBattleCountDownTime.text = GuildAtkDefBatManager.Instance.GetGetCountdownToCurrentPeriodEndString(); |
| | | } |
| | | |
| | | void ShowGuildInfo() |