12-03-2017, 05:47 PM
I want to bring up a topic on whole proxyActivate concept. It is important, because rediscovering is very essential part of the game for some kinds of levels. I suspect that I might be far from first to do it, but still.
For those who don't know, it is a part of game mechanics responsible for "rediscovering" of "abandoned" object. In original game you will first encounter it in level 4-4 named "The Lost Valley" where you will find several shooters, power cells and a power station. An object under proxyActivate cannot be detected by radar() function and it cannot be controlled by player. But as soon as camera (I emphasize it that it is exactly the camera of player and not some object under player's control, which also allows you to cheat on that with free floating camera) approaches such object to distance defined by proxyDistance then the object is being "rediscovered" and becomes available for player control and detectable for radar(). These two attributes are being set within scene.txt for objects.
What is bad with it? Everything. Normally you can detect with radar() every damn thing on the level. Every. Except for those rare special hidden secret objects that you will need the most, unlike some trees or bushes. Not only it makes no sense and makes radar() function partly useless, it forces the player who wants to beat level with programming to use certain coordinates and, of course, watch the camera all the time. And if you, for example, are playing for the first time and don't know coordinates, then you arrived, alas.
I propose to implement alternative mechanism that will merely make an object like a bot or a building non-controllable as if it was under selectable=0 attribute, but only until moment when another bot under player's control comes closer (to a certain distance passed by an attribute similar to proxyDistance, that is) and "re-activates" this object, either automatically or via some special function. Plus there should be additional attribute on an object determing whether it needs to be "activated" or not, so to let other bots know.
And a little off topic, but. If bot under this attribute or proxyActivate is destroyed, maybe there shouldn't be any notification about it?
For those who don't know, it is a part of game mechanics responsible for "rediscovering" of "abandoned" object. In original game you will first encounter it in level 4-4 named "The Lost Valley" where you will find several shooters, power cells and a power station. An object under proxyActivate cannot be detected by radar() function and it cannot be controlled by player. But as soon as camera (I emphasize it that it is exactly the camera of player and not some object under player's control, which also allows you to cheat on that with free floating camera) approaches such object to distance defined by proxyDistance then the object is being "rediscovered" and becomes available for player control and detectable for radar(). These two attributes are being set within scene.txt for objects.
What is bad with it? Everything. Normally you can detect with radar() every damn thing on the level. Every. Except for those rare special hidden secret objects that you will need the most, unlike some trees or bushes. Not only it makes no sense and makes radar() function partly useless, it forces the player who wants to beat level with programming to use certain coordinates and, of course, watch the camera all the time. And if you, for example, are playing for the first time and don't know coordinates, then you arrived, alas.
I propose to implement alternative mechanism that will merely make an object like a bot or a building non-controllable as if it was under selectable=0 attribute, but only until moment when another bot under player's control comes closer (to a certain distance passed by an attribute similar to proxyDistance, that is) and "re-activates" this object, either automatically or via some special function. Plus there should be additional attribute on an object determing whether it needs to be "activated" or not, so to let other bots know.
And a little off topic, but. If bot under this attribute or proxyActivate is destroyed, maybe there shouldn't be any notification about it?