private void ButtonTipsHandle(object sender,int code) { //萌宠献礼 if (sender.Equals(LuckDrawMode.Instance) && code == LuckDrawMode.Instance.UPDATE_TIPS) { btn_mcxl.FindInChild<UISprite>("tips").SetActive(LuckDrawMode.Instance.ShowTips); } //世界Boss else if (sender.Equals(BossMode.Instance) && code == BossMode.Instance.UPDATE_TIPS) { btn_sjb.FindInChild<UISprite>("tips").SetActive(BossMode.Instance.ShowTips); } //世界Boss开启时间倒计时 else if (sender.Equals(BossMode.Instance) && code == BossMode.Instance.UPDATE_START) { float restTimeLeft = BossMode.Instance.RestTimeLeft; if (restTimeLeft == 0) btn_sjb.FindInChild<UILabel>("label").text = LanguageManager.GetWord("MainTopRightView.WorldBoss"); else { vp_TimeUtility.Units timeU = vp_TimeUtility.TimeToUnits(restTimeLeft); string timeStr = string.Format("{0:D2}:{1:D2}", timeU.minutes, timeU.seconds); btn_sjb.FindInChild<UILabel>("label").text = LanguageManager.GetWord("MainTopRightView.WorldBoss") + "\n"+ string.Format(ColorConst.RED_FORMAT,timeStr); } } }
public static float UnitsToSeconds(vp_TimeUtility.Units units) { float num = 0f; num += (float)(units.hours * 3600); num += (float)(units.minutes * 60); num += (float)units.seconds; num += (float)units.deciSeconds * 0.1f; num += (float)(units.centiSeconds / 100); return(num + (float)(units.milliSeconds / 1000)); }
public static vp_TimeUtility.Units TimeToUnits(float timeInSeconds) { vp_TimeUtility.Units result = default(vp_TimeUtility.Units); result.hours = (int)timeInSeconds / 3600; result.minutes = ((int)timeInSeconds - result.hours * 3600) / 60; result.seconds = (int)timeInSeconds % 60; result.deciSeconds = (int)((timeInSeconds - (float)result.seconds) * 10f) % 60; result.centiSeconds = (int)((timeInSeconds - (float)result.seconds) * 100f % 600f); result.milliSeconds = (int)((timeInSeconds - (float)result.seconds) * 1000f % 6000f); return(result); }
//世界Boss战结束 private void BossEnd() { restTime = (uint)Singleton <BossMode> .Instance.EndTimeLeft; if (Singleton <BossMode> .Instance.isDie) //Boss死亡 { Singleton <BossTips> .Instance.OpenWNView(BossMode.Instance.BossName, 4, Singleton <BossControl> .Instance.QuitBossScene); } else if (restTime == 0 && !Singleton <BossMode> .Instance.isDie) //如果时间到,Boss还没有死亡 { Singleton <BossControl> .Instance.QuitBossScene(); //时间到了,直接退出世界Boss } vp_TimeUtility.Units timeU = vp_TimeUtility.TimeToUnits(restTime); string timeStr = string.Format("{0:D2}:{1:D2}", timeU.minutes, timeU.seconds); leftTime.text = timeStr; }
public static float TimeToDegrees(float seconds, bool includeHours = false, bool includeMinutes = false, bool includeSeconds = true, bool includeMilliSeconds = true) { vp_TimeUtility.Units units = vp_TimeUtility.TimeToUnits(seconds); if (includeHours && includeMinutes && includeSeconds) { return(vp_TimeUtility.HoursToDegreesInternal((float)units.hours, (float)units.minutes, (float)units.seconds)); } if (includeHours && includeMinutes) { return(vp_TimeUtility.HoursToDegreesInternal((float)units.hours, (float)units.minutes, 0f)); } if (includeMinutes && includeSeconds && includeMilliSeconds) { return(vp_TimeUtility.MinutesToDegreesInternal((float)units.minutes, (float)units.seconds, (float)units.milliSeconds)); } if (includeMinutes && includeSeconds) { return(vp_TimeUtility.MinutesToDegreesInternal((float)units.minutes, (float)units.seconds, 0f)); } if (includeSeconds && includeMilliSeconds) { return(vp_TimeUtility.SecondsToDegreesInternal((float)units.seconds, (float)units.milliSeconds)); } if (includeHours) { return(vp_TimeUtility.HoursToDegreesInternal((float)units.hours, 0f, 0f)); } if (includeMinutes) { return(vp_TimeUtility.MinutesToDegreesInternal((float)units.minutes, 0f, 0f)); } if (includeSeconds) { return(vp_TimeUtility.TimeToDegrees((float)units.seconds, false, false, true, true)); } if (includeMilliSeconds) { return(vp_TimeUtility.MilliSecondsToDegreesInternal((float)units.milliSeconds)); } Debug.LogError("Error: (vp_TimeUtility.TimeToDegrees) This combination of time units is not supported."); return(0f); }
public static string TimeToString(float timeInSeconds, bool showHours, bool showMinutes, bool showSeconds, bool showTenths, bool showHundredths, bool showMilliSeconds, char delimiter = ':') { vp_TimeUtility.Units units = vp_TimeUtility.TimeToUnits(timeInSeconds); string text = (units.hours >= 10) ? units.hours.ToString() : ("0" + units.hours.ToString()); string arg = (units.minutes >= 10) ? units.minutes.ToString() : ("0" + units.minutes.ToString()); string arg2 = (units.seconds >= 10) ? units.seconds.ToString() : ("0" + units.seconds.ToString()); string arg3 = units.deciSeconds.ToString(); string arg4 = (units.centiSeconds >= 10) ? units.centiSeconds.ToString() : ("0" + units.centiSeconds.ToString()); string text2 = (units.milliSeconds >= 100) ? units.milliSeconds.ToString() : ("0" + units.milliSeconds.ToString()); text2 = ((units.milliSeconds >= 10) ? text2 : ("0" + text2)); return(string.Concat(new string[] { (!showHours) ? string.Empty : text, (!showMinutes) ? string.Empty : (delimiter + arg), (!showSeconds) ? string.Empty : (delimiter + arg2), (!showTenths) ? string.Empty : (delimiter + arg3), (!showHundredths) ? string.Empty : (delimiter + arg4), (!showMilliSeconds) ? string.Empty : (delimiter + text2) }).TrimStart(new char[] { delimiter })); }
// 0 表示未开启, 1 表示CD没到,但有付费次数, 2 表示CD没到(有免费次数), 3 表示没有免费次数 // 4 表示 // 0 表示未开启, 1 表示CD没到, 2表示CD到了, 3表示剩余免费次数为0,4表示剩余付费次数为0 private void UpdateCDTime() { GrowattrInfoMsg_17_1 growInfo = GrowMode.Instance.GrowAttrInfo; List <uint> CDList = new List <uint>(); List <uint> FreeTimes = new List <uint>(); List <uint> CostTimes = new List <uint>(); //方便迭代 CDList.Add(growInfo.lv1Cd); //CD时间 CDList.Add(growInfo.lv2Cd); CDList.Add(growInfo.lv3Cd); FreeTimes.Add(growInfo.lv1Free); //剩余免费次数 FreeTimes.Add(growInfo.lv2Free); FreeTimes.Add(growInfo.lv3Free); int free; //可免费次数 int total; //总次数 string cd1format = LanguageManager.GetWord("Grow.CD1"); string cd2format = LanguageManager.GetWord("Grow.CD2"); cd1format = cd1format.Replace(@"\n", "\n"); cd2format = cd2format.Replace(@"\n", "\n"); string cdformat = null; string freeString = LanguageManager.GetWord("Grow.Free"); string unOpen = LanguageManager.GetWord("Grow.UnOpen"); UILabel cdLabel; int[] freeCount = { 5, 2, 1 }; //三种培育的免费次数 int[] vipRequire = { 0, 4, 6 }; //vip开启 UIWidgetContainer wc; UILabel valueLabel; //花费文本 ItemContainer ic; int leftTime; //剩余付费次数 int leftFree; //剩余免费次数 for (int i = 0; i < 3; i++) { //0 表示未开启, //1 表示CD没到,但有付费次数, 2 表示CD没到(有免费次数)没有付费次数, 3 表示CD时间到,有免费次数, //4 表示没有免费次数,有付费次数 5 表示没有免费次数,没有付费次数 int state = GrowMode.Instance.GetGrowState(i + 1); wc = costList[i]; //花费 ic = buttonList[i]; //按钮 cdLabel = cdList[i]; //CD 文本 valueLabel = wc.FindInChild <UILabel>("value"); free = (int)FreeTimes[i]; leftFree = freeCount[i] - free; int buttonState = 0; //按钮状态 int costState = 0; //钻石信息显示状态 int cdState = 0; //cd显示状态 if (state == 0) //没有开启 { //Log.info(this, "没有开启"); cdState = 1; buttonState = 1; costState = 1; } else if (state == 5) { //Log.info(this, "免费次数和付费次数都用完了"); cdState = 4; buttonState = 2; costState = 2; } else if (state == 4) { //Log.info(this, "没有免费次数,有付费次数"); cdState = 4; buttonState = 2; costState = 2; } else if (state == 3) //免费 { //Log.info(this, "表示CD时间到,有免费次数"); cdState = 3; buttonState = 2; costState = 1; } else if (state == 2) { cdState = 2; buttonState = 2; costState = 2; } else if (state == 1) //付费 { //Log.info(this, "表示CD没到,但有付费次数"); cdState = 2; buttonState = 2; costState = 2; } if (cdState == 1) // 未开启 { cdLabel.text = string.Format(LanguageManager.GetWord("Grow.VIPOpen").Replace(@"\n", "\n"), vipRequire[i]); cdLabel.color = Color.yellow; } else if (cdState == 2) //cd 时间未到 { vp_TimeUtility.Units units = vp_TimeUtility.TimeToUnits(CDList[i]); string timeStr = string.Format("{0:D2}:{1:D2}:{2:D2}", units.hours, units.minutes, units.seconds); cdLabel.text = string.Format(cd1format, timeStr, string.Format(ColorConst.GREEN_FORMAT, free + "/" + freeCount[i])); //cdLabel.color = Color.white; } else if (cdState == 3) //CD时间到 { cdLabel.text = string.Format(cd2format, string.Format(ColorConst.GREEN_FORMAT, free + "/" + freeCount[i])); //cdLabel.color = Color.white; } else if (cdState == 4) //免费用完 { cdLabel.text = string.Format(cd2format, string.Format(ColorConst.RED_FORMAT, free + "/" + freeCount[i])); //cdLabel.color = Color.red; } if (buttonState == 1) //未开启 { ic.FindInChild <UISprite>("background").spriteName = "anniuh1"; ic.FindInChild <UILabel>("label").effectColor = ColorConst.YellowOutline; ic.buttonType = Button.ButtonType.None; ic.SetHighLightState(false); } else if (buttonState == 2) //开启可点击 { ic.FindInChild <UISprite>("background").spriteName = "anniulv"; ic.FindInChild <UILabel>("label").effectColor = ColorConst.BlueOutline; ic.buttonType = Button.ButtonType.Toggle; } else if (buttonState == 3) //开启不可点击 { ic.FindInChild <UISprite>("background").spriteName = "anniulv"; ic.buttonType = Button.ButtonType.None; ic.SetHighLightState(false); } if (costState == 2) //显示 { wc.SetActive(true); ic.FindInChild <UILabel>("label").cachedTransform.localPosition = new Vector3(6.3f, 19f, 0f); valueLabel.text = string.Empty + GrowMode.Instance.GrowCost[i]; } else if (costState == 1) //不显示 { wc.SetActive(false); ic.FindInChild <UILabel>("label").cachedTransform.localPosition = new Vector3(6.3f, -4.0f, 0f); } ic.Id = (uint)state; } }