[Decorate] Charging then Loop attack

Ask about ACS, DECORATE, ZScript, or any other scripting questions here!

Moderator: GZDoom Developers

Forum rules
Before asking on how to use a ZDoom feature, read the ZDoom wiki first. If you still don't understand how to use a feature, then ask here.

Please bear in mind that the people helping you do not automatically know how much you know. You may be asked to upload your project file to look at. Don't be afraid to ask questions about what things mean, but also please be patient with the people trying to help you. (And helpers, please be patient with the person you're trying to help!)
Post Reply
XLightningStormL
Posts: 384
Joined: Mon May 09, 2016 1:38 am
Location: Anywhere but here
Contact:

[Decorate] Charging then Loop attack

Post by XLightningStormL »

Messy title aside, I'm recreating the Shambler from Quake for Resurrected Nightmare, and I've come to the issue of it's attack functionality. Essentially much like Quake, the Shambler starts off by Charging the attack, then "looping it" a-la Chaingunner refire (as long as the player remains in view), after the player flees from it's "FOV" it does the standard Doom "finding the player"/See stuff etc.

So:
- Find Player
- When Player is found, it attacks.
- Section for the charge.
- Refire Section.
- Back to finding player.

Note: If you want a sprite name, just use "SHAM".
User avatar
Jekyll Grim Payne
 
 
Posts: 1073
Joined: Mon Jul 21, 2008 4:08 am
Preferred Pronouns: He/Him
Graphics Processor: nVidia (Modern GZDoom)
Contact:

Re: [Decorate] Charging then Loop attack

Post by Jekyll Grim Payne »

So... what's your question and at what point are you starting to have issues?

You can provide charging animation at the beginning of the Missile state, then the firing animation, and after A_CPosRefire you put goto Missile+# and use the number to tell which frame to jump to (skipping the charging animation). In fact, Chaingunguy does the same, except its 'charging' animation is only 1 frame long.

Code: Select all

  Missile:
    CPOS E 10 A_FaceTarget 
    CPOS FE 4 Bright A_CPosAttack // Jumps back here as long as target is in view<--...
    CPOS F 1 A_CPosRefire // 
    Goto Missile+1 //---...
Post Reply

Return to “Scripting”