瀏覽代碼

时间格式化

greg 4 年之前
父節點
當前提交
0916444f1d

+ 6 - 1
assets/resources/configs/GameGlobal.json

@@ -1,6 +1,11 @@
 [
     {
         "earningsInterval": 5000,
-        "afkEarnings": 10
+        "afkEarnings": 10,
+        "accelerateDiamondConsume": 20,
+        "accelerateTime": 150,
+        "accelerateMaxTime": 1500,
+        "autoSyntheticTime": 300,
+        "AutoSyntheticDiamondConsume": 20
     }
 ]

+ 3 - 0
assets/resources/ui/SpeedUpUI.prefab

@@ -4826,6 +4826,9 @@
     "timeLabel": {
       "__id__": 92
     },
+    "diamondLabel": {
+      "__id__": 58
+    },
     "_id": ""
   },
   {

+ 80 - 42
assets/scripts/engines/utils/StringUtils.ts

@@ -120,23 +120,51 @@ export default class StringUtils
         args = String(num.toFixed(fixed));
         return (args + unit);
     }
-
-
-    private static DayTime:number=24*60*60*1000;
-    private static HoursTime:number=60*60*1000;
-    private static MinutesTime:number=60*1000;
     private static SecondsTime:number=1000;
+    private static MinutesTime:number=60*1000;
+    private static HoursTime:number=60*60*1000;
+    private static DayTime:number=24*60*60*1000;
+    private static MonthTime:number=30*24*60*60*1000;
+    private static YearTime:number=365*30*24*60*60*1000;
+    
+  
     /**
      * 时间格式化
      * @param time 
-     * @param daySeparator 
-     * @param hoursSeparator 
-     * @param minutesSeparator 
-     * @param secondsSeparator 
+     * @param yearSeparator         年
+     * @param monthSeparator        月
+     * @param daySeparator          天
+     * @param hoursSeparator        时
+     * @param minutesSeparator      分
+     * @param secondsSeparator      秒
      */
