Take the 2-minute tour ×
Arqade is a question and answer site for passionate videogamers on all platforms. It's 100% free, no registration required.

Not certain if this should be in the Game Dev StackExchange, but it seems appropriate here too.

Following up on another question about applying handicaps to StarCraft, I am considering a map modification to simply reduce the number of minerals/gas delivered by workers while harvesting. The default is 5, but I would like to reduce it for one player only to 4 or 3.

How would I go about doing this?

share|improve this question
1  
You might also consider simply creating a start location with fewer mineral clumps, effectively decreasing the maximum minerals/second that can be gathered at that base. Also, could you give the other players orange clumps? (I forget what the correct term is for these) –  sjohnston Aug 20 '10 at 14:27
2  
@sjohnston High-yield minerals –  McKay Aug 20 '10 at 14:37
    
@sjohnston Yep, I am also trying that. If this method was a simple trigger, though, it would be much easier to apply to various maps by copy+pasting the trigger (rather than manually removing nodes). Plus, I could easily customize it for more of my friends like "If MagRoader is in the game, make his income X. If <otherguy> is in the game, make his income Y." This would also allow me to use random starting locations instead of specifying start locations, and would work for all expansions as well. –  Mag Roader Aug 20 '10 at 14:46

2 Answers 2

up vote 2 down vote accepted

I wanted to at least figure out how to set the # of minerals returned per trip, as opposed to adjusting the minerals you get after the fact or something. Turns out, unless there is a better way, what I am proposing is probably not worth the effort at all!

Here's my crazy roundabout solution.

  1. Copy the Behaviors for "Minerals (Mineral Field)" and "Minerals (High Yield)," changing the name and modifying the (Stats -> Harvest) amount to a different value.
  2. Create a trigger with actions to remove the "Minerals (Mineral Field)" (or high yield) behavior from a unit and add the new behavior created in the previous step.
  3. The trigger needs to fire from an appropriate event, which is tricky. I chose the "Unit uses SCV - Gather" abilities at the Approach stage, then perform the swap on "Triggering ability target unit" (if unit doesn't already have the new behavior).
  4. Also, just in case, I put in a condition that the Triggering ability target unit is within a small radius of a building owned by the player in question. This pretty much ensures it will only swap stuff at your main base and expansions, and not if you just right click on someone else's mineral patches.
  5. This feels pretty kludgey and as a programmer I am kind of sad that this was the best way I could find after an hour or so.

I also put in some special sauce like only applying these changes to a player who types "handicap" into the chat, and also added code to un-swap the behaviors if non-handicapped players start gathering from it instead (for example if he takes over an expansion).

This is a bunch of work for what I wanted! It would probably be much better to simply remove resources from the stockpile after the "Unit uses ability Return Cargo" event.

share|improve this answer
    
There is an event called "PlayerPropChanged" which occurs when a player property changes. Have it called when the player's minerals change (gt_UpdatePlayerMinerals). –  BlueRaja - Danny Pflughoeft Jan 5 '11 at 22:22

I'm only familiar with the SC1 editor, so I'm sure there's a better way to do this in SC2, but one way would be to set a trigger on an SCV carrying minerals into a zone (slightly larger than your command center) that follows your command center, and have the trigger remove the minerals the SCV is carrying and add some amount to that user's total.

A different handicapping-option would be to automatically remove X minerals/gas from your total every few seconds, where X increases over time. You could also conditionally spawn high-yield minerals near your buddies' bases.

share|improve this answer
1  
You could also make your map more general by having player-1 choose everyone's handicaps at the start (rather than hardcoding usernames); players with more than 10 handicap get an extra mineral, players with more than 20 have high-yield minerals spawned, higher handicaps start with prebuilt defenses, the higher the handicap the stronger the units, etc. etc. This would not only allow you to adjust the difficulty as your friends get better, but it would allow to release your map and let the rest of the world benefit from it! –  BlueRaja - Danny Pflughoeft Aug 20 '10 at 17:33

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.