Releases: armoha/euddraft
Releases · armoha/euddraft
euddraft 0.9.11.0
[0.9.11.0] - 2024.09.01
Changed
- Fixed
EUDJump
not using trigger if trigger address to jump to is constant - Added unreachable
EUDJump
compilation error - Added warnings to unreachable
break
,continue
- epScript: Change
"string"
to be usable as an expression - Change
CUnit.cast(other)
andCSprite.cast(other)
to use variable as reference instead of copying it when target is a variable
Added
- Added easy StarCraft data modification (scdata) to existing types (contributed by @Dr-zzt)
// Example of scdata function
function example(unit: TrgUnit) {
unit.armor += 1; // Increase unit armor by 1
unit.groundWeapon.damage += 1; // increase the damage of the unit's ground weapon by 1
unit.groundWeapon = Weapon("Gauss Rifle"); // change the unit's ground weapon to a Gauss Rifle
P1.ore += 1; // increase P1 mineral by 1
if (P1.ore >= 100) {
printAll("Red has collected at least 100 minerals");
}
}
- Detailed explanation to be written by @Dr-zzt
- epScript: Add forward declaration syntax for object (suggested by 하늘바라군 and 0xFF)
object Food;
object Animal {
function eat_food(food: Food) {} // possible
};
object Meat extends Food {}; // This is not possible
CUnit.from_next()
- Add keyword argument
ignore_subunit
toCUnit.cgive(player)
(default =false
) - epScript: Change encoding syntax (
$U
,$L
, etc) to allow all expressions in addition to strings.
Bugfix
- Bugfix:
Array[i] = i;
bug fixed (reported by HeukSulTang, Xenon) - Fixed a bug where
CUnit.cgive(player)
was not working properly. - Bugfix:
CUnit.set_hallucination()
andCUnit.clear_hallucination()
modify the status flagIsNormal
, causing units to move around ignoring terrain - Fix 'int' object has no attribute 'Evaluate' error in ExprProxy wrapping int
- epScript: Fix
object
extends
to accept expressions includinga.b
in place of superclass (report by 0xFF) - epScript: Fixed bug where writing return type in function forward declaration syntax would result in an error (reported by 0xFF)
- Fixed an error when putting variables in functions that run for all players, such as
DisplayTextAll
andPlayWAVAll
(reported by furina) - Fixed typos in some
Portrait
entries (reported by @Dr-zzt) - Fixed bug where rvalue variable optimizations were not applied
- Fix
TriggerScopeError
exception to be thrown early when triggers are declared in invalid positions.- Fixed bug resulting in invalid triggers regardless of exception handling
- Fixed
Forward not initialized
compile error when declaringEUDByteReader
,EUDByteWriter
and not using.readbyte
or.writebyte
method
Improved
- Enum/flag members such as
CUnit.movementFlags
andCUnit.statusFlags
can now be used as values. - Typos in access to members of
CUnit
,CSprite
, flag members, etc. now raise errors (use__slots__
) - Improved location functions
f_setloc
,f_addloc
, andf_dilateloc
; no longer generate actions for coordinate arguments with 0 (suggested by 콤) - Built-in read functions share overlapping triggers to save the number of triggers
- Replaced terminal color library
colorama
withrich
- Improved EDS/EDD duplicate settings error message
- Improved performance to minimize trigger usage when using variables as arguments in conditions/actions
- Improved
EUDByteReader
,EUDByteWriter
performance - Optimized
EUDJump
to create 2 triggers -> 1 trigger when trigger address to jump to is a variable - Add
__divmod__
toExprProxy
euddraft 0.9.10.12
[0.9.10.12] - 2024.01.25
Changed
CUnit.cgive(player)
will change sprite color
Bugfix
- [epScript] Fixed to not prepend
f_
for non-ascii named function definition - Forbid using
unit.remove()
inside ofunit.dying
block ofUnitGroup.cploop
- Fixed
CUnit.cgive(player)
to properly unlink unit - Fixed
CUnit.cgive(player)
to change minimap color of subunit
Improved
- Updated eudplib 0.76.15, cx_Freeze 6.15.13
- Faster
EUDVarBuffer.WritePayload
(contributed by @phu54321 : armoha/eudplib@29ed0ef)- Reduced compile time by 4.2%
- [epScript] Rewrite linetable calculating code in Rust (armoha/eudplib#25)
- Reduced compile time by 5.7%
- Total 9.66% faster compile time
euddraft 0.9.10.11
[0.9.10.11] - 2023.12.29
Bugfix
- Fixed build error with [main] debug option (reported by 스타맵돌이)
Improved
- Update eudplib to 0.76.14
- Reduced compile times in eudplib frontend by 20% (contributed by @phu54321 : armoha/eudplib#24)
- Improved
GetObjectAddr
in Writing phase - Reduced compile times by about 10%
euddraft 0.9.10.10
[0.9.10.10] - 2023.12.27
Changed
ConstExpr
andEUDObject
use__new__
instead of__init__
- For migration of subclasses, you need to override
__new__
. See https://stackoverflow.com/questions/28236516/python-subclassing-a-class-with-custom-new
- For migration of subclasses, you need to override
- Removed
currentAction
keyword argument forRawTrigger
Added
-
Add
CUnit.set_collision()
Clear
NoCollide
andIsGathering
status flags. Reverse ofCUnit.remove_collision()
. -
Prints elapsed build time for
.edd
Improved
- Update eudplib to 0.76.13
- Rewrote
RlocInt
,ConstExpr
,EUDObject
andRawTrigger.WritePayload
in Rust (armoha/eudplib#22) - Reduced build time by 30% (Total 60% compared to euddraft 0.9.10.6 or older)
euddraft 0.9.10.9
[0.9.10.9] - 2023.12.23
Bugfix
- Fixed settbl2 didn't work with custom stat_txt.tbl (reported by neonoew)
euddraft 0.9.10.7
[0.9.10.7] - 2023.12.19
Changed
- The offset and rlocmode of ConstExpr and RlocInt_C are changed from unsigned to signed
- ConstExpr operations are changed to only return ConstExpr (not int)
- Try write
int(ConstExpr)
for type conversion
- Try write
Added
-
Add
CUnit.remove()
(Thanks to DarkenedFantasies)Remove unit without death effect.
Improved
- Improved build time by about 40% (armoha/eudplib#21)
- Massively improved Allocating Phase: Rewrote StackObjects and AllocObject in Rust
- Improved Writing Phase: Rewrote ConstructPayload in Rust
- Exclude slow Condition/Action parameter validity checks
- Update Korean localization
euddraft 0.9.10.6
[0.9.10.6] - 2023.12.15
Added
- [epScript] Allow "string literal" in index/subscript syntax
Bugfix
- Fixed 'TypeError: Value after * must be an iterable, not EUDVariable' in f_setcurpl2cpcache (reported by WestICE)
euddraft 0.9.10.5
[0.9.10.5] - 2023.12.15
Bugfix
- Fix bugs in bitwise left/right shift operations (<<, >>) when right-handed-side value >= 32
- Fix freeze on game start in maps using EUD Editor 2 TriggerEditor (reported by @iDoodler-DS)
- Fix bug in
f_bitlshift(a, b)
executing too many triggers when rhs is var >= 32 - Fix bug in
f_bitrshift(a, b)
returning incorrect value when rhs is var >= 32
euddraft 0.9.10.4
[0.9.10.4] - 2023.12.13
Added
- [epScript] py_module won't prepend f_ on function name
// epScript drawing circle example
import py_math;
function circle() {
foreach (k : py_range(10)) {
MoveLocation("effect", "Terran Ghost", P1, "Anywhere");
// no need to use py_eval anymore!
const x = py_int(math.cos(k * math.pi / 5) * 30);
const y = py_int(math.sin(k * math.pi / 5) * 30);
addloc("effect", x, y);
CreateUnit(1, "Scanner Sweep", "effect", P1);
}
RemoveUnit("Scanner Sweep", P1);
}
[0.9.10.3] - 2023.12.13
Bugfix
- SoundLooper.py : Fixed build error in
SoundLooper.initialize()
- [dataDumper] : Fixed build error in custom stat_txt.tbl map
- Fixed build error in
copy.copy(Condition or Action)
- Fixed build error in
CUnit.setloc(location)
- Revert name change of
ExprProxy.getValue()
- Revert name change of
_AddStatText(bytes)
,_addedFiles
- Revert EUDFunc and EUDFuncPtr related changes of 0.9.10.2
- Optimize EUD function return : remove intermediate variable and use return assign trigger
- Optimize
f_getcurpl()
to not pass through variable trigger
Improved
- Better error message for invalid type of EUDArray initial values
- Fixed
unProxy(object)
to raise error for cycle reference to prevent cycle loop
euddraft 0.9.10.3
[0.9.10.3] - 2023.12.13
Bugfix
- SoundLooper.py : Fixed build error in
SoundLooper.initialize()
- [dataDumper] : Fixed build error in custom stat_txt.tbl map
- Fixed build error in
copy.copy(Condition or Action)
- Fixed build error in
CUnit.setloc(location)
- Revert name change of
ExprProxy.getValue()
- Revert name change of
_AddStatText(bytes)
,_addedFiles
- Revert EUDFunc and EUDFuncPtr related changes of 0.9.10.2
- Optimize EUD function return : remove intermediate variable and use return assign trigger
- Optimize
f_getcurpl()
to not pass through variable trigger
Improved
- Better error message for invalid type of EUDArray initial values
- Fixed
unProxy(object)
to raise error for cycle reference to prevent cycle loop