The Bruiser Brigade

Canceled The Bruiser Brigade A7

No permission to download
Project is halted prior to completion and will not receive further updates.
To be honest, nope. I didn't alter it myself. It happened when I selected that mode and then chose any character. It was about to start but then it crashed.
 
Not a lot of time to work on this these days, but In the past few months I started revamping the meta-game system of this mod.

In this new version, the goal is not to go from left-to-right and clean the stage. The goal is to install and defend pumps that will suck up the virus from the stage at strategic positions. The virus is controlled by a third faction called "the legion" that will intervene when you start to stop the virus from spreading. This version of the game adds a whole new layer of strategic/tactical options.

The rules are quite complex.

- Standard/local enemies will automatically spawn until the stage is completed
- To complete the stage, you must spawn "virus pumps" into the red zones (they are three of them), and keep them alive at a charge level > 100 for around 1 minute.
- Pump health will recover if an ally is next to it.
- Virus bubbles and virus enemies are spawning from red zones unless there is an active pump around. Virus bubbles make standard enemies a lot stronger on impact.
- The activity of a virus pump might be detected and open a spatial rift. Crawlers will spawn from this rift until its closed. Crawlers are strong legion entities that will try to kill you and local enemies. By doing so, they gather vital energy. If they gather enough vital energy, very strong legion entities will be summoned. So when a pump is detected, make sure to switch it off, unless you want to play it the dangerous way.
- The destruction of a pump will automatically be detected and open a rift. So be sure to protect your pumps.


- You will not succeed in cleaning a stage alone, because there are several fights occurring at the same time in different places of the level. You have to use allies entities. They are two types of allies entities : mobile, playable units and static units. Static units are like towers, you spawn them on a spot and they stay here to attack surrounding enemies. Mobile units are your main units. You can have three of them, one being the character you are controlling (you can switch on the fly). The two others will follow the lead character by default, but you can assign them to positions so that they act like static units. When you have more than one active pump, it is advised to leave a mobile unit to stay near them.

Here's a video showcasing what it's like to play with these rules :

https://youtu.be/CmtyceYYGrQ

This is not clearly visible in this video but a big strategic mistake can cost you a lot.
 
That pump-saving is crazy, creative, and super excellent, even switching to another character as a player. I really like that. You gotta be more careful with managing the pumps or you will fail. This is one hell going to be more serious than playing other unchallenged BOR/OBOR mods. The challenge and fun factor are always a key to make the game interesting.
 
I have problem telling which ones are enemies and which are playables but I can see the idea of setting pumps and defending them :). Good work!

BTW how do you switch played character?
 
maxman said:
That pump-saving is crazy, creative, and super excellent, even switching to another character as a player. I really like that. You gotta be more careful with managing the pumps or you will fail. This is one hell going to be more serious than playing other unchallenged BOR/OBOR mods. The challenge and fun factor are always a key to make the game interesting.

Yes, you need to pay attention to a lot of things and that's quite stimulating  ;D Thanks maxman  ;)

Bloodbane said:
I have problem telling which ones are enemies and which are playables but I can see the idea of setting pumps and defending them :). Good work!

BTW how do you switch played character?

Haha I certainly see how this can be a mess to understand when we are not controlling the game and/or used to it, especially since I did not use actual "Bruisers" in this demo.

There is two ways to change the current character. One is to go through the main battlefield menu (used to spawn pumps, static units, etc) and the other (which I prefer) is to use shortcuts. Holding block and pressing punch+jump = switch to ally 1, holding block and pressing kick + special = switch to ally 2. You can give some orders using the same shortcut base (punch+jump for ally1 orders, kick+special for ally 2 orders).

Thanks anyway :)

Miru said:
I suggest E-123 Omega as a playable character in this.

I'll look into it, if his moveset suit the game, why not.
 
Nice feature! It looks like less and less like the lambda beat em up game.
I like the assist system.

BTW Any news about R. Mika? (yes, I like when there is at least one girl in the team) :P
 
Thanks Ned.

Mika is on her way, she's about as advanced as Ryu/Bison/Akuma. But I need to finish her slams, and she has quite a lot. She'll definitely be included in the next demo.

 
Bloodbane said:
Piccolo said:
There is two ways to change the current character. ...

