Skip to content

Releases: armoha/euddraft

euddraft 0.9.9.0

08 Jan 15:58
Compare
Choose a tag to compare

[0.9.9.0] - 2023.01.09

Changed

  • Raise compile error or warning when unexpected constant is used as condition, like if (Db(4))
    • 'Condition is always true` warning for castable proxy classes: EUDArray, EUDVArray, EUDStruct (object in epScript) etc
    • Compile error for the other ConstExpr
    • Integers like -1, 0, 1 behaves same as before, converts 0 into Never(), non-zero integers into Always() condition.
  • Changed name TrgTBL -> StatText
  • Chaged VariableBase and EUDObject to abstract class

Bugfix

  • [epScript] Don't wrap global consants with ExprProxy unless there's forward-declared function call.
    • No need to write globalConst.getValue() in most cases.
  • [MSQC] Use Move order instead of right click
    • The player can't deliberately controls QCUnit by group hotkey selection and right clicking.
  • [draw.py] Fixed infinite compile bug in Point x, y = Shape[index] (reported by Avlos)
  • [epScript] Fixed bug in relative path import (reported by 유즈맵조아조아)
    • Fixed compile error for Artanis song guessing game open source, exists in euddraft 0.9.8.3~0.9.8.13
  • Fixed compile error in EPDCUnitMap.set_color(player) (reported by 할루)
  • Fixed compile error TypeError: EncodePlayer() got an unexpected keyword argument 'issueError' (reported by HuntRabbit)
    • Fixed compile error with [BetterBrain] plugin
  • Removed ambiguous string warning added in euddraft 0.9.8.13, rollbacked previous behavior and improved error message (reported by nn2)
  • Fixed unsupported EUD error in f_dwpatch_epd

Improved

  • [epScript] Don't add initialization trigger for global variables when their initial values are constants
  • Fixed CreateUnitWithProperties with HP 100% to create unit with MaxHP > 167772 full-health
  • UnitProperty reuses UnitProperty of equal result: ex) cloaked=None and cloaked=False share same properties
  • Optimize EUD loops (EUDInfLoop, EUDLoopN, EUDLoopRange, EUDWhile) to execute 1 less trigger for every iterations (reported by 콤)
  • Arithmetic of ConstExpr yields integer offset when rlocmode becomes 0
  • Added and improved eudplib error messages
  • Update euddraft Korean localization
  • Updated eudplib 0.73.16

Added

  • [epScript] Can write function call syntax on outermost scope
    • Raises TriggerScopeError when you added trigger by writing Trigger action or calling EUD function.
      : "Must put Trigger into onPluginStart, beforeTriggerExec or afterTriggerExec"
    • Useful for eudplib functions like EUDOnStart, InitialWireframe, MPQAddFile, EUDRegisterObjectToNamespace
      or calling python library functions in epScript.
  • Revised and added type hints
  • Added TriggerScopeError: subclass of EPError. Raised when trigger was written at unusable scope
  • Added function b2utf8(bytes) -> str: decode bytes to UTF-8 string

euddraft 0.9.8.13

31 Dec 16:29
Compare
Choose a tag to compare

[0.9.8.13] - 2023.01.01

Bugfix

  • Fixed various bugs/typos

Improved

  • Added more type hints
  • Type checked eudplib with mypy
  • Updated eudplib 0.73.1

euddraft 0.9.8.12

31 Dec 02:53
Compare
Choose a tag to compare

[0.9.8.12] - 2022.12.31

Bugfix

  • Fixed a[index] /= constant compile error for EUDVArray, PVariable (reported by gongnamu)
  • Fixed EUDLoopNewUnit missed iterating preplaced units under certain circumstances (reported by Oneiro)

Improved

  • Added type hints for some eudplib functions: localize, maprw, trigger, trigtrg, utils
    • Work in progress: core, ctrlstru, epscript, eudlib
  • Updated eudplib 0.72.6

euddraft 0.9.8.11

29 Dec 18:34
Compare
Choose a tag to compare

[0.9.8.11] - 2022.12.30

Changed

  • Due to regression bug, $T, EncodeString, GetStringIndex rollbacked to use CP949 encoding for new string. (Undo change of 0.9.8.8)

Bugfix

  • [chatEvent] When hash collisions, fall-back to string comparison (reported by LLAS)

Improved

  • [chatEvent] Added simple encryption for chat patterns
  • Added typing for eudlib/utilf
  • Updated eudplib 0.72.5

euddraft 0.9.8.10

25 Dec 09:52
Compare
Choose a tag to compare

[0.9.8.10] - 2022.12.25

Bugfix

  • Allow EUDOnStart to be used everywhere in your code
  • Fixed println, printAt, simpleprint didn't work (#28)
    • No longer need to put GetGlobalStringBuffer() in onPluginStart
  • Allow SetWireframes without using InitialWireframe
  • [epScript] Allow py_len() for global constants
    • Allow len() for ExprProxy

Improved

  • Updated eudplib 0.72.3, pybind11 v2.10.2
  • Optimize size of StringBuffer initialization triggers

euddraft 0.9.8.9

20 Dec 07:39
Compare
Choose a tag to compare

[0.9.8.9] - 2022.12.20

Changed

  • $T, EncodeString, GetStringIndex uses UTF-8 encoding to add new string.

Bugfix

  • Fixed coordinates in null tiles warning
  • Fixed InitialWireframe bug when Marine was not editted. (reported by Oneiro)

Improved

  • eudplib supports Python 3.11 (euddraft still uses Python 3.10.9, waiting cx_Freeze update)
  • [chatEvent] Support global eud namespace
    :: edd/eds example
    [chatEvent]
    __addr__: addr
    __patternAddr__: patternAddr
    __ptrAddr__: ptrAddr
    __lenAddr__: lenAddr
    sell : 2
    sellghost : 3
    sellhydra : 4
    selldragoon : 5
    ^'ore .*.*$: 1
    ^'gas .*.*$: 2
    [test.eps]
    // Example epScript code (test.eps)
    var addr, patternAddr, ptrAddr, lenAddr;
    function onPluginStart() {
        EUDRegisterObjectToNamespace("addr", addr);
        EUDRegisterObjectToNamespace("patternAddr", patternAddr);
        EUDRegisterObjectToNamespace("ptrAddr", ptrAddr);
        EUDRegisterObjectToNamespace("lenAddr", lenAddr);
    }
    function chat();
    function beforeTriggerExec() {
        chat();
    }
    function chat() {
        if (addr < 1) return;
        setcurpl(getuserplayerid());
        if (addr >= 2) {
            println("\x07Chat Detected \x04(id: {})", addr);
            return;
        }
        if (patternAddr) {
            println("\x07Pattern Detected \x04(id: {})", patternAddr);
            return;
        }
        DisplayText("\x05Chat not belong to [chatEvent] settings");
    }
  • Add duplicated entries warning for EUDRegisterObjectToNamespace
  • Add assertion messages for InitialWireframe and EUDOnStart

euddraft 0.9.8.7

14 Dec 10:42
Compare
Choose a tag to compare

[0.9.8.7] - 2022.12.14

Bugfix

  • [chatEvent] Fixed wrong pattern length (reported by Yuuki-Asuna)
  • [unlimiter] Fixed compile error (reported by 파냥이)

euddraft 0.9.8.6

12 Dec 17:58
Compare
Choose a tag to compare

[0.9.8.6] - 2022.12.13

Bugfix

  • Fixed EPDCUnitMap.isBlind type from bool to u8 (reported by Skywindragoon)
  • EPDCUnitMap.is_dying() was not working with [unlimiter] plugin, and now it raises compile error
    • CSprite is always 0 for units spawned after running [unlimiter], and looking into just CUnit, we can't tell whether it is already dead or dying. To distinguish between dead and dying with [unlimiter], we need to store that unit is in usage, on additional memory space using EUDLoopNewUnit etc. It involves non-trivial cost so we'd rather explicitly state current status and leave this matter to end users.

Added

  • Added IsUnlimiterOn(): useful for library writers
  • Added InitialWireframe class/namespace
    Supports both 32 bit and 64 bit StarCraft.
    • InitialWireframe.wireframes(unit: TrgUnit, wireframe: TrgUnit)
      • Set initial TranWire.grp, GrpWire.grp, Wirefram.grp of unit.
      • Must called at outermost scope!
    • InitialWireframe.tranwire(unit: TrgUnit, wireframe: TrgUnit)
    • InitialWireframe.grpwire(unit: TrgUnit, wireframe: TrgUnit)
    • InitialWireframe.wirefram(unit: TrgUnit, wireframe: TrgUnit)
  • Added SetWireframes(unit: TrgUnit, wireframe: TrgUnit), SetTranWire(unit: TrgUnit, wireframe: TrgUnit), SetGrpWire(unit: TrgUnit, wireframe: TrgUnit), SetWirefram(unit: TrgUnit, wireframe: TrgUnit)
    • Edit wireframe at runtime. Supports both 32 bit and 64 bit StarCraft.
    • Only works when InitialWireframe is used!

euddraft 0.9.8.5

06 Dec 10:25
Compare
Choose a tag to compare

[0.9.8.5] - 2022.12.06

Bugfix

  • Fixed typo in Trigger(preserved=False) and DoActions(preserved=False) (reported by 콤)

Improved

  • Print null tile coordinates for 00.0000 warning
  • Optimized f_atan2(y, x) and f_lengthdir(length, angle)

Added

  • Added f_atan2_256(y, x) and f_lengthdir_256(length, angle)

euddraft 0.9.8.4

29 Nov 09:13
Compare
Choose a tag to compare

Changed

  • EUDLoopNewUnit no longer modify CUnit +0xA5 uniquenessIdentifier
  • Can call cunit.remove(); multiple times in UnitGroup.cploop

Bugfix

  • Allow selftype for non-const method call
  • Fixed #34 : calling non-const EUDTypedMethod with parameter type raises EPError: Different number of variables(n) from type declarations(n-1)

Improved

  • Optimize f_playerexist(player)
  • Optimize read functions for empty case
    • Example) Local (desync) unit selection
    const localSelect = EPD(0x6284B8);
    for(var mySelect = localSelect; mySelect < localSelect + 12; mySelect++) {
      // Much faster and cleaner when mySelect is *not* empty
      const ptr, epd = cunitepdread_epd(mySelect);
      if (epd == 0) break;
    
      // .. than this, which substitutes mySelect on condition
      if (MemoryEPD(mySelect, Exactly, 0)) break;
      const ptr, epd = cunitepdread_epd(mySelect);
    }
  • switch: Omit masked range check if bitmask == 0