-    public static TimeFormatting(time:number,daySeparator:string="d",hoursSeparator:string="h",minutesSeparator:string="m",secondsSeparator:string="s"):string{
+    public static TimeFormatting(time:number,yearSeparator:string="y",monthSeparator:string="m",daySeparator:string="d",hoursSeparator:string="h",minutesSeparator:string="m",secondsSeparator:string="s"):string{
         let timeStr:string="";
         let index:number=0;
+        //年
+        let Year:number=0;
+        while(time>this.YearTime){
+            time-=this.YearTime;
+            Year++;
+        }
+        if(Year>0){
+            timeStr+=Year+yearSeparator;
+            index++;
+        }
+        //月
+        let Month:number=0;
+        while(time>this.MonthTime){
+            time-=this.MonthTime;
+            Month++;
+        }
+        if(Month>0){
+            if(Month<10){
+                timeStr+="0"+monthSeparator;
+            }else{
+                timeStr+=Month+monthSeparator;
+            }
+            index++;
+        }
         //天
         let Day:number=0;
         while (time>this.DayTime) {
@@ -152,44 +180,54 @@ export default class StringUtils
             index++;
         }
         //时
-        let Hours:number=0;
-        while (time>this.HoursTime) {
-            time-=this.HoursTime;
-            Hours++;
-        }
-        if(Hours>0){
-            if(Hours<10){
-                timeStr+="0"+Hours+hoursSeparator;
-            }else{
-                timeStr+=Hours+hoursSeparator;
+        if(index<2){
+            let Hours:number=0;
+            while (time>this.HoursTime) {
+                time-=this.HoursTime;
+                Hours++;
             }
-            index++;
+            if(Hours>0){
+                if(Hours<10){
+                    timeStr+="0"+Hours+hoursSeparator;
+                }else{
+                    timeStr+=Hours+hoursSeparator;
+                }
+                index++;
+            }
+        }else{
+            return timeStr;
         }
         //分
-        let Minute:number=0;
-        while (time>this.MinutesTime) {
-            time-=this.MinutesTime;
-            Minute++;
-        }
-        if(Minute>0){
-            if(Minute<10){
-                timeStr+="0"+Minute+minutesSeparator;
-            }else{
-                timeStr+=Minute+minutesSeparator;
+        if(index<2){
+            let Minute:number=0;
+            while (time>this.MinutesTime) {
+                time-=this.MinutesTime;
+                Minute++;
             }
-            index++;
+            if(Minute>0){
+                if(Minute<10){
+                    timeStr+="0"+Minute+minutesSeparator;
+                }else{
+                    timeStr+=Minute+minutesSeparator;
+                }
+                index++;
+            }
+        }else{
+            return timeStr;
         }
         //秒
-        let Seconds:number=0;
-        while (time>this.SecondsTime) {
-            time-=this.SecondsTime;
-            Seconds++;
-        }
-        if(Seconds>0&&index<2){
-            if(Seconds<10){
-                timeStr+="0"+Seconds+secondsSeparator;
-            }else{
-                timeStr+=Seconds+secondsSeparator;
+        if(index<2){
+            let Seconds:number=0;
+            while (time>this.SecondsTime) {
+                time-=this.SecondsTime;
+                Seconds++;
+            }
+            if(Seconds>0){
+                if(Seconds<10){
+                    timeStr+="0"+Seconds+secondsSeparator;
+                }else{
+                    timeStr+=Seconds+secondsSeparator;
+                }
             }
         }
         return timeStr;

+ 20 - 5
assets/scripts/games/ui/accelerates/AccelerateMediator.ts

@@ -7,6 +7,7 @@ import { NoticeManager } from '../../../engines/notices/NoticeManager';
 import StringUtils from '../../../engines/utils/StringUtils';
 import { PlatformManager } from '../../../Platform/PlatformManager';
 import AccelerateBuffer from '../../buffers/AccelerateBuffer';
+import GameConfigManager from '../../models/GameConfigManager';
 import { GameModel } from '../../models/GameModel';
 import { UIConst } from '../UIConst';
 const { ccclass, property } = _decorator;
@@ -24,13 +25,27 @@ export class AccelerateMediator extends GUIMediator {
     })
     timeLabel:LabelComponent=null;
 
+    @property({
+        type:LabelComponent
+    })
+    diamondLabel:LabelComponent=null;
+
     /**
      * 最大时间
      */
     private max:number=150*1000*10;
+    private time:number=150*1000;
+    private consume:number=20;
+    start():void{
+        this.time=GameConfigManager.getGlobalValue("accelerateTime")*1000;
+        this.max=GameConfigManager.getGlobalValue("accelerateMaxTime")*1000;
+        this.consume=GameConfigManager.getGlobalValue("accelerateDiamondConsume");
+    }
 
     OnShow(data?:any):void{
         super.OnShow(data);
+        //消耗
+        this.diamondLabel.string=this.consume.toString();
     }
 
     OnHide():void{
@@ -39,14 +54,14 @@ export class AccelerateMediator extends GUIMediator {
 
 
     DiamondButtonClickHandler():void{
-        if(GameModel.single.diamond>20){
+        if(GameModel.single.diamond>this.consume){
             if(this.CurrentBufferTime>=this.max){
                 NoticeManager.ShowPrompt("加速时间已满!");
                 return;
             }
             if(this.AddBuffer()){
                 //扣钱
-                GameModel.single.diamond-=20;
+                GameModel.single.diamond-=this.consume;
                 this.CloseButtonClickHandler();
             }
         }else{
@@ -78,7 +93,7 @@ export class AccelerateMediator extends GUIMediator {
     }
 
     private AddBuffer():boolean{
-        let buffer:AccelerateBuffer=new AccelerateBuffer("Accelerate",150*1000);
+        let buffer:AccelerateBuffer=new AccelerateBuffer("Accelerate",this.time);
         BufferManager.RunBuffer(buffer);
         return true;
     }
@@ -89,12 +104,12 @@ export class AccelerateMediator extends GUIMediator {
         if(buffers==null||buffers.length==0){
             return 0;
         }
-        return buffers[0].GetTime();
+        return buffers[0].GetTimeRemaining();
     }
 
     update(dt:number):void{
         this.progressBar.progress=this.CurrentBufferTime/this.max;
-        this.timeLabel.string=StringUtils.TimeFormatting(this.CurrentBufferTime,":",":",":","");
+        this.timeLabel.string=StringUtils.TimeFormatting(this.CurrentBufferTime,":",":",":",":",":","");
         super.update(dt);
     }
 }

+ 12 - 4
assets/scripts/games/ui/autoSynthesis/AutoSynthesisMediator.ts

@@ -7,6 +7,7 @@ import { DataModelEventType } from '../../../engines/models/DataModelEventType';
 import { NoticeManager } from '../../../engines/notices/NoticeManager';
 import { PlatformManager } from '../../../Platform/PlatformManager';
 import AutoSyntheticBuffer from '../../buffers/AutoSyntheticBuffer';
+import GameConfigManager from '../../models/GameConfigManager';
 import { GameModel } from '../../models/GameModel';
 import { GamePropertys } from '../../models/GamePropertys';
 import { UIConst } from '../UIConst';
@@ -20,6 +21,13 @@ export class AutoSynthesisMediator extends GUIMediator {
     })
     diamondLabel:LabelComponent=null;
 
+    private consume:number=20;
+    private time:number=300*1000;
+    start():void{
+        this.consume=GameConfigManager.getGlobalValue("AutoSyntheticDiamondConsume");
+        this.time=GameConfigManager.getGlobalValue("autoSyntheticTime")*1000;
+    }
+
     OnShow(data?:any):void{
         super.OnShow(data);
         this.RefreshView();
@@ -30,17 +38,17 @@ export class AutoSynthesisMediator extends GUIMediator {
     }
 
     private RefreshView():void{
-        this.diamondLabel.string="20";
+        this.diamondLabel.string=this.consume.toString();
     }
 
     /**
      * 钻石按钮点击
      */
     DiamondButtonClickHandler():void{
-        if(GameModel.single.diamond>20){
+        if(GameModel.single.diamond>this.consume){
             if(this.AddBuffer()){
                 //扣钱
-                GameModel.single.diamond-=20;
+                GameModel.single.diamond-=this.consume;
                 this.CloseButtonClickHandler();
             }
         }else{
@@ -74,7 +82,7 @@ export class AutoSynthesisMediator extends GUIMediator {
             NoticeManager.ShowPrompt("自动合成已开启");
             return false;
         }
-        let buffer:AutoSyntheticBuffer=new AutoSyntheticBuffer("AutoSynthesis",5*60*1000);
+        let buffer:AutoSyntheticBuffer=new AutoSyntheticBuffer("AutoSynthesis",this.time);
         BufferManager.RunBuffer(buffer);
         return true;
     }

+ 1 - 1
assets/scripts/games/ui/prepares/PrepareMediator.ts

@@ -421,7 +421,7 @@ export class PrepareMediator extends GUIMediator {
         if(buffers!=null&&buffers.length>0){
             let buffer:IBuffer=buffers[0];
             let endTime:number=buffer.GetTimeRemaining();
-            this.autoSynthesisLabel.string=StringUtils.TimeFormatting(endTime,":",":",":","");
+            this.autoSynthesisLabel.string=StringUtils.TimeFormatting(endTime,":",":",":",":",":","");
         }else{
             this.autoSynthesisLabel.string="自动合成";
         }