IMHO, we could define traps like creatures (being able to add traps by changing a config file).
A trap would be defined by its kind :
- hidden : appears when triggered. Cannot be attacked. To kill it, a Kobold needs to claim its tile. example : spikes
- visible : always visible. Can be attacked by creatures. example : cannon
- camouflaged : appears only when an ennemy creature is nearby to ennemies. Can be attacked while it is not hidden. If no ennemy creature is nearby, it is hidden for ennemies.
We could also define missile types :
- Bullet : deals damage to first creature / Room / Attackable trap hit
- Spell Bullet : casts a spell when it hits something
Then we could define models for them

And their definitions : range, attackable entities (creature, room, trap), price, damage, ...