===================================================================
--- original.js
+++ change.js
@@ -30,9 +30,9 @@
self.targetStayTimeMs = 3000;
self.body = new Container();
game.addChild(self.body);
var punchDistance = 60; // Define punch distance for punching animation
- var attackDistance = 350;
+ var attackDistance = 375;
self.targetX = self.targetX || 1024; // Default target X
self.targetY = self.targetY || 1366; // Default target Y
self.shadow = self.body.attachAsset('body', {
anchorX: 0.5,
@@ -730,9 +730,9 @@
/****************************************************************************************** */
var Projections = Container.expand(function () {
var self = Container.call(this);
// Projection properties
- self.speed = 5; // Speed of the projection
+ self.speed = 15; // Speed of the projection
self.direction = 0; // Direction of the projection in radians
// Create and attach a projection asset
var projectionGraphics = self.attachAsset('projection', {
anchorX: 0.5,
@@ -746,9 +746,14 @@
// Check if the projection is out of bounds and destroy it if so
if (self.x < 0 || self.x > 2048 || self.y < 0 || self.y > 2732) {
self.destroy();
}
+ if (Date.now() - self.startTime > 600) {
+ self.destroy();
+ }
+ self.speed *= 0.95;
};
+ self.startTime = Date.now();
});
/****************************************************************************************** */
/************************************* PUNCH BUTTON CLASS ********************************** */
/****************************************************************************************** */
@@ -961,9 +966,9 @@
}
defender.isHit = true;
defender.isTouched = !defender.isGuarding;
var backDelta = defender.isGuarding ? 2 : 50;
- var backHeadDelta = defender.isGuarding ? 1 : 4;
+ var backHeadDelta = defender.isGuarding ? 4 : 10;
// Player hit reaction: head goes back, flash screen red
// Calculate defender's current direction and move back accordingly
var defenderDirection = Math.atan2(defender.y - attacker.y, defender.x - attacker.x);
// Move defender back
@@ -984,17 +989,15 @@
*/
}
var impacted = defender.handleHitImpact(attacker);
// Emit projections from behind the defender's head on hit
- if (impacted && !defender.isGuarding) {
- var projectionCount = 10;
- for (var i = 0; i < projectionCount; i++) {
- var projection = new Projections();
- projection.x = defender.x + (Math.random() - 0.5) * 100; // Randomize start position around the head
- projection.y = defender.y + (Math.random() - 0.5) * 100;
- projection.direction = Math.atan2(defender.y - attacker.y, defender.x - attacker.x) + (Math.random() - 0.5);
- game.addChild(projection);
- }
+ var projectionCount = defender.isGuarding ? 2 : 5;
+ for (var i = 0; i < projectionCount; i++) {
+ var projection = new Projections();
+ projection.x = defender.x + (Math.random() - 0.5) * 100; // Randomize start position around the head
+ projection.y = defender.y + (Math.random() - 0.5) * 100;
+ projection.direction = Math.atan2(defender.y - attacker.y, defender.x - attacker.x) + (Math.random() - 0.5);
+ game.addChild(projection);
}
var flashColor = defender.isGuarding || !impacted ? 0xcccccc : 0xFF0000;
if (defender.isGuarding) {
LK.effects.flashObject(defender.leftHand, flashColor, 100); // Flash the defender
@@ -1010,9 +1013,9 @@
// Arms back movement
var members = [];
if (defender.isGuarding) {
// Move arms back
- members = [defender.leftArm, defender.leftForearm, defender.rightArm, defender.rightForearm];
+ members = [defender.rightHand, defender.leftHand, defender.leftArm, defender.leftForearm, defender.rightArm, defender.rightForearm];
} else {
// Move head and torso back
members = [defender.head, defender.torso];
}
@@ -1020,15 +1023,25 @@
members.forEach(function (member) {
member.x += Math.cos(defenderDirection) * backHeadDelta;
member.y += Math.sin(defenderDirection) * backHeadDelta;
});
+ if (members.length == 2) {
+ // workaround for head movement
+ members[0].x += Math.cos(defenderDirection) * backHeadDelta;
+ members[0].y += Math.sin(defenderDirection) * backHeadDelta;
+ }
(function (defender, defenderDirection, backHeadDelta, members) {
LK.setTimeout(function () {
// Head returns to normal position
members.forEach(function (member) {
member.x -= Math.cos(defenderDirection) * backHeadDelta;
member.y -= Math.sin(defenderDirection) * backHeadDelta;
});
+ if (members.length == 2) {
+ // workaround for head movement
+ members[0].x -= Math.cos(defenderDirection) * backHeadDelta;
+ members[0].y -= Math.sin(defenderDirection) * backHeadDelta;
+ }
/*
defender.head.x -= 2.5 * Math.cos(defenderDirection) * backHeadDelta;
defender.head.y -= 2.5 * Math.sin(defenderDirection) * backHeadDelta;
defender.torso.x -= Math.cos(defenderDirection) * backHeadDelta;
clear
basic light gray convex round button with a red boxing glove icon. UI
Un gant de boxe bleu vu de dessus. video game
basic light round convex gray button with a raised blue shield icon.. UI
un éclair. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
remove
a basic white heart.. game icon
A boxer has lost the match..
man boxer with red gloves is KO on the ring..