Skip to content

Releases: armoha/euddraft

euddraft 0.9.11.0

01 Sep 10:52
Compare
Choose a tag to compare

[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) and CSprite.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 to CUnit.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() and CUnit.clear_hallucination() modify the status flag IsNormal, 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 including a.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 and PlayWAVAll (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 declaring EUDByteReader, EUDByteWriter and not using .readbyte or .writebyte method

Improved

  • Enum/flag members such as CUnit.movementFlags and CUnit.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, and f_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 with rich
  • 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__ to ExprProxy

euddraft 0.9.10.12

24 Jan 17:58
Compare
Choose a tag to compare

[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 of unit.dying block of UnitGroup.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

29 Dec 05:47
Compare
Choose a tag to compare

[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

27 Dec 11:27
Compare
Choose a tag to compare

[0.9.10.10] - 2023.12.27

Changed

Added

  • Add CUnit.set_collision()

    Clear NoCollide and IsGathering status flags. Reverse of CUnit.remove_collision().

  • Prints elapsed build time for .edd

Improved

  • Update eudplib to 0.76.13
  • Rewrote RlocInt, ConstExpr, EUDObject and RawTrigger.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

23 Dec 09:16
Compare
Choose a tag to compare

[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

19 Dec 09:42
Compare
Choose a tag to compare

[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

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

15 Dec 13:10
Compare
Choose a tag to compare

[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

14 Dec 18:01
Compare
Choose a tag to compare

[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

13 Dec 06:14
Compare
Choose a tag to compare

[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

13 Dec 04:35
Compare
Choose a tag to compare

[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