75 lines
4.6 KiB
C#
75 lines
4.6 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
|
|
namespace IdleSpectator;
|
|
|
|
/// <summary>Maps every live task shape to an action concept; no creature voice logic.</summary>
|
|
public static class ActivityVerbMap
|
|
{
|
|
public static string Resolve(string key)
|
|
{
|
|
if (string.IsNullOrEmpty(key)) return "";
|
|
string k = key.ToLowerInvariant();
|
|
if (k.Contains("laugh")) return "laugh";
|
|
if (k.Contains("sing") || k.Contains("just_sang")) return "sing";
|
|
if ((k.Contains("play") && !k.Contains("display"))
|
|
|| k.Contains("fun_move") || k.Contains("frolic") || k.StartsWith("child_")) return "play";
|
|
if (k.Contains("hunt") || k == "behattackactorhuntingtarget") return "hunt";
|
|
if (k.Contains("fight") || k.Contains("attack") || k.Contains("tantrum")) return "fight";
|
|
if (k.Contains("social") || k.Contains("talk") || k.Contains("trysocialize")
|
|
|| k.Contains("crying") || k.Contains("just_cried") || k.Contains("swore")
|
|
|| k.Contains("madness")) return "social";
|
|
if (k.Contains("lover") || k.Contains("breed") || k.Contains("reproduction")
|
|
|| k.Contains("desire")) return "lover";
|
|
if (k.Contains("farm") || k.Contains("plant") || k.Contains("fertiliz")
|
|
|| k.Contains("harvest") || k.Contains("hoe")) return "farm";
|
|
if (k == "work" || k.Contains("mine") || k.Contains("woodcut") || k.Contains("chop")
|
|
|| k.Contains("gather") || k.Contains("forag") || k.Contains("build")
|
|
|| k.Contains("construct") || k.Contains("collect_") || k.Contains("cleaning")
|
|
|| k.Contains("make_items") || k.Contains("make_skeleton") || k.Contains("manure")
|
|
|| k.Contains("burn_tumor") || k == "axe" || k == "hammer" || k == "basket"
|
|
|| k == "bucket" || k == "flag" || k == "book" || k == "coffee_cup") return "work";
|
|
if (k.Contains("pollinat") || k.Contains("bee_") || k == "behpollinate") return "pollinate";
|
|
if (k.Contains("trade") || k.Contains("barter") || k.Contains("tax")
|
|
|| k.Contains("boat_trading")) return "trade";
|
|
if (k.Contains("fish")) return "fish";
|
|
if (k.Contains("unload") || k.Contains("throw_resource") || k.Contains("carrying")) return "haul";
|
|
if (k.Contains("heal") || k.Contains("cure")) return "heal";
|
|
if (k.Contains("fire") || k.Contains("fireman") || k.Contains("blaze")) return "fire";
|
|
if (k.Contains("sleep") || k.Contains("wakeup") || k.Contains("burrow")) return "sleep";
|
|
if (k.Contains("eat") || k.Contains("food") || k.Contains("meal") || k.StartsWith("diet_")) return "eat";
|
|
if (k.Contains("run_away") || k.Contains("flee") || k.Contains("retreat")
|
|
|| k.Contains("danger_check") || k.Contains("banish") || k.Contains("kill_unruly")) return "flee";
|
|
if (k.Contains("job") || k.Contains("employ") || k.Contains("find_house")
|
|
|| k.Contains("claim") || k.Contains("king_") || k.Contains("leader_")
|
|
|| k.Contains("citizen") || k.Contains("join_city") || k.Contains("check_city")
|
|
|| k.Contains("check_plot") || k.Contains("family_check") || k.Contains("embark")
|
|
|| k.Contains("boat_return") || k.Contains("force_into_a_boat")
|
|
|| k.Contains("boat_transport") || k.Contains("boat_check") || k.Contains("investigate"))
|
|
return "settle";
|
|
if (k.Contains("warrior") || k.Contains("army") || k.Contains("formation")
|
|
|| k.Contains("invincible")) return "warrior";
|
|
if (k.Contains("wait") || k == "reflection" || k.Contains("hold_still")
|
|
|| k.Contains("make_decision") || k.Contains("think") || k.Contains("stuck")) return "wait";
|
|
if (k.Contains("idle") || k.Contains("random_move") || k.Contains("walking")
|
|
|| k.EndsWith("_move") || k.Contains("wander") || k == "move"
|
|
|| k.Contains("dragon_") || k.Contains("godfinger") || k.Contains("follow_")
|
|
|| k.StartsWith("ant_") || k.StartsWith("ufo_") || k.StartsWith("worm_")
|
|
|| k.Contains("slide") || k.Contains("land") || k.Contains("fly")) return "move";
|
|
if (k.Contains("read")) return "read";
|
|
if (k.Contains("loot") || k.Contains("family_group")) return "gather_life";
|
|
return "";
|
|
}
|
|
|
|
public static bool HasActionCore(string key)
|
|
{
|
|
return !string.IsNullOrEmpty(Resolve(key))
|
|
|| !string.IsNullOrEmpty(ActivityProse.PatternActionPhrase(key, false))
|
|
|| !string.IsNullOrEmpty(key);
|
|
}
|
|
|
|
public static List<string> EnumerateLiveTaskIds()
|
|
{
|
|
return ActivityAssetCatalog.EnumerateLiveTaskIds();
|
|
}
|
|
}
|