Skip to content

Conversation

@Derpford
Copy link
Contributor

The Blaster is a slot 2 weapon with infinite ammo, running on a battery that recharges both in-hand and in your pocket. In exchange for having functionally infinite ammo, the Blaster's firerate is ammo-dependent--the lower the charge, the slower it fires, making it more of a burst-damage weapon. The idea is that if you have another weapon to switch to, the Blaster becomes much more useful, as you can empty it out or fire a short burst, then swap to something like the chaingun or SSG while you wait for it to recharge.

@Derpford
Copy link
Contributor Author

Had to fix a few things real quick, but this should be good to merge now

@sidav
Copy link
Owner

sidav commented May 25, 2025

Great idea!
Some feedback/review:

  1. Please add the blaster to console_drops_handler for easier testing.
  2. If I have an inferno book, blaster ammo display draws over books display in the HUD.
  3. What would you think if the blaster had ammo consumption of 1 with respectively lower max ammo? It would make tracking the remaining shots easier for the player.
  4. Do you have any ideas for the blaster-specific affixes?

@sidav
Copy link
Owner

sidav commented May 25, 2025

Also, a minor code style thing: in all the other weapons the weapon functioning code (firing methods, etc) comes after the states description.

@Derpford
Copy link
Contributor Author

Derpford commented May 28, 2025

  1. Please add the blaster to console_drops_handler for easier testing.

Shoot, I didn't know about console_drops_handler. I was wondering why Blasters summoned after the first couple tics weren't getting affixes or levels...

  1. If I have an inferno book, blaster ammo display draws over books display in the HUD.

I have a guess as to why this happens, I wanted to tweak the HUD some anyway (the XP tracker draws over the keys rn).

  1. What would you think if the blaster had ammo consumption of 1 with respectively lower max ammo? It would make tracking the remaining shots easier for the player.

It'll affect how mag size affects the blaster, but mag size affixes always giving whole shots would probably be a good thing overall. [edit] Actually, I just remembered, I was thinking about having it use the reduced ammo consumption affix that the BFG has. It would need to take ten ammo per shot to be eligible for that, though.

  1. Do you have any ideas for the blaster-specific affixes?
  • Right now, charge speed is based on the reload speed stat, so a 'charge speed' affix isn't really necessary...I can't think of any new affixes that would affect basic stats of the weapon.
  • An alternate fire mode affix that turns it into a tight, short-ranged ripping beam could be cool. ("Tasing"?)
  • A lategame affix that makes the Blaster take cells to charge, but do bonus damage or have increased crit chance, could be neat too. ("Overcharged", maybe.)

Aside from that, anything that springs to mind right now is something that's either a bit more powerful than I'd like, or something that already exists.

@Derpford
Copy link
Contributor Author

Sorry I haven't been working on this, life kinda happened. Life's still happening, really, I just wanted to let you know I hadn't vanished off the face of the Earth.

@Derpford
Copy link
Contributor Author

Okay, finally looking at this, and...oh. The spawn code feels very kludge-y. I think I can make some serious improvements to this--like, for instance, being able to spawn items by name instead of needing to memorize IDs. I don't think I'll be able to really dig into it tonight, but--yeah, I could make this a lot easier to use, both from the tester's perspective and from the perspective of someone developing new items.

@Derpford
Copy link
Contributor Author

OK, did a bit of wiki-digging, turns out ConsoleEvent only takes ints as args? I did not realize that limitation was still in place. I think I'm gonna have to write an angry letter to the gzdoom devs about this. (Not sure how they can fix it without adding something like generics to zscript, which would be...an undertaking. But we absolutely need more flexibility in making console commands.)

Anyway, I suspect I can still make this easier to use. I just need to do a lot more thinking about it than I'm able to do at the moment.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants