code wiki / _hdl_build / nx_game_taming.nx

nx_game_taming.nx

buildroot/runtime/_hdl_build/nx_game_taming.nx

16492 B309 linesdepth 5pulls 11 transitivereach 2 importersview sourcekind librarytopic game
docsdependenciesstructsconstsfunctions

about

nx_game_taming.nx -- THE MULTIPLE PATHS to winning a companion (ws=game-interact rung 4, operator: "i like multiple ways of taming -- from dominating in fighting, to items like the pal balls, and also taming from capture ... train them or release them"). FIVE paths, each a genuinely different skill, each able to FAIL: 1 DOMINANCE -- beat her decisively in combat (nx_game_breed brd_duel: margin >= species submit_bar) 2 ITEM -- a bind-charm; odds are the real HP-dependent catch curve (composed from nx_creature_world's cw_catch_a -- the ODDS ORACLE, not a second copy) 3 SEDUCTION -- a non-combat contest of approaches vs her ARCHETYPE; reading her wrong costs you 4 TRAINING -- the slow path: move trust/willpower over many interactions until she stays willingly 5 RELEASE -- let her go; it costs you her, moves your reputation, and she REMEMBERS ★THE ARCHITECTURAL LAW (the A2 reconciliation): every path makes its own DECISION, then funnels through the ONE canonical transfer verb `brd_capture`, which preserves genome + bond state exactly. There is exactly one way a creature changes hands, so the paths can never drift apart. ★BOND IS NOT OWNERSHIP: capturing her by force gives you a companion with LOW TRUST and HIGH WILL -- she is yours and she will not obey. Trust is earned afterward (path 4) whatever path took her. That is the depth: the fast paths cost you loyalty, the slow path costs you time. All thresholds are DATA rows. All integer, deterministic, caller-seeded. LIB, no main. license_tier: ORIGINAL

dependencies 4 imports · 2 importers

nx_syscalls.nx nx_game_breed.nx nx_creature_world.nx nx_game_genetics.nx nx_game_taming.nx nx_breeder_lab.nx nx_game_taming_gate.nx

imports: nx_syscalls.nxnx_game_breed.nxnx_creature_world.nxnx_game_genetics.nx

imported by: nx_breeder_lab.nxnx_game_taming_gate.nx

structs

none

consts

33const TM_DOMINANCE: i64 = 0
34const TM_ITEM: i64 = 1
35const TM_SEDUCE: i64 = 2
36const TM_TRAIN: i64 = 3
37const TM_RELEASE: i64 = 4
38const TM_NPATH: i64 = 5
44const TM_ARCH_STRIDE: i64 = 6
45const TM_NARCH: i64 = 4
46const TM_ARCH_PROUD: i64 = 0
47const TM_ARCH_SHY: i64 = 1
48const TM_ARCH_WILD: i64 = 2
49const TM_ARCH_CLEVER: i64 = 3
52const TM_AP_GIFT: i64 = 0
53const TM_AP_FLATTER: i64 = 1
54const TM_AP_IMPRESS: i64 = 2
55const TM_AP_CHALLENGE: i64 = 3
56const TM_NAP: i64 = 4
99const TM_OK: i64 = 1 // she is yours
100const TM_FAIL: i64 = 0 // attempt failed, she is still wild
101const TM_RESIST: i64 = 2 // failed AND she hardened (will/guard up)
102const TM_REFUSED: i64 = 3 // the attempt was not legal (bad handle, roster full, no item)
163const TM_ACT_FEED: i64 = 0
164const TM_ACT_SPAR: i64 = 1
165const TM_ACT_WORK: i64 = 2
166const TM_ACT_PRAISE: i64 = 3
167const TM_ACT_REST: i64 = 4
168const TM_NACT: i64 = 5
205const TM_WILLING_BAR: i64 = 600
225const TM_REL_STRIDE: i64 = 4

functions

58func tm_arch_default(tbl: *i64) -> i64
called by 1: main
69func tm_best(tbl: *i64, a: i64) -> i64 { return tbl[a*TM_ARCH_STRIDE + 0] }
called by 2: tm_seduce_stepmain
70func tm_worst(tbl: *i64, a: i64) -> i64 { return tbl[a*TM_ARCH_STRIDE + 1] }
called by 2: tm_seduce_stepmain
71func tm_seduce_bar(tbl: *i64, a: i64) -> i64{ return tbl[a*TM_ARCH_STRIDE + 2] }
called by 1: tm_seduce_step
72func tm_item_rate(tbl: *i64, a: i64) -> i64 { return tbl[a*TM_ARCH_STRIDE + 3] }
73func tm_train_rate(tbl: *i64, a: i64) -> i64{ return tbl[a*TM_ARCH_STRIDE + 4] }
called by 1: tm_train
74func tm_pride(tbl: *i64, a: i64) -> i64 { return tbl[a*TM_ARCH_STRIDE + 5] }
called by 1: tm_seduce_step
77func tm_archetype(ros: *i64, h: i64) -> i64
85func tm_rng(s: *i64) -> i64
92func tm_clamp(v: i64, lo: i64, hi: i64) -> i64
110func tm_item_try(ros: *i64, h: i64, tbl: *i64, c: *i64, ball: i64, s: *i64) -> i64
123func tm_item_odds_permil(ros: *i64, h: i64, tbl: *i64, c: *i64, ball: i64) -> i64
139func tm_seduce_step(ros: *i64, h: i64, tbl: *i64, approach: i64, charisma: i64, s: *i64) -> i64
170func tm_act_default(at: *i64) -> i64
called by 1: main
178func tm_train(ros: *i64, h: i64, tbl: *i64, at: *i64, activity: i64, s: *i64) -> i64
195func tm_obeys(ros: *i64, h: i64, s: *i64) -> i64
called by 1: main calls 4: en_validen_gettm_clamptm_rng
206func tm_willing(ros: *i64, h: i64) -> i64
called by 1: main calls 2: en_validen_get
212func tm_escape_check(ros: *i64, h: i64, s: *i64) -> i64
226func tm_rel_count(reg: *i64) -> i64 { return reg[0] }
called by 1: main
227func tm_release(ros: *i64, h: i64, reg: *i64, regcap: i64, repbox: *i64) -> i64
245func tm_maybe_return(reg: *i64, s: *i64) -> i64
called by 1: main calls 1: tm_rng
263func tm_readmit(ros: *i64, reg: *i64, idx: i64) -> i64
called by 1: main calls 4: en_spawnen_seten_counttm_clamp
288func tm_acquire(dst: *i64, src: *i64, h: i64, path: i64) -> i64
called by 1: main calls 3: en_validen_setbrd_capture
297func tm_path_name(p: i64) -> *u8
304func tm_arch_name(a: i64) -> *u8