public GameObject NewDecisionUI(Decision decision) { var rslt = DecisionLogic.newInstance(decision, this.transform); list.Add(rslt.gameObject); return(rslt); }
public GameState(Messages messges, Environment environment, Parameters parameters, Events events, Action onUpdated) { _messages = messges; _environment = environment; _parameters = parameters; _events = events; _onUpdated = onUpdated; _decisionLogic = new DecisionLogic(_messages, environment, _parameters, this); _startDate = DateTime.MinValue.AddDays(_parameters.StartDay); Date = _startDate; Traits[Trait.Money] = _parameters.StartMoney; _lastPayDate = Date; _lastInflateDate = Date; var startAct = new NoticeAction(_messages.Welcome, HighPriority); EnqueNoticeOnce(startAct); Analytics.enabled = !Application.isEditor; AnalyticsEvent.GameStart(); }
private IEnumerator ExecutionRoutine() { while (true) { AddOutline(_currentProgrammableBlock); DecisionLogic logic = _currentProgrammableBlock.GetComponent <DecisionLogic>(); if (!logic) { yield return(null); } yield return(new WaitForSeconds(1)); RemoveOutline(_currentProgrammableBlock); if (logic.Decide()) { #region Execute Actions ProgrammableBlock tempProgrammableBlock = _currentProgrammableBlock; ExecutionLogic executionLogic = null; while (true) { tempProgrammableBlock = tempProgrammableBlock.GetConnectedProgrammableBlock(ProgrammableBlock.Direction.Right); if (!tempProgrammableBlock) { break; } executionLogic = tempProgrammableBlock.GetComponent <ExecutionLogic>(); AddOutline(tempProgrammableBlock); if (!executionLogic) { yield return(new WaitForSeconds(1)); RemoveOutline(tempProgrammableBlock); continue; } executionLogic.Execute(); yield return(new WaitForSeconds(1)); RemoveOutline(tempProgrammableBlock); } #endregion } _currentProgrammableBlock = _currentProgrammableBlock.GetConnectedProgrammableBlock(ProgrammableBlock.Direction.Down); if (!_currentProgrammableBlock) { break; } } _isRunning = false; OnFinish.Invoke(); yield return(null); }