コード例 #1
0
        protected override void OnActionUpdate(FixPoint delta_time)
        {
            if (m_program == null)
            {
                m_program = RecyclableObject.Create <ExpressionProgram>();
                m_program.Compile(m_context_value_expression);
            }
            FixPoint context_value = m_program.Evaluate(this);

            m_context.SetData(m_context_key, context_value);
        }
コード例 #2
0
ファイル: Formula.cs プロジェクト: mengflyQ/GameFrameWork
 public FixPoint Evaluate(IExpressionVariableProvider variable_provider)
 {
     if (m_program != null)
     {
         return(m_program.Evaluate(variable_provider));
     }
     else
     {
         return(m_constant);
     }
 }
コード例 #3
0
        protected override bool IsSatisfy()
        {
            if (m_program == null)
            {
                m_program = RecyclableObject.Create <ExpressionProgram>();
                m_program.Compile(m_expression);
            }
            FixPoint result = m_program.Evaluate(this);

            if (result != FixPoint.Zero)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
コード例 #4
0
ファイル: GameGlobal.cs プロジェクト: mengflyQ/GameFrameWork
    void InitializeSyncModelTest()
    {
        string expression = "(2 > 3) ? (2 + 5) : (1 + 2)";

        Combat.ExpressionProgram program = new Combat.ExpressionProgram();
        program.Compile(expression);
        FixPoint result = program.Evaluate(null);

        LogWrapper.LogError(expression, ", EVALUATES ", result);

        if (m_combat_tester != null)
        {
            return;
        }
        //m_sync_tester = new Combat.SyncTester(this);
        //m_sync_tester.Init();
        m_combat_tester = new Combat.CombatTester();
        m_combat_tester.Initialize();
    }
コード例 #5
0
ファイル: Formula.cs プロジェクト: mengflyQ/GameFrameWork
        public bool Compile(string formula_string)
        {
            ExpressionProgram program = RecyclableObject.Create <ExpressionProgram>();

            if (!program.Compile(formula_string))
            {
                return(false);
            }
            if (program.IsConstant())
            {
                m_constant = program.Evaluate(null);
                m_program  = null;
                RecyclableObject.Recycle(program);
            }
            else
            {
                m_program = program;
            }
            return(true);
        }