Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //This code was made to see if it would be possible to make my GZDoom marine NPCs (https://github.com/inkoalawetrust/Smart-Marines)
- //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
- //make a squad system.
- //It is possible, so I'm working on said squad system as of the time this paste was posted.
- Class FollowerImp : DoomImp Replaces DoomImp
- {
- States
- {
- See:
- TROO AABBCCDD 3
- {
- Actor OriginalTarget;
- If (Master && Distance2D (Master) >= 512 && Distance2D (Master) <= 128)
- {
- A_Log ("Following my boss.");
- If (!MonsterMove())
- {
- OriginalTarget = Target;
- Target = Master;
- NewChaseDir();
- FaceMovementDirection();
- Target = OriginalTarget;
- OriginalTarget = Null;
- }
- A_Chase(flags:CHF_DONTMOVE);
- }
- Else
- {
- A_Log ("Moving normally.");
- A_Chase();
- }
- }
- Loop;
- Idle:
- TROO AABBCCDD 3
- {
- Actor OriginalTarget;
- If (Master && Distance2D (Master) >= 128)
- {
- A_Log ("Following my boss.");
- OriginalTarget = Target;
- Target = Master;
- NewChaseDir();
- FaceMovementDirection();
- Target = OriginalTarget;
- OriginalTarget = Null;
- A_Look();
- }
- Else
- {
- A_Log ("Moving normally.");
- A_Wander();
- A_Look();
- }
- }
- Loop;
- Melee:
- Missile:
- TROO EF 8 A_FaceTarget();
- TROO G 6 A_TroopAttack();
- Goto See;
- Pain:
- TROO H 2;
- TROO H 2 A_Pain();
- Goto See;
- Death:
- TROO I 8;
- TROO J 8 A_Scream();
- TROO K 6;
- TROO L 6 A_NoBlocking();
- TROO M -1;
- Stop;
- XDeath:
- TROO N 5;
- TROO O 5 A_XScream();
- TROO P 5;
- TROO Q 5 A_NoBlocking();
- TROO RST 5;
- TROO U -1;
- Stop;
- Raise:
- TROO ML 8;
- TROO KJI 6;
- Goto See;
- }
- }
- Class LeaderPinky : Demon Replaces Demon
- {
- // Default {Speed 20;}
- Override Void PostBeginPlay ()
- {
- Super.PostBeginPlay ();
- A_SpawnItemEx ("FollowerImp",FRandom (384,-384),FRandom (384,-384),flags:SXF_SETMASTER);
- A_SpawnItemEx ("FollowerImp",FRandom (384,-384),FRandom (384,-384),flags:SXF_SETMASTER);
- A_SpawnItemEx ("FollowerImp",FRandom (384,-384),FRandom (384,-384),flags:SXF_SETMASTER);
- A_SpawnItemEx ("FollowerImp",FRandom (384,-384),FRandom (384,-384),flags:SXF_SETMASTER);
- }
- States
- {
- See:
- SARG AABBCCDD 2 Fast A_Chase();
- Loop;
- Idle:
- SARG AABBCCDD 2
- {
- A_Wander();
- A_Look();
- }
- Loop;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement