diff --git a/IdleSpectator/ActivityActionLexicon.cs b/IdleSpectator/ActivityActionLexicon.cs index c9c25c9..537add9 100644 --- a/IdleSpectator/ActivityActionLexicon.cs +++ b/IdleSpectator/ActivityActionLexicon.cs @@ -43,7 +43,7 @@ public static class ActivityActionLexicon { "move" => new[] { "surges ahead in a trail of flame{place_at}", "flows forward in a rolling blaze{place_at}" }, "wait" => new[] { "flickers in place{place_at}", "burns steadily while waiting{place_at}" }, - "play" => new[] { "flares and darts through a wild game{place_at}", "dances in playful arcs of flame{place_at}" }, + "play" => new[] { "flickers into quick spirals and sudden bursts{place_at}", "loops in bright arcs of flame{place_at}" }, "eat" => new[] { "feeds the inner flame{place_at}", "draws fuel into the flames{place_at}" }, "sleep" => new[] { "dims into a banked rest{place_at}", "settles into a low, steady glow{place_at}" }, "hunt" => Targeted(hasTarget, "surges after {target}{place_at}", "hunts {target} in a trail of heat{place_at}", "searches for prey in flickering sweeps{place_at}", "hunts as flames flicker and rise{place_at}"), @@ -56,7 +56,7 @@ public static class ActivityActionLexicon { "move" => new[] { "shuffles ahead in soft, uneven steps{place_at}", "creeps forward as spores drift{place_at}" }, "wait" => new[] { "rests while spores drift around it{place_at}", "waits while faint spores drift{place_at}" }, - "play" => new[] { "puffs through an odd little game{place_at}", "bobs about in playful bursts of spores{place_at}" }, + "play" => new[] { "bobs and puffs spores in short bursts{place_at}", "wobbles about, shedding little clouds of spores{place_at}" }, "eat" => new[] { "feeds slowly on decaying matter{place_at}", "draws a slow meal from decay{place_at}" }, "sleep" => new[] { "settles into a soft, quiet rest{place_at}", "folds down among drifting spores{place_at}" }, _ => GenericBag(verb, hasTarget) @@ -66,7 +66,7 @@ public static class ActivityActionLexicon { "move" => new[] { "pulses forward as its mass shifts{place_at}", "lurches ahead in uneven surges{place_at}" }, "wait" => new[] { "throbs in unsettling stillness{place_at}", "quivers without moving on{place_at}" }, - "play" => new[] { "writhes through a grotesque game{place_at}", "pulses with uncanny playfulness{place_at}" }, + "play" => new[] { "writhes and recoils in restless loops{place_at}", "pulses in an oddly buoyant rhythm{place_at}" }, "eat" => new[] { "feeds with consuming hunger{place_at}", "absorbs food into the growing mass{place_at}" }, "fight" => Targeted(hasTarget, "lashes into {target} with terrible force{place_at}", "surges against {target}{place_at}", "fights in a thrashing fury{place_at}", "clashes in a violent rush{place_at}"), _ => GenericBag(verb, hasTarget) @@ -76,7 +76,7 @@ public static class ActivityActionLexicon { "move" => new[] { "glides ahead without a sound{place_at}", "tracks a precise, unfamiliar course{place_at}" }, "wait" => new[] { "observes in unreadable stillness{place_at}", "stands motionless and watches{place_at}" }, - "play" => new[] { "tests each movement like a game{place_at}", "experiments with a strange little game{place_at}" }, + "play" => new[] { "repeats curious patterns of motion{place_at}", "darts, pauses, and changes direction without warning{place_at}" }, "hunt" => Targeted(hasTarget, "tracks {target} without a sound{place_at}", "closes on {target} in eerie silence{place_at}", "scans for prey{place_at}", "hunts by unfamiliar instinct{place_at}"), "fight" => Targeted(hasTarget, "strikes at {target} with uncanny precision{place_at}", "clashes with {target} in sudden bursts{place_at}", "fights with unreadable intent{place_at}", "attacks in a precise rush{place_at}"), _ => GenericBag(verb, hasTarget) @@ -86,7 +86,7 @@ public static class ActivityActionLexicon { "move" => new[] { "moves in measured, jointed steps{place_at}", "shifts forward with deliberate precision{place_at}" }, "wait" => new[] { "idles in rigid watchfulness{place_at}", "stays motionless, mechanisms quiet{place_at}" }, - "play" => new[] { "tests a playful sequence of motions{place_at}", "turns precise movement into a game{place_at}" }, + "play" => new[] { "repeats a sequence of precise motions{place_at}", "spins and resets with mechanical exactness{place_at}" }, "eat" => new[] { "takes in fuel with mechanical care{place_at}", "replenishes what keeps it moving{place_at}" }, "sleep" => new[] { "powers down into quiet rest{place_at}", "settles into a dormant stillness{place_at}" }, _ => GenericBag(verb, hasTarget) @@ -115,7 +115,7 @@ public static class ActivityActionLexicon return verb switch { "wait" => new[] { "waits in hollow stillness{place_at}", "stands in restless silence{place_at}" }, - "play" => new[] { "lurches through a strange game{place_at}", "mimics a game with jerking motions{place_at}" }, + "play" => new[] { "lurches in clumsy circles{place_at}", "repeats jerking motions with eerie persistence{place_at}" }, "eat" => new[] { "feeds with deathless hunger{place_at}", "tears into a meal with endless hunger{place_at}" }, "sleep" => new[] { "slumps into a hollow rest{place_at}", "goes still in restless undeath{place_at}" }, "hunt" => Targeted(hasTarget, "shambles after {target}{place_at}", "hunts {target} with hollow hunger{place_at}", "hunts with deathless hunger{place_at}", "searches for prey without rest{place_at}"), @@ -147,7 +147,7 @@ public static class ActivityActionLexicon return verb switch { "move" => new[] { "flits onward in bright little arcs{place_at}", "drifts ahead on glittering wings{place_at}" }, - "play" => new[] { "dances through a sparkling game{place_at}", "flutters about with mischievous delight{place_at}" }, + "play" => new[] { "loops and twirls in sparkling arcs{place_at}", "flutters about mischievously{place_at}" }, "laugh" => new[] { "chimes with tiny laughter{place_at}", "laughs in a bright little trill{place_at}" }, _ => null }; @@ -158,7 +158,7 @@ public static class ActivityActionLexicon return verb switch { "move" => new[] { "glides ahead at an unhurried pace{place_at}", "follows a slow, winding trail{place_at}" }, - "play" => new[] { "turns in slow, playful circles{place_at}", "sways through a gentle game{place_at}" }, + "play" => new[] { "turns in slow, winding circles{place_at}", "sways gently from side to side{place_at}" }, "eat" => new[] { "nibbles through a meal slowly{place_at}", "takes a slow, careful meal{place_at}" }, _ => null }; @@ -169,7 +169,7 @@ public static class ActivityActionLexicon return verb switch { "move" => new[] { "pads softly along{place_at}", "slinks ahead, watching the way{place_at}" }, - "play" => new[] { "bats and twists through a private game{place_at}", "springs into sudden playful leaps{place_at}" }, + "play" => new[] { "bats, twists, and springs aside{place_at}", "springs into sudden leaps{place_at}" }, _ => null }; } @@ -179,7 +179,7 @@ public static class ActivityActionLexicon return verb switch { "move" => new[] { "trudges onward with steady weight{place_at}", "ambles ahead in slow, heavy steps{place_at}" }, - "play" => new[] { "charges about in rough play{place_at}", "stomps through a clumsy game{place_at}" }, + "play" => new[] { "charges, stops, and wheels around{place_at}", "stomps and bounds with clumsy enthusiasm{place_at}" }, _ => null }; } @@ -247,27 +247,27 @@ public static class ActivityActionLexicon { return body switch { - ActivityBodyTag.Canine => new[] { "tumbles about in lively play{place_at}", "bounds and wrestles through play{place_at}" }, - ActivityBodyTag.Feline => new[] { "bats and twists through a private game{place_at}", "plays with sudden leaps{place_at}" }, - ActivityBodyTag.Bird => new[] { "flutters through playful arcs{place_at}", "hops and wings about in play{place_at}" }, - ActivityBodyTag.Insect => new[] { "scuttles through a tiny game{place_at}", "darts about in quick bursts of play{place_at}" }, - ActivityBodyTag.Arachnid => new[] { "skitters through a restless game{place_at}", "darts about on many legs{place_at}" }, - ActivityBodyTag.Amphibian => new[] { "hops about in lively play{place_at}", "bounces through a lively game{place_at}" }, + ActivityBodyTag.Canine => new[] { "tumbles, bounds, and wheels around{place_at}", "bounds, feints, and wrestles about{place_at}" }, + ActivityBodyTag.Feline => new[] { "bats, twists, and springs aside{place_at}", "pounces and leaps without warning{place_at}" }, + ActivityBodyTag.Bird => new[] { "flutters in looping arcs{place_at}", "hops and flaps about{place_at}" }, + ActivityBodyTag.Insect => new[] { "scuttles in quick zigzags{place_at}", "darts about in short bursts{place_at}" }, + ActivityBodyTag.Arachnid => new[] { "skitters in quick loops{place_at}", "darts about on many legs{place_at}" }, + ActivityBodyTag.Amphibian => new[] { "hops about in lively bursts{place_at}", "bounces back and forth{place_at}" }, ActivityBodyTag.Aquatic => AquaticTerrainBag( terrain, - "splashes through play in the water{place_at}", - "darts and circles through the water{place_at}", - "twists and darts through play{place_at}", - "wriggles through an energetic game{place_at}"), - ActivityBodyTag.Crab => new[] { "scuttles through a lively game{place_at}", "sidesteps and spins in play{place_at}" }, - ActivityBodyTag.Reptile => new[] { "slides and coils in play{place_at}", "plays in slow, winding motions{place_at}" }, - ActivityBodyTag.Livestock => new[] { "stomps about in clumsy play{place_at}", "frolics in heavy, eager bursts{place_at}" }, - ActivityBodyTag.Plant => new[] { "sways through a slow game{place_at}", "twists and rustles in play{place_at}" }, - ActivityBodyTag.Primate => new[] { "clambers through a clever game{place_at}", "plays with nimble mischief{place_at}" }, - ActivityBodyTag.Rodent => new[] { "scampers through a tiny game{place_at}", "darts about in quick play{place_at}" }, - ActivityBodyTag.Ursid => new[] { "rolls through a heavy game{place_at}", "plays with lumbering cheer{place_at}" }, - ActivityBodyTag.Crawler => new[] { "loops through a low little game{place_at}", "writhes about in restless play{place_at}" }, - _ => new[] { "finds a way to amuse itself{place_at}", "plays with restless enthusiasm{place_at}" } + "splashes and darts through the water{place_at}", + "weaves quick circles through the water{place_at}", + "twists and darts about{place_at}", + "wriggles in quick loops{place_at}"), + ActivityBodyTag.Crab => new[] { "scuttles in quick sideways loops{place_at}", "sidesteps and spins about{place_at}" }, + ActivityBodyTag.Reptile => new[] { "slides, coils, and doubles back{place_at}", "winds about in slow loops{place_at}" }, + ActivityBodyTag.Livestock => new[] { "stomps and bounds clumsily{place_at}", "frolics in heavy, eager bursts{place_at}" }, + ActivityBodyTag.Plant => new[] { "sways and twists in slow arcs{place_at}", "twists and rustles energetically{place_at}" }, + ActivityBodyTag.Primate => new[] { "clambers, swings, and doubles back{place_at}", "scrambles about with nimble mischief{place_at}" }, + ActivityBodyTag.Rodent => new[] { "scampers in tight circles{place_at}", "darts about in quick zigzags{place_at}" }, + ActivityBodyTag.Ursid => new[] { "rolls over and lumbers upright again{place_at}", "lumbers about with clumsy cheer{place_at}" }, + ActivityBodyTag.Crawler => new[] { "loops around and doubles back{place_at}", "writhes about in restless circles{place_at}" }, + _ => new[] { "paces, turns, and doubles back{place_at}", "moves in quick, restless bursts{place_at}" } }; } @@ -275,7 +275,7 @@ public static class ActivityActionLexicon { return body switch { - ActivityBodyTag.Insect => new[] { "holds still in a tiny pause{place_at}", "waits with antennae alert{place_at}" }, + ActivityBodyTag.Insect => new[] { "holds still with its antennae raised{place_at}", "waits while its antennae twitch{place_at}" }, ActivityBodyTag.Amphibian => new[] { "crouches low and waits{place_at}", "sits still, ready to spring{place_at}" }, ActivityBodyTag.Feline => new[] { "settles into a watchful crouch{place_at}", "waits without looking away{place_at}" }, ActivityBodyTag.Canine => new[] { "waits with alert ears{place_at}", "holds a restless pause{place_at}" }, @@ -373,7 +373,7 @@ public static class ActivityActionLexicon "gather_life" => new[] { "gathers with kin{place_at}", "moves among the group{place_at}" }, "move" => new[] { "wanders without hurry{place_at}", "roams nearby, looking around{place_at}" }, "wait" => new[] { "waits in watchful quiet{place_at}", "stands still and watches{place_at}" }, - "play" => new[] { "finds a way to amuse itself{place_at}", "turns idle time into a game{place_at}" }, + "play" => new[] { "paces, turns, and doubles back{place_at}", "moves in quick, restless bursts{place_at}" }, "eat" => new[] { "sits down to eat{place_at}", "finishes a meal{place_at}" }, "sleep" => new[] { "settles into deep sleep{place_at}", "rests after the day's demands{place_at}" }, "hunt" => Targeted(hasTarget, "pursues {target}{place_at}", "closes in on {target}{place_at}", "searches for prey{place_at}", "moves quietly on the hunt{place_at}"), diff --git a/IdleSpectator/ActivityProse.cs b/IdleSpectator/ActivityProse.cs index 6427c02..39cef46 100644 --- a/IdleSpectator/ActivityProse.cs +++ b/IdleSpectator/ActivityProse.cs @@ -324,33 +324,33 @@ public static class ActivityProse }, ["task_unit_play"] = new[] { - "{actor} finds a way to amuse itself{place_at}", - "{actor} turns idle time into play{place_at}", - "{actor} plays with restless enthusiasm{place_at}" + "{actor} moves about in quick, restless bursts{place_at}", + "{actor} darts back and forth for a while{place_at}", + "{actor} bounds around with eager energy{place_at}" }, ["just_played"] = new[] { - "{actor} just finished playing and settles again{place_at}", - "{actor} wraps up playtime and looks outward{place_at}", - "{actor} steps away from play with leftover cheer{place_at}" + "{actor} slows down after playing{place_at}", + "{actor} stops to catch a breath{place_at}", + "{actor} settles after a burst of activity{place_at}" }, ["child_play_at_one_spot"] = new[] { - "{actor} plays in place with busy hands and feet{place_at}", - "{actor} keeps busy with play without wandering far{place_at}", - "{actor} amuses themselves right where they stand{place_at}" + "{actor} hops and pivots without wandering far{place_at}", + "{actor} keeps busy in one small spot{place_at}", + "{actor} turns and bounces in place{place_at}" }, ["child_random_flips"] = new[] { - "{actor} flips about in a burst of play{place_at}", - "{actor} tumbles through playful motion{place_at}", - "{actor} shows off flips for whoever watches{place_at}" + "{actor} flips and tumbles about{place_at}", + "{actor} rolls forward and springs upright{place_at}", + "{actor} tries one quick flip after another{place_at}" }, ["child_random_jump"] = new[] { - "{actor} jumps about with bright energy{place_at}", - "{actor} leaps in play across the open ground{place_at}", - "{actor} bounces around as if the day were light{place_at}" + "{actor} jumps about in quick bursts{place_at}", + "{actor} leaps forward and doubles back{place_at}", + "{actor} bounces around without settling{place_at}" }, ["child_follow_parent"] = new[] { @@ -360,15 +360,15 @@ public static class ActivityProse }, ["random_fun_move"] = new[] { - "{actor} frolics about with no errand but joy{place_at}", - "{actor} moves for fun through the open moment{place_at}", - "{actor} skips along playfully without hurry{place_at}" + "{actor} frolics and wheels around{place_at}", + "{actor} darts off and circles back{place_at}", + "{actor} skips along without hurry{place_at}" }, ["godfinger_random_fun_move"] = new[] { - "{actor} frolics under a strange divine whim{place_at}", - "{actor} is nudged into playful motion by unseen will{place_at}", - "{actor} moves about for fun as if guided lightly{place_at}" + "{actor} moves in sudden, unpredictable turns{place_at}", + "{actor} darts one way, then abruptly another{place_at}", + "{actor} loops around in restless motion{place_at}" }, ["try_to_read"] = new[] { diff --git a/IdleSpectator/ActivityVoiceHarness.cs b/IdleSpectator/ActivityVoiceHarness.cs index 2742a5d..551c06c 100644 --- a/IdleSpectator/ActivityVoiceHarness.cs +++ b/IdleSpectator/ActivityVoiceHarness.cs @@ -39,7 +39,10 @@ public static class ActivityVoiceHarness "deathly little steps", "mythic calm", "otherworldly purpose", - "patient citrus" + "patient citrus", + "game", + "through play", + "in play" }; private static readonly string[] UngroundedTerrainFragments = diff --git a/IdleSpectator/AgentHarness.cs b/IdleSpectator/AgentHarness.cs index e2d7a23..f9df1ad 100644 --- a/IdleSpectator/AgentHarness.cs +++ b/IdleSpectator/AgentHarness.cs @@ -2252,12 +2252,13 @@ public static class AgentHarness case "activity_prose_showcase": { // Taxonomy must map to real buckets - never fantasy kingdoms -> monster. - string[] speciesIds = { "zombie", "angle", "lemon_snail", "dragon" }; + string[] speciesIds = { "zombie", "angle", "lemon_snail", "dragon", "fairy" }; string[] wantFamily = { ActivityVoiceFamilies.Mammal, ActivityVoiceFamilies.Mythic, ActivityVoiceFamilies.Plant, + ActivityVoiceFamilies.Mythic, ActivityVoiceFamilies.Mythic }; ActivityBodyTag[] wantManner = @@ -2265,7 +2266,8 @@ public static class AgentHarness ActivityBodyTag.Undead, ActivityBodyTag.Mythic, ActivityBodyTag.Plant, - ActivityBodyTag.Dragon + ActivityBodyTag.Dragon, + ActivityBodyTag.Insect }; var verbs = new (string key, string fact, bool withTarget)[] { diff --git a/IdleSpectator/HarnessScenarios.cs b/IdleSpectator/HarnessScenarios.cs index 3e06aa3..dc98d7d 100644 --- a/IdleSpectator/HarnessScenarios.cs +++ b/IdleSpectator/HarnessScenarios.cs @@ -492,7 +492,7 @@ internal static class HarnessScenarios Step("act15", "activity_force", asset: "farm", label: "Tends the fields", count: 1), Step("act16", "activity_force", asset: "hunt", label: "Hunts", count: 1, expect: "Barkley"), Step("act16b", "activity_force", asset: "task_unit_play", label: "Playing", value: "dog"), - Step("act16c", "assert", expect: "activity_log_contains", value: "play"), + Step("act16c", "assert", expect: "activity_log_contains", value: "bounds"), Step("act16d", "activity_force", asset: "task_unit_play", label: "Playing", value: "cat"), Step("act16e", "assert", expect: "activity_prose_variety", value: "2"), Step("act16f", "activity_force", asset: "BehUnloadResources", label: "wheat@Riverhold", tier: "beat", value: "human"), diff --git a/IdleSpectator/mod.json b/IdleSpectator/mod.json index 1462626..98b0f16 100644 --- a/IdleSpectator/mod.json +++ b/IdleSpectator/mod.json @@ -1,7 +1,7 @@ { "name": "IdleSpectator", "author": "dazed", - "version": "0.12.73", + "version": "0.12.75", "description": "AFK Idle Spectator (I) + Lore (L). Detailed living activity prose by default.", "GUID": "com.dazed.idlespectator" }