GithubHelp home page GithubHelp logo

coavins / zomboid-coavins-firearms Goto Github PK

View Code? Open in Web Editor NEW
5.0 2.0 5.0 1.83 MB

A Project Zomboid mod that expands the firearm repair system

Home Page: https://steamcommunity.com/sharedfiles/filedetails/?id=3101379739

License: MIT License

Lua 100.00%
zomboid

zomboid-coavins-firearms's People

Contributors

coavins avatar khapeterk avatar lummwastaken avatar macinsight avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

zomboid-coavins-firearms's Issues

Try to deduce model from firearm attributes

Item types can be hard-coded to match specific models, but we should also be able to look at some attributes of the firearm to guess which model might best fit. Guns will only be expanded by this mod if they are matched to a model.

  • One-handed vs. two-handed
  • External magazine
  • Attachment points

This will allow us to automatically match to firearms that are introduced by other mods.

Use Semantic Versioning to generate CHANGELOG.md

Instead of manually updating the changelog.md, it could be a good idea to use the GItHub Releases' "Generate Release Notes" feature. This automatically adds Release notes, including merged PRs, contributors et cetera.

Show component info in the mouseover tooltip

The inventory tooltip on mouseover is a lot harder to use, it seems the mod can only add one line of transient text here. Maybe use this to show the most important information, like what parts are missing from the component.

This would make it a lot easier to find the component you're looking for in a big list of them.

[enhancement] Rename Master branch to Main, add additional GitHub actions

I think it'd be a good idea to rename the master branch into the main branch to keep up with current GH and code standards.

Also, are you interested in introducing a couple GitHub Actions into this repository aimed at enhancing our workflow? An idea I got in mind would be auto-assigning reviewers and the ability to auto-merge when review has passed its checks. And the labelling feature could be interesting. I'll demo something if ya want.

Add GH Action Workflow to push `master` and `development` branches to Steam Workshop

This proposed enhancement suggests the addition of a GitHub Action Workflow to streamline the process of pushing changes from both the 'master' and (hopefully upcoming) 'development' branches to the Steam Workshop. Currently, this process requires manual handling by Coavins. Automating this workflow can significantly improve efficiency and reduce the risk of oversights during the deployment process.

I'd propose the following changes:

  • creating a workshop.yml file that publishes to Steam Workshop upon a new release being created from the master branch

For this workflow to be efficient, the following step-by-step workflow should be discussed below:

  • shifting the merging of PRs from other community members to a newly created development branch where issues get ironed out and testing takes place.
  • Publish the development branch to a new Steam Workshop Item named "coavins-firearms-repair-git" or similar
  • Once those are ironed out, reviewed and all, merge to master
  • package a new release describing additions
  • By automation, publish this new release on Steam Workshop

Happy to hear your input.

Expand models

Maybe add more items to each model, like grip, trigger, mag well, hammer, firing pin, etc.

Refactor how models and parts are created and maintained

Adding new models, parts, and Zomboid items involves way too many steps in too many separate files. There should be a way to define models and parts in one place (e.g. yaml files) and use those to generate the actual source files used by the game (e.g. CoavinsModels.lua and the parts list in FirearmsHelper.lua)

I think this could be easier to maintain as the list of models and parts grows larger.

Add models

  • Pistol
    • Pistol Frame
    • Pistol Slide
    • Pistol Barrel
  • Revolver
    • Revolver Frame
    • Revolver Cylinder
  • Rifle (AR-15)
    • Rifle lower receiver
    • Rifle upper
      • Rifle bolt carrier
        • Rifle bolt
        • Rifle firing pin
  • Rifle (bolt action)
    • Rifle bolt (bolt action)
    • Rifle receiver
  • Shotgun
    • Shotgun Receiver
      • Shotgun Forend
        • Shotgun Bolt Carrier
          • Shotgun Bolt
    • Shotgun Barrel

Split 9mm and .45 calibers

It could be a good idea to split the currently available models the mod introduces into per-caliber. This would allow us to move away from the GenericPistol model and open up more interactions between different pistols while keeping (somewhat, to allow for fun) the realism this mod strives to improve upon.

Adding lua program to generate entries for Models.lua

I've built a little something that may be useful.

Takes Firearm Type, Components and Caliber, then generates an entry for coavinsModels and appends it to the file.

Expansion to also have it generate this based on the input is undergoing as I learn.

Context menu for assembly should show component info in tooltip

When you right-click on a component and select "Assemble firearm", the part list that appears should show extended component info in the tooltip (like the kind you see when you mouse over "Component Info"). This will make it easier for the player to choose the part they're looking for, with the right pieces installed.

Randomize the condition of initialized parts

When a gun is found in the world, it won't yet have modData initialized for its parts. When we initialize modData for a gun, we should randomize the condition of its internal parts during initialization, using the firearm's initial condition as a guide.

Add icons for all new items

  • Pistol frame
  • Pistol slide
  • Pistol barrel
  • Revolver frame
  • Revolver cylinder
  • Shotgun receiver
  • Shotgun forend
  • Shotgun bolt carrier
  • Shotgun bolt
  • Shotgun barrel
  • Rifle lower receiver
  • Rifle upper receiver
  • Rifle bolt carrier
  • Rifle firing pin
  • Rifle bolt
  • Bolt action receiver
  • Bolt action bolt

Changing default branch to `develop`

As all PRs etc run against develop, I think it'd make sense to reflect tihs in the repository settigs by adjusting the default branch from master to develop.

This would also resolve the issue of branches that have been automatically opened by github being "helpful" having the wrong target branch, thus having all of its commits unchangeably run against master, which is not what we want. I haven't found a way to change that either.

In summary: Change default branch for PRs, Issues etc, to prevent things being run against the wrong branch. Maybe protect the Master branch too, requiring PRs before merging and just flat-out disallowing everything else. Or locking it, that's a thing too (Why would anyone...)

Add PR Template

I think it could be a good idea to add a pull_request_template.md to refresh users on how to best open PRs for this repository. This also presents itself as an opportunity to increase accessibility and communication.

Override and disable repair of firearm items

The base game defines some "fixings" which allow the user to repair a firearm using some simple materials (usually another firearm of the same kind.) This mod completely changes how firearms are repaired, so these "fixings" should be hidden or disabled.

Mods which introduce new firearms probably also define "fixings" for them; these should be disabled in the same manner.

Allow player to clean components

  • Components can be cleaned when uninstalled
  • Add items required for cleaning
    • Cleaning rod for barrels
    • Rag for all other parts
    • Gun oil, maybe in combination with rag/rod

Add recipes for repairing components

Since repair of the firearm is no longer possible, we need new recipes to allow the player to repair each component. This probably shouldn't require many materials since there are more parts to repair.

This may also involve adding new materials which are used in the repair, like rags, cleaning rods, gun oil, or solvents.

Use metalworking skill here. Maybe also use the new firearms skill if possible.

  • Pistol components
  • Revolver components
  • Rifle components
  • Shotgun components

Add new skill for disassembly and repair

Add a skill in the "Firearms" category which is associated with the new actions.

  • Disassembly / field strip
  • Cleaning and repair of parts
  • Reassembly

Maybe repair of components can be affected by both metalworking and this new skill.

You should get XP in this skill when you perform these actions.

Turn Colt1855 to Shotgun_10g

The Colt1855 is currently GenericRevolver, should be Shotgun_10g

Possible need to create specific model for this item.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.