2022-07-03 15:50:41 +00:00
|
|
|
//class helper {
|
|
|
|
|
// Revive<T>(t:string, _type:string):string {
|
|
|
|
|
// return t
|
|
|
|
|
// }
|
|
|
|
|
// Revive<T>(t:string, _type:string[]):string[]{
|
|
|
|
|
// return t.split(",")
|
|
|
|
|
// }
|
|
|
|
|
// Revive<T>(t:string, _type:number):number {
|
|
|
|
|
// return Number(t)
|
|
|
|
|
// }
|
|
|
|
|
// Revive<T>(t:string, _type:number[]):number[]{
|
|
|
|
|
// return t.split(",").map(Number)
|
|
|
|
|
// }
|
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
import { ColumnSet } from "./table"
|
2022-07-03 16:37:06 +00:00
|
|
|
import { dummyChar, TricksterInventory } from "./trickster"
|
2022-07-03 15:50:41 +00:00
|
|
|
|
|
|
|
|
export const ARRAY_SEPERATOR = ","
|
|
|
|
|
|
|
|
|
|
let as = ARRAY_SEPERATOR
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
export interface Reviver<T> {
|
|
|
|
|
Murder(t:T):string
|
|
|
|
|
Revive(s:string):T
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export const StoreStr= {
|
|
|
|
|
Murder: (s:string):string=>s,
|
|
|
|
|
Revive: (s:string):string=>s
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export const StoreNum = {
|
|
|
|
|
Murder: (s:number):string=>s.toString(),
|
|
|
|
|
Revive: (s:string):number=>Number(s)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export const StoreStrSet = {
|
|
|
|
|
Murder: (s:Set<string>):string=>Array.from(s).join(as),
|
|
|
|
|
Revive: (s:string):Set<string>=>new Set(s.split(as))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export const StoreColSet = {
|
2022-07-03 16:05:10 +00:00
|
|
|
Murder: (s:ColumnSet):string=>Array.from(s.s.values()).join(as),
|
2022-07-03 15:50:41 +00:00
|
|
|
Revive: (s:string):ColumnSet=>new ColumnSet(s.split(as))
|
|
|
|
|
}
|
2022-07-03 16:37:06 +00:00
|
|
|
export const StoreInvs = {
|
|
|
|
|
Murder: (s:Map<string,TricksterInventory>):string=>Array.from(s.keys()).join(as),
|
|
|
|
|
Revive: (s:string):Map<string,TricksterInventory>=>new Map(s.split(as).map((x)=>[x, dummyChar(x)])),
|
|
|
|
|
}
|