tutorial L1
This commit is contained in:
parent
4390ed92ce
commit
41dd220781
57
_codelab/L1.md
Normal file
57
_codelab/L1.md
Normal file
@ -0,0 +1,57 @@
|
||||
# 第一章:伤害计算函数(getDamageInfo)
|
||||
|
||||
要求:读懂脚本编辑 - 伤害计算函数(getDamageInfo)的全部脚本代码(无需理解支援的实现)。
|
||||
|
||||
回答如下几个问题:
|
||||
|
||||
1. 如下几个局部变量分别是什么意义?
|
||||
|
||||
`mon_atk`, `init_damage`, `per_damage`, `hero_per_damage`, `turn`, `damage`
|
||||
|
||||
2. 如何理解下面这几句话?
|
||||
|
||||
`if (core.hasSpecial(mon_special, 2)) per_damage = mon_atk;`
|
||||
|
||||
`var turn = Math.ceil(mon_hp / hero_per_damage);`
|
||||
|
||||
`var damage = init_damage + (turn - 1) * per_damage + turn * counterDamage;`
|
||||
|
||||
3. 负伤在哪里实现的?
|
||||
|
||||
依次实现如下几个怪物属性(仅允许修改`getDamageInfo`函数):
|
||||
|
||||
1. **闪避(编号31):** 受到伤害降低40%。
|
||||
|
||||
2. **穿刺(编号32):** 无视角色70%防御力。
|
||||
|
||||
3. **冰冻(编号33):** 怪物首先冰冻角色3回合,冰冻期间每回合额外造成角色护盾的20%伤害。
|
||||
|
||||
4. **中子束(编号34):** 每回合普攻两次,魔攻一次。
|
||||
|
||||
5. **残暴斩杀(编号35):** 战斗开始时,如果角色血量不大于怪物血量的200%,则直接暴毙。
|
||||
|
||||
6. **窥血为攻(编号36):** 战斗开始时,自身攻击力变为角色当前生命值的10%,向下取整。
|
||||
|
||||
7. **匙之力(编号37):** 角色身上每存在一把黄钥匙,最终伤害提升5%;蓝钥匙视为三把黄钥匙,红钥匙视为九把黄钥匙,线性叠加。
|
||||
|
||||
8. **崩甲(编号38):** 怪物每回合附加勇士战斗开始时的护盾数值的0.1倍作为伤害。
|
||||
|
||||
9. **混乱(编号39):** 战斗中,勇士攻防互换。
|
||||
|
||||
10. **强击(编号40):** 怪物第一回合三倍攻击。
|
||||
|
||||
11. **暗影庇护(编号41):** 处于无敌状态,但每回合损耗自身2%的最大生命值。
|
||||
|
||||
再依次实现如下几个角色技能:
|
||||
|
||||
1. 角色每回合回复`flag:x1`%倍护盾的生命值。(如,`flag:x1`是10时,每回合回复10%护盾值的生命)
|
||||
|
||||
2. 角色每回合造成和受到的伤害均提升`flag:x2`%。(如,`flag:x2`为10时,每回合造成和受到伤害都提升10%)
|
||||
|
||||
3. 角色攻击在战斗时减少`flag:x3`,防御力增加`flag:x3`。
|
||||
|
||||
4. 角色无视怪物的`flag:x4`%的防御力。(如,`flag:x4`是10时,无视角色的10%防御力)
|
||||
|
||||
5. 角色额外抢攻`flag:x5`回合。
|
||||
|
||||
|
||||
2
_codelab/_sidebar.md
Normal file
2
_codelab/_sidebar.md
Normal file
@ -0,0 +1,2 @@
|
||||
|
||||
- [第一章:伤害计算函数](L1)
|
||||
2
_codelab/docsify.min.js
vendored
Normal file
2
_codelab/docsify.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
86
_codelab/index.html
Normal file
86
_codelab/index.html
Normal file
@ -0,0 +1,86 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>HTML5魔塔样板JS进阶</title>
|
||||
<link rel="icon" href="data:;base64,iVBORw0KGgo=">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
|
||||
<meta name="description" content="Description">
|
||||
<meta http-equiv="pragma" content="no-cache">
|
||||
<meta http-equiv="cache-control" content="no-cache">
|
||||
<meta http-equiv="expires" content="0">
|
||||
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
|
||||
<link href="vue.css" rel="stylesheet">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app"></div>
|
||||
<xml id="toolbox" style="display:none"></xml>
|
||||
<div id="blocklyArea" style="opacity: 0;z-index: -1;"><div id="blocklyDiv"></div></div>
|
||||
<textarea id="codeArea" style="display:none" spellcheck="false"></textarea>
|
||||
<script>
|
||||
window.$docsify = {
|
||||
homepage: 'L1.md',
|
||||
loadSidebar: true,
|
||||
name: 'HTML5魔塔样板',
|
||||
repo: 'https://github.com/ckcz123/mota-js',
|
||||
// basepath: '../docs/',
|
||||
|
||||
// Search Support
|
||||
search: {
|
||||
maxAge: 43200000, // 过期时间,单位毫秒,默认一天
|
||||
paths: 'auto',
|
||||
placeholder: {
|
||||
'/': '搜索文档...',
|
||||
},
|
||||
noData: {
|
||||
'/': '找不到结果',
|
||||
},
|
||||
},
|
||||
|
||||
// load sidebar from _sidebar.md
|
||||
loadSidebar: '_sidebar',
|
||||
subMaxLevel: 2,
|
||||
autoHeader: true,
|
||||
auto2top: true,
|
||||
mergeNavbar: true,
|
||||
formatUpdated: '{YYYY}-{MM}-{DD} {HH}:{mm}:{ss}',
|
||||
plugins: [
|
||||
/*
|
||||
function(hook){
|
||||
|
||||
var renderScriptNode=function(str){
|
||||
return str.replace(/```.*?\r?\n['"]run['"];[^]*?\r?\n```/g,function(x){
|
||||
return eval(`(function(){${x.replace(/```.*?\r?\n['"]run['"];/,'').slice(0,-3)}})()`)
|
||||
})
|
||||
}
|
||||
|
||||
var renderMotaAction=function(str){
|
||||
return str.replace(bg.pattern,function(x){
|
||||
return bg.replaceFunc(x)
|
||||
})
|
||||
}
|
||||
|
||||
hook.beforeEach(function(content){
|
||||
return renderMotaAction(renderScriptNode(
|
||||
content
|
||||
))
|
||||
})
|
||||
|
||||
hook.doneEach(function(){
|
||||
var map=bg.replaceToken
|
||||
var node=document.querySelector('.markdown-section')
|
||||
var str=node.innerHTML
|
||||
for(var id in map){
|
||||
str=str.replace(id,map[id])
|
||||
}
|
||||
node.innerHTML=str
|
||||
})
|
||||
}
|
||||
*/
|
||||
]
|
||||
}
|
||||
</script>
|
||||
<!-- 为了保证时序用脚本加载这两个 -->
|
||||
<script src="docsify.min.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
5
_codelab/index.md
Normal file
5
_codelab/index.md
Normal file
@ -0,0 +1,5 @@
|
||||
# H5脚本进阶顺序
|
||||
|
||||
```
|
||||
伤害计算 - 战后 - 自绘状态栏 - 其他脚本编辑如检查地图伤害 - 插件中简单的复写libs - 自己根据API写插件函数 - 使用register系列注册点击和动画等 - 啃libs的实现 - 啃编辑器
|
||||
```
|
||||
1
_codelab/vue.css
Normal file
1
_codelab/vue.css
Normal file
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user