Significant MvM changes not mentioned in the Halloween update notes

Buyback time is now tracked by Steam ID

Jarate slowdown upgrade for Sydney Sleeper

Bots will now opportunistically use the BASE Jumper

their vertical velocity (i.e. am I falling downward faster than a certain speed)



how far above the ground they are



whether they are above/below 50% health



whether they are on fire

Soldiers: because they are jumping, not rocket-jumping, they won't get the AirStrike's bonuses; but you can fake those with attributes anyway



Demos: for some reason, spawning them with the BASE Jumper removes their stock sticky launcher; so you have to give it to them, for example: Item "Upgradeable TF_WEAPON_PIPEBOMBLAUNCHER"



Heavys: miniguns will prevent them from auto-jumping while spun-up (needs confirmation)



Engies: they're completely useless when airborne unless they shoot, and the engiebot AI usually refuses to shoot enemies (making them a squad member is one way to get around this)



Snipers: huntsman can't shoot while airborne; rifles can't scope while airborne (needs confirmation for bots)



Spies: basically they're just hilariously useless

[gist.github.com]

Medic bots will now use the Projectile Shield if they are able

if the game is in MvM mode



and the medicbot has full (100%) shield energy



and the medicbot doesn't already have a shield deployed currently



and the medicbot wasn't already planning on popping uber at this exact moment



and one or both of these conditions is true:

the medicbot itself has been injured by the other team within the last 1.0 seconds

the medicbot's heal patient (if it has one) has been injured by the other team within the last 1.0 seconds

then the medicbot will virtually press its "special attack" button, e.g. +attack3, to deploy its projectile shield

medicbots will usually follow too far behind their patient to properly cover them



medicbots will only turn to face enemies if the enemy actually crosses into their line of sight; otherwise they'll just stare at their patient, leaving them open to attacks from behind



I've been told (by Eye, I think) that bots sometimes behave weird when they're behind the shield, possibly refusing to shoot because they either think it's an enemy shield, or a solid object, or something (I haven't had a chance to investigate this fully)

they will spawn with 0% shield energy unless you give them SpawnWithFullCharge (note that this also spawns them with full ubercharge; you either get both or neither)



to change the shield duration, give their medigun "increase buff duration" with the multiplier you want (default duration is 10 seconds, and the attribute is a multiplier, so 0.7 would make the duration 7 seconds)

if you want "regular" duration shields (12.5 seconds), you'll actually need to give them "increase buff duration" 1.25, because the upgrade station actually secretly applies that modifier when players buy the projectile shield upgrade

for a shield that lasts effectively forever, just give them a huge multiplier like 1000 (it'd have to be deployed for over an hour to wear off)



Implications

I was casually looking through the binary diff from the Halloween update, and I noticed a few things that weren't mentioned in the patch notes...This one is relatively boring but it's still worth mentioning. The game now keeps track of some information related to respawn buybacks based on players' Steam IDs.I'm not 100% sure about this, but I have a theory as to why this was done. If you had a really long respawn time (12+ seconds), I suspect it may have been possible to quickly switch to spectator, and then switch back to auto team, to immediately respawn without the need to pay for a buyback.I'll have to go back and check if that was possible in the previous version of the game. Like I said, I'm speculating about the reasoning behind this.Valve modifiedso that the "applies snare effect" attribute (i.e. the slowdown upgrade for mad milk and jarate) can also be upgraded on the Sydney Sleeper.Note that you won't actually be able to get that upgrade on the Sydney Sleeper until mvm_upgrades.txt is updated. But the game code is now set up to allow it if/when a new block is added to that file.This is also one of the relatively rare cases where the same upgrade attribute has multiple "qualities": miniguns use a special version of the firing speed upgrade that costs more; demo pipe/sticky launchers use a special version of the damage upgrade that costs more and is only 20% instead of 25%. Likewise, the slowdown upgrade for the Sydney Sleeper is a separate "quality", so it may have a different cost than the regular jarate slowdown upgrade, and it could even have more available upgrade levels or a larger or smaller effect amount. Again, it depends on what gets put in mvm_upgrades.txt.Here's what you get when you add a new upgrade block to mvm_upgrades.txt for the Sydney Sleeper slowdown upgrade variant. (For this video, I set the cost to $400 and gave it the same increment/cap as the regular slowdown upgrade.)You know how soldier bots will automatically use buff items when they're charged, and how scout bots will automatically use drinkable secondaries when they're charged? Well, that's handled in, and Valve added some new code to that function in the update: code which makes bots use their BASE Jumper (if equipped) in certain situations.I haven't fully reverse engineered the code that determines when they use it, but I can at least tell that these things are factored into the logic:And how do they activate their BASE Jumper? By holding down their jump key, of course! (Yes, they literally call. Bots press "virtual buttons" to do many things.)Valve added a new possible field for TFBot spawners: "Attributes Parachute". It's considered a valid value, and it's fully parsed and stored as a flag in the spawner, but as far as I can tell, it doesn't actually do anything, at least right now. Bots will use their equipped BASE Jumper regardless of whether "Attributes Parachute" is in their spawner definition.Oh, and here's the best part: you can equip the BASE Jumper on any bot, not just soldiers and demos. And it totally still works.I made a test popfile with bots that AutoJump (same as Samurai demos or jumping Sandman scouts), to show how they will use the BASE Jumper now.A few caveats:Popfile used to make the video: link Yes, Valve actually officially added this to the game! Why? I don't know! I had a mod that enabled basically the same thing, but I never asked them to put it into the game officially, mostly because I thought it was silly to think that they'd actually do it. But they did, for whatever reason.What first tipped me off was that they added a couple of new functions:and. And I was like,. And then I thought,... and it led me to this.They added a new flag for TFBot spawners: "Attributes ProjectileShield". Giving a medic "Attributes ProjectileShield" will enable the following logic in the medicbot AI:Now obviously, pressing the special attack key won't actually do anything unless you give the bot's medigun the projectile shield upgrade. So you'll still need to give their medigun "generate rage on heal" (1 = level 1 shield, 2 = level 2 shield) for them to be able to deploy the shield.On the other hand, if you happen to have medicbots who have "generate rage on heal", but who do not have "Attributes ProjectileShield", they will simply never press their special attack button to deploy it.The only real difference compared to my mod is that medics will pop shield only when they or their patient are injured, instead of constantly trying to pop it all the time.In conjunction with the AI change, Valve also appears to have fixed the issue where blu-team medics who used the projectile shield would still use the red shield model. (When I wrote my mod, I had to fix this myself, with a small override to make the shield model switch skin based on team.)The usual caveats related to giving medicbots shields still apply:Also, for mission designers, you may still want to do some of the following things to make Shield Medics work the way you want:Demonstration of medicbot popping shield upon injury: (no server mods used in this video)Valve is addingto MvM-related parts of the game. This hasn't happened since the Two Cities Update.Did someone specifically email Valve to ask them to add some of these things? Because I know I didn't. Or, did one of the TF2 devs actually decide, of their own free will, that theyto work on MvM and add something cool to the game?Does this mean Valve is working toward some kind of MvM-related update in the future? Does it mean they've finally remembered that MvM isin their game? Am I reading into this too much?