Elin Decompiled Documentation EA 23.315 Nightly
Loading...
Searching...
No Matches
CustomDramaExpansion Class Reference
Inheritance diagram for CustomDramaExpansion:
EClass

Static Package Attributes

static readonly Regex _expressionRegex = new Regex("^\\s*(?<f>\\w+)\\s*(?:\\‍(\\s*(?<p>.*)\\s*\\‍))?\\s*f"].Value, parameters: SplitParams(match.Groups["p"].Value))
 

Static Private Member Functions

static string[] SplitParams (string args)
 
static string Unquote (string s)
 

Static Private Attributes

static readonly Dictionary< string, DramaActionParser_actionParsers = new Dictionary<string, DramaActionParser>(StringComparer.OrdinalIgnoreCase)
 
static readonly Dictionary< string, DramaInvokeDetail_invokes = new Dictionary<string, DramaInvokeDetail>(StringComparer.OrdinalIgnoreCase)
 

Additional Inherited Members

- Static Public Member Functions inherited from EClass
static int rndSeed (int a, int seed)
 
static int rnd (long a)
 
static int rnd (int a)
 
static int curve (long _a, int start, int step, int rate=75)
 
static int sqrt (int a)
 
static int rndHalf (int a)
 
static float rndf (float a)
 
static int rndSqrt (int a)
 
static void Wait (float a, Card c)
 
static void Wait (float a, Point p)
 
static int Bigger (int a, int b)
 
static int Smaller (int a, int b)
 
- Static Public Attributes inherited from EClass
static Core core
 
- Properties inherited from EClass
static Game game [get]
 
static bool AdvMode [get]
 
static Player player [get]
 
static Chara pc [get]
 
static UI ui [get]
 
static Map _map [get]
 
static Zone _zone [get]
 
static FactionBranch Branch [get]
 
static FactionBranch BranchOrHomeBranch [get]
 
static Faction Home [get]
 
static Faction Wilds [get]
 
static Scene scene [get]
 
static BaseGameScreen screen [get]
 
static GameSetting setting [get]
 
static GameData gamedata [get]
 
static ColorProfile Colors [get]
 
static World world [get]
 
static SourceManager sources [get]
 
static SourceManager editorSources [get]
 
static SoundManager Sound [get]
 
static CoreDebug debug [get]
 

Detailed Description

Definition at line 10 of file CustomDramaExpansion.cs.

Member Function Documentation

◆ SplitParams()

static string[] CustomDramaExpansion.SplitParams ( string  args)
inlinestaticprivate

Definition at line 17 of file CustomDramaExpansion.cs.

19 {
20 if (_actionParsers.TryGetValue(action, out var value))
21 {
22 return value(dm, line);
23 }
24 return false;
25 }
26
27 public static void AddDramaActionParser(string action, DramaActionParser parser)
28 {
29 _actionParsers[action] = SafeInvoke;
30 Debug.Log("#drama added new action parser '" + action + "' from '" + parser.Method.TryToString() + "'");
31 bool SafeInvoke(DramaManager dm, Dictionary<string, string> line)
32 {
33 try
34 {
35 return parser(dm, line);
36 }
37 catch (Exception ex)
38 {
39 ModUtil.LogModError("exception while parsing drama action '" + action + "'\n" + ex.Message, parser.Method.DeclaringType);
40 Debug.LogException(ex);
41 }
42 return false;
43 }
44 }
45
46 public static void AddDramaInvokeMethod(string name, MethodInfo method, string contract = null)
47 {
48 _invokes[name] = new DramaInvokeDetail(method, contract);
49 }
50
51 public static void AddDramaInvokeMethod(string name, DramaInvokeFunc func, string contract = null)
52 {
53 AddDramaInvokeMethod(name, func.Method, contract);
54 }
55
56 internal static (DramaInvokeDetail invoke, string[] parameters) BuildInvokeExpression(string expression)
57 {
58 (string, string[]) tuple = ParseInvokeExpression(expression);
59 if (!tuple.Item1.IsEmpty() && _invokes.TryGetValue(tuple.Item1, out var value))
60 {
61 return (invoke: value, parameters: tuple.Item2);
62 }
63 if (expression.Length <= 1)
64 {
65 return (invoke: new DramaInvokeDetail(null), parameters: Array.Empty<string>());
66 }
67 return expression[0] switch
68 {
69 '!' => BuildInvokeExpression("not(" + expression[1..] + ")"),
70 '&' => BuildInvokeExpression("and(" + expression[1..] + ")"),
71 '?' => BuildInvokeExpression("or(" + expression[1..] + ")"),
72 _ => (invoke: new DramaInvokeDetail(null), parameters: Array.Empty<string>()),
delegate bool DramaActionParser(DramaManager dm, Dictionary< string, string > line)
delegate bool DramaInvokeFunc(DramaManager dm, Dictionary< string, string > line, params string[] parameters)
static readonly Dictionary< string, DramaInvokeDetail > _invokes
static readonly Dictionary< string, DramaActionParser > _actionParsers

◆ Unquote()

static string CustomDramaExpansion.Unquote ( string  s)
inlinestaticprivate

Definition at line 73 of file CustomDramaExpansion.cs.

77 {
78 if (expression.IsEmpty())
79 {
80 return (funcName: "", parameters: Array.Empty<string>());

Referenced by DefaultDramaEvalActionParser().

Member Data Documentation

◆ _actionParsers

readonly Dictionary<string, DramaActionParser> CustomDramaExpansion._actionParsers = new Dictionary<string, DramaActionParser>(StringComparer.OrdinalIgnoreCase)
staticprivate

Definition at line 12 of file CustomDramaExpansion.cs.

Referenced by publicstaticboolParsection().

◆ _expressionRegex

readonly Regex CustomDramaExpansion._expressionRegex = new Regex("^\\s*(?<f>\\w+)\\s*(?:\\‍(\\s*(?<p>.*)\\s*\\‍))?\\s*f"].Value, parameters: SplitParams(match.Groups["p"].Value))
staticpackage

Definition at line 16 of file CustomDramaExpansion.cs.

◆ _invokes

readonly Dictionary<string, DramaInvokeDetail> CustomDramaExpansion._invokes = new Dictionary<string, DramaInvokeDetail>(StringComparer.OrdinalIgnoreCase)
staticprivate

Definition at line 14 of file CustomDramaExpansion.cs.


The documentation for this class was generated from the following file: