This is D&D 3.5 battle ground, implemented in python 3.5
p20dnd requires pygame to render battlescape
web game requires:
- eventlet
- flask
- wtforms
- flask_socketio
pip install pygame
Look at main.py.
- Create battle instance
- Generate characters and add them to battle:
- Keep iterating turns until battle is resolved
- Basic actions:
- Standard attack
- Movement
- Full attack
- Basic class progression internals: BAB, saving throw, HP
- Basic weapons, armors and shields and its stats
- Pathfinding works for single-tiled creatures (medium and smaller)
- Basic AI. AI looks for target, moves in weapon range and attacks it
- Resolving attack of opportunity for movement in threatened area
- Supported creatures with large and large sizes and appropriate reach
- Implemented event system to allow feats override different parts of game mechanics. Allows to implement feats in a less intrusive way. More stuff can be implemented without if character.has_feat('another_feat') all over the code
- Core classes
- Monk. Implemented basic progression and some class feats
- Fighter. Implemented basic progression
- Some actions and interactions are animated:
- movement
- attack start
- attack finish
- Charge attack
- draw a line OK
- move a line OK
- can be interrupted!
- pathfinding problems: stumbled by its own occupancy. Character should remove itself from the map every turn start
- Fix pathfinder:
- combatant has its own local pathfinder
- battle contains 'generic' pathfinder for far routes
- Ranged attack
- move to range OK?
- bow them all OK?
- draw an arrow
- reload action
- crossbow reload
- Some skill checks: tumble, spot, search
- Manual brain
- generate available actions
- implement UI to pick another action
- Draw weapon sprites
- Spring attack series. Because they are awesome!
- Brain should switch weapons according to situation and distance to enemy
- Vision stuff.
- Hide, Spot, listen
- Some spells (most interesting for me):
- True strike. Remove bonus after the first strike
- Shield
- Smite
- Mage armor
- Scorching ray
- Greater invisibility
- Darkness
- Grease (skills need to be implemented)
- Rhino's rush. Need charge to be implemented
- Fireball