Jump to content
  • 0

Replicating the Maulotaur Hammer Attack


Not Jabba

Question

I'm looking to increase the damage of the Maulotaur's melee attack, and since it's a hard-coded action, that means remaking the attack from scratch. It's simple enough to create a more powerful melee attack, but the hammer attack also has that special effect where it knocks down the player's view height for a second. Is it possible to replicate this in Decorate?

Share this post


Link to post

8 answers to this question

Recommended Posts

  • 0

How about calling 2 attack functions at the same time, one being the original minotaur attack, and the other one being a custom attack doing additional damage?

 

I don't think DECORATE has any clean way to affect the target in arbitrary ways. But if you were using ZScript, you could define your own function similarly how ZScript defines the original hammer attack:

	void A_MinotaurAtk1()
	{
		if (!target)
		{
			return;
		}
		A_PlaySound ("minotaur/melee", CHAN_WEAPON);
		if (CheckMeleeRange())
		{
			int damage = random[MinotaurAtk1](1, 8) * 4;
			int newdam = target.DamageMobj (self, self, damage, 'Melee');
			target.TraceBleed (newdam > 0 ? newdam : damage, self);
			PlayerInfo player = target.player;
			if (player != null && player.mo == target)
			{ // Squish the player
				player.deltaviewheight = -16;
			}
		}
	}

 

Share this post


Link to post
  • 0

Sounds useful!

 

Another thought I've been considering for the hammer attack: Is it possible to have it deal splash damage? Seems reasonable that an attack that powerful with a weapon that large could smash multiple targets, and it might look awesome to have it do so. I'm pretty sure you can't just attach splash damage directly to melee attacks, but is there a way to add in something that delivers splash damage immediately after the attack lands, in the same spot as the attack itself?

Share this post


Link to post
  • 0
9 minutes ago, scifista42 said:

Just make the monster spawn an exploding actor in front of itself.

Ok, so it looks like that would be done with A_SpawnItem, and then create a new item with null sprites that goes immediately from its Spawn state to its Death state and calls A_Explode?

Share this post


Link to post
  • 0
3 hours ago, scifista42 said:

How about calling 2 attack functions at the same time, one being the original minotaur attack, and the other one being a custom attack doing additional damage?

This is basically how I did it:

 

    Melee:
	MNTR G 6 A_FaceTarget
	MNTR H 7 A_FaceTarget
	MNTR I 0 A_MinotaurAtk1
	MNTR I 12 A_MeleeAttack
	Goto See

With the MeleeDamage and MeleeRange actor properties defining the damage and range respectively.

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...