Skip to content

Instantly share code, notes, and snippets.

View johnnylambada's full-sized avatar

John Lombardo johnnylambada

View GitHub Profile
@johnnylambada
johnnylambada / review.json
Created September 28, 2026 22:58
Begin PR 309: Does this threat dialog explain the immediate danger?
{
"schema": 1,
"build": "https://johnnylambada.github.io/starship-simulator/previews/309/builds/1be1061f9ec3a413163c8a9b6da6f4e52e5aeb6e/",
"capturedAt": "2026-09-28T22:58:45.417Z",
"origin": "played",
"question": "Does this threat dialog explain the immediate danger?",
"frame": {
"state": "{\n \"state_version\": 2,\n \"engine_version\": 0,\n \"canon\": {\n \"id\": \"trek\",\n \"hash\": \"1c5c83b263d7adce\"\n },\n \"mode\": \"play\",\n \"player\": \"Kirk\",\n \"nation\": \"n1\",\n \"enemy_nation\": \"n3\",\n \"cycle\": 13,\n \"seed\": 14,\n \"rng\": 892227365,\n \"rules\": {\n \"clamp_reverse_warp\": true,\n \"command_driven_setup\": true\n },\n \"next_id\": 18,\n \"setup\": {\n \"ally\": {\n \"n1c3\": 4\n },\n \"enemy\": {\n \"n3c2\": 3\n },\n \"flagship\": \"n1c3\"\n },\n \"flagship\": 1,\n \"objects\": [\n {\n \"id\": 1,\n \"type\": \"ship\",\n \"name\": \"Trenton\",\n \"nation\": \"n1\",\n \"class\": \"n1c3\",\n \"ally\": true,\n \"captain\": {\n \"name\": \"
@johnnylambada
johnnylambada / review.json
Created September 28, 2026 22:58
Begin PR 309: Is bank 1 and the staged target clear?
{
"schema": 1,
"build": "https://johnnylambada.github.io/starship-simulator/previews/309/builds/1be1061f9ec3a413163c8a9b6da6f4e52e5aeb6e/",
"capturedAt": "2026-09-28T22:58:43.454Z",
"origin": "played",
"question": "Is bank 1 and the staged target clear?",
"frame": {
"state": "{\n \"state_version\": 2,\n \"engine_version\": 0,\n \"canon\": {\n \"id\": \"trek\",\n \"hash\": \"1c5c83b263d7adce\"\n },\n \"mode\": \"play\",\n \"player\": \"Kirk\",\n \"nation\": \"n1\",\n \"enemy_nation\": \"n4\",\n \"cycle\": 0,\n \"seed\": 5,\n \"rng\": 3856393383,\n \"rules\": {\n \"clamp_reverse_warp\": true,\n \"command_driven_setup\": true\n },\n \"next_id\": 14,\n \"setup\": {\n \"ally\": {\n \"n1c4\": 3,\n \"n1c2\": 4\n },\n \"enemy\": {\n \"n4c3\": 4,\n \"n4c2\": 1,\n \"n4c4\": 1\n },\n \"flagship\": \"n1c4\"\n },\n \"flagship\": 1,\n \"objects\": [\n {\n \"id\": 1,\n \"type\": \"ship\",\n \"name\": \"Washington\",\n \"nation\": \"n1\",\n \"class\": \"n1c4\",\n \"ally\": true
@johnnylambada
johnnylambada / battle-setup.html
Created September 24, 2026 16:54
Begin — #108 Battle setup screen mock, first draft (self-contained)
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Begin — #108 the Battle setup screen (mock)</title>
<style>
/* ui-polish-tokens.css, inlined for the gist copy */
/* design/stations/ui-polish-tokens.css — the stylesheet the UI polish
mocks (ui-polish-*.html, issues #45–#53 of roadmap #55) share.
@johnnylambada
johnnylambada / weapons-tactical.html
Last active September 16, 2026 23:48
Begin reconciled tactical Weapons mock — issue 7
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,viewport-fit=cover">
<title>Begin — Weapons tactical mock</title>
<style>
:root {
color-scheme:dark;
--void:#05070b; --field:#080c12; --panel:#0c1119; --raised:#111925;
@johnnylambada
johnnylambada / shared-ui-foundation.html
Last active September 16, 2026 20:28
Begin shared tactical UI foundation mock — issue 21
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,viewport-fit=cover">
<title>Begin — shared tactical UI foundation</title>
<style>
:root {
color-scheme:dark;
--void:#05070b; --field:#080c12; --panel:#0c1119; --panel-raised:#111925;
@johnnylambada
johnnylambada / nav-doctrine.html
Last active September 16, 2026 18:25
Begin Navigation mid-battle UI doctrine mock — issue 15
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,viewport-fit=cover">
<title>Begin — Navigation doctrine mock</title>
<style>
:root {
color-scheme: dark;
--void:#05070b; --panel:#0a0e15; --panel2:#101621; --line:#283448;
@johnnylambada
johnnylambada / index.html
Created September 16, 2026 05:39
Begin tactical display doctrine study — standalone UI mock
<!doctype html>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,viewport-fit=cover">
<title>Begin — Tactical Display Doctrine Study</title>
<style>
:root {
--void:#050607; --deck:#0a0d0c; --panel:#101512; --panel2:#151b17;
--line:#29362d; --line2:#425546; --ink:#d5decf; --muted:#829184;
--data:#74df83; --bright:#c9ffc8; --amber:#e49b48; --gold:#d7b665;
--blue:#7dcce8; --hostile:#ee6c73; --warning:#ffb43f; --dead:#69736b;
@johnnylambada
johnnylambada / cycle-log-v1.html
Last active September 16, 2026 04:32
Begin mobile clarity design mock — issues 5–8
<!doctype html>
<html lang="en">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Begin — cycle log review v1</title>
<style>
:root { --bg:#000; --page:#07090b; --text:#00aa00; --bright:#55ff55; --frame:#aa5500; --ally:#80e0ff; --enemy:#ff8080; --edge:#1d2a1d; --muted:#6f8a6f; --face:#0d120d; color-scheme:dark }
* { box-sizing:border-box }
body { margin:0; padding:16px; background:#111711; color:#d9e5d9; font:14px/1.5 system-ui,sans-serif }
main { max-width:760px; margin:auto }
class LoginActivity : AppCompatActivity() {
private val vm: LoginViewModel by viewModels()
private lateinit var binding: ActivityLoginBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityLoginBinding.inflate(layoutInflater)
setContentView(binding.root)
@johnnylambada
johnnylambada / AnkoRecyclerViewAdapter.kt
Created December 17, 2018 19:14 — forked from HarryTylenol/AnkoRecyclerViewAdapter.kt
Make RecyclerView with Anko Like Pro
abstract class AnkoRecyclerViewAdapter<Model : Any, AnkoView : AnkoComponent<ViewGroup>, ViewHolder : RecyclerView.ViewHolder> : RecyclerView.Adapter<ViewHolder>() {
abstract val data: List<Model> // Data list
abstract val ankoView: AnkoView // Layout as AnkoComponent<ViewGroup>
abstract fun ViewHolder.setup(model: Model) // setup model from ViewHolder
abstract val onItemClickListenerUnit: (Model) -> Unit // Item Click Listener
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
holder.setup(data[position])
holder.itemView.setOnClickListener {