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" />
                    
Directory.Packages.props
<PackageReference Include="MikisAdvancedMandatory" />
                    
Project file
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
                    
#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
                    
Install as a Cake Addin
#tool nuget:?package=MikisAdvancedMandatory&version=1.0.3
                    
Install as a Cake Tool

⚔️ 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.
  • Composite Pattern: Used to treat a collection of individual items (e.g., equipped weapons or armor) as a single component.
    • Components: ArmorCollection, WeaponCollection.
  • Abstract Factory Pattern: Used to create families of related game objects (Creatures, Armor, Weapons) without specifying their concrete classes.
    • Components: IGameObjectFactory, GameObjectFactory.
  • Dependency Injection (via Constructors): Used extensively (e.g., in Creature and World) 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 by WorldEntitiesManager): Responsible for tracking the lifecycle of all active IGameObjects in the scene.
  • IConfigFileReader: Responsible for reading and parsing configuration data (e.g., world dimensions).
Product 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.

Version Downloads Last Updated
1.0.3 422 11/18/2025
1.0.2 411 11/18/2025