e.g. in Dead Cells, there are...
- swords that throw a potion when you first swing them
- shields that shoot an arrow when you first pull them out
- weapons that burn/poison enemies that get hit by them
- shields that do something special when you successfully parry
- weapons that do something special when an enemy specifically dies from a hit by that weapon
So you could define "onActivation", "onHit", "onParry", and "onKill" events. To create a weapon you assign it a number of SFX, and almost all melee/ranged weapons have an SFX that listens for the "onHit" event and deals damage to whatev…