Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
120 commits
Select commit Hold shift + click to select a range
273ca19
doc: class diagram
SlackingSlothh Apr 12, 2026
8bd6db7
doc: CD DrawCard relationship
SlackingSlothh Apr 12, 2026
14bfad5
doc: CD Bankcrupt Exception
SlackingSlothh Apr 12, 2026
2b9253e
refactor: rename bankcrupt -> bankrupt
SlackingSlothh Apr 12, 2026
c7e514d
doc: CD Loader (unfinished)
SlackingSlothh Apr 12, 2026
ec3bae4
Refactor class diagram to use generic CardDeck
NikSamSim Apr 12, 2026
b802d2a
Refactor class diagram to include operator overloads
NikSamSim Apr 12, 2026
015d140
merge: CD
SlackingSlothh Apr 12, 2026
0aff9d4
doc: CD change ColorGroup to string, config typing, Loader finishing,…
SlackingSlothh Apr 12, 2026
1e602d1
Add new exception classes
NikSamSim Apr 12, 2026
775f6fa
doc: CD add exception dependency, add effect attribute to DrawCard, r…
SlackingSlothh Apr 12, 2026
5b4b8a0
feat: add tradeManager and separate Liquidation from BankruptcyManager
LutherCeltors Apr 12, 2026
eb21d82
Merge branch 'main' of https://github.com/Labpro-22/tugas-besar-1-swt-5
LutherCeltors Apr 12, 2026
d373893
feat: add association for player, property Tile, and BankruptcyManage…
LutherCeltors Apr 12, 2026
7d5aa91
feat: change layout (left to right) and add layer box
LutherCeltors Apr 12, 2026
90c7df2
Update method signatures in class diagram
NikSamSim Apr 12, 2026
dfe5557
doc : add comment for previewing PlantUML diagram in VSCode
alyanrrhma Apr 12, 2026
ab491fd
feat: change vector type into map in TradeManager and TradeToPlayer c…
LutherCeltors Apr 12, 2026
448cf6e
feat: change getter return value in tradeToPlayer class from vector t…
LutherCeltors Apr 12, 2026
9d08c62
feat: add executeCommand(command: string) in Game
LutherCeltors Apr 12, 2026
4997180
doc : Upload laporan milestone 1
alyanrrhma Apr 12, 2026
f05f037
feat: implement UIElement class with boundary management methods
zizadhrmaa Apr 12, 2026
7f792b4
feat: add Label class with constructor and draw method
zizadhrmaa Apr 12, 2026
718016d
feat: add Button class with constructor, draw method, and onClick fun…
zizadhrmaa Apr 12, 2026
d0d4e19
feat: implement TextField class with drawing and input handling methods
zizadhrmaa Apr 12, 2026
9b10ad0
feat: enhance TextField update method for character input handling
zizadhrmaa Apr 12, 2026
b8ffc3b
feat: implement GridItem class with constructor, draw, update, and la…
zizadhrmaa Apr 12, 2026
fbbbdb8
feat: add friend class declaration for GridContainer in GridItem
zizadhrmaa Apr 12, 2026
fcf693b
feat: implement GridContainer class with constructor, draw, update, a…
zizadhrmaa Apr 12, 2026
2094b8f
feat: implement Flexbox class with add and update methods
zizadhrmaa Apr 13, 2026
8089824
feat: implement draw method in Flexbox class
zizadhrmaa Apr 13, 2026
7bf00f8
feat: implement VerticalFlexbox class with constructor and layout method
zizadhrmaa Apr 13, 2026
a9df516
feat: implement HorizontalFlexbox class with constructor and layout m…
zizadhrmaa Apr 13, 2026
445cc87
feat: implement Popup class with draw, update, and add methods
zizadhrmaa Apr 13, 2026
730f4a7
feat: update Popup class to inherit from UIElement for direct boundin…
zizadhrmaa Apr 14, 2026
d959269
feat: implement Scene class with popup management methods
zizadhrmaa Apr 14, 2026
a1118a2
feat: implement MainMenuScene class with draw and update methods
zizadhrmaa Apr 14, 2026
2353b45
feat: implement InGameScene class with draw and update methods
zizadhrmaa Apr 14, 2026
cfe4370
feat: implement SceneManager class with scene management methods
zizadhrmaa Apr 14, 2026
63f5450
feat : implement Nimonspoli class
zizadhrmaa Apr 14, 2026
83c0cb2
feat : implement program utama
zizadhrmaa Apr 14, 2026
99b960a
feat: add header class for config and loader, also implement config.cpp
LutherCeltors Apr 17, 2026
fac7fd1
feat: implement board
alyanrrhma Apr 20, 2026
6928448
feat(tile): implement core tile hierarchy (Tile, PropertyTile, Action…
alyanrrhma Apr 20, 2026
d09355e
add Game and GameManager header class
NikSamSim Apr 21, 2026
d78e458
add Account and AccountManager header class
NikSamSim Apr 22, 2026
099a831
add TUrnManager header class
NikSamSim Apr 22, 2026
d7daf0e
add AuctionManager, BancruptcyManager, LiquidationManager header class
NikSamSim Apr 22, 2026
39ab06d
add InvalidActionException.hpp, BancruptException.hpp, GameException.…
NikSamSim Apr 22, 2026
e45f2bd
feat: implement Account and AccountManager core logic
NikSamSim Apr 22, 2026
18f8427
feat: implement Exception handle
NikSamSim Apr 22, 2026
860519f
feat: implement TurnManager
NikSamSim Apr 22, 2026
8cc1cb2
refactor LiquidationManager class
NikSamSim Apr 22, 2026
a7716e5
feat: AuctionManager
NikSamSim Apr 22, 2026
680421e
feat: BancruptcyManager
NikSamSim Apr 22, 2026
e987402
feat: add dice
SlackingSlothh Apr 23, 2026
54eda3e
feat: add account header
SlackingSlothh Apr 23, 2026
c0f005f
feat: add player header
SlackingSlothh Apr 23, 2026
0f348dc
feat: add account exceptions
SlackingSlothh Apr 23, 2026
8515b6f
feat: add account manager
SlackingSlothh Apr 23, 2026
5d1e47b
feat: add AbilityCard header
SlackingSlothh Apr 23, 2026
31089ea
feat: add AbilityCard subclasses header
SlackingSlothh Apr 23, 2026
cf5d8b0
feat: add AbilityCardDeck header
SlackingSlothh Apr 23, 2026
fbff42e
feat: add AbilityCardDeck implementation
SlackingSlothh Apr 23, 2026
6ec9f17
feat: add DrawCard
SlackingSlothh Apr 23, 2026
0b1dd8e
feat: add ChanceCard header
SlackingSlothh Apr 23, 2026
dd52e19
feat: add CommunityChestCard header
SlackingSlothh Apr 23, 2026
91a6ef7
feat: add DrawCardDeck header
SlackingSlothh Apr 23, 2026
f9323e4
feat: add CardManager header
SlackingSlothh Apr 23, 2026
255e7b4
feat: add CardManager implementation
SlackingSlothh Apr 23, 2026
f8fc904
feat: add Player implementation (incomplete)
SlackingSlothh Apr 23, 2026
ace8b0b
feat: add ChanceCard implementation (incomplete)
SlackingSlothh Apr 23, 2026
3d28c8d
feat: add CommunityChestCard implementation (incomplete)
SlackingSlothh Apr 23, 2026
f3f7058
feat: add DerivedAbilityCard implementation (incomplete)
SlackingSlothh Apr 23, 2026
5acfa39
Merge branch 'main' into manager-and-game-flow
NikSamSim Apr 23, 2026
4f7c819
Merge pull request #1 from Labpro-22/manager-and-game-flow
NikSamSim Apr 23, 2026
2744563
feat: add method of Player getOwnedProperties, getUsername, getId
SlackingSlothh Apr 23, 2026
b29a29a
Merge branch 'main' of https://github.com/Labpro-22/tugas-besar-1-swt…
LutherCeltors Apr 23, 2026
b3487dd
refactor: add forward declaration in Game.hpp
SlackingSlothh Apr 23, 2026
16464d0
Revert "refactor: add forward declaration in Game.hpp"
SlackingSlothh Apr 23, 2026
54dbe5a
Merge pull request #2 from Labpro-22/board-tile-property
alyanrrhma Apr 23, 2026
ae9f9de
feat: add ChanceCard subclasses implementation
SlackingSlothh Apr 23, 2026
0aeeeac
feat(data-layer): completing header for data layer
LutherCeltors Apr 23, 2026
59bb2fc
Merge branch 'main' of https://github.com/Labpro-22/tugas-besar-1-swt…
LutherCeltors Apr 23, 2026
28d8df3
Merge pull request #3 from Labpro-22/data-layer
LutherCeltors Apr 23, 2026
68c47be
feat(data-layer): completing Config implementation
LutherCeltors Apr 23, 2026
ae94f70
feat(config-data): implementing full data-layer
LutherCeltors Apr 23, 2026
d9978ae
Merge branch 'main' of https://github.com/Labpro-22/tugas-besar-1-swt…
LutherCeltors Apr 23, 2026
09d2243
feat: update game state saver and loader
LutherCeltors Apr 23, 2026
a0a910d
feat: testing all confighandler and composer also add some config tes…
LutherCeltors Apr 24, 2026
d589090
fix: resolve conflict from main
LutherCeltors Apr 24, 2026
a6a036d
feat: add InsufficientFundException
SlackingSlothh Apr 24, 2026
626e82e
refactor: change InsufficientFundException ctor and attribute
SlackingSlothh Apr 24, 2026
0ab04f1
feat: add exception to Player::pay()
SlackingSlothh Apr 24, 2026
4425d7a
feat: add exception handling to community chest cards
SlackingSlothh Apr 24, 2026
f55837f
feat: implement AccountDataManager
LutherCeltors Apr 24, 2026
e3754d0
Refactor UI components and enhance MainMenuScene functionality
zizadhrmaa Apr 26, 2026
5c42839
Merge remote-tracking branch 'origin' into data-layer
LutherCeltors Apr 26, 2026
146e29b
implement game class
NikSamSim Apr 26, 2026
d53f4f6
implement GameManager
NikSamSim Apr 26, 2026
08df115
Merge branch 'main' of https://github.com/Labpro-22/tugas-besar-1-swt…
LutherCeltors Apr 26, 2026
b76646f
feat: Implement UI integration with dummy core for initial testing
zizadhrmaa Apr 26, 2026
a74f2be
feat: preparing header for GameStateSaver
LutherCeltors Apr 26, 2026
11b4028
feat TradeToPlayer
NikSamSim Apr 26, 2026
d54e819
feat: TradeManager
NikSamSim Apr 26, 2026
2c740ec
fix: resolve pointer object inconsistency, add copy constructor
SlackingSlothh Apr 26, 2026
691f794
feat: add asset wealth to Player::getTotalWealth()
SlackingSlothh Apr 26, 2026
a1a2f01
feat: add setter and getter function for save and load purpose
LutherCeltors Apr 26, 2026
bd0dd26
feat: add igonre IDE such as .vscode
LutherCeltors Apr 26, 2026
1bc735c
feat: implement setter of TurnManager
LutherCeltors Apr 26, 2026
af32c74
feat: implement saver for game state
LutherCeltors Apr 26, 2026
1c1d1cc
fix: delete false return value of tiles getter method
LutherCeltors Apr 26, 2026
85982f3
fix: resolve merge conflict with main
LutherCeltors Apr 26, 2026
fccbc74
feat: adjust delete const reference for properties getter and change …
LutherCeltors Apr 26, 2026
03c9ea8
fix: adjust implementation for newest Player.hpp, especially for upda…
LutherCeltors Apr 26, 2026
488b34e
style: separate diffrent method declaration
LutherCeltors Apr 26, 2026
2e54948
fix: adjust include path
LutherCeltors Apr 26, 2026
4f47d83
feat: add serialize method for every child of AbilityCard, and declar…
LutherCeltors Apr 26, 2026
39c0aa6
feat: complete GameStateSaver feature
LutherCeltors Apr 26, 2026
e3ffcbe
feat: add GameStateLoader implementation
LutherCeltors Apr 26, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,9 @@ bin/

# debug information files
*.dwo

#testing files
test*

#IDE
.vscode
50 changes: 50 additions & 0 deletions RAYLIB_RUNTIME_FIX.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# Raylib Runtime Fix

Stub hanya untuk memastikan UI bisa dikompilasi ketika backend belum selesai.

Untuk menjalankan GUI sungguhan, pakai Raylib asli. Pastikan urutan foldernya begini:

```text
NAMA_FOLDER/
├── raylib/
└── tugas-besar-1-swt-5/
```

Cara clone Raylib:

```bash
cd ..
git clone https://github.com/raysan5/raylib.git
```

## Ubuntu atau WSL

```bash
cd ../raylib
mkdir -p build
cd build
cmake -DBUILD_SHARED_LIBS=OFF ..
make -j$(nproc)
```

Kalau cmake atau dependency belum ada:

```bash
sudo apt update
sudo apt install git build-essential cmake libasound2-dev libx11-dev libxrandr-dev libxi-dev libgl1-mesa-dev libglu1-mesa-dev libxcursor-dev libxinerama-dev
```

Setelah Raylib selesai dibuild, balik ke project:

```bash
cd ../../tugas-besar-1-swt-5
make clean
make run
```

Kalau hanya ingin compile tanpa membuka window:

```bash
make clean
make run-stub
```
46 changes: 46 additions & 0 deletions UI_INTEGRATION_NOTES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# UI Integration Notes

Tujuan versi ini adalah membuat UI layer bisa dibuild dan dijalankan lebih dulu tanpa memaksa core dan data-layer asli selesai.

## Prinsip versi ini

- UI berkomunikasi lewat `IGameFacade`.
- Implementasi sementara ada di `include/coredummy` dan `src/coredummy`.
- `src/data-layer` dan `include/data-layer` tidak diubah.
- Makefile sengaja tidak meng-compile core/data-layer yang belum stabil.
- Dummy board dibuat oleh `DummyBoardFactory`, bukan dari config parser.

## File dummy yang ditambahkan

- `include/coredummy/GameViewModel.hpp`
- `include/coredummy/IGameFacade.hpp`
- `include/coredummy/MockGameFacade.hpp`
- `include/coredummy/DummyBoardFactory.hpp`
- `src/coredummy/MockGameFacade.cpp`
- `src/coredummy/DummyBoardFactory.cpp`

## Nanti saat core asli sudah siap

Buat adapter baru, misalnya `RealGameFacade`, yang implement `IGameFacade`.
UI tidak perlu tahu apakah data datang dari dummy atau core asli.

Ganti di `src/views/Nimonspoli.cpp`:

```cpp
std::make_unique<MockGameFacade>()
```

menjadi:

```cpp
std::make_unique<RealGameFacade>()
```

## Catatan Raylib

`make run` memakai Raylib asli secara default.
Kalau hanya ingin tes compile tanpa window:

```bash
make run-stub
```
13 changes: 13 additions & 0 deletions config/aksi.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
ID KODE NAMA JENIS_PETAK WARNA
1 GO Petak_Mulai SPESIAL DEFAULT
3 DNU Dana_Umum KARTU DEFAULT
5 PPH Pajak_Penghasilan PAJAK DEFAULT
8 FES Festival FESTIVAL DEFAULT
11 PEN Penjara SPESIAL DEFAULT
18 DNU Dana_Umum KARTU DEFAULT
21 BBP Bebas_Parkir SPESIAL DEFAULT
23 KSP Kesempatan KARTU DEFAULT
31 PPJ Petak_Pergi_ke_Penjara SPESIAL DEFAULT
34 FES Festival FESTIVAL DEFAULT
37 KSP Kesempatan KARTU DEFAULT
39 PBM Pajak_Barang_Mewah PAJAK DEFAULT
2 changes: 2 additions & 0 deletions config/misc.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
MAX_TURN SALDO_AWAL
15 1000
29 changes: 29 additions & 0 deletions config/property.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
ID KODE NAMA JENIS WARNA HARGA_LAHAN NILAI_GADAI UPG_RUMAH UPG_HT RENT_L0 RENT_L1 RENT_L2 RENT_L3 RENT_L4 RENT_L5
2 GRT GARUT STREET COKLAT 60 40 20 50 2 10 30 90 160 250
4 TSK TASIKMALAYA STREET COKLAT 60 40 50 50 4 20 60 180 320 450
6 GBR STASIUN_GAMBIR RAILROAD DEFAULT 0 20
7 BGR BOGOR STREET BIRU_MUDA 100 80 20 50 6 30 90 270 400 550
9 DPK DEPOK STREET BIRU_MUDA 100 80 20 50 6 30 90 270 400 550
10 BKS BEKASI STREET BIRU_MUDA 120 90 20 50 8 40 100 300 450 600
12 MGL MAGELANG STREET MERAH_MUDA 140 100 100 100 10 50 150 450 625 750
13 PLN PLN UTILITY ABU_ABU 0 25
14 SOL SOLO STREET MERAH_MUDA 140 100 100 100 10 50 150 450 625 750
15 YOG YOGYAKARTA STREET MERAH_MUDA 160 120 100 100 12 60 180 500 700 900
16 STB STASIUN_BANDUNG RAILROAD DEFAULT 0 40
17 MAI MALANG STREET ORANGE 180 135 100 100 14 70 200 550 750 950
19 SMG SEMARANG STREET ORANGE 180 140 100 100 14 70 200 550 750 950
20 SBY SURABAYA STREET ORANGE 200 150 100 100 16 80 220 600 800 1000
22 MKS MAKASSAR STREET MERAH 220 175 150 150 18 90 250 700 875 1050
24 BLP BALIKPAPAN STREET MERAH 220 175 150 150 18 90 250 700 875 1050
25 MND MANADO STREET MERAH 240 190 150 150 20 100 300 750 925 1100
26 TUG STASIUN_TUGU RAILROAD DEFAULT 0 50
27 PLB PALEMBANG STREET KUNING 260 200 150 150 22 110 330 800 975 1150
28 PKB PEKANBARU STREET KUNING 260 210 150 150 22 110 330 800 975 1150
29 PAM PAM UTILITY ABU_ABU 0 60
30 MED MEDAN STREET KUNING 280 225 150 150 24 120 360 850 1025 1200
32 BDG BANDUNG STREET HIJAU 300 250 200 200 26 130 390 900 1100 1275
33 DEN DENPASAR STREET HIJAU 300 260 200 200 26 130 390 900 1100 1275
35 MTR MATARAM STREET HIJAU 320 280 200 200 28 150 450 1000 1200 1400
36 GUB STASIUN_GUBENG RAILROAD DEFAULT 0 120
38 JKT JAKARTA STREET BIRU_TUA 350 300 200 200 35 175 500 1100 1300 1500
40 IKN IBU_KOTA_NUSANTARA STREET BIRU_TUA 400 350 200 200 50 200 600 1400 1700 2000
5 changes: 5 additions & 0 deletions config/railroad.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
JUMLAH_RAILROAD BIAYASEWA
1 25
2 50
3 100
4 200
2 changes: 2 additions & 0 deletions config/special.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
GO_SALARY JAIL_FINE
200 50
2 changes: 2 additions & 0 deletions config/tax.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
PPH_FLAT PPH_PERSENTASE PBM_FLAT
150 10 200
3 changes: 3 additions & 0 deletions config/utility.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
JUMLAH_UTILITY FAKTOR_PENGALI
1 4
2 10
Binary file added doc/IF2010_TB1-M1_SWT.pdf
Binary file not shown.
Loading