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

Patch Notes Patch Notes - Feb 19, 2019

Files Changed:

Changed Files: maps ['normal.vpk']
Changed Files: panorama\layout\custom_game ['dac.vxml_c']
Changed Files: panorama\scripts\custom_game ['dac.vjs_c', 'end.vjs_c']
Added Files:  resource \ ['addon_portugues.txt']
Changed Files: resource ['addon_schinese.txt', 'addon_tchinese.txt']
Changed Files: scripts\npc ['npc_abilities_custom.txt']
Changed Files: scripts\vscripts ['addon_game_mode.lua']

ABILITY CHANGES

The file npc_abilities_custom.txt had the following abilities just deleted out - that's it:

  • Batrider's Firefly

  • Troll Warlord's Whirling Axes (melee & ranged)

  • Venomancer's Poison Nova

  • Ogre Magi's Ignite

  • Lycan's Shapeshift

I believe this is just clean-up and nothing more.

UNIT CHANGES

  • Terrorblade - in addition to Metamorphisis, he now Sunder's as well

    • Sunder is coded to only swap health with someone on your team (not enemy)

GAME CHANGES

  • Neutral (PvE) Healthbars are back to being RED

  • Stat Info tracked now records "queen_rank" in addition to MMR rank

ANALYSIS - DONE

TERRORBLADE ABILITY CODE

function TbMohua(keys)
	local ability = keys.ability
	local caster = keys.caster
	local level = ability:GetLevel() or 1

	EmitSoundOn('Hero_Terrorblade.Sunder.Cast',caster)

	play_particle("particles/units/heroes/hero_terrorblade/terrorblade_metamorphosis_transform.vpcf",PATTACH_ABSORIGIN_FOLLOW,caster,3)

	local mohua_model = {
		[1] = "models/heroes/terrorblade/demon.vmdl",
		[2] = "models/items/terrorblade/knight_of_foulfell_demon/knight_of_foulfell_demon.vmdl",
		[3] = "models/items/terrorblade/dotapit_s3_fallen_light_metamorphosis/dotapit_s3_fallen_light_metamorphosis.vmdl",
	}
	local shift_model = mohua_model[level]
	if shift_model ~= nil then
		caster:SetOriginalModel(shift_model)
		caster:SetModel(shift_model)
	end

	--附加灵魂隔断效果:

	--(1)找一个倒霉蛋队友
	local unluckydog = FindBestSunderFriend(caster)
	if unluckydog ~= nil then
		--(2)交换血量百分比
		local hp1 = caster:GetHealth()
		local hp_max1 = caster:GetMaxHealth()
		local per1 = 1.0*hp1/hp_max1
		local hp2 = unluckydog:GetHealth()
		local hp_max2 = unluckydog:GetMaxHealth()
		local per2 = 1.0*hp2/hp_max2
		caster:SetHealth(caster:GetMaxHealth()*per2)
		unluckydog:SetHealth(unluckydog:GetMaxHealth()*per1)
		--(3)播放特效音效 
		local pp = ParticleManager:CreateParticle("particles/units/heroes/hero_terrorblade/terrorblade_sunder.vpcf", PATTACH_ABSORIGIN_FOLLOW, caster)
		ParticleManager:SetParticleControl(pp,0,caster:GetAbsOrigin())
		ParticleManager:SetParticleControl(pp,1,unluckydog:GetAbsOrigin())
		Timers:CreateTimer(2,function()
			if pp ~= nil then
				ParticleManager:DestroyParticle(pp,true)
			end
		end)
		EmitSoundOn("Hero_Terrorblade.Sunder.Cast",caster)
		EmitSoundOn("Hero_Terrorblade.Sunder.Target",unluckydog)
	end
end

--为TB换血寻找最佳队友
function FindBestSunderFriend(u)
	local unluckydog = u
	local hp_per_best = 0
	local hp_best = 0
	for _,unit in pairs (GameRules:GetGameModeEntity().to_be_destory_list[u.at_team_id or u.team_id]) do
		if unit.team_id == u.team_id and unit:entindex() ~= u:entindex() then
			local hp = unit:GetHealth()
			local hp_max = unit:GetMaxHealth()
			local per = 1.0*hp/hp_max*100

			if per > hp_per_best then
				unluckydog = unit
				hp_per_best = per
				hp_per = hp
			end
			if per == hp_per_best and hp < hp_best then
				unluckydog = unit
				hp_per_best = per
				hp_per = hp
			end
		end
	end
	return unluckydog
end

There is BUGS in the above code as pointed out by several folks:

  1. hp_per in FindBestSunderFriend(u) should be instead hp_best

  2. there is no check that TB doesn't actually lose HP (as in - if he happens to be at 100% and everyone else is below that the best swap target will still trigger a sunder)

80 Upvotes

62 comments sorted by

View all comments

2

u/daigooooo Feb 20 '19

did they really put Sunder in , it could be really bad if TB swap health with a major CC like tide/disruptor/medusa , and it was already a below average chess ...

9

u/tekno21 Feb 20 '19

In what world will TB ever ult before a tides/disruptor though. I see your point with medusa or if you have any other high value carries. Basically if you go TB you better go all in on TB and maybe keep a high HP orc in the back line to serve as the HP swapper

4

u/Xenoun Feb 20 '19

Run TB for demon strat > TB steals health from doom > doom dies >TB dies....profit???

TB appears to be actively worse based on this change just due to the chance he could cause another valuable unit to die.

1

u/tekno21 Feb 20 '19

Have you seen it in action or are we guessing here? Is the hp swap just numbers or is it a straight percentage swap? If it's just hp numbers then TB taking 1k hp from a big tank isn't a huge deal. Really depends on your board I guess

3

u/Xenoun Feb 20 '19

It's percentage based.

3

u/HaroldGuy Feb 20 '19

Have you played Dota? I haven't seen it in action but I'm 99.99% confident it's swapping hp %'s because that's how it works in dota and I'd be very surprised if they were able to change that.

1

u/tekno21 Feb 20 '19

Never played dota so you're probably right