I tried to keep the same unit, so no morphing required.
1. make a copy of marine actor (named marineShield)
2. change the group and unit wireframe of the marineShield actor to the "marine-shield" wireframe.
3. in the marineShield actor events, delete all actor events that either use "Create" or start with the birth of a marine. We don't want that actor to create itself.
4. in the marineShield actor events, delete the actor event "ActorCreation => ValidatePlayer NoMarineShield -> AnimPlay Cover Cover PlayForever 0.0000000". That actor event would have removed the shield, if no upgrade existed on actor creation. But we want the shield to stay on the marine.
5. In the original marine actor, add an event: "Signal" with the name "MarineShield" and chose "Create" as the action and chose the marineShield actor in the create statement.
6. Copy the event we just made with the "Signal.*.MarineShield" and chose "Destroy" as the action.
7. Send a Signal with the name "MarineShield" to the main actor of the unit that should receive the shield.
It works as seen in the attached map.
But this has 1 problem: a unit's group wireframe is not updated, if the game had to display the unit's group wireframe at least once.
Morphing the marine to a new marine (morph ability) would work without that change. But other things like armor upgrades wouldn't work on that unit, I assume.
I tried to keep the same unit, so no morphing required.
1. make a copy of marine actor (named marineShield)
2. change the group and unit wireframe of the marineShield actor to the "marine-shield" wireframe.
3. in the marineShield actor events, delete all actor events that either use "Create" or start with the birth of a marine. We don't want that actor to create itself.
4. in the marineShield actor events, delete the actor event "ActorCreation => ValidatePlayer NoMarineShield -> AnimPlay Cover Cover PlayForever 0.0000000". That actor event would have removed the shield, if no upgrade existed on actor creation. But we want the shield to stay on the marine.
5. In the original marine actor, add an event: "Signal" with the name "MarineShield" and chose "Create" as the action and chose the marineShield actor in the create statement.
6. Copy the event we just made with the "Signal.*.MarineShield" and chose "Destroy" as the action.
7. Send a Signal with the name "MarineShield" to the main actor of the unit that should receive the shield.
It works as seen in the attached map.
But this has 1 problem: a unit's group wireframe is not updated, if the game had to display the unit's group wireframe at least once.
Morphing the marine to a new marine (morph ability) would work without that change. But other things like armor upgrades wouldn't work on that unit, I assume.