Open fushang318 opened 11 years ago
负责整个流程运转的类
包含关卡信息的类
表示一个格子的类
门,机关,钥匙,怪物,小人的父类
分别表示 门,机关,钥匙,怪物,小人
都是monster的子类,分别表示 小怪物,大怪物,JJ怪
unit 上有个基本属性是否会被JJ怪摧毁 unit 上有个基本属性是否阻挡远程攻击(弓箭手的射击,勇者的投掷,魔法师的魔法)
落在地上的飞行道具和用户身上的飞行道具用不同的模型
勇者不能和所有怪物重合
1 如果它的(上下左右)有勇士,轮到它行动的时候,它就会攻击勇士 2 勇士不能和它重合 3 勇士如果朝他走,勇士走的动作算执行,但是勇士不能和它重合
1 大怪和小怪行为类似,区别在于血量和攻击力
1 如果它的(上下左右)有勇士,轮到它行动的时候 如果它是正常状态,就会进入激发状态(准备爆炸) 2 如果轮到它行动的时候,它是激发状态,它就会爆炸,爆炸范围是依他为中心的九格 (九格内的除门和机关之外的任何东西)
1 当勇者的距离在它三格内(上下左右)(身边第一格第二格第三格),它就会攻击勇者
2 它和勇者之间如果隔着单位就不能攻击
1 攻击范围见图
2 它和勇者之间如果隔着单位就不能攻击
1 勇者站在和它重合的位置后,可以被捡起 2 勇者可以捡到多把钥匙
1 勇者站在和它重合的位置后,如果勇者有钥匙,可以被打开,并消耗一把钥匙
1 勇者站在和它重合的位置后,如果场景中所有的机关是打开状态,并且没有宝石都在勇者身上,那么就算过关
和钥匙一样
1 勇者不能通过 2 任何东西不能和它重合 3 可以被JJ怪摧毁
1 勇者的投掷范围和弓箭手一样 2 投掷会碰撞在飞行轨迹的第一个单位上 3 投掷如果打在(大怪,小怪,弓箭手,魔法师)上,会落在和它们相同的位置,它们会掉血 4 如果打在 JJ 怪,JJ怪立刻爆炸,飞行道具被摧毁 5 如果打在宝石,钥匙上,没有任何效果,飞行道具落在和它们相同的位置 6 如果打在机关,门,墙和地图边缘,会落在边上一格 红色是勇士,黑色是飞行道具,蓝色是墙,门,边缘 7 当飞行道具落下地上的时候,勇士站在和它重合的位置时,可以被捡起
character.play() 运行后,可以通过 character.action_info() 获取行动内容,返回值是 hash
hash 的初步设想的内容如下,大家讨论一下
1 行走
{
type : 'walk'
direction : 'left'
}
2 近战攻击
{
type : 'melee_attack'
direction : 'left'
target : character
damage : 伤害数值
}
3 弓箭手攻击
{
type : 'ranged_attack'
direction : 'left'
target : character
damage : 伤害数值
}
4 魔法师攻击
{
type : 'magic_Attack'
target : character
damage : 伤害数值
}
5 JJ怪爆炸
{
type : 'explode'
targets : [
{
target : character
damage : 伤害数值
},
................
]
}
6 JJ怪进入激活状态
{
type : 'excited'
}
7 勇士投掷攻击
{
type : 'shuriken_attack'
shuriken_landing_point : space
target : character
damage : 伤害数值
]
}
8 交互
{
type : 'interact'
interact_items : [item......]
}
游戏目的
通过游戏的形式锻炼玩家的javascript编程逻辑思维
游戏场景
游戏场景是一个以垂直俯视角呈现的一个二维区域,类似一个棋盘 如图是一个 6*8 的游戏场景
游戏规则
游戏采用回合制,小人行动一次,然后场景互动运行一次(怪物攻击小人,机关被打开等等) 小人的每次行动都会按照玩家用 javascript 语言编写的AI进行
失败条件
宝石被摧毁 钥匙不够开机关了 勇士HP为0 回合数过多
胜利条件
全部收集宝石,机关全部打开的情况下,进入大门
包括的元素
1 受玩家控制的小人(有且只有一个) 2 近战攻击的小怪(0到多个) 3 近战攻击的大怪(0到多个) 4 JJ怪(类似MC中的JJ怪)(0到多个) 5 机关(只有所有机关都被玩家打开时,才可以通过最后的带门,机关需要钥匙开启)(0到多个) 6 钥匙(用来开启机关或大门的道具)(0到多个) 7 大门(一个)
小人的动作(小人的API)(每个回合小人只能做一个动作)
1 向上/向下/向左/向右 移动一格
2 向上/向下/向左/向右 近战攻击(会砍掉怪物一些HP)
3 向上/向下/向左/向右 远程投掷(投掷出去的道具碰到其他物品会落在地上,可以再次捡起继续使用)
4 和 上/下/左/右 的道具进行交互(根据道具不同做出相应的交互:捡起道具,开机关,开大门等动作)
5 原地休息(回复小人一定量HP)
小人的其他API
查看上/下/左/右 格子的情况