I've managed to uncover the combat shield on a single marine when it reaches level 3 of the built-in veterancy behavior through a trigger. What I'd like to do now is compliment this by also changing the triggering unit's wireframe and group icon to the appropriate image (Assets\Textures\wireframe-terran-marine-shield.dds).
After hours of searching, the best answer I found on the web was from a forum post by blizzard (http://us.battle.net/sc2/en/forum/topic/2674992430) stating, "You can dynamically change the Actor's wireframe using upgrades or the Catalog Field Value Set trigger. We'll look into reusing the Upgrade UI for this trigger, which will allow you to easily see which fields can be changed."
Which only leaves me with another set of problems: 1) I am pretty certain that upgrades will affect all marines and I don't know if Catalog Field Value Set will work any differently, and more importantly, 2) I can't figure out how to even use the Catalog Field Value Set function.
So if anyone can help me solve this problem by whatever method, I would be greatly appreciative!
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.
Ah, thank you Ahli. I wasn't sure how to properly work with the Signal events but since I wanted it this change to occur when the marine got to level 3 I used the BehaviorLevel event and it worked out perfectly! I'm still obviously new to the editor, I should've thought of swapping the actor or just a plain 'ol morph. Thank you again!
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
I've managed to uncover the combat shield on a single marine when it reaches level 3 of the built-in veterancy behavior through a trigger. What I'd like to do now is compliment this by also changing the triggering unit's wireframe and group icon to the appropriate image (Assets\Textures\wireframe-terran-marine-shield.dds).
After hours of searching, the best answer I found on the web was from a forum post by blizzard (http://us.battle.net/sc2/en/forum/topic/2674992430) stating, "You can dynamically change the Actor's wireframe using upgrades or the Catalog Field Value Set trigger. We'll look into reusing the Upgrade UI for this trigger, which will allow you to easily see which fields can be changed."
Which only leaves me with another set of problems: 1) I am pretty certain that upgrades will affect all marines and I don't know if Catalog Field Value Set will work any differently, and more importantly, 2) I can't figure out how to even use the Catalog Field Value Set function.
So if anyone can help me solve this problem by whatever method, I would be greatly appreciative!
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.
@Ahli634: Go
Ah, thank you Ahli. I wasn't sure how to properly work with the Signal events but since I wanted it this change to occur when the marine got to level 3 I used the BehaviorLevel event and it worked out perfectly! I'm still obviously new to the editor, I should've thought of swapping the actor or just a plain 'ol morph. Thank you again!