Distribution click action mode#1993
Hidden character warning
Conversation
|
Nightly build for this pull request:
This comment is automatic and is meant to allow guests to get latest nightly builds for this pull request without registering. It is updated on every successful build. |
|
@Metadorius Any issue other than #1949 (review)? |
|
TODO:
@Metadorius Please confirm the above summary, or supplement/correct the incorrect parts. |
|
@TaranDahl yeah, correct, there was also a comment about implementing press-and-drag mode (and not sure if the "same type" (infantry/buildings/vehicles/etc) is needed, since we have "same armor" mode). CrimRecya said it's too problematic, however I don't really see why, since we already have drag selection and we could reuse drag selection to calculate the radius. |
I think there is not enough labor force to add more features. |
This isn't a feature though? It is just a somewhat small improvement that brings it in line with how modern games do it.
From that you could calculate 2 points, get world coords via function above, use this info to draw a corresponding circle and set the mode to such. I am not sure what is complex here. If needed I can send my decompile for this. |
|
@Metadorius Is there any difference between |
|
@TaranDahl |
Judging from the current code, there seems to be no need for it to inherit from |
Which is a bad pattern. You have class fields and methods for that. |
|
Yeah I will make a new class to arrange the new buttons. But for the vanilla buttons, maybe we should just let them be? |
Yeah I didn't mean we should be squeezing vanilla static array shitcode into proper classes necessarily, should be good. |
|
If we want to implement dragging, how should we handle the selection range? |
update update doc 禁止分配到回收站 update update Update src/Commands/DistributionMode.cpp fix core disable force attack for distribution mode fix double keys breaking distribution command fix distribution mode crash add AffectsNeutral for distribution mode Update Phobos.vcxproj move things to new files update doc Button on bottom TODO Fit with FakeOf Fix include Separate functions Fix default value Remove useless Refactor remove unnecessary Grinder process Code style ... Low distance first Fix merge Message, sound and scroll action Global toggle Fix target outside units Fix target disguised units Fix target shrouded units Doc Add a hold down key to enable Fix target cloaked units Fix a typo Show range ring Draw at mouse Core Co-Authored-By: Kerbiter <crabiter@vivaldi.net> Co-Authored-By: Coronia <28055583+Coronia@users.noreply.github.com> Co-Authored-By: 绯红热茶 <169989423+CrimRecya@users.noreply.github.com>
|
maybe the default also the upper limit of as for the drag, I think instead of a choice between it and scroll, it'd better just make a toggle in rulesmd.ini to enable or disable it, like |
Changed. |

Reopen #1453 again.
[ ]Distribution Mode Spread / Filter / EnableAllowSwitchNoMoveCommandhotkey. If the behavior to be executed by the current techno is different from the behavior displayed by the mouse, and the behavior to be executed will make the techno move near the target, the behavior will be replaced with area guard. Regardless of whether or not switch hotkey is used, default behavior can be changed throughDefaultApplyNoMoveCommand.AllowDistributionCommand. The new behavior is like using the selected objects one by one to click on each target within the spread range.DefaultDistributionSpreadRangecontrols the initial spread range, which is a number that's corresponding to the amount of cell radius * 512.AllowDistributionCommand.SpreadModeallows you to set spread range by hotkey. There're 4 tiers of range that can be selected by this hotkey which are identical to 0, 4, 8 and 16 cells.AllowDistributionCommand.SpreadModeScrollset to true. This allows a more precise control of spread range that each step will increase/decrease it byDistributionSpreadScrollStep, with 20 cells as its maximum value.AllowDistributionCommand.FilterModeallows you to set target filter by hotkey, which default toDefaultDistributionFilterMode.None, it is the default behavior of the game. If the range is not zero at this time, a green ring will be displayed. You can adjust the filter mode to:Like- only targets with the same armor type (Completely identicalArmor) will be selected among the targets allocated in the range. At this time, a blue ring will be displayed.Type- only targets of the same type (like infantries, vehicles or buildings) will be selected among the targets allocated in the range. At this time, a yellow ring will be displayed.Name- only targets of the same name (or with the sameGroupAs) will be selected among the targets allocated in the range. At this time, a red ring will be displayed.AllowDistributionCommand.AffectsAllies,AllowDistributionCommand.AffectsEnemies&AllowDistributionCommand.AffectsNeutralallow the distribution command to work on allies (including owner), enemies or neutral target. If picking a target that's not eligible, it'll fallback to vanilla command.DistributionModein theButtonListofAdvancedCommandBarandMultiplayerAdvancedCommandBar.sidec0x.mixfiles which correspond to different sides, with the namebutton12.shp.TXT_SWITCH_NOMOVE,TXT_DISTR_SPREAD,TXT_DISTR_FILTER,TXT_DISTR_HOLDDOWN,TXT_SWITCH_NOMOVE_DESC,TXT_DISTR_SPREAD_DESC,TXT_DISTR_FILTER_DESC,TXT_DISTR_HOLDDOWN_DESC,MSG:DistributionModeOn,MSG:DistributionModeOff,TIP:DistributionModeinto your.csffile.In
rulesmd.ini:In
ra2md.ini:In
uimd.ini: