diff --git a/frontend/setup.md b/frontend/setup.md index da3a4bc..16caa98 100644 --- a/frontend/setup.md +++ b/frontend/setup.md @@ -4,8 +4,4 @@ # New page - ng generate component -- Go to the component (.component.ts) -- add standalone: false to the @Component -- remove imports: [] from that same block -- Go to app.module.ts and add the new page in declaration -- Add the new file to routes and give it a path (like 'new_page') +- Go to app.routes.ts and give it a path diff --git a/frontend/src/app/app.routes.ts b/frontend/src/app/app.routes.ts index dc58204..ab24da7 100644 --- a/frontend/src/app/app.routes.ts +++ b/frontend/src/app/app.routes.ts @@ -44,6 +44,14 @@ export const routes: Routes = [ { path: 'bans', loadComponent: () => import('./bans/bans.component').then(m => m.BansComponent) + }, + { + path: 'economy', + loadComponent: () => import('./economy/economy.component').then(m => m.EconomyComponent) + }, + { + path: 'claiming', + loadComponent: () => import('./claiming/claiming.component').then(m => m.ClaimingComponent) } ]; diff --git a/frontend/src/app/claiming/claiming.component.html b/frontend/src/app/claiming/claiming.component.html new file mode 100644 index 0000000..9ac84ea --- /dev/null +++ b/frontend/src/app/claiming/claiming.component.html @@ -0,0 +1,176 @@ + + +
+

Claiming

+

Claiming allows you to protect your items and builds from other players.

+
+
+ +
+
+
+
+
+

Getting Started

+

You can “claim” land on Altitude to protect your builds. When you claim a section of land, other players + will be unable to place or break blocks, kill animals, take crops, or open chests. Everything will be + completely protected!

+

To claim land, you will need some basic tools: a golden shovel, and a stick. You can craft these items + yourself or do /claim to receive them for free. The shovel is used for modifying claims and the + stick is used for viewing claim information.

+ Minecraft golden shovel +

Players start with an allowance of 500 “claim blocks” and can purchase additional “claim blocks” with + in-game currency using /buyclaimblocks. How + many claims you can create depends on the rank you have - the amount can be found on the ranks page. Additionally, there is also a limit on how many blocks in + total you can + claim.

+
+
+

Creating a Claim

+

Before creating any claim, we should check if there are other claims by other players nearby. Claims by + different people should be at least 100 blocks apart unless both parties discuss otherwise. To do this, + hold a stick in your hand and shift + right click to visualize all nearby claims. Claims are + visualized using dotted lines of gold blocks, so look around for any dotted lines on the ground around + you.

+

Once you've confirmed that there are no claims too close, we can begin claiming! A claim doesn't go down + all the way. The lowest point of the claim starts at 5 blocks below the lower corner you made. It'll keep + expanding down as you place blocks lower and lower in the claim, but it may reset when you change the + claim size, trust, subclaims etc. If you want to make sure your claim stays extended all the way down, + make one of the initial corners at bedrock level. Remember to not claim further down than you need to.

+

If a claim is within 100 blocks you will be unable to create your claim. If the original claim owner is + fine with you having a claim closer than the 100 blocks, then they can trust you using /claimnearbytrust. You will need to be trusted + in order to claim and resize. The trust expires on every server reboot, this is to remind you that there + are nearby claims.

+
+
+

Automatic Claim Deletion

+

When a player has been inactive for 60 consecutive days, on a server (not cross-server), their claim(s) + on that server will be transferred into an admin claim(s). The claim will be in that state for 24 hours + after which is will be fully unclaimed. During the time the claim is an admin claim everyone will be + trusted. This means that you will be able to raid the claim, but not claim it. If you wish to claim the + build you will have to return 24 hours later.

+

If you are planning on being gone this long, all you need to do is join for a couple of minutes within + those 60 days to reset the timer. Unclaimed land is fair game to loot, so make sure your claims are active + and properly sized!

+

Any containers (i.e shulker, chest) that are placed within an active raid-claim are fair game - this also + includes containers that raiders place. This means that items a raider puts into their personal shulker + aren't safe while placed down or when on the ground as an item after being broken, as anyone that comes by + can take it.

