25 lines
959 B
Python
25 lines
959 B
Python
|
|
"""McRogueFace - Damage Flash Effect (multi)
|
||
|
|
|
||
|
|
Documentation: https://mcrogueface.github.io/cookbook/effects_damage_flash
|
||
|
|
Repository: https://github.com/jmccardle/McRogueFace/blob/master/docs/cookbook/effects/effects_damage_flash_multi.py
|
||
|
|
|
||
|
|
This code is extracted from the McRogueFace documentation and can be
|
||
|
|
run directly with: ./mcrogueface path/to/this/file.py
|
||
|
|
"""
|
||
|
|
|
||
|
|
import mcrfpy
|
||
|
|
|
||
|
|
def multi_flash(grid, x, y, color, flashes=3, flash_duration=0.1):
|
||
|
|
"""Flash a cell multiple times for emphasis."""
|
||
|
|
delay = 0
|
||
|
|
|
||
|
|
for i in range(flashes):
|
||
|
|
# Schedule each flash with increasing delay
|
||
|
|
def do_flash(timer_name, fx=x, fy=y, fc=color, fd=flash_duration):
|
||
|
|
flash_cell(grid, fx, fy, fc, fd)
|
||
|
|
|
||
|
|
mcrfpy.Timer(f"flash_{x}_{y}_{i}", do_flash, int(delay * 1000), once=True)
|
||
|
|
delay += flash_duration * 1.5 # Gap between flashes
|
||
|
|
|
||
|
|
# Usage for critical hit
|
||
|
|
multi_flash(grid, int(enemy.x), int(enemy.y), (255, 255, 0), flashes=3)
|