Compare commits
	
		
			21 Commits
		
	
	
		
			8b267f3745
			...
			bb41bad059
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| bb41bad059 | |||
| 4609a85797 | |||
| 4936449f67 | |||
| 1eec945d93 | |||
| d5fde8eaca | |||
| 6c4515a3ef | |||
| 089956431f | |||
| 13f3a69173 | |||
| df22828641 | |||
| 4ef2280dc1 | |||
|   | a10e4018b4 | ||
| d36f936f6f | |||
| f2c4d83671 | |||
| 83dfd91c2a | |||
| e7413191f9 | |||
| 38979d5040 | |||
| c1263db1af | |||
| c5c1e12d8b | |||
|   | 6ba9415c32 | ||
| b3da61870c | |||
| 24807dffe0 | 
							
								
								
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,2 @@ | |||||||
|  | _saves/ | ||||||
|  | _server/config.json | ||||||
| @ -1 +0,0 @@ | |||||||
| 1 |  | ||||||
| @ -1 +0,0 @@ | |||||||
| N4IgZgNg9lBOCSATEAuEBnALrApjzADAIwgA0IAFjrFKqAJYC2AhgOY6qXVQB0A7jgBGABzIhmAOybNMHFGGYR0OchOaM5IAMLMmYiADdURchWEsAHqgCct66dEoiBF+RZrLqALQmQ75qgE5DIA1sauIIg4YOFBflExKHHownjISW5QEjgAnoHkOBaOcTgAjgCu9OY4EpioANoAuuT0sozodCAAxllYkpgdKKCCMGFO5JB5TgC+5JgwSnSzIGWVwoOg6HxwiCQzy9BdnYj0uF2Y9Fmc5aLkVigArORTzsuQbBsgrTiMACL4uggqGw5RUIHKygAQvgBDUADL0VgUOooEFggD66OUOEQmOMAHYAGwEawADgATOSACxxTGwSS49EE4lkyk04K4ZiDeqgDyaAA65SpOAIgkFDy6VPJYhY6wa2l0jAoUA0IEas156gFQpFYvKEqlMuYcpQ9RAACt6OVWOVJGqNSA+ZxBcLReLJdK3MbuSAANIAFQAavbSJrVWhBfjyYTyZHyWASF6TWaA4GAGLS9Whx1a53lKMxuMJo3JkCsKAQRAhXIhsPa116g2evze+WCegUCHlWhZut513Md2GpM+y3MKCYSSsWs58MgF0iwf6j0ln3oKgSVgSAzK1W92f1xdD5uytcUejb3ccfdOiP56Ox+/Fkfyy048cz2/z++Fp+JlullguD4MQYhAXghDNjaU5dBQU5iNBm6wVOzYWPQ45oVOoF3OhUCYZuBCobh+GsAAzJ+uYoBI5QQBAL6miAOT0BUJA3pR1G0fRZpMRUmYOreHF0QBPo8eU5FseGglcYxzFChRkk0UJp7yqJDzyXIUnCSpsmEupqCacpDGifielUYp0miaSpkGa2RmydY1nmVpdksQQ9rNBgIRVKgChKGCcGwOktLogFiBaBWcB4mguDIOQmLfIwAASF6YFFTRxeiEA4MwBg4HCUBdFFwDLJiBj0Og3yMp04EgXsaLLIIMJ4BIACCmCTl0IS/DIARmZxICYswOD0GlHmYic6DMIIWVVUMGDYBBoGmvURCkQ8zRNOqbwVtAAiwNyHlYDgJq+H0FxYPQXSfPMk4QP6TByOSDxEEQUpRjwhJ2C91hPN05SwLA93hkQDxUtYPCkXYUNQ4SDj5CAggyJgWXw4wWQ1hkKxFPDiPtVl3UsOw8PCFA5VZATbByCUFjYMwFNE5jaO5b8pw4OcEBTHEiISHAOAAMqyCaySTrAKKElSDykTwVLTMsoWcKu1ULbVnSyg0QQa6Qmva1ruv1D4pAG0bJgG0ExuGyblsWxbzQa1t5A0OUsicL6UAZloVKsAAvGIBiKKCGzLLl+2XBIebWDgpGIOKggPAQkbMNY0flNYhHx/qpKg+6BBgIK1iEkQMTkDa9DpCA5LMIghKEog1iFYgYBgFS6JUqSifooIVKEmA6JgIgU0EDgNJV3gYgXMD+KkficfWKRBBSi40xAA== |  | ||||||
| @ -854,6 +854,8 @@ action | |||||||
|     |   waitAsync_s |     |   waitAsync_s | ||||||
|     |   stopAsync_s |     |   stopAsync_s | ||||||
|     |   op_s |     |   op_s | ||||||
|  |     |   setmusics_s | ||||||
|  |     |   introAndLoop_s | ||||||
|     |   battle_s |     |   battle_s | ||||||
|     |   battle_1_s |     |   battle_1_s | ||||||
|     |   openDoor_s |     |   openDoor_s | ||||||
| @ -963,8 +965,7 @@ action | |||||||
|     |   animationDrawable_s |     |   animationDrawable_s | ||||||
|     |   over_s |     |   over_s | ||||||
|     |   overlist_s |     |   overlist_s | ||||||
|     |   playStereo_s |     |   cgtextList_s | ||||||
|     |   moveStereo_s |  | ||||||
|     |   pass_s |     |   pass_s | ||||||
|     ; |     ; | ||||||
| 
 | 
 | ||||||
| @ -1123,22 +1124,33 @@ overtextEmpty | |||||||
| var code = []; | var code = []; | ||||||
| return code; | return code; | ||||||
| */; | */; | ||||||
|  | cgtextList_s | ||||||
|  |     :    '切换剧情文本库' EvalString  Newline | ||||||
|  |      | ||||||
|  | 
 | ||||||
|  | /* cgtextList_s | ||||||
|  | tooltip : cgtextList:设置cg剧情文本库 | ||||||
|  | helpUrl : /_docs/#/instruction | ||||||
|  | default : ["chapter0"] | ||||||
|  | var code = '{"type": "cgtextList", "textList":"'+EvalString_0+'"},\n'; | ||||||
|  | return code; | ||||||
|  | */; | ||||||
| 
 | 
 | ||||||
| cgtext_s | cgtext_s | ||||||
|     :    '背景' EvalString? '回忆滤镜' Bool? '移除对话框' Bool? '头像' EvalString?'名字' EvalString?'坐标PX' Number'打字间隔' Int? BGNL? Newline |     :    '背景' EvalString? '回忆滤镜' Bool? '移除对话框' Bool? '剧情库序列' Int '头像' EvalString?'坐标PX' Number'打字间隔' Int? BGNL? Newline | ||||||
|      '自动等待时长' Int '音频文件(需在全塔属性——使用音效注册)'EvalString? BGNL? Newline |      '自动等待时长' Int '音频文件(需在全塔属性——使用音效注册)'EvalString? BGNL? Newline | ||||||
|      EvalString? BGNL? Newline textcgDrawingList+? Newline |       textcgDrawingList+? Newline | ||||||
|      |      | ||||||
| 
 | 
 | ||||||
| /* cgtext_s | /* cgtext_s | ||||||
| tooltip : cgtext:显示一段包含cg的文字(剧情) | tooltip : cgtext:显示一段包含cg的文字(剧情) | ||||||
| helpUrl : /_docs/#/instruction | helpUrl : /_docs/#/instruction | ||||||
| allImages : ['EvalString_0','EvalString_1'] | allImages : ['EvalString_0','EvalString_1'] | ||||||
| allSounds : ['EvalString_3'] | allSounds : ['EvalString_2'] | ||||||
| default : ["bg_5043.webp",false,"face_050445.webp",false,"菲奥奈",-300,0,2000,"","这句话显示在对话框内",[{ "name":"tati_050145a.webp" , "px": 100,"filter":false }]] | default : ["bg_5043.webp",false,false,0,"face_050445.webp",-300,0,2000,"","这句话显示在对话框内",[{ "name":"tati_050145a.webp" , "px": 100,"filter":false }]] | ||||||
| var head ='{ "name": "'+EvalString_1+'", "px": '+Number_0+' }' | var head ='{ "name": "'+EvalString_1+'", "px": '+Number_0+' }' | ||||||
| var list=',"bodyList": [\n'+textcgDrawingList_0.slice(0,-1)+'\n]' | var list=',"bodyList": [\n'+textcgDrawingList_0.slice(0,-1)+'\n]' | ||||||
| var code = '{"type": "cgtext", "bg":"'+EvalString_0+'","memory":'+Bool_0+',"WindowSkin":'+Bool_1+',"head":'+head+' ,"name":"'+EvalString_2+'","time":'+Int_0+',"wait":'+Int_1+',"sound":"'+EvalString_3+'","text": "'+EvalString_4+'"'+list+' },\n'; | var code = '{"type": "cgtext", "bg":"'+EvalString_0+'","memory":'+Bool_0+',"WindowSkin":'+Bool_1+',"head":'+head+' ,"index":"'+Int_0+'","time":'+Int_1+',"wait":'+Int_2+',"sound":"'+EvalString_2+'"'+list+' },\n'; | ||||||
| return code; | return code; | ||||||
| */; | */; | ||||||
| textcgDrawingList | textcgDrawingList | ||||||
| @ -2612,6 +2624,23 @@ var code = '{"type": "setq"'+IdString_0+'},\n'; | |||||||
| return code; | return code; | ||||||
| */; | */; | ||||||
| 
 | 
 | ||||||
|  | introAndLoop_s | ||||||
|  |     :   '前奏音乐文件'EvalString? '前奏音乐文件播放时长(可填小数,单位为秒)'EvalString'循环音乐文件'EvalString?  Newline | ||||||
|  | 
 | ||||||
|  | /* introAndLoop_s | ||||||
|  | tooltip : introAndLoop:设置任务目标楼层(显示在小地图) | ||||||
|  | helpUrl : /_docs/#/instruction | ||||||
|  | default : ["",1,""] | ||||||
|  | allBgms : ['EvalString_0','EvalString_2'] | ||||||
|  | colour :this.imageColor | ||||||
|  | if(EvalString_1&&!/^(0|([1-9][0-9]*))(\.[\d]+)?$/.test(EvalString_1))throw new Error("此项仅能填写小数或整数,单位为秒"); | ||||||
|  | EvalString_0 = EvalString_0 ? (', "intro": "'+EvalString_0+'"') : ''; | ||||||
|  | EvalString_1= EvalString_1 ? (', "time": '+EvalString_1+'') : ''; | ||||||
|  | EvalString_2 = EvalString_2 ? (', "loop": "'+EvalString_2+'"') : ''; | ||||||
|  | var code = '{"type": "introAndLoop"'+EvalString_0+EvalString_1+EvalString_2+'},\n'; | ||||||
|  | return code; | ||||||
|  | */; | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| setcgs_s | setcgs_s | ||||||
|     :   'cg回廊获取cg 文件名'EvalString?'不填为清空cg获取记录'  Newline |     :   'cg回廊获取cg 文件名'EvalString?'不填为清空cg获取记录'  Newline | ||||||
| @ -2621,12 +2650,26 @@ tooltip : setcgs:cg回廊中的cg获取 | |||||||
| helpUrl : /_docs/#/instruction | helpUrl : /_docs/#/instruction | ||||||
| default : [""] | default : [""] | ||||||
| allImages : ['EvalString_0'] | allImages : ['EvalString_0'] | ||||||
| colour : this.imageColor | colour : this.soundColor | ||||||
| EvalString_0 = EvalString_0 ? (', "img": "'+EvalString_0+'"') : ''; | EvalString_0 = EvalString_0 ? (', "img": "'+EvalString_0+'"') : ''; | ||||||
| var code = '{"type": "setcgs"'+EvalString_0+'},\n'; | var code = '{"type": "setcgs"'+EvalString_0+'},\n'; | ||||||
| return code; | return code; | ||||||
| */; | */; | ||||||
| 
 | 
 | ||||||
