public override TickResult Tick(AgentMemory am)
        {
            if (am.IsRunning(ID) == false)
            {
                am.SetInt(ID, "lastRunningNode", 0);
                am.StartRunning(ID);
            }

            for (int node = am.GetInt(ID, "lastRunningNode", 0); node < Children.Count; node++)
            {
                TickResult result = TickChild(Children[node], am);

                if (result == TickResult.Success)
                {
                    // Sprawdzamy następny
                    continue;
                }
                else if (result == TickResult.Running)
                {
                    am.SetInt(ID, "lastRunningNode", node);
                    return(result);
                }
                else
                {
                    // Porażka lub błąd - zaczynamy od nowa
                    am.StopRunning(ID);
                    return(result);
                }
            }

            am.StopRunning(ID);
            return(TickResult.Success);
        }
        public override TickResult Tick(AgentMemory agentMemory)
        {
            if (agentMemory.IsRunning(ID) == false)
            {
                agentMemory.SetInt(ID, "lastRunningNode", 0);
                agentMemory.StartRunning(ID);
            }

            for (int node = agentMemory.GetInt(ID, "lastRunningNode", 0); node < Children.Count; node++)
            {
                TickResult result = TickChild(Children[node], agentMemory);

                if (result == TickResult.Failure)
                {
                    continue;
                }
                else if (result == TickResult.Running)
                {
                    agentMemory.SetInt(ID, "lastRunningNode", node);
                    return(result);
                }
                else
                {
                    agentMemory.StopRunning(ID);
                    return(result);
                }
            }

            agentMemory.StopRunning(ID);
            return(TickResult.Failure);
        }
Exemple #3
0
        public TickResult Tick(AgentMemory agentMemory)
        {
            agentMemory.ResetActiveNodesList();
            agentMemory.ProcessTimers(agentMemory.DeltaTime);
            agentMemory.CurrentTree = this;

            TickResult result = Node.TickChild(Root, agentMemory);

            return(result);
        }
Exemple #4
0
        public override TickResult Tick(AgentMemory am)
        {
            for (int i = 0; i < Children.Count; i++)
            {
                TickResult result = TickChild(Children[i], am);

                if (result != TickResult.Success)
                {
                    return(result);
                }
            }

            return(TickResult.Success);
        }
Exemple #5
0
        public static string GetReply(TickResultFlag flag, ArcadeUser user = null, TickResult result = null)
        {
            IEnumerable <CasinoReply> replies = GetReplies(flag);

            if (user != null && result != null)
            {
                replies = replies.Where(x => MeetsCriteria(x, user, result));
            }

            if (Check.NotNullOrEmpty(replies))
            {
                return(Randomizer.Choose(replies).ToString(user, result));
            }

            return(GetGeneric(flag));
        }
Exemple #6
0
        public override TickResult Tick(AgentMemory agentMemory)
        {
            TickResult result = TickChild(Child, agentMemory);

            if (result == TickResult.Failure)
            {
                return(TickResult.Success);
            }
            else if (result == TickResult.Success)
            {
                return(TickResult.Failure);
            }
            else
            {
                return(result);
            }
        }
Exemple #7
0
        public override TickResult Tick(AgentMemory agentMemory)
        {
            for (int i = 0; i < Children.Count; i++)
            {
                TickResult result = TickChild(Children[i], agentMemory);

                if (result == TickResult.Failure)
                {
                    continue;
                }
                else
                {
                    return(result);
                }
            }

            return(TickResult.Failure);
        }
Exemple #8
0
        public TickResult Tick()
        {
            if (null == mList)
            {
                return(TickResult.Finished);
            }

            TickResult result = TickResult.Finished;

            mList.ForEach(delegate(Trigger t)
            {
                if (t.Tick() == TickResult.Running)
                {
                    result = TickResult.Running;
                }
            });

            return(result);
        }
Exemple #9
0
        protected override TickResult OnTick()
        {
            if (TickResult.Finished == base.OnTick())
            {
                return(TickResult.Finished);
            }

            TickResult result = TickResult.Finished;

            foreach (Action action in mList)
            {
                if (TickResult.Running == action.Tick())
                {
                    result = TickResult.Running;
                }
            }

            return(result);
        }
        public override TickResult Tick(AgentMemory agentMemory)
        {
            ExampleNodeData data = agentMemory.GetObject(ID) as ExampleNodeData;

            if (data == null)
            {
                return(TickResult.Error);
            }

            TickResult result = TickChild(hiddenWaitNode, agentMemory);

            if (result == TickResult.Running)
            {
                data.NumberOfTicks++;
                return(TickResult.Running);
            }
            else
            {
                return(TickResult.Success);
            }
        }
Exemple #11
0
        public async Task DoublerAsync(long wager = 0, int expectedTick = 1, TickWinMethod method = TickWinMethod.Below)
        {
            if (wager < 0)
            {
                await Context.Channel.SendMessageAsync($"> 👁️ You can't specify a **negative** value.\n> *\"I know what you were trying to do.\"*");

                return;
            }

            if (wager == 0)
            {
                // $"> ⚠️ You need to specify a positive amount of **Chips** to bet."
                await Context.Channel.SendMessageAsync(CommandDetailsViewer.WriteTick());

                return;
            }

            if (wager > Context.Account.ChipBalance)
            {
                await Context.Channel.SendMessageAsync($"> ⚠️ You don't have enough **Chips** to bet with.");

                return;
            }

            if (expectedTick <= 0)
            {
                await Context.Channel.SendMessageAsync($"> ⚠️ You have specified an invalid tick. Try something that's above **0**.");

                return;
            }

            var tick = new Tick(expectedTick, method);

            TickResult result  = tick.Next(wager, Context.Account.GetVar(TickStats.CurrentLossStreak));
            Message    message = result.ApplyAndDisplay(Context.Account);

            await Context.Channel.SendMessageAsync(Context.Account, message);
        }
Exemple #12
0
        public static TickResult TickChild(Node child, AgentMemory agentMemory)
        {
            if (child.CheckPrecondition(agentMemory) == false)
            {
                return(TickResult.Failure);
            }

            if (child.Activates)
            {
                TickResult result = child.Tick(agentMemory);
                return(result);
            }
            else
            {
                agentMemory.ActivateNode(child.ID);
                TickResult result = child.Tick(agentMemory);
                if (result != TickResult.Running)
                {
                    agentMemory.DeactivateNode(child.ID);
                }
                return(result);
            }
        }