forked from a/lifeto-shop
docker
This commit is contained in:
parent
8ac589d44e
commit
516c91ab3f
|
@ -0,0 +1,19 @@
|
||||||
|
FROM golang:1.18.2-alpine as GOBUILDER
|
||||||
|
WORKDIR /wd
|
||||||
|
COPY go.mod go.sum ./
|
||||||
|
COPY app ./app
|
||||||
|
RUN go mod tidy
|
||||||
|
RUN go build -o app.exe ./app
|
||||||
|
|
||||||
|
FROM node:18.1-alpine as NODEBUILDER
|
||||||
|
WORKDIR /wd
|
||||||
|
COPY . .
|
||||||
|
RUN npm install
|
||||||
|
RUN npx vite build
|
||||||
|
|
||||||
|
FROM alpine:3.16
|
||||||
|
WORKDIR /wd
|
||||||
|
COPY --from=GOBUILDER /wd/app.exe app.exe
|
||||||
|
COPY --from=NODEBUILDER /wd/dist dist
|
||||||
|
ENTRYPOINT [ "/wd/app.exe" ]
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import CharacterCard from './CharacterCard.vue';
|
import CharacterCard from './CharacterCard.vue';
|
||||||
|
|
||||||
const { chars, invs, activeTable } = useStoreRef()
|
const {accs, chars, invs, activeTable } = useStoreRef()
|
||||||
|
|
||||||
const characters = ref([] as string[])
|
const characters = ref([] as string[])
|
||||||
watch(chars, () => {
|
watch(chars, () => {
|
||||||
|
@ -20,6 +20,7 @@ const api:LTOApi = getLTOState(LTOApiv0, session, useStoreRef())
|
||||||
api.GetAccounts().then(xs => {
|
api.GetAccounts().then(xs => {
|
||||||
xs.forEach(x => {
|
xs.forEach(x => {
|
||||||
characters.value.push(...x.characters.map(x=>x.path))
|
characters.value.push(...x.characters.map(x=>x.path))
|
||||||
|
accs.value.set(x.name, x)
|
||||||
})
|
})
|
||||||
characters.value = [...new Set([...characters.value])]
|
characters.value = [...new Set([...characters.value])]
|
||||||
saveStore();
|
saveStore();
|
||||||
|
|
|
@ -71,7 +71,7 @@ class Count implements ColumnInfo {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const spacer = "-------------------------------"
|
const spacer = "-----------"
|
||||||
class Move implements ColumnInfo {
|
class Move implements ColumnInfo {
|
||||||
name:ColumnName = "Move"
|
name:ColumnName = "Move"
|
||||||
displayName = "Target"
|
displayName = "Target"
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
//}
|
//}
|
||||||
|
|
||||||
import { ColumnSet } from "./table"
|
import { ColumnSet } from "./table"
|
||||||
import { TricksterCharacter, TricksterInventory } from "./trickster"
|
import { TricksterAccount, TricksterCharacter, TricksterInventory } from "./trickster"
|
||||||
|
|
||||||
export const ARRAY_SEPERATOR = ","
|
export const ARRAY_SEPERATOR = ","
|
||||||
|
|
||||||
|
@ -51,6 +51,13 @@ export const StoreChars = {
|
||||||
},
|
},
|
||||||
Revive: (s:string):Map<string,TricksterCharacter>=>new Map(JSON.parse(s)),
|
Revive: (s:string):Map<string,TricksterCharacter>=>new Map(JSON.parse(s)),
|
||||||
}
|
}
|
||||||
|
export const StoreAccounts = {
|
||||||
|
Murder: (s:Map<string,TricksterAccount>):string=>{
|
||||||
|
let o = JSON.stringify(Array.from(s.entries()))
|
||||||
|
return o
|
||||||
|
},
|
||||||
|
Revive: (s:string):Map<string,TricksterAccount>=>new Map(JSON.parse(s)),
|
||||||
|
}
|
||||||
|
|
||||||
export const StoreJsonable = {
|
export const StoreJsonable = {
|
||||||
Murder: <T>(s:T):string=>JSON.stringify(Object.entries(s)),
|
Murder: <T>(s:T):string=>JSON.stringify(Object.entries(s)),
|
||||||
|
|
|
@ -186,7 +186,7 @@ export const DefaultSettings = ():HotTableProps=>{
|
||||||
},
|
},
|
||||||
// renderAllRows: true,
|
// renderAllRows: true,
|
||||||
viewportColumnRenderingOffset: 3,
|
viewportColumnRenderingOffset: 3,
|
||||||
viewportRowRenderingOffset: 100,
|
viewportRowRenderingOffset: 10,
|
||||||
// dropdownMenu: DefaultDropdownItems(),
|
// dropdownMenu: DefaultDropdownItems(),
|
||||||
afterGetColHeader: (col, th) => {
|
afterGetColHeader: (col, th) => {
|
||||||
if(!th.innerHTML.toLowerCase().includes("name")) {
|
if(!th.innerHTML.toLowerCase().includes("name")) {
|
||||||
|
|
|
@ -46,9 +46,42 @@ export interface TricksterInventory extends Identifier{
|
||||||
|
|
||||||
|
|
||||||
const jobMap:{[key:number]:string} = {
|
const jobMap:{[key:number]:string} = {
|
||||||
31: "diva",
|
//---- job 1, fm
|
||||||
|
1: "schoolgirl",
|
||||||
|
2: "fighter",
|
||||||
|
3: "librarian",
|
||||||
|
4: "shaman",
|
||||||
|
5: "archeologist",
|
||||||
|
6: "engineer",
|
||||||
|
7: "model",
|
||||||
|
8: "teacher",
|
||||||
|
//---- job 2 fm
|
||||||
|
9: "boxer",
|
||||||
|
10: "warrior",
|
||||||
|
11: "bard",
|
||||||
|
12: "magician",
|
||||||
|
13: "explorer",
|
||||||
|
14: "inventor",
|
||||||
|
15: "entertainer",
|
||||||
|
16: "card master",
|
||||||
|
//----
|
||||||
|
17: "champion",
|
||||||
|
18: "duelist",
|
||||||
|
19: "mercinary",
|
||||||
|
20: "gladiator",
|
||||||
|
21: "soul master",
|
||||||
|
22: "witch",
|
||||||
|
23: "wizard",
|
||||||
|
24: "dark lord",
|
||||||
|
25: "priest",
|
||||||
|
26: "thief master",
|
||||||
|
27: "hunter lord",
|
||||||
|
28: "cyber hunter",
|
||||||
29: "scientist",
|
29: "scientist",
|
||||||
11: "sheep",
|
30: "primadonna",
|
||||||
|
31: "diva",
|
||||||
|
32: "duke",
|
||||||
|
33: "gambler",
|
||||||
}
|
}
|
||||||
|
|
||||||
export const JobNumberToString = (n:number):string=> {
|
export const JobNumberToString = (n:number):string=> {
|
||||||
|
|
|
@ -3,9 +3,9 @@ import { getCookie, setCookie } from 'typescript-cookie'
|
||||||
import { useCookies } from 'vue3-cookies'
|
import { useCookies } from 'vue3-cookies'
|
||||||
import { BasicColumns, ColumnInfo, ColumnName, Columns, DetailsColumns, MoveColumns } from '../lib/columns'
|
import { BasicColumns, ColumnInfo, ColumnName, Columns, DetailsColumns, MoveColumns } from '../lib/columns'
|
||||||
import { OrderTracker } from '../lib/lifeto/order_manager'
|
import { OrderTracker } from '../lib/lifeto/order_manager'
|
||||||
import { Reviver, StoreChars, StoreColSet, StoreInvs, StoreSerializable, StoreStr, StoreStrSet } from '../lib/storage'
|
import { Reviver, StoreAccounts, StoreChars, StoreColSet, StoreInvs, StoreSerializable, StoreStr, StoreStrSet } from '../lib/storage'
|
||||||
import { ColumnSet } from '../lib/table'
|
import { ColumnSet } from '../lib/table'
|
||||||
import { TricksterCharacter, TricksterInventory } from '../lib/trickster'
|
import { TricksterAccount, TricksterCharacter, TricksterInventory } from '../lib/trickster'
|
||||||
import { nameCookie} from '../session_storage'
|
import { nameCookie} from '../session_storage'
|
||||||
|
|
||||||
const _defaultColumn:(ColumnInfo| ColumnName)[] = [
|
const _defaultColumn:(ColumnInfo| ColumnName)[] = [
|
||||||
|
@ -17,6 +17,7 @@ const _defaultColumn:(ColumnInfo| ColumnName)[] = [
|
||||||
// if you wish for the thing to persist
|
// if you wish for the thing to persist
|
||||||
export const StoreReviver = {
|
export const StoreReviver = {
|
||||||
chars: StoreChars,
|
chars: StoreChars,
|
||||||
|
accs: StoreAccounts,
|
||||||
activeTable: StoreStr,
|
activeTable: StoreStr,
|
||||||
screen: StoreStr,
|
screen: StoreStr,
|
||||||
columns: StoreColSet,
|
columns: StoreColSet,
|
||||||
|
@ -27,6 +28,7 @@ export const StoreReviver = {
|
||||||
export interface StoreProps {
|
export interface StoreProps {
|
||||||
invs: Map<string,TricksterInventory>
|
invs: Map<string,TricksterInventory>
|
||||||
chars: Map<string, TricksterCharacter>
|
chars: Map<string, TricksterCharacter>
|
||||||
|
accs: Map<string, TricksterAccount>
|
||||||
orders: OrderTracker
|
orders: OrderTracker
|
||||||
activeTable: string
|
activeTable: string
|
||||||
screen: string
|
screen: string
|
||||||
|
@ -41,6 +43,7 @@ export const useStore = defineStore('state', {
|
||||||
let store = {
|
let store = {
|
||||||
invs: new Map() as Map<string,TricksterInventory>,
|
invs: new Map() as Map<string,TricksterInventory>,
|
||||||
chars: new Map() as Map<string,TricksterCharacter>,
|
chars: new Map() as Map<string,TricksterCharacter>,
|
||||||
|
accs: new Map() as Map<string,TricksterAccount>,
|
||||||
orders: new OrderTracker(),
|
orders: new OrderTracker(),
|
||||||
activeTable: "none",
|
activeTable: "none",
|
||||||
screen: "default",
|
screen: "default",
|
||||||
|
|
Loading…
Reference in New Issue