Path-of-Terraria / PathOfTerraria

GNU General Public License v3.0
1 stars 3 forks source link

Starting Town Structure - Blacksmith - "The Iron Anvil" #169

Closed CollinHerber closed 2 months ago

CollinHerber commented 3 months ago

Created from the Parent Issue https://github.com/Path-of-Terraria/PathOfTerraria/issues/170

The overall goal of this is to have the ability to have a structure that can be randomly applied into an area to help form a "town"

The Blacksmith NPC

A npc should be placed inside this structure that is a "Blacksmith" If we don't have a sprite yet we can use the Tavernkeep temporarily image

The Blacksmith NPC should have a dialog menu where accept a test quest

Before the starting quest 1st step the anvil should be in a broken state.

Starting Quest "Forging a New Blade"

Description: Thrain Ironfist, the skilled blacksmith of Ravencrest, has run into a problem. His forge's anvil has been damaged, and without a proper anvil, he cannot create the weapons and armor the town needs. He needs your help to gather the necessary materials to repair it and forge a new blade as a test of its restored strength.

Steps:

  1. Bring 20 Iron (Or Lead) Ore( Parallel 1)
  2. Bring Iron Hammer (Parallel 1) (At this point the anvil is repaired - And the player can now use it)
  3. Bring 50 Stone (Parallel 2)
  4. Bring 20 Wood (Parallel 2) (At this point the Furnace is repaired - And the player can now use it) ... What else?

The general look and feel

It should look like... well a blacksmith/forge.

Inspiration: image

What items must be included in the blacksmith structure

Programming Tasks

Spriting Tasks

GabeHasWon commented 3 months ago

Question - for the quest here, tiles are repaired as the quest progresses. If we want, we could make the entire structure have damage states that improve over time. Fixing big holes in the ceiling above the broken furnace would give a thematic reason to why the furnace was broken and really improve the "aliveness" of the world. This wouldn't even be too hard, just some small amount more building work and a system for tracking the repair state somewhere. SUPER not necessary for playtest, but that'd be fun.

CollinHerber commented 3 months ago

I agree I think that's a cool idea! I'd say go for it if it's not too much scope creep

GabeHasWon commented 3 months ago

I'll see what I can do before returning to the randomly generated town issue. My only major concern is multiplayer, which is pretty much universally an issue anyway

GabeHasWon commented 3 months ago

Are we going to be messing with the vanilla happiness system at all? It's not hard to add or anything, but I'm not sure how applicable it is to prebuilt, immutable areas like Ravencrest.

GabeHasWon commented 3 months ago

image Another issue - shop items aren't initialized like normal items are, so it results in an unnamed item here. The item works fine, no exception or anything, but it likely won't roll properly and will persist without a name.

CollinHerber commented 3 months ago

Are we going to be messing with the vanilla happiness system at all? It's not hard to add or anything, but I'm not sure how applicable it is to prebuilt, immutable areas like Ravencrest.

I imagined the towns would kind of just evolve with the quests and progression and things would unlock that way. Not through the normal happiness. I find the vanilla happiness kinda mundane anyway.

CollinHerber commented 3 months ago

image Another issue - shop items aren't initialized like normal items are, so it results in an unnamed item here. The item works fine, no exception or anything, but it likely won't roll properly and will persist without a name.

Do we have the ability sell a "mock" item that's turns into a rolled version of that item to resolve this?

GabeHasWon commented 3 months ago

I imagined the towns would kind of just evolve with the quests and progression and things would unlock that way. Not through the normal happiness. I find the vanilla happiness kinda mundane anyway.

It's really boring, yeah. I can exclude our town NPCs from it easily though, so no worries.

Do we have the ability sell a "mock" item that's turns into a rolled version of that item to resolve this?

We'd have to make a mock version of every single Gear item (that is sold, at least) - it'd be better to hook into wherever the item is applied to the shop and force it to roll instead. Alternatively, I made a library mod called Stockable Shops which supports both...stockable shops, i.e. you can "sell out" of items until the shop restocks - and adding dynamic, specific item instances to the shop. It'd have to be stockable, though, I'm unsure if that's the intent. One of those two would be orders of magnitude easier than some nonsense with a mock item.

GabeHasWon commented 3 months ago

image How's this for the building? Speaking of...how will we share this around for others to do? A world file?

benj7126 commented 3 months ago

