Collectors update status/discussion


#1

So to sum it up, I’m adding a new NPC called collectors for trade cities. They’ll be the primary way for new players to make money/xp, but not really be ideal for grinding. They generate randomized missions to collect items naturally found on the planet they’re on. They can also sell the items for slightly more than they bought it for.

General Info

  • For each planet, have a set of items that can be found there, along with their values in credits

Generation

I have two concepts for how the missions could be generated. One has it so there can be multiple missions with items of the same type and a fixed amount of missions (like trading), the other has it so there is one mission for each type of item on the planet.

Fixed amount

  1. For every trade city, generate a certain amount of missions
  2. To generate a mission, first check the city’s planet’s list of items. Pick a random one.
  3. Generate a mission that asks for a randomized amount of full stacks of that item, based on the item’s min/max specified somewhere, with slightly randomized value per stack based on the item’s base value

One mission per item

  1. For every trade city, generate one mission for each type of item listed for its planet
  2. Generate a mission that asks for a randomized amount of full stacks of that item, based on the item’s min/max specified somewhere, with slightly randomized value per stack based on the item’s base value

Probably just gonna do the first one, but I’m not sure. Additionally, I’m not sure how buying the items they have should work?


#2

Another possibility:

Rather than have missions, just have items they always import, and randomize the values over time.


#3

It’d be nice if the materials weren’t surface blocks so that you don’t have to ravage the terrain to make money.


#4

The first one is more reasonable and I would agree with you using it. Just have it consist of stuff like wood, ores and their respective resources, and blocks that wont require the players to destroy the surface of the planets as Peregri suggested.


#5

I think this system might be a bit overcomplicated, I can imagine lots of things that could go wrong with it. Maybe something simpler like shifting prices for items on the planet?


#6

Actually, this could still work if the missions regenerate only when all of the current ones are completed, that’d fix things like running out of missions to do.


#7

Its fairly easy for me to understand, but that might just be my better than average sense of logic. You could shift prices and it could create an interesting effect, like maybe the more of that item you turn in, the less return you get. Your second comment balances that easily though.


#8

I finished implementing this today. Have yet to test it, but it’s fairly simple. Every planet has items it can collect with data.

Data:

    data class CollectedItemData(
        val minStacks: Int,
        val maxStacks: Int,
        val minSellPerStack: Double,
        val maxSellPerStack: Double,
        val minBuyPerStack: Double,
        val maxBuyPerStack: Double
    )

It generates the missions when the server starts, and regenerates whenever they run out. Players turn in a mission by clicking on the item in the collector menu. The item description/lore tells them how many stacks of what they need to complete the mission.