You create the interface, implement it on the shield, and call destroy self from it.
The character then sends the interface call, and that’s all there is to it…
You can expand on funcionality of it as you learn more about the engine;
For instance you can pass the shield object of the character to make sure only the right actor is deleted from the call… if self == actor then destroy self…