fighting/frame_data.js
2025-08-16 10:24:23 +00:00

221 lines
12 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

const timing = {
player: {
value: {
punch_Right: {start: 0, end: 9},
punch_Left: {start: 10, end: 18},
punch_Right_Down: {start: 105, end: 112},
punch_Left_Down: {start: 113, end: 120},
block_Right: {start: 19, end: 27},
block_Left: {start: 28, end: 36},
block_Right_Up: {start: 37, end: 44},
block_Left_Up: {start: 45, end: 54},
block_Right_Down: {start: 126, end: 133},
block_Left_Down: {start: 134, end: 146},
stand_Left: {start: 55, end: 60},
stand_Right: {start: 61, end: 67},
jump_Right: {start: 68, end: 76 },
jump_Left: {start: 77, end: 84 },
crouch_Right_Down: {start: 85, end: 90},
crouch_Right_Up: {start: 91, end: 94},
crouch_Left_Down: {start: 95, end: 100},
crouch_Left_Up: {start: 101, end: 104},
walk_Right: {start: 146, end: 154},
walk_Left: {start: 155, end: 162},
kick_Right_Up: {start: 163, end: 167},
kick_Left_Up: {start: 168, end: 172},
},
size: {
w: 224,
h: 214
}
},
bar_enemy_timing:{
value: {
punch_Right: {start: 261, end: 276},
punch_Left: {start: 15, end: 30},
punch_Right_Down: {start: 181, end: 195, active: {start:192, end:195} },
punch_Left_Down: {start: 167, end: 180, active: {start:176, end:179} },
block_Right: {start: 254, end: 259, speed: 1},
block_Left: {start: 248, end: 253, speed: 1},
block_Right_Up: {start: 73, end: 85},
block_Left_Up: {start: 49, end: 57},
block_Right_Down: {start: 243, end: 247, speed: 1},
block_Left_Down: {start: 238, end: 242, speed: 1},
stand_Left: {start: 0, end: 6, speed: 1},
stand_Right: {start: 7, end: 13, speed: 1},
jump_Right: {start: 120, end: 131 },
jump_Left: {start: 97, end: 108 },
crouch_Right_Down: {start: 150, end: 165},
crouch_Right_Up: {start: 162, end: 155},
crouch_Left_Down: {start: 133, end: 148},
crouch_Left_Up: {start: 145, end: 140},
walk_Right: {start: 223, end: 237},
walk_Left: {start: 208, end: 222},
kick_Right_Up: {start: 203, end: 208},
kick_Left_Up: {start: 197, end: 202}
},
size: {
w: 148,
h: 214
},
speed: 2
},
car_salon_enemy_timing:{
value: {
punch_Right: {start: 159, end: 166},
punch_Left: {start: 8, end: 15},
punch_Right_Down: {start: 64, end: 70},
punch_Left_Down: {start: 134, end: 140},
block_Right: {start: 0, end: 7},
block_Left: {start: 39, end: 45},
block_Right_Up: {start: 18, end: 22},
block_Left_Up: {start: 26, end: 30},
block_Right_Down: {start: 125, end: 133},
block_Left_Down: {start: 149, end: 157},
stand_Left: {start: 56, end: 63},
stand_Right: {start: 47, end: 55},
jump_Right: {start: 80, end: 86 },
jump_Left: {start: 87, end: 93 },
crouch_Right_Down: {start: 101, end: 107},
crouch_Right_Up: {start: 106, end: 109},
crouch_Left_Down: {start: 169, end: 172},
crouch_Left_Up: {start: 173, end: 174},
walk_Right: {start: 117, end: 124},
walk_Left: {start: 141, end: 148},
kick_Right_Up: {start: 109, end: 116},
kick_Left_Up: {start: 93, end: 100},
},
size: {
// w: 224,
// h: 214
}
},
gg_cabinet_enemy_timing:{
value: {
punch_Right: {start: 9, end: 17},
punch_Left: {start: 0, end: 8},
punch_Right_Down: {start: 124, end: 129},
punch_Left_Down: {start: 118, end: 123},
block_Right: {start: 26, end: 33},
block_Left: {start: 18, end: 25},
block_Right_Up: {start: 42, end: 49},
block_Left_Up: {start: 34, end: 41},
block_Right_Down: {start: 154, end: 161},
block_Left_Down: {start: 130, end: 137},
stand_Left: {start: 50, end: 57},
stand_Right: {start: 58, end: 65},
jump_Right: {start: 74, end: 81 },
jump_Left: {start: 66, end: 73 },
crouch_Right_Down: {start: 110, end: 114},
crouch_Right_Up: {start: 115, end: 117},
crouch_Left_Down: {start: 98, end: 104},
crouch_Left_Up: {start: 105, end: 109},
walk_Right: {start: 146, end: 153},
walk_Left: {start: 138, end: 145},
kick_Right_Up: {start: 90, end: 97},
kick_Left_Up: {start: 82, end: 89},
},
size: {
// w: 224,
// h: 214
}
}
}
// reaction — ответная рекация бота на наши действия
// chance — вероятность того, что это действие будет выбрано ботом
// name — имя реакции, отсылающее к названию действия (метода классов Player и Enemy)
// damage — урон
// resist — уменьшение урона
// complex — сложное действие, состоящее из двух или более. У него нет параметров,
// оно просто отсылает к методу классов Player и Enemy
// start и end — номера кадров начала и конца анимации
// once — действие, выванное единожды за одно нажатие клавиши (если зажали кнопку и не отпускаем),
// например walk вызывается постоянно, пока зажата клавиша, а удар при зажатой клавише
// вызовется только один раз — чтобы вызвать его еще раз надо отпустить клавишу и снова нажать
// no_return — значит, мы не возвращаемся в стойку после действия once. Например, мы присели crouch
// active — активные кадры, когда персонаж способен наносить урон, если не указано,
// то активна середина анимации
// cool_down — число ударов, после которых наступит заморозка
class FrameData{
constructor(timing){
this.timing = timing;
this.punch_Right = {once: true, start: undefined, end: undefined,
damage: 0.5,
reaction: [{name: "block", chance: "0-50"}, {name: "punch", chance: "50-80"}, {name: "stand", chance: "80-100"}]
};
this.punch_Left = {once: true, start: undefined, end: undefined,
damage: 0.5,
reaction: [{name: "block", chance: "0-50"}, {name: "punch", chance: "50-80"}, {name: "stand", chance: "80-100"}]
};
this.punch_Right_Down = {once: true, no_return: true, start: undefined, end: undefined,
damage: 0.5,
reaction: [{name: "block", chance: "0-50"}, {name: "punch", chance: "50-80"}, {name: "crouch", chance: "80-100"}]
};
this.punch_Left_Down = {once: true, no_return: true, start: undefined, end: undefined,
damage: 0.5,
reaction: [{name: "block", chance: "0-50"}, {name: "punch", chance: "50-80"}, {name: "crouch", chance: "80-100"}]
};
this.block_Right = { start: undefined, end: undefined, resist: 1, active: {start:20, end:24},
reaction: [{name: "punch", chance: "00-80"}, {name: "stand", chance: "80-100"}]
};
this.block_Left = { start: undefined, end: undefined, resist: 1 , active: {start:29, end:33},
reaction: [{name: "punch", chance: "00-80"}, {name: "stand", chance: "80-100"}]
};
this.block_Right_Up = { start: undefined, end: undefined, resist: 1, active: {start:39, end:42},
reaction: [{name: "punch", chance: "00-80"}, {name: "stand", chance: "80-100"}]
};
this.block_Left_Up = { start: undefined, end: undefined, resist: 1, active: {start:48, end:52},
reaction: [{name: "punch", chance: "00-80"}, {name: "stand", chance: "80-100"}]
};
this.block_Right_Down = { start: undefined, end: undefined, resist: 1, active: {start:39, end:42},
reaction: [{name: "punch", chance: "00-80"}, {name: "stand", chance: "80-100"}]
};
this.block_Left_Down = { start: undefined, end: undefined, resist: 1, active: {start:48, end:52},
reaction: [{name: "punch", chance: "00-80"}, {name: "stand", chance: "80-100"}]
};
this.stand_Left = { start: undefined, end: undefined,
reaction: [{name: "punch", chance: "0-60"}, {name: "kick", chance: "60-80"}, {name: "stand", chance: "80-90"}, {name: "walkAway", chance: "90-100"}]
};
this.stand_Right = { start: undefined, end: undefined,
reaction: [{name: "punch", chance: "0-60"}, {name: "kick", chance: "60-80"}, {name: "stand", chance: "80-90"}, {name: "walkAway", chance: "90-100"}]
};
this.jump_Right = { start: undefined, end: 76,
reaction: [{name: "jumpAsidePunch", chance: "0-50"}, {name: "stand", chance: "0-50"}]
},
this.jump_Left = { start: undefined, end: 84,
reaction: [{name: "jumpAsidePunch", chance: "0-50"}, {name: "stand", chance: "0-50"}]
},
this.crouch_Right_Down = {start: undefined, end: undefined, resist: 0.2, once: true , no_return: true,
reaction: [{name: "crouch", chance: "0-50"}, {name: "punch", chance: "50-100"}]
};
this.crouch_Right_Up = { start: undefined, end: 94 , once: true , no_return: true,
reaction: [{name: "crouch", chance: "0-100"}]
};
this.crouch_Left_Down = {start: undefined, end: undefined, resist: 0.2, once: true, no_return: true,
reaction: [{name: "crouch", chance: "0-50"}, {name: "punch", chance: "50-100"}]
};
this.crouch_Left_Up = { start: undefined, end: 104 , once: true, no_return: true,
reaction: [{name: "crouch", chance: "0-100"}]
};
this.walk_Right = { start: undefined, end: undefined,
reaction: [{name: "walk", chance: "0-50"}, {name: "jumpAsidePunch", chance: "50-60"}, {name: "stand", chance: "60-80"}, {name: "jumpAside", chance: "80-100"}]
};
this.walk_Left = { start: undefined, end: undefined,
reaction: [{name: "walk", chance: "0-50"}, {name: "jumpAsidePunch", chance: "50-60"}, {name: "stand", chance: "60-80"}, {name: "jumpAside", chance: "80-100"}]
};
this.kick_Right_Up = { start: undefined, end: undefined, once: true, damage: 1, cool_down: 4,
reaction: [{name: "block", chance: "0-50"}, {name: "punch", chance: "50-80"}, {name: "stand", chance: "80-100"}]
};
this.kick_Left_Up = { start: undefined, end: undefined, once: true, damage: 1, cool_down: 4,
reaction: [{name: "block", chance: "0-50"}, {name: "punch", chance: "50-80"}, {name: "stand", chance: "80-100"}]
};
this.jumpAside_Right = {};
this.jumpAside_Left = {};
this.jumpAsidePunch_Right = {};
this.jumpAsidePunch_Left = {};
this.walkAway_Right = {};
this.walkAway_Left = {};
}
}