FIX : Allow actions on discard

This commit is contained in:
2024-05-07 17:25:46 +02:00
parent 62c00cba93
commit 38b992b7a5
6 changed files with 81 additions and 30 deletions
+10 -3
View File
@@ -1,3 +1,4 @@
import { registerRuntimeCompiler } from "vue"
import { type GameObjectRegister } from "."
import type { Card } from "./Card"
import { type Effect, CardEffects } from "./Effect"
@@ -7,16 +8,19 @@ export interface TurnNetcode extends GameObjectNetcode {
effects_availables: Array<string>
champions_health: { [key: string]: string }
discard_markers: number
discard_marker_card: string
fuck_u_markers: number
damage_reserve: number
gold_reserve: number
}
export type Turn = Omit<TurnNetcode, 'cards_locked' | 'effects_availables' | 'champions_health'> & {
export type Turn = Omit<TurnNetcode, 'cards_locked' | 'effects_availables' | 'champions_health'|"discard_marker_card"> & {
cards_locked: { [key: string]: Card }
effects_availables: Array<Effect>
champions_health: Map<string, number>
find_effect: (card_effect: CardEffects) => Effect | undefined
discard_marker_card: Card
find_effect: (card_effect: CardEffects) => ComputedRef<Effect | undefined>
}
export function create_turn(input: TurnNetcode, register: GameObjectRegister) {
const turn = new Proxy<any>(input, {
@@ -36,9 +40,12 @@ export function create_turn(input: TurnNetcode, register: GameObjectRegister) {
}
if (prop == "find_effect") {
return (card_effect: CardEffects) => {
return turn.effects_availables.find(e => (e.effect == card_effect) && e.usable)
return computed(()=>turn.effects_availables.find((e:Effect) => (e.effect == card_effect) && e.usable))
}
}
if(prop == "discard_marker_card"){
return register.cards.get(target.discard_marker_card)
}
return Reflect.get(target, prop, reciever);
},
set(target, prop, val, receiver) {