feat: initialize TRXTD browser tower defense
This commit is contained in:
commit
c4347f8420
34 changed files with 8302 additions and 0 deletions
43
scripts/test-obstacle.mts
Normal file
43
scripts/test-obstacle.mts
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
import { GameEngine } from '../src/game/engine.ts'
|
||||
import { store } from '../src/game/store.ts'
|
||||
|
||||
const eng = new GameEngine()
|
||||
eng.startGame('normal')
|
||||
|
||||
// irgendein blockierendes Hindernis finden
|
||||
const blocked = [...eng.blockedCells]
|
||||
console.log('blockierte Zellen:', blocked.length)
|
||||
const [tx, ty] = blocked[0].split(',').map(Number)
|
||||
const item = eng.obstacleAt(tx, ty)!
|
||||
console.log('Hindernis:', item.type, 'auf', tx, ty, '| canPlace davor:', eng.canPlace(tx, ty))
|
||||
|
||||
// per Klick auswählen (Klick auf Zellmitte); store wird in step() synchronisiert
|
||||
eng.click(tx * 48 + 24, ty * 48 + 24)
|
||||
eng.step(0)
|
||||
console.log('Panel offen:', store.obstacle !== null, '| Typ:', store.obstacle?.type, '| Kosten:', store.obstacle?.cost)
|
||||
|
||||
// zu wenig Gold -> Ablehnung
|
||||
eng.money = 10
|
||||
eng.removeSelectedObstacle()
|
||||
console.log('abgelehnt bei 10 Gold: Panel noch offen =', store.obstacle !== null, '| Gold =', eng.money)
|
||||
|
||||
// genug Gold -> Entfernen klappt
|
||||
eng.money = 500
|
||||
eng.removeSelectedObstacle()
|
||||
eng.step(0)
|
||||
console.log(
|
||||
'entfernt: Panel zu =', store.obstacle === null,
|
||||
'| Gold -' + (500 - eng.money),
|
||||
'| canPlace danach:', eng.canPlace(tx, ty),
|
||||
'| Dekor weg:', eng.obstacleAt(tx, ty) === undefined,
|
||||
)
|
||||
|
||||
// Turm auf freigewordener Zelle bauen
|
||||
console.log('Turmbau auf Zelle:', eng.placeTower('arrow', tx, ty))
|
||||
|
||||
// Neustart stellt Hindernisse wieder her
|
||||
eng.startGame('normal')
|
||||
console.log(
|
||||
'nach Neustart wieder blockiert:', eng.blockedCells.has(tx + ',' + ty),
|
||||
'| Anzahl wie vorher:', eng.blockedCells.size === blocked.length,
|
||||
)
|
||||
Loading…
Add table
Add a link
Reference in a new issue