header general

Weapons Resource Wad

  • DeVloek
  • DeVloek's Avatar Topic Author
  • Arachnotron
  • Arachnotron
More
2 months 3 weeks ago #61 by DeVloek
Replied by DeVloek on topic Weapons Resource Wad
@Gothic since you used Zscript for the new code, I thought why not get rid of all the oldschool Decorate-style state jumps altogether and change the frames directly when a berserk is picked up (had to rename the QAX2 sprites to make this work properly). Also I implemented a method to prevent the weapon from auto-switching to the fist when a berserk is picked up (you can still switch manually). And lastly I added the FORCEPAIN flag to the puff, since the original axe in Arcane Dimension forces pain on enemies as well.

https://drive.google.com/file/d/1Ip90QsSr_lOc7bd3LSBW9mR-4KUtkiqB/view?usp=sharing

 

Please Log in or Create an account to join the conversation.

  • Gothic
  • Gothic's Avatar
  • Moderator
  • Moderator
More
2 months 2 weeks ago #62 by Gothic
Replied by Gothic on topic Weapons Resource Wad
Nice job! I was trying to find a way to change sprites without using jumps, but I didn't know how.
However, the problem with DoEffect is that it changes sprites every tic, but the attack frames last 2 tics, so it flickers in between frames because it's constantly looking for a sprite 9 frames forward that doesn't exist. I could solve this by making every frame last 1 tic.
Code:
    Fire:         QAXE B 0 A_Jump(128,"Fire2");         QAXE B 1 A_StartSound("weapons/quakeaxe",7);         QAXE BCCDD 1;         QAXE E 1 CA_QuakeAxeChop();         QAXE E 1;         TNT1 A 7;         QAXE II 1;         Goto Ready;     Fire2:         QAXE F 1 A_StartSound("weapons/quakeaxe",7);         QAXE FGGHH 1;         TNT1 A 9 CA_QuakeAxeChop();         QAXE II 1;         Goto Ready;
The sprites are done, and I removed the +NOEXTREMEDEATH flag from QAxePuff so it could gib monsters while using a PowerDamage powerup.
 

File Attachment:

File Name: ArcaneAxeRC1.zip
File Size:551 KB

Please Log in or Create an account to join the conversation.

  • DeVloek
  • DeVloek's Avatar Topic Author
  • Arachnotron
  • Arachnotron
More
2 months 2 weeks ago - 2 months 2 weeks ago #63 by DeVloek
Replied by DeVloek on topic Weapons Resource Wad
Nice work on the hand and arm, looks good 8-)

I didn't even notice the frames not rendering when they last longer than one tic :-o Not sure why that even happens, but I'm glad it was easy to fix.

One thing I noticed with my method of keeping the axe equipped when picking up a berserk: if you have already picked up a berserk in the current map, and you pick up a 2nd (or 3rd, 4th etc) berserk while having the axe equipped, it'll still switch to the fist (this happens because PowerStrength can only be given once per map, so HandlePickup won't handle it twice). Which I guess is a rare edge case but it can be prevented by either changing line 85 to
Code:
if (item is 'PowerStrength' || item is 'Berserk') doonce = true;
or changing line 71 to
Code:
if (pwep is 'Fist' && (doonce == true || (rwep is 'QuakeAxe' && psp.frame >= 9)))
The first method probably only works in Doom games and only with items that inherit from the Berserk pack, so the 2nd method is preferable.
Either way, it'll result in displaying the normal axe frame for 1 tic when another berserk is picked up. There might be a way to fix it properly but I'm not sure if it's worth the effort digging even deeper into this.

edit: earlier I said I don't know why the frames don't render, that was a classic case of not seeing the obvious tree in the woods. Changing line 70 to
Code:
if (rwep is 'QuakeAxe' && psp && psp.frame < 9) psp.frame += 9;
will fix it. Regardless of how many tics any frame lasts, the frame number will only change as long as it's below 9.
Last edit: 2 months 2 weeks ago by DeVloek.

Please Log in or Create an account to join the conversation.