BEEmod / BEE2-items

Standard Items for the BEE2.4
132 stars 46 forks source link

Enable paint gun in base Portal 2 #4296

Open vrad-exe opened 1 year ago

vrad-exe commented 1 year ago

Aperture Tag's workshop is currently broken, as its binaries were never updated to support workshop item IDs greater than 2^31. The vote screen doesn't work, multiverse cave gets stuck repeating the same lines, and playing coop maps fails entirely because it can't verify that both people have the map downloaded. The Aperture Tag developer has been told about this but seems to have no intent to fix it, so I think we need to just take this into our own hands by bypassing Aperture Tag entirely and enabling the paint gun to be used in standard Portal 2.

What needs to be done

TeamSpen210 commented 1 year ago

The third reason there is indeed why I didn't originally allow it to be used in base Portal 2. I have been thinking about whether we do need a page in the app to control which guns you spawn with, this would be another usecase. For the fields we could enhance them a fair bit, add in several colours to show which gels you're getting access to. Also expand it, add the ability to grant the player any combination of gels.

vrad-exe commented 1 year ago

What do you mean by any combination of gels, like allowing it to also include conversion/reflection/cleansing types? How would you switch between all of those, we can't bind additional keys for next/previous paint.

TeamSpen210 commented 1 year ago

I was thinking of three possible modes:

vrad-exe commented 1 year ago

It's also difficult to figure out how to expose all this in the UI, I'm not sure how you'd assign specific gels to each slot - again if we do a UI for that in the app, it would be global instead of map specific. We really need a way to be able to know what map the player is currently editing, did you ever try implementing the thing with reading the autosave files?

slambo311 commented 1 year ago

Here's an idea: Essentially, take the "we can't bind additional keys for next/previous paint", and throw it out the window by somehow packing and executing .cfg files into maps, and binding [ and ] to commands that use ent_fire to trigger relays (or vscripts or whatever) that swap both gels, in this looping order: Repulsion + Propulsion -> Conversion + Reflection -> Cleansing + Cleansing.

So absurdly stupid that it just might work. But I wouldn't be surprised if you already thought of that.

vrad-exe commented 1 year ago

I mean, we physically can bind new keys by just running bind commands through VScript or whatever, but it's considered a very bad practice because you're forcing the user to have a specific thing bound to those keys - it'll override anything else they might have bound there, and can't be rebound unless they know about the console (and even if they did that, it'd just get switched back the next time they played another BEE map since we have no way of knowing if they have it bound to another key).

Additionally, ent_fire is a cheat which means it can't be used in Coop without sv_cheats enabled.

TeamSpen210 commented 1 year ago

It's also entirely useless for people who want to use a controller, are playing on a Steam Deck, etc.

vrad-exe commented 1 year ago

Also unsure what should happen with the existing Tag support, if we should keep it in place (some things would need to be handled differently like the portal/paint gun models) or just drop it once that's merged into the base game.

dsagfa commented 1 year ago

YES!