Skip to content

Commit

Permalink
solitiare_game
Browse files Browse the repository at this point in the history
  • Loading branch information
eguneys committed Dec 17, 2022
1 parent 67a8ba8 commit 9151ef7
Show file tree
Hide file tree
Showing 9 changed files with 1,384 additions and 828 deletions.
29 changes: 10 additions & 19 deletions src/game.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,9 @@ import Sound from './sound'

import Trans, { languages } from './trans'

import { TurningCards, TurningLimit } from 'lsolitaire'
import { SolitaireStore, GeneralStore } from './store'
import { limit_settings, cards_settings, SolitaireStore, GeneralStore } from './store'



type RectData = {
w: number,
Expand Down Expand Up @@ -1848,30 +1849,22 @@ class SolitaireSettings extends Play {

_init() {

let settings = SolitaireStore.settings

let cards_settings = [TurningCards.ThreeCards, TurningCards.OneCard]
let h = 220
let turning_cards_setting = this.make(DropdownSetting, Vec2.make(40, 0), {
name: 'turning_cards',
items: ['three_cards', 'one_card'],
selected_index: cards_settings.indexOf(settings.cards),
selected_index: cards_settings.indexOf(SolitaireStore.cards),
on_selected(i: number) {
let settings = SolitaireStore.settings
settings.cards = cards_settings[i]
SolitaireStore.settings = settings
SolitaireStore.cards = cards_settings[i]
}
})

let limit_settings = [TurningLimit.NoLimit, TurningLimit.ThreePasses, TurningLimit.OnePass]
let turning_limit_setting = this.make(DropdownSetting, Vec2.make(40, h * 1), {
name: 'turning_limit',
items: ['no_limit', 'three_passes', 'one_pass'],
selected_index: limit_settings.indexOf(settings.limit),
selected_index: limit_settings.indexOf(SolitaireStore.limit),
on_selected(i: number) {
let settings = SolitaireStore.settings
settings.limit = limit_settings[i]
SolitaireStore.settings = settings
SolitaireStore.limit = limit_settings[i]
}
})

Expand Down Expand Up @@ -1911,17 +1904,15 @@ class GeneralSettings extends Play {

_init() {

let settings = GeneralStore.settings
let h = 220
let language_setting = this.make(DropdownSetting, Vec2.make(40, 0), {
no_trans: true,
name: 'language',
items: languages.map(_ => Trans.lang_key(_)),
selected_index: languages.indexOf(settings.language),
selected_index: languages.indexOf(GeneralStore.language),
on_selected(i: number) {
Trans.language = languages[i]
settings.language = languages[i]
GeneralStore.settings = settings
GeneralStore.language = languages[i]
}
})

Expand Down Expand Up @@ -2383,7 +2374,7 @@ export default class Game extends Play {
})

Content.load().then(() => {
Trans.language = GeneralStore.settings.language
Trans.language = GeneralStore.language
scene_transition = this.make(SceneTransition, Vec2.zero, {})
})
}
Expand Down
10 changes: 9 additions & 1 deletion src/showcase.ts
Original file line number Diff line number Diff line change
Expand Up @@ -715,14 +715,22 @@ export class Tableu extends Play {
this.fronts.add_cards([card])
let self = this
this.fronts.top_card.bind_drag((e: Vec2) => {
self.data.on_front_drag(0, e)
self.data.on_front_drag(1, e)
})
this.fronts.top_card.bind_drop(() => {
self.data.on_front_drop()

})
}

flip_back() {
let [card] = this.fronts.remove_cards(1)
card.flip_back()
this.backs.add_cards([card])
this.fronts.ease_position(this.top_back_position)
card.bind_drop(undefined)
}

backs!: Stack
fronts!: Stack

Expand Down
9 changes: 1 addition & 8 deletions src/solitaire.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,19 +18,12 @@ import { Anim } from './anim'
import { TransText, Text, RectView, Clickable, Background, MainMenu2 } from './game'
import { About2, Settings2, HowtoPlay2 } from './game'
import { scene_transition }from './game'

import { n_seven, card_sort_key, Cards, Card as OCard, SolitairePov, Solitaire } from 'lsolitaire'

import { ticks } from './shared'
import { RNG, random, int_random, v_random, v_random_h, v_screen, arr_random } from './util'
import { Tween } from './tween'

import { SolitaireGame } from './solitaire_game'

import { Button } from './ui'

import { SolitaireStore } from './store'
import { Card } from './showcase'
import { SolitaireGame, card_sort_key } from './solitaire_game'

let rnd_screen_poss = [...Array(50).keys()].map(() => v_random().mul(v_screen.scale(0.8)))

Expand Down
Loading

0 comments on commit 9151ef7

Please sign in to comment.