|  | setmusics_s | ||||||
|  |     :   '音乐鉴赏music 文件名'EvalString?'不填为清空music获取记录'  Newline | ||||||
|  | 
 | ||||||
|  | /* setmusics_s | ||||||
|  | tooltip : setmusics:音乐鉴赏中的隐藏music获取 | ||||||
|  | helpUrl : /_docs/#/instruction | ||||||
|  | default : [""] | ||||||
|  | allBgms : ['EvalString_0'] | ||||||
|  | colour : this.soundColor | ||||||
|  | EvalString_0 = EvalString_0 ? (', "bgm": "'+EvalString_0+'"') : ''; | ||||||
|  | var code = '{"type": "setmusics"'+EvalString_0+'},\n'; | ||||||
|  | return code; | ||||||
|  | */; | ||||||
|  | 
 | ||||||
| scaleImage_s | scaleImage_s | ||||||
|     :   '图片放缩' '图片编号' NInt '中心点像素' 'x' PosString? 'y' PosString? '移动方式' MoveMode_List BGNL? '放缩比例' Number '动画时间' Int '不等待执行完毕' Bool Newline |     :   '图片放缩' '图片编号' NInt '中心点像素' 'x' PosString? 'y' PosString? '移动方式' MoveMode_List BGNL? '放缩比例' Number '动画时间' Int '不等待执行完毕' Bool Newline | ||||||
|         |         | ||||||
| @ -3045,39 +3088,8 @@ var code = '{"type": "playSound", "name": "'+EvalString_0+'"'+Bool_0+IntString_0 | |||||||
| return code; | return code; | ||||||
| */; | */; | ||||||
| 
 | 
 | ||||||
| playStereo_s |  | ||||||
|     :   '播放音效(立体音)' EvalString '左声道音量' Int '右声道音量' Int '启用立体音' Bool? Newline |  | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| /* playStereo_s |  | ||||||
| tooltip : playSound: 播放音效(立体音) |  | ||||||
| helpUrl : /_docs/#/instruction |  | ||||||
| default : ["item.mp3",1,1,true] |  | ||||||
| colour : this.imageColor |  | ||||||
| allSounds : ['EvalString_0'] |  | ||||||
| material : ["./project/sounds/", "EvalString_0"] |  | ||||||
| 
 |  | ||||||
| var code = '{"type": "playStereo", "name": "'+EvalString_0+'", "left": '+Int_0+', "right": '+Int_1+', "split": '+Bool_0+'},\n'; |  | ||||||
| return code; |  | ||||||
| */; |  | ||||||
| 
 |  | ||||||
| moveStereo_s |  | ||||||
|     :   '播放渐变音效(立体音)' EvalString '左声道音量' Int '右声道音量' Int '启用立体音' Bool? BGNL? Newline |  | ||||||
|     '左声道目标音量' Int '右声道目标音量' Int '渐变时长'Int Newline |  | ||||||
|      |  | ||||||
| 
 |  | ||||||
| /* moveStereo_s |  | ||||||
| tooltip : playSound: 播放渐变音效(立体音) |  | ||||||
| helpUrl : /_docs/#/instruction |  | ||||||
| default : ["item.mp3",1,1,true,10,10,1000] |  | ||||||
| colour : this.imageColor |  | ||||||
| allSounds : ['EvalString_0'] |  | ||||||
| material : ["./project/sounds/", "EvalString_0"] |  | ||||||
| 
 |  | ||||||
| var code = '{"type": "moveStereo", "name": "'+EvalString_0+'", "left": '+Int_0+', "right": '+Int_1+', "split": '+Bool_0+', "leftTo": '+Int_2+', "rightTo": '+Int_3+', "time": '+Int_4+'},\n'; |  | ||||||
| return code; |  | ||||||
| */; |  | ||||||
| 
 |  | ||||||
| playSound_1_s | playSound_1_s | ||||||
|     :   '播放系统音效' NameMap_List '停止之前音效' Bool? '音调' IntString? '等待播放完毕' Bool? Newline |     :   '播放系统音效' NameMap_List '停止之前音效' Bool? '音调' IntString? '等待播放完毕' Bool? Newline | ||||||
|      |      | ||||||
|  | |||||||
| @ -542,6 +542,12 @@ MotaActionParser = function () { | |||||||
|           ); |           ); | ||||||
|         } |         } | ||||||
|         break; |         break; | ||||||
|  |       case "cgtextList": | ||||||
|  |         this.next = MotaActionBlocks["cgtextList_s"].xmlText([ | ||||||
|  |           data.textList, | ||||||
|  |           this.next, | ||||||
|  |         ]); | ||||||
|  |         break; | ||||||
|       case "cgtext": // cg对话框
 |       case "cgtext": // cg对话框
 | ||||||
