@the-inclusionist/engine 9.0.0 → 10.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +89 -78
- package/app/css/style.css +584 -374
- package/app/public/vendor/fonts/bitter-var-ext.woff2 +0 -0
- package/app/public/vendor/fonts/bitter-var.woff2 +0 -0
- package/app/public/vendor/fonts/bodonimoda-var-ext.woff2 +0 -0
- package/app/public/vendor/fonts/bodonimoda-var.woff2 +0 -0
- package/app/public/vendor/fonts/cat-abril_fatface-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-abril_fatface-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-adlam_display-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-adlam_display-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-agu_display-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-agu_display-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-alfa_slab_one-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-alfa_slab_one-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-are_you_serious-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-are_you_serious-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-asimovian-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-asimovian-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-atkinson_hyperlegible_next-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-atkinson_hyperlegible_next-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-bakbak_one-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-bakbak_one-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-bangers-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-bangers-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-barriecito-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-barriecito-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-berkshire_swash-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-berkshire_swash-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-bevan-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-bevan-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-bitcount-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-bitcount-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-bowlby_one_sc-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-bowlby_one_sc-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-bungee_shade-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-bungee_shade-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-charm-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-charm-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-charm-700-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-charm-700.woff2 +0 -0
- package/app/public/vendor/fonts/cat-cherry_bomb_one-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-cherry_bomb_one-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-chokokutai-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-chokokutai-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-chonburi-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-chonburi-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-climate_crisis-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-climate_crisis-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-cookie-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-dela_gothic_one-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-dela_gothic_one-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-fascinate_inline-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-fascinate_inline-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-ga_maamli-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-ga_maamli-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-itim-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-itim-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-jacquard_24-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-jacquard_24-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-kablammo-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-kablammo-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-kalam-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-kalam-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-kalam-700-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-kalam-700.woff2 +0 -0
- package/app/public/vendor/fonts/cat-katibeh-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-katibeh-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-lemonada-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-lemonada-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-lilita_one-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-lilita_one-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-lobster-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-lobster-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-luckiest_guy-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-luckiest_guy-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-marhey-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-marhey-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-modak-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-modak-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-momo_signature-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-momo_signature-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-monofett-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-monofett-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-monomakh-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-monomakh-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-monoton-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-monoton-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-nerko_one-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-nerko_one-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-noto_sans_adlam-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-noto_sans_adlam-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-noto_sans_arabic-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-noto_sans_arabic-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-noto_sans_devanagari-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-noto_sans_devanagari-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-noto_sans_hebrew-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-noto_sans_hebrew-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-noto_sans_jp-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-noto_sans_jp-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-noto_sans_khmer-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-noto_sans_khmer-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-noto_sans_kr-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-noto_sans_kr-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-noto_sans_sc-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-noto_sans_sc-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-noto_sans_thai-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-noto_sans_thai-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-ole-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-ole-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-pacifico-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-pacifico-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-patrick_hand-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-patrick_hand-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-petit_formal_script-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-petit_formal_script-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-pixelify_sans-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-pixelify_sans-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-plaster-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-plaster-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_ar_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_at-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_at_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_au_nsw-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_au_nsw_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_au_qld-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_au_qld_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_au_sa-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_au_sa_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_au_tas-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_au_tas_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_au_vic-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_au_vic_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_be_vlg-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_be_vlg_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_be_wal-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_be_wal_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_br_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_ca_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_cl_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_co_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_cu_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_cz-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_cz_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_de_grund-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_de_grund_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_de_la-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_de_la_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_de_sas-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_de_sas_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_de_va-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_de_va_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_dk_loopet-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_dk_loopet_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_dk_uloopet-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_dk_uloopet_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_es_deco_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_es_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_fr_moderne-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_fr_moderne_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_fr_trad-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_fr_trad_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_gb_j_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_gb_s_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_hr-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_hr_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_hr_lijeva-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_hr_lijeva_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_hu-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_hu_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_id-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_id_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_ie-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_ie_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_in-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_in_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_is-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_is_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_it_moderna-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_it_moderna_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_it_trad-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_it_trad_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_mx_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_ng_modern-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_ng_modern_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_nl-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_nl_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_no-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_no_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_nz-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_nz_basic-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_nz_basic_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_nz_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_pe_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_pl-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_pl_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_pt_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_ro-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_ro_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_sk-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_sk_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_tz-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_tz_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_us_modern_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_us_trad_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_vn-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_vn_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_za-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_za_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-potta_one-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-potta_one-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-ranchers-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-ranchers-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-ranga-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-ranga-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-ranga-700-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-ranga-700.woff2 +0 -0
- package/app/public/vendor/fonts/cat-risque-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-risque-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-rowdies-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-rowdies-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-rowdies-700-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-rowdies-700.woff2 +0 -0
- package/app/public/vendor/fonts/cat-ruge_boogie-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-ruge_boogie-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-ruslan_display-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-ruslan_display-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-sacramento-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-sacramento-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-sancreek-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-sancreek-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-sankofa_display-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-sankofa_display-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-sedgwick_ave_display-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-sedgwick_ave_display-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-shantell_sans-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-shantell_sans-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-smokum-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-smokum-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-solitreo-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-solitreo-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-spicy_rice-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-spicy_rice-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-sriracha-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-sriracha-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-srisakdi-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-srisakdi-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-srisakdi-700-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-srisakdi-700.woff2 +0 -0
- package/app/public/vendor/fonts/cat-stix_two_math-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-tillana-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-tillana-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-tillana-700-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-tillana-700.woff2 +0 -0
- package/app/public/vendor/fonts/cat-titan_one-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-titan_one-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-yatra_one-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-yatra_one-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-yomogi-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-yomogi-400.woff2 +0 -0
- package/app/public/vendor/fonts/dmserifdisplay-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/dmserifdisplay-400.woff2 +0 -0
- package/app/public/vendor/fonts/domine-var-ext.woff2 +0 -0
- package/app/public/vendor/fonts/domine-var.woff2 +0 -0
- package/app/public/vendor/fonts/fraunces-var-ext.woff2 +0 -0
- package/app/public/vendor/fonts/fraunces-var.woff2 +0 -0
- package/app/public/vendor/fonts/fredoka-var-ext.woff2 +0 -0
- package/app/public/vendor/fonts/fredoka-var.woff2 +0 -0
- package/app/public/vendor/fonts/jakarta-var-ext.woff2 +0 -0
- package/app/public/vendor/fonts/jakarta-var.woff2 +0 -0
- package/app/public/vendor/fonts/lora-var-ext.woff2 +0 -0
- package/app/public/vendor/fonts/lora-var.woff2 +0 -0
- package/app/public/vendor/fonts/merriweather-var-ext.woff2 +0 -0
- package/app/public/vendor/fonts/merriweather-var.woff2 +0 -0
- package/app/public/vendor/fonts/notosans-var-ext.woff2 +0 -0
- package/app/public/vendor/fonts/notosans-var.woff2 +0 -0
- package/app/public/vendor/fonts/nunito-var-ext.woff2 +0 -0
- package/app/public/vendor/fonts/nunito-var.woff2 +0 -0
- package/app/public/vendor/fonts/playfair-var-ext.woff2 +0 -0
- package/app/public/vendor/fonts/playfair-var.woff2 +0 -0
- package/app/public/vendor/fonts/playwrite-cu.woff2 +0 -0
- package/app/public/vendor/fonts/playwrite-es-deco.woff2 +0 -0
- package/app/public/vendor/fonts/playwrite-es.woff2 +0 -0
- package/app/public/vendor/fonts/playwrite-gb-j.woff2 +0 -0
- package/app/public/vendor/fonts/playwrite-gb-s.woff2 +0 -0
- package/app/public/vendor/fonts/playwrite-pe.woff2 +0 -0
- package/app/public/vendor/fonts/playwrite-pt.woff2 +0 -0
- package/app/public/vendor/fonts/quicksand-var-ext.woff2 +0 -0
- package/app/public/vendor/fonts/quicksand-var.woff2 +0 -0
- package/app/public/vendor/fonts/robotoflex-var-ext.woff2 +0 -0
- package/app/public/vendor/fonts/robotoflex-var.woff2 +0 -0
- package/app/public/vendor/fonts/sora-var-ext.woff2 +0 -0
- package/app/public/vendor/fonts/sora-var.woff2 +0 -0
- package/app/public/vendor/fonts/spacegrotesk-var-ext.woff2 +0 -0
- package/app/public/vendor/fonts/spacegrotesk-var.woff2 +0 -0
- package/app/public/vendor/fonts/spectral-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/spectral-400.woff2 +0 -0
- package/app/public/vendor/fonts/spectral-700-ext.woff2 +0 -0
- package/app/public/vendor/fonts/spectral-700.woff2 +0 -0
- package/app/public/vendor/fonts/teachers-var-ext.woff2 +0 -0
- package/app/public/vendor/fonts/teachers-var.woff2 +0 -0
- package/app/public/vendor/fonts/ubuntu-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/ubuntu-400.woff2 +0 -0
- package/app/public/vendor/fonts/ubuntu-700-ext.woff2 +0 -0
- package/app/public/vendor/fonts/ubuntu-700.woff2 +0 -0
- package/app/public/vendor/fonts.css +1167 -51
- package/dist-pkg/boot/create-game.d.ts +444 -215
- package/dist-pkg/boot/create-game.js +3530 -549
- package/dist-pkg/core/a11y-sr.d.ts +25 -3
- package/dist-pkg/core/a11y-sr.js +40 -19
- package/dist-pkg/core/accessible-label.d.ts +17 -0
- package/dist-pkg/core/accessible-label.js +37 -0
- package/dist-pkg/core/accommodation-subjects.d.ts +26 -0
- package/dist-pkg/core/accommodation-subjects.js +32 -0
- package/dist-pkg/core/accommodations.d.ts +107 -0
- package/dist-pkg/core/accommodations.js +178 -0
- package/dist-pkg/core/actions.d.ts +75 -51
- package/dist-pkg/core/actions.js +98 -69
- package/dist-pkg/core/calm-mode.d.ts +31 -0
- package/dist-pkg/core/calm-mode.js +47 -0
- package/dist-pkg/core/camera-cycle.d.ts +15 -0
- package/dist-pkg/core/camera-cycle.js +7 -0
- package/dist-pkg/core/caption-duration.d.ts +15 -0
- package/dist-pkg/core/caption-duration.js +19 -0
- package/dist-pkg/core/cartridge-problems.d.ts +34 -0
- package/dist-pkg/core/cartridge-problems.js +53 -0
- package/dist-pkg/core/constants.d.ts +0 -54
- package/dist-pkg/core/constants.js +9 -76
- package/dist-pkg/core/contract.d.ts +143 -163
- package/dist-pkg/core/contract.js +223 -207
- package/dist-pkg/core/dom-query.d.ts +4 -4
- package/dist-pkg/core/dom-query.js +12 -20
- package/dist-pkg/core/entity.d.ts +62 -77
- package/dist-pkg/core/entity.js +18 -32
- package/dist-pkg/core/escape-html.d.ts +9 -10
- package/dist-pkg/core/escape-html.js +16 -20
- package/dist-pkg/core/flash-threshold.d.ts +17 -0
- package/dist-pkg/core/flash-threshold.js +113 -0
- package/dist-pkg/core/game-speed.d.ts +11 -0
- package/dist-pkg/core/game-speed.js +16 -0
- package/dist-pkg/core/genres.d.ts +20 -0
- package/dist-pkg/core/genres.js +44 -0
- package/dist-pkg/core/i18n.d.ts +87 -41
- package/dist-pkg/core/i18n.js +206 -153
- package/dist-pkg/core/loop.d.ts +17 -6
- package/dist-pkg/core/loop.js +26 -26
- package/dist-pkg/core/pause-icon-catalogue.d.ts +15 -0
- package/dist-pkg/core/pause-icon-catalogue.js +54 -0
- package/dist-pkg/core/ring.d.ts +17 -0
- package/dist-pkg/core/ring.js +29 -0
- package/dist-pkg/core/rng.d.ts +7 -12
- package/dist-pkg/core/rng.js +23 -53
- package/dist-pkg/core/route.d.ts +26 -26
- package/dist-pkg/core/route.js +126 -121
- package/dist-pkg/core/scenes.d.ts +37 -40
- package/dist-pkg/core/scenes.js +41 -43
- package/dist-pkg/core/screens.d.ts +4 -4
- package/dist-pkg/core/screens.js +11 -16
- package/dist-pkg/core/setting-defaults.d.ts +61 -0
- package/dist-pkg/core/setting-defaults.js +66 -0
- package/dist-pkg/core/speech-rate.d.ts +29 -0
- package/dist-pkg/core/speech-rate.js +47 -0
- package/dist-pkg/core/state.d.ts +118 -118
- package/dist-pkg/core/state.js +322 -297
- package/dist-pkg/core/visual-cycles.d.ts +30 -0
- package/dist-pkg/core/visual-cycles.js +52 -0
- package/dist-pkg/core/visual-state.d.ts +13 -0
- package/dist-pkg/core/visual-state.js +6 -0
- package/dist-pkg/educational/activities-registry.d.ts +1 -1
- package/dist-pkg/educational/activities-registry.js +9 -8
- package/dist-pkg/educational/adaptive-engine.d.ts +11 -11
- package/dist-pkg/educational/adaptive-engine.js +17 -17
- package/dist-pkg/educational/segment-bar.d.ts +12 -12
- package/dist-pkg/educational/segment-bar.js +9 -9
- package/dist-pkg/i18n/en.js +321 -215
- package/dist-pkg/i18n/es.js +320 -215
- package/dist-pkg/i18n/pt.js +342 -215
- package/dist-pkg/input/default-bindings.d.ts +37 -38
- package/dist-pkg/input/default-bindings.js +127 -144
- package/dist-pkg/input/devices.d.ts +7 -7
- package/dist-pkg/input/devices.js +17 -16
- package/dist-pkg/input/edges.d.ts +23 -32
- package/dist-pkg/input/edges.js +23 -28
- package/dist-pkg/input/empathy-filter.d.ts +22 -0
- package/dist-pkg/input/empathy-filter.js +34 -0
- package/dist-pkg/input/face-map.d.ts +96 -0
- package/dist-pkg/input/face-map.js +255 -0
- package/dist-pkg/input/face-signals.d.ts +40 -0
- package/dist-pkg/input/face-signals.js +48 -0
- package/dist-pkg/input/gamepad.d.ts +164 -145
- package/dist-pkg/input/gamepad.js +351 -559
- package/dist-pkg/input/gaze-cycle.d.ts +64 -0
- package/dist-pkg/input/gaze-cycle.js +133 -0
- package/dist-pkg/input/gaze-relative.d.ts +68 -0
- package/dist-pkg/input/gaze-relative.js +142 -0
- package/dist-pkg/input/hand-map.d.ts +28 -0
- package/dist-pkg/input/hand-map.js +142 -0
- package/dist-pkg/input/input-cooldown.d.ts +17 -0
- package/dist-pkg/input/input-cooldown.js +39 -0
- package/dist-pkg/input/keyboard-runtime.d.ts +18 -20
- package/dist-pkg/input/keyboard-runtime.js +23 -27
- package/dist-pkg/input/keyboard.d.ts +68 -62
- package/dist-pkg/input/keyboard.js +83 -105
- package/dist-pkg/input/keydown.d.ts +124 -132
- package/dist-pkg/input/keydown.js +283 -288
- package/dist-pkg/input/latch-edge.d.ts +25 -21
- package/dist-pkg/input/latch-edge.js +33 -35
- package/dist-pkg/input/latch-scope.d.ts +43 -47
- package/dist-pkg/input/latch-scope.js +66 -75
- package/dist-pkg/input/latch-store.d.ts +28 -29
- package/dist-pkg/input/latch-store.js +44 -47
- package/dist-pkg/input/latch-sync.d.ts +28 -29
- package/dist-pkg/input/latch-sync.js +25 -25
- package/dist-pkg/input/latch.d.ts +14 -17
- package/dist-pkg/input/latch.js +29 -37
- package/dist-pkg/input/pad-defaults.d.ts +13 -16
- package/dist-pkg/input/pad-defaults.js +21 -28
- package/dist-pkg/input/pad-reading.d.ts +76 -0
- package/dist-pkg/input/pad-reading.js +164 -0
- package/dist-pkg/input/pad-wizard.d.ts +96 -0
- package/dist-pkg/input/pad-wizard.js +205 -0
- package/dist-pkg/input/pointer-space.d.ts +19 -20
- package/dist-pkg/input/pointer-space.js +27 -32
- package/dist-pkg/input/pointer.d.ts +39 -40
- package/dist-pkg/input/pointer.js +42 -45
- package/dist-pkg/input/state.d.ts +101 -89
- package/dist-pkg/input/state.js +54 -134
- package/dist-pkg/input/switch-scan.d.ts +42 -0
- package/dist-pkg/input/switch-scan.js +54 -0
- package/dist-pkg/input/synthetic-source.d.ts +42 -0
- package/dist-pkg/input/synthetic-source.js +57 -0
- package/dist-pkg/input/touch-bindings.d.ts +127 -113
- package/dist-pkg/input/touch-bindings.js +158 -173
- package/dist-pkg/input/touch.d.ts +130 -70
- package/dist-pkg/input/touch.js +321 -123
- package/dist-pkg/input/transport-in-use.d.ts +107 -0
- package/dist-pkg/input/transport-in-use.js +130 -0
- package/dist-pkg/input/transports.d.ts +96 -114
- package/dist-pkg/input/transports.js +104 -106
- package/dist-pkg/input/virtual-controller.d.ts +46 -0
- package/dist-pkg/input/virtual-controller.js +41 -0
- package/dist-pkg/input/vocabulary-migration.d.ts +50 -49
- package/dist-pkg/input/vocabulary-migration.js +80 -79
- package/dist-pkg/input/voice-map.d.ts +43 -0
- package/dist-pkg/input/voice-map.js +125 -0
- package/dist-pkg/platform/audio-ambient.d.ts +13 -1
- package/dist-pkg/platform/audio-ambient.js +11 -13
- package/dist-pkg/platform/audio-earcons.d.ts +20 -19
- package/dist-pkg/platform/audio-earcons.js +51 -42
- package/dist-pkg/platform/audio-jingles.js +9 -10
- package/dist-pkg/platform/audio-mixer.d.ts +14 -2
- package/dist-pkg/platform/audio-mixer.js +36 -39
- package/dist-pkg/platform/audio-sonar.d.ts +96 -113
- package/dist-pkg/platform/audio-sonar.js +245 -238
- package/dist-pkg/platform/audio.d.ts +53 -19
- package/dist-pkg/platform/audio.js +161 -169
- package/dist-pkg/platform/flash-sampler.d.ts +19 -0
- package/dist-pkg/platform/flash-sampler.js +79 -0
- package/dist-pkg/platform/guide-intensity.d.ts +26 -27
- package/dist-pkg/platform/guide-intensity.js +50 -52
- package/dist-pkg/platform/heavy-catalogue.d.ts +31 -0
- package/dist-pkg/platform/heavy-catalogue.js +223 -0
- package/dist-pkg/platform/heavy-mirror.d.ts +26 -0
- package/dist-pkg/platform/heavy-mirror.js +76 -0
- package/dist-pkg/platform/heavy.d.ts +104 -0
- package/dist-pkg/platform/heavy.js +169 -0
- package/dist-pkg/platform/interruptible-speech.d.ts +16 -16
- package/dist-pkg/platform/interruptible-speech.js +50 -51
- package/dist-pkg/platform/kokoro-port.d.ts +27 -0
- package/dist-pkg/platform/kokoro-port.js +50 -0
- package/dist-pkg/platform/kokoro-runtime.d.ts +20 -0
- package/dist-pkg/platform/kokoro-runtime.js +52 -0
- package/dist-pkg/platform/kokoro.d.ts +70 -0
- package/dist-pkg/platform/kokoro.js +133 -0
- package/dist-pkg/platform/listener-scope.d.ts +12 -0
- package/dist-pkg/platform/listener-scope.js +81 -0
- package/dist-pkg/platform/locale-host.d.ts +10 -0
- package/dist-pkg/platform/locale-host.js +34 -0
- package/dist-pkg/platform/microphone.d.ts +51 -0
- package/dist-pkg/platform/microphone.js +118 -0
- package/dist-pkg/platform/onnx-runtime.d.ts +34 -0
- package/dist-pkg/platform/onnx-runtime.js +42 -0
- package/dist-pkg/platform/reading-in-worker.d.ts +40 -0
- package/dist-pkg/platform/reading-in-worker.js +87 -0
- package/dist-pkg/platform/reading-model.d.ts +73 -0
- package/dist-pkg/platform/reading-model.js +247 -0
- package/dist-pkg/platform/reading-runtime.d.ts +24 -0
- package/dist-pkg/platform/reading-runtime.js +159 -0
- package/dist-pkg/platform/reading-worker.d.ts +41 -0
- package/dist-pkg/platform/reading-worker.js +58 -0
- package/dist-pkg/platform/reading.d.ts +69 -0
- package/dist-pkg/platform/reading.js +128 -0
- package/dist-pkg/platform/speech-recognition.d.ts +51 -0
- package/dist-pkg/platform/speech-recognition.js +84 -0
- package/dist-pkg/platform/speech.d.ts +14 -1
- package/dist-pkg/platform/speech.js +13 -13
- package/dist-pkg/platform/storage-keys.d.ts +96 -0
- package/dist-pkg/platform/storage-keys.js +106 -0
- package/dist-pkg/platform/storage.d.ts +46 -111
- package/dist-pkg/platform/storage.js +104 -169
- package/dist-pkg/platform/tts.d.ts +51 -38
- package/dist-pkg/platform/tts.js +217 -119
- package/dist-pkg/platform/vision-loop.d.ts +23 -0
- package/dist-pkg/platform/vision-loop.js +56 -0
- package/dist-pkg/platform/vision.d.ts +132 -0
- package/dist-pkg/platform/vision.js +117 -0
- package/dist-pkg/platform/voice-listener.d.ts +36 -0
- package/dist-pkg/platform/voice-listener.js +88 -0
- package/dist-pkg/platform/voice-plan.d.ts +6 -102
- package/dist-pkg/platform/voice-plan.js +9 -151
- package/dist-pkg/platform/vosk-runtime.d.ts +71 -0
- package/dist-pkg/platform/vosk-runtime.js +93 -0
- package/dist-pkg/render/canvas.d.ts +13 -7
- package/dist-pkg/render/canvas.js +13 -13
- package/dist-pkg/render/crt.d.ts +46 -12
- package/dist-pkg/render/crt.js +82 -80
- package/dist-pkg/render/cvd-matrices.d.ts +18 -18
- package/dist-pkg/render/cvd-matrices.js +33 -38
- package/dist-pkg/render/hc-role-data.d.ts +7 -7
- package/dist-pkg/render/hc-role-data.js +14 -14
- package/dist-pkg/render/high-contrast.d.ts +66 -54
- package/dist-pkg/render/high-contrast.js +221 -216
- package/dist-pkg/render/low-vision-drawing.d.ts +5 -0
- package/dist-pkg/render/low-vision-drawing.js +46 -0
- package/dist-pkg/render/lq-filter.d.ts +32 -20
- package/dist-pkg/render/lq-filter.js +59 -65
- package/dist-pkg/render/port.d.ts +86 -88
- package/dist-pkg/render/port.js +17 -23
- package/dist-pkg/render/screen-pipeline.d.ts +42 -42
- package/dist-pkg/render/screen-pipeline.js +80 -87
- package/dist-pkg/render/sprite-fx.d.ts +2 -1
- package/dist-pkg/render/sprite-fx.js +16 -14
- package/dist-pkg/render/viewports.d.ts +20 -15
- package/dist-pkg/render/viewports.js +83 -114
- package/dist-pkg/render/viz-axes-labels.d.ts +47 -0
- package/dist-pkg/render/viz-axes-labels.js +88 -0
- package/dist-pkg/render/viz-axes.d.ts +80 -86
- package/dist-pkg/render/viz-axes.js +115 -116
- package/dist-pkg/render/viz-modes.d.ts +28 -29
- package/dist-pkg/render/viz-modes.js +40 -45
- package/dist-pkg/render/viz-refusal.d.ts +32 -0
- package/dist-pkg/render/viz-refusal.js +57 -0
- package/dist-pkg/render/viz-setters.d.ts +104 -66
- package/dist-pkg/render/viz-setters.js +182 -191
- package/dist-pkg/ui/aac-sets.d.ts +40 -0
- package/dist-pkg/ui/aac-sets.js +49 -0
- package/dist-pkg/ui/audio-choices.d.ts +63 -0
- package/dist-pkg/ui/audio-choices.js +94 -0
- package/dist-pkg/ui/audio-rows-that-apply.d.ts +12 -0
- package/dist-pkg/ui/audio-rows-that-apply.js +43 -0
- package/dist-pkg/ui/camera-control.d.ts +6 -0
- package/dist-pkg/ui/camera-control.js +14 -0
- package/dist-pkg/ui/changed-mark.d.ts +9 -8
- package/dist-pkg/ui/changed-mark.js +22 -53
- package/dist-pkg/ui/control-choices.d.ts +37 -0
- package/dist-pkg/ui/control-choices.js +84 -0
- package/dist-pkg/ui/debug-panel.d.ts +59 -43
- package/dist-pkg/ui/debug-panel.js +68 -69
- package/dist-pkg/ui/dom.d.ts +10 -14
- package/dist-pkg/ui/dom.js +10 -47
- package/dist-pkg/ui/drawing-problems.d.ts +25 -0
- package/dist-pkg/ui/drawing-problems.js +93 -0
- package/dist-pkg/ui/eye-control.d.ts +36 -0
- package/dist-pkg/ui/eye-control.js +178 -0
- package/dist-pkg/ui/face-control.d.ts +25 -0
- package/dist-pkg/ui/face-control.js +183 -0
- package/dist-pkg/ui/focus-trap.d.ts +39 -49
- package/dist-pkg/ui/focus-trap.js +56 -65
- package/dist-pkg/ui/fonts.d.ts +118 -63
- package/dist-pkg/ui/fonts.js +267 -111
- package/dist-pkg/ui/game-options.d.ts +42 -0
- package/dist-pkg/ui/game-options.js +138 -0
- package/dist-pkg/ui/gaze-overlay.d.ts +64 -0
- package/dist-pkg/ui/gaze-overlay.js +165 -0
- package/dist-pkg/ui/hand-control.d.ts +25 -0
- package/dist-pkg/ui/hand-control.js +143 -0
- package/dist-pkg/ui/help-panel.d.ts +76 -0
- package/dist-pkg/ui/help-panel.js +232 -0
- package/dist-pkg/ui/hud-bands.d.ts +45 -0
- package/dist-pkg/ui/hud-bands.js +108 -0
- package/dist-pkg/ui/hud.d.ts +73 -70
- package/dist-pkg/ui/hud.js +94 -98
- package/dist-pkg/ui/item-announcement.d.ts +13 -12
- package/dist-pkg/ui/item-announcement.js +25 -26
- package/dist-pkg/ui/latch-refusal.d.ts +22 -21
- package/dist-pkg/ui/latch-refusal.js +37 -37
- package/dist-pkg/ui/layout.d.ts +103 -28
- package/dist-pkg/ui/layout.js +114 -99
- package/dist-pkg/ui/locale-flags.d.ts +16 -0
- package/dist-pkg/ui/locale-flags.js +30 -0
- package/dist-pkg/ui/loop-crash.d.ts +17 -17
- package/dist-pkg/ui/loop-crash.js +33 -62
- package/dist-pkg/ui/menu-intent.d.ts +32 -0
- package/dist-pkg/ui/menu-intent.js +54 -0
- package/dist-pkg/ui/menu-items.d.ts +10 -0
- package/dist-pkg/ui/menu-items.js +22 -0
- package/dist-pkg/ui/menu-nav.d.ts +60 -90
- package/dist-pkg/ui/menu-nav.js +301 -274
- package/dist-pkg/ui/mobility-choices.d.ts +26 -0
- package/dist-pkg/ui/mobility-choices.js +41 -0
- package/dist-pkg/ui/motion-choices.d.ts +31 -0
- package/dist-pkg/ui/motion-choices.js +68 -0
- package/dist-pkg/ui/motion-scene.d.ts +24 -19
- package/dist-pkg/ui/motion-scene.js +29 -61
- package/dist-pkg/ui/mount-panel.d.ts +81 -0
- package/dist-pkg/ui/mount-panel.js +61 -0
- package/dist-pkg/ui/panel-shell.d.ts +65 -31
- package/dist-pkg/ui/panel-shell.js +92 -66
- package/dist-pkg/ui/panel-widgets.d.ts +116 -0
- package/dist-pkg/ui/panel-widgets.js +208 -0
- package/dist-pkg/ui/pause-buttons.d.ts +35 -0
- package/dist-pkg/ui/pause-buttons.js +66 -0
- package/dist-pkg/ui/pause-icons.d.ts +249 -351
- package/dist-pkg/ui/pause-icons.js +614 -605
- package/dist-pkg/ui/pause-markup.d.ts +86 -0
- package/dist-pkg/ui/pause-markup.js +125 -0
- package/dist-pkg/ui/reach-notice.d.ts +22 -23
- package/dist-pkg/ui/reach-notice.js +55 -58
- package/dist-pkg/ui/scan-overlay.d.ts +23 -0
- package/dist-pkg/ui/scan-overlay.js +42 -0
- package/dist-pkg/ui/settings-aac.d.ts +68 -0
- package/dist-pkg/ui/settings-aac.js +189 -0
- package/dist-pkg/ui/settings-audio.d.ts +91 -113
- package/dist-pkg/ui/settings-audio.js +407 -405
- package/dist-pkg/ui/settings-controls.d.ts +53 -92
- package/dist-pkg/ui/settings-controls.js +143 -215
- package/dist-pkg/ui/settings-empathy.d.ts +39 -30
- package/dist-pkg/ui/settings-empathy.js +53 -60
- package/dist-pkg/ui/settings-mobility.d.ts +195 -0
- package/dist-pkg/ui/settings-mobility.js +374 -0
- package/dist-pkg/ui/settings-motion.d.ts +91 -70
- package/dist-pkg/ui/settings-motion.js +287 -198
- package/dist-pkg/ui/settings-panel.d.ts +48 -45
- package/dist-pkg/ui/settings-panel.js +164 -93
- package/dist-pkg/ui/settings-typo.d.ts +28 -76
- package/dist-pkg/ui/settings-typo.js +145 -125
- package/dist-pkg/ui/settings-visual.d.ts +29 -87
- package/dist-pkg/ui/settings-visual.js +240 -193
- package/dist-pkg/ui/shell.d.ts +113 -134
- package/dist-pkg/ui/shell.js +143 -216
- package/dist-pkg/ui/simulation-list.d.ts +27 -0
- package/dist-pkg/ui/simulation-list.js +76 -0
- package/dist-pkg/ui/simulation-over-the-world.d.ts +23 -0
- package/dist-pkg/ui/simulation-over-the-world.js +131 -0
- package/dist-pkg/ui/simulation-refusal.d.ts +5 -31
- package/dist-pkg/ui/simulation-refusal.js +8 -56
- package/dist-pkg/ui/switchable-control.d.ts +11 -0
- package/dist-pkg/ui/switchable-control.js +19 -0
- package/dist-pkg/ui/title.d.ts +4 -4
- package/dist-pkg/ui/title.js +11 -13
- package/dist-pkg/ui/top-band.d.ts +24 -0
- package/dist-pkg/ui/top-band.js +100 -0
- package/dist-pkg/ui/typo-choices.d.ts +71 -0
- package/dist-pkg/ui/typo-choices.js +84 -0
- package/dist-pkg/ui/visual-axes-panel.d.ts +11 -47
- package/dist-pkg/ui/visual-axes-panel.js +12 -94
- package/dist-pkg/ui/visual-choices.d.ts +77 -0
- package/dist-pkg/ui/visual-choices.js +107 -0
- package/dist-pkg/ui/vlibras.d.ts +33 -10
- package/dist-pkg/ui/vlibras.js +58 -81
- package/dist-pkg/ui/voice-control.d.ts +46 -0
- package/dist-pkg/ui/voice-control.js +143 -0
- package/dist-pkg/ui/voice-settings.d.ts +96 -0
- package/dist-pkg/ui/voice-settings.js +302 -0
- package/dist-pkg/ui/where-the-child-is.d.ts +31 -0
- package/dist-pkg/ui/where-the-child-is.js +70 -0
- package/docs/CREDITS.md +198 -54
- package/docs/LICENSES.md +160 -145
- package/package.json +24 -25
- package/scripts/heavy-into-the-delivery.mjs +144 -0
- package/scripts/licences/Apache-2.0.txt +176 -0
- package/scripts/licences/GPL-3.0.txt +674 -0
- package/scripts/licences/MIT.txt +17 -0
- package/scripts/licences/third-party.mjs +287 -0
- package/scripts/licences/vosk-browser.NOTICE.txt +268 -0
- package/app/public/vendor/fonts/comicneue-400.woff2 +0 -0
- package/app/public/vendor/fonts/comicneue-700.woff2 +0 -0
- package/dist-pkg/core/anel.d.ts +0 -17
- package/dist-pkg/core/anel.js +0 -31
- package/dist-pkg/core/collision.d.ts +0 -21
- package/dist-pkg/core/collision.js +0 -62
- package/dist-pkg/core/layers.d.ts +0 -63
- package/dist-pkg/core/layers.js +0 -95
- package/dist-pkg/core/letter-grid.d.ts +0 -55
- package/dist-pkg/core/letter-grid.js +0 -116
- package/dist-pkg/core/password.d.ts +0 -34
- package/dist-pkg/core/password.js +0 -205
- package/dist-pkg/core/rotulo-acessivel.d.ts +0 -17
- package/dist-pkg/core/rotulo-acessivel.js +0 -41
- package/dist-pkg/core/run-state.d.ts +0 -115
- package/dist-pkg/core/run-state.js +0 -40
- package/dist-pkg/core/tiles.d.ts +0 -12
- package/dist-pkg/core/tiles.js +0 -61
- package/dist-pkg/core/world.d.ts +0 -4
- package/dist-pkg/core/world.js +0 -58
- package/dist-pkg/input/origem-sintetica.d.ts +0 -44
- package/dist-pkg/input/origem-sintetica.js +0 -60
- package/dist-pkg/input/transporte-em-uso.d.ts +0 -101
- package/dist-pkg/input/transporte-em-uso.js +0 -130
- package/dist-pkg/platform/audio-nav.d.ts +0 -51
- package/dist-pkg/platform/audio-nav.js +0 -99
- package/dist-pkg/platform/pesados-catalogo.d.ts +0 -14
- package/dist-pkg/platform/pesados-catalogo.js +0 -177
- package/dist-pkg/platform/pesados.d.ts +0 -31
- package/dist-pkg/platform/pesados.js +0 -75
- package/dist-pkg/platform/vozes-prontas.d.ts +0 -28
- package/dist-pkg/platform/vozes-prontas.js +0 -61
- package/dist-pkg/render/camera.d.ts +0 -58
- package/dist-pkg/render/camera.js +0 -105
- package/dist-pkg/render/cenario-data.d.ts +0 -127
- package/dist-pkg/render/cenario-data.js +0 -145
- package/dist-pkg/render/city-tex.d.ts +0 -63
- package/dist-pkg/render/city-tex.js +0 -228
- package/dist-pkg/render/city-tiles.d.ts +0 -11
- package/dist-pkg/render/city-tiles.js +0 -140
- package/dist-pkg/render/draw.d.ts +0 -149
- package/dist-pkg/render/draw.js +0 -231
- package/dist-pkg/render/fx.d.ts +0 -63
- package/dist-pkg/render/fx.js +0 -123
- package/dist-pkg/render/minimap.d.ts +0 -11
- package/dist-pkg/render/minimap.js +0 -94
- package/dist-pkg/render/parallax.d.ts +0 -85
- package/dist-pkg/render/parallax.js +0 -158
- package/dist-pkg/render/player-anim.d.ts +0 -71
- package/dist-pkg/render/player-anim.js +0 -152
- package/dist-pkg/render/recycling-tex.d.ts +0 -48
- package/dist-pkg/render/recycling-tex.js +0 -164
- package/dist-pkg/render/scene-city.d.ts +0 -77
- package/dist-pkg/render/scene-city.js +0 -181
- package/dist-pkg/render/scene-parallax.d.ts +0 -72
- package/dist-pkg/render/scene-parallax.js +0 -426
- package/dist-pkg/render/scene-sky.d.ts +0 -126
- package/dist-pkg/render/scene-sky.js +0 -295
- package/dist-pkg/render/set-cenario.d.ts +0 -54
- package/dist-pkg/render/set-cenario.js +0 -103
- package/dist-pkg/render/textures.d.ts +0 -75
- package/dist-pkg/render/textures.js +0 -240
- package/dist-pkg/render/title-scene.d.ts +0 -46
- package/dist-pkg/render/title-scene.js +0 -75
- package/dist-pkg/render/weather.d.ts +0 -96
- package/dist-pkg/render/weather.js +0 -171
- package/dist-pkg/render/wheelchair-sprites.d.ts +0 -32
- package/dist-pkg/render/wheelchair-sprites.js +0 -69
- package/dist-pkg/render/world-tex.d.ts +0 -18
- package/dist-pkg/render/world-tex.js +0 -87
- package/dist-pkg/ui/activities-menu.d.ts +0 -258
- package/dist-pkg/ui/activities-menu.js +0 -648
- package/dist-pkg/ui/caa-sets.d.ts +0 -39
- package/dist-pkg/ui/caa-sets.js +0 -65
- package/dist-pkg/ui/map-hub.d.ts +0 -56
- package/dist-pkg/ui/map-hub.js +0 -138
- package/dist-pkg/ui/settings-caa.d.ts +0 -45
- package/dist-pkg/ui/settings-caa.js +0 -137
- package/dist-pkg/ui/settings-motor.d.ts +0 -175
- package/dist-pkg/ui/settings-motor.js +0 -342
- package/dist-pkg/ui/webcam.d.ts +0 -7
- package/dist-pkg/ui/webcam.js +0 -93
package/dist-pkg/render/draw.js
DELETED
|
@@ -1,231 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: AGPL-3.0-or-later
|
|
2
|
-
// render/draw.ts — O QUADRO. Onde a câmera para e o que é carimbado nela, uma vez por tick, depois que
|
|
3
|
-
// `update()` já simulou o mundo. Extraído verbatim do game.js (`placeCam` + `draw`), mais a aplicação da
|
|
4
|
-
// textura escolhida no sprite do jogador (a última linha do antigo `stepPlayer`).
|
|
5
|
-
//
|
|
6
|
-
// O QUE ENTROU
|
|
7
|
-
// · `placeCam(pl)` — a câmera: enquadra o jogador, CLAMPA nas bordas do mundo, aplica o tremor de tela
|
|
8
|
-
// (render/fx.shakeAmp) RE-CLAMPANDO (senão o tremor mostraria o vazio fora do mapa),
|
|
9
|
-
// arredonda para pixel inteiro (o jogo é 320×180: meio pixel é tremulação) e
|
|
10
|
-
// reposiciona o parallax. Devolve `{camX,camY}` PRÉ-arredondamento, que é o que o
|
|
11
|
-
// minimapa usa para marcar o que já foi visto.
|
|
12
|
-
// · `drawFrame()` — o quadro inteiro: transform dos sprites de jogador (squash&stretch com easing,
|
|
13
|
-
// ancorado nos pés + piscada de dano), elevadores, partículas, bengala, cadeira de
|
|
14
|
-
// rodas, hitbox tolerante do modo Fácil, e ENTÃO um dos DOIS caminhos de câmera
|
|
15
|
-
// (tela única direta vs. multi-tela com uma render-texture por viewport), clima e HUD.
|
|
16
|
-
// · `animatePlayer()` — chama a decisão de quadro (render/player-anim) e a aplica no sprite, passando pelo
|
|
17
|
-
// recolor do modo de visão (`playerVizTex`).
|
|
18
|
-
//
|
|
19
|
-
// POR QUE A FRONTEIRA CAIU AQUI
|
|
20
|
-
// `placeCam` e `draw` são inseparáveis: os DOIS caminhos de câmera do `draw` chamam `placeCam`, e o de
|
|
21
|
-
// multi-tela depende do efeito colateral dela (mover `camera` antes de cada `renderer.render`). Separá-los
|
|
22
|
-
// só produziria dois módulos que se importam. Já `animatePlayer` veio junto por outro motivo: a escolha do
|
|
23
|
-
// quadro é pura e mora em render/player-anim.ts, mas APLICÁ-LA toca um `PIXI.Sprite` e o cache de recolor de
|
|
24
|
-
// render/viewports — exatamente o tipo de coisa que este módulo já faz. Deixá-la no game.js manteria lá uma
|
|
25
|
-
// linha órfã de render dentro de uma função de lógica de jogo.
|
|
26
|
-
//
|
|
27
|
-
// O QUE FICOU DE FORA, E POR QUÊ
|
|
28
|
-
// · `configureRender()` — a MONTAGEM do multi-tela (criar/destruir as render-textures, os sprites de
|
|
29
|
-
// viewport, as molduras e as bolinhas). É ciclo de vida do render-graph, não desenho de quadro; e vive
|
|
30
|
-
// colada ao `app.renderer.resize` e ao HUD. Fica no game.js para uma rodada própria.
|
|
31
|
-
// · `updateParallax()` — mexe nos `TilingSprite` criados no game.js e na decor de tela da v3; entra
|
|
32
|
-
// injetada.
|
|
33
|
-
// · `applySharedTextures()` (render/viz-setters) e `renderVpOverlay()` (render/viewports) — já são módulos;
|
|
34
|
-
// entram injetados porque suas instâncias são criadas no game.js.
|
|
35
|
-
// · A coleta de moedas, os power-ups e o portão que precediam a animação no `stepPlayer`: são LÓGICA DE
|
|
36
|
-
// JOGO (dependem de `coins`, `powerups`, `gate`, quiz e HUD) e continuam no game.js.
|
|
37
|
-
//
|
|
38
|
-
// INJEÇÃO — a regra e as EXCEÇÕES conscientes
|
|
39
|
-
// Vale a regra da casa: o que o game.js REATRIBUI entra por getter; o que é estável entra por valor. Daí
|
|
40
|
-
// `getVpTex` (o `let vpTex` que `configureRender` troca a cada mudança de nº de telas), `isWheelchair`
|
|
41
|
-
// (`let wheelchair`), `getFxClock` (`let fxClock`, o relógio do cintilar) e `getPowerups` (`let powerups`)
|
|
42
|
-
// serem GETTERS. `rm` (o objeto de Movimento Reduzido) é `const` e mutado IN PLACE → entra por valor.
|
|
43
|
-
//
|
|
44
|
-
// EXCEÇÃO (desvio consciente da instrução de recorte, que pedia getters também para `numPlayers`, `coins` e
|
|
45
|
-
// `players`): esses três são `export let` de core/state.ts, ou seja, BINDINGS VIVOS de ES Modules. Importá-los
|
|
46
|
-
// aqui já entrega o valor atual a cada leitura — `setNumPlayersValue`/`setCoins` são vistos na hora, sem
|
|
47
|
-
// getter. Getter aqui não acrescentaria correção, só uma indireção a mais e um ctx maior; e o precedente do
|
|
48
|
-
// repositório é este (game/coin-spawning.ts importa `coins`+`setCoins` direto; game/physics.ts importa
|
|
49
|
-
// `players`). A regra do getter vale para o que mora no ESCOPO PRIVADO do game.js, que módulo nenhum enxerga.
|
|
50
|
-
//
|
|
51
|
-
// PIXI POR INTERFACE ESTRUTURAL, não por `import * as PIXI` — mesmo precedente de render/viewports.ts e
|
|
52
|
-
// render/scene-sky.ts. `camera`, `renderer`, as camadas de `Graphics` e os sprites entram como interfaces com
|
|
53
|
-
// só os membros que este módulo toca, para o arquivo carregar no project `node` do Vitest.
|
|
54
|
-
// Pelo mesmo motivo, os colaboradores que importam PIXI (game/level-geometry.drawElevators,
|
|
55
|
-
// render/minimap.*) entram por closure em vez de import: o game.js já tem as camadas deles em mão.
|
|
56
|
-
// São importados direto só os módulos-folha node-safe: constantes, RNG, render/fx, render/wheelchair-sprites,
|
|
57
|
-
// render/viz-modes, game/powerups, game/coin-spawning e core/state.
|
|
58
|
-
//
|
|
59
|
-
// ORDEM DE BOOT: `initDraw` não faz I/O nem toca o render-graph — só fecha closures. Pode ser chamada em
|
|
60
|
-
// qualquer ponto do game.js posterior às camadas de `Graphics`, à `camera` e ao `app`; o resto do ctx é
|
|
61
|
-
// função e resolve tarde. Ver docs/5-Refactoring/plano-modularizacao-mapa.md (C1).
|
|
62
|
-
import { LOGICAL_W, LOGICAL_H, EASY } from '../core/constants.js';
|
|
63
|
-
// A corrente da DECORACAO, nao a do jogo: uma particula sorteada aqui nao pode mover o sorteio
|
|
64
|
-
// das moedas. Ver o cabecalho de core/rng.ts (issue #107).
|
|
65
|
-
import { rngDecoracao } from '../core/rng.js';
|
|
66
|
-
const rnd = rngDecoracao.rnd;
|
|
67
|
-
import { JUICE, easeOut3, shakeAmp, drawFx } from './fx.js';
|
|
68
|
-
import { criarCamera } from './camera.js';
|
|
69
|
-
import { drawCane, drawRunCane, drawChair } from './wheelchair-sprites.js';
|
|
70
|
-
import { chaveDeTextura, ehBaixaVisao } from './viz-axes.js';
|
|
71
|
-
// (`game/powerups` e `game/coin-spawning` SAÍRAM daqui no item 19 — ver o bloco "ITENS DECLARADOS" abaixo.)
|
|
72
|
-
import { drawWeather } from './weather.js';
|
|
73
|
-
import { choosePlayerFrame } from './player-anim.js';
|
|
74
|
-
export function initDraw(ctx) {
|
|
75
|
-
/* ===================== câmera ===================== */
|
|
76
|
-
// A CONTA saiu para `render/camera` (item 22: M1 extraiu as fórmulas, M2 as embrulhou num OBJETO). Aqui
|
|
77
|
-
// ficou o CARIMBO dela no render-graph: o sorteio do tremor, a escrita no container e o aviso ao parallax.
|
|
78
|
-
//
|
|
79
|
-
// ========================= UMA CÂMERA POR JOGADOR, E POR QUÊ AGORA =========================
|
|
80
|
-
// O caminho multi-tela chama `placeCam(PLS[i])` para CADA jogador dentro do MESMO quadro. Com uma câmera
|
|
81
|
-
// só, a posição do jogador i entraria como ponto de partida da do jogador i+1. Hoje isso não daria em
|
|
82
|
-
// nada — com zona-morta 0×0 a câmera é sem memória e `seguir` equivale a `enquadrar`, letra por letra
|
|
83
|
-
// (`tests/camera.node.test.js` prende essa igualdade). No dia em que a zona deixar de ser zero, daria: as
|
|
84
|
-
// câmeras dos jogadores se puxariam. É mais barato separar antes de o defeito existir do que depois, e
|
|
85
|
-
// separar agora não muda um pixel do que a criança vê.
|
|
86
|
-
//
|
|
87
|
-
// ⚠️ `pular()` AINDA NÃO TEM CHAMADOR. Ele é para nascer/renascer/trocar de fase, e enquanto a zona é zero
|
|
88
|
-
// não faz falta nenhuma — `seguir` já centra. Quando o Dev escolher uma zona, o nascimento sem `pular`
|
|
89
|
-
// aparece como um deslize da câmera até o jogador no primeiro quadro da fase. Fica anotado aqui, e não
|
|
90
|
-
// fingido de resolvido.
|
|
91
|
-
const cams = new Map();
|
|
92
|
-
const camDe = (i) => {
|
|
93
|
-
let c = cams.get(i);
|
|
94
|
-
if (!c) {
|
|
95
|
-
c = criarCamera({ w: ctx.WORLD_PX_W(), h: ctx.WORLD_PX_H() }, { w: LOGICAL_W, h: LOGICAL_H });
|
|
96
|
-
cams.set(i, c);
|
|
97
|
-
}
|
|
98
|
-
// O mundo muda de tamanho ao trocar de fase, e a câmera não é avisada por ninguém — reprender todo quadro
|
|
99
|
-
// custa duas contas e dispensa um evento que hoje não existe.
|
|
100
|
-
else
|
|
101
|
-
c.redimensionar({ w: ctx.WORLD_PX_W(), h: ctx.WORLD_PX_H() }, { w: LOGICAL_W, h: LOGICAL_H });
|
|
102
|
-
return c;
|
|
103
|
-
};
|
|
104
|
-
function placeCam(pl, i = 0) {
|
|
105
|
-
const c = camDe(i);
|
|
106
|
-
// `pl.y` é o PÉ do jogador; o meio do corpo fica meia caixa acima. Esta conversão é a única coisa de
|
|
107
|
-
// PLATAFORMA que havia no enquadramento, e agora ela mora aqui, onde o corpo existe — e não na câmera.
|
|
108
|
-
c.seguir(pl.x, pl.y - ctx.BOX.h / 2);
|
|
109
|
-
const k = shakeAmp(); // JUICE: tremor decai linearmente (render/fx)
|
|
110
|
-
// Os dois sorteios ficam DENTRO do `if`, como no original: com `k === 0` ele não chamava `rnd()`, e
|
|
111
|
-
// chamá-lo duas vezes por quadro deslocaria o fluxo do gerador COMPARTILHADO — mesma semente, outro jogo.
|
|
112
|
-
const cam = k > 0 ? c.quadro(k, rnd() * 2 - 1, rnd() * 2 - 1) : c.base;
|
|
113
|
-
ctx.camera.x = -Math.round(cam.camX);
|
|
114
|
-
ctx.camera.y = -Math.round(cam.camY);
|
|
115
|
-
ctx.updateParallax(cam.camX, cam.camY);
|
|
116
|
-
return cam;
|
|
117
|
-
}
|
|
118
|
-
/* ===================== animação do personagem ===================== */
|
|
119
|
-
function animatePlayer(pl, dt, dir) {
|
|
120
|
-
const tx = choosePlayerFrame(pl, {
|
|
121
|
-
dt, dir, wheelchair: ctx.isWheelchair(), held: ctx.held, rnd, tex: ctx.playerTextures(),
|
|
122
|
-
});
|
|
123
|
-
// solo/default; no MP o drawFrame troca a textura por viewport (applySharedTextures)
|
|
124
|
-
// ⚠️ `chaveDeTextura` E NÃO A ASSINATURA DE `playerVizTex`. Medido na etapa 0 da #104: aquela função só
|
|
125
|
-
// age quando existe `DIRECT_CFG[mode]`, e devolve a textura como veio para todo o resto. Então o que
|
|
126
|
-
// muda é o CHAMADOR — a metade do estado que interessa à textura — e a porta fica onde estava.
|
|
127
|
-
if (pl.sprite)
|
|
128
|
-
pl.sprite.texture = ctx.playerVizTex(tx, chaveDeTextura(pl.visual));
|
|
129
|
-
return tx;
|
|
130
|
-
}
|
|
131
|
-
/* ===================== o quadro ===================== */
|
|
132
|
-
function drawFrame() {
|
|
133
|
-
const PLS = ctx.getPlayers();
|
|
134
|
-
for (const pl of PLS) {
|
|
135
|
-
if (!pl.sprite)
|
|
136
|
-
continue;
|
|
137
|
-
pl.sprite.x = pl.x;
|
|
138
|
-
pl.sprite.y = pl.y + 1;
|
|
139
|
-
// JUICE: squash&stretch com easing, ancorado nos pés
|
|
140
|
-
const q = (JUICE.squash && !pl.rmWalk && (pl.sqT || 0) > 0) ? (pl.sq || 0) * easeOut3((pl.sqT || 0) / 8) : 0;
|
|
141
|
-
// sem escala procedural de respiração (parecia mastigar) — respiração é por FRAMES
|
|
142
|
-
pl.sprite.scale.set((pl.facing < 0 ? -1 : 1) * (1 - q * 0.7), 1 + q);
|
|
143
|
-
pl.sprite.alpha = pl.hurtTimer > 0 ? (Math.floor(pl.hurtTimer / 4) % 2 ? 0.4 : 1) : 1;
|
|
144
|
-
}
|
|
145
|
-
ctx.drawElevators(); // cadeirante: plataforma do elevador sob os pés (largo/fino)
|
|
146
|
-
drawFx(); // JUICE: partículas (poeira/brilhos) na camada acima dos players
|
|
147
|
-
const shimOn = JUICE.shimmer && !ctx.rm.items; // JUICE: cintilar dos itens (respeita Movimento Reduzido)
|
|
148
|
-
const fxClock = ctx.getFxClock();
|
|
149
|
-
// modo cego: bengala SÓ andando (corrida = bengala de roda); nada parado/nadando/voando/escada
|
|
150
|
-
ctx.caneLayer.clear();
|
|
151
|
-
for (const pl of PLS) {
|
|
152
|
-
if (!ctx.caneOn(pl) || !pl.sprite || !pl.sprite.visible)
|
|
153
|
-
continue;
|
|
154
|
-
if (pl.running)
|
|
155
|
-
drawRunCane(ctx.caneLayer, pl);
|
|
156
|
-
else if (pl.walking)
|
|
157
|
-
drawCane(ctx.caneLayer, pl);
|
|
158
|
-
}
|
|
159
|
-
// cadeirante: desenha a cadeira nos jogadores (exceto nadando/voando)
|
|
160
|
-
ctx.chairLayer.clear();
|
|
161
|
-
if (ctx.isWheelchair()) {
|
|
162
|
-
for (const pl of PLS) {
|
|
163
|
-
if (pl.sprite && pl.sprite.visible && !pl.inWater && !pl.flying)
|
|
164
|
-
drawChair(ctx.chairLayer, pl);
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
// Fácil: hitbox de coleta tolerante (retângulo translúcido) — só para os jogadores em Fácil
|
|
168
|
-
ctx.easyHitbox.clear();
|
|
169
|
-
const pad = EASY.pad;
|
|
170
|
-
for (const pl of PLS) {
|
|
171
|
-
if (!pl.easy)
|
|
172
|
-
continue;
|
|
173
|
-
ctx.easyHitbox.lineStyle(1, 0xffffff, 0.45);
|
|
174
|
-
ctx.easyHitbox.beginFill(0xffffff, 0.10);
|
|
175
|
-
ctx.easyHitbox.drawRect(pl.x - ctx.BOX.w / 2 - pad, pl.y - ctx.BOX.h - pad, ctx.BOX.w + 2 * pad, ctx.BOX.h + 2 * pad);
|
|
176
|
-
ctx.easyHitbox.endFill();
|
|
177
|
-
}
|
|
178
|
-
if (ctx.getNumPlayers() <= 1) {
|
|
179
|
-
// O CINTILAR fica: é juice da engine (render/fx), e vale para moeda, estrela ou peça de tabuleiro.
|
|
180
|
-
const itens = ctx.getItemSprites();
|
|
181
|
-
for (let j = 0; j < itens.length; j++) {
|
|
182
|
-
const s = itens[j];
|
|
183
|
-
if (s)
|
|
184
|
-
s.alpha = shimOn ? 0.8 + 0.2 * Math.sin(fxClock * 0.12 + j * 1.7) : 1;
|
|
185
|
-
}
|
|
186
|
-
const { camX, camY } = placeCam(PLS[0]);
|
|
187
|
-
ctx.markSeen(camX, camY);
|
|
188
|
-
ctx.redrawMinimapIfDirty();
|
|
189
|
-
ctx.drawMinimapPlayer(PLS[0].x, PLS[0].y - ctx.BOX.h / 2);
|
|
190
|
-
}
|
|
191
|
-
else {
|
|
192
|
-
// Otimização: se TODOS estão no mesmo modo (caso comum), troca as texturas UMA vez; senão, por viewport.
|
|
193
|
-
// ⚠️ A COMPARAÇÃO PASSOU A SER PELA CHAVE DE TEXTURA, e isso é output-preservador e mais barato ao
|
|
194
|
-
// mesmo tempo. `applySharedTextures` só usa o modo para escolher TEXTURA (`worldTexFor`,
|
|
195
|
-
// `parallaxTexFor`, `treeTexFor`, `spriteTexFor`, `pupTexFor`), e todas devolvem a base para o que não
|
|
196
|
-
// está em `DIRECT_CFG` — conferido em `high-contrast.worldTexFor`. Antes, dois jogadores em `normal` e
|
|
197
|
-
// `fix-deuter` contavam como modos DIFERENTES e disparavam uma re-aplicação de texturas que produzia
|
|
198
|
-
// exactamente as mesmas texturas. Agora contam como iguais, porque para a textura eles são.
|
|
199
|
-
const v0 = chaveDeTextura(PLS[0].visual);
|
|
200
|
-
const allSame = PLS.every((p) => chaveDeTextura(p.visual) === v0);
|
|
201
|
-
const anyOverlay = PLS.some((p) => ehBaixaVisao(p.visual));
|
|
202
|
-
if (allSame)
|
|
203
|
-
ctx.applySharedTextures(v0);
|
|
204
|
-
for (let i = 0, n = ctx.getNumPlayers(); i < n; i++) {
|
|
205
|
-
const viz = chaveDeTextura(PLS[i].visual);
|
|
206
|
-
if (!allSame)
|
|
207
|
-
ctx.applySharedTextures(viz); // só troca por viewport quando os modos diferem
|
|
208
|
-
const itens2 = ctx.getItemSprites();
|
|
209
|
-
for (let j = 0; j < itens2.length; j++) {
|
|
210
|
-
const s = itens2[j];
|
|
211
|
-
if (!s)
|
|
212
|
-
continue;
|
|
213
|
-
s.visible = ctx.itemVisibleTo(j, i);
|
|
214
|
-
// Lote C: item alheio esmaecido — quem é "alheio" é o jogo que diz; JUICE: cintilar multiplicativo
|
|
215
|
-
s.alpha = (ctx.itemOwnedBy(j, i) ? 1 : 0.4) * (shimOn ? 0.8 + 0.2 * Math.sin(fxClock * 0.12 + j * 1.7) : 1);
|
|
216
|
-
}
|
|
217
|
-
for (const pu of ctx.getPowerups()) {
|
|
218
|
-
if (pu.sprite)
|
|
219
|
-
pu.sprite.visible = ctx.powerupVisibleTo(pu, i);
|
|
220
|
-
}
|
|
221
|
-
placeCam(PLS[i], i);
|
|
222
|
-
ctx.renderizarEm(ctx.camera, ctx.getVpTex()[i], true); // LIMPA: cada quadro é um quadro, não um acúmulo
|
|
223
|
-
if (anyOverlay)
|
|
224
|
-
ctx.renderVpOverlay(i, viz); // passada extra só se algum jogador está em baixa visão
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
drawWeather(); // chuva/clarão em tela-espaço, sobre tudo
|
|
228
|
-
ctx.updateGameHud(); // HUD por jogador (moedas + poder) em DOM sobreposto (alta definição)
|
|
229
|
-
}
|
|
230
|
-
return { placeCam, drawFrame, animatePlayer };
|
|
231
|
-
}
|
package/dist-pkg/render/fx.d.ts
DELETED
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: AGPL-3.0-or-later
|
|
2
|
-
export interface Particle {
|
|
3
|
-
x: number;
|
|
4
|
-
y: number;
|
|
5
|
-
vx: number;
|
|
6
|
-
vy: number;
|
|
7
|
-
life: number;
|
|
8
|
-
max: number;
|
|
9
|
-
color: number;
|
|
10
|
-
size: number;
|
|
11
|
-
g: number;
|
|
12
|
-
}
|
|
13
|
-
export interface JuiceFlags {
|
|
14
|
-
dust: boolean;
|
|
15
|
-
sparkle: boolean;
|
|
16
|
-
squash: boolean;
|
|
17
|
-
hitstop: boolean;
|
|
18
|
-
shake: boolean;
|
|
19
|
-
shimmer: boolean;
|
|
20
|
-
}
|
|
21
|
-
/** Juice toggles (persisted in localStorage; edited in the ?debug panel + Sensibilidade → Movimento). */
|
|
22
|
-
export declare const JUICE: JuiceFlags;
|
|
23
|
-
export declare function saveJuice(): void;
|
|
24
|
-
/** Standard easing (squash recovery, particle fade). Shared → exported (game.js render reads it too). */
|
|
25
|
-
export declare const easeOut3: (t: number) => number;
|
|
26
|
-
/** Minimal PIXI.Graphics surface drawFx needs (kept structural so the module stays PIXI-free for node tests). */
|
|
27
|
-
interface FxGraphics {
|
|
28
|
-
clear(): void;
|
|
29
|
-
beginFill(color: number, alpha?: number): unknown;
|
|
30
|
-
drawRect(x: number, y: number, w: number, h: number): unknown;
|
|
31
|
-
endFill(): unknown;
|
|
32
|
-
}
|
|
33
|
-
interface ReducedMotion {
|
|
34
|
-
particles?: boolean;
|
|
35
|
-
parallax?: boolean;
|
|
36
|
-
}
|
|
37
|
-
interface Squashable {
|
|
38
|
-
rmWalk?: boolean;
|
|
39
|
-
sq?: number;
|
|
40
|
-
sqT?: number;
|
|
41
|
-
}
|
|
42
|
-
export declare function initFx(deps: {
|
|
43
|
-
fxG: FxGraphics;
|
|
44
|
-
rm: ReducedMotion;
|
|
45
|
-
getPlayers: () => readonly unknown[];
|
|
46
|
-
}): void;
|
|
47
|
-
export declare function spawnParticle(x: number, y: number, vx: number, vy: number, life: number, color: number, size: number, grav?: number): void;
|
|
48
|
-
export declare function puffDust(x: number, y: number, n: number): void;
|
|
49
|
-
export declare function burstSparkle(x: number, y: number, color?: number, n?: number): void;
|
|
50
|
-
export declare function addShake(mag: number, dur: number): void;
|
|
51
|
-
export declare function addHitstop(t: number): void;
|
|
52
|
-
export declare function setSquash(pl: Squashable, amt: number): void;
|
|
53
|
-
/** Advance particles + decay shake/squash. (fxClock is stepped by game.js — see header.) */
|
|
54
|
-
export declare function stepFx(dt: number): void;
|
|
55
|
-
export declare function drawFx(): void;
|
|
56
|
-
/** Decrement hit-stop and report whether the world is still frozen (game.js early-returns on true). */
|
|
57
|
-
export declare function tickHitstop(dt: number): boolean;
|
|
58
|
-
/** Current screen-shake amplitude (0 = none); the camera applies the random jitter. */
|
|
59
|
-
export declare function shakeAmp(): number;
|
|
60
|
-
export declare const getParticles: () => Particle[];
|
|
61
|
-
export declare const getHitstopT: () => number;
|
|
62
|
-
export declare const getShakeT: () => number;
|
|
63
|
-
export {};
|
package/dist-pkg/render/fx.js
DELETED
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: AGPL-3.0-or-later
|
|
2
|
-
// render/fx — Juice / micro-feedback (Estágio 4, Tier 2): particles (dust/sparkle), screen shake, hit-stop,
|
|
3
|
-
// squash&stretch, + the JUICE toggles. Formulas are verbatim from game.js (behavior-preserving). The reduce-
|
|
4
|
-
// motion flags (`rm`), the PIXI graphics layer (`fxG`) and the round's player list are INJECTED via initFx.
|
|
5
|
-
// `fxClock` is NOT here — it is a general animation clock (coin shimmer reads it) and stays in game.js.
|
|
6
|
-
// Shake/hit-stop state is read by the camera/update/__incl via getters. See docs/5-Refactoring/plano-modularizacao-mapa.md.
|
|
7
|
-
// A corrente da DECORACAO, nao a do jogo: uma particula sorteada aqui nao pode mover o sorteio
|
|
8
|
-
// das moedas. Ver o cabecalho de core/rng.ts (issue #107).
|
|
9
|
-
import { rngDecoracao } from '../core/rng.js';
|
|
10
|
-
const rnd = rngDecoracao.rnd;
|
|
11
|
-
import * as store from '../platform/storage.js';
|
|
12
|
-
/** Juice toggles (persisted in localStorage; edited in the ?debug panel + Sensibilidade → Movimento). */
|
|
13
|
-
export const JUICE = (() => {
|
|
14
|
-
const d = { dust: true, sparkle: true, squash: true, hitstop: true, shake: true, shimmer: true };
|
|
15
|
-
const s = store.getJSON(store.KEYS.juice, null);
|
|
16
|
-
if (s && typeof s === 'object')
|
|
17
|
-
for (const k of Object.keys(d))
|
|
18
|
-
if (k in s)
|
|
19
|
-
d[k] = !!s[k];
|
|
20
|
-
return d;
|
|
21
|
-
})();
|
|
22
|
-
export function saveJuice() {
|
|
23
|
-
store.setJSON(store.KEYS.juice, JUICE);
|
|
24
|
-
}
|
|
25
|
-
/** Standard easing (squash recovery, particle fade). Shared → exported (game.js render reads it too). */
|
|
26
|
-
export const easeOut3 = (t) => 1 - Math.pow(1 - t, 3);
|
|
27
|
-
let particles = [];
|
|
28
|
-
let hitstopT = 0, shakeT = 0, shakeDur = 1, shakeMag = 0;
|
|
29
|
-
let fxG = null;
|
|
30
|
-
let rm = {};
|
|
31
|
-
// A LISTA DE JOGADORES entra por injeção desde 2026-08-26. Era `numPlayers`, um `let` de `core/state`
|
|
32
|
-
// importado como binding vivo — e um `let` de módulo é compartilhado por qualquer segundo jogo que a
|
|
33
|
-
// mesma página carregue (D13 do `demos`, ADR-0038). O que entra aqui é o GETTER da rodada que a raiz
|
|
34
|
-
// possui; o `let` que sobra guarda a função, não a lista.
|
|
35
|
-
let getPlayers = () => [];
|
|
36
|
-
export function initFx(deps) {
|
|
37
|
-
fxG = deps.fxG;
|
|
38
|
-
rm = deps.rm;
|
|
39
|
-
getPlayers = deps.getPlayers;
|
|
40
|
-
}
|
|
41
|
-
export function spawnParticle(x, y, vx, vy, life, color, size, grav) {
|
|
42
|
-
if (particles.length >= 160)
|
|
43
|
-
particles.shift();
|
|
44
|
-
particles.push({ x, y, vx, vy, life, max: life, color, size, g: grav || 0 });
|
|
45
|
-
}
|
|
46
|
-
export function puffDust(x, y, n) {
|
|
47
|
-
if (!JUICE.dust || rm.particles)
|
|
48
|
-
return;
|
|
49
|
-
for (let i = 0; i < n; i++)
|
|
50
|
-
spawnParticle(x + (rnd() - 0.5) * 8, y - 1 - rnd() * 2, (rnd() - 0.5) * 0.9, -0.2 - rnd() * 0.4, 14 + rnd() * 10, 0xcfc6b8, rnd() < 0.4 ? 2 : 1, 0.02);
|
|
51
|
-
}
|
|
52
|
-
export function burstSparkle(x, y, color, n) {
|
|
53
|
-
if (!JUICE.sparkle || rm.particles)
|
|
54
|
-
return;
|
|
55
|
-
const N = n || 8;
|
|
56
|
-
for (let i = 0; i < N; i++) {
|
|
57
|
-
const a = (i / N) * Math.PI * 2 + rnd() * 0.5, sp = 0.5 + rnd() * 0.9;
|
|
58
|
-
spawnParticle(x, y, Math.cos(a) * sp, Math.sin(a) * sp - 0.3, 18 + rnd() * 12, color || 0xffd23f, rnd() < 0.5 ? 2 : 1, 0.015);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
export function addShake(mag, dur) {
|
|
62
|
-
if (!JUICE.shake || rm.parallax)
|
|
63
|
-
return;
|
|
64
|
-
shakeMag = Math.max(shakeMag, mag);
|
|
65
|
-
shakeDur = dur;
|
|
66
|
-
shakeT = Math.max(shakeT, dur);
|
|
67
|
-
}
|
|
68
|
-
export function addHitstop(t) {
|
|
69
|
-
if (!JUICE.hitstop)
|
|
70
|
-
return;
|
|
71
|
-
hitstopT = Math.max(hitstopT, t);
|
|
72
|
-
}
|
|
73
|
-
export function setSquash(pl, amt) {
|
|
74
|
-
if (!JUICE.squash || pl.rmWalk)
|
|
75
|
-
return;
|
|
76
|
-
pl.sq = Math.max(-0.28, Math.min(0.2, amt));
|
|
77
|
-
pl.sqT = 8;
|
|
78
|
-
}
|
|
79
|
-
/** Advance particles + decay shake/squash. (fxClock is stepped by game.js — see header.) */
|
|
80
|
-
export function stepFx(dt) {
|
|
81
|
-
if (shakeT > 0)
|
|
82
|
-
shakeT = Math.max(0, shakeT - dt);
|
|
83
|
-
for (const pl of getPlayers())
|
|
84
|
-
if (pl.sqT && pl.sqT > 0)
|
|
85
|
-
pl.sqT = Math.max(0, pl.sqT - dt);
|
|
86
|
-
for (let i = particles.length - 1; i >= 0; i--) {
|
|
87
|
-
const p = particles[i];
|
|
88
|
-
p.life -= dt;
|
|
89
|
-
if (p.life <= 0) {
|
|
90
|
-
particles.splice(i, 1);
|
|
91
|
-
continue;
|
|
92
|
-
}
|
|
93
|
-
p.vy += p.g * dt;
|
|
94
|
-
p.x += p.vx * dt;
|
|
95
|
-
p.y += p.vy * dt;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
export function drawFx() {
|
|
99
|
-
if (!fxG)
|
|
100
|
-
return;
|
|
101
|
-
fxG.clear();
|
|
102
|
-
for (const p of particles) {
|
|
103
|
-
const f = p.life / p.max;
|
|
104
|
-
fxG.beginFill(p.color, 0.9 * easeOut3(f));
|
|
105
|
-
fxG.drawRect(p.x - p.size / 2, p.y - p.size / 2, p.size, p.size);
|
|
106
|
-
fxG.endFill();
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
/** Decrement hit-stop and report whether the world is still frozen (game.js early-returns on true). */
|
|
110
|
-
export function tickHitstop(dt) {
|
|
111
|
-
if (hitstopT > 0) {
|
|
112
|
-
hitstopT = Math.max(0, hitstopT - dt);
|
|
113
|
-
return true;
|
|
114
|
-
}
|
|
115
|
-
return false;
|
|
116
|
-
}
|
|
117
|
-
/** Current screen-shake amplitude (0 = none); the camera applies the random jitter. */
|
|
118
|
-
export function shakeAmp() {
|
|
119
|
-
return shakeT > 0 && shakeMag > 0 ? shakeMag * (shakeT / shakeDur) : 0;
|
|
120
|
-
}
|
|
121
|
-
export const getParticles = () => particles;
|
|
122
|
-
export const getHitstopT = () => hitstopT;
|
|
123
|
-
export const getShakeT = () => shakeT;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: AGPL-3.0-or-later
|
|
2
|
-
import * as PIXI from 'pixi.js';
|
|
3
|
-
export declare function initMinimap(stage: PIXI.Container, W: number, H: number): void;
|
|
4
|
-
export declare function markSeen(camX: number, camY: number): void;
|
|
5
|
-
export declare function redrawMinimapIfDirty(): void;
|
|
6
|
-
export declare function drawMinimapPlayer(worldX: number, worldY: number): void;
|
|
7
|
-
export declare function resetMinimap(): void;
|
|
8
|
-
export declare function setMinimapCorner(touch: boolean): void;
|
|
9
|
-
export declare function setMinimapVisible(v: boolean): void;
|
|
10
|
-
export declare function getMinimap(): PIXI.Container | null;
|
|
11
|
-
export declare function minimapSeenCount(): number;
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: AGPL-3.0-or-later
|
|
2
|
-
// render/minimap.ts — minimapa com FOG-OF-WAR (Estágio 4, Tier 1). Um container PixiJS no canto do stage: fundo
|
|
3
|
-
// + tiles JÁ VISTOS (revelados pela câmera) + ponto do jogador. O que já foi visto persiste até o fim da fase.
|
|
4
|
-
// initMinimap cria os objetos (import PURO — nada de PIXI no import); markSeen revela; redrawMinimapIfDirty
|
|
5
|
-
// repinta só quando mudou; drawMinimapPlayer põe o ponto; resetMinimap re-escurece (fim de fase). Cor do tile
|
|
6
|
-
// vem de core/collision (tileAt/isSolidType). Deps: PIXI (npm), constants (TILE/LOGICAL_*), collision.
|
|
7
|
-
import * as PIXI from 'pixi.js';
|
|
8
|
-
import { LOGICAL_W, LOGICAL_H, TILE } from '../core/constants.js';
|
|
9
|
-
import { tileAt, isSolidType } from '../core/collision.js';
|
|
10
|
-
const MM_SCALE = 0.8, MM_PAD = 4;
|
|
11
|
-
let _minimap = null;
|
|
12
|
-
let _mmTiles = null, _mmPlayer = null;
|
|
13
|
-
let _seen = [];
|
|
14
|
-
let _dirty = false;
|
|
15
|
-
let _W = 0, _H = 0, _mmW = 0, _mmH = 0;
|
|
16
|
-
// Cria o container + graphics no stage e a grade de "visto" (W×H). Chamado uma vez no boot do game.js.
|
|
17
|
-
export function initMinimap(stage, W, H) {
|
|
18
|
-
_W = W;
|
|
19
|
-
_H = H;
|
|
20
|
-
_mmW = W * MM_SCALE;
|
|
21
|
-
_mmH = H * MM_SCALE;
|
|
22
|
-
_minimap = new PIXI.Container();
|
|
23
|
-
_minimap.x = MM_PAD;
|
|
24
|
-
_minimap.y = LOGICAL_H - _mmH - MM_PAD;
|
|
25
|
-
_minimap.alpha = 0.92;
|
|
26
|
-
stage.addChild(_minimap);
|
|
27
|
-
const mmBg = new PIXI.Graphics();
|
|
28
|
-
mmBg.beginFill(0x05070f, 0.72);
|
|
29
|
-
mmBg.drawRect(-1, -1, _mmW + 2, _mmH + 2);
|
|
30
|
-
mmBg.endFill();
|
|
31
|
-
_mmTiles = new PIXI.Graphics();
|
|
32
|
-
_mmPlayer = new PIXI.Graphics();
|
|
33
|
-
_minimap.addChild(mmBg, _mmTiles, _mmPlayer);
|
|
34
|
-
_seen = Array.from({ length: H }, () => new Uint8Array(W));
|
|
35
|
-
_dirty = false;
|
|
36
|
-
}
|
|
37
|
-
// Marca como visto todos os tiles dentro da janela da câmera (camX,camY = canto sup-esq do viewport, em px).
|
|
38
|
-
export function markSeen(camX, camY) {
|
|
39
|
-
const tx0 = Math.max(0, (camX / TILE) | 0), tx1 = Math.min(_W - 1, ((camX + LOGICAL_W) / TILE) | 0);
|
|
40
|
-
const ty0 = Math.max(0, (camY / TILE) | 0), ty1 = Math.min(_H - 1, ((camY + LOGICAL_H) / TILE) | 0);
|
|
41
|
-
for (let ty = ty0; ty <= ty1; ty++)
|
|
42
|
-
for (let tx = tx0; tx <= tx1; tx++)
|
|
43
|
-
if (!_seen[ty][tx]) {
|
|
44
|
-
_seen[ty][tx] = 1;
|
|
45
|
-
_dirty = true;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
// Repinta os tiles vistos SÓ se algo novo foi revelado (barato: o fog muda pouco por frame). Cor por tipo.
|
|
49
|
-
export function redrawMinimapIfDirty() {
|
|
50
|
-
if (!_dirty || !_mmTiles)
|
|
51
|
-
return;
|
|
52
|
-
_mmTiles.clear();
|
|
53
|
-
for (let ty = 0; ty < _H; ty++)
|
|
54
|
-
for (let tx = 0; tx < _W; tx++) {
|
|
55
|
-
if (!_seen[ty][tx])
|
|
56
|
-
continue;
|
|
57
|
-
const t = tileAt(tx, ty);
|
|
58
|
-
const col = isSolidType(t) ? 0x9a93b5 : (t === 3 ? 0x2f6fae : (t === 9 ? 0xff5b3a : 0x232038)); // sólido / água / lava / ar
|
|
59
|
-
_mmTiles.beginFill(col, 1);
|
|
60
|
-
_mmTiles.drawRect(tx * MM_SCALE, ty * MM_SCALE, MM_SCALE + 0.4, MM_SCALE + 0.4);
|
|
61
|
-
_mmTiles.endFill();
|
|
62
|
-
}
|
|
63
|
-
_dirty = false;
|
|
64
|
-
}
|
|
65
|
-
// Ponto do jogador (worldX,worldY em px do mundo; o game.js passa o centro do corpo).
|
|
66
|
-
export function drawMinimapPlayer(worldX, worldY) {
|
|
67
|
-
if (!_mmPlayer)
|
|
68
|
-
return;
|
|
69
|
-
_mmPlayer.clear();
|
|
70
|
-
_mmPlayer.beginFill(0xffd23f, 1);
|
|
71
|
-
_mmPlayer.drawRect((worldX / TILE) * MM_SCALE - 1, (worldY / TILE) * MM_SCALE - 1, 2.6, 2.6);
|
|
72
|
-
_mmPlayer.endFill();
|
|
73
|
-
}
|
|
74
|
-
// Fim de fase: o fog-of-war volta a escurecer (o mapa some até ser revisto).
|
|
75
|
-
export function resetMinimap() { _seen.forEach((r) => r.fill(0)); _dirty = true; }
|
|
76
|
-
// Reposiciona o minimapa: no toque vai p/ o canto sup-dir (não briga com os controles); senão inf-esq.
|
|
77
|
-
export function setMinimapCorner(touch) {
|
|
78
|
-
if (!_minimap)
|
|
79
|
-
return;
|
|
80
|
-
if (touch) {
|
|
81
|
-
_minimap.x = LOGICAL_W - _mmW - MM_PAD;
|
|
82
|
-
_minimap.y = MM_PAD;
|
|
83
|
-
}
|
|
84
|
-
else {
|
|
85
|
-
_minimap.x = MM_PAD;
|
|
86
|
-
_minimap.y = LOGICAL_H - _mmH - MM_PAD;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
export function setMinimapVisible(v) { if (_minimap)
|
|
90
|
-
_minimap.visible = v; } // some no título / no multiplayer
|
|
91
|
-
export function getMinimap() { return _minimap; } // p/ o __incl (debug/teste)
|
|
92
|
-
export function minimapSeenCount() { let n = 0; for (const r of _seen)
|
|
93
|
-
for (const v of r)
|
|
94
|
-
n += v; return n; } // stat de fog revelado
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: AGPL-3.0-or-later
|
|
2
|
-
import type { CenarioTema, TemaMorros, TemaPredios, FaixaDePredios } from './cenario-data.js';
|
|
3
|
-
import type { CriarAzulejo } from './port.js';
|
|
4
|
-
/** Uma camada de fundo: `factor` = quanto do movimento horizontal da câmera ela reproduz; `fy`, o vertical. */
|
|
5
|
-
export interface CamadaParallax {
|
|
6
|
-
key: string;
|
|
7
|
-
factor: number;
|
|
8
|
-
fy: number;
|
|
9
|
-
}
|
|
10
|
-
export declare const PARALLAX: readonly CamadaParallax[];
|
|
11
|
-
/** Índice da camada → número do arquivo PNG da Cidade (`c4.png`, `c3.png`, `c2.png`). */
|
|
12
|
-
export declare const ARQUIVO_POR_CAMADA: readonly number[];
|
|
13
|
-
/** Onde uma camada fica neste quadro. `x`/`y` = posição DENTRO do camera; `tileX`/`tileY` = rolagem da textura. */
|
|
14
|
-
export interface PosicaoParallax {
|
|
15
|
-
x: number;
|
|
16
|
-
y: number;
|
|
17
|
-
tileX: number;
|
|
18
|
-
tileY: number;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* A matemática do parallax, sem sprite nenhum.
|
|
22
|
-
*
|
|
23
|
-
* `x`/`y` = `camX`/`camY` porque o container `camera` está em `-camX`/`-camY`: a soma dá ZERO, e a camada
|
|
24
|
-
* fica parada na tela. É esse cancelamento que faz o fundo parecer fundo.
|
|
25
|
-
* `tileX`/`tileY` = `-cam * fator`: quanto MENOR o fator, menos a textura rola, mais distante a camada parece.
|
|
26
|
-
* Com `reduzido` (movimento reduzido — `rm.parallax`), a rolagem trava em zero e o fundo vira papel de
|
|
27
|
-
* parede; a contra-posição CONTINUA valendo, senão o fundo passaria a deslizar junto com o mundo — o oposto
|
|
28
|
-
* exato do que a opção existe para dar.
|
|
29
|
-
*/
|
|
30
|
-
export declare function posicoesParallax(camX: number, camY: number, camadas?: readonly CamadaParallax[], reduzido?: boolean): PosicaoParallax[];
|
|
31
|
-
/** `tilePosition` de um `TilingSprite` — só o `set`, que é como o original o escreve. */
|
|
32
|
-
interface PontoObservavel {
|
|
33
|
-
set(x: number, y: number): void;
|
|
34
|
-
}
|
|
35
|
-
/** O que tocamos de um `PIXI.TilingSprite`, e só isso. */
|
|
36
|
-
export interface TilingSpriteLike {
|
|
37
|
-
x: number;
|
|
38
|
-
y: number;
|
|
39
|
-
texture: unknown;
|
|
40
|
-
tilePosition: PontoObservavel;
|
|
41
|
-
/**
|
|
42
|
-
* A ordem-z. Este módulo NÃO a lê — quem a escreve é a raiz de composição, ao encaixar as três camadas
|
|
43
|
-
* no registro canônico do ADR-0020. Está aqui porque a interface é EXPORTADA: ela não descreve só o que
|
|
44
|
-
* o parallax toca, descreve o que ele DEVOLVE, e o consumidor precisa deste campo para posicionar.
|
|
45
|
-
*/
|
|
46
|
-
zIndex: number;
|
|
47
|
-
}
|
|
48
|
-
/** `camera` — só a inserção em posição de z fixa. */
|
|
49
|
-
interface ContainerLike {
|
|
50
|
-
addChildAt(child: unknown, index: number): unknown;
|
|
51
|
-
}
|
|
52
|
-
/** `starsG`/`skyDecoG`/`fogG`: contra-posicionados junto com o parallax. */
|
|
53
|
-
interface PosicionavelLike {
|
|
54
|
-
position: {
|
|
55
|
-
set(x: number, y: number): void;
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
export interface ParallaxCtx {
|
|
59
|
-
camera: ContainerLike;
|
|
60
|
-
criarAzulejo: CriarAzulejo<TilingSpriteLike>;
|
|
61
|
-
placeholderTex: (i: number) => unknown;
|
|
62
|
-
skyTex: (T: CenarioTema) => unknown;
|
|
63
|
-
/** themeHillsTexture — banda de morros. O `tema` escolhe a SILHUETA plantada em cima (árvores, cerca). */
|
|
64
|
-
hillsTex: (T: TemaMorros, near: boolean, tema: string) => unknown;
|
|
65
|
-
/** themeCitySkyTexture — céu + prédios distantes da Cidade, a única camada opaca dela. */
|
|
66
|
-
citySkyTex: (T: TemaPredios) => unknown;
|
|
67
|
-
/** themeSkylineTexture — uma faixa de prédios sobre transparência. */
|
|
68
|
-
skylineTex: (faixa: FaixaDePredios, semente: number) => unknown;
|
|
69
|
-
rm: {
|
|
70
|
-
parallax?: boolean;
|
|
71
|
-
};
|
|
72
|
-
getCenario: () => string;
|
|
73
|
-
getVizMode: () => string;
|
|
74
|
-
clearParallaxTexCache: () => void;
|
|
75
|
-
getDecorDeTela: () => ReadonlyArray<PosicionavelLike | null | undefined>;
|
|
76
|
-
}
|
|
77
|
-
export interface ParallaxApi {
|
|
78
|
-
layers: TilingSpriteLike[];
|
|
79
|
-
texNormal: unknown[];
|
|
80
|
-
updateParallax(camX: number, camY: number): void;
|
|
81
|
-
aplicarTemaParallax(theme: string, T: CenarioTema): void;
|
|
82
|
-
}
|
|
83
|
-
/** Cria as 3 camadas dentro do `camera` e devolve a API que as move e as veste. */
|
|
84
|
-
export declare function createParallax(ctx: ParallaxCtx): ParallaxApi;
|
|
85
|
-
export {};
|