Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consolidate jobs #20

Closed
MilesBHuff opened this issue Jan 18, 2020 · 23 comments
Closed

Consolidate jobs #20

MilesBHuff opened this issue Jan 18, 2020 · 23 comments
Assignees
Labels
discussion This is just a discussion, and there is no actionable work associated with it. feature This is a substantial change to intended behavior. jobs This ticket addresses in-game jobs.

Comments

@MilesBHuff
Copy link
Member

MilesBHuff commented Jan 18, 2020

Jobs aren't well-balanced or evenly distributed. We use jobs as a kind of class mechanism on this server. I would like to make jobs match single actions -- so, all blocks that are broken with a pick pay the miner, and placing all non-farm block pays the builder.
This will eventually require job name changes, which will require a database update.

@MilesBHuff MilesBHuff added the feature This is a substantial change to intended behavior. label Jan 18, 2020
@MilesBHuff MilesBHuff added the discussion This is just a discussion, and there is no actionable work associated with it. label Jan 27, 2020
@MilesBHuff
Copy link
Member Author

MilesBHuff commented Jan 27, 2020

Consolidating similar jobs reduces the total amount of maintenance for the Jobs plugin, since there are fewer jobs to maintain. Coalescing them around single actions additionally simplifies maintenance, and makes them more of a class specialization, which is what we want. It also fits into the server's lore, with the religion of Toolism in particular.

Also, this is a unique opportunity to rename the jobs so they don't conflict with mcMMO's skills. This will avoid confusion between which is which.

@MilesBHuff
Copy link
Member Author

MilesBHuff commented Jan 27, 2020

List of jobs I'm currently planning to have after the rework, in the order that they will appear in the file:

  • Digger: Paid for breaking shovel-blocks with a shovel
  • Miner: Paid for breaking pick-blocks with a pick
  • Chopper: Paid for breaking axe-blocks with an axe
  • Builder: Paid for placing blocks.
  • Crafter: Paid for crafting and repairing things.
  • Alchemist: Paid for brewing potions, smelting/cooking anything in a furnace, and enchanting things. If possible, paid for throwing helpful potions.
  • Hunter: Paid for dealing damage. Includes fishing. If possible, paid for throwing harmful potions.
  • Farmer: Paid for breaking and placing things related to agriculture. Agricultural things that would theoretically fit under another job instead go only under Farmer. Additionally includes actions with hoes, actions with shears, milking animals, taming animals, and breeding animals. The exception is slaughtering livestock, which instead goes under Hunter.
  • Explorer: Same as now.

@MilesBHuff
Copy link
Member Author

We don't want to put any one action under multiple jobs, as this would make it possible to game the system by stacking overlapping jobs and doing the same action over and over to make insane amounts of money.

@slankford
Copy link
Sponsor Member

Looks like a good list, but I have a few concerns.

Hunter already gets paid for killing, so I don't think it needs to be paid for throwing harmful potions. In theory, those harmful potions would end up killing the target anyway, which pays the hunter. If your reasoning is that harmful potions are very expensive, then maybe it's worth considering.

Also, there are a few things I might advocate for being under builder that aren't necessarily "blocks". Trip wire and red stone dust, for example. Not big deals, but if we're casting a vision for a perfect jobs future, I'd like to address that type of thing.

@MilesBHuff
Copy link
Member Author

MilesBHuff commented Jan 28, 2020

Those are really good points. We should define Builder more-generally, then -- placing anything that isn't placed by the Farmer job. Also, very good point about throwing harmful potions. Let's just make throwing potions an Alchemist exclusive -- although I don't actually know that it's even possible to pay for that action, anyway.

  • Builder: Paid for placing things.
  • Alchemist: Paid for brewing potions, smelting/cooking anything in a furnace, and enchanting things. If possible, paid for throwing splash/lingering potions.

