private void CreateCompetitor(Script script, CompetitorState initialState = CompetitorState.Inconclusive) { _logger.Info($"Creating competitor: {script.Name} from {script.ScriptType} script with id: {script.Id}"); var competitorProps = Competitor.Props(_competitorFactory, _lobby, script.User, script, _resultsRepository, initialState); Context.ActorOf(competitorProps, script.Id.ToString()); }
// ReSharper disable once MemberCanBePrivate.Global // public constructor required for akka public Competitor( ICompetitorFactory playerAgentActorFactory , IActorRef playerLobby , IUser creator , IScript script , IActorRef resultRepository , CompetitorState initialState) { _playerAgentActorFactory = playerAgentActorFactory; _playerLobby = playerLobby; _creator = creator; _script = script; _resultRepository = resultRepository; _statusSubscriptions = new HashSet <IActorRef>(); _methodCallsFailureCounter = new Counter(MaxMethodCallsFailures); _state = initialState; if (_script.Exception != null) { _failureStateInfo = new AgentFailureState(new DeserializedException(_script.Exception)); Faulted(); } else { Active(); } }
public CompetitorStatus(CompetitorState state, int gamesPlayed, int wins, Guid competitorId, string exceptionString) { State = state; GamesPlayed = gamesPlayed; Wins = wins; CompetitorId = competitorId; ExceptionString = exceptionString; }
public static Props Props(ICompetitorFactory factory, IActorRef playerLobby, IUser creator, IScript script, IActorRef resultRepository, CompetitorState initialState) { return(Akka.Actor.Props.Create(() => new Competitor(factory, playerLobby, creator, script, resultRepository, initialState))); }
private void UpdateState(CompetitorState newState) { _state = newState; BroadcastToSubscribers(_state); }