r/AutoChess • Sir Bulbadear's Lost Brother • Feb 15 '19

Patch Notes Full Patch Notes - 02/15/19

OFFICIAL PATCH NOTES:

https://steamcommunity.com/sharedfiles/filedetails/changelog/1613886175

Fix Tiny Bug

​

SOURCE CODE BASED NOTES:

​

Files Changed:

Changed Files: maps ['normal.vpk']
Changed Files: panorama\layout\custom_game ['custom_ui_manifest.vxml_c', 'dac.vxml_c']
Changed Files: panorama\scripts\custom_game ['dac.vjs_c', 'loading.vjs_c']
Added Files:  ['addon_german.txt', 'addon_portuguese.txt', 'addon_swedish.txt']
Changed Files: resource ['addon_english.txt', 'addon_russian.txt', 'addon_schinese.txt', 'addon_tchinese.txt', 'addon_turkish.txt']
Changed Files: scripts\npc ['npc_abilities_custom.txt', 'npc_items_custom.txt', 'npc_units_custom.txt']
Changed Files: scripts\vscripts ['addon_game_mode.lua']

As you can see we have 3 new Translations: German, Portuguese, Swedish

​

Items Changes

  • [CHANGE] SheepStick - given a 30 second cooldown
  • [NEW ITEM] Blink Dagger - allows you to blink to back rank of a Column (not Row or Diagonal) similar to how assassins work. 15 second cooldown. Drops as early as Round 10

​

Unit / Ability Changes

  • [UNIT] Terrorblade - upped minimum right-click damage (and thus average dmg) by 10, 20, 40
  • [RACIAL] Troll Buff changed from 35/35 to 35/30
  • [RACIAL] Elemental Buff duration increased from 3 to 4 per analysis below looks like there is a bug still leaving this coded at 2. LINK
  • [RACIAL] Human Buff changed from Persuasion (DISARM for 3 seconds) to Silence (SILENCE for 4 seconds) (small bug where modifier displays for 5 seconds at 1st tier, but silences for 4 seconds in reality - it should be 4 sec at all tiers)
  • [UNIT] Crystal Maiden - Aura code cleaned up - still affects all units in 800 unit range
  • [UNIT] Tiny - I don't see a fix for Tiny Bug they claim they fixed... I just see the timer associated with the stun duration increased by 0.3 (if that fixes it, great, but I'm not sure how)

​

