header general

[SUBMISSION] Cryotron

  • CaptainToenail
  • CaptainToenail's Avatar Topic Author
  • Wicked
  • Wicked
More
1 month 1 week ago - 1 month 1 week ago #1 by CaptainToenail
[SUBMISSION] Cryotron was created by CaptainToenail
I thought the Cryocubus was really neat and could use a friend so I made an ice-themed Arachnotron. This one launches bouncing ice balls in a spread pattern. Can be quite chaotic in areas with lots of corners and corridors. It's weapon is similar in theme to the Ice Crystal Gun, maybe they originated from the same UAC lab?


Information:
Name: Cryotron
Difficulty: Medium
Connections: None
Summon: Cryotron
Melee: None
Distance: Projectile spread
Type: Demon, Cybernetic, Ice
Brightmaps: None
Actor modification: None
ACS: None

Credits:
Code: Captain Toenail, Gothic
GLDefs: lights.pk3
Sounds: DukeNukem3D, wrw.wad, Volition, TheDarkArchon
Sprites: Amuscaria, Doom, DukeNukem3D, wrw.wad
Sprite Edit: Captain Toenail
Idea Base: Mr Freeze from Batman & Robin film, Duke Nukem 3D's FreezeThrower, 
            Xim's FreezeRifle

Description:
    An Arachnotron encased in cryogenic technology.
    
    Its frostcannon launches a deadly spread of rebounding ice balls.
    
    Resistant to ice damage.


   

File Attachment:

File Name: Cryotron.zip
File Size:342 KB



 
Last edit: 1 month 1 week ago by CaptainToenail. Reason: Updated file

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

  • DeVloek
  • DeVloek's Avatar
  • Hades Elemental
  • Hades Elemental
More
1 month 1 week ago - 1 month 1 week ago #2 by DeVloek
Replied by DeVloek on topic [SUBMISSION] Cryotron
That's a cool concept ;-)

There are some warnings on startup:
​​​​​​Script warning, "Cryotron.pk3:zscript" line 176: Accessing deprecated function A_ChangeFlag - deprecated since 2.3.0, Use 'b = [true/false]' instead
Script warning, "Cryotron.pk3:zscript" line 177: Accessing deprecated function A_ChangeFlag - deprecated since 2.3.0, Use 'b = [true/false]' instead

you can use
bXFLIP = randompick(true,false);
and
bYFLIP = randompick(true,false);
respectively
Last edit: 1 month 1 week ago by DeVloek.

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

  • CaptainToenail
  • CaptainToenail's Avatar Topic Author
  • Wicked
  • Wicked
More
1 month 1 week ago #3 by CaptainToenail
Replied by CaptainToenail on topic [SUBMISSION] Cryotron
Thank you. Updated.

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

  • Gothic
  • Gothic's Avatar
  • Moderator
  • Moderator
More
1 month 1 week ago #4 by Gothic
Replied by Gothic on topic [SUBMISSION] Cryotron
We have a spider infestation.
Everything works fine except when if it gets morphed or dies morphed, it still spawns vapor clouds. I tried doing a check in the vapor spawner:
Code:
Spawn:             TNT1 A 1             {                 if(master && !master.MorphFlags) A_SpawnItemEx("Cryotron_Vapour",random(0,32),0,random(24,40),0,0,frandom(0.0,0.3),random(0,360),0,128);             }             TNT1 A 0 A_Warp(AAPTR_MASTER,0,0,0,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE,"Spawn");             Stop;
When the morphed monster dies, the vapor stops spawning but the spawner isn't really removed. I don't know how to resolve this.
I know it would be much easier to manage if the clouds come from the Cryotron itself instead of an external class.

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

  • CaptainToenail
  • CaptainToenail's Avatar Topic Author
  • Wicked
  • Wicked
More
1 month 1 week ago - 1 month 1 week ago #5 by CaptainToenail
Replied by CaptainToenail on topic [SUBMISSION] Cryotron
I ported the Porkulator into Doom to test this, and I am seeing odd behaviour.

If you morph a monster, for example DoomImp, you will get the Pig but you will also get an invisible 'ghost monster' that still makes sounds and shoots fireballs. Killing the pig will stop the ghost. This is with GZDoom 4.12.2 - is this a bug?

What is a property in zscript you can check to tell if a monster is currently morphed? Is it if the actor's MorphFlags are greater than zero? I could override tick() and put the vapour spawn function in there on the spider itself, if I can check if it is currently alive and not morphed.
Last edit: 1 month 1 week ago by CaptainToenail.

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

  • Gothic
  • Gothic's Avatar
  • Moderator
  • Moderator
More
1 month 1 week ago #6 by Gothic
Replied by Gothic on topic [SUBMISSION] Cryotron

If you morph a monster, for example DoomImp, you will get the Pig but you will also get an invisible 'ghost monster' that still makes sounds and shoots fireballs. Killing the pig will stop the ghost. This is with GZDoom 4.12.2 - is this a bug?

What is a property in zscript you can check to tell if a monster is currently morphed? Is it if the actor's MorphFlags are greater than zero? I could override tick() and put the vapour spawn function in there on the spider itself, if I can check if it is currently alive and not morphed.
 
The morph bug has been fixed in the dev builds, I'm using g4.13-pre110-whatever.
You can use the virtual functions (Pre/Post)(Morph/Unmorph) to change properties at those moments:
Code:
    bool morbed;     override void PreMorph(Actor mo, bool current)     {         if(!current)         {             morbed = true;         }     }     override void PostUnMorph(Actor mo, bool current)     {         if(current)         {             morbed = false;         }     }     override void Tick()     {         super.Tick();         if(!isFrozen() && !bCORPSE && !morbed)         {             A_SpawnItemEx("Cryotron_Vapour",random(0,32),0,random(24,40),0,0,frandom(0.0,0.3),random(0,360),0,128);         }     }

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

  • CaptainToenail
  • CaptainToenail's Avatar Topic Author
  • Wicked
  • Wicked
More
1 month 1 week ago #7 by CaptainToenail
Replied by CaptainToenail on topic [SUBMISSION] Cryotron
That did the trick Gothic - I have updated the file with your code

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

  • Gothic
  • Gothic's Avatar
  • Moderator
  • Moderator
More
1 month 1 week ago #8 by Gothic
Replied by Gothic on topic [SUBMISSION] Cryotron
Added
Forgot to mention, I took that method from Rifleman's monsters, so credit goes to him as well.

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