Oops, I meant how to do that with script  :-[

Oh my bad. Basically switching is an illusion, the two entities just swap properties (model, position, health, current animation, ...) so that it looks and feels as if you took control of the other.

Here's my full function for that :

Code:
void switchToAlly(int player, int allyNumber, int spawnIfDead){
	int subjectToScreen = getindexedvar("subjectToScreen");
	
	
	void vSelf = getplayerproperty(player, "entity");
	void ally = getindexedvar("ally" + allyNumber);
	
	
	if(spawnIfDead && isDead(ally)){
		setindexedvar("selectGrid", allyNumber);
		setindexedvar("allyCaller", player);
	
		togglePause(1);
		return 1;
	}
	

	char allyModel = getentityproperty(ally, "model");
	char allyDModel = getentityproperty(ally, "defaultmodel");
	char allyName = getentityproperty(ally, "name");
	int allyMap = getentityproperty(ally, "map");
	int allyHealth = getentityproperty(ally, "health");
	int allyX = getentityproperty(ally, "x");
	int allyY = getentityproperty(ally, "y");
	int allyZ = getentityproperty(ally, "z");
	int allyDir = getentityproperty(ally, "direction");
	int allyAnim = getentityproperty(ally, "animationid");
	int allyAnimPos = getentityproperty(ally, "animpos");
	int allyOrder = getentityvar(ally, "order");
	int allyHoldPosition = getentityvar(ally, "holdPosition");
	int allyHoldPositionZ = getentityvar(ally, "holdPositionZ");
	int allyTarget = getentityvar(ally, "bindTarget");
	

	changeentityproperty(ally, "model", getentityproperty(vSelf, "model"), 1);

	changeentityproperty(ally, "name", getentityproperty(vSelf, "name"));
	changeentityproperty(ally, "map", getentityproperty(vSelf, "map"));
	changeentityproperty(ally, "health", getentityproperty(vSelf, "health"));
	changeentityproperty(ally, "x", getentityproperty(vSelf, "x"));
	changeentityproperty(ally, "y", getentityproperty(vSelf, "y"));
	changeentityproperty(ally, "z", getentityproperty(vSelf, "z"));
	changeentityproperty(ally, "direction", getentityproperty(vSelf, "direction"));
	changeentityproperty(ally, "animation", getentityproperty(vSelf, "animationid"));
	updateframe(ally, getentityproperty(vSelf, "animpos"));
	setentityvar(ally, "order", getentityvar(vSelf, "order"));
	setentityvar(ally, "holdPosition", getentityvar(vSelf, "holdPosition"));
	setentityvar(ally, "holdPositionZ", getentityvar(vSelf, "holdPositionZ"));
	setentityvar(ally, "movingToSpot", NULL());
	releaseTargetEnt(ally);
	setentityvar(ally, "bindTarget", getentityvar(vSelf, "bindTarget"));
	changeentityproperty(ally, "hostile", openborconstant("TYPE_ENEMY"));
 		
	changeentityproperty(vSelf, "model", allyModel, 1);
	changeentityproperty(vSelf, "name", allyName);
	changeentityproperty(vSelf, "map", allyMap);
	changeentityproperty(vSelf, "health", allyHealth);
	changeentityproperty(vSelf, "x", allyX);
	changeentityproperty(vSelf, "y", allyY);
	changeentityproperty(vSelf, "z", allyZ);
	changeentityproperty(vSelf, "direction", allyDir);
	changeentityproperty(vSelf, "animation", allyAnim);
	updateframe(vSelf, allyAnimPos);
	setentityvar(vSelf, "order", allyOrder);
	setentityvar(vSelf, "holdPosition", allyHoldPosition);
	setentityvar(vSelf, "holdPositionZ", allyHoldPositionZ);
	setentityvar(vSelf, "movingToSpot", NULL());
	releaseTargetEnt(vSelf);
	setentityvar(vSelf, "bindTarget", allyTarget);
	
	changeplayerproperty(player, "name", allyName);
	changeplayerproperty(player, "colourmap", allyMap);
	
	
	if(subjectToScreen != NULL() && subjectToScreen == 0){
		changeentityproperty(vSelf, "parent", NULL());
		changeentityproperty(ally, "parent", NULL());
		changeentityproperty(vSelf, "subject_to_screen", 0);
		changeentityproperty(ally, "subject_to_screen", 0);
	}
	
	
	if(getentityproperty(vSelf, "aiflag", "walking") || getentityproperty(vSelf, "aiflag", "running") ||
		getentityproperty(ally, "animationID") == openborconstant("ANI_run") || getentityproperty(ally, "animationID") == openborconstant("ANI_walk") || getentityproperty(vSelf, "aiflag", "blocking") || getentityproperty(ally, "animationID") == openborconstant("ANI_freespecial2")){
		setidle(ally);
	}
	
	if(allyAnim == openborconstant("ANI_run") || allyAnim == openborconstant("ANI_walk") || allyAnim == openborconstant("ANI_backwalk") || allyAnim == openborconstant("ANI_follow21")){
		setidle(vSelf);
	}
	

	
	init_NPC_WOT(ally);
	
	refreshLifeBars();
	

}
 
Hey,

Finally had the time to build a testing demo for the new system.

The "Screenshot" key is used to toggle the management menu.

I'll let you read my previous posts to understand the new objectives. Basically you have to set up three pumps under red zones (see minimap, plus you'll see a blinking pump mask when you reach such a zone), defend them and maintain them active until they suck the virus from the ground.

A quick tip : when switching from one character to the other, hold the combination so that the character you leave stays in place. If you were near a pump, this character will defend it.

Kudos to those who understand this new version and manage to complete the demo.
 
Back
Top Bottom