Броня в семи местах и три зоны урона
- В реестр заведены 46 предметов одежды ремейка: слот, слой, какие части тела закрывает и сколько снимает из каждого вида вреда. Данные выгружены в items.csv (extract-items.py), в коде у каждого предмета armor(...). - Семь мест: голова, лицо, грудь (2 слоя), ноги (2 слоя), руки, стопы, полный костюм. Пояс не делали - в ремейке его нет, есть только быстрая панель. - Inventory сервера: семь мест по два слоя, вещи надеваются и снимаются. - Damage: зона урона по точке попадания (голова верхние 0.4, ноги нижние 0.4), множители голова 2, тело 1, ноги 0.75; одежда снимает вред только там, где закрывает. - Пакет Attack (цель, точка попадания, рука) и клиентский патч, который его шлёт. У игрока появилась жизнь. - В items.csv добавлены колонки armor_slot, armor_layer, armor_zones. Тесты: протокол 24 + 10, сервер 85. Форк собирается чисто, 3279 классов.
This commit is contained in:
@@ -317,6 +317,22 @@ public final class ItemTest {
|
||||
Packets.LearnBlueprint.read(new Buf(learn.write().toByteArray()));
|
||||
eq("the blueprint survives", Integer.valueOf(ItemRegistry.PICKAXE),
|
||||
Integer.valueOf(learnBack.item));
|
||||
|
||||
Packets.Attack attack = new Packets.Attack(7, 1.5F, 2.5F, 3.5F,
|
||||
Packets.Attack.HAND_MAIN);
|
||||
Packets.Attack attackBack =
|
||||
Packets.Attack.read(new Buf(attack.write().toByteArray()));
|
||||
eq("the target survives", Integer.valueOf(7), Integer.valueOf(attackBack.target));
|
||||
near("the place of the hit survives", 2.5, attackBack.y);
|
||||
eq("the hand survives", Integer.valueOf(Packets.Attack.HAND_MAIN),
|
||||
Integer.valueOf(attackBack.hand));
|
||||
}
|
||||
|
||||
private static void near(Object what, double expected, double actual) {
|
||||
if (Math.abs(expected - actual) > 0.0001D) {
|
||||
failed++;
|
||||
failures.add(what + ": expected " + expected + " but got " + actual);
|
||||
}
|
||||
}
|
||||
|
||||
private static void run(String name, Runnable body) {
|
||||
|
||||
@@ -551,6 +551,8 @@ public final class ProtocolTest {
|
||||
Packets.KNOWN_RECIPES, Packets.TECH_TREE_STATE,
|
||||
Packets.CONTAINER_OPEN, Packets.CONTAINER_TAKE,
|
||||
Packets.LEARN_BLUEPRINT,
|
||||
Packets.HITBOXES, Packets.HITBOX_INSTANCES, Packets.HITBOXES_RELOAD,
|
||||
Packets.ATTACK,
|
||||
Packets.DISCONNECT,
|
||||
};
|
||||
for (int i = 0; i < ids.length; i++) {
|
||||
|
||||
Reference in New Issue
Block a user