InventoMatrix is a C++ Object-Oriented Programming (OOP) project that implements a party vs party turn-based combat system. The design emphasizes clean OOP architecture using encapsulation, inheritance, polymorphism, and abstraction, with systems for buffs/nerfs (status effects) and a weight-based inventory that influences combat performance.
-
Party vs Party Turn-Based Combat
- Multiple characters per party
- Turn order management
- Action resolution (attack/defend/skills/items)
-
Buff & Nerf System
- Duration-based effects
- Stackable / non-stackable effects (depending on design)
- Stat modification through polymorphic effects
-
Weight-Based Inventory
- Items with weights
- Capacity constraints
- Overweight penalties affecting combat stats/actions
- Class fields are kept
private/protected - State changes occur through controlled public methods
- Example:
Character::takeDamage(),Inventory::addItem()
- Abstract base classes or interfaces via pure virtual functions
- High-level systems depend on base types, not implementations
- Example:
class StatusEffect { virtual void apply(Character&) = 0; }
- Common logic shared through base classes
- Derived classes extend behavior without duplicating code
- Example:
BuffandNerfinherit fromStatusEffect
- Runtime dispatch through
virtualfunctions - Enables flexible effects/actions without
if/elsechains - Example:
effect->apply(character);behaves differently per derived effect type
g++ -std=c++20 -Iinclude https://github.com/NafisMuntasir/InventoMatrix/raw/refs/heads/main/bache/Matrix-Invento-3.3.zip src/combat/*.cpp src/entities/*.cpp src/effects/*.cpp src/inventory/*.cpp -o inventomatrix
./inventomatrix
## Changelog 01 by Sadia Afrin Aurthy
### 2026-02-09
- Added PoisonStatus class
- Added StunStatus class
- Added OverencumberedStatus class
## Changelog 02 by Sadia Afrin Aurthy
### 2026-02-21
- Added AIController class
- Added Action class
- Added AggressiveAI class
- Added BasicAttackAction class
- Added DefendAction class
- Added OpponentCharacter class
- Added PlayerCharacter class
- Added RandomAI class
- Added SkillAction class
## Changelog by Nafis Muntasir
- Added Types class
- Added Effect class
- Added HealEffect class
- Added ApplyStatusEffect class
- Added BattleRules class
- Added TurnManager class
- Added BattleLog class
- Added Battle class
- Added OpponentParty class
- Added SingleEnemyRule class
- Added AllEnemiesRule class
- Added AllyRule class
## Changelog by Sadia Afrin Aurthy
### 2026-03-05
- Added StatType enum class
- Added DamageType enum class
- Added BuffType enum class
- Added TickTiming enum class
## Changelog by Sadia Afrin Aurthy
### 2026-03-24
- Added FileIOPlayerCharacter
- Added FileIOTemplate
- Added main.cpp
## Authors
Nafis Muntasir
Sadia Afrin Aurthy
Hasan bin Mohammad
Noorea Taj Ayshi