header general

[UPDATE] ZScriptification, A through E

  • Ghastly
  • Ghastly's Avatar Topic Author
  • Administrator
  • Administrator
More
6 years 6 months ago - 6 years 1 month ago #1 by Ghastly
Finished ZScriptifying the Acolyte, Afrit, Agathodemon, Annihilator, Apprentice of D'Sparil, Arachnophyte, Archon of Hell, Auto-Shotgun Zombie, Avatar, Beam Zombie, Belphegor, BFG Commando, Blood Demon, Blood Fiend, Bruiser Demon, Butcher, Cacolich, Catharsi, Chaingun Major, Core Tentacles, Cybruiser, Dark Devil, the Dark Imps, Darkness Rift, Death Incarnate, Death Knight, Devastator Zombie, Diabolist, Disciple, Double-Chaingunner, Ethereal Soul and Hades Sphere (out of order, but it's part of the Death Incarnate).

Link: https://www.dropbox.com/s/qgij9pl0s8e7mj3/ZScriptification-Beastiary-AthroughE.zip?dl=0

PLEASE check and test these to make sure they ll work the way they used to. Especially the Heretic/Hexen Boss Shooters, as I don't have a test map for them. I just converted them to ZScript, cleaned up the code a little, replaced deprecated functions (that generated warnings) with newer functions, and updated them to newer methods of doing things. The old Decorate is included in a lump called OLDCODE. I also client-sided particle effects that weren't already, converted sounds to OGG and sprites to PNG. Everything should work exactly as it did before, except for these bug fixes.
  • Agathodemon: Melee sound now properly plays.
  • Avatar: Secondary projectiles from the splitting attack now properly track the original owner, so obituaries now work.
  • Cacolich: The one variant now properly plays a sound when it uses its gas stream attack.
  • Darkness Rift: Decided to rebalance it, since it's my monster. Increased its mass and drastically lowered its health.

I'm not converting everything, just the things I think are the highest-quality, the most usable, or my own work. If there's something specific you want me to update, let me know and I'll add it to the list.
Last edit: 6 years 1 month ago by Blue Shadow.

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

  • Blue Shadow
  • Blue Shadow's Avatar
  • Administrator
  • Administrator
More
6 years 6 months ago #2 by Blue Shadow
Replied by Blue Shadow on topic [Update]ZScriptification, A through E
Got them. Going through them might take a while, though, to let you know.

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

  • Ghastly
  • Ghastly's Avatar Topic Author
  • Administrator
  • Administrator
More
6 years 6 months ago #3 by Ghastly
Replied by Ghastly on topic [Update]ZScriptification, A through E
If you have suggestions for better ways of doing things, as well, I'd appreciate it. I'm doing this for two reasons; to get more familiar with ZScript, and to provide better examples for people trying to learn ZScript.

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

  • Blue Shadow
  • Blue Shadow's Avatar
  • Administrator
  • Administrator
More
6 years 6 months ago - 6 years 6 months ago #4 by Blue Shadow
Replied by Blue Shadow on topic [Update]ZScriptification, A through E
Acolyte
    In the old code, after doing a "slide", the monster has a chance of 96/256 to go back to See and 160/256 to go back to Slide, while in the new code things are reversed; it now has a chance of 160/256 to go back to See and 96/256 to go back to Slide.

Warning: Spoiler!


Agathodemon
    You forgot to remove the MissileType property now that there's no use for it anymore.
Last edit: 6 years 6 months ago by Blue Shadow.

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

  • Ghastly
  • Ghastly's Avatar Topic Author
  • Administrator
  • Administrator
More
6 years 6 months ago #5 by Ghastly
Replied by Ghastly on topic [Update]ZScriptification, A through E
Good catch, I mixed up the two labels. Fixed it and put it up on the first post. Checked the Disciple, as well, and I did it correctly there, but noticed I used a goto to jump to the same state rather than loop, so changed that and reuploaded that as well.

I believe actors are immune to the projectile set as their MissileType, and the Agathodemon doesn't have +DontHarmClass. I checked the wiki and it doesn't say so, though. I'll dig around and if I'm mistaken I'll fix it (and the others that I left that property on).

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

  • Blue Shadow
  • Blue Shadow's Avatar
  • Administrator
  • Administrator
