TransWikia.com

How can I programmatically change the # of resources delivered by workers in a StarCraft 2 custom map?

Arqade Asked by Mag Roader on April 19, 2021

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?

3 Answers

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.

Correct answer by Mag Roader on April 19, 2021

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.

Answered by BlueRaja - Danny Pflughoeft on April 19, 2021

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?

Answered by UndeadStar on April 19, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP