--- title: Systèmes de Gameplay type: docs weight: 3 --- Les Systèmes de Gameplay fournissent des mécaniques de quêtes, des systèmes de progression et des fonctionnalités de gameplay pour le mode aventure. **Package:** `com.hypixel.hytale.builtin.adventure` {{< cards >}} {{< card link="objectives" title="Objectifs" subtitle="Système de quêtes et buts" >}} {{< card link="farming" title="Agriculture" subtitle="Croissance des cultures et agriculture" >}} {{< card link="npc-objectives" title="Objectifs NPC" subtitle="Quêtes liées aux NPCs" >}} {{< card link="memories" title="Mémoires" subtitle="Suivi d'état persistant" >}} {{< card link="shop" title="Boutique" subtitle="Commerce et échanges" >}} {{< card link="camera-effects" title="Effets Caméra" subtitle="Contrôle caméra cinématique" >}} {{< card link="reputation" title="Réputation" subtitle="Système de standing de faction" >}} {{< /cards >}} ## Vue d'Ensemble de l'Architecture Le système Adventure est composé de plusieurs plugins : ``` Système Adventure ├── ObjectivePlugin (objectives/) │ ├── Objective - Instance de quête avec TaskSets │ ├── ObjectiveTask - Types de tâches individuelles │ ├── ObjectiveCompletion - Gestionnaires de récompenses │ └── ObjectiveHistoryComponent - Suivi de progression ├── FarmingPlugin (farming/) │ ├── FarmingBlock/FarmingBlockState - État des cultures │ ├── TilledSoilBlock - Mécaniques de terre labourée │ ├── GrowthModifier - Engrais, eau, lumière │ └── CoopBlock/CoopResidentComponent - Poulaillers ├── NPCObjectivesPlugin (npcobjectives/) │ ├── KillTask/BountyTask - Objectifs de combat │ ├── KillTrackerSystem - Compteur d'éliminations │ └── Actions NPC (StartObjective, CompleteTask) ├── MemoriesPlugin (memories/) │ ├── PlayerMemories - Composant mémoire joueur │ ├── Memory/MemoryProvider - Types de mémoires │ └── NPCMemory - Mémoires liées aux NPCs ├── ShopPlugin (shop/) │ ├── ShopAsset - Définitions de boutiques │ ├── BarterShopAsset - Boutiques de troc │ └── ShopElement/GiveItemInteraction ├── CameraPlugin (camera/) │ ├── CameraShake - Effets de tremblement │ ├── ViewBobbing - Balancement de caméra │ └── CameraEffectSystem └── ReputationPlugin (reputation/) ├── ReputationGroup - Définitions de factions ├── ReputationRank - Niveaux de standing └── ReputationGroupComponent - Faction du NPC ``` ## Sous-packages | Package | Fichiers | Description | |---------|----------|-------------| | `objectives/` | 82 | Système de quêtes et objectifs | | `farming/` | 24 | Mécaniques d'agriculture | | `npcobjectives/` | 22 | Objectifs liés aux NPCs (tâches d'élimination) | | `memories/` | 19 | Persistance d'état et collectibles | | `shop/` | 16 | Système de commerce et troc | | `camera/` | 13 | Effets caméra (tremblement, balancement) | | `reputation/` | 12 | Système de réputation de faction | | `objectivereputation/` | 4 | Récompenses de réputation pour objectifs | | `npcreputation/` | 2 | Attitude NPC basée sur réputation | | `shopreputation/` | 1 | Items de boutique conditionnés par réputation | ## Exemple Rapide ```java // Démarrer un objectif pour un joueur ObjectivePlugin objectives = ObjectivePlugin.get(); objectives.startObjective(player, "collect_wood"); // Changer la réputation avec une faction ReputationPlugin rep = ReputationPlugin.get(); rep.changeReputation(player, "village_faction", 10, componentAccessor); // Obtenir le rang de réputation ReputationRank rank = rep.getReputationRank(store, playerRef, "village_faction"); // Vérifier si le joueur a une mémoire MemoriesPlugin memories = MemoriesPlugin.get(); boolean hasMemory = memories.hasRecordedMemory(someMemory); ``` ## Enregistrement des Plugins Chaque sous-système adventure est un plugin séparé qui enregistre : - **Composants** sur EntityStore ou ChunkStore - **Interactions** pour les interactions bloc/entité - **Assets** chargés depuis fichiers JSON/YAML - **Systèmes** pour le traitement ECS - **Commandes** pour l'administration