MikisAdvancedMandatory 1.0.3
dotnet add package MikisAdvancedMandatory --version 1.0.3
NuGet\Install-Package MikisAdvancedMandatory -Version 1.0.3
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="MikisAdvancedMandatory" Version="1.0.3" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="MikisAdvancedMandatory" Version="1.0.3" />
<PackageReference Include="MikisAdvancedMandatory" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add MikisAdvancedMandatory --version 1.0.3
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: MikisAdvancedMandatory, 1.0.3"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package MikisAdvancedMandatory@1.0.3
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=MikisAdvancedMandatory&version=1.0.3
#tool nuget:?package=MikisAdvancedMandatory&version=1.0.3
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
⚔️ RPG Game Entities
This project was a mandatory assignment. This repository contains the core component and entity structure for a simple Role-Playing Game (RPG), built using C# and following several fundamental design patterns to ensure flexibility, maintainability, and testability.
Design Patterns Used
The entity architecture is built upon the following patterns:
- Decorator Pattern: Used to enhance base items (Armor and Weapons) with additional effects or modifiers without altering their original classes.
- Components:
IArmor,IWeapon,DefenceItemDecorator,OffenceItemDecorator.
- Components:
- Composite Pattern: Used to treat a collection of individual items (e.g., equipped weapons or armor) as a single component.
- Components:
ArmorCollection,WeaponCollection.
- Components:
- Abstract Factory Pattern: Used to create families of related game objects (Creatures, Armor, Weapons) without specifying their concrete classes.
- Components:
IGameObjectFactory,GameObjectFactory.
- Components:
- Dependency Injection (via Constructors): Used extensively (e.g., in
CreatureandWorld) to ensure services and components depend only on abstractions (interfaces), adhering to the SOLID principles.
Core Components
| Component | Role | Notes |
|---|---|---|
Creature |
Abstract base for all entities that attack, move, and equip gear. | Depends on INotifier, IDamageCalculator. |
DefenceItem |
Abstract base for all defensive items. | Base component for the Decorator hierarchy. |
GameObject |
Abstract base for all entities in the world. | Implements common traits: Name, Lootable, Removeable. |
World<T> |
Manages the game's grid and coordinates external services. | Generic class to hold map data (T). |
Position / Size |
Simple, immutable-by-intent structs for spatial coordinates and dimensions. | Includes operator overloads for vector math. |
Services
IWorldManager(Implemented byWorldEntitiesManager): Responsible for tracking the lifecycle of all activeIGameObjects in the scene.IConfigFileReader: Responsible for reading and parsing configuration data (e.g., world dimensions).
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net9.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.