Advertisement
inkoalawetrust

Early squad system test.

Jun 12th, 2022
1,016
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.52 KB | None | 0 0
  1. //This code was made to see if it would be possible to make my GZDoom marine NPCs (https://github.com/inkoalawetrust/Smart-Marines)
  2. //able to follow other marines or any actor in general, without also trying to attack it. So that I could determine if its' possible to
  3. //make a squad system.
  4. //It is possible, so I'm working on said squad system as of the time this paste was posted.
  5.  
  6. Class FollowerImp : DoomImp Replaces DoomImp
  7. {
  8.     States
  9.     {
  10.         See:
  11.             TROO AABBCCDD 3
  12.             {
  13.                 Actor OriginalTarget;
  14.                 If (Master && Distance2D (Master) >= 512 && Distance2D (Master) <= 128)
  15.                 {
  16.                     A_Log ("Following my boss.");
  17.                    
  18.                     If (!MonsterMove())
  19.                     {
  20.                         OriginalTarget = Target;
  21.                         Target = Master;
  22.                         NewChaseDir();
  23.                         FaceMovementDirection();
  24.                         Target = OriginalTarget;
  25.                         OriginalTarget = Null;
  26.                     }
  27.                    
  28.                     A_Chase(flags:CHF_DONTMOVE);
  29.                 }
  30.                 Else
  31.                 {
  32.                     A_Log ("Moving normally.");
  33.                     A_Chase();
  34.                 }
  35.             }
  36.             Loop;
  37.         Idle:
  38.             TROO AABBCCDD 3
  39.             {
  40.                 Actor OriginalTarget;
  41.                 If (Master && Distance2D (Master) >= 128)
  42.                 {
  43.                     A_Log ("Following my boss.");
  44.                     OriginalTarget = Target;
  45.                     Target = Master;
  46.                     NewChaseDir();
  47.                     FaceMovementDirection();
  48.                     Target = OriginalTarget;
  49.                     OriginalTarget = Null;
  50.                     A_Look();
  51.                 }
  52.                 Else
  53.                 {
  54.                     A_Log ("Moving normally.");
  55.                     A_Wander();
  56.                     A_Look();
  57.                 }
  58.             }
  59.             Loop;
  60.         Melee:
  61.         Missile:
  62.             TROO EF 8 A_FaceTarget();
  63.             TROO G 6 A_TroopAttack();
  64.             Goto See;
  65.         Pain:
  66.             TROO H 2;
  67.             TROO H 2 A_Pain();
  68.             Goto See;
  69.         Death:
  70.             TROO I 8;
  71.             TROO J 8 A_Scream();
  72.             TROO K 6;
  73.             TROO L 6 A_NoBlocking();
  74.             TROO M -1;
  75.             Stop;
  76.         XDeath:
  77.             TROO N 5;
  78.             TROO O 5 A_XScream();
  79.             TROO P 5;
  80.             TROO Q 5 A_NoBlocking();
  81.             TROO RST 5;
  82.             TROO U -1;
  83.             Stop;
  84.         Raise:
  85.             TROO ML 8;
  86.             TROO KJI 6;
  87.             Goto See;
  88.     }
  89. }
  90.  
  91. Class LeaderPinky : Demon Replaces Demon
  92. {
  93. //  Default {Speed 20;}
  94.     Override Void PostBeginPlay ()
  95.     {
  96.         Super.PostBeginPlay ();
  97.        
  98.         A_SpawnItemEx ("FollowerImp",FRandom (384,-384),FRandom (384,-384),flags:SXF_SETMASTER);
  99.         A_SpawnItemEx ("FollowerImp",FRandom (384,-384),FRandom (384,-384),flags:SXF_SETMASTER);
  100.         A_SpawnItemEx ("FollowerImp",FRandom (384,-384),FRandom (384,-384),flags:SXF_SETMASTER);
  101.         A_SpawnItemEx ("FollowerImp",FRandom (384,-384),FRandom (384,-384),flags:SXF_SETMASTER);
  102.     }
  103.     States
  104.     {
  105.         See:
  106.             SARG AABBCCDD 2 Fast A_Chase();
  107.             Loop;
  108.         Idle:
  109.             SARG AABBCCDD 2
  110.             {
  111.                 A_Wander();
  112.                 A_Look();
  113.             }
  114.             Loop;
  115.     }
  116. }
  117.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement