Gestion des Items

Cette section détaille les composants qui gèrent les objets (items) dans le jeu.

Relations avec le côté Client

Côté client, plusieurs composants interagissent avec le système d'objets:

Types d'objets

Le jeu propose trois types d'objets (définis dans EffectType) :

GameItemService (game-item.service.ts)

Service qui gère les interactions de base avec les objets du jeu.

Méthodes

applyIceEffect(game: OnGoingGame, event: Vec2, player: Player)
replaceRandomItems(game: OnGoingGame): void

GameItemHandlerService

Service (game-item-handler.service.ts) qui traite les événements liés aux objets et gère leur ramassage et utilisation.

Méthodes

initialize(service: IOnGoingGameService): void
handleItemEvents(socket: Socket): void
processItemPickup(game: OnGoingGame, player: Player, event: Vec2, cell: Cell): boolean
private handleRejectItem(socket: Socket): void
private handleSwapRejectItem(socket: Socket): void

ItemHandlerService (item-handler.service.ts)

Service utilitaire qui fournit des fonctions de manipulation d'objets, notamment lors des combats.

Méthodes

constructor()
dropPlayerItems(onGoingGame: OnGoingGame, player: Player, gameCode: string, socketService: SocketService, loserPosition: Vec2): void
deactivateItemEffects(player: Player, item: Item): void

OnGoingGameItemHandling

Classe utilitaire (on-going-game-item-handling.ts) qui fournit des méthodes statiques pour la manipulation des objets dans le contexte d'une partie.

Méthodes

static pickupItem(player: Player, position: Vec2, game: OnGoingGame): boolean
static isInventoryFull(player: Player, game: OnGoingGame): boolean
static placeItemOnGrid(item: Item, position: Vec2, game: OnGoingGame): void
static reevaluateConditionalItems(player: Player): void
static hasActiveItem(player: Player, itemId: string): boolean
static swapItem(player: Player, newItem: Item, rejectedItemId: string): Item | null
static checkWinCondition(player: Player, game: OnGoingGame): boolean
static addItemToPlayer(player: Player, cell: Cell): boolean
static checkForConditionItems(player: Player): boolean
static rejectItem(player: Player, rejectId: string, cell: Cell): Item | null
static addItemAndReject(player: Player, cell: Cell): boolean
static getItemFromPosition(position: Vec2, game: OnGoingGame): Item | null
static getPlayerWithFlag(players: Player[]): Player | null
static getFlagCell(game: OnGoingGame): Cell | null
static getAllItemsCells(game: OnGoingGame)

Méthodes privées

Ces méthodes privées gèrent les détails de l'application et du retrait des effets d'objets. Importance: Élevée - Mécanique fondamentale.

Item (item.ts)

Classe qui représente un objet dans le jeu.

Propriétés importantes

Méthodes

constructor(params: ItemParams)
static initializeAllItems(game: Game | null, maxItems: number): Item[]