small_wave.gd
· 687 B · GDScript3
Raw
@tool
extends RichTextEffect
class_name SmallWaveEffect
var bbcode = "smallwave"
func _process_custom_fx(char_fx: CharFXTransform) -> bool:
var time = fmod(char_fx.elapsed_time * 8 - char_fx.relative_index + 100, 10)
var local_time = fmod(time, 1)
if time < 1:
char_fx.offset = Vector2(0, -5 * (sin(local_time * PI)))
if time < 3 or time >= 8:
var color_time = local_time
if time >= 1 and time < 3:
color_time += 1
if time >= 2 and time < 3:
color_time += 1
if time >= 0 and time < 3:
color_time += 1
if time >= 9 or time < 3:
color_time += 1
char_fx.color.a = (sin(color_time / 5 * PI)) * 0.3 + 0.7
else:
char_fx.color.a = 0.7
return true
| 1 | @tool |
| 2 | extends RichTextEffect |
| 3 | class_name SmallWaveEffect |
| 4 | |
| 5 | var bbcode = "smallwave" |
| 6 | |
| 7 | func _process_custom_fx(char_fx: CharFXTransform) -> bool: |
| 8 | var time = fmod(char_fx.elapsed_time * 8 - char_fx.relative_index + 100, 10) |
| 9 | var local_time = fmod(time, 1) |
| 10 | |
| 11 | if time < 1: |
| 12 | char_fx.offset = Vector2(0, -5 * (sin(local_time * PI))) |
| 13 | if time < 3 or time >= 8: |
| 14 | var color_time = local_time |
| 15 | if time >= 1 and time < 3: |
| 16 | color_time += 1 |
| 17 | if time >= 2 and time < 3: |
| 18 | color_time += 1 |
| 19 | if time >= 0 and time < 3: |
| 20 | color_time += 1 |
| 21 | if time >= 9 or time < 3: |
| 22 | color_time += 1 |
| 23 | |
| 24 | |
| 25 | char_fx.color.a = (sin(color_time / 5 * PI)) * 0.3 + 0.7 |
| 26 | else: |
| 27 | char_fx.color.a = 0.7 |
| 28 | |
| 29 | return true |
| 30 |