IStoryThread passage2_Main() { Vars.str = "A"; macros2.assert(Vars.str == "A", "equality (left)"); macros2.assert("A" == Vars.str, "equality (right)"); macros2.assert(Vars.str != "ABC", "inequality (left)"); macros2.assert("ABC" != Vars.str, "inequality (right)"); Vars.str = Vars.str + "B"; macros2.assert(Vars.str == "AB", "join operator (left)"); Vars.str = "C" + Vars.str; macros2.assert(Vars.str == "CAB", "join operator (right)"); macros2.assert(Vars.str.Contains("CA"), "contains literal"); macros2.assert(Vars.str["1st"] == "C", "position fwd"); macros2.assert(Vars.str["2ndlast"] == "A", "position bkwd"); macros2.assert(Vars.str[(3)] == "B", "numeric index fwd"); macros2.assert(Vars.str[(-1)] == "A", "numeric index bkwd"); macros2.assert(Vars.str[macros1.a(1, 3)] == "CB", "index array (substring)"); macros2.assert(Vars.str["length"] == 3, "length"); macros2.assert(v("Fear").Contains(("e" + "ar")), "contains expression"); macros2.assert(v("ugh").ContainedBy("Through"), "contained by"); macros2.assert(v("YO")["1st"] == "Y", "position fwd"); macros2.assert(v("YO")["last"] == "O", "position bkwd"); macros2.assert(v("PS")[(2)] == "S", "numeric index"); macros2.assert(v("1st").AsMemberOf[("YO")] == "Y", "reverse position fwd"); macros2.assert(v("last").AsMemberOf[("YO")] == "O", "reverse position bkwd"); macros2.assert(v(2).AsMemberOf[("PS")] == "S", "numeric index"); macros2.assert(macros1.substring("cheese", 2, 4) == "hee", "macro substring"); macros2.assert(macros1.text(4 * 80) == "320", "text macro"); macros2.pass(); yield break; }
IStoryThread passage2_Main() { Vars.@var = Vars.@var + 1; yield return(lineBreak()); macros3.ExportVar("var"); yield return(lineBreak()); Vars.disp = "Value is: " + macros1.text(Vars.@var); yield return(lineBreak()); yield return(text(Vars.disp)); yield return(lineBreak()); yield return(link("Continue.", "Loop", null)); yield return(lineBreak()); yield return(link("Be done.", "End", null)); yield break; }