More
6 years 6 months ago #6 by Blue Shadow
Replied by Blue Shadow on topic [Update]ZScriptification, A through E

Ghastly wrote: I believe actors are immune to the projectile set as their MissileType, and the Agathodemon doesn't have +DontHarmClass. I checked the wiki and it doesn't say so, though. I'll dig around and if I'm mistaken I'll fix it (and the others that I left that property on).

Never heard of that before. I did a test: I gave an imp that property, referencing the plasma ball. I shot it with the plasma rifle, but it took damage like normal.

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

  • Ghastly
  • Ghastly's Avatar Topic Author
  • Administrator
  • Administrator
More
6 years 6 months ago #7 by Ghastly
Replied by Ghastly on topic [Update]ZScriptification, A through E
Huh, thought that was how the Baron and Hell Knight didn't hurt each other. Anyway, re-uploaded the Agathodemon, Belphegor, BFG Commando, Bruiser Demon and Devastator Zombie to remove MissileType.

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

  • Blue Shadow
  • Blue Shadow's Avatar
  • Administrator
  • Administrator
More
6 years 6 months ago #8 by Blue Shadow
Replied by Blue Shadow on topic [Update]ZScriptification, A through E
The baron and hell knight are of the same species. That's why they don't hurt each other with direct damage from projectile attacks.

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

  • Blue Shadow
  • Blue Shadow's Avatar
  • Administrator
  • Administrator
More
6 years 5 months ago - 6 years 5 months ago #9 by Blue Shadow
Replied by Blue Shadow on topic [Update]ZScriptification, A through E
Annihilator
  • For the sake of consistency, the AnnihilatorRockets() function's parameters' types should match that of A_SpawnProjectile(), being 'class<Actor>', 'double' and 'double', instead of being 'string', 'int' and 'int'.
  • HomeRocket1 class: in the old code, the rocket starts seeking 8 tics after spawning, while in the new code, thanks to the NoDelay keyword, it does so as soon as it's spawned.
    Code:
    // Old code: Spawn: HMIS A 4 Bright A_SeekerMissile (25,35) HMIS A 4 Bright HMIS A 2 Bright A_SeekerMissile (10,25) HMIS A 2 Bright goto Spawn+2 // New code: Spawn: HMIS A 4 Bright NoDelay A_SeekerMissile (25,35); HMIS A 4 Bright; Fly: HMIS A 2 Bright A_SeekerMissile (10,25); HMIS A 2 Bright; Loop;


ApprenticeOfDsparil
  • In line 61 of the new code, the duration of the state should be 6 tics, not 0.
  • The WAD lacks an S_END marker, which produces a warning on start-up.


ArchonOfHell
  • MeleeSound is still present even though it's not of use anymore.
  • Line 105:
    Code:
    BOS4 X 6 Bright A_SpawnProjectile("ArchonSoul",86,0,0,2,-90);
    The last parameter passed to the function (pitch) is 90 in the old code, not -90.
  • Line 107:
    Code:
    BOS4 [ 6 Bright A_Fall();
    A_Fall is not needed here, since it has already been called in line 103 (I know this is not something you introduced in the update, but still, I thought I'd point it out).


Avatar
  • Missile1 state: some of the projectiles are spawned with negative pitch, while in they weren't in the old code.
  • Missile3 state: in the old code the monster shoots projectiles 30 times, while in the new code it shoots 40 times.
Last edit: 6 years 5 months ago by Blue Shadow. Reason: Archon of Hell and Avatar

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

  • Ghastly
  • Ghastly's Avatar Topic Author
  • Administrator
  • Administrator
More
6 years 5 months ago #10 by Ghastly
Replied by Ghastly on topic [Update]ZScriptification, A through E
Added the fixed versions to the first post. Regarding the negated pitch on the Archon and Avatar, that's because I swapped from A_CustomMissile to A_SpawnProjectile. A_CustomMissile's pitch parameter is negated from how it's handled in the rest of the engine, so they deprecated that and did A_SpawnProjectile instead.

I was reminded of this when I had just finished ZScripting the Archon of Hell and it threw that green soul thing straight at the ground.

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