mirror of
https://github.com/YouHaveTrouble/DiscipleOfLand.git
synced 2026-05-12 06:26:56 +00:00
Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 508b7d9acf | |||
| cf3bc7b463 | |||
| a50ea1273d |
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "discipleofland",
|
||||
"version": "0.0.5",
|
||||
"version": "0.0.6",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
|
||||
@@ -1,173 +0,0 @@
|
||||
[
|
||||
{
|
||||
"position": {
|
||||
"zone": "labyrinthos",
|
||||
"x": 30.3,
|
||||
"y": 11.9
|
||||
},
|
||||
"name": {
|
||||
"en": "The Archeion"
|
||||
}
|
||||
},
|
||||
{
|
||||
"position": {
|
||||
"zone": "labyrinthos",
|
||||
"x": 21.6,
|
||||
"y": 20.4
|
||||
},
|
||||
"name": {
|
||||
"en": "Sharlayan Hamlet"
|
||||
}
|
||||
},
|
||||
{
|
||||
"position": {
|
||||
"zone": "labyrinthos",
|
||||
"x": 6.8,
|
||||
"y": 27.5
|
||||
},
|
||||
"name": {
|
||||
"en": "Aporia"
|
||||
}
|
||||
},
|
||||
{
|
||||
"position": {
|
||||
"zone": "thavnair",
|
||||
"x": 29.5,
|
||||
"y": 16.5
|
||||
},
|
||||
"name": {
|
||||
"en": "Palaka's Stand"
|
||||
}
|
||||
},
|
||||
{
|
||||
"position": {
|
||||
"zone": "thavnair",
|
||||
"x": 10.9,
|
||||
"y": 22.2
|
||||
},
|
||||
"name": {
|
||||
"en": "The Great Work"
|
||||
}
|
||||
},
|
||||
{
|
||||
"position": {
|
||||
"zone": "thavnair",
|
||||
"x": 25.3,
|
||||
"y": 34.0
|
||||
},
|
||||
"name": {
|
||||
"en": "Yedlihmad"
|
||||
}
|
||||
},
|
||||
{
|
||||
"position": {
|
||||
"zone": "shaaloani",
|
||||
"x": 15.6,
|
||||
"y": 19.2
|
||||
},
|
||||
"name": {
|
||||
"en": "Sheshenewezi Springs"
|
||||
}
|
||||
},
|
||||
{
|
||||
"position": {
|
||||
"zone": "shaaloani",
|
||||
"x": 29.0,
|
||||
"y": 30.8
|
||||
},
|
||||
"name": {
|
||||
"en": "Hhusatahwi"
|
||||
}
|
||||
},
|
||||
{
|
||||
"position": {
|
||||
"zone": "shaaloani",
|
||||
"x": 27.1,
|
||||
"y": 10.1
|
||||
},
|
||||
"name": {
|
||||
"en": "Mehwahhetsoan"
|
||||
}
|
||||
},
|
||||
{
|
||||
"position": {
|
||||
"zone": "heritage-found",
|
||||
"x": 17.0,
|
||||
"y": 9.8
|
||||
},
|
||||
"name": {
|
||||
"en": "The Outskirts"
|
||||
}
|
||||
},
|
||||
{
|
||||
"position": {
|
||||
"zone": "heritage-found",
|
||||
"x": 31.7,
|
||||
"y": 25.7
|
||||
},
|
||||
"name": {
|
||||
"en": "Yyasulani Station"
|
||||
}
|
||||
},
|
||||
{
|
||||
"position": {
|
||||
"zone": "heritage-found",
|
||||
"x": 17.0,
|
||||
"y": 23.9
|
||||
},
|
||||
"name": {
|
||||
"en": "Electrope Strike"
|
||||
}
|
||||
},
|
||||
{
|
||||
"position": {
|
||||
"zone": "living-memory",
|
||||
"x": 21.5,
|
||||
"y": 37.3
|
||||
},
|
||||
"name": {
|
||||
"en": "Leynode Mnemo"
|
||||
}
|
||||
},
|
||||
{
|
||||
"position": {
|
||||
"zone": "living-memory",
|
||||
"x": 34.7,
|
||||
"y": 15.7
|
||||
},
|
||||
"name": {
|
||||
"en": "Leynode Pyro"
|
||||
}
|
||||
},
|
||||
{
|
||||
"position": {
|
||||
"zone": "living-memory",
|
||||
"x": 16.4,
|
||||
"y": 13.5
|
||||
},
|
||||
"name": {
|
||||
"en": "Leynode Aero"
|
||||
}
|
||||
},
|
||||
{
|
||||
"position": {
|
||||
"zone": "urquopacha",
|
||||
"x": 30.5,
|
||||
"y": 34.2
|
||||
},
|
||||
"name": {
|
||||
"en": "Worlar's Echo"
|
||||
}
|
||||
},
|
||||
{
|
||||
"position": {
|
||||
"zone": "urquopacha",
|
||||
"x": 28.1,
|
||||
"y": 13.1
|
||||
},
|
||||
"name": {
|
||||
"en": "Wachunpelo"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
+65
-10
@@ -1,20 +1,75 @@
|
||||
{
|
||||
"rarefied-iceberg-lettuce": {
|
||||
"name": "Rarefied Iceberg Lettuce",
|
||||
|
||||
"rarefied-sykon": {
|
||||
"name": "Rarefied Sykon",
|
||||
"level": 87
|
||||
},
|
||||
"rarefied-elder-nutmeg": {
|
||||
"name": "Rarefied Elder Nutmeg",
|
||||
"level": 90
|
||||
},
|
||||
"rarefied-dark-rye": {
|
||||
"name": "Rarefied Dark Rye",
|
||||
"level": 89
|
||||
},
|
||||
"rarefied-palm-log": {
|
||||
"name": "Rarefied Palm Log",
|
||||
"level": 81
|
||||
},
|
||||
"rarefied-coconut": {
|
||||
"name": "Rarefied Coconut",
|
||||
"level": 85
|
||||
},
|
||||
"rarefied-palm-log": {
|
||||
"name": "Rarefied Palm Log",
|
||||
"level": 85
|
||||
},
|
||||
"rarefied-red-pine-log": {
|
||||
"name": "Rarefied Red Pine Log",
|
||||
"level": 83
|
||||
},
|
||||
"rarefied-dark-rye": {
|
||||
"name": "Rarefied Dark Rye",
|
||||
"level": 89
|
||||
},
|
||||
"rarefied-iceberg-lettuce": {
|
||||
"name": "Rarefied Iceberg Lettuce",
|
||||
"level": 90,
|
||||
"stars": 1
|
||||
},
|
||||
"rarefied-ar-cean-cotton-boll": {
|
||||
"name": "Rarefied AR-Cean Cotton Boll",
|
||||
"level": 90,
|
||||
"stars": 1
|
||||
},
|
||||
|
||||
"rarefied-sharlayan-rock-salt": {
|
||||
"name": "Rarefied Sharlayan Rock Salt",
|
||||
"level": 85
|
||||
},
|
||||
"rarefied-raw-ametrine": {
|
||||
"name": "Rarefied Raw Ametrine",
|
||||
"level": 81
|
||||
},
|
||||
"rarefied-eblan-alumen": {
|
||||
"name": "Rarefied Eblan Alumen",
|
||||
"level": 90
|
||||
},
|
||||
"rarefied-phrygian-gold-ore": {
|
||||
"name":"Rarefied Phrygian Gold Ore",
|
||||
"level": 87
|
||||
},
|
||||
"rarefied-pewter-ore": {
|
||||
"name": "Rarefied Pewter Ore",
|
||||
"level": 90,
|
||||
"stars": 1
|
||||
},
|
||||
"rarefied-bismuth-ore": {
|
||||
"name": "Rarefied Bismuth Ore",
|
||||
"level": 83
|
||||
},
|
||||
"rarefied-annite": {
|
||||
"name": "Rarefied Annite",
|
||||
"level": 90,
|
||||
"stars": 1
|
||||
},
|
||||
"rarefied-blue-zircon": {
|
||||
"name": "Rarefied Blue Zircon",
|
||||
"level": 89
|
||||
},
|
||||
|
||||
"rarefied-titanium-gold-ore": {
|
||||
"name": "Rarefied Titanium Gold Ore",
|
||||
"level": 96
|
||||
|
||||
@@ -33,6 +33,105 @@
|
||||
"rarefied-coconut"
|
||||
]
|
||||
},
|
||||
{
|
||||
"job": "botanist",
|
||||
"type": "unspoiled",
|
||||
"position": {
|
||||
"zone": "ultima-thule",
|
||||
"x": 14.0,
|
||||
"y": 28.0
|
||||
},
|
||||
"times": [
|
||||
"08:00-10:00",
|
||||
"20:00-22:00"
|
||||
],
|
||||
"items": [
|
||||
"rarefied-ar-cean-cotton-boll"
|
||||
]
|
||||
},
|
||||
{
|
||||
"job": "miner",
|
||||
"type": "unspoiled",
|
||||
"position": {
|
||||
"zone": "labyrinthos",
|
||||
"x": 32.5,
|
||||
"y": 21.2
|
||||
},
|
||||
"times": [
|
||||
"12:00-14:00",
|
||||
"00:00-02:00"
|
||||
],
|
||||
"items": [
|
||||
"rarefied-sharlayan-rock-salt",
|
||||
"rarefied-raw-ametrine"
|
||||
]
|
||||
},
|
||||
{
|
||||
"job": "miner",
|
||||
"type": "unspoiled",
|
||||
"position": {
|
||||
"zone": "garlemald",
|
||||
"x": 12.9,
|
||||
"y": 21.8
|
||||
},
|
||||
"times": [
|
||||
"14:00-16:00",
|
||||
"02:00-04:00"
|
||||
],
|
||||
"items": [
|
||||
"rarefied-eblan-alumen",
|
||||
"rarefied-phrygian-gold-ore"
|
||||
]
|
||||
},
|
||||
{
|
||||
"job": "miner",
|
||||
"type": "unspoiled",
|
||||
"position": {
|
||||
"zone": "thavnair",
|
||||
"x": 32.0,
|
||||
"y": 25.0
|
||||
},
|
||||
"times": [
|
||||
"04:00-06:00",
|
||||
"16:00-18:00"
|
||||
],
|
||||
"items": [
|
||||
"rarefied-pewter-ore"
|
||||
]
|
||||
},
|
||||
{
|
||||
"job": "miner",
|
||||
"type": "unspoiled",
|
||||
"position": {
|
||||
"zone": "mare-lamentorum",
|
||||
"x": 16.0,
|
||||
"y": 32.0
|
||||
},
|
||||
"times": [
|
||||
"06:00-08:00",
|
||||
"18:00-20:00"
|
||||
],
|
||||
"items": [
|
||||
"rarefied-bismuth-ore"
|
||||
]
|
||||
},
|
||||
{
|
||||
"job": "miner",
|
||||
"type": "unspoiled",
|
||||
"position": {
|
||||
"zone": "elpis",
|
||||
"x": 8.0,
|
||||
"y": 36.0
|
||||
},
|
||||
"times": [
|
||||
"10:00-12:00",
|
||||
"22:00-00:00"
|
||||
],
|
||||
"items": [
|
||||
"rarefied-annite",
|
||||
"rarefied-blue-zircon"
|
||||
]
|
||||
},
|
||||
{
|
||||
"job": "miner",
|
||||
"type": "unspoiled",
|
||||
|
||||
@@ -2,36 +2,303 @@
|
||||
"labyrinthos": {
|
||||
"name": {
|
||||
"en": "Labyrinthos"
|
||||
},
|
||||
"aetherytes": [
|
||||
{
|
||||
"position": {
|
||||
"x": 30.3,
|
||||
"y": 11.9
|
||||
},
|
||||
"name": {
|
||||
"en": "The Archeion"
|
||||
}
|
||||
},
|
||||
{
|
||||
"position": {
|
||||
"x": 21.6,
|
||||
"y": 20.4
|
||||
},
|
||||
"name": {
|
||||
"en": "Sharlayan Hamlet"
|
||||
}
|
||||
},
|
||||
{
|
||||
"position": {
|
||||
"x": 6.8,
|
||||
"y": 27.5
|
||||
},
|
||||
"name": {
|
||||
"en": "Aporia"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"thavnair": {
|
||||
"name": {
|
||||
"en": "Thavnair"
|
||||
},
|
||||
"aetherytes": [
|
||||
{
|
||||
"position": {
|
||||
"x": 29.5,
|
||||
"y": 16.5
|
||||
},
|
||||
"name": {
|
||||
"en": "Palaka's Stand"
|
||||
}
|
||||
},
|
||||
{
|
||||
"position": {
|
||||
"x": 10.9,
|
||||
"y": 22.2
|
||||
},
|
||||
"name": {
|
||||
"en": "The Great Work"
|
||||
}
|
||||
},
|
||||
{
|
||||
"position": {
|
||||
"x": 25.3,
|
||||
"y": 34.0
|
||||
},
|
||||
"name": {
|
||||
"en": "Yedlihmad"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"mare-lamentorum": {
|
||||
"name": {
|
||||
"en": "Mare Lamentorum"
|
||||
},
|
||||
"aetherytes": [
|
||||
{
|
||||
"position": {
|
||||
"x": 10.6,
|
||||
"y": 34.3
|
||||
},
|
||||
"name": {
|
||||
"en": "Sinus Lacrimarum"
|
||||
}
|
||||
},
|
||||
{
|
||||
"position": {
|
||||
"x": 21.7,
|
||||
"y": 11.1
|
||||
},
|
||||
"name": {
|
||||
"en": "Bestways Burrow"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"ultima-thule": {
|
||||
"name": {
|
||||
"en": "Ultima Thule"
|
||||
},
|
||||
"aetherytes": [
|
||||
{
|
||||
"position": {
|
||||
"x": 22.7,
|
||||
"y": 8.3
|
||||
},
|
||||
"name": {
|
||||
"en": "Reah Tahra"
|
||||
}
|
||||
},
|
||||
{
|
||||
"position": {
|
||||
},
|
||||
"name": {
|
||||
"en": "Abode of the Ea"
|
||||
}
|
||||
},
|
||||
{
|
||||
"position": {
|
||||
"x": 31.3,
|
||||
"y": 28.0
|
||||
},
|
||||
"name": {
|
||||
"en": "Base Omnicron"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"garlemald": {
|
||||
"name": {
|
||||
"en": "Garlemald"
|
||||
},
|
||||
"aetherytes": [
|
||||
{
|
||||
"position": {
|
||||
"x": 13.3,
|
||||
"y": 31.1
|
||||
},
|
||||
"name": {
|
||||
"en": "Camp Broken Glass"
|
||||
}
|
||||
},
|
||||
{
|
||||
"position": {
|
||||
"x": 31.7,
|
||||
"y": 18.0
|
||||
},
|
||||
"name": {
|
||||
"en": "Tertium"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"yak-tel": {
|
||||
"name": {
|
||||
"en": "Yak T'el"
|
||||
},
|
||||
"aetherytes": [
|
||||
{
|
||||
"position": {
|
||||
"x": 13.5,
|
||||
"y": 12.9
|
||||
},
|
||||
"name": {
|
||||
"en": "Iq Br'aax"
|
||||
}
|
||||
},
|
||||
{
|
||||
"position": {
|
||||
"x": 35.9,
|
||||
"y": 32.0
|
||||
},
|
||||
"name": {
|
||||
"en": "Mamook"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"shaaloani": {
|
||||
"name": {
|
||||
"en": "Shaaloani"
|
||||
},
|
||||
"aetherytes": [
|
||||
{
|
||||
"position": {
|
||||
"x": 15.6,
|
||||
"y": 19.2
|
||||
},
|
||||
"name": {
|
||||
"en": "Sheshenewezi Springs"
|
||||
}
|
||||
},
|
||||
{
|
||||
"position": {
|
||||
"x": 29.0,
|
||||
"y": 30.8
|
||||
},
|
||||
"name": {
|
||||
"en": "Hhusatahwi"
|
||||
}
|
||||
},
|
||||
{
|
||||
"position": {
|
||||
"x": 27.1,
|
||||
"y": 10.1
|
||||
},
|
||||
"name": {
|
||||
"en": "Mehwahhetsoan"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"heritage-found": {
|
||||
"name": {
|
||||
"en": "Heritage Found"
|
||||
},
|
||||
"aetherytes": [
|
||||
{
|
||||
"position": {
|
||||
"x": 17.0,
|
||||
"y": 9.8
|
||||
},
|
||||
"name": {
|
||||
"en": "The Outskirts"
|
||||
}
|
||||
},
|
||||
{
|
||||
"position": {
|
||||
"x": 31.7,
|
||||
"y": 25.7
|
||||
},
|
||||
"name": {
|
||||
"en": "Yyasulani Station"
|
||||
}
|
||||
},
|
||||
{
|
||||
"position": {
|
||||
"x": 17.0,
|
||||
"y": 23.9
|
||||
},
|
||||
"name": {
|
||||
"en": "Electrope Strike"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"living-memory": {
|
||||
"name": {
|
||||
"en": "Living Memory"
|
||||
},
|
||||
"aetherytes": [
|
||||
{
|
||||
"position": {
|
||||
"x": 21.5,
|
||||
"y": 37.3
|
||||
},
|
||||
"name": {
|
||||
"en": "Leynode Mnemo"
|
||||
}
|
||||
},
|
||||
{
|
||||
"position": {
|
||||
"x": 34.7,
|
||||
"y": 15.7
|
||||
},
|
||||
"name": {
|
||||
"en": "Leynode Pyro"
|
||||
}
|
||||
},
|
||||
{
|
||||
"position": {
|
||||
"x": 16.4,
|
||||
"y": 13.5
|
||||
},
|
||||
"name": {
|
||||
"en": "Leynode Aero"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"urquopacha": {
|
||||
"name": {
|
||||
"en": "Urquopacha"
|
||||
},
|
||||
"aetherytes": [
|
||||
{
|
||||
"position": {
|
||||
"x": 30.5,
|
||||
"y": 34.2
|
||||
},
|
||||
"name": {
|
||||
"en": "Worlar's Echo"
|
||||
}
|
||||
},
|
||||
{
|
||||
"position": {
|
||||
"x": 28.1,
|
||||
"y": 13.1
|
||||
},
|
||||
"name": {
|
||||
"en": "Wachunpelo"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
+4
-19
@@ -58,23 +58,22 @@ export default defineComponent({
|
||||
data: () => ({
|
||||
eorzeaTime: new EorzeaTime() as EorzeaTime,
|
||||
nodes: [] as Node[],
|
||||
aetherytes: [] as Aetheryte[],
|
||||
items: {} as { [key: string]: Item },
|
||||
zones: {} as { [key: string]: Zone },
|
||||
filtersActive: false,
|
||||
filters: new Filters(),
|
||||
}),
|
||||
methods: {
|
||||
findNearestAetheryte(zone: string, x: number, y: number): Aetheryte | null {
|
||||
findNearestAetheryte(zoneName: string, x: number, y: number): Aetheryte | null {
|
||||
let result = null;
|
||||
let distance = Number.MAX_SAFE_INTEGER;
|
||||
for (const aetheryte of this.aetherytes) {
|
||||
if (aetheryte.position.zone !== zone) continue;
|
||||
const zone = this.zones[zoneName]
|
||||
if (!zone) return null;
|
||||
for (const aetheryte of zone.aetherytes) {
|
||||
const a = aetheryte.position.x - x;
|
||||
const b = aetheryte.position.y - y;
|
||||
const distanceToAetheryte = Math.hypot(a, b);
|
||||
if (distanceToAetheryte < distance) {
|
||||
`Aetheryte ${aetheryte.name.en} (${distance}) is new nearest aetheryte`;
|
||||
distance = distanceToAetheryte;
|
||||
result = aetheryte;
|
||||
}
|
||||
@@ -88,20 +87,6 @@ export default defineComponent({
|
||||
this.eorzeaTime = new EorzeaTime();
|
||||
}, 500);
|
||||
|
||||
const aetheryteData: Response | null = await fetch("/data/aetherytes.json")
|
||||
.catch((): null => {
|
||||
return null;
|
||||
});
|
||||
if (aetheryteData === null) {
|
||||
console.error("Failed to fetch aetheryte data!")
|
||||
return;
|
||||
}
|
||||
|
||||
const aetherytes = await aetheryteData.json();
|
||||
for (const aetheryteData of aetherytes) {
|
||||
this.aetherytes.push(new Aetheryte(aetheryteData));
|
||||
}
|
||||
|
||||
const itemData: Response | null = await fetch("/data/items.json")
|
||||
.catch((): null => {
|
||||
return null;
|
||||
|
||||
@@ -1,13 +1,21 @@
|
||||
import Aetheryte from "@/entities/Aetheryte";
|
||||
|
||||
export default class Zone {
|
||||
|
||||
name: {
|
||||
en: string,
|
||||
}
|
||||
|
||||
constructor(data: {name: {en: string}}) {
|
||||
aetherytes: Array<Aetheryte> = [];
|
||||
|
||||
constructor(data: {name: {en: string}, aetherytes: Array<{position: {x: number, y: number, zone: string}, name: {en: string}}>}) {
|
||||
this.name = {
|
||||
en: data.name.en
|
||||
};
|
||||
if (!Array.isArray(data.aetherytes)) return;
|
||||
for (const aetheryte of data.aetherytes) {
|
||||
this.aetherytes.push(new Aetheryte(aetheryte));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user