a server could be neat (assuming "how will we share this around for others to do?" is how do others work on it and not how do players use it)

GabeHasWon commented 3 months ago

Yeah, how others work on it. Say if you make some other structure for the town, how would we eventually combine that structure and mine into one structure for the final town preset.

A server would be fine, assuming we can reasonably keep it up so people work on it and the host/runner can update and back it up if needed. Not sure though, seems like a weird step.

benj7126 commented 3 months ago

There was also that one tool that lets you export and import structures (i think - don't actually know what it dose); structure helper.

benj7126 commented 3 months ago

assuming we can reasonably keep it up

I was thinking a headless server, but last time i set one up it didnt go so well (steam is not too friendly to ARM), but collin has the website on his personal server and it might not be ARM? idk 🤷

-he probably could, np.

CollinHerber commented 3 months ago

assuming we can reasonably keep it up

I was thinking a headless server, but last time i set one up it didnt go so well (steam is not too friendly to ARM), but collin has the website on his personal server and it might not be ARM? idk 🤷

The website and API are hosted on a cloud provider, the wiki is on my personal.

Happy to host anything we need; On my personal machine or paid for doesn't matter.

GabeHasWon commented 3 months ago

There was also that one tool that lets you export and import structures (i think - don't actually know what it dose); structure helper.

That'd let you do that, yeah. We could do that, even if it's a little stilted (moreso meant to be a world gen tool, not necessarily a sharing tool).

Happy to host anything we need; On my personal machine or paid for doesn't matter.

Not certain if we really need a server hosted but it's good to have the option. That being said, I don't really mind it either way - I'd just send you my world for the server since I've already built something.

CollinHerber commented 3 months ago

Server has been purchased. I will go ahead and set that up and get everyone credentials so anyone can get/save/use the files.

benj7126 commented 3 months ago

lol

GabeHasWon commented 3 months ago

Alright then. I'll consider the placeable structure done, since it just needs to be exported as a structure file or run through the server.

I'll return to this tomorrow to finish up some sprites to finalize the structure and all of its deterioration states, and hopefully make that improvement system too.

CollinHerber commented 3 months ago

Small world side I imagine?

GabeHasWon commented 3 months ago

What? I think you mean small world size, and I'd say large is safer just so we can have space to build.

CollinHerber commented 3 months ago

Wouldn't we be building small worlds, then changing the world and building them again? Like we would build Ravencrest first?

GabeHasWon commented 3 months ago

It depends. My thought process is it's a subworld, so we'd build a relatively small build and fit it in a pretty small subworld so we don't have to fill out more space & also don't have a ton of dead space. A small world is massive for a player-built town, especially one with around 4 (custom) town npcs max.

We'd just need someone to go on the server, grab the structure, and port it to a custom small world or structure file.

benj7126 commented 3 months ago

I was thinking we'd use the main world for the randomly generating structures and then use the subworld library to store the different towns; so that people could work at all the things at the same time?

CollinHerber commented 3 months ago

If we can do that yeah; We'll have to look at the realm of possible with it. Currently creating a collection with the mods we will want.

GabeHasWon commented 3 months ago

Background image for the Town's Biome?

This is like a biome background, correct? If so, I'll do the base sprite (no animation) for the town npc and hope someone else can do the background. Might even be worth moving the town biome background into its own issue since it's (usually) three massive pieces and doesn't necessarily correspond to just this NPC/house.

CollinHerber commented 3 months ago

Background image for the Town's Biome?

This is like a biome background, correct? If so, I'll do the base sprite (no animation) for the town npc and hope someone else can do the background. Might even be worth moving the town biome background into its own issue since it's (usually) three massive pieces and doesn't necessarily correspond to just this NPC/house.

That was the intention. ThirstyBoi on discord had some really neat backgrounds I saw - Might be worth reaching out

GabeHasWon commented 3 months ago

Go for it, yeah. I've done the background for one biome and it took at least a work week alone, so it's definitely worth having someone who could pop in and get it done.

GabeHasWon commented 3 months ago

image Right, and the two damaged stations are done. That'd leave animating the town NPC once I get the base sprite done, and doing the repair system for the house.

GabeHasWon commented 3 months ago

image Here's the base sprite for the Blacksmith, hopefully I did well enough. Heavily based off of the Demolitionist. This'll leave what I can do here for me, since animating drains my soul if I'm not really feeling it.

SernoGer commented 3 months ago

Looks great