【僵尸说明】
僵尸篇正式开篇
再次对僵尸(包括其饰品)的HP损伤点以及僵尸的HP临界点进行说明
当僵尸饰品剩余HP<饰品损伤点时 饰品出现损伤
当僵尸本体剩余HP<本体损伤点时 僵尸本体出现损伤(一般手中未持物的僵尸表现为断臂)
当僵尸本体剩余HP<本体临界点时 僵尸本体进入垂死状态(一般表现为断头) HP以60每秒的速度减少 在HP减至0之前仍能吸引和吸收远程火力 垂死状态的僵尸(车系僵尸除外)失去伤害能力 不会触发土豆雷 窝瓜 食人花 水草 本体保持原有的运动状态
当HP降至0 僵尸才为真正意义上的彻底死亡
僵尸饰品损伤点均为(int)(MAX HP*2/3)和(int)(MAX HP*1/3)
僵尸本体损伤点均为(int)(MAX HP*2/3)
僵尸本体临界点一般为(int)(MAX HP*1/3) 极个别特殊僵尸为定值
注:这里的int为取整的意思(只保留整数 而非四舍五入)
之所以用这种方式来表达僵尸/饰品的损伤点和临界点
是因为除了少数几个临界为定值的僵尸 绝大多数僵尸(饰品)的临界点和损伤点都是随其自身最大HP变化而变化 虽然正常游戏中僵尸的血量都是固定的 但是使用特殊手段修改调整僵尸最大HP 可以看到损伤点和临界点的变化
下面的视频修改了撑杆跳僵尸的最大HP(改到一个很高的数值)
临界点故而也随之变高 此时的僵尸即使进入垂死状态 也会有着非常高的血量 所以不会在短时间内消亡
可以借此直观的看出垂死状态僵尸的所有特征(无法啃食 吸收火力 维持原状态运动 不触发地雷等近战武器)
僵尸啃食机制
所有能吃东西的僵尸都遵循此套机制
详细说明如下:
僵尸的啃食伤害其实并不按"口" 而是按时间来计量
整个啃食过程实际拆解为两个部分
第一为匀速伤害
第二为啃食动画
当僵尸进入到啃食范围时
停止移动 同时对敌对目标实施攻击
攻击的伤害是匀速的 每秒伤害100(与僵尸种类和视觉上的啃咬快慢无关)
在造成伤害的同时 播放啃食动画
匀速伤害和啃食动画是两个同时进行而又相互独立的过程
啃食动画本身只是一段动画 旨在触发植物的"受伤闪光"效果(以表示这一瞬间植物遭到了攻击 其实并无任何伤害 仅仅是动画效果) 而闪亮的这一瞬间实际作用是触发催眠蘑菇和大蒜(二者的触发条件均为被"吃")
下面附一段视频 观看时请注意以下两点
A.僵尸互啃时 对方并未出现"受伤闪光"
B.被催眠的僵尸定然不会去啃食友方植物 可它却"吃"到了大蒜
视频佐证伤害和啃食动画的独立性
即伤害作用于敌对目标 而啃食动画作用于植物(不分敌我)
僵尸速度简介:
PVZ中的僵尸速度大致分为五大类
慢速型:出土后的矿工
普通型:各种没有手持物的普通僵尸
快速型:橄榄球 撑杆跳 狂暴的报纸 篮球车 气球等
高速型:跳跳 PUZZLE小鬼 逃跑的雪人等
急速型:海豚 挖地的矿工 雪橇车 太空步中的MJ
其中普通型僵尸速度不固定 最快与最慢之间差距甚至超过50%
除了普通型僵尸 其余的所有僵尸无论快慢 相同品种的速度大致相同
僵尸的实际实时速度亦跟动画相关
动画决定僵尸的步长 而左右脚的步长以及迈步频率的不尽相同导致了僵尸的实时速度一直处于不断的变化之中(可以观察狂暴后的报纸僵尸或是逃跑中的雪人僵尸 尤其是雪人 左右脚的步长差大得离谱)
由于僵尸移动的复杂性 故难以精确描绘其运动 下文将以约多少秒走过一格来作为僵尸的速度参考
名词解释
饰品:
指僵尸所佩戴/抓取/乘坐的可为自己身体提供额外耐久值的物品 饰品耐久降至0时失效
按照其特征分为I类饰品和II类饰品
I类饰品
此类饰品在被移除之前 任何伤害(爆炸类除外)都无法直接作用于本体
I类饰品包括:路障 铁桶 橄榄球帽 雪橇 气球 矿工帽
II类饰品
无法在任何情况下提供防护(地刺 溅射类 穿透类 以及来自背后的水平射击武器可直接作用于本体)
II类饰品包括:报纸 铁栅门 铁梯
伤害转移:
I类饰品
饰品剩余耐久低于当前攻击时
多出来的过量伤害将直接转嫁于本体(针对雪橇的过量伤害全部转嫁于四人小队的第一只僵尸)
II类饰品
A.遭受正面非范围武器攻击时 伤害转移同I类
B.遭受穿透类武器(烟雾喷菇/忧郁蘑菇)攻击时 本体和饰品同时受到武器伤害 饰品剩余耐久低于当前攻击时 无伤害转移
C.遭受范围投掷类(西瓜/冰瓜)攻击时 本体和饰品同时受到弹体中心伤害(不受溅射伤害) 饰品剩余耐久低于当前攻击时 无伤害转移
D.遭受地刺和背后非范围水平射击武器攻击时 伤害仅作用于本体
注:
报纸僵尸
遭受火豌豆攻击时(无论正面背面) 报纸僵尸本体和饰品同时受火豌豆弹体伤害(不受到溅射伤害) 饰品剩余耐久低于当前攻击时 无伤害转移
门板僵尸和梯子僵尸
由于饰品不会受到和引起溅射
遭受正面火豌豆攻击时 伤害只作用于饰品 饰品剩余耐久低于当前攻击时 伤害转移同I类
遭受背面火豌豆攻击时 伤害只作用于本体
损伤点/临界点数值的表示:
为了方便后面的排版
损伤点和临界点均将以std(standard)来表示
std1=(int)(MAX HP*2/3)
std2=(int)(MAX HP*1/3)