From 0977914f20357f9f6c08c813e41691077cc0a12e Mon Sep 17 00:00:00 2001 From: Pabloader Date: Thu, 3 Jul 2025 14:26:25 +0000 Subject: [PATCH] Add new mob & item --- src/games/zombies/assets/enemies/crow.jpg | Bin 0 -> 22381 bytes .../zombies/assets/weapons/slingshot.jpg | Bin 0 -> 15817 bytes src/games/zombies/item.ts | 24 +++++++++++++++--- src/games/zombies/player.ts | 21 ++++++++++++--- src/games/zombies/tilemap.ts | 8 ++++-- 5 files changed, 44 insertions(+), 9 deletions(-) create mode 100644 src/games/zombies/assets/enemies/crow.jpg create mode 100644 src/games/zombies/assets/weapons/slingshot.jpg diff --git a/src/games/zombies/assets/enemies/crow.jpg b/src/games/zombies/assets/enemies/crow.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0171541c29fc3276bf36a416a31199b879872fcf GIT binary patch literal 22381 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

Il3kQ7u`@@iwz#CIkcB>OhXH;9E`qHA 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 jO^7ZRYpDJ&yHn5ipZ)_t6qtl&3)3}L?*r$$ literal 0 HcmV?d00001 diff --git a/src/games/zombies/assets/weapons/slingshot.jpg b/src/games/zombies/assets/weapons/slingshot.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2524d70d53722d51ebb79549c7748d5938f0b78e GIT binary patch literal 15817 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 literal 0 HcmV?d00001 diff --git a/src/games/zombies/item.ts b/src/games/zombies/item.ts index 6ba8c5c..f9955b7 100644 --- a/src/games/zombies/item.ts +++ b/src/games/zombies/item.ts @@ -5,6 +5,7 @@ import police from './assets/characters/police.jpg'; import runner from './assets/characters/runner.jpg'; import boss from './assets/enemies/boss.jpg'; +import crow from './assets/enemies/crow.jpg'; import dog from './assets/enemies/dog.jpg'; import spider from './assets/enemies/spider.jpg'; import zombie from './assets/enemies/zombie.jpg'; @@ -21,6 +22,7 @@ import grenade from './assets/weapons/grenade.jpg'; import knife from './assets/weapons/knife.jpg'; import pistol from './assets/weapons/pistol.jpg'; import rocketLauncher from './assets/weapons/rocket_launcher.jpg'; +import slingshot from './assets/weapons/slingshot.jpg'; import shotgun from './assets/weapons/shotgun.jpg'; export const ItemType = { @@ -31,6 +33,7 @@ export const ItemType = { CHAR_RUNNER: runner, ENEMY_BOSS: boss, + ENEMY_CROW: crow, ENEMY_DOG: dog, ENEMY_SPIDER: spider, ENEMY_ZOMBIE: zombie, @@ -47,6 +50,7 @@ export const ItemType = { WEAPON_KNIFE: knife, WEAPON_PISTOL: pistol, WEAPON_ROCKET_LAUNCHER: rocketLauncher, + WEAPON_SLINGSHOT: slingshot, WEAPON_SHOTGUN: shotgun, } as const; @@ -65,12 +69,17 @@ export default class Item { get isEnemy() { return [ ItemType.ENEMY_BOSS, + ItemType.ENEMY_CROW, ItemType.ENEMY_DOG, ItemType.ENEMY_SPIDER, ItemType.ENEMY_ZOMBIE, ].includes(this.type); } + get isFlyingEnemy() { + return this.type === ItemType.ENEMY_CROW; + } + get isItem() { return [ ItemType.ITEM_FUEL, @@ -81,7 +90,7 @@ export default class Item { } get isWeapon() { - return this.isMeleeWeapon || this.isShootingWeapon || [ + return this.isMeleeWeapon || this.isRangedWeapon || [ ItemType.WEAPON_GRENADE, ItemType.WEAPON_ROCKET_LAUNCHER, ].includes(this.type); @@ -91,18 +100,27 @@ export default class Item { return [ ItemType.WEAPON_AXE, ItemType.WEAPON_KNIFE, + ItemType.ITEM_PLANKS, ].includes(this.type); } - get isShootingWeapon() { + get isRangedWeapon() { return [ ItemType.WEAPON_ASSAULT_RIFLE, ItemType.WEAPON_CROSSBOW, ItemType.WEAPON_PISTOL, + ItemType.WEAPON_SLINGSHOT, ItemType.WEAPON_SHOTGUN, ].includes(this.type); } + get isSpendingWeapon() { + return ( + this.type === ItemType.ITEM_PLANKS || + (this.type !== ItemType.WEAPON_SLINGSHOT && this.isRangedWeapon) + ); + } + get isBoss() { return this.type === ItemType.ENEMY_BOSS; } @@ -113,7 +131,7 @@ export default class Item { ItemType.WEAPON_GRENADE, ].includes(this.type); } - + toString() { return Object.entries(ItemType).find(t => t[1] === this.type)?.[0]; } diff --git a/src/games/zombies/player.ts b/src/games/zombies/player.ts index 4097286..f1226a1 100644 --- a/src/games/zombies/player.ts +++ b/src/games/zombies/player.ts @@ -45,8 +45,8 @@ export default class Player extends Character { return this.inventory.find(i => i.isMeleeWeapon); } - get gun() { - return this.inventory.find(i => i.isShootingWeapon); + get rangedWeapon() { + return this.inventory.find(i => i.isRangedWeapon); } get grenade() { @@ -83,6 +83,10 @@ export default class Player extends Character { return this.inventory[i]; } + public spendItem(item: Item | null | undefined): boolean { + return Boolean(item?.isSpendingWeapon) && this.removeItem(item); + } + public removeItem(item: Item | null | undefined): boolean { if (!item) { return false; @@ -130,6 +134,8 @@ export default class Player extends Character { /** @returns true, if action was performed */ public handleSpin(action: SpinnerAction): boolean { + const enemy = this.tile.enemy; + switch (action) { case SpinnerAction.RUN: return true; @@ -139,10 +145,17 @@ export default class Player extends Character { return true; case SpinnerAction.MELEE: - return !this.tile.enemy?.isBoss && this.meleeWeapon != null; + if (!enemy) return false; + if (enemy.isBoss) return false; + if (enemy.isFlyingEnemy) return false; + + return this.spendItem(this.meleeWeapon); case SpinnerAction.SHOOT: - return !this.tile.enemy?.isBoss && this.removeItem(this.gun); + if (!enemy) return false; + if (enemy.isBoss) return false; + + return this.spendItem(this.rangedWeapon); } } } diff --git a/src/games/zombies/tilemap.ts b/src/games/zombies/tilemap.ts index 9886304..682b7e2 100644 --- a/src/games/zombies/tilemap.ts +++ b/src/games/zombies/tilemap.ts @@ -174,6 +174,7 @@ export default class TileMap extends Entity { for (const _ in range(amount)) { const Constructor = [ ItemType.ENEMY_BOSS, + ItemType.ENEMY_CROW, ItemType.ENEMY_DOG, ItemType.ENEMY_SPIDER, ItemType.ENEMY_ZOMBIE, @@ -383,7 +384,6 @@ export default class TileMap extends Entity { private nextPlayer() { this.spinner.stop(); let overflow = false; - let startIndex = this.currentPlayerIdx; do { let nextIdx = this.currentPlayerIdx + 1; if (nextIdx >= this.players.length) { @@ -399,6 +399,10 @@ export default class TileMap extends Entity { this.currentPlayerIdx = nextIdx; } while (!this.player.active); + const numFoundPlayers = this.foundPlayers.size; + const enemiesActive = numFoundPlayers === Object.keys(Players).length + || this.players.length < numFoundPlayers; + if (this.win) { const endTile = this.tiles.findLast(t => t.type === TileType.END); if (endTile) { @@ -408,7 +412,7 @@ export default class TileMap extends Entity { } } setTimeout(alert, 2000, "🎉🎉🎉 ПОБЕДА! 🚗 🎉🎉🎉"); - } else if (overflow && this.players.length < this.foundPlayers.size) { // if someone is dead + } else if (overflow && enemiesActive) { const enemies = this.enemies; loop: