It’s hard to give advice about how code should be structured, since there’s many ways of accomplishing the same things, but you’re doing the right thing by thinking about scalability before you get too deep to change it.
You could try separating eacg trigger condition into their own functions, so that if an OnAttack gets triggered it will only check and loop through OnAttack abilities.
Something like:
OnAttack.connect( CheckOnAttack )
OnDamaged.connect( CheckOnDamaged )
func CheckOnAttack( ATTACK_TYPE ):
match ATTACK_TYPE:
....
func CheckOnDamaged( DAMAGE_TYPE ):
match DAMAGE_TYPE:
....
I’ve had good experiences launching games from Epic on the Heroic Games Launcher. Most games that don’t have extreme anti-cheats should just work. If compatibility is an issue, you can install Linux as a dual-boot option, so you could switch to Windows for certain games.
“Hijinks” makes me think of exactly the kind of casual mess-with-your-friends gameplay that can happen with Nintendo games. I like it.
As a side note, I’m curious to see how the game turns out. Nintendo Land was the only game I’ve played on the Wii U that made proper use of the game pad, and the ghost mansion was my favorite minigame.
I had this problem for awhile, eventually I said enough and turned off shader pre-caching. Never noticed a difference in performance.
It’s easy if you can follow directions, hard if you don’t have directions, impossible if you don’t have directions and don’t know what you’re doing; archinstall is effortless.