8

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?

0
3

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.

1
  • There is an event called "PlayerPropChanged" which occurs when a player property changes. Have it called when the player's minerals change (gt_UpdatePlayerMinerals). Jan 5 '11 at 22:22
1

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.

1
  • 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! Aug 20 '10 at 17:33
0

The NameHarvestAbility (where "Name" is the name of a type of worker) got ResourceAmountBonus and ResourceAmountMultiplier fields (and there are also ResourceTime bonus and multiplier). You could make new abilities from the ordinary harvest abilities, then use a trigger with "Replace Unit Ability/UnitAbilityChangeLink" for the player(s) that need handicaps?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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