private static ILineObject GenerateNormalSkill(PlayerExporter exporter, bool isFirst, NormalSkill skill, string name) { var u = ThisExpr.Instance.MakeIndex("u"); var condition = ExpressionExt.AndAll( KeyCondition(skill.Key), CancelLevelCondition(skill.CancelLevel), AirCondition(skill.AirState), XCondition(skill.X), YCondition(skill.Y), MagicCondition(skill.MagicUse), RushCondition(exporter, skill)); return(new ControlBlock(isFirst ? ControlBlockType.If : ControlBlockType.ElseIf, condition, new ILineObject[] { u.MakeIndex("InputReset").MakeIndex("call").Call(ThisExpr.Instance).Statement(), u.MakeIndex(name).MakeIndex("call").Call(ThisExpr.Instance).Statement(), }).Statement()); }
public override Expression Generate(GenerationEnvironment env) { return(ExpressionExt.AndAll(Filters.Select(f => f.Generate(env)).ToArray())); }