|         var buildcgDrawing = function (obj) { |         var buildcgDrawing = function (obj) { | ||||||
|           obj = MotaActionFunctions.processcgDrawing(obj || []); |           obj = MotaActionFunctions.processcgDrawing(obj || []); | ||||||
| @ -563,13 +569,12 @@ MotaActionParser = function () { | |||||||
|           data.bg, |           data.bg, | ||||||
|           data.memory, |           data.memory, | ||||||
|           data.WindowSkin, |           data.WindowSkin, | ||||||
|  |           data.index, | ||||||
|           data.head.name, |           data.head.name, | ||||||
|           data.name || "", |  | ||||||
|           data.head.px || -300, |           data.head.px || -300, | ||||||
|           data.time, |           data.time, | ||||||
|           data.wait, |           data.wait, | ||||||
|           data.sound, |           data.sound, | ||||||
|           data.text, |  | ||||||
|           buildcgDrawing(data.bodyList), |           buildcgDrawing(data.bodyList), | ||||||
|           this.next, |           this.next, | ||||||
|         ]); |         ]); | ||||||
| @ -620,6 +625,20 @@ MotaActionParser = function () { | |||||||
|       case "setcgs": |       case "setcgs": | ||||||
|         this.next = MotaActionBlocks["setcgs_s"].xmlText([data.img, this.next]); |         this.next = MotaActionBlocks["setcgs_s"].xmlText([data.img, this.next]); | ||||||
|         break; |         break; | ||||||
|  |       case "setmusics": | ||||||
|  |         this.next = MotaActionBlocks["setmusics_s"].xmlText([ | ||||||
|  |           data.bgm, | ||||||
|  |           this.next, | ||||||
|  |         ]); | ||||||
|  |         break; | ||||||
|  |       case "introAndLoop": | ||||||
|  |         this.next = MotaActionBlocks["introAndLoop_s"].xmlText([ | ||||||
|  |           data.intro, | ||||||
|  |           data.time, | ||||||
|  |           data.loop, | ||||||
|  |           this.next, | ||||||
|  |         ]); | ||||||
|  |         break; | ||||||
|       case "comment": // 注释
 |       case "comment": // 注释
 | ||||||
|         this.next = MotaActionBlocks["comment_s"].xmlText([ |         this.next = MotaActionBlocks["comment_s"].xmlText([ | ||||||
|           this.EvalString_Multi(data.text), |           this.EvalString_Multi(data.text), | ||||||
| @ -1506,27 +1525,6 @@ MotaActionParser = function () { | |||||||
|           ]); |           ]); | ||||||
|         } |         } | ||||||
|         break; |         break; | ||||||
|       case "playStereo": |  | ||||||
|         this.next = MotaActionBlocks["playStereo_s"].xmlText([ |  | ||||||
|           data.name, |  | ||||||
|           data.left, |  | ||||||
|           data.right, |  | ||||||
|           data.split || true, |  | ||||||
|           this.next, |  | ||||||
|         ]); |  | ||||||
|         break; |  | ||||||
|       case "moveStereo": |  | ||||||
|         this.next = MotaActionBlocks["moveStereo_s"].xmlText([ |  | ||||||
|           data.name, |  | ||||||
|           data.left, |  | ||||||
|           data.right, |  | ||||||
|           data.split || true, |  | ||||||
|           data.leftTo, |  | ||||||
|           data.rightTo, |  | ||||||
|           data.time, |  | ||||||
|           this.next, |  | ||||||
|         ]); |  | ||||||
|         break; |  | ||||||
|       case "playSound": |       case "playSound": | ||||||
|         var knownItems = MotaActionBlocks["NameMap_List"].options.map(function ( |         var knownItems = MotaActionBlocks["NameMap_List"].options.map(function ( | ||||||
|           one |           one | ||||||
|  | |||||||
| @ -1 +0,0 @@ | |||||||
| { "viewportLoc": [0, 0], "editorLastFloorId": "jiedao" } |  | ||||||
| @ -389,7 +389,7 @@ var comment_c456ea59_6018_45ef_8bcc_211a24c627dc = { | |||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
| 		}, | 		}, | ||||||
| 		"enemys_template": { 'name': '新敌人', 'hp': 0, 'atk': 0, 'def': 0, 'money': 0, 'exp': 0, 'point': 0, 'special': [] }, | 		"enemys_template": { 'name': '新敌人', 'hp': 0, 'atk': 0, 'def': 0, 'mdef': 0, 'speed': 0, 'money': 0, 'exp': 0, 'point': 0, 'special': [] }, | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 		// --------------------------- 【图块属性】相关的表格配置 --------------------------- //
 | 		// --------------------------- 【图块属性】相关的表格配置 --------------------------- //
 | ||||||
|  | |||||||
| @ -122,6 +122,12 @@ var plugins_comment_c456ea59_6018_45ef_8bcc_211a24c627dc = { | |||||||
| 				"_type": "textarea", | 				"_type": "textarea", | ||||||
| 				"_range": "typeof(thiseval)=='string' || thiseval==null", | 				"_range": "typeof(thiseval)=='string' || thiseval==null", | ||||||
| 				"_data": "音乐鉴赏" | 				"_data": "音乐鉴赏" | ||||||
|  | 			}, | ||||||
|  | 			"intro&loop": { | ||||||
|  | 				"_leaf": true, | ||||||
|  | 				"_type": "textarea", | ||||||
|  | 				"_range": "typeof(thiseval)=='string' || thiseval==null", | ||||||
|  | 				"_data": "背景音乐拼接" | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 		if (obj[key]) return obj[key]; | 		if (obj[key]) return obj[key]; | ||||||
|  | |||||||
							
								
								
									
										6529
									
								
								libs/control.js
									
									
									
									
									
								
							
							
						
						
									
										6529
									
								
								libs/control.js
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										7045
									
								
								libs/events.js
									
									
									
									
									
								
							
							
						
						
									
										7045
									
								
								libs/events.js
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										1164
									
								
								libs/loader.js
									
									
									
									
									
								
							
							
						
						
									
										1164
									
								
								libs/loader.js
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										7
									
								
								main.js
									
									
									
									
									
								
							
							
						
						
									
										7
									
								
								main.js
									
									
									
									
									
								
							| @ -492,7 +492,6 @@ main.prototype.selectButton = function (index) { | |||||||
| main.prototype.importFonts = function (fonts) { | main.prototype.importFonts = function (fonts) { | ||||||
|   if (!(fonts instanceof Array) || fonts.length == 0) return; |   if (!(fonts instanceof Array) || fonts.length == 0) return; | ||||||
|   var style = document.createElement("style"); |   var style = document.createElement("style"); | ||||||
|   style.type = "text/css"; |  | ||||||
|   var html = ""; |   var html = ""; | ||||||
|   fonts.forEach(function (font) { |   fonts.forEach(function (font) { | ||||||
|     html += |     html += | ||||||
| @ -910,7 +909,7 @@ main.prototype.listen = function () { | |||||||
|   ////// 点击“开始游戏”时 //////
 |   ////// 点击“开始游戏”时 //////
 | ||||||
|   main.dom.playGame.onclick = function () { |   main.dom.playGame.onclick = function () { | ||||||
|     main.dom.startButtons.style.display = "none"; |     main.dom.startButtons.style.display = "none"; | ||||||
|     main.core.control.checkBgm(); |     main.core.checkBgm(); | ||||||
| 
 | 
 | ||||||
|     if (main.levelChoose.length == 0) { |     if (main.levelChoose.length == 0) { | ||||||
|       core.events.startGame(""); |       core.events.startGame(""); | ||||||
| @ -923,13 +922,13 @@ main.prototype.listen = function () { | |||||||
| 
 | 
 | ||||||
|   ////// 点击“载入游戏”时 //////
 |   ////// 点击“载入游戏”时 //////
 | ||||||
|   main.dom.loadGame.onclick = function () { |   main.dom.loadGame.onclick = function () { | ||||||
|     main.core.control.checkBgm(); |     main.core.checkBgm(); | ||||||
|     main.core.load(); |     main.core.load(); | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   ////// 点击“录像回放”时 //////
 |   ////// 点击“录像回放”时 //////
 | ||||||
|   main.dom.replayGame.onclick = function () { |   main.dom.replayGame.onclick = function () { | ||||||
|     main.core.control.checkBgm(); |     main.core.checkBgm(); | ||||||
|     main.core.chooseReplayFile(); |     main.core.chooseReplayFile(); | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										
											BIN
										
									
								
								project/bgms/Ascension.opus
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								project/bgms/Ascension.opus
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								project/bgms/Blood_Stain.opus
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								project/bgms/Blood_Stain.opus
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								project/bgms/Halbmond.opus
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								project/bgms/Halbmond.opus
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								project/bgms/ed.opus
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								project/bgms/ed.opus
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| @ -897,9 +897,13 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d = | |||||||
| 			"zone" | 			"zone" | ||||||
| 		], | 		], | ||||||
| 		"bgms": [ | 		"bgms": [ | ||||||
|  | 			"Ascension.opus", | ||||||
| 			"Asphodelus_Ceui.opus", | 			"Asphodelus_Ceui.opus", | ||||||
| 			"Blind_Alley.opus", | 			"Blind_Alley.opus", | ||||||
|  | 			"Blood_Stain.opus", | ||||||
| 			"Crawler.opus", | 			"Crawler.opus", | ||||||
|  | 			"Halbmond.opus", | ||||||
|  | 			"ed.opus", | ||||||
| 			"op.opus", | 			"op.opus", | ||||||
| 			"theme.opus" | 			"theme.opus" | ||||||
| 		], | 		], | ||||||
| @ -994,7 +998,6 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d = | |||||||
| 			"aiy820000010.opus", | 			"aiy820000010.opus", | ||||||
| 			"aiy820000020.opus", | 			"aiy820000020.opus", | ||||||
| 			"attack.opus", | 			"attack.opus", | ||||||
| 			"attack.opus", |  | ||||||
| 			"bomb.opus", | 			"bomb.opus", | ||||||
| 			"cancel.opus", | 			"cancel.opus", | ||||||
| 			"centerFly.opus", | 			"centerFly.opus", | ||||||
| @ -1019,6 +1022,7 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d = | |||||||
| 		], | 		], | ||||||
| 		"fonts": [ | 		"fonts": [ | ||||||
| 			"HATTEN", | 			"HATTEN", | ||||||
|  | 			"Verdana", | ||||||
| 			"number", | 			"number", | ||||||
| 			"pala", | 			"pala", | ||||||
| 			"simhei" | 			"simhei" | ||||||
| @ -1441,7 +1445,7 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d = | |||||||
| 			}, | 			}, | ||||||
| 			{ | 			{ | ||||||
| 				"type": "function", | 				"type": "function", | ||||||
| 				"function": "function(){\ncore.control.checkBgm()\n}" | 				"function": "function(){\ncore.checkBgm()\n}" | ||||||
| 			}, | 			}, | ||||||
| 			{ | 			{ | ||||||
| 				"type": "if", | 				"type": "if", | ||||||
| @ -1489,6 +1493,10 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d = | |||||||
| 				"type": "setValue", | 				"type": "setValue", | ||||||
| 				"name": "item:fly", | 				"name": "item:fly", | ||||||
| 				"value": "1" | 				"value": "1" | ||||||
|  | 			}, | ||||||
|  | 			{ | ||||||
|  | 				"type": "insert", | ||||||
|  | 				"name": "强制横屏" | ||||||
| 			} | 			} | ||||||
| 		], | 		], | ||||||
| 		"shops": [ | 		"shops": [ | ||||||
|  | |||||||
| @ -1,7 +1,7 @@ | |||||||
| var enemys_fcae963b_31c9_42b4_b48c_bb48d09f3f80 =  | var enemys_fcae963b_31c9_42b4_b48c_bb48d09f3f80 =  | ||||||
| { | { | ||||||
| 	"greenSlime": {"name":"绿头怪","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0}, | 	"greenSlime": {"name":"绿头怪","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"magic":false}, | ||||||
| 	"redSlime": {"name":"红头怪","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[],"value":10}, | 	"redSlime": {"name":"红头怪","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[],"value":10,"magic":false}, | ||||||
| 	"blackSlime": {"name":"青头怪","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0}, | 	"blackSlime": {"name":"青头怪","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0}, | ||||||
| 	"slimelord": {"name":"怪王","hp":100,"atk":120,"def":0,"money":10,"exp":0,"point":0,"special":[1,9]}, | 	"slimelord": {"name":"怪王","hp":100,"atk":120,"def":0,"money":10,"exp":0,"point":0,"special":[1,9]}, | ||||||
| 	"bat": {"name":"小蝙蝠","hp":100,"atk":120,"def":0,"money":2,"exp":0,"point":0,"special":[1]}, | 	"bat": {"name":"小蝙蝠","hp":100,"atk":120,"def":0,"money":2,"exp":0,"point":0,"special":[1]}, | ||||||
|  | |||||||
							
								
								
									
										1436
									
								
								project/events.js
									
									
									
									
									
								
							
							
						
						
									
										1436
									
								
								project/events.js
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @ -26,58 +26,31 @@ main.floors.street01= | |||||||
|                 "direction": "up" |                 "direction": "up" | ||||||
|             } |             } | ||||||
|         ], |         ], | ||||||
|  |         "10,11": [ | ||||||
|  |             { | ||||||
|  |                 "type": "setmusics", | ||||||
|  |                 "bgm": "op.opus" | ||||||
|  |             } | ||||||
|  |         ], | ||||||
|  |         "10,10": [ | ||||||
|  |             { | ||||||
|  |                 "type": "setmusics", | ||||||
|  |                 "bgm": "ed.opus" | ||||||
|  |             }, | ||||||
|  |             { | ||||||
|  |                 "type": "setmusics", | ||||||
|  |                 "bgm": "Asphodelus_Ceui.opus" | ||||||
|  |             } | ||||||
|  |         ], | ||||||
|  |         "10,9": [ | ||||||
|  |             { | ||||||
|  |                 "type": "setmusics" | ||||||
|  |             } | ||||||
|  |         ], | ||||||
|         "6,11": [ |         "6,11": [ | ||||||
|             { |             { | ||||||
|                 "type": "insert", |                 "type": "insert", | ||||||
|                 "name": "chapter04" |                 "name": "chapter01" | ||||||
|             } |  | ||||||
|         ], |  | ||||||
|         "4,11": [ |  | ||||||
|             { |  | ||||||
|                 "type": "animationDrawable", |  | ||||||
|                 "allFarme": 300, |  | ||||||
|                 "color": [ |  | ||||||
|                     0, |  | ||||||
|                     0, |  | ||||||
|                     0 |  | ||||||
|                 ], |  | ||||||
|                 "imageList": [ |  | ||||||
|                     { |  | ||||||
|                         "image": "bg_1511.webp", |  | ||||||
|                         "beforefarme": 50, |  | ||||||
|                         "globalAlpha": 0, |  | ||||||
|                         "afterfarme": 250, |  | ||||||
|                         "aglobalAlpha": 100 |  | ||||||
|                     }, |  | ||||||
|                     { |  | ||||||
|                         "image": "eve_010304.webp", |  | ||||||
|                         "beforefarme": 70, |  | ||||||
|                         "globalAlpha": 0, |  | ||||||
|                         "afterfarme": 170, |  | ||||||
|                         "aglobalAlpha": 100, |  | ||||||
|                         "ax": 0, |  | ||||||
|                         "ay": 0 |  | ||||||
|                     }, |  | ||||||
|                     { |  | ||||||
|                         "image": "eve_010304.webp", |  | ||||||
|                         "beforefarme": 171, |  | ||||||
|                         "globalAlpha": 100, |  | ||||||
|                         "afterfarme": 270, |  | ||||||
|                         "aglobalAlpha": 100, |  | ||||||
|                         "ax": 800, |  | ||||||
|                         "ay": 0 |  | ||||||
|                     } |  | ||||||
|                 ], |  | ||||||
|                 "soundList": [ |  | ||||||
|                     { |  | ||||||
|                         "sound": "", |  | ||||||
|                         "startfarme": 0, |  | ||||||
|                         "stopbefore": false |  | ||||||
|                     } |  | ||||||
|                 ] |  | ||||||
|             }, |  | ||||||
|             { |  | ||||||
|                 "type": "op" |  | ||||||
|             } |             } | ||||||
|         ] |         ] | ||||||
|     }, |     }, | ||||||
|  | |||||||
							
								
								
									
										
											BIN
										
									
								
								project/fonts/Verdana.ttf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								project/fonts/Verdana.ttf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| @ -94,73 +94,73 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = | |||||||
| 			}) | 			}) | ||||||
| 		}, | 		}, | ||||||
|         "changingFloor": function (floorId, heroLoc) { |         "changingFloor": function (floorId, heroLoc) { | ||||||
| 			// 正在切换楼层过程中执行的操作;此函数的执行时间是“屏幕完全变黑“的那一刻
 | 	// 正在切换楼层过程中执行的操作;此函数的执行时间是“屏幕完全变黑“的那一刻
 | ||||||
| 			// floorId为要切换到的楼层ID;heroLoc表示勇士切换到的位置
 | 	// floorId为要切换到的楼层ID;heroLoc表示勇士切换到的位置
 | ||||||
| 
 | 
 | ||||||
| 			// ---------- 此时还没有进行切换,当前floorId还是原来的 ---------- //
 | 	// ---------- 此时还没有进行切换,当前floorId还是原来的 ---------- //
 | ||||||
| 			var currentId = core.status.floorId || null; // 获得当前的floorId,可能为null
 | 	var currentId = core.status.floorId || null; // 获得当前的floorId,可能为null
 | ||||||
| 			var fromLoad = core.hasFlag('__fromLoad__'); // 是否是读档造成的切换
 | 	var fromLoad = core.hasFlag('__fromLoad__'); // 是否是读档造成的切换
 | ||||||
| 			var isFlying = core.hasFlag('__isFlying__'); // 是否是楼传造成的切换
 | 	var isFlying = core.hasFlag('__isFlying__'); // 是否是楼传造成的切换
 | ||||||
| 			if (!fromLoad && !(isFlying && currentId == floorId)) { | 	if (!fromLoad && !(isFlying && currentId == floorId)) { | ||||||
| 				if (!core.hasFlag("__leaveLoc__")) core.setFlag("__leaveLoc__", {}); | 		if (!core.hasFlag("__leaveLoc__")) core.setFlag("__leaveLoc__", {}); | ||||||
| 				if (currentId != null) core.getFlag("__leaveLoc__")[currentId] = core.clone(core.status.hero.loc); | 		if (currentId != null) core.getFlag("__leaveLoc__")[currentId] = core.clone(core.status.hero.loc); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	// 可以对currentId进行判定,比如删除某些自定义图层等
 | ||||||
|  | 	// if (currentId == 'MT0') {
 | ||||||
|  | 	//     core.deleteAllCanvas();
 | ||||||
|  | 	// }
 | ||||||
|  | 
 | ||||||
|  | 	// 根据分区信息自动砍层与恢复
 | ||||||
|  | 	if (core.autoRemoveMaps) core.autoRemoveMaps(floorId); | ||||||
|  | 
 | ||||||
|  | 	// 重置画布尺寸
 | ||||||
|  | 	core.maps.resizeMap(floorId); | ||||||
|  | 	// 设置勇士的位置
 | ||||||
|  | 	heroLoc.direction = core.turnDirection(heroLoc.direction); | ||||||
|  | 	core.status.hero.loc = heroLoc; | ||||||
|  | 	// 检查重生怪并重置
 | ||||||
|  | 	if (!fromLoad) { | ||||||
|  | 		core.extractBlocks(floorId); | ||||||
|  | 		core.status.maps[floorId].blocks.forEach(function (block) { | ||||||
|  | 			if (block.disable && core.enemys.hasSpecial(block.event.id, 23)) { | ||||||
|  | 				block.disable = false; | ||||||
|  | 				core.setMapBlockDisabled(floorId, block.x, block.y, false); | ||||||
|  | 				core.maps._updateMapArray(floorId, block.x, block.y); | ||||||
| 			} | 			} | ||||||
|  | 		}); | ||||||
|  | 		core.control.gatherFollowers(); | ||||||
|  | 	} | ||||||
| 
 | 
 | ||||||
| 			// 可以对currentId进行判定,比如删除某些自定义图层等
 | 	// ---------- 重绘新地图;这一步将会设置core.status.floorId ---------- //
 | ||||||
| 			// if (currentId == 'MT0') {
 | 	core.drawMap(floorId); | ||||||
| 			//     core.deleteAllCanvas();
 |  | ||||||
| 			// }
 |  | ||||||
| 
 | 
 | ||||||
| 			// 根据分区信息自动砍层与恢复
 | 	// 切换楼层BGM
 | ||||||
| 			if (core.autoRemoveMaps) core.autoRemoveMaps(floorId); | 	if (core.status.maps[floorId].bgm) { | ||||||
|  | 		var bgm = core.status.maps[floorId].bgm; | ||||||
|  | 		if (bgm instanceof Array) bgm = bgm[Math.floor(Math.random() * bgm.length)]; // 多个bgm则随机播放一个
 | ||||||
|  | 		if (!core.hasFlag("__bgm__")) core.playBgm(bgm); | ||||||
|  | 	} else if (fromLoad && !core.hasFlag("__bgm__")) { | ||||||
|  | 		core.pauseBgm(); | ||||||
|  | 	} | ||||||
|  | 	// 更改画面色调
 | ||||||
|  | 	var color = core.getFlag('__color__', null); | ||||||
|  | 	if (!color && core.status.maps[floorId].color) | ||||||
|  | 		color = core.status.maps[floorId].color; | ||||||
|  | 	core.clearMap('curtain'); | ||||||
|  | 	core.status.curtainColor = color; | ||||||
|  | 	if (color) core.fillRect('curtain', 0, 0, core._PX_ || core.__PIXELS__, core._PY_ || core.__PIXELS__, core.arrayToRGBA(color)); | ||||||
|  | 	// 更改天气
 | ||||||
|  | 	var weather = core.getFlag('__weather__', null); | ||||||
|  | 	if (!weather && core.status.maps[floorId].weather) | ||||||
|  | 		weather = core.status.maps[floorId].weather; | ||||||
|  | 	if (weather) | ||||||
|  | 		core.setWeather(weather[0], weather[1]); | ||||||
|  | 	else core.setWeather(); | ||||||
| 
 | 
 | ||||||
| 			// 重置画布尺寸
 | 	// ...可以新增一些其他内容,比如创建个画布在右上角显示什么内容等等
 | ||||||
| 			core.maps.resizeMap(floorId); |  | ||||||
| 			// 设置勇士的位置
 |  | ||||||
| 			heroLoc.direction = core.turnDirection(heroLoc.direction); |  | ||||||
| 			core.status.hero.loc = heroLoc; |  | ||||||
| 			// 检查重生怪并重置
 |  | ||||||
| 			if (!fromLoad) { |  | ||||||
| 				core.extractBlocks(floorId); |  | ||||||
| 				core.status.maps[floorId].blocks.forEach(function (block) { |  | ||||||
| 					if (block.disable && core.enemys.hasSpecial(block.event.id, 23)) { |  | ||||||
| 						block.disable = false; |  | ||||||
| 						core.setMapBlockDisabled(floorId, block.x, block.y, false); |  | ||||||
| 						core.maps._updateMapArray(floorId, block.x, block.y); |  | ||||||
| 					} |  | ||||||
| 				}); |  | ||||||
| 				core.control.gatherFollowers(); |  | ||||||
| 			} |  | ||||||
| 
 | 
 | ||||||
| 			// ---------- 重绘新地图;这一步将会设置core.status.floorId ---------- //
 | }, | ||||||
| 			core.drawMap(floorId); |  | ||||||
| 
 |  | ||||||
| 			// 切换楼层BGM
 |  | ||||||
| 			if (core.status.maps[floorId].bgm) { |  | ||||||
| 				var bgm = core.status.maps[floorId].bgm; |  | ||||||
| 				if (bgm instanceof Array) bgm = bgm[Math.floor(Math.random() * bgm.length)]; // 多个bgm则随机播放一个
 |  | ||||||
| 				if (!core.hasFlag("__bgm__")) core.playBgm(bgm); |  | ||||||
| 			} else if (fromLoad && !core.hasFlag("__bgm__")) { |  | ||||||
| 				core.pauseBgm(); |  | ||||||
| 			} |  | ||||||
| 			// 更改画面色调
 |  | ||||||
| 			var color = core.getFlag('__color__', null); |  | ||||||
| 			if (!color && core.status.maps[floorId].color) |  | ||||||
| 				color = core.status.maps[floorId].color; |  | ||||||
| 			core.clearMap('curtain'); |  | ||||||
| 			core.status.curtainColor = color; |  | ||||||
| 			if (color) core.fillRect('curtain', 0, 0, core._PX_ || core.__PIXELS__, core._PY_ || core.__PIXELS__, core.arrayToRGBA(color)); |  | ||||||
| 			// 更改天气
 |  | ||||||
| 			var weather = core.getFlag('__weather__', null); |  | ||||||
| 			if (!weather && core.status.maps[floorId].weather) |  | ||||||
| 				weather = core.status.maps[floorId].weather; |  | ||||||
| 			if (weather) |  | ||||||
| 				core.setWeather(weather[0], weather[1]); |  | ||||||
| 			else core.setWeather(); |  | ||||||
| 
 |  | ||||||
| 			// ...可以新增一些其他内容,比如创建个画布在右上角显示什么内容等等
 |  | ||||||
| 
 |  | ||||||
| 		}, |  | ||||||
|         "afterChangeFloor": function (floorId) { |         "afterChangeFloor": function (floorId) { | ||||||
| 	// 转换楼层结束的事件;此函数会在整个楼层切换完全结束后再执行
 | 	// 转换楼层结束的事件;此函数会在整个楼层切换完全结束后再执行
 | ||||||
| 	// floorId是切换到的楼层
 | 	// floorId是切换到的楼层
 | ||||||
| @ -531,15 +531,21 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = | |||||||
| 	var hero_hp = core.getRealStatusOrDefault(hero, 'hp'), | 	var hero_hp = core.getRealStatusOrDefault(hero, 'hp'), | ||||||
| 		hero_atk = core.getRealStatusOrDefault(hero, 'atk'), | 		hero_atk = core.getRealStatusOrDefault(hero, 'atk'), | ||||||
| 		hero_def = core.getRealStatusOrDefault(hero, 'def'), | 		hero_def = core.getRealStatusOrDefault(hero, 'def'), | ||||||
| 		hero_mdef = core.getRealStatusOrDefault(hero, 'mdef'); | 		hero_mdef = core.getRealStatusOrDefault(hero, 'mdef'), | ||||||
|  | 		hero_speed = core.getRealStatusOrDefault(hero, 'speed'); | ||||||
| 
 | 
 | ||||||
| 	var mon_hp = core.getEnemyValue(enemy, 'hp', x, y, floorId), | 	var mon_hp = core.getEnemyValue(enemy, 'hp', x, y, floorId), | ||||||
| 		mon_atk = core.getEnemyValue(enemy, 'atk', x, y, floorId), | 		mon_atk = core.getEnemyValue(enemy, 'atk', x, y, floorId), | ||||||
| 		mon_def = core.getEnemyValue(enemy, 'def', x, y, floorId), | 		mon_def = core.getEnemyValue(enemy, 'def', x, y, floorId), | ||||||
|  | 		mon_mdef = core.getEnemyValue(enemy, 'mdef', x, y, floorId), | ||||||
|  | 		mon_speed = core.getEnemyValue(enemy, 'speed', x, y, floorId), | ||||||
| 		mon_special = core.getEnemyValue(enemy, 'special', x, y, floorId); | 		mon_special = core.getEnemyValue(enemy, 'special', x, y, floorId); | ||||||
| 	var mon_money = core.getEnemyValue(enemy, 'money', x, y, floorId), | 	var mon_money = core.getEnemyValue(enemy, 'money', x, y, floorId), | ||||||
| 		mon_exp = core.getEnemyValue(enemy, 'exp', x, y, floorId), | 		mon_exp = core.getEnemyValue(enemy, 'exp', x, y, floorId), | ||||||
| 		mon_point = core.getEnemyValue(enemy, 'point', x, y, floorId); | 		mon_point = core.getEnemyValue(enemy, 'point', x, y, floorId); | ||||||
|  | 	var mon_barrier = 0, | ||||||
|  | 		mon_absorb_damage = 0, | ||||||
|  | 		mon_magic = core.getEnemyValue(enemy, 'magic', x, y, floorId); | ||||||
| 	// 模仿
 | 	// 模仿
 | ||||||
| 	if (core.hasSpecial(mon_special, 10)) { | 	if (core.hasSpecial(mon_special, 10)) { | ||||||
| 		mon_atk = hero_atk; | 		mon_atk = hero_atk; | ||||||
| @ -633,10 +639,15 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = | |||||||
| 		"hp": Math.floor(mon_hp), | 		"hp": Math.floor(mon_hp), | ||||||
| 		"atk": Math.floor(mon_atk), | 		"atk": Math.floor(mon_atk), | ||||||
| 		"def": Math.floor(mon_def), | 		"def": Math.floor(mon_def), | ||||||
|  | 		"mdef": Math.floor(mon_mdef), | ||||||
|  | 		"speed": Math.floor(mon_speed), | ||||||
|  | 		"barrier": Math.floor(mon_barrier), | ||||||
|  | 		"absorb": Math.floor(mon_absorb_damage), | ||||||
| 		"money": Math.floor(mon_money), | 		"money": Math.floor(mon_money), | ||||||
| 		"exp": Math.floor(mon_exp), | 		"exp": Math.floor(mon_exp), | ||||||
| 		"point": Math.floor(mon_point), | 		"point": Math.floor(mon_point), | ||||||
| 		"special": mon_special, | 		"special": mon_special, | ||||||
|  | 		"magic": mon_magic, | ||||||
| 		"guards": guards, // 返回支援情况
 | 		"guards": guards, // 返回支援情况
 | ||||||
| 	}; | 	}; | ||||||
| }, | }, | ||||||
| @ -655,15 +666,13 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = | |||||||
| 		hero_atk = core.getRealStatusOrDefault(hero, 'atk'), | 		hero_atk = core.getRealStatusOrDefault(hero, 'atk'), | ||||||
| 		hero_def = core.getRealStatusOrDefault(hero, 'def'), | 		hero_def = core.getRealStatusOrDefault(hero, 'def'), | ||||||
| 		hero_mdef = core.getRealStatusOrDefault(hero, 'mdef'), | 		hero_mdef = core.getRealStatusOrDefault(hero, 'mdef'), | ||||||
|  | 		hero_speed = core.getRealStatusOrDefault(hero, 'speed'), | ||||||
|  | 		hero_magic = core.getRealStatusOrDefault(hero, 'magic'), | ||||||
| 		origin_hero_hp = core.getStatusOrDefault(hero, 'hp'), | 		origin_hero_hp = core.getStatusOrDefault(hero, 'hp'), | ||||||
| 		origin_hero_atk = core.getStatusOrDefault(hero, 'atk'), | 		origin_hero_atk = core.getStatusOrDefault(hero, 'atk'), | ||||||
| 		origin_hero_def = core.getStatusOrDefault(hero, 'def'); | 		origin_hero_def = core.getStatusOrDefault(hero, 'def'); | ||||||
| 
 | 
 | ||||||
| 	// 勇士的负属性都按0计算
 | 
 | ||||||
| 	hero_hp = Math.max(0, hero_hp); |  | ||||||
| 	hero_atk = Math.max(0, hero_atk); |  | ||||||
| 	hero_def = Math.max(0, hero_def); |  | ||||||
| 	hero_mdef = Math.max(0, hero_mdef); |  | ||||||
| 
 | 
 | ||||||
| 	// 怪物的各项数据
 | 	// 怪物的各项数据
 | ||||||
| 	// 对坚固模仿等处理扔到了脚本编辑-getEnemyInfo之中
 | 	// 对坚固模仿等处理扔到了脚本编辑-getEnemyInfo之中
 | ||||||
| @ -671,23 +680,34 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = | |||||||
| 	var mon_hp = enemyInfo.hp, | 	var mon_hp = enemyInfo.hp, | ||||||
| 		mon_atk = enemyInfo.atk, | 		mon_atk = enemyInfo.atk, | ||||||
| 		mon_def = enemyInfo.def, | 		mon_def = enemyInfo.def, | ||||||
| 		mon_special = enemyInfo.special; | 		mon_mdef = enemyInfo.mdef, | ||||||
|  | 		mon_speed = enemyInfo.speed, | ||||||
|  | 		mon_special = enemyInfo.special, | ||||||
|  | 		mon_absorb_damage = enemyInfo.absorb, | ||||||
|  | 		mon_barrier = enemyInfo.barrier; | ||||||
| 
 | 
 | ||||||
|  | 	//---第一部分:静态属性修正---
 | ||||||
|  | 	//此处写入静态影响勇士属性的勇士或怪物技能(静态影响怪物属性的技能于getEnemyInfo中写入)
 | ||||||
| 	// 技能的处理
 | 	// 技能的处理
 | ||||||
| 	if (core.getFlag('skill', 0) == 1) { // 开启了技能1:二倍斩
 | 	if (core.getFlag('skill', 0) == 1) { // 开启了技能1:二倍斩
 | ||||||
| 		hero_atk *= 2; // 计算时攻击力翻倍	
 | 		hero_atk *= 2; // 计算时攻击力翻倍	
 | ||||||
| 	} | 	} | ||||||
|  | 	//勇士属性取整
 | ||||||
|  | 	hero_atk = Math.max(0, Math.floor(hero_atk)); | ||||||
|  | 	hero_def = Math.max(0, Math.floor(hero_def)); | ||||||
|  | 	hero_mdef = Math.max(0, Math.floor(hero_mdef)); | ||||||
|  | 	hero_speed = Math.max(0, Math.floor(hero_speed)); | ||||||
| 
 | 
 | ||||||
| 	// 如果是无敌属性,且勇士未持有十字架
 | 	// 如果是无敌属性,且勇士未持有十字架
 | ||||||
| 	if (core.hasSpecial(mon_special, 20) && !core.hasItem("cross")) | 	if (core.hasSpecial(mon_special, 20) && !core.hasItem("cross")) | ||||||
| 		return null; // 不可战斗
 | 		return null; // 不可战斗
 | ||||||
| 
 | 
 | ||||||
| 	// 战前造成的额外伤害(可被护盾抵消)
 | 	// 战前造成的额外伤害(可被护盾抵消)
 | ||||||
| 	var init_damage = 0; | 	let init_damage = 0; | ||||||
| 
 | 
 | ||||||
| 	// 吸血
 | 	// 吸血
 | ||||||
| 	if (core.hasSpecial(mon_special, 11)) { | 	if (core.hasSpecial(mon_special, 11)) { | ||||||
| 		var vampire_damage = hero_hp * enemy.vampire; | 		let vampire_damage = hero_hp * enemy.vampire; | ||||||
| 
 | 
 | ||||||
| 		// 如果有神圣盾免疫吸血等可以在这里写
 | 		// 如果有神圣盾免疫吸血等可以在这里写
 | ||||||
| 		// 也可以用hasItem和hasEquip来判定装备
 | 		// 也可以用hasItem和hasEquip来判定装备
 | ||||||
| @ -701,17 +721,60 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = | |||||||
| 		init_damage += vampire_damage; | 		init_damage += vampire_damage; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | 	//——第二部分:变量定义和初始赋值——
 | ||||||
| 	// 每回合怪物对勇士造成的战斗伤害
 | 	// 每回合怪物对勇士造成的战斗伤害
 | ||||||
| 	var per_damage = mon_atk - hero_def; | 	let per_damage = Math.max(mon_atk - hero_def, 0); | ||||||
|  | 	if (enemyInfo.magic) per_damage = Math.max(mon_atk - hero_mdef, 0); | ||||||
| 
 | 
 | ||||||
| 	// 战斗伤害不能为负值
 | 	//
 | ||||||
| 	if (per_damage < 0) per_damage = 0; | 	let hero_per_damage = Math.max(hero_atk - mon_def, 0); | ||||||
|  | 	if (hero_magic) hero_per_damage = Math.max(hero_atk - mon_mdef, 0); | ||||||
| 
 | 
 | ||||||
|  | 	let damage = 0, | ||||||
|  | 		hero_turn = 0, | ||||||
|  | 		mon_turn = 0; | ||||||
|  | 	//---第三部分:递归开始---
 | ||||||
|  | 	let length = hero_speed * mon_speed; | ||||||
|  | 
 | ||||||
|  | 	for (let now_mon_hp = mon_hp, last_mon_hp = mon_hp, mon_length = length, hero_length = length, mon_time = 0, hero_time = 0; now_mon_hp > 0;) { //勇士和怪物的长度
 | ||||||
|  | 		mon_time = mon_length / mon_speed; | ||||||
|  | 		hero_time = hero_length / hero_speed; | ||||||
|  | 		if ((mon_time < hero_time) || ((mon_time = hero_time) && (mon_speed > hero_speed))) { //怪物攻击的回合
 | ||||||
|  | 			//这里计算怪物攻击时发生的各种变化
 | ||||||
|  | 
 | ||||||
|  | 			//伤害与回合增加
 | ||||||
|  | 			damage += per_damage; | ||||||
|  | 			if (core.hasSpecial(mon_special, 6)) { | ||||||
|  | 				mon_turn += enemy.n; | ||||||
|  | 			} else { | ||||||
|  | 				mon_turn += 1; | ||||||
|  | 			} | ||||||
|  | 			//重新为长度赋值
 | ||||||
|  | 			mon_length = length; | ||||||
|  | 			hero_length = hero_length - mon_time * hero_speed; | ||||||
|  | 		} else { //勇士攻击的回合
 | ||||||
|  | 			// 这里计算勇士攻击时发生的各种变化
 | ||||||
|  | 
 | ||||||
|  | 			// 伤害与回合数增加
 | ||||||
|  | 			now_mon_hp -= hero_per_damage; | ||||||
|  | 			hero_turn += 1; //勇士回合+1,如果有勇士每回合多次攻击的情况,在这里写判断
 | ||||||
|  | 			// 无法战斗计算
 | ||||||
|  | 			if (hero_turn % 50 == 0) { | ||||||
|  | 				if (now_mon_hp >= last_mon_hp) return null; | ||||||
|  | 				last_mon_hp = now_mon_hp; | ||||||
|  | 			} | ||||||
|  | 			//重新为长度赋值
 | ||||||
|  | 			hero_length = length; | ||||||
|  | 			mon_length = mon_length - hero_time * mon_speed; | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	//下面这些还没修改
 | ||||||
| 	// 连击
 | 	// 连击
 | ||||||
| 	if (core.hasSpecial(mon_special, 6)) per_damage *= (enemy.n || 2); | 	if (core.hasSpecial(mon_special, 6)) per_damage *= (enemy.n || 2); | ||||||
| 
 | 
 | ||||||
| 	// 每回合的反击伤害;反击是按照勇士的攻击次数来计算回合
 | 	// 每回合的反击伤害;反击是按照勇士的攻击次数来计算回合
 | ||||||
| 	var counterDamage = 0; | 	let counterDamage = 0; | ||||||
| 	if (core.hasSpecial(mon_special, 8)) | 	if (core.hasSpecial(mon_special, 8)) | ||||||
| 		counterDamage += Math.floor((enemy.counterAttack || core.values.counterAttack) * hero_atk); | 		counterDamage += Math.floor((enemy.counterAttack || core.values.counterAttack) * hero_atk); | ||||||
| 
 | 
 | ||||||
| @ -725,19 +788,14 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = | |||||||
| 	// 净化
 | 	// 净化
 | ||||||
| 	if (core.hasSpecial(mon_special, 9)) | 	if (core.hasSpecial(mon_special, 9)) | ||||||
| 		init_damage += Math.floor((enemy.purify || core.values.purify) * hero_mdef); | 		init_damage += Math.floor((enemy.purify || core.values.purify) * hero_mdef); | ||||||
| 
 | 	//上面这些还没修改
 | ||||||
| 	// 勇士每回合对怪物造成的伤害
 | 	//勇士护盾计算
 | ||||||
| 	var hero_per_damage = Math.max(hero_atk - mon_def, 0); | 	let barrier = hero_mdef; | ||||||
| 
 | 	if (enemyInfo.magic) barrier = hero_def; | ||||||
| 	// 如果没有破防,则不可战斗
 |  | ||||||
| 	if (hero_per_damage <= 0) return null; |  | ||||||
| 
 |  | ||||||
| 	// 勇士的攻击回合数;为怪物生命除以每回合伤害向上取整
 |  | ||||||
| 	var turn = Math.ceil(mon_hp / hero_per_damage); |  | ||||||
| 
 | 
 | ||||||
| 	// ------ 支援 ----- //
 | 	// ------ 支援 ----- //
 | ||||||
| 	// 这个递归最好想明白为什么,flag:__extraTurn__是怎么用的
 | 	// 这个递归最好想明白为什么,flag:__extraTurn__是怎么用的
 | ||||||
| 	var guards = core.getFlag("__guards__" + x + "_" + y, enemyInfo.guards); | 	/*var guards = core.getFlag("__guards__" + x + "_" + y, enemyInfo.guards); | ||||||
| 	var guard_before_current_enemy = false; // ------ 支援怪是先打(true)还是后打(false)?
 | 	var guard_before_current_enemy = false; // ------ 支援怪是先打(true)还是后打(false)?
 | ||||||
| 	turn += core.getFlag("__extraTurn__", 0); | 	turn += core.getFlag("__extraTurn__", 0); | ||||||
| 	if (guards.length > 0) { | 	if (guards.length > 0) { | ||||||
| @ -764,13 +822,13 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = | |||||||
| 			turn += core.getFlag("__extraTurn__", 0); | 			turn += core.getFlag("__extraTurn__", 0); | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 	core.removeFlag("__extraTurn__"); | 	core.removeFlag("__extraTurn__");*/ | ||||||
| 	// ------ 支援END ------ //
 | 	// ------ 支援END ------ //
 | ||||||
| 
 | 
 | ||||||
| 	// 最终伤害:初始伤害 + 怪物对勇士造成的伤害 + 反击伤害
 | 	// 最终伤害:初始伤害 + 怪物对勇士造成的伤害 + 反击伤害
 | ||||||
| 	var damage = init_damage + (turn - 1) * per_damage + turn * counterDamage; | 	damage += init_damage + hero_turn * counterDamage; | ||||||
| 	// 再扣去护盾
 | 	// 再扣去护盾
 | ||||||
| 	damage -= hero_mdef; | 	damage -= barrier; | ||||||
| 
 | 
 | ||||||
| 	// 检查是否允许负伤
 | 	// 检查是否允许负伤
 | ||||||
| 	if (!core.flags.enableNegativeDamage) | 	if (!core.flags.enableNegativeDamage) | ||||||
| @ -788,12 +846,18 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = | |||||||
| 		"mon_hp": Math.floor(mon_hp), | 		"mon_hp": Math.floor(mon_hp), | ||||||
| 		"mon_atk": Math.floor(mon_atk), | 		"mon_atk": Math.floor(mon_atk), | ||||||
| 		"mon_def": Math.floor(mon_def), | 		"mon_def": Math.floor(mon_def), | ||||||
|  | 		"mon_mdef": Math.floor(mon_mdef), | ||||||
| 		"init_damage": Math.floor(init_damage), | 		"init_damage": Math.floor(init_damage), | ||||||
| 		"per_damage": Math.floor(per_damage), | 		"per_damage": Math.floor(per_damage), | ||||||
| 		"hero_per_damage": Math.floor(hero_per_damage), | 		"hero_per_damage": Math.floor(hero_per_damage), | ||||||
| 		"turn": Math.floor(turn), | 		"turn": Math.floor(hero_turn), | ||||||
|  | 		"mon_turn": Math.floor(mon_turn), | ||||||
| 		"damage": Math.floor(damage) | 		"damage": Math.floor(damage) | ||||||
| 	}; | 	}; | ||||||
|  | 	/*TODO:怪物手册的修改(需要修改这里return的内容以及一些战后判断) | ||||||
|  | 	1. 显示怪物是魔攻还是物攻(在怪物名字上做颜色变化,物攻是黄色,魔攻是蓝色) | ||||||
|  | 	2. 一防减伤是物防还是魔防(由怪物是物攻还是魔攻来转换) | ||||||
|  | 	3. 特殊战斗的怪物,在怪物手册里“伤害”写为“特殊战”*/ | ||||||
| } | } | ||||||
|     }, |     }, | ||||||
|     "actions": { |     "actions": { | ||||||
| @ -824,7 +888,9 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = | |||||||
| 		core.openBook(true); | 		core.openBook(true); | ||||||
| 		break; | 		break; | ||||||
| 	case 71: // G:使用楼传器
 | 	case 71: // G:使用楼传器
 | ||||||
| 		core.ui._drawViewMaps(core.floorIds.indexOf(core.status.floorId)); | 		flags.canMoveFloor = core.canMoveFloor() | ||||||
|  | 		if (core.isPlaying()) core.ui._drawViewMaps(core.floorIds.indexOf(core.status.floorId)); | ||||||
|  | 		core.status.route.push("key:71"); | ||||||
| 		break; | 		break; | ||||||
| 	case 65: // A:读取自动存档(回退)
 | 	case 65: // A:读取自动存档(回退)
 | ||||||
| 		core.doSL("autoSave", "load"); | 		core.doSL("autoSave", "load"); | ||||||
|  | |||||||
										
											Binary file not shown.
										
									
								
							| Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 1.3 KiB | 
| @ -332,7 +332,7 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a = | |||||||
| 		"text": "可以自由往来去过的楼层", | 		"text": "可以自由往来去过的楼层", | ||||||
| 		"hideInReplay": true, | 		"hideInReplay": true, | ||||||
| 		"hideInToolbox": true, | 		"hideInToolbox": true, | ||||||
| 		"useItemEffect": "//core.ui.drawFly(core.floorIds.indexOf(core.status.floorId));\ncore.ui._drawViewMaps(core.floorIds.indexOf(core.status.floorId));", | 		"useItemEffect": "//core.ui.drawFly(core.floorIds.indexOf(core.status.floorId));\nflags.canMoveFloor = core.canMoveFloor()\nif (core.isPlaying()) core.ui._drawViewMaps(core.floorIds.indexOf(core.status.floorId));", | ||||||
| 		"canUseItemEffect": "(function () {\n\tif (core.flags.flyNearStair && !core.nearStair() && !core.canMoveFloor())\n\t\treturn false;\n\treturn core.status.maps[core.status.floorId].canFlyFrom;\n})();" | 		"canUseItemEffect": "(function () {\n\tif (core.flags.flyNearStair && !core.nearStair() && !core.canMoveFloor())\n\t\treturn false;\n\treturn core.status.maps[core.status.floorId].canFlyFrom;\n})();" | ||||||
| 	}, | 	}, | ||||||
| 	"coin": { | 	"coin": { | ||||||
|  | |||||||
							
								
								
									
										9932
									
								
								project/plugins.js
									
									
									
									
									
								
							
							
						
						
									
										9932
									
								
								project/plugins.js
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										699
									
								
								styles.css
									
									
									
									
									
								
							
							
						
						
									
										699
									
								
								styles.css
									
									
									
									
									
								
							| @ -1,534 +1,585 @@ | |||||||
| html, body { | html, | ||||||
|     margin: 0; | body { | ||||||
|     padding: 0; |   margin: 0; | ||||||
|     width: 100%; |   padding: 0; | ||||||
|     height: 100%; |   width: 100%; | ||||||
|     background-color: #000; |   height: 100%; | ||||||
|     overflow: hidden; |   background-color: #000; | ||||||
|  |   overflow: hidden; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #gameGroup { | #gameGroup { | ||||||
|     position: absolute; |   position: absolute; | ||||||
|     box-sizing: border-box; |   box-sizing: border-box; | ||||||
|     -moz-box-sizing: border-box; |   -moz-box-sizing: border-box; | ||||||
|     -webkit-box-sizing: border-box; |   -webkit-box-sizing: border-box; | ||||||
|     background-color: #000; |   background-color: #000; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #mainTips { | #mainTips { | ||||||
|     color: #fff; |   color: #fff; | ||||||
|     font-size: 0.8em; |   font-size: 0.8em; | ||||||
|     position: fixed; |   position: fixed; | ||||||
|     top: 10px; |   top: 10px; | ||||||
|     left: 10px; |   left: 10px; | ||||||
|     z-index: 370; |   z-index: 370; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #musicBtn { | #musicBtn { | ||||||
|     position: fixed; |   position: fixed; | ||||||
|     bottom: 3px; |   bottom: 3px; | ||||||
|     right: 3px; |   right: 3px; | ||||||
|     cursor: pointer; |   cursor: pointer; | ||||||
|     z-index: 400; |   z-index: 400; | ||||||
|     display: none; |   display: none; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #enlargeBtn { | #enlargeBtn { | ||||||
|     position: fixed; |   position: fixed; | ||||||
|     bottom: 3px; |   bottom: 3px; | ||||||
|     right: 34px; |   right: 34px; | ||||||
|     cursor: pointer; |   cursor: pointer; | ||||||
|     z-index: 400; |   z-index: 400; | ||||||
|     display: none; |   display: none; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #startPanel { | #startPanel { | ||||||
|     width: 100%; |   width: 100%; | ||||||
|     height: 100%; |   height: 100%; | ||||||
|     position: absolute; |   position: absolute; | ||||||
|     top: 0; |   top: 0; | ||||||
|     left: 0; |   left: 0; | ||||||
|     background-color: #fff; |   background-color: #fff; | ||||||
|     overflow: hidden; |   overflow: hidden; | ||||||
|     z-index: 300; |   z-index: 300; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #startTop { | #startTop { | ||||||
|     width: 100%; |   width: 100%; | ||||||
|     height: 100%; |   height: 100%; | ||||||
|     position: absolute; |   position: absolute; | ||||||
|     top: 0; |   top: 0; | ||||||
|     left: 0; |   left: 0; | ||||||
|     background-color: #000; |   background-color: #000; | ||||||
|     z-index: 350; |   z-index: 350; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #startTopProgressBar { | #startTopProgressBar { | ||||||
|     width: 90%; |   width: 90%; | ||||||
|     height: 5%; |   height: 5%; | ||||||
|     margin: 0 5%; |   margin: 0 5%; | ||||||
|     position: absolute; |   position: absolute; | ||||||
|     top: 5%; |   top: 5%; | ||||||
|     background-color: #fff; |   background-color: #fff; | ||||||
|     z-index: 15; |   z-index: 15; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #startTopProgress { | #startTopProgress { | ||||||
|     width: 0%; |   width: 0%; | ||||||
|     height: 100%; |   height: 100%; | ||||||
|     background-color: #666; |   background-color: #666; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #startTopLoadTips { | #startTopLoadTips { | ||||||
|     color: #fff; |   color: #fff; | ||||||
|     font-size: 0.6em; |   font-size: 0.6em; | ||||||
|     position: absolute; |   position: absolute; | ||||||
|     top: 10%; |   top: 10%; | ||||||
|     left: 5%; |   left: 5%; | ||||||
|     z-index: 15; |   z-index: 15; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #startTopHint { | #startTopHint { | ||||||
|     color: #66CCFF; |   color: #66ccff; | ||||||
|     position: absolute; |   position: absolute; | ||||||
|     bottom: 0; |   bottom: 0; | ||||||
|     left: 5%; |   left: 5%; | ||||||
|     z-index: 15; |   z-index: 15; | ||||||
|     font-size: 1.1em; |   font-size: 1.1em; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #startBackground { | #startBackground { | ||||||
|     position:absolute; |   position: absolute; | ||||||
|     top:50%; |   top: 50%; | ||||||
|     left:50%; |   left: 50%; | ||||||
|     height: 100%; |   height: 100%; | ||||||
|     width: 100%; |   width: 100%; | ||||||
|     transform:translate(-50%,-50%); |   transform: translate(-50%, -50%); | ||||||
|     z-index: 260; |   z-index: 260; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #startLogo { | #startLogo { | ||||||
|     user-select: none; |   user-select: none; | ||||||
|     position: absolute; |   position: absolute; | ||||||
|     z-index: 290; |   z-index: 290; | ||||||
|     left: 0; |   left: 0; | ||||||
|     right: 0; |   right: 0; | ||||||
|     margin-left: auto; |   margin-left: auto; | ||||||
|     margin-right: auto; |   margin-right: auto; | ||||||
|     margin-top: 8%; |   margin-top: 8%; | ||||||
|     max-width: 100%; |   max-width: 100%; | ||||||
|     text-align: center; |   text-align: center; | ||||||
|     font: bold 0em STXingkai; |   font: bold 0em STXingkai; | ||||||
| 	color: #000000; |   color: #000000; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #startTitle { | #startTitle { | ||||||
|     user-select: none; |   user-select: none; | ||||||
|     position: absolute; |   position: absolute; | ||||||
|     z-index: 280; |   z-index: 280; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #startButtonGroup { | #startButtonGroup { | ||||||
|     width: auto; |   width: auto; | ||||||
|     position: absolute; |   position: absolute; | ||||||
|     text-align: center; |   text-align: center; | ||||||
|     font-size: 1.4em; |   font-size: 1.4em; | ||||||
|     display: none; |   display: none; | ||||||
|     z-index: 310; |   z-index: 310; | ||||||
|     bottom: 0; |   bottom: 0; | ||||||
|     margin-bottom: 5%; |   margin-bottom: 5%; | ||||||
|     left: 50%; |   left: 50%; | ||||||
|     transform: translateX(-50%); |   transform: translateX(-50%); | ||||||
|     padding: 15px 25px; |   padding: 15px 25px; | ||||||
|     min-width: 100%; |   min-width: 100%; | ||||||
|     /* default value */ |   /* default value */ | ||||||
|     background-color: #000000; |   background-color: #000000; | ||||||
|     opacity: 0.55; |   opacity: 0.55; | ||||||
|     color: #FFFFFF; |   color: #ffffff; | ||||||
|     border: #FFFFFF 0px solid; |   border: #ffffff 0px solid; | ||||||
|     caret-color: #ffffff; |   caret-color: #ffffff; | ||||||
|     border-radius: 0px; |   border-radius: 0px; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #startButtons { | #startButtons { | ||||||
|     display: none; |   display: none; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #levelChooseButtons { | #levelChooseButtons { | ||||||
|     display: none; |   display: none; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| .startButton { | .startButton { | ||||||
|     width: 100%; |   width: 100%; | ||||||
|     margin: 0; |   margin: 0; | ||||||
| 	font:1.2rem "pala", sans-serif; |   font: 1.2rem pala, sans-serif; | ||||||
|     font-weight: normal; |   font-weight: normal; | ||||||
|     display: block; |   display: block; | ||||||
|     cursor: pointer; |   cursor: pointer; | ||||||
|     padding: 0px 0; |   padding: 0px 0; | ||||||
|     border-color: transparent; |   border-color: transparent; | ||||||
|     border-width: 0px; |   border-width: 0px; | ||||||
|     border-style: solid; |   border-style: solid; | ||||||
|     border-radius: 0px; |   border-radius: 0px; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| .onChoiceAnimate { | .onChoiceAnimate { | ||||||
|     animation: onChoice 2s ease-in-out 0s infinite normal none running; |   animation: onChoice 2s ease-in-out 0s infinite normal none running; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #floorMsgGroup { | #floorMsgGroup { | ||||||
|     position: absolute; |   position: absolute; | ||||||
|     text-align: center; |   text-align: center; | ||||||
|     display: none; |   display: none; | ||||||
|     color: #fff; |   color: #fff; | ||||||
|     background-color: #000; |   background-color: #000; | ||||||
|     z-index: 230; |   z-index: 230; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #logoLabel { | #logoLabel { | ||||||
|     margin-top: 8%; |   margin-top: 8%; | ||||||
|     font: bold 3em STXingkai; |   font: bold 3em STXingkai; | ||||||
|     margin-left: auto; |   margin-left: auto; | ||||||
|     margin-right: auto; |   margin-right: auto; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #versionLabel { | #versionLabel { | ||||||
|     margin-top: -3%; |   margin-top: -3%; | ||||||
|     font-size: 1.2em; |   font-size: 1.2em; | ||||||
|     font-weight: bold; |   font-weight: bold; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #floorNameLabel { | #floorNameLabel { | ||||||
|     margin-top: 30px; |   margin-top: 30px; | ||||||
|     font-size: 1.6em; |   font-size: 1.6em; | ||||||
|     font-weight: bold; |   font-weight: bold; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #statusBar { | #statusBar { | ||||||
|     position: absolute; |   position: absolute; | ||||||
|     box-sizing: border-box; |   box-sizing: border-box; | ||||||
|     -moz-box-sizing: border-box; |   -moz-box-sizing: border-box; | ||||||
|     -webkit-box-sizing: border-box; |   -webkit-box-sizing: border-box; | ||||||
|     background: url(project/materials/ground.png) repeat; |   background: url(project/materials/ground.png) repeat; | ||||||
|     z-index: 185; |   z-index: 185; | ||||||
|     display: none; |   display: none; | ||||||
|     top: 0; |   top: 0; | ||||||
|     left: 0; |   left: 0; | ||||||
|     padding: 3px; |   padding: 3px; | ||||||
| } | } | ||||||
| #statusBar .status{ | #statusBar .status { | ||||||
|     position: relative; |   position: relative; | ||||||
|     display: block; |   display: block; | ||||||
|     float: left; |   float: left; | ||||||
|     width: 100%; |   width: 100%; | ||||||
| } | } | ||||||
| .status img{ | .status img { | ||||||
|     vertical-align: middle; |   vertical-align: middle; | ||||||
|     width: auto; |   width: auto; | ||||||
|     height: 100%; |   height: 100%; | ||||||
|     max-height: 1.6em; |   max-height: 1.6em; | ||||||
| } | } | ||||||
| #statusBar span{ | #statusBar span { | ||||||
|     font: bold italic 1.1em Verdana; |   font: bold italic 1.1em Verdana; | ||||||
|     display: inline; |   display: inline; | ||||||
| } | } | ||||||
| #statusBar p { | #statusBar p { | ||||||
|     display: inline-block; |   display: inline-block; | ||||||
|     vertical-align: middle; |   vertical-align: middle; | ||||||
|     width: 60%; |   width: 60%; | ||||||
|     margin: 0; |   margin: 0; | ||||||
|     color: white; |   color: white; | ||||||
|     font: bold italic 1.1em Verdana; |   font: bold italic 1.1em Verdana; | ||||||
|     white-space: nowrap; |   white-space: nowrap; | ||||||
| } | } | ||||||
| #toolBar { | #toolBar { | ||||||
|     position: absolute; |   position: absolute; | ||||||
|     background: url(project/materials/ground.png) repeat; |   background: url(project/materials/ground.png) repeat; | ||||||
|     z-index: 210; |   z-index: 210; | ||||||
|     box-sizing: border-box; |   box-sizing: border-box; | ||||||
|     -moz-box-sizing: border-box; |   -moz-box-sizing: border-box; | ||||||
|     -webkit-box-sizing: border-box; |   -webkit-box-sizing: border-box; | ||||||
|     display: none; |   display: none; | ||||||
|     padding: 3px; |   padding: 3px; | ||||||
| } | } | ||||||
| #toolBar .tools{ | #toolBar .tools { | ||||||
|     position: relative; |   position: relative; | ||||||
|     display: block; |   display: block; | ||||||
|     float: left; |   float: left; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| p#hard { | p#hard { | ||||||
|     width: 6em; |   width: 6em; | ||||||
|     vertical-align: middle; |   vertical-align: middle; | ||||||
|     display: inline-block; |   display: inline-block; | ||||||
|     color: red; |   color: red; | ||||||
|     font: bold normal 1.1em "Arial Black"; |   font: bold normal 1.1em "Arial Black"; | ||||||
|     text-align: center; |   text-align: center; | ||||||
|     margin: 0 6px 6px 0; |   margin: 0 6px 6px 0; | ||||||
|     word-break: keep-all; |   word-break: keep-all; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| span#poison, span#weak, span#curse, span#pickaxe, span#bomb, span#fly { | span#poison, | ||||||
|     font-style: normal; | span#weak, | ||||||
|     font-size: 1em; | span#curse, | ||||||
|  | span#pickaxe, | ||||||
|  | span#bomb, | ||||||
|  | span#fly { | ||||||
|  |   font-style: normal; | ||||||
|  |   font-size: 1em; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| p#name { | p#name { | ||||||
|     font-style: normal; |   font-style: normal; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| .gameCanvas { | .gameCanvas { | ||||||
|     position: absolute; |   position: absolute; | ||||||
|     box-sizing: border-box; |   box-sizing: border-box; | ||||||
|     -moz-box-sizing: border-box; |   -moz-box-sizing: border-box; | ||||||
|     -webkit-box-sizing: border-box; |   -webkit-box-sizing: border-box; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #gif { | #gif { | ||||||
|     z-index: 20; |   z-index: 20; | ||||||
|     position: absolute; |   position: absolute; | ||||||
|     overflow: hidden; |   overflow: hidden; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #gif2 { | #gif2 { | ||||||
|     z-index: 90; |   z-index: 90; | ||||||
|     position: absolute; |   position: absolute; | ||||||
|     overflow: hidden; |   overflow: hidden; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #gameDraw { | #gameDraw { | ||||||
|     position: absolute; |   position: absolute; | ||||||
|     background: #000000; |   background: #000000; | ||||||
|     overflow: hidden; |   overflow: hidden; | ||||||
|     z-index: 185; |   z-index: 185; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #bg { | #bg { | ||||||
|     z-index: 10; |   z-index: 10; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #event { | #event { | ||||||
|     z-index: 30; |   z-index: 30; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #hero { | #hero { | ||||||
|     z-index: 40; |   z-index: 40; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #event2 { | #event2 { | ||||||
|     z-index: 50; |   z-index: 50; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #fg { | #fg { | ||||||
|     z-index: 60; |   z-index: 60; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #damage { | #damage { | ||||||
|     z-index: 65; |   z-index: 65; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #animate { | #animate { | ||||||
|     z-index: 70; |   z-index: 70; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #curtain { | #curtain { | ||||||
|     z-index: 125; |   z-index: 125; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #ui { | #ui { | ||||||
|     z-index: 140; |   z-index: 140; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #data { | #data { | ||||||
|     z-index: 170; |   z-index: 170; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #inputDiv { | #inputDiv { | ||||||
|     display: none; |   display: none; | ||||||
|     width: 100%; |   width: 100%; | ||||||
|     height: 100%; |   height: 100%; | ||||||
|     position: fixed; |   position: fixed; | ||||||
|     top: 0; |   top: 0; | ||||||
|     left: 0; |   left: 0; | ||||||
|     background: rgba(127,127,127,0.6); |   background: rgba(127, 127, 127, 0.6); | ||||||
|     z-index: 2000 |   z-index: 2000; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #inputDialog { | #inputDialog { | ||||||
|     position: fixed; |   position: fixed; | ||||||
|     top: 50%; |   top: 50%; | ||||||
|     left: 50%; |   left: 50%; | ||||||
|     transform: translate(-50%, -55%); |   transform: translate(-50%, -55%); | ||||||
|     background: white; |   background: white; | ||||||
|     width: 250px; |   width: 250px; | ||||||
|     min-height: 50px; |   min-height: 50px; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #inputMessage { | #inputMessage { | ||||||
|     word-wrap: break-word; |   word-wrap: break-word; | ||||||
|     text-align: left; |   text-align: left; | ||||||
|     margin-left: 8%; |   margin-left: 8%; | ||||||
|     margin-right: 5%; |   margin-right: 5%; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #inputBox { | #inputBox { | ||||||
|     margin-left: 8%; |   margin-left: 8%; | ||||||
|     width: 80%; |   width: 80%; | ||||||
|     margin-bottom: 10px; |   margin-bottom: 10px; | ||||||
|     padding: 5px 3px; |   padding: 5px 3px; | ||||||
|     border: 1px solid; |   border: 1px solid; | ||||||
|     background: #F0F0F0; |   background: #f0f0f0; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #inputYes { | #inputYes { | ||||||
|     margin-bottom: 15px; |   margin-bottom: 15px; | ||||||
|     margin-left: 8%; |   margin-left: 8%; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #inputNo { | #inputNo { | ||||||
|     float:right; |   float: right; | ||||||
|     margin-right: 10%; |   margin-right: 10%; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #_selector, ._uievent_selector { | #_selector, | ||||||
|     animation: selector 2s ease-in-out 0s infinite normal none running; | ._uievent_selector { | ||||||
|  |   animation: selector 2s ease-in-out 0s infinite normal none running; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @-webkit-keyframes selector { | @-webkit-keyframes selector { | ||||||
|     0% { opacity: 0.95; } |   0% { | ||||||
|     50% { opacity: 0.55; } |     opacity: 0.95; | ||||||
|     100% { opacity: 0.95; } |   } | ||||||
|  |   50% { | ||||||
|  |     opacity: 0.55; | ||||||
|  |   } | ||||||
|  |   100% { | ||||||
|  |     opacity: 0.95; | ||||||
|  |   } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @keyframes selector { | @keyframes selector { | ||||||
|     0% { opacity: 0.95; } |   0% { | ||||||
|     50% { opacity: 0.55; } |     opacity: 0.95; | ||||||
|     100% { opacity: 0.95; } |   } | ||||||
|  |   50% { | ||||||
|  |     opacity: 0.55; | ||||||
|  |   } | ||||||
|  |   100% { | ||||||
|  |     opacity: 0.95; | ||||||
|  |   } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #next { | #next { | ||||||
|     width: 5px; |   width: 5px; | ||||||
|     height: 5px; |   height: 5px; | ||||||
|     display: none; |   display: none; | ||||||
|     position: absolute; |   position: absolute; | ||||||
|     transform: rotate(45deg); |   transform: rotate(45deg); | ||||||
|     border-bottom-width: 4px; |   border-bottom-width: 4px; | ||||||
|     border-bottom-style: solid; |   border-bottom-style: solid; | ||||||
|     border-right-width: 4px; |   border-right-width: 4px; | ||||||
|     border-right-style: solid; |   border-right-style: solid; | ||||||
|     -webkit-animation: next .5s ease-in-out alternate infinite; |   -webkit-animation: next 0.5s ease-in-out alternate infinite; | ||||||
|     animation: next .5s ease-in-out alternate infinite; |   animation: next 0.5s ease-in-out alternate infinite; | ||||||
|     left: 0; |   left: 0; | ||||||
|     top: 0; |   top: 0; | ||||||
|     opacity: 0.7; |   opacity: 0.7; | ||||||
|     z-index: 169; |   z-index: 169; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @-webkit-keyframes next { | @-webkit-keyframes next { | ||||||
|     100% { |   100% { | ||||||
|         transform: rotate(45deg) translate(-3px, -3px); |     transform: rotate(45deg) translate(-3px, -3px); | ||||||
|     } |   } | ||||||
| } | } | ||||||
| @keyframes next { | @keyframes next { | ||||||
|     100% { |   100% { | ||||||
|         transform: rotate(45deg) translate(-3px, -3px); |     transform: rotate(45deg) translate(-3px, -3px); | ||||||
|     } |   } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #startImageBackgroundDiv { | #startImageBackgroundDiv { | ||||||
|     display: none; |   display: none; | ||||||
|     width: 100%; |   width: 100%; | ||||||
|     height: 100%; |   height: 100%; | ||||||
|     position: fixed; |   position: fixed; | ||||||
|     z-index: 10000; |   z-index: 10000; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #startImageDiv { | #startImageDiv { | ||||||
|     width: 100%; |   width: 100%; | ||||||
|     height: 100%; |   height: 100%; | ||||||
|     position: fixed; |   position: fixed; | ||||||
|     background: black; |   background: black; | ||||||
|     opacity: 1; |   opacity: 1; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #startImageLogo { | #startImageLogo { | ||||||
|     opacity: 0; |   opacity: 0; | ||||||
|     max-width: 60%; |   max-width: 60%; | ||||||
|     max-height: 60%; |   max-height: 60%; | ||||||
|     position: fixed; |   position: fixed; | ||||||
|     left: 50%; |   left: 50%; | ||||||
|     top: 50%; |   top: 50%; | ||||||
|     transform: translate(-50%, -50%); |   transform: translate(-50%, -50%); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| .startImageAnimation { | .startImageAnimation { | ||||||
|     -webkit-animation: startImage 4s ease-in-out 1s alternate 1; |   -webkit-animation: startImage 4s ease-in-out 1s alternate 1; | ||||||
|     animation: startImage 4s ease-in-out 1s alternate 1; |   animation: startImage 4s ease-in-out 1s alternate 1; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @-webkit-keyframes startImage { | @-webkit-keyframes startImage { | ||||||
|     0% { opacity: 0; } |   0% { | ||||||
|     60% { opacity: 1; } |     opacity: 0; | ||||||
|     100% { opacity: 0; } |   } | ||||||
|  |   60% { | ||||||
|  |     opacity: 1; | ||||||
|  |   } | ||||||
|  |   100% { | ||||||
|  |     opacity: 0; | ||||||
|  |   } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @keyframes startImage { | @keyframes startImage { | ||||||
|     0% { opacity: 0; } |   0% { | ||||||
|     60% { opacity: 1; } |     opacity: 0; | ||||||
|     100% { opacity: 0; } |   } | ||||||
|  |   60% { | ||||||
|  |     opacity: 1; | ||||||
|  |   } | ||||||
|  |   100% { | ||||||
|  |     opacity: 0; | ||||||
|  |   } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| .startImageDivAnimation { | .startImageDivAnimation { | ||||||
|     -webkit-animation: startImageDivDisappear 2s ease-in-out 5s alternate 1; |   -webkit-animation: startImageDivDisappear 2s ease-in-out 5s alternate 1; | ||||||
|     animation: startImageDivDisappear 2s ease-in-out 5s alternate 1; |   animation: startImageDivDisappear 2s ease-in-out 5s alternate 1; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @-webkit-keyframes startImageDivDisappear { | @-webkit-keyframes startImageDivDisappear { | ||||||
|     0% { opacity: 1 } |   0% { | ||||||
|     100% { opacity: 0 } |     opacity: 1; | ||||||
|  |   } | ||||||
|  |   100% { | ||||||
|  |     opacity: 0; | ||||||
|  |   } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @keyframes startImageDivDisappear { | @keyframes startImageDivDisappear { | ||||||
|     0% { opacity: 1 } |   0% { | ||||||
|     100% { opacity: 0 } |     opacity: 1; | ||||||
|  |   } | ||||||
|  |   100% { | ||||||
|  |     opacity: 0; | ||||||
|  |   } | ||||||
| } | } | ||||||
| #ui-editor { | #ui-editor { | ||||||
|     z-index: 9999; |   z-index: 9999; | ||||||
|     position: absolute; |   position: absolute; | ||||||
|     overflow: visible; |   overflow: visible; | ||||||
|     height: 100%; |   height: 100%; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @font-face { | @font-face { | ||||||
|     font-family: Fira Code; |   font-family: Fira Code; | ||||||
|     src: url(../src/fonts/FiraCode-Regular.ttf); |   src: url(../src/fonts/FiraCode-Regular.ttf); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| /* 注释下面这三行以开启抗锯齿 */ | /* 注释下面这三行以开启抗锯齿 */ | ||||||
| .anti-aliasing { | .anti-aliasing { | ||||||
|     image-rendering: pixelated; |   image-rendering: pixelated; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| .warning { | .warning { | ||||||
|     transition: left cubic-bezier(0, 0.9, 1, 0.1) 2.5s; |   transition: left cubic-bezier(0, 0.9, 1, 0.1) 2.5s; | ||||||
|     -webkit-transition: left cubic-bezier(0, 0.9, 1, 0.1) 2.5s; |   -webkit-transition: left cubic-bezier(0, 0.9, 1, 0.1) 2.5s; | ||||||
|     animation: warning 1s linear 0s alternate infinite; |   animation: warning 1s linear 0s alternate infinite; | ||||||
|     -webkit-animation: warning 1s linear 0s alternate infinite; |   -webkit-animation: warning 1s linear 0s alternate infinite; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @keyframes warning { | @keyframes warning { | ||||||
|     0 % { text-shadow: 0px 0px 9px rgba(255, 0, 0, 0.5), 0px 0px 6px rgb(129, 0, 0);} |   0 % { | ||||||
|     50 % { text-shadow: 0px 0px 30px rgba(255, 0, 0, 1), 0px 0px 6px rgb(129, 0, 0);} |     text-shadow: 0px 0px 9px rgba(255, 0, 0, 0.5), 0px 0px 6px rgb(129, 0, 0); | ||||||
|     100 % { text-shadow: 0px 0px 9px rgba(255, 0, 0, 0.5), 0px 0px 6px rgb(129, 0, 0);} |   } | ||||||
|  |   50 % { | ||||||
|  |     text-shadow: 0px 0px 30px rgba(255, 0, 0, 1), 0px 0px 6px rgb(129, 0, 0); | ||||||
|  |   } | ||||||
|  |   100 % { | ||||||
|  |     text-shadow: 0px 0px 9px rgba(255, 0, 0, 0.5), 0px 0px 6px rgb(129, 0, 0); | ||||||
|  |   } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @-webkit - keyframes warning { | @-webkit - keyframes warning { | ||||||
|     0 % { text-shadow: 0px 0px 9px rgba(255, 0, 0, 0.5), 0px 0px 6px rgb(129, 0, 0);} |   0 % { | ||||||
|     50 % { text-shadow: 0px 0px 30px rgba(255, 0, 0, 1), 0px 0px 6px rgb(129, 0, 0);} |     text-shadow: 0px 0px 9px rgba(255, 0, 0, 0.5), 0px 0px 6px rgb(129, 0, 0); | ||||||
|     100 % { text-shadow: 0px 0px 9px rgba(255, 0, 0, 0.5), 0px 0px 6px rgb(129, 0, 0);} |   } | ||||||
|  |   50 % { | ||||||
|  |     text-shadow: 0px 0px 30px rgba(255, 0, 0, 1), 0px 0px 6px rgb(129, 0, 0); | ||||||
|  |   } | ||||||
|  |   100 % { | ||||||
|  |     text-shadow: 0px 0px 9px rgba(255, 0, 0, 0.5), 0px 0px 6px rgb(129, 0, 0); | ||||||
|  |   } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| .gameCanvas { | .gameCanvas { | ||||||
|     transition: transform 1.5s ease-out; |   transition: transform 1.5s ease-out; | ||||||
|     -webkit-transition: transform 1.5s ease-out; |   -webkit-transition: transform 1.5s ease-out; | ||||||
| } | } | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user