Alchemist wasn't even originally on my radar, but I realized there was enough stuff to make a separate class, rather than just including it all under Crafter, which already gets so much. Plus, enchanting doesn't make sense for Crafting. Alchemist makes for a neat support class, both in combat and in basekeeping.

@MilesBHuff
Copy link
Member Author

@Middie321 Silas and I made the decision over Skype to be very literal about assigning blocks to jobs by which tool is used to break them. Beds, for example, are broken fastest with a pickaxe. While that's probably a bug in Vanilla Minecraft, until it is otherwise, we are going to follow suit and give it to the Miner job. Are you good with this?

@Middie321
Copy link
Contributor

Middie321 commented Jan 28, 2020 via email

@MilesBHuff
Copy link
Member Author

Silas just double-checked, and apparently beds are broken fast with any tool. That makes it like glass, which is slow with any tool. I think in situations where blocks are fast or slow with every tool, we should make a subjective decision to fit them into just one job, since having the same block in multiple jobs would, as previously mentioned, be exploitable.

In this particular case, I think the obvious course of action for these two blocks, is to have beds be Chopper, and glass be Miner.

What do you guys think?

@MilesBHuff
Copy link
Member Author

(Linking similar issues: #40, #41)

@slankford
Copy link
Sponsor Member

A couple questions I have:

Hunter:

  1. Should hunter be paid to kill mobs that it already gets paid for to tame? For example, should horses be paid for taming and killing?
  2. Should hunter be paid for villager/traveling merchant kills?

Miner:

  1. Should all mining blocks be paid regardless of TNT or pickaxe was used? Or should only naturally occurring blocks be TNT paid?
  2. Should mining via TNT be paid the same as pickaxe? Currently (of the few things that are listed as payable via TNT), rewards are 1/4 for using TNT

@MilesBHuff
Copy link
Member Author

Good questions.

Hunter:

  1. Hunter should not be paid to tame -- that belongs in Farmer.
  2. Yes, any kills.
  3. It also gets paid for breaking cobwebs, since those break with a sword.

Miner:

  1. For simplicity: yes, all Miner blocks should be both TNT and pickaxe, with the exception of blocks that cannot be TNT'd (like Obsidian).
  2. No, it should be the current 1/4. I bet players were making bank with a few stacks of TNT, which is probably why the feature exists at all.

@slankford
Copy link
Sponsor Member

Woodcutter and Excavator seem rather lackluster and unrewarding. I can't see very many people being interested in them.

My suggestion would be to consolidate the two into one as a sort of "over world miner" job. I ran it by Miles quickly and he suggested the name "Landscaper". Alone they don't seem good, but together, I could see people taking interest.

@MilesBHuff
Copy link
Member Author

MilesBHuff commented Jan 29, 2020

Landscaper: Paid for breaking shovel-blocks with a shovel and axe-blocks with an axe.

I think this makes sense to do. There is a lot you can gain by mining, but relatively little you can get with a shovel and an axe. Merging the two might make it properly worthwhile, like Miner or Crafter.

It also, coincidentally, gives us a total of 8 jobs, which fits nicer in the UI than 9 jobs does.

@Middie321
Copy link
Contributor

I like Landscaper! Back to farmer, should the action of breeding earn the breeder a small reward? It should be quite small though, since breeding is super easy and can be done in large quantity. Still, as an action that many farmers take, breeding should be included

@MilesBHuff
Copy link
Member Author

MilesBHuff commented Jan 29, 2020

Breeding is already planned to be included in Farmer. Quote from above:

Farmer: Paid for [...] breeding animals [...]

@MilesBHuff
Copy link
Member Author

MilesBHuff commented Jan 30, 2020

I thought we would be moving player kills to be just Hunter, but it seems there was some disagreement on this.

I think we should remove player kills from all but Hunter for the following reasons:

  1. We agreed to be strict in our distribution of tasks between the jobs. The strict thing to do is to have PKs be Hunter-only.

  2. Having the same task on multiple jobs could result in getting paid multiple times; we agreed we wanted to avoid this.

  3. Having PKs in every job means that, in the job overview screen, every job lists "killing" as a way to earn money; but for all but one job, killing is not actually a way to really earn money. Removing PKs from non-Hunter jobs would remove this unnecessary and potentially confusing indicator.

@slankford
Copy link
Sponsor Member

I don't have a strong opinion either way, but PvP doesn't necessarily seem related to Hunter IMO. All jobs are "PvE" in style where other players aren't really involved. I thought it was fine to allow all jobs to be paid for PvP, where having multiple jobs just means you get paid more for PvP if you have a higher rank.

Again, not a strong opinion either way.

@MilesBHuff
Copy link
Member Author

MilesBHuff commented Feb 2, 2020

Currently, players lose a little money on death; I wonder if it would be possible to give that lost money to the PKer. I would prefer that to using Jobs for this purpose, and it would give the PKer a lot more money than they'd get from Jobs. It'd also make the world more dangerous, and make PKing worthwhile -- you could steal up to $1,000 per kill with our current lose-on-death settings. OTOH, maybe we don't want to encourage PvP? On that note, do we even want PvP outside of designated areas?
Anyways, thoughts? I'll need to see if it's possible, first.

@slankford
Copy link
Sponsor Member

I like the idea of open PvP in the wild, but I think in practice I don't like it lol. So yeah maybe you have a point

@MilesBHuff
Copy link
Member Author

MilesBHuff commented Feb 3, 2020

I suppose the money taken could be limited. Maybe max $100/kill? That should be low-enough to keep friends from turning on each other.
In the meantime, do we all agree in paying PvPers from the bank accounts of the slain, rather than in paying them through Jobs (with the possible exception of Hunter)?

@MilesBHuff
Copy link
Member Author

MilesBHuff commented Feb 9, 2020

Pistons are broken by pickaxes in the 1.16 beta, so breaking them should go to the Miner job. Currently, in 1.14, they do not have a default tool.
https://youtu.be/969VXH63ScE?t=317

@MilesBHuff
Copy link
Member Author

MilesBHuff commented Feb 16, 2020

List of jobs I'm currently planning to have after the rework, in the order that they will appear in the file:

  • Landscaper: (YELLOW) Paid for breaking shovel-blocks with a shovel and axe-blocks with an axe.
  • Miner: (GRAY) Paid for breaking pick-blocks with a pick.
  • Builder: (LIGHT_PURPLE) Paid for placing things.
  • Crafter: (GOLD) Paid for crafting and repairing things.
  • Alchemist: (BLUE) Paid for brewing potions, smelting/cooking anything in a furnace, and enchanting things. If possible, paid for throwing splash/lingering potions.
  • Farmer: (GREEN) Paid for breaking and placing things related to agriculture. Agricultural things that would theoretically fit under another job instead go only under Farmer. Additionally includes actions with hoes, actions with shears, milking animals, taming animals, and breeding animals. The exception is slaughtering livestock, which instead goes under Hunter.
  • Hunter: (RED) Paid for killing. Includes fishing.
  • Explorer: (AQUA) Paid for exploring (same as now).

MilesBHuff added a commit that referenced this issue Feb 16, 2020
MilesBHuff added a commit that referenced this issue Feb 16, 2020
@MilesBHuff
Copy link
Member Author

@slankford @Middie321 Implemented in 27a9369.

@MilesBHuff MilesBHuff added the jobs This ticket addresses in-game jobs. label Jun 22, 2020
@MilesBHuff MilesBHuff added skills This ticket addresses mcMMO skills. and removed skills This ticket addresses mcMMO skills. labels Aug 10, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discussion This is just a discussion, and there is no actionable work associated with it. feature This is a substantial change to intended behavior. jobs This ticket addresses in-game jobs.
Projects
None yet
Development

No branches or pull requests

3 participants