Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Plasma spheres do more damage in bstone than they did in vanilla #398

Open
jwaffe75 opened this issue Feb 28, 2022 · 1 comment
Open

Plasma spheres do more damage in bstone than they did in vanilla #398

jwaffe75 opened this issue Feb 28, 2022 · 1 comment

Comments

@jwaffe75
Copy link

jwaffe75 commented Feb 28, 2022

You can die almost instantly (in less than a second) when you make contact with a plasma ball on the max skill level in bstone.

In vanilla BS:AOG the plasma spheres do a lot less damage.

I wonder if this has something to do with the frame rate? In any case it makes it a lot more tedious to get around in the plasma sphere maze sections.

Also, hope you are doing OK over there.

@jwaffe75
Copy link
Author

jwaffe75 commented Mar 1, 2022

On my own machine I made a quick hack on this part of the code:

bstone/src/3d_act2.cpp

Lines 1749 to 1753 in 6699d5a

if (dist < 1.0)
{
sd_play_actor_weapon_sound(ELECARCDAMAGESND, *ob);
TakeDamage(4, ob);
}

This makes the plasma spheres do considerably less damage than the DOS version (from the feel of it) but I never really liked how deadly they were in the original anyway.

static const int damageFrameCount = 16;
static int damageFrame = 0;

void T_OfsBounce(
	objtype* ob)
{
	// Should Electro-Sphere decrease player's health?
	//

	const auto dx = std::abs(player->x - ob->x);
	const auto dy = std::abs(player->y - ob->y);
	const auto dist = dx > dy ? dx : dy;

	if (dist < 1.0)
	{
		if(damageFrame > 0)
		{
			damageFrame--;
		}
		else
		{			
			sd_play_actor_sound(ELECARCDAMAGESND, ob, bstone::ActorChannel::weapon);

			//[75] The plasma spheres do way too much damage in the source port compared to vanilla, let's 
			// 		try and fix that by reducing the damage, I think this is a frame rate thing.
			TakeDamage(4, ob);

			damageFrame = damageFrameCount;
		}
	}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant