-
Notifications
You must be signed in to change notification settings - Fork 0
/
notes.txt
202 lines (157 loc) · 9.45 KB
/
notes.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
http://www.zezula.net/en/mpq/download.html
https://sc2mapster.github.io/ui/2018/02/07/testing-map-without-editor.html
https://www.hiveworkshop.com/threads/ladiks-mpq-editor-version-2-0-1-278.91512/
ping a random building on the map? https://mapster.talv.space/galaxy/reference#ping
// https://marketplace.visualstudio.com/items?itemName=maptz.regionfolder regionfolder.collapseAllRegions
// it won't work if the file is in plain text mode
// "maptz.regionfolder":{"[galaxy]":{"foldEndRegex":"^//[\\s]*#endregion","foldStartRegex":"^//[\\s]*#region[\\s]*(.*)","disableFolding":false,"isFoldedByDefault":true}},"files.associations":{"*.galaxy":"c"}
maybe there's something in the UI section that can show the changes to spectators https://mapster.talv.space/galaxy/reference#ui
https://sc2mapster.fandom.com/wiki/Tutorials
https://mapster.talv.space/galaxy/reference#catalog
https://marketplace.visualstudio.com/items?itemName=talv.sc2galaxy
http://www.fooo.fr/~vjeux/curse/sc2/sc2_declarations.html
https://sc2mapster.github.io/mkdocs/setup/
structref and arrayref https://www.sc2mapster.com/forums/development/galaxy-scripting/148197-passing-arrays-as-parameters
CatalogFieldValueSet(c_gameCatalogActor, entry, "Scale", default_player, "5.0");
Abilities
// scopes
// CAbilBuild
// CAbilMorphPlacement
// CAbilMove
// CAbilStop
// CAbilBuildable
// CAbilQueue
// CAbilArmMagazine
// CAbilResearch
// CAbilMorph
// CAbilAttack
// CAbilWarpable
// CAbilEffectTarget
// CAbilTrain
// CAbilRally
// CAbilEffectInstant
// CAbilAugment
// CAbilMerge
// CAbilTransport
// CAbilMergeable
// CAbilBehavior
// CAbilRedirectInstant
// CAbilRedirectTarget
// BarracksTechLabMorph is a CAbilMorph with InfoArray SAbilMorphInfo, and with Cost SCost
// FactoryLand is a CAbilMorphPlacement with InfoArray SAbilMorphInfo, and with Cost SCost
// FactoryTechLabResearch is a CAbilResearch with InfoArray SAbilResearchInfo
// with InfoArray[3].Upgrade == TerranInfantryWeaponsLevel1, .Time=160, .Resource[Minerals/Vespene]
// Rally is a CAbilRally with InfoArray SAbilRallyInfo
// BuildNydusCanal is a CAbilBuild with InfoArray SAbilBuildInfo has [i].Unit for unit name and [i].Time for build time
// TrainQueen is a CAbilTrain with InfoArray SAbilTrainInfo
// ArmSiloWithNuke is a CAbilArmMagazine with InfoArray SAbilArmMagazineInfo, and with Cost SCost
// WarpGateTrain is a CAbilWarpTrain with InfoArray SAbilWarpTrainInfo
// GhostCloak is a CAbilBehavior with Cost SCost
// has an array of structs named Cost, Cost[i].Charge, .Cooldown.TimeStart, .Cooldown.TimeUse, .Vital.Life, .Vital.Shields, .Vital.Energy, .VitalFraction
// ArchonWarp is a CAbilMerge with InfoArray
// Info is a SAbilMergeInfo with Info.Resource.Minerals/Vespene, Info.Time, Info.Unit==Archon, Info.Cooldown, Info.Vital, Info.VitalFraction (seems to be same type as a CAbilBehavior.Cost)
// Charge is a CAbilAugment with Cost SCost
// has struct Cooldown (probably same type as Cooldown in CAbilBehavior)
// TacNukeStrike is a CAbilEffectTarget with Cost SCost
// has arrays for Effect, FinishTime (fixed), Range (fixed or maybe int?)
// NydusCanalTransport is a CAbilTransport with InfoArray
// has MaxCargoCount, MaxCargoSize, Range, TotalCargoSpace, UnloadPeriod
// BuildInProgress is a CAbilBuildable with InfoArray
// que5Addon is a CAbilQueue with InfoArray
// stop is a CAbilStop with InfoArray
// attack is a CAbilAttack with InfoArray
// move is a CAbilMove with InfoArray
// GhostHoldFire is a CAbilEffectInstant with InfoArray
// StimpackRedirect is a CAbilRedirectInstant with InfoArray
// AttackRedirect is a CAbilRedirectTarget with InfoArray
// Warpable is a CAbilWarpable with InfoArray
// Mergeable is a CAbilMergeable with InfoArray
Upgrades
// CUpgrade BattlecruiserBehemothReactor has <EffectArray Reference="Unit,Battlecruiser,EnergyStart" Value="25"/>
Weapons
// CWeapon_DisplayEffect is where the damage is defined?
// scopes
// CWeaponLegacy has Period, Range, MinimumRange, MinScanRange, SCost Cost,
// InterceptorBeam is the only CWeaponStrafe with a Period, Range, Arc
Effects
// PsiStormPersistent is a CEffectCreatePersistent with a PeriodCount, PeriodEffectArray, PeriodicPeriodArray
// PsiStormSearch is a CEffectEnumArea with a AreaArray[i].Radius, AreaArray[i].Effect
// PsiStormApplyBehavior is a CEffectApplyBehavior with a Behavior == PsiStorm (a CBehaviorBuff)
// PsiStormDamageInitial is a CEffectDamage with an Amount == 10, PsiStormDamage is the same
// ArbiterMPRecallSet is a CEffectSet with an array EffectArray
// ArbiterMPRecallTeleport is a CEffectTeleport with a PlacementRange of 15, Range of 1000
Behaviors
// Behavior PsiStorm is a CBehaviorBuff
string eventsXml = $@"{debugConnectorTypes}
<eventIndex>
<xmlSchemaVersion>{xmlSchemaVersion}</xmlSchemaVersion>
<events>
<event>{debugRequest}
<Method>{method}</Method>
<InventoryItem>{request.InventoryItem}</InventoryItem>
<ParameterItems>{parameterItems}</ParameterItems>
<FormulaVariableType>{request.FormulaVariableType}</FormulaVariableType>
<FinalCode>{request.FinalCode}</FinalCode>
<BaseCode>{request.BaseCode}</BaseCode>
<DisplayViewer>{request.DisplayViewer}</DisplayViewer>
<Test>{request.Test}</Test>
<Queued>{request.Queued}</Queued>
<Elite>{request.Elite}</Elite>
<Anonymous>{request.Anonymous}</Anonymous>
<Cost>{request.Cost}</Cost>
<ID>{request.ID}</ID>
<Stamp>{request.Stamp}</Stamp>
<BlockType>{request.BlockType}</BlockType>
</event>
</events>
</eventIndex>
";
<eventIndex>
<xmlSchemaVersion>0.1.0</xmlSchemaVersion>
<events>
<event>
<Method>StartEffect</Method>
<InventoryItem>Repair Vehicle by ... % (repairvehicle) [▲0]</InventoryItem>
<ParameterItems><ParameterItem>4</ParameterItem></ParameterItems>
<FormulaVariableType>EffectRequest</FormulaVariableType>
<FinalCode>repairvehicle_4</FinalCode>
<BaseCode>repairvehicle</BaseCode>
<DisplayViewer>sdk</DisplayViewer>
<Test>True</Test>
<Queued>False</Queued>
<Elite>False</Elite>
<Anonymous>False</Anonymous>
<Cost>0</Cost>
<ID>b8d46b38-48ee-475e-9f85-15bbbdb72961</ID>
<Stamp>2/3/2022 1:56:43 PM +00:00</Stamp>
<BlockType>EffectRequest</BlockType>
</event>
</events>
</eventIndex>
[UsedImplicitly]
protected bool TryEffect([NotNull] EffectRequest request, [NotNull] Func<bool> condition, [NotNull] Func<bool> action, bool retryOnFail = true, string mutex = null, TimeSpan? holdMutex = null)
[UsedImplicitly]
protected bool TryEffect([NotNull] EffectRequest request, [NotNull] Func<bool> condition, [NotNull] Func<bool> action, TimeSpan retryDelay, bool retryOnFail = true, string mutex = null, TimeSpan? holdMutex = null)
[UsedImplicitly]
protected bool TryEffect([NotNull] EffectRequest request, [NotNull] Func<bool> condition, [NotNull] Func<bool> action, [NotNull] Func<TimeSpan> retryDelay, bool retryOnFail = true, string mutex = null, TimeSpan? holdMutex = null)
[UsedImplicitly]
protected bool TryEffect([NotNull] EffectRequest request, [NotNull] Func<bool> condition, [NotNull] Func<bool> action, [NotNull] Action followUp, bool retryOnFail = true)
[UsedImplicitly]
protected bool TryEffect([NotNull] EffectRequest request, [NotNull] Func<bool> condition, [NotNull] Func<bool> action, [NotNull] Action followUp, bool retryOnFail, string? mutex)
=> TryEffect(request, condition, action, followUp, retryOnFail, mutex, null);
[UsedImplicitly]
protected bool TryEffect([NotNull] EffectRequest request, [NotNull] Func<bool> condition, [NotNull] Func<bool> action, [NotNull] Action followUp, bool retryOnFail, string[]? mutex)
[UsedImplicitly]
protected bool TryEffect([NotNull] EffectRequest request, [NotNull] Func<bool> condition, [NotNull] Func<bool> action, [NotNull] Action followUp, bool retryOnFail, string? mutex, TimeSpan? holdMutex)
[UsedImplicitly]
protected bool TryEffect([NotNull] EffectRequest request, [NotNull] Func<bool> condition, [NotNull] Func<bool> action, [NotNull] Action followUp, bool retryOnFail, string[]? mutex, TimeSpan? holdMutex)
[UsedImplicitly]
protected bool TryEffect([NotNull] EffectRequest request, [NotNull] Func<bool> condition, [NotNull] Func<bool> action, [NotNull] Action followUp, TimeSpan retryDelay, bool retryOnFail = true, string mutex = null, TimeSpan? holdMutex = null)
[UsedImplicitly]
protected bool TryEffect([NotNull] EffectRequest request, [NotNull] Func<bool> condition, [NotNull] Func<bool> action, [NotNull] Action followUp, [NotNull] Func<TimeSpan> retryDelay, bool retryOnFail = true)
[UsedImplicitly]
protected bool TryEffect([NotNull] EffectRequest request, [NotNull] Func<bool> condition, [NotNull] Func<bool> action, [NotNull] Action followUp, [NotNull] Func<TimeSpan> retryDelay, bool retryOnFail, string mutex, TimeSpan? holdMutex = null)
[UsedImplicitly]
protected bool TryEffect([NotNull] EffectRequest request, [NotNull] Func<bool> condition,
[NotNull] Func<bool> action, [NotNull] Action followUp, [NotNull] Func<TimeSpan> retryDelay,
bool retryOnFail, string[] mutex, TimeSpan? holdMutex = null)