A MonsterRefire: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
No edit summary |
||
| (24 intermediate revisions by 8 users not shown) | |||
| Line 1: | Line 1: | ||
{{DISPLAYTITLE:A_MonsterRefire}} |
|||
'''A_CPosRefire''' |
|||
''' |
'''{{class|Actor}}''' |
||
{{c|native State '''A_MonsterRefire''' (int ''chance'', statelabel ''label'')}} |
|||
'''A_SentinelRefire''' |
|||
== Usage == |
|||
(no parameters) |
|||
Calls [[A_FaceTarget]] and then checks whether the monster should abort its attack sequence and go to a different [[Actor states|state]]. If the target is out of sight or dead, has a '''chance'''/255 chance to not jump to the ''label'' state sequence. Also aborts the attack if it hit the monster's ally. |
|||
Monster-specific functions such as [[A_CPosRefire]], [[A_CrusaderRefire]], [[A_SpidRefire]] and [[A_SentinelRefire]], are variations of this function with predetermined chances (they also all jump to the "See" state sequence if the attack is to be aborted). |
|||
=== Parameters === |
|||
Checks whether the monster should loop its attack sequence. If the target is out of sight the attack is terminated with a small random factor to continue it. This random factor is slightly higher for A_CPosRefire than for A_SpidRefire. |
|||
*{{c|int '''chance'''}} |
|||
:Chance in the 0-255 range that the actor will ''continue'' attacking even if its target is dead or out of sight. |
|||
*{{c|StateLabel '''label'''}} |
|||
:Name of the state sequence to go to if the actor aborts its attack, for example {{c|"See"}}. |
|||
== Example == |
|||
A_SentinelRefire is similar but it also has a small change of the attack being terminated even if the target is still visible. |
|||
Class SuperZombie : {{Class|ZombieMan}} |
|||
{ |
|||
States |
|||
{ |
|||
Missile: |
|||
POSS E 10 [[A_FaceTarget]]; |
|||
MissileLoop: {{comment|Intentional fall-through}} |
|||
POSS FE 2 Bright [[A_PosAttack]]; |
|||
POSS F 1 [[A_MonsterRefire]](128, "See"); {{comment|50% chance to jump to "See" if target is out of sight.}} |
|||
loop; {{comment|If the jump ''doesn't'' happen, loops back to the start of MissileLoop}} |
|||
} |
|||
} |
|||
[[category:Decorate Generic Attack functions]]{{DEFAULTSORT:MonsterRefire}} |
|||
All these functions jump to the '''See''' [[Actor states|state]] if the attack is to be aborted. The loop has to be explicitly coded in the actor definition. |
|||
Latest revision as of 12:18, 30 November 2024
native State A_MonsterRefire (int chance, statelabel label)
Usage
Calls A_FaceTarget and then checks whether the monster should abort its attack sequence and go to a different state. If the target is out of sight or dead, has a chance/255 chance to not jump to the label state sequence. Also aborts the attack if it hit the monster's ally.
Monster-specific functions such as A_CPosRefire, A_CrusaderRefire, A_SpidRefire and A_SentinelRefire, are variations of this function with predetermined chances (they also all jump to the "See" state sequence if the attack is to be aborted).
Parameters
- int chance
- Chance in the 0-255 range that the actor will continue attacking even if its target is dead or out of sight.
- StateLabel label
- Name of the state sequence to go to if the actor aborts its attack, for example "See".
Example
Class SuperZombie : ZombieMan { States { Missile: POSS E 10 A_FaceTarget; MissileLoop: // Intentional fall-through POSS FE 2 Bright A_PosAttack; POSS F 1 A_MonsterRefire(128, "See"); // 50% chance to jump to "See" if target is out of sight. loop; // If the jump doesn't happen, loops back to the start of MissileLoop } }