+
+
+

Useful Commands

+
    +
  • /buyclaimblocks - Buy more claim + blocks +
  • +
  • /sellclaimblocks - Sell claim blocks +
  • +
  • /unclaim - Remove a protection
  • +
  • /claimslist - List all of your + protections +
  • +
  • /expandclaim <number> - Expand + the claim the direction you're facing (can also be used with negative numbers to downsize the claim) +
  • +
  • /containertrust <player> - Give + someone access to chests in your claim +
  • +
  • /permissiontrust <player> - Give + someone the ability to trust and untrust others in your claim +
  • +
  • /accesstrust <player> - Give + someone access to doors and trapdoors in your claim +
  • +
  • /subdivide - Create claims within your + main claim that you can trust people to +
  • +
  • /restrictsubclaim - Sets subclaim NOT + to inherit perms from the parent claim +
  • +
  • /trust <player> - Allow someone + to build and use chests within your claim +
  • +
  • /trustlist - See who is trusted in your + claim +
  • +
  • /untrust <player> - Remove a + player from your protection +
  • +
  • /kickfromclaim <player> - Kick a + player outside of your claim +
  • +
  • /petkick - Enter pet kicking mode + (right click pets you don't want in your claim) +
  • +
+
+
+
+
+

Resizing Your Claim

+

You can make your claim bigger or smaller any time by using a golden shovel. The process is similar to + creating the claim. To make things easier, start by right clicking within the claim with a stick. This + will show the border of the claim so you can see where the corners are.

+

To resize a claim, right click a corner you would like to move. Then, right click again wherever you + would like to move that corner to. To make things easier, you don't need to right click the actual block, + you can just point your crosshair at the block and right click from a distance.

+

If you don't have the needed amount of claim blocks to expand (or create) your claim, you will need to + purchase additional claim blocks. The price for purchasing claim blocks is different depending on how many + you have:

+
    +
  • 0-10,000 blocks = $0.50/block
  • +
  • 10,000-50,000 blocks = $0.75/block
  • +
  • 50,000-300,000 blocks = $1.00/block
  • +
  • 300,000-1,000,000 blocks = $2.00/block
  • +
  • 1,000,000+ blocks = $5.00/block
  • +
+

If you have left over claim blocks you can sell them using /sellclaimblocks. The return will always be + $0.50/block. This means that you need to be mindful of purchasing large amounts of claim blocks; don't + purchase them unless you actually need them.

+ Screenshot showing claim border in-game +
+
+

Subdividing Claims

+

Subdividing claims allows you to give players access to specific parts of your claim. This is the best + way to manage a town or shop!

+

The idea behind subdivisions is easy. You are creating mini-claims within your main claim so that you can + trust people to certain areas, but not the entire claim. You are still in control of the border of these + mini-claims (size and location). Once a subdivision is created you can trust people the same way as + before. Just stand in the mini-claim and use the trust commands. It will only trust them to the + mini-claim. (To trust someone to your main claim you will need to stand outside of any mini-claims you've + created.)

+

To create a subdivision you need to go into "subdivision mode". You can access this mode with /subdivideclaims. + Once you are in this mode you can create the subdivisions the same way you would make a regular claim, + just right click two corners. Subdivisions will be outlined with a white dotted line. To leave subdivision + mode use /basicclaims.

+ Screenshot of town subdivided +
+
+

Trusting Others

+

You can add other players to your protected area with various levels of access. To trust everyone on the + server replace <player> with "all". This works with all of the commands below.

+
    +
  • To give someone full access to your claim (break, build, access chests, etc) do: /trust <player> +
  • +
  • To give someone just the ability to access storage items, but NOT build, do: /containertrust <player> +
  • +
  • To give someone visitor access (opening the doors, but not take anything or build anything) do: /accesstrust + <player>
  • +
  • To give someone permission to manage your claim (trusting other players) do: /permissiontrust <player> +
  • +
+
+
+
+
+
+
diff --git a/frontend/src/app/claiming/claiming.component.scss b/frontend/src/app/claiming/claiming.component.scss new file mode 100644 index 0000000..14748f5 --- /dev/null +++ b/frontend/src/app/claiming/claiming.component.scss @@ -0,0 +1,9 @@ +main ul { + font-family: opensans, sans-serif; + text-align: left; +} + +main li { + margin-left: 30px; + padding-bottom: 10px; +} diff --git a/frontend/src/app/claiming/claiming.component.spec.ts b/frontend/src/app/claiming/claiming.component.spec.ts new file mode 100644 index 0000000..ce1aed3 --- /dev/null +++ b/frontend/src/app/claiming/claiming.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ClaimingComponent } from './claiming.component'; + +describe('ClaimingComponent', () => { + let component: ClaimingComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [ClaimingComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(ClaimingComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/frontend/src/app/claiming/claiming.component.ts b/frontend/src/app/claiming/claiming.component.ts new file mode 100644 index 0000000..66aaa80 --- /dev/null +++ b/frontend/src/app/claiming/claiming.component.ts @@ -0,0 +1,18 @@ +import {Component} from '@angular/core'; +import {HeaderComponent} from '../header/header.component'; +import {NgOptimizedImage} from '@angular/common'; +import {RouterLink} from '@angular/router'; + +@Component({ + selector: 'app-claiming', + imports: [ + HeaderComponent, + NgOptimizedImage, + RouterLink + ], + templateUrl: './claiming.component.html', + styleUrl: './claiming.component.scss' +}) +export class ClaimingComponent { + +} diff --git a/frontend/src/app/economy/economy.component.html b/frontend/src/app/economy/economy.component.html new file mode 100644 index 0000000..e8aaf07 --- /dev/null +++ b/frontend/src/app/economy/economy.component.html @@ -0,0 +1,135 @@ + + +
+

Economy

+

Altitude features a dynamic in-game economy that uses virtual currency to allow for easier trading between + players.

+
+
+ +
+
+
+
+
+

What is the Economy?

+

Altitude uses a combination of simple player shops and dynamic NPC merchants to create a truly + one-of-a-kind experience for our players. Shops and Merchants allow you to exchange items for virtual + currency, and vice-versa. The spawn of each server has some items that can be bought or sold by talking to + the various merchants, but player shops are the backbone of the system. These shops are created and run by + our players, and they allow those players to determine and set their own prices for their goods.

+

The virtual currency on Altitude has no value outside of the server, nor any item in-game representing + it. Each player has a number representing how much in-game currency they have. You can check this any time + with /bal.

+
+
+

Player Shops

+

Altitude allows players to create chest shops, which other players can either buy or sell items to. It’s + a really simple task to create your shops. There’s no complex commands or multi-line sign setups - + everything is done using a GUI.

+

To get started, grab a sign and place it on a container (does not work on double chests). Write [shop] on + the first line and you’re ready to go. Exit the sign interface and the GUI will open. With these simple + steps you will have successfully created your first shop! + Right click the sign to manage the shop. From there you can control the shop balance, item, item amount + and price.

+
+
+

Shop Balance

+

Every shop will have its own balance. The balance is used to for making changes in the shop management + GUI, paying players if they sell items to the shop and receiving money when players buy items from the + shop.

+
+ +
+

Economist's Tips

+

To get the most of the in-game economy, keep these tips in mind!

+
    +
  • Use the spawn merchants to buy and sell as a last resort! These merchants have intentionally worse + prices to allow for player markets to emerge for those same items. +
  • +
  • Build multiple, smaller farms for different types of items to sell rather than one massive farm that + only generates one type of item. You’ll earn more money because of the dynamic prices! +
  • +
  • Keep track of the points you have with each merchant! Knowing how many points you have will allow you + to time your buying and selling for the biggest potential profit! +
  • +
  • Remember that player shops have flat prices, while the spawn merchants have dynamic prices.
  • +
  • Try not to buy or sell when your points are at the worst levels! You will get a huge penalty for + having such an extreme amount of points and the transaction will likely not be worth it. +
  • +
+
+
+
+
+

Spawn Merchants

+

Every merchant at spawn buys and sells certain types of items. You can interact and trade with them + similar to how you would trade emeralds with a regular villager. Each of these merchants are located + around each of the server spawn, which you can conveniently get to by doing /spawn!

+ + + +

These merchants buy and sell directly from the server, not from other players. Prices from these + merchants are typically quite high for buying, and quite low for selling. This means that they should be + used as a last resort for some quick cash or some quick materials; player shops will generally be a much + better value, especially because the prices are static.

+
+
+

The Point System

+

The prices offered by the merchants at spawn are dynamic in nature. This means that they change based on + the amount and type of items that you've bought or sold recently. Every merchant at spawn keeps track of + how many items you’ve traded with it using ‘points’. The amount of points you currently have with each + merchant is shown in the trading screen. To understand the point system, all you need to know is:

+
    +
  • Positive points = higher buy prices, higher sell prices
  • +
  • Negative points = lower buy prices, lower sell prices
  • +
  • Points decay naturally over time. The decay is faster if you are online
  • +
+

For most players, this dynamic point system won’t affect you much at all. As long as you aren’t buying or + selling huge quantities of items, you won’t notice a large change in the prices as you use the spawn + merchants.

+

However, players can take advantage of the point system to make the most amount of profit possible if + they are so inclined. To do this, you need to understand the multipliers that affect prices at different + price levels. You can see your current price multipliers and points at each merchant by doing /villagerui points.

+

There are different thresholds for each price multiplier to take effect. + Between -500 and 500 points, prices will be unaltered. Once your points go above or below that range, + prices will become more and more extreme. You can see where these thresholds are based on your current + points here:

+ Visualization of the point bracket. +
+
+

Useful Commands

+
    +
  • /bal - Check your current balance
  • +
  • /pay <player> <amount> - + Pay other players +
  • +
  • /shop - Click on settings, from there + you can change notification settings +
  • +
  • /villagerui points <villagerType> - + Allows you to check your current points with each spawn merchant, or any specific one. Also shows your + current buy/sell price multipliers for those merchants +
  • +
  • /villagerui buy/sell <item_name> - Tells + you if a spawn merchant buys or sells that item, and where that merchant is located +
  • +
+
+
+
+
+
+
diff --git a/frontend/src/app/economy/economy.component.scss b/frontend/src/app/economy/economy.component.scss new file mode 100644 index 0000000..14748f5 --- /dev/null +++ b/frontend/src/app/economy/economy.component.scss @@ -0,0 +1,9 @@ +main ul { + font-family: opensans, sans-serif; + text-align: left; +} + +main li { + margin-left: 30px; + padding-bottom: 10px; +} diff --git a/frontend/src/app/economy/economy.component.spec.ts b/frontend/src/app/economy/economy.component.spec.ts new file mode 100644 index 0000000..e8979a7 --- /dev/null +++ b/frontend/src/app/economy/economy.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { EconomyComponent } from './economy.component'; + +describe('EconomyComponent', () => { + let component: EconomyComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [EconomyComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(EconomyComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/frontend/src/app/economy/economy.component.ts b/frontend/src/app/economy/economy.component.ts new file mode 100644 index 0000000..e01508b --- /dev/null +++ b/frontend/src/app/economy/economy.component.ts @@ -0,0 +1,16 @@ +import {Component} from '@angular/core'; +import {HeaderComponent} from '../header/header.component'; +import {NgOptimizedImage} from '@angular/common'; + +@Component({ + selector: 'app-economy', + imports: [ + HeaderComponent, + NgOptimizedImage + ], + templateUrl: './economy.component.html', + styleUrl: './economy.component.scss' +}) +export class EconomyComponent { + +} diff --git a/frontend/src/app/home/home.component.html b/frontend/src/app/home/home.component.html index 17caa47..09d1457 100644 --- a/frontend/src/app/home/home.component.html +++ b/frontend/src/app/home/home.component.html @@ -48,7 +48,7 @@ -->
-
+

Meet the Community

diff --git a/frontend/src/styles.scss b/frontend/src/styles.scss index 47a8b8c..25a5181 100644 --- a/frontend/src/styles.scss +++ b/frontend/src/styles.scss @@ -292,6 +292,11 @@ main .container { margin: 0 auto; } +.columnParagraph > ul { + color: var(--font-color); + transition: 0.5s ease; +} + // Call to Action button .button-outer { display: inline-block;