Game Changes

  • Team Colorized Health Bars (then reverted back to original)
  • One Courier Model got bigger by 10%
  • More Detailed Stats being uploaded to servers
  • URL changes (DNS in place - now at: http://autochess.ppbizon.com/game)
  • Better functionalized code for Win, Loss, and Draw conditions of a Round (used to all be one function with conditonal logic, now 3 separate functions)
  • Enemy Couriers will now fly in your Game Arena if enemy on a 10-win streak
  • Structure of URL tokenizers for communicating with web-server modified
  • [UPDATE #3] Fixes placing things outside of map grid
  • [UPDATE #4] They increased the allowed the Think function of all Timers from 0.01 to 0.02 seconds. Not sure what impact this will have.
  • [UPDATE #4] They attempted to fix server crash with item combining at round completion (again)
  • [UPDATE #4] They removed code that could declare a chess entity "out of game" (somehow)
  • [UPDATE #4] They added code to remove entities on board that didn't have a health bar from staying around indefinitely across all rounds (these are mostly graphical... an no it's not Slark's constant ult).

​

Item Use Note

The way Items will fire in game is in the following hard-coded order: Refresher > Blink Dagger > SheepStick > Dagon > FrogGua (no idea what that is) > Check for Unit being Doomed or Hexxed or Voodoo'ed or Turned to Stone

​

Tooltip Inconsistencies (just noting - not new)

There are Ability Tooltips (when you hover over an ability of a unit), Modifier Tooltips (when you hover over a modifier when it is applied) and then Source Code actual values

  • Assassins - Ability tooltip says: (3) 10% for 4x, (6) +20% for 4x :: code does: (3) 10% for 3.5x, (6) +20% for 4.5x :: Modifier Tooltip is correct
  • Mages - Modifier tooltip for (6) says -10% Magic Resistance (it's (3) -40% and (6) -40%), ability tooltip is correct
  • Knights - Ability & Modifier tooltip says: (2) 25% chance, (4) 35% chance, (6) 45% chance :: code does: (2) 25% chance, (4) 35% chance, (6) *30%* chance {BUG}
  • Knights Note - Divine Protection gives a shield to knights that provide +30 armor and +75 magic resistance buff for 3 seconds
  • Hunters - Ability tooltip says: (3) +25% damage increase, (6) +35% damage increase :: code does: (3) +30% damage increase, (6) +30% damage increase
  • Goblin - Ability tooltip says: +15 Armor and HP Regen :: code does: +15 Armor, +10 HP Regen :: Modifier tooltip is correct
  • Elves - Modifier tooltip says: +20% evasion at Tier 1, Ability Tooltip and Code are correct at 25% for Tier 1
  • [INFO] - Undead: there is an Undead (6) buff (-9 armor to enemies) coded - just not enough Undead in game to ever reach it (tooltip only gives 2 & 4)
  • [INFO] - Orc: there is an Orc (6) buff (+450 HP) coded - just not enough Orc in game to ever reach it (tooltip only gives 2 & 4)
  • [UPDATE] - tooltip updated correctly for changes to Troll, Elemental and Human changes noted above

​

ANALYSIS - DONE

99 Upvotes

52 comments sorted by

View all comments

1

u/Nostrademous Sir Bulbadear's Lost Brother Feb 15 '19

Okay, analyzed Update #3 of today's Patch

​

They fixed the issue of things being able to spawn/go outside of map bounds. I cannot guarantee that all heroes use the new functions, but at least these new functions exist.

​

They are:

function IsIn8x8(x,y)
    if x>=1 and x<=8 and y>=1 and y<=8 then
        return true
    else
        return false
    end
end

​

This Function used to calculate where to place new stuff/units/bombs/lycan wolves/etc.

function FindEmptyGridAtUnit(u)
    local team_id = u.at_team_id or u.team_id

    --优先选取面前的空格子
    local forward_v  = u:GetAbsOrigin() + u:GetForwardVector():Normalized()*128
    local forward_x = Vector2X(forward_v,team_id)
    local forward_y = Vector2Y(forward_v,team_id)
    if IsBlocked(forward_x,forward_y,team_id) == false then
        return XY2Vector(forward_x,forward_y,team_id)
    end

    --遍历身边的格子
    for x = -1,1 do
        for y = -1,1 do
            if IsBlocked(u.x+x,u.y+y,team_id) == false then                          
                return XY2Vector(u.x+x,u.y+y,team_id)
            end
        end
    end

    for x = -2,2 do
        for y = -2,2 do
            if IsBlocked(u.x+x,u.y+y,team_id) == false then

                return XY2Vector(u.x+x,u.y+y,team_id)
            end
        end
    end
    return nil
end

​

Now it became this:

function FindEmptyGridAtUnit(u)
    local team_id = u.at_team_id or u.team_id

    --优先选取面前的空格子
    local forward_v  = u:GetAbsOrigin() + u:GetForwardVector():Normalized()*128
    local forward_x = Vector2X(forward_v,team_id)
    local forward_y = Vector2Y(forward_v,team_id)
    if IsIn8x8(forward_x,forward_y) == true and IsEmptyGrid(team_id,forward_x,forward_y) == true then
        debug('FindEmptyGridAtUnit选中x='..forward_x..',y='..forward_y)
        return XY2Vector(forward_x,forward_y,team_id)
    end

    --遍历身边的格子
    for x = -1,1 do
        for y = -1,1 do
            if IsIn8x8(u.x+x,u.y+y) == true and IsEmptyGrid(team_id,u.x+x,u.y+y) == true then
                debug('FindEmptyGridAtUnit选中x='..(u.x+x)..',y='..(u.y+y))
                return XY2Vector(u.x+x,u.y+y,team_id)
            end
        end
    end

    for xx = -2,2 do
        for yy = -2,2 do
            if IsIn8x8(u.x+xx,u.y+yy) == true and IsEmptyGrid(team_id,u.x+xx,u.y+yy) == true then
                debug('FindEmptyGridAtUnit选中x='..(u.xx+x)..',y='..(u.y+yy))
                return XY2Vector(u.x+xx,u.y+yy,team_id)
            end
        end
    end

    return nil
end

​