Merge branch 'master' into 3687天赋功能
Conflicts:
Core/GameEngine/Model/ConfigManager.cs
| | |
| | | {
|
| | | StartSyncTask<PriorBundleConfig>(AssetPath.Resource);
|
| | | StartSyncTask<PriorLanguageConfig>(AssetPath.Resource);
|
| | | StartSyncTask<LoginSeverListConfig>(AssetSource.refdataFromEditor ? AssetPath.ResourceOut : AssetPath.External);
|
| | | }
|
| | |
|
| | | List<ConfigTask> configTasks = new List<ConfigTask>();
|
| | |
|
| | | public IEnumerator Co_LoadConfigs()
|
| | | {
|
| | | StartSyncTask<LoginSeverListConfig>(AssetSource.refdataFromEditor ? AssetPath.ResourceOut : AssetPath.External);
|
| | | AddAsyncTask<IconConfig>();
|
| | | AddAsyncTask<ItemConfig>();
|
| | | AddAsyncTask<SkillConfig>();
|
| | |
| | | public partial class RandomNameConfig : ConfigBase, IConfigPostProcess
|
| | | {
|
| | | private static Dictionary<int, List<RandomNameConfig>> m_RandomNameCfgs = new Dictionary<int, List<RandomNameConfig>>();
|
| | | private static List<RandomNameConfig> m_RandomFirstNames = new List<RandomNameConfig>();
|
| | |
|
| | | public void OnConfigParseCompleted()
|
| | | {
|
| | |
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | if (!string.IsNullOrEmpty(RandomName1))
|
| | | {
|
| | | m_RandomFirstNames.Add(this);
|
| | | }
|
| | | }
|
| | |
|
| | | public static string GetFirstName(int occupa)
|
| | | {
|
| | | List<RandomNameConfig> list = null;
|
| | | m_RandomNameCfgs.TryGetValue(occupa, out list);
|
| | | List<RandomNameConfig> list = m_RandomFirstNames;
|
| | | //m_RandomNameCfgs.TryGetValue(occupa, out list);
|
| | | int cnt = list.Count;
|
| | | string str = list[Random.Range(0, cnt)].RandomName1;
|
| | | return str;
|
| | |
| | |
|
| | | Vector3 _destPosition = new Vector3((vNetData.DestPosX - GA_Hero.MapOffset.x) * .5f, _actor.Pos.y, (vNetData.DestPosY - GA_Hero.MapOffset.z) * .5f);
|
| | |
|
| | |
|
| | | if (_actor is GA_Pet)
|
| | | {
|
| | | if (MathUtility.DistanceSqrtXZ(_destPosition, _actor.Pos) < 2f)
|
| | | {
|
| | | return;
|
| | | }
|
| | | }
|
| | |
|
| | | if (_actor.ActorType == GameObjType.gotPlayer)
|
| | | {
|
| | | GActorPlayerBase _player = _actor as GActorPlayerBase;
|
| | |
| | | Free = 1,// 自由
|
| | | Mr = 2,// 猫耳
|
| | | Sp = 3,// 思璞
|
| | | Js = 4,// 极速
|
| | | }
|
| | |
|
| | | public E_ChannelPlatform ChannelPlatform { get; private set; }
|
| | |
| | | {
|
| | | ChannelPlatform = E_ChannelPlatform.Sp;
|
| | | }
|
| | | else if (_channelPlatform.Equals("js"))
|
| | | {
|
| | | ChannelPlatform = E_ChannelPlatform.Js;
|
| | | }
|
| | | }
|
| | | }
|
| | | break;
|
| | |
| | | Vector3 _validPos = Pos;
|
| | | if (TryGetValidPos(destPos, ref _validPos))
|
| | | {
|
| | | DestPos = _validPos;
|
| | | m_SearchType = E_SearchType.Static;
|
| | | MoveTo(_validPos, keepDist);
|
| | | }
|
| | |
| | | return;
|
| | | }
|
| | |
|
| | | Vector3 _curCorner;
|
| | | Vector3 _curCorner = Pos;
|
| | |
|
| | | // 获得当前点, 一般的寻路都会产生2个点
|
| | | // 第一个点为寻路起点, 所以这里如果是第一次取
|
| | |
| | | {
|
| | | m_CornerIndex = 1;
|
| | | }
|
| | |
|
| | | if (m_Path.corners != null && m_CornerIndex < m_Path.corners.Length)
|
| | | {
|
| | | _curCorner = m_Path.corners[m_CornerIndex];
|
| | | }
|
| | |
|
| | | // 计算坐标差
|
| | | Vector3 _curPos = Pos;
|
| | |
| | | }
|
| | |
|
| | | // 判断和终点是否已经达到保持值得
|
| | | Vector3 _endPos = m_Path.corners[m_Path.corners.Length - 1];
|
| | | _chkDistSqrt = MathUtility.DistanceSqrtXZ(_endPos, Pos);
|
| | | _chkDistSqrt = MathUtility.DistanceSqrtXZ(DestPos, Pos);
|
| | |
|
| | | if (_chkDistSqrt <= m_KeepDist * m_KeepDist)
|
| | | if ((_chkDistSqrt - m_KeepDist * m_KeepDist) <= .05f)
|
| | | {
|
| | | StopPathFind();
|
| | | //if (ServerInstID == PlayerDatas.Instance.PlayerId)
|
| | | //{
|
| | | // Debug.LogFormat("已到达保持距离: {0} <= {1}", _chkDistSqrt, m_KeepDist * m_KeepDist);
|
| | | //}
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | public static void ForceCrossFade(Animator animator, int name, float transitionDuration, int layer = 0, float normalizedTime = float.NegativeInfinity)
|
| | | {
|
| | | animator.Update(0);
|
| | | if (animator.GetNextAnimatorStateInfo(layer).fullPathHash == 0)
|
| | | {
|
| | | animator.CrossFade(name, transitionDuration, layer, normalizedTime);
|
| | | }
|
| | | else
|
| | | {
|
| | | animator.Play(animator.GetNextAnimatorStateInfo(layer).fullPathHash, layer);
|
| | | animator.Update(0);
|
| | | animator.CrossFade(name, transitionDuration, layer, normalizedTime);
|
| | | }
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 矫正服务端坐标至客户端坐标
|
| | | /// </summary>
|
| | |
| | | NextAction = GAStaticDefine.Act_Idle;
|
| | | }
|
| | |
|
| | | public override void Run()
|
| | | {
|
| | | NextAction = GAStaticDefine.Act_Run;
|
| | | }
|
| | |
|
| | | public override void IdleImmediate()
|
| | | {
|
| | | if (m_Animator)
|
| | |
| | | {
|
| | | m_Animator.Play(GAStaticDefine.State_IdleHash);
|
| | | }
|
| | | //Debug.LogFormat("调用了 {0} 的立即站立", ServerInstID);
|
| | | }
|
| | | }
|
| | |
|
| | | public override void Run()
|
| | | if (this is GA_Pet)
|
| | | {
|
| | | NextAction = GAStaticDefine.Act_Run;
|
| | | Debug.LogFormat("调用了 {0} 的立即站立", ServerInstID);
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | public override void RunImmediate()
|
| | |
| | | {
|
| | | Run();
|
| | | m_Animator.Play(GAStaticDefine.State_RunHash);
|
| | | if (this is GA_Pet)
|
| | | {
|
| | | Debug.LogFormat(" ---- 调用了 {0} 的立即跑动", ServerInstID);
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | PlayerTaskDatas taskmodel { get { return ModelCenter.Instance.GetModel<PlayerTaskDatas>(); } }
|
| | | GetItemPathModel getItemPathModel { get { return ModelCenter.Instance.GetModel<GetItemPathModel>(); } }
|
| | | DailyQuestModel dailyQuestModel { get { return ModelCenter.Instance.GetModel<DailyQuestModel>(); } }
|
| | |
|
| | | Dictionary<int, int> equipQualityItemIdTables = new Dictionary<int, int>() { { 1, 2110 }, { 2, 2111 }, { 3, 2112 }, { 4, 2113 }, { 5, 2114 } };
|
| | |
|
| | | public override void Init()
|
| | |
| | | }
|
| | | else
|
| | | {
|
| | | AchievementGoto.guideAchievementId = _achievementId;
|
| | | playerPack.SetLookIndex(guid39);
|
| | | GotoCompleteByJump(144);
|
| | | }
|
| | |
| | | }
|
| | | else
|
| | | {
|
| | | AchievementGoto.guideAchievementId = _achievementId;
|
| | | WindowCenter.Instance.Close<TreasureLevelUpWin>();
|
| | |
|
| | | playerPack.SetLookIndex(guid82);
|
| | |
| | | }
|
| | | else
|
| | | {
|
| | | AchievementGoto.guideAchievementId = _achievementId;
|
| | | playerPack.SetLookIndex(guid83);
|
| | | WindowCenter.Instance.Close<TreasureLevelUpWin>();
|
| | | WindowCenter.Instance.Close<MainInterfaceWin>();
|
| | |
| | | [SerializeField] public string m_AppId = string.Empty;
|
| | | public string appId { get { return m_AppId; } }
|
| | |
|
| | | [SerializeField] public string m_SpID = string.Empty;
|
| | | public string SpID { get { return m_SpID; } }
|
| | |
|
| | | [SerializeField] VersionAuthority m_VersionAuthority;
|
| | | public VersionAuthority versionAuthority { get { return m_VersionAuthority; } }
|
| | |
|
| | |
| | | m_IsBanShu = int.Parse(dataStrings[17]) == 1;
|
| | | m_LogoPosition = dataStrings[18].Vector3Parse();
|
| | | m_BanHao = dataStrings[19];
|
| | | m_SpID = dataStrings[20];
|
| | | }
|
| | | catch (System.Exception ex)
|
| | | {
|
| | |
| | | _to.m_ClientPackageFlag = _from.m_ClientPackageFlag;
|
| | | _to.m_LogoPosition = _from.m_LogoPosition;
|
| | | _to.m_BanHao = _from.m_BanHao;
|
| | | _to.m_SpID = _from.m_SpID;
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | |
| | |
|
| | | }
|
| | |
|
| | | public int GetFirstOpenSurplusSeconds()
|
| | | {
|
| | | if (IsAfterFirstOpen())
|
| | | {
|
| | | return 0;
|
| | | }
|
| | | var openDayWeek = (int)TimeUtility.openServerDayOfWeek;
|
| | | var dayIndex = TimeUtility.OpenDay + 1;
|
| | | var maxDays = 15 - openDayWeek == 0 ? 7 : openDayWeek;
|
| | | for (int i = dayIndex; i <= maxDays; i++)
|
| | | {
|
| | | if (specialOpenTimes.ContainsKey(openDayWeek) && specialOpenTimes[openDayWeek].ContainsKey(dayIndex))
|
| | | {
|
| | | var days = i - dayIndex;
|
| | | var hourMinute = specialOpenTimes[openDayWeek][dayIndex][0];
|
| | | var hour = TimeUtility.ServerNow.Hour;
|
| | | var minute = TimeUtility.ServerNow.Minute;
|
| | | var time = TimeUtility.ServerNow.AddDays(days);
|
| | | time = new DateTime(time.Year, time.Month, time.Day, hourMinute.hourBegin, hourMinute.minuteBegin, 0);
|
| | | var seconds = (int)(time - TimeUtility.ServerNow).TotalSeconds;
|
| | | return Mathf.Max(0, seconds);
|
| | | }
|
| | | }
|
| | | return 0;
|
| | | }
|
| | |
|
| | | public bool IsAfterFirstOpen()
|
| | | {
|
| | | var isSpecialDay = TimeUtility.OpenWeekCnt <= 1;
|
| | | if (!isSpecialDay)
|
| | | {
|
| | | return true;
|
| | | }
|
| | | var openDayWeek = (int)TimeUtility.openServerDayOfWeek;
|
| | | var dayIndex = TimeUtility.OpenDay + 1;
|
| | | var maxDays = 15 - openDayWeek == 0 ? 7 : openDayWeek;
|
| | | for (int i = 1; i <= maxDays; i++)
|
| | | {
|
| | | if (specialOpenTimes.ContainsKey(openDayWeek) && specialOpenTimes[openDayWeek].ContainsKey(dayIndex))
|
| | | {
|
| | | if (i < dayIndex)
|
| | | {
|
| | | return true;
|
| | | }
|
| | | if (i == dayIndex)
|
| | | {
|
| | | var hourMinute = specialOpenTimes[openDayWeek][dayIndex][0];
|
| | | var hour = TimeUtility.ServerNow.Hour;
|
| | | var minute = TimeUtility.ServerNow.Minute;
|
| | | if (hour < hourMinute.hourEnd ||
|
| | | (hour == hourMinute.hourEnd && minute < hourMinute.minuteEnd))
|
| | | {
|
| | | return false;
|
| | | }
|
| | | else
|
| | | {
|
| | | return true;
|
| | | }
|
| | | }
|
| | | if (i > dayIndex)
|
| | | {
|
| | | return false;
|
| | | }
|
| | | }
|
| | | }
|
| | | return true;
|
| | | }
|
| | |
|
| | | public bool ContainTimeNode(int week, int timeNode)
|
| | | {
|
| | | var openDayWeek = (int)TimeUtility.openServerDayOfWeek;
|
| | |
| | | public const string TASK_SKILL_HOLE = "TaskSkillHole";
|
| | | public const string RUNE_SPECIAL_HOLE = "RuneSpecialHole";
|
| | | public const string LEAGUE_NOTICE_REDPOINT = "LeagueNoticeRedpoint";
|
| | | public const string FAIRYGRABBOSS_NOTICE_REDPOINT = "FairyGrabBossRedpoint";
|
| | | public Dictionary<string, int[]> dayRemindDic = new Dictionary<string, int[]>();
|
| | |
|
| | | public bool GetDayRemind(string _remindKey)
|
| | |
| | | SetDayRemind(TASK_SKILL_HOLE);
|
| | | SetDayRemind(RUNE_SPECIAL_HOLE);
|
| | | SetDayRemind(LEAGUE_NOTICE_REDPOINT);
|
| | | SetDayRemind(FAIRYGRABBOSS_NOTICE_REDPOINT);
|
| | | }
|
| | |
|
| | | private void SetDayRemind(string _key)
|
| | |
| | | using UnityEngine; |
| | | namespace Snxxz.UI
|
| | | {
|
| | | public class FairyGrabBossModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
|
| | | public class FairyGrabBossModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk, IOpenServerActivity
|
| | | {
|
| | | public List<int> bosses { get; private set; }
|
| | | Dictionary<int, List<Item>> dropItemDict = new Dictionary<int, List<Item>>();
|
| | | Dictionary<int, Dictionary<int, FairyGrabBossInfo>> fairyGrabBossDict = new Dictionary<int, Dictionary<int, FairyGrabBossInfo>>();
|
| | | Dictionary<int, BossProgressInfo> bossProgressDict = new Dictionary<int, BossProgressInfo>();
|
| | |
|
| | | public bool IsOpen
|
| | | public bool IsActivityOpen
|
| | | {
|
| | | get
|
| | | {
|
| | |
| | | public int callMemberDuty { get; private set; }
|
| | | public int callMemberSeconds { get; private set; }
|
| | |
|
| | | public int noticeShowPet { get; private set; }
|
| | | public int noticeShowHorse { get; private set; }
|
| | |
|
| | | private bool serverInited = false;
|
| | | //private DateTime lastQueryProgressTime = DateTime.Now;
|
| | |
|
| | |
| | | PlayerDatas.Instance.PlayerDataRefreshInfoEvent += PlayerDataRefreshInfoEvent;
|
| | | SysNotifyMgr.Instance.sysNotifyEvent += SystemNotifyEvent;
|
| | | GlobalTimeEvent.Instance.secondEvent += SecondEvent;
|
| | | TimeMgr.Instance.OnMinuteEvent += MinuteEvent;
|
| | | OpenServerActivityCenter.Instance.Register(13, this);
|
| | | }
|
| | |
|
| | | public void OnBeforePlayerDataInitialize()
|
| | | {
|
| | | serverInited = false;
|
| | | cacheNoticeOpen = false;
|
| | | bossAliveDict.Clear();
|
| | | }
|
| | |
|
| | | public void OnPlayerLoginOk()
|
| | | {
|
| | | serverInited = true;
|
| | | cacheNoticeOpen = IsOpen;
|
| | | UpdateNoticeRedpoint();
|
| | | }
|
| | |
|
| | | public override void UnInit()
|
| | |
| | | PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= PlayerDataRefreshInfoEvent;
|
| | | SysNotifyMgr.Instance.sysNotifyEvent -= SystemNotifyEvent;
|
| | | GlobalTimeEvent.Instance.secondEvent -= SecondEvent;
|
| | | TimeMgr.Instance.OnMinuteEvent -= MinuteEvent;
|
| | | }
|
| | |
|
| | | private void MinuteEvent()
|
| | | {
|
| | | if (serverInited)
|
| | | {
|
| | | if (cacheNoticeOpen != IsOpen)
|
| | | {
|
| | | cacheNoticeOpen = !cacheNoticeOpen;
|
| | | if (onStateUpate != null)
|
| | | {
|
| | | onStateUpate((int)OpenServerActivityCenter.OSActivityType.FairyGrabBossNotice);
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | private void PlayerDataRefreshInfoEvent(PlayerDataRefresh refreshType)
|
| | |
| | | if (_id == 139)
|
| | | {
|
| | | RecheckGrabBoss();
|
| | | if (onStateUpate != null)
|
| | | {
|
| | | onStateUpate((int)OpenServerActivityCenter.OSActivityType.FairyGrabBossNotice);
|
| | | }
|
| | | UpdateNoticeRedpoint();
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | var config = Config.Instance.Get<FuncConfigConfig>("FairyCallMember");
|
| | | callMemberSeconds = int.Parse(config.Numerical1);
|
| | | callMemberDuty = int.Parse(config.Numerical2);
|
| | | config = Config.Instance.Get<FuncConfigConfig>("FairyGrabBossShowModel");
|
| | | noticeShowHorse = 305;
|
| | | noticeShowPet = 50106305;
|
| | | if (config != null)
|
| | | {
|
| | | noticeShowPet = int.Parse(config.Numerical1);
|
| | | noticeShowHorse = int.Parse(config.Numerical2);
|
| | | }
|
| | | }
|
| | |
|
| | | public bool TryGetDropItems(int bossId, out List<Item> dropItems)
|
| | |
| | |
|
| | | #region 召集弹窗
|
| | | public bool helpCoolDown { get; set; }
|
| | |
|
| | | public List<FairyGrabBossHelp> fairyGrabBossHelps = new List<FairyGrabBossHelp>();
|
| | |
|
| | | public event Action fairyGrabBossHelpUpdate;
|
| | |
| | | }
|
| | | #endregion
|
| | |
|
| | | #region 骑宠争夺预告
|
| | | public bool IsOpen
|
| | | {
|
| | | get
|
| | | {
|
| | | DailyQuestOpenTime dailyQuestOpenTime;
|
| | | if (dailyQuestModel.TryGetOpenTime((int)DailyQuestType.FairyGrabBoss, out dailyQuestOpenTime))
|
| | | {
|
| | | return FuncOpen.Instance.IsFuncOpen(139) && !dailyQuestOpenTime.IsAfterFirstOpen();
|
| | | }
|
| | | return false;
|
| | | }
|
| | | }
|
| | |
|
| | | public bool IsAdvance
|
| | | {
|
| | | get { return false; }
|
| | | }
|
| | |
|
| | | public bool priorityOpen
|
| | | {
|
| | | get { return false; }
|
| | | }
|
| | |
|
| | | bool cacheNoticeOpen { get; set; }
|
| | |
|
| | | public event Action<int> onStateUpate;
|
| | | public int GetFirstOpenSeconds()
|
| | | {
|
| | | int seconds = 0;
|
| | | if (!InActivityTime)
|
| | | {
|
| | | DailyQuestOpenTime dailyQuestOpenTime;
|
| | | if (dailyQuestModel.TryGetOpenTime((int)DailyQuestType.FairyGrabBoss, out dailyQuestOpenTime))
|
| | | {
|
| | | seconds = dailyQuestOpenTime.GetFirstOpenSurplusSeconds();
|
| | | }
|
| | | }
|
| | | return seconds;
|
| | | }
|
| | |
|
| | | Redpoint fairyGrabBossNoticeRedpoint = new Redpoint(MainRedDot.REDPOINT_OPENSERVER, 20913);
|
| | | void UpdateNoticeRedpoint()
|
| | | {
|
| | | fairyGrabBossNoticeRedpoint.state = RedPointState.None;
|
| | | if (!DayRemind.Instance.GetDayRemind(DayRemind.FAIRYGRABBOSS_NOTICE_REDPOINT)
|
| | | && IsOpen)
|
| | | {
|
| | | fairyGrabBossNoticeRedpoint.state = RedPointState.Simple;
|
| | | }
|
| | | }
|
| | |
|
| | | public void SetViewFairyGrabBossNotice()
|
| | | {
|
| | | if (fairyGrabBossNoticeRedpoint.state == RedPointState.Simple)
|
| | | {
|
| | | DayRemind.Instance.SetDayRemind(DayRemind.FAIRYGRABBOSS_NOTICE_REDPOINT, true);
|
| | | UpdateNoticeRedpoint();
|
| | | }
|
| | | }
|
| | | #endregion
|
| | |
|
| | | public class FairyGrabBossInfo
|
| | | {
|
| | | public int npcId { get; private set; }
|
| New file |
| | |
| | | //--------------------------------------------------------
|
| | | // [Author]: 第二世界
|
| | | // [ Date ]: Tuesday, October 09, 2018
|
| | | //--------------------------------------------------------
|
| | |
|
| | | using System;
|
| | | using System.Collections;
|
| | | using System.Collections.Generic;
|
| | | using UnityEngine;
|
| | | using UnityEngine.UI;
|
| | | using TableConfig;
|
| | | namespace Snxxz.UI {
|
| | |
|
| | | public class FairyGrabBossNoticeWin : Window
|
| | | {
|
| | | [SerializeField] Button m_Goto;
|
| | | [SerializeField] RawImage m_Horse;
|
| | | [SerializeField] RawImage m_Pet;
|
| | | [SerializeField] Text m_SurplusTime;
|
| | |
|
| | | FairyGrabBossModel model { get { return ModelCenter.Instance.GetModel<FairyGrabBossModel>(); } }
|
| | |
|
| | | #region Built-in
|
| | | protected override void BindController()
|
| | | {
|
| | | }
|
| | |
|
| | | protected override void AddListeners()
|
| | | {
|
| | | m_Goto.onClick.AddListener(Goto);
|
| | | }
|
| | |
|
| | | protected override void OnPreOpen()
|
| | | {
|
| | | GlobalTimeEvent.Instance.secondEvent += SecondEvent;
|
| | | Display();
|
| | | DisplayTime();
|
| | | model.SetViewFairyGrabBossNotice();
|
| | | }
|
| | |
|
| | | protected override void OnAfterOpen()
|
| | | {
|
| | | }
|
| | |
|
| | | protected override void OnPreClose()
|
| | | {
|
| | | GlobalTimeEvent.Instance.secondEvent -= SecondEvent;
|
| | | UI3DModelExhibition.Instance.StopShow();
|
| | | UI3DModelExhibition.InstanceClone1.StopShow();
|
| | | }
|
| | |
|
| | | protected override void OnAfterClose()
|
| | | {
|
| | | }
|
| | | #endregion
|
| | | private void Goto()
|
| | | {
|
| | | WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.FairyGrabBoss);
|
| | | }
|
| | |
|
| | | void Display()
|
| | | {
|
| | | m_Horse.gameObject.SetActive(true);
|
| | | m_Pet.gameObject.SetActive(true);
|
| | | var npcConfig = Config.Instance.Get<NPCConfig>(model.noticeShowPet);
|
| | | UI3DModelExhibition.Instance.ShowNPC(model.noticeShowPet, npcConfig.UIModeLOffset, npcConfig.UIModelRotation, m_Pet);
|
| | | var horseConfig = Config.Instance.Get<HorseConfig>(model.noticeShowHorse);
|
| | | UI3DModelExhibition.InstanceClone1.ShowHourse(horseConfig.Model, m_Horse);
|
| | | UI3DModelExhibition.Instance.interactable = false;
|
| | | UI3DModelExhibition.InstanceClone1.interactable = false;
|
| | | }
|
| | |
|
| | | private void SecondEvent()
|
| | | {
|
| | | DisplayTime();
|
| | | }
|
| | |
|
| | | void DisplayTime()
|
| | | {
|
| | | var seconds = model.GetFirstOpenSeconds();
|
| | | var isOpen = model.IsOpen;
|
| | | if (seconds > 0)
|
| | | {
|
| | | if (!m_SurplusTime.gameObject.activeSelf)
|
| | | {
|
| | | m_SurplusTime.gameObject.SetActive(true);
|
| | | }
|
| | | m_SurplusTime.text = Language.Get("FairyGrabBossTime", TimeUtility.SecondsToDHMSCHS(seconds));
|
| | | }
|
| | | else if (isOpen)
|
| | | {
|
| | | if (!m_SurplusTime.gameObject.activeSelf)
|
| | | {
|
| | | m_SurplusTime.gameObject.SetActive(true);
|
| | | }
|
| | | m_SurplusTime.text = Language.Get("FairyGrabBossOpened");
|
| | | }
|
| | | else
|
| | | {
|
| | | m_SurplusTime.gameObject.SetActive(false);
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | |
|
| | |
|
| | |
|
| New file |
| | |
| | | fileFormatVersion: 2 |
| | | guid: 1ab2a47cddd6c5c45bd057f4cdc3df3a |
| | | timeCreated: 1539083346 |
| | | licenseType: Pro |
| | | MonoImporter: |
| | | serializedVersion: 2 |
| | | defaultReferences: [] |
| | | executionOrder: 0 |
| | | icon: {instanceID: 0} |
| | | userData: |
| | | assetBundleName: |
| | | assetBundleVariant: |
| | |
| | | {
|
| | | m_FairyName.text = string.Empty;
|
| | | m_NoneFairy.gameObject.SetActive(true);
|
| | | if (!model.IsOpen)
|
| | | if (!model.IsActivityOpen)
|
| | | {
|
| | | return;
|
| | | }
|
| | |
| | | get { return _modelInterface ?? (_modelInterface = ModelCenter.Instance.GetModel<PackModelInterface>()); }
|
| | | }
|
| | |
|
| | | PlayerPackModel playerPack { get { return ModelCenter.Instance.GetModel<PlayerPackModel>(); } }
|
| | |
|
| | | ItemAttrData itemAttrData;
|
| | |
|
| | |
|
| | |
| | | foreach (ItemWinBtnType key in itemAttrData.tipsFuncBtnDic.Keys)
|
| | | {
|
| | | Button btn = OnGUIButton(btnGroup.gameObject, operateBtn, key.ToString(), Language.Get(StringUtility.Contact("ItemHandle_", key.ToString())));
|
| | | if(itemAttrData.guid == playerPack.lookItemGUID && playerPack.lookLineIndex != -1)
|
| | | {
|
| | | switch (key)
|
| | | {
|
| | | case ItemWinBtnType.putOn:
|
| | | SuccessConfig successConfig = Config.Instance.Get<SuccessConfig>(AchievementGoto.guideAchievementId);
|
| | | if (successConfig != null
|
| | | && (successConfig.Type == 39
|
| | | || successConfig.Type == 82
|
| | | || successConfig.Type == 83))
|
| | | {
|
| | | AchievementGuideEffect guidEffect = AchievementGuideEffectPool.Require(1);
|
| | | guidEffect.transform.SetParentEx(btn.transform, Vector3.zero, Quaternion.identity, Vector3.one);
|
| | | guidEffect.effect.renderQueue = 4500;
|
| | | }
|
| | | break;
|
| | | }
|
| | | }
|
| | | |
| | | btn.RemoveAllListeners();
|
| | | btn.onClick.AddListener(() => {
|
| | | OnClickCloseBtn();
|
| | |
| | | if (string.IsNullOrEmpty(guid) || guid == "")
|
| | | {
|
| | | lookLineIndex = -1;
|
| | | lookItemGUID = "";
|
| | | }
|
| | | else
|
| | | {
|
| | |
| | | ChangeUserName(true);
|
| | | return;
|
| | | }
|
| | | ChangeUserName(false);
|
| | | userJob = 3;
|
| | | ChangeUserName(false);
|
| | | RoleShow(0f);
|
| | | }
|
| | |
|
| | |
| | | ChangeUserName(true);
|
| | | return;
|
| | | }
|
| | | ChangeUserName(false);
|
| | | userJob = 2;
|
| | | ChangeUserName(false);
|
| | | RoleShow(0f);
|
| | | }
|
| | |
|
| | |
| | | ChangeUserName(true);
|
| | | return;
|
| | | }
|
| | | ChangeUserName(false);
|
| | | userJob = 1;
|
| | | ChangeUserName(false);
|
| | | RoleShow(0f);
|
| | | }
|
| | |
|
| | |
| | | MessageWin.Inst.ShowFixedTip(Language.Get("CreateRole_NameNull"));
|
| | | return;
|
| | | }
|
| | | if (Encoding.UTF8.GetBytes(userNameInput.text).Length < 6)
|
| | | int error = 0;
|
| | | if (!UIHelper.SatisfyNameLength(userNameInput.text, out error))
|
| | | {
|
| | | MessageWin.Inst.ShowFixedTip(Language.Get("CreateRole_NameShort"));
|
| | | return;
|
| | | }
|
| | | if (!CheckNameLengthLimit(userNameInput.text))
|
| | | switch (error)
|
| | | {
|
| | | case 1:
|
| | | MessageWin.Inst.ShowFixedTip(Language.Get("CreateRole_NameLimit"));
|
| | | break;
|
| | | case 2:
|
| | | MessageWin.Inst.ShowFixedTip(Language.Get("CreateRole_NameShort"));
|
| | | break;
|
| | | }
|
| | | return;
|
| | | }
|
| | | if (DirtyWordConfig.IsDirtWord(userNameInput.text) || UIHelper.HasSpecialCharac(userNameInput.text)
|
| | |
| | | {
|
| | | m_CreateRoleShow.Dispose();
|
| | | }
|
| | |
|
| | | private bool CheckNameLengthLimit(string _value)
|
| | | {
|
| | | var _chs = Regex.Replace(_value, "[^\u4e00-\u9fa5]", string.Empty);
|
| | | if (_chs.Length > GeneralConfig.Instance.playerNameLength / 3)
|
| | | {
|
| | | return false;
|
| | | }
|
| | | if (_value.Length > 6)
|
| | | {
|
| | | return false;
|
| | | }
|
| | | return true;
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | }
|
| | |
| | | send.Extra = "";
|
| | | break;
|
| | | case VersionAuthority.Release:
|
| | | send.ExtraLen = 0;
|
| | | send.Extra = "";
|
| | | send.Extra = VersionConfig.Get().SpID;
|
| | | send.ExtraLen = (byte)send.Extra.Length;
|
| | | if (SDKUtility.Instance.ChannelPlatform == SDKUtility.E_ChannelPlatform.Free)
|
| | | {
|
| | | send.IDType = 1;
|
| | |
| | | else if (SDKUtility.Instance.ChannelPlatform == SDKUtility.E_ChannelPlatform.Sp)
|
| | | {
|
| | | send.IDType = 3;
|
| | | send.ExtraLen = (byte)SDKUtility.Instance.FreePlatformInfo.sessionID.Length;
|
| | | send.Extra = SDKUtility.Instance.FreePlatformInfo.sessionID;
|
| | | send.Extra += ("|" + SDKUtility.Instance.FreePlatformInfo.sessionID);
|
| | | send.ExtraLen = (byte)send.Extra.Length;
|
| | | }else if(SDKUtility.Instance.ChannelPlatform == SDKUtility.E_ChannelPlatform.Js)
|
| | | {
|
| | | send.IDType = 4;
|
| | | }
|
| | | send.AccID = sdkLoginResult.account;
|
| | | send.Password = sdkLoginResult.token;
|
| | |
| | | send.LineNO = 255;
|
| | | send.AppID = VersionConfig.Get().appId;
|
| | | send.AccountID = (uint)sdkLoginResult.accountID;// 内部登陆的时候的id
|
| | | send.TokenExpire = sdkLoginResult.tokenExpire;// 内部登陆的时长,无所谓的
|
| | | send.TokenExpire = sdkLoginResult.tokenExpire;
|
| | | if (SDKUtility.Instance.ChannelPlatform == SDKUtility.E_ChannelPlatform.Sp)
|
| | | {
|
| | | send.TokenExpire = SDKUtility.Instance.FreePlatformInfo.timeStamp;
|
| | |
| | | VipInvest,
|
| | | [Header("仙盟联赛预告")]
|
| | | FairyLeagueNotice,
|
| | | [Header("骑宠争夺预告")]
|
| | | FairyGrabBossNotice,
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | public void ChangeState(TitleBtnState _state)
|
| | | {
|
| | | m_Icon.SetSprite(alternativeConfig.GetIconKey(_state));
|
| | | m_Title.color = alternativeConfig.GetFontColor(_state);
|
| | | //m_Title.color = alternativeConfig.GetFontColor(_state);
|
| | | m_Title.fontSize = alternativeConfig.GetFontSize(_state);
|
| | | }
|
| | | }
|
| | |
| | | }
|
| | | }
|
| | | FairyLeagueModel fairyLeagueModel { get { return ModelCenter.Instance.GetModel<FairyLeagueModel>(); } }
|
| | | FairyGrabBossModel fairyGrabBossModel { get { return ModelCenter.Instance.GetModel<FairyGrabBossModel>(); } }
|
| | |
|
| | | List<int> openActivitys = new List<int>();
|
| | | List<int> priorityActivitys = new List<int>();
|
| | |
| | | {
|
| | | var activityCell = cell as OpenServerActivityCell;
|
| | | var seconds = fairyLeagueModel.GetBeforeFirstLeagueTime();
|
| | | activityCell.title.text = TimeUtility.SecondsToHMS(seconds);
|
| | | activityCell.title.gameObject.SetActive(seconds > 0);
|
| | | }
|
| | | cell = m_ActivityCtrl.GetActiveCellView((int)OpenServerActivityCenter.OSActivityType.FairyGrabBossNotice);
|
| | | if (cell != null)
|
| | | {
|
| | | var activityCell = cell as OpenServerActivityCell;
|
| | | var seconds = fairyGrabBossModel.GetFirstOpenSeconds();
|
| | | bool isOpen = fairyGrabBossModel.IsOpen;
|
| | | activityCell.title.gameObject.SetActive(seconds > 0 || isOpen);
|
| | | activityCell.title.color = UIHelper.GetUIColor(TextColType.Green, true);
|
| | | if (seconds > 0)
|
| | | {
|
| | | activityCell.title.text = UIHelper.ReplaceNewLine(Language.Get("FairyLeagueForcast", TimeUtility.SecondsToHMS(seconds)));
|
| | | activityCell.title.text = TimeUtility.SecondsToHMS(seconds);
|
| | | }
|
| | | else
|
| | | else if (isOpen)
|
| | | {
|
| | | activityCell.title.text = Language.Get("FamilyMatchName");
|
| | | activityCell.title.text = Language.Get("FairyGrabBossOpened");
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | |
|
| | | private void RefreshOpenActivityCell(OpenServerActivityCell _cell)
|
| | | {
|
| | | var customActivity = m_CustomActivitys.Find((x) =>
|
| | | {
|
| | | return (int)x.activityType == _cell.index;
|
| | | });
|
| | | bool customIcon = !string.IsNullOrEmpty(customActivity.titleIcon);
|
| | |
|
| | | _cell.title.color = UIHelper.GetUIColor(TextColType.NavyBrown);
|
| | |
|
| | | OperationBase operationBase;
|
| | | switch (_cell.index)
|
| | | {
|
| | |
| | | {
|
| | | _cell.title.text = Language.Get("ExpActivity_Text5", (operationBase as OperationMultiExp).GetMultipleCHS());
|
| | | }
|
| | | _cell.title.gameObject.SetActive(!customIcon);
|
| | | break;
|
| | | case 8:
|
| | | if (OperationTimeHepler.Instance.TryGetOperationTime(Operation.MultipRealmPoint, out operationBase))
|
| | | {
|
| | | _cell.title.text = Language.Get("MultipleRealmPoint", Language.Get(StringUtility.Contact("Num_CHS_", (operationBase as OperationMultipleRealmPoint).multiplePractice)));
|
| | | }
|
| | | _cell.title.gameObject.SetActive(!customIcon);
|
| | | break;
|
| | | case 12:
|
| | | {
|
| | | var seconds = fairyLeagueModel.GetBeforeFirstLeagueTime();
|
| | | _cell.title.gameObject.SetActive(seconds > 0);
|
| | | if (seconds > 0)
|
| | | {
|
| | | _cell.title.text = UIHelper.ReplaceNewLine(Language.Get("FairyLeagueForcast", TimeUtility.SecondsToHMS(seconds)));
|
| | | _cell.title.text = TimeUtility.SecondsToHMS(seconds);
|
| | | _cell.title.color = UIHelper.GetUIColor(TextColType.Green, true);
|
| | | }
|
| | | else
|
| | | }
|
| | | break;
|
| | | case 13:
|
| | | {
|
| | | _cell.title.text = Language.Get("FamilyMatchName");
|
| | | var seconds = fairyGrabBossModel.GetFirstOpenSeconds();
|
| | | bool isOpen = fairyGrabBossModel.IsOpen;
|
| | | _cell.title.gameObject.SetActive(seconds > 0 || isOpen);
|
| | | _cell.title.color = UIHelper.GetUIColor(TextColType.Green, true);
|
| | | if (seconds > 0)
|
| | | {
|
| | | _cell.title.text = TimeUtility.SecondsToHMS(seconds);
|
| | | }
|
| | | else if (isOpen)
|
| | | {
|
| | | _cell.title.text = Language.Get("FairyGrabBossOpened");
|
| | | }
|
| | | }
|
| | | break;
|
| | | default:
|
| | | _cell.title.gameObject.SetActive(!customIcon);
|
| | | _cell.title.text = Language.Get(StringUtility.Contact("OSActivityTitle_", _cell.index));
|
| | | break;
|
| | | }
|
| | |
| | | _cell.downArrow.gameObject.SetActive(false);
|
| | | _cell.upArrow.gameObject.SetActive(false);
|
| | |
|
| | | var customActivity = m_CustomActivitys.Find((x) =>
|
| | | {
|
| | | return (int)x.activityType == _cell.index;
|
| | | });
|
| | |
|
| | | bool customIcon = !string.IsNullOrEmpty(customActivity.titleIcon);
|
| | | _cell.title.gameObject.SetActive(!customIcon);
|
| | | _cell.titleImage.gameObject.SetActive(customIcon);
|
| | | if (customIcon)
|
| | | {
|
| | |
| | | WindowCenter.Instance.Open<FairyLeagueNoticeWin>(true);
|
| | | }
|
| | | break;
|
| | | case 13:
|
| | | if (windowState == WindowState.Opened)
|
| | | {
|
| | | WindowCenter.Instance.OpenWithoutAnimation<FairyGrabBossNoticeWin>();
|
| | | }
|
| | | else
|
| | | {
|
| | | WindowCenter.Instance.Open<FairyGrabBossNoticeWin>(true);
|
| | | }
|
| | | break;
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | WindowCenter.Instance.CloseImmediately<FairyJadeInvestmentWin>();
|
| | | WindowCenter.Instance.CloseImmediately<VipInvestWin>();
|
| | | WindowCenter.Instance.CloseImmediately<FairyLeagueNoticeWin>();
|
| | | WindowCenter.Instance.CloseImmediately<FairyGrabBossNoticeWin>();
|
| | | }
|
| | |
|
| | | private int Compare(int order_x, int order_y)
|
| | |
| | | public class RoleModel : Model,IBeforePlayerDataInitialize,IAfterPlayerDataInitialize,IPlayerLoginOk
|
| | | {
|
| | | FriendsModel friendsModel { get { return ModelCenter.Instance.GetModel<FriendsModel>(); } }
|
| | |
|
| | | public string RecordPlayerNameKey;
|
| | | public override void Init()
|
| | | {
|
| | | }
|
| | |
| | |
|
| | | public void OnPlayerLoginOk()
|
| | | {
|
| | | |
| | | RecordPlayerNameKey = StringUtility.Contact("RecordPlayerName",PlayerDatas.Instance.baseData.PlayerID);
|
| | | SendRenameInfoToPlayer();
|
| | | }
|
| | |
|
| | | public override void UnInit()
|
| | |
| | | case RoleRenameResult.RenameFailErr:
|
| | | break;
|
| | | case RoleRenameResult.RenameSuccess:
|
| | | string info = Language.Get("RenameText_02", UIHelper.ServerStringTrim(PlayerDatas.Instance.baseData.PlayerName), playerRename);
|
| | | friendsModel.SendChatInfoByGroup(GroupType.Friend,info);
|
| | | LocalSave.SetString(RecordPlayerNameKey, UIHelper.ServerStringTrim(PlayerDatas.Instance.baseData.PlayerName));
|
| | | SysNotifyMgr.Instance.ShowTip("RenameSuccess01", playerRename);
|
| | | if(WindowCenter.Instance.IsOpen<RoleRenameWin>())
|
| | | {
|
| | |
| | | }
|
| | | }
|
| | | #endregion
|
| | |
|
| | | private void SendRenameInfoToPlayer()
|
| | | {
|
| | | if(PlayerPrefs.HasKey(RecordPlayerNameKey))
|
| | | {
|
| | | string recordName = LocalSave.GetString(RecordPlayerNameKey);
|
| | | if(!string.IsNullOrEmpty(recordName))
|
| | | {
|
| | | string info = Language.Get("RenameText_02",recordName, playerRename);
|
| | | friendsModel.SendChatInfoByGroup(GroupType.Friend, info);
|
| | | PlayerPrefs.DeleteKey(RecordPlayerNameKey);
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | return;
|
| | | }
|
| | |
|
| | | if (Encoding.UTF8.GetBytes(renameInput.text).Length < 6)
|
| | | int error = 0;
|
| | | if (!UIHelper.SatisfyNameLength(renameInput.text, out error))
|
| | | {
|
| | | MessageWin.Inst.ShowFixedTip(Language.Get("CreateRole_NameShort"));
|
| | | return;
|
| | | }
|
| | | if (!CheckNameLengthLimit(renameInput.text))
|
| | | switch (error)
|
| | | {
|
| | | case 1:
|
| | | MessageWin.Inst.ShowFixedTip(Language.Get("CreateRole_NameLimit"));
|
| | | break;
|
| | | case 2:
|
| | | MessageWin.Inst.ShowFixedTip(Language.Get("CreateRole_NameShort"));
|
| | | break;
|
| | | }
|
| | | return;
|
| | | }
|
| | | if (DirtyWordConfig.IsDirtWord(renameInput.text) || UIHelper.HasSpecialCharac(renameInput.text)
|
| | |
| | | });
|
| | |
|
| | | }
|
| | |
|
| | | private bool CheckNameLengthLimit(string _value)
|
| | | {
|
| | | var _chs = Regex.Replace(_value, "[^\u4e00-\u9fa5]", string.Empty);
|
| | | if (_chs.Length > GeneralConfig.Instance.playerNameLength / 3)
|
| | | {
|
| | | return false;
|
| | | }
|
| | | if (_value.Length > 6)
|
| | | {
|
| | | return false;
|
| | | }
|
| | | return true;
|
| | | }
|
| | |
|
| | |
|
| | | }
|
| | | }
|
| New file |
| | |
| | | //-------------------------------------------------------- |
| | | // [Author]: 第二世界 |
| | | // [ Date ]: Tuesday, October 09, 2018 |
| | | //-------------------------------------------------------- |
| | | using UnityEngine; |
| | | using System.Collections; |
| | | using UnityEngine.UI; |
| | | |
| | | namespace Snxxz.UI { |
| | | |
| | | public class CheckDisplay:MonoBehaviour {
|
| | | [SerializeField] Image m_Image1;
|
| | | [SerializeField] Image m_Image2;
|
| | | [SerializeField] Image m_Image3;
|
| | | [SerializeField] Image m_Image4;
|
| | | [SerializeField] Image m_Image5;
|
| | | [SerializeField] Image m_Image6;
|
| | | [SerializeField] Image m_Image7;
|
| | | [SerializeField] Image m_Image8;
|
| | | [SerializeField] Image m_Image9; |
| | | |
| | | public void CloseAll()
|
| | | {
|
| | | m_Image1.gameObject.SetActive(false);
|
| | | m_Image2.gameObject.SetActive(false);
|
| | | m_Image3.gameObject.SetActive(false);
|
| | | m_Image4.gameObject.SetActive(false);
|
| | | m_Image5.gameObject.SetActive(false);
|
| | | m_Image6.gameObject.SetActive(false);
|
| | | m_Image7.gameObject.SetActive(false);
|
| | | m_Image8.gameObject.SetActive(false);
|
| | | m_Image9.gameObject.SetActive(false);
|
| | | } |
| | | |
| | | public void ShowSelected(int Index)
|
| | | {
|
| | | switch (Index)
|
| | | {
|
| | | case 1:
|
| | | m_Image1.gameObject.SetActive(true);
|
| | | break;
|
| | | case 2:
|
| | | m_Image2.gameObject.SetActive(true);
|
| | | break;
|
| | | case 3:
|
| | | m_Image3.gameObject.SetActive(true);
|
| | | break;
|
| | | case 4:
|
| | | m_Image4.gameObject.SetActive(true);
|
| | | break;
|
| | | case 5:
|
| | | m_Image5.gameObject.SetActive(true);
|
| | | break;
|
| | | case 6:
|
| | | m_Image6.gameObject.SetActive(true);
|
| | | break;
|
| | | case 7:
|
| | | m_Image7.gameObject.SetActive(true);
|
| | | break;
|
| | | case 8:
|
| | | m_Image8.gameObject.SetActive(true);
|
| | | break;
|
| | | case 9:
|
| | | m_Image9.gameObject.SetActive(true);
|
| | | break;
|
| | |
|
| | | }
|
| | |
|
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | |
| New file |
| | |
| | | fileFormatVersion: 2 |
| | | guid: 9c0e8745efd12dc438df8485acd59d27 |
| | | timeCreated: 1539067713 |
| | | licenseType: Free |
| | | MonoImporter: |
| | | serializedVersion: 2 |
| | | defaultReferences: [] |
| | | executionOrder: 0 |
| | | icon: {instanceID: 0} |
| | | userData: |
| | | assetBundleName: |
| | | assetBundleVariant: |
| | |
| | | using System.Collections; |
| | | using UnityEngine.UI; |
| | | using DG.Tweening; |
| | | using System;
|
| | | |
| | | namespace Snxxz.UI { |
| | | |
| | |
| | | private float Acceleration = 0;//加速度
|
| | | private float _time;
|
| | | private bool IsRotateBool = false;//是否进行旋转
|
| | | public static event Action<bool> IsButtonShow;
|
| | | [Header("总旋转时间")]
|
| | | public float ContinuousTime = 4;//旋转时间
|
| | | [Header("加速减速时间")]
|
| | |
| | | public float MinSpeed= 400;
|
| | | [Header("最大速度")]
|
| | | public float MaxSpeed = 800;
|
| | | WheelOfFortuneModel wheelOfFortuneModel { get { return ModelCenter.Instance.GetModel<WheelOfFortuneModel>(); } }
|
| | | [SerializeField] CheckDisplay m_CheckDisplay;
|
| | |
|
| | | |
| | | private void OnEnable()
|
| | | public void Init()
|
| | | {
|
| | | IsRotateBool = false;
|
| | | _time = 0;
|
| | |
|
| | | transform.localRotation = Quaternion.Euler(0, 0, -wheelOfFortuneModel.AngleSave);
|
| | | Acceleration = (MaxSpeed - MinSpeed) / SpeedTime;
|
| | | m_CheckDisplay.CloseAll();
|
| | | }
|
| | | private void OnEnable()
|
| | | {
|
| | | |
| | | }
|
| | |
|
| | |
|
| | | void Update()
|
| | | {
|
| | |
|
| | | if (!_isRotate)
|
| | | {
|
| | | // transform.DORotate(new Vector3(0, 0, 360 + Angle), 0.5f, RotateMode.FastBeyond360);
|
| | | if (-Angle != transform.localRotation.z)
|
| | | {
|
| | | transform.localRotation = Quaternion.Euler(0, 0, -Angle);
|
| | | m_CheckDisplay.ShowSelected(wheelOfFortuneModel.Lattice);
|
| | | if (IsButtonShow != null)
|
| | | {
|
| | | IsButtonShow(true);
|
| | | }
|
| | | IsRotateBool = false;
|
| | | } |
| | | return; //不旋转结束
|
| | | }
|
| | |
|
| | |
| | | }
|
| | | if (_time < ContinuousTime) // 没结束
|
| | | {
|
| | | transform.Rotate(Vector3.forward * Speed * Time.deltaTime);
|
| | | transform.Rotate(-Vector3.forward * Speed * Time.deltaTime);
|
| | | }
|
| | | else
|
| | | {
|
| | | //结束,使用DoTween旋转到结束角度,耗时1秒
|
| | | //这里有个360,使用来防止指针回转的,如果不加这个360,你会看到指针倒退
|
| | | transform.DORotate(new Vector3(0, 0, 360 + Angle), 1f, RotateMode.FastBeyond360);
|
| | | Sequence sequence = DOTween.Sequence();
|
| | | sequence.Append(transform.DORotate(new Vector3(0, 0, -(360 + Angle)), 2f, RotateMode.FastBeyond360));
|
| | | sequence.AppendCallback(()=> |
| | | {
|
| | | _isRotate = false; // 设置不旋转
|
| | | if (IsButtonShow != null)
|
| | | {
|
| | | IsButtonShow(true);
|
| | | }
|
| | | m_CheckDisplay.ShowSelected(wheelOfFortuneModel.Lattice);
|
| | | }); |
| | | IsRotateBool = false;
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | //外部调用,初始化时间和打开旋转
|
| | | public void SetTime()
|
| | | public void SetTime(bool _bool)
|
| | | {
|
| | | _time =0;
|
| | | if (_bool)
|
| | | {
|
| | | IsRotateBool = false;
|
| | | _isRotate = false;
|
| | | }
|
| | | else
|
| | | {
|
| | | IsRotateBool = true;
|
| | | _isRotate = true;
|
| | | }
|
| | | |
| | | }
|
| | |
|
| | | private void TweenOver()
|
| | | {
|
| | |
|
| | | }
|
| | | //外部调用,设置停止角度 |
| | | } |
| | | |
| | |
| | |
|
| | | private string StrKey = string.Empty;
|
| | | private bool IsOk = false;
|
| | |
|
| | | private const int Redpoint_key1 = 66666;//幸运转盘红点
|
| | | public Redpoint redPointStre1 = new Redpoint(6666, Redpoint_key1);
|
| | | VipModel m_Vipmodel;
|
| | | VipModel vipmodel { get { return m_Vipmodel ?? (m_Vipmodel = ModelCenter.Instance.GetModel<VipModel>()); } }
|
| | | public override void Init()
|
| | | {
|
| | | var BindJadewheel = Config.Instance.Get<FuncConfigConfig>("BindJadeWheelCfg");
|
| | |
| | |
|
| | | public void OnPlayerLoginOk()
|
| | | {
|
| | | PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= Updatefighting;//数据的刷新(h0418)
|
| | | PlayerDatas.Instance.PlayerDataRefreshInfoEvent += Updatefighting;//数据的刷新(h0418)
|
| | | IsOk = true;
|
| | | StrKey = "IsOpenFiaryJadeRedPoint" + PlayerDatas.Instance.baseData.PlayerID;
|
| | | AngleSave = LocalSave.GetFloat(StrKey);
|
| | | RedPoint();
|
| | | }
|
| | |
|
| | | |
| | |
|
| | | public void BindJadeWheelResult(HA324_tagMCBindJadeWheelResult Info)
|
| | | {
|
| | |
| | | {
|
| | | WheelOfFortuneUpdate(AngleSave);
|
| | | }
|
| | | RedPoint();
|
| | | }
|
| | |
|
| | | }
|
| | |
| | | CA517_tagCMStartBindJadeWheel _tagC517 = new CA517_tagCMStartBindJadeWheel();
|
| | | GameNetSystem.Instance.SendInfo(_tagC517);
|
| | | }
|
| | |
|
| | | private void Updatefighting(PlayerDataRefresh obj)//红点
|
| | | {
|
| | | if (obj == PlayerDataRefresh.VIPLv)
|
| | | {
|
| | | RedPoint();
|
| | | }
|
| | | }
|
| | | private void RedPoint()
|
| | | {
|
| | | redPointStre1.state = RedPointState.None;
|
| | | int LotteryNumber = vipmodel.GetVipPrivilegeCnt(VipPrivilegeType.BindJadeWheel);
|
| | | if (LotteryNumber > Number)
|
| | | {
|
| | | redPointStre1.state = RedPointState.Simple;
|
| | | }
|
| | | }
|
| | | } |
| | | |
| | | } |
| | |
| | | // [ Date ]: Friday, September 21, 2018 |
| | | //-------------------------------------------------------- |
| | | |
| | | using DG.Tweening;
|
| | | using System; |
| | | using System.Collections; |
| | | using System.Collections.Generic; |
| | | using UnityEngine; |
| | | using UnityEngine.UI; |
| | | |
| | | namespace Snxxz.UI { |
| | | namespace Snxxz.UI
|
| | | { |
| | | |
| | | public class WheelOfFortuneWin : Window |
| | | { |
| | | [SerializeField] Button m_LotteryBtn;
|
| | | [SerializeField] RotatePointer m_RotatePointer; |
| | | [SerializeField] Toggle m_Toggle; |
| | | [SerializeField] Button m_CloseBtn;
|
| | | [SerializeField] CheckDisplay m_CheckDisplay;
|
| | | [SerializeField] Text Money1_Text;
|
| | | [SerializeField] Text Money2_Text;
|
| | | [SerializeField] Text m_Text_remainingTimes;
|
| | | [SerializeField] Button m_PromotionBtn;
|
| | | [Header("最大速度")]
|
| | | public float RollingTime = 1f;
|
| | |
|
| | | VipModel m_Vipmodel;
|
| | | VipModel vipmodel { get { return m_Vipmodel ?? (m_Vipmodel = ModelCenter.Instance.GetModel<VipModel>()); } } |
| | | WheelOfFortuneModel wheelOfFortuneModel { get { return ModelCenter.Instance.GetModel<WheelOfFortuneModel>(); } }
|
| | | private int remainingTimes = 0;//剩余次数 |
| | | private int FairyJade = 0;//获取当前绑玉 |
| | | #region Built-in |
| | | protected override void BindController() |
| | | { |
| | |
| | | protected override void AddListeners() |
| | | { |
| | | m_LotteryBtn.AddListener(OnClickButton); |
| | | m_CloseBtn.AddListener(()=> { Close(); }); |
| | | m_Toggle.onValueChanged.AddListener(OnClickToggle); |
| | | m_PromotionBtn.AddListener(OnClickPromotionBtn); |
| | | } |
| | | |
| | | protected override void OnPreOpen() |
| | | {
|
| | | FairyJade = (int)UIHelper.GetMoneyCnt(2);
|
| | | Money1_Text.text = FairyJade.ToString();
|
| | | Money2_Text.text = UIHelper.GetMoneyCnt(1).ToString();
|
| | | m_RotatePointer.Init();
|
| | | IsLottery();//判断是否拥有次数 |
| | | } |
| | | |
| | | protected override void OnAfterOpen() |
| | | { |
| | | wheelOfFortuneModel.WheelOfFortuneUpdate += WheelOfFortuneUpdate; |
| | | RotatePointer.IsButtonShow += IsButtonShow; |
| | | } |
| | | |
| | | protected override void OnPreClose() |
| | | {
|
| | | wheelOfFortuneModel.WheelOfFortuneUpdate -= WheelOfFortuneUpdate; |
| | | RotatePointer.IsButtonShow -= IsButtonShow; |
| | | }
|
| | |
|
| | |
|
| | |
|
| | | private void WheelOfFortuneUpdate(float Angel)
|
| | | {
|
| | |
| | | |
| | | private void OnClickButton()
|
| | | {
|
| | | // m_UIEffectFly.StartFly(Text);
|
| | | m_CheckDisplay.CloseAll();
|
| | | wheelOfFortuneModel.StartTheDraw();//开始抽奖
|
| | | m_RotatePointer.SetTime();
|
| | | m_LotteryBtn.interactable = false;
|
| | | float angel = UnityEngine.Random.Range(0f, 360f);
|
| | | m_RotatePointer.Angle = angel;
|
| | | m_RotatePointer.SetTime(m_Toggle.isOn);
|
| | | } |
| | | private void OnClickToggle(bool _bool)
|
| | | {
|
| | |
| | | m_RotatePointer._isRotate = true;
|
| | | }
|
| | |
|
| | | }
|
| | | private void OnClickPromotionBtn()
|
| | | { |
| | | WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.VipRechargeFunc4);
|
| | | }
|
| | | private void IsButtonShow(bool _bool)//是否可点击旋转
|
| | | {
|
| | | m_LotteryBtn.interactable = _bool;
|
| | | } |
| | | |
| | | private void IsLottery()
|
| | |
| | | m_LotteryBtn.interactable = false;
|
| | | }
|
| | | } |
| | | private Sequence mScoreSequence; |
| | | private void TiedJadeChange()//绑玉变化
|
| | | {
|
| | | mScoreSequence = DOTween.Sequence();
|
| | | mScoreSequence.SetAutoKill(false);
|
| | | mScoreSequence.Append(DOTween.To(delegate(float value) |
| | | {
|
| | | var temp = Math.Floor(value);
|
| | | Money1_Text.text = temp + "";
|
| | | }, FairyJade,(int)UIHelper.GetMoneyCnt(2), RollingTime));
|
| | | FairyJade = (int)UIHelper.GetMoneyCnt(2);
|
| | | } |
| | | #endregion |
| | |
|
| | | } |
| | |
| | |
|
| | | InSevenDayModel sevenDayModel { get { return ModelCenter.Instance.GetModel<InSevenDayModel>(); } }
|
| | |
|
| | | //FairyJadeInvestmentModel m_FairyJadeInvestmentModel;
|
| | | //FairyJadeInvestmentModel fairyJadeInvestmentModel { get { return m_FairyJadeInvestmentModel ?? (m_FairyJadeInvestmentModel = ModelCenter.Instance.GetModel<FairyJadeInvestmentModel>()); } }
|
| | | WheelOfFortuneModel m_WheelOfFortuneModel;
|
| | | WheelOfFortuneModel wheelOfFortuneModel { get { return m_WheelOfFortuneModel ?? (m_WheelOfFortuneModel = ModelCenter.Instance.GetModel<WheelOfFortuneModel>()); } }
|
| | | /// <summary>
|
| | | /// 点击主界面福利按钮打开
|
| | | /// </summary>
|
| | |
| | | return;
|
| | | }
|
| | |
|
| | | //if (fairyJadeInvestmentModel.redPointStre1.state == RedPointState.Simple || fairyJadeInvestmentModel.redPointStre1.state == RedPointState.GetReward)
|
| | | //{
|
| | | // WindowCenter.Instance.Close<MainInterfaceWin>();
|
| | | // WindowCenter.Instance.Open<WelfareWin>(false, 5);
|
| | | // return;
|
| | | //}
|
| | | if (wheelOfFortuneModel.redPointStre1.state == RedPointState.Simple)//绑玉转盘
|
| | | {
|
| | | WindowCenter.Instance.Close<MainInterfaceWin>();
|
| | | WindowCenter.Instance.Open<WelfareWin>(false, 5);
|
| | | return;
|
| | | }
|
| | | WindowCenter.Instance.Close<MainInterfaceWin>();
|
| | | WindowCenter.Instance.Open<WelfareWin>(false, functionOrder);
|
| | | }
|
| | |
| | | return 3;
|
| | | }
|
| | |
|
| | | //if (fairyJadeInvestmentModel.redPointStre1.state == RedPointState.Simple || fairyJadeInvestmentModel.redPointStre1.state == RedPointState.GetReward)
|
| | | //{ |
| | | // return 5;
|
| | | //}
|
| | | if (wheelOfFortuneModel.redPointStre1.state == RedPointState.Simple)
|
| | | {
|
| | | return 5;
|
| | | }
|
| | | return functionOrder;
|
| | | }
|
| | | }
|
| | |
| | | [SerializeField] FunctionButton Btn_InSeven;
|
| | | [SerializeField] FunctionButton m_LevelGiftBtn;
|
| | | [SerializeField] FunctionButton m_ExchangeBtn;
|
| | | [SerializeField] FunctionButton m_TurntableBtn;
|
| | | [SerializeField] FunctionButtonGroup buttonGroup;
|
| | | [SerializeField] Button closeBtn;
|
| | |
|
| | |
| | | Btn_InSeven.AddListener(InSeven);
|
| | | m_LevelGiftBtn.onClick.AddListener(OnLevelGift);
|
| | | m_ExchangeBtn.onClick.AddListener(OnExchange);
|
| | | m_TurntableBtn.onClick.AddListener(OnTurntableBtn);
|
| | | closeBtn.onClick.AddListener(CloseClick);
|
| | | }
|
| | |
|
| | |
| | | }
|
| | | functionOrder = 4;
|
| | | }
|
| | | private void OnTurntableBtn()
|
| | | {
|
| | | CloseChildWin();
|
| | | if (windowState == WindowState.Opened)
|
| | | {
|
| | | WindowCenter.Instance.OpenWithoutAnimation<WheelOfFortuneWin>();
|
| | | }
|
| | | else
|
| | | {
|
| | | WindowCenter.Instance.Open<WheelOfFortuneWin>();
|
| | | }
|
| | | functionOrder = 5;
|
| | |
|
| | | }
|
| | | private void OnSignIn()
|
| | | {
|
| | | CloseChildWin();
|
| | |
| | | {
|
| | | WindowCenter.Instance.CloseImmediately<AwardExchangeWin>();
|
| | | }
|
| | | if (WindowCenter.Instance.IsOpen<WheelOfFortuneWin>())
|
| | | {
|
| | | WindowCenter.Instance.CloseImmediately<WheelOfFortuneWin>();
|
| | | }
|
| | | }
|
| | |
|
| | | private void OperationStartEvent(Operation arg1, int arg2)
|
| | |
| | | case JumpUIType.CeremonyOutof:
|
| | | SetJumpLogic<FairylandCeremonyWin>(_tagWinSearchModel.TABID);
|
| | | break;
|
| | | case JumpUIType.DogzFunc1Type1:
|
| | | case JumpUIType.DogzFunc1Type2:
|
| | | SetJumpLogic<DogzWin>(_tagWinSearchModel.TABID);
|
| | | break;
|
| | | case JumpUIType.FaBaoSoul_BenYuan:
|
| | | case JumpUIType.FaBaoSoul_FengMo:
|
| | | case JumpUIType.FaBaoSoul_Strength:
|
| | |
| | | CeremonyFire = 245, //仙界盛典烟花狂欢界面
|
| | | CeremonyPeopleToHi = 246, //仙界盛典全民来嗨界面
|
| | | CeremonyOutof = 247, //仙界盛典绝版降临界面
|
| | | DogzFunc1Type1 = 248, //神兽界面
|
| | | DogzFunc1Type2 = 249, //神兽界面
|
| | | DhszTs = 1001,//定海神针功法提升界面
|
| | | HyqTs = 1002,//皓月枪功法提升界面
|
| | | GyzTs = 1003,//鬼牙刃功法提升界面
|
| | |
| | |
|
| | | public static UI3DModelExhibition Instance { get; private set; }
|
| | |
|
| | | static UI3DModelExhibition m_InstanceClone1 = null;
|
| | | public static UI3DModelExhibition InstanceClone1
|
| | | {
|
| | | get
|
| | | {
|
| | | if (m_InstanceClone1 == null)
|
| | | {
|
| | | CreateCloneStage();
|
| | | }
|
| | | return m_InstanceClone1;
|
| | | }
|
| | | }
|
| | |
|
| | | public static void CreateStage()
|
| | | {
|
| | | var prefab = Resources.Load<GameObject>("UI/Prefabs/UI3DModelExhibitionStage");
|
| | |
| | | DontDestroyOnLoad(gameObject);
|
| | | }
|
| | |
|
| | | static void CreateCloneStage()
|
| | | {
|
| | | var prefab = Resources.Load<GameObject>("UI/Prefabs/UI3DModelExhibitionStage");
|
| | | var gameObject = GameObject.Instantiate(prefab);
|
| | | m_InstanceClone1 = gameObject.GetComponent<UI3DModelExhibition>();
|
| | | m_InstanceClone1.transform.position = new Vector3(2000, 4000, 5000);
|
| | | m_InstanceClone1.name = "UI3DModelExhibitionStage(clone1)";
|
| | | m_InstanceClone1.gameObject.SetActive(true);
|
| | | m_InstanceClone1.m_ShowCamera.enabled = false;
|
| | | DontDestroyOnLoad(gameObject);
|
| | | }
|
| | |
|
| | | public void ShowLoginPlayer(RawImage _rawImage, int _job)
|
| | | {
|
| | | var clothesItemId = 0;
|
| | |
| | | content = content.Replace(" ", string.Empty);
|
| | | return content;
|
| | | }
|
| | |
|
| | | public static bool SatisfyNameLength(string name, out int error)
|
| | | {
|
| | | error = 0;
|
| | | bool pureChinese = Regex.IsMatch(name, "^[\u4e00-\u9fa5]+$");
|
| | | var chsCount = GetChsCount(name);
|
| | | var maxlength = pureChinese ? 5 : chsCount > 0 ? 6 : 8;
|
| | | var minlength = pureChinese ? 2 : 3;
|
| | | if (name.Length > maxlength)
|
| | | {
|
| | | error = 1;
|
| | | }
|
| | | else if (name.Length < minlength)
|
| | | {
|
| | | error = 2;
|
| | | }
|
| | | return error == 0;
|
| | | }
|
| | |
|
| | | public static int GetChsCount(string name)
|
| | | {
|
| | | var count = 0;
|
| | | for (int i = 0; i < name.Length; i++)
|
| | | {
|
| | | if (Regex.IsMatch(name[i].ToString(), "[\u4e00-\u9fa5]"))
|
| | | {
|
| | | count++;
|
| | | }
|
| | | }
|
| | | return count;
|
| | | }
|
| | | }
|