public static Packet GetPacket(ConnectionState state, int packetId) { bool success; Packet outPacket; switch (state) { case ConnectionState.Handshake: success = HandshakeFactory.TryGetPacket(packetId, out outPacket); break; case ConnectionState.Status: success = StatusFactory.TryGetPacket(packetId, out outPacket); break; case ConnectionState.Login: success = LoginFactory.TryGetPacket(packetId, out outPacket); break; case ConnectionState.Play: success = PlayFactory.TryGetPacket(packetId, out outPacket); break; default: throw new ArgumentOutOfRangeException(nameof(state), state, null); } if (!success) { return(null); } outPacket.PacketId = packetId; return(outPacket); }
public Server(ClusterConfiguration clusterConfiguration) { _currentStatus = new UninitializedStatus(this); _statusFactory = new StatusFactory(); // todo avoid hard-coded timespan _rpcChannel = new NetMqRpcChannel(clusterConfiguration, TimeSpan.FromMilliseconds(200)); }
public void afflictionToStatusConversion() { StatusFactory statusFab = new StatusFactory(); Dictionary <ICauseAfflictions, IStatusEffect> testCases = new Dictionary <ICauseAfflictions, IStatusEffect>(); CauseBleed bleedAffliction = new CauseBleed(); testCases.Add(bleedAffliction, new Bleed(bleedAffliction)); CauseBreakBones breakBonesAffliction = new CauseBreakBones(); testCases.Add(breakBonesAffliction, new BrokenBone(breakBonesAffliction)); CauseUnconsciousness unconsciousnessAffliction = new CauseUnconsciousness(); testCases.Add(unconsciousnessAffliction, new Unconsciousness(unconsciousnessAffliction)); bool allConvertedCorrect = true; foreach (ICauseAfflictions testAffliction in testCases.Keys) { TestContext.Write("Affliction {0}: ", testAffliction.getAfflictionType()); string constrTypeString = testCases[testAffliction].ToString(); string factTypeString = statusFab.createStatus(testAffliction).ToString(); bool hashCodesAreEqual = constrTypeString == factTypeString; TestContext.WriteLine("Constr.: {0}, Fact.: {1}, Equal: {2}", constrTypeString, factTypeString, hashCodesAreEqual); if (!hashCodesAreEqual) { allConvertedCorrect = false; } } Assert.True(allConvertedCorrect); }
public void ApplyStatus(Health health, StatusFactory factory) { if (hasAuthority) { CmdApplyStatus(health.GetComponent <NetworkIdentity>().netId, factory.name); } }
public IEnumerable <Models.DataSourceStudyStatus> GetAllStatus() { try { IStatusRepository statusRepo = StatusFactory.GetInstance().GetStatusInstance(); return(statusRepo.GetStatuses()); } catch (Exception e) { throw e; } }
public void UpdateStatus_NewClaimIdAndStatusId_UpdatedClaimHasNewStatusId() { // Arrange var interactor = UpdateClaimInteractorFactory.Create(); ClaimEntity claimToUpdate = ClaimFactory.Create(); StatusEntity newStatus = StatusFactory.Create("Closed"); // Run var result = interactor.UpdateStatus(claimToUpdate, newStatus); // Assert result.StatusId.ShouldBe(newStatus.Id); }
internal static void Register <TPacket>(PacketDirection packetDirection, ConnectionState state, int packetId, Func <TPacket> createFunc) where TPacket : Packet { if (packetDirection == PacketDirection.ServerBound) { switch (state) { case ConnectionState.Handshake: HandshakeFactory.Register(packetId, createFunc); break; case ConnectionState.Status: StatusFactory.Register(packetId, createFunc); break; case ConnectionState.Login: LoginFactory.Register(packetId, createFunc); break; case ConnectionState.Play: PlayFactory.Register(packetId, createFunc); break; default: throw new ArgumentOutOfRangeException(nameof(state), state, null); } } else { switch (state) { case ConnectionState.Handshake: ServerHandshakeFactory.Register(packetId, createFunc); break; case ConnectionState.Status: ServerStatusFactory.Register(packetId, createFunc); break; case ConnectionState.Login: ServerLoginFactory.Register(packetId, createFunc); break; case ConnectionState.Play: ServerPlayFactory.Register(packetId, createFunc); break; default: throw new ArgumentOutOfRangeException(nameof(state), state, null); } } }
public void ApplyStatus(StatusFactory factory, BaseAvatar source) { if (currentEffects.Contains(factory)) { return; } Status s = factory.GetStatus(this, source); currentEffects.Add(factory); s.OnUnapply += () => { Debug.Log("OnUnapply"); currentEffects.Remove(factory); OnStatusRemoved(s); }; s.Apply(); OnStatusApplied(s); }
public SubmissionResult Verify(Submission submission, Problem problem, ProblemTest problemTest, Execution execution, string output) { SubmissionResult submissionResult = new SubmissionResult { SubmissionId = submission.Id, TestId = submission.Id, Time = execution.TotalMs, Memory = (int)execution.UsedMemoryKBs }; if (problem.TimeLimit + 199 < execution.TotalMs) { submissionResult.Score = 0; submissionResult.StatusId = StatusFactory.GetStatus(Constants.Statuses.Codes.TLE).Id; } if (problem.MemoryLimit < execution.UsedMemoryKBs) { submissionResult.Score = 0; submissionResult.StatusId = StatusFactory.GetStatus(Constants.Statuses.Codes.MLE).Id; } else if (!execution.HasOutputFile) { submissionResult.Score = 0; submissionResult.StatusId = StatusFactory.GetStatus(Constants.Statuses.Codes.MOF).Id; } else if (MathcesOutput(output, execution.Output)) { submissionResult.Score = problemTest.Score; submissionResult.StatusId = StatusFactory.GetStatus(Constants.Statuses.Codes.OK).Id; } else { submissionResult.Score = 0; submissionResult.StatusId = StatusFactory.GetStatus(Constants.Statuses.Codes.WA).Id; } if (!execution.HasTerminated && submissionResult.Score == 0) { submissionResult.Score = 0; submissionResult.StatusId = StatusFactory.GetStatus(Constants.Statuses.Codes.TLE).Id; } return(submissionResult); return(null); }
// Выполняется при получении статуса private void GetStatus() { // Пробуем получить статус try { _statusFactory = new StatusFactory(_manager); // Инициализируем «фабрику» статусов // Получаем статус текущего пользователя и вставляем его в поле «Первоначальный статус» (textBox1) textBox1.Text = _statusFactory.Get(int.Parse(_sessionInfo.MemberId)); _oldstatus = textBox1.Text; // Записываем наш статус в переменную } // Если не получилось, то выдаем ошибку в специальном поле catch (Exception) { statusStatus.Text = "Нет соединения с ВКонтакте. Проверьте работоспособность интернета."; } }
/// <summary> /// 确认能否添加状态。(状态放打断机制) /// </summary> /// <returns>true :该状态会打断技能 false : 该状态不打断技能</returns> public bool CheckCanAddStatus(int ResalseSceneID, int SkillID, AttackType SkillType, SkillStatusInfo Info) { StatusInterrupt interrputtype = StatusInterrupt.Phy; if (SkillType == AttackType.Physical) { interrputtype = StatusInterrupt.Phy; } else if (SkillType == AttackType.Magic) { interrputtype = StatusInterrupt.Magic; } else { return(true); } StatusM Data = StatusFactory.Create(m_SceneID, ResalseSceneID, SkillID, Info); //打断的技能 if (Data != null /*&& Data.InterruptSkill() == true*/) { for (int i = 0; i < m_RoleStatus.Count; i++) { StatusM status = m_RoleStatus[i]; if (status == null) { continue; } if (status.CheckInterruptStatus(interrputtype) == true) { return(false); } } } return(true); }
internal static void Register <TPacket>(ConnectionState state, int packetId, Func <TPacket> createFunc) where TPacket : Packet { switch (state) { case ConnectionState.Handshake: HandshakeFactory.Register(packetId, createFunc); break; case ConnectionState.Status: StatusFactory.Register(packetId, createFunc); break; case ConnectionState.Login: LoginFactory.Register(packetId, createFunc); break; case ConnectionState.Play: PlayFactory.Register(packetId, createFunc); break; default: throw new ArgumentOutOfRangeException(nameof(state), state, null); } }
public EM_Status(DEM_Status dem) { m_dem = dem; m_fact = new StatusFactory(dem); }
/// <summary> /// Default consturctor of the Statussheet /// </summary> public StatusSheet() { StatusFab = new StatusFactory(); }
public override void ApplyStatus(Health other, StatusFactory factory) { other.ApplyStatus(factory, this); }
public override void ApplyStatus(Health health, StatusFactory factory) { gamePlayer.ApplyStatus(health, factory); }
public ActionResult Post([FromBody] EmulatorPacket emulatorPacket) { EntityEntry <EmulationSessionMap> session; try { session = _sap1EmuContext.Add <EmulationSessionMap>(new EmulationSessionMap { EmulationID = Guid.NewGuid(), ConnectionID = null, SessionStart = DateTime.UtcNow, EmulatorId = _emulatorId, StatusId = StatusFactory.GetStatus(StatusType.Pending).Id, InstructionSetId = _instructionSets[emulatorPacket.SetName] }); _sap1EmuContext.CodeSubmissions.Add(new CodeSubmission() { EmulationID = session.Entity.EmulationID, Code = emulatorPacket.CodeList, }); _sap1EmuContext.SaveChanges(); } catch (KeyNotFoundException) { return(BadRequest( // TODO: Set Type to supported_sets url new ProblemDetails() { Status = StatusCodes.Status400BadRequest, Type = "", Title = "Invalid SetName...", Detail = $"The Instruction Set `{emulatorPacket.SetName}` does not exist.", Instance = HttpContext.Request.Path } )); } try { List <string> compiled_binary = Assemble.Parse(emulatorPacket.CodeList, emulatorPacket.SetName); RAMProgram rmp = new RAMProgram(compiled_binary); EngineProc engine = new EngineProc(); engine.Init(rmp, _decoder, emulatorPacket.SetName); engine.Run(); session.Entity.SessionEnd = DateTime.UtcNow; session.Entity.StatusId = StatusFactory.GetStatus(StatusType.Ok).Id; _sap1EmuContext.SaveChanges(); return(Ok(engine.FrameStack())); } catch (ParseException pe) { session.Entity.SessionEnd = DateTime.UtcNow; session.Entity.StatusId = StatusFactory.GetStatus(StatusType.ParsingError).Id; if (pe.InnerException != null) { string msg = (pe.Message + " " + pe.InnerException.Message); _sap1EmuContext.ErrorLog.Add(new ErrorLog() { EmulationID = session.Entity.EmulationID, ErrorMsg = msg }); _sap1EmuContext.SaveChanges(); return(BadRequest(msg)); } else { _sap1EmuContext.ErrorLog.Add(new ErrorLog() { EmulationID = session.Entity.EmulationID, ErrorMsg = pe.Message }); _sap1EmuContext.SaveChanges(); return(BadRequest(pe.Message)); } } catch (EngineRuntimeException ere) { session.Entity.SessionEnd = DateTime.UtcNow; session.Entity.StatusId = StatusFactory.GetStatus(StatusType.EmulationError).Id; if (ere.InnerException != null) { string msg = (ere.Message + " " + ere.InnerException.Message); _sap1EmuContext.ErrorLog.Add(new ErrorLog() { EmulationID = session.Entity.EmulationID, ErrorMsg = msg }); _sap1EmuContext.SaveChanges(); return(BadRequest(ere.Message + " " + ere.InnerException.Message)); } else { _sap1EmuContext.ErrorLog.Add(new ErrorLog() { EmulationID = session.Entity.EmulationID, ErrorMsg = ere.Message }); _sap1EmuContext.SaveChanges(); return(BadRequest(ere.Message)); } } catch (Exception e) { session.Entity.SessionEnd = DateTime.UtcNow; session.Entity.StatusId = StatusFactory.GetStatus(StatusType.SystemError).Id; _sap1EmuContext.ErrorLog.Add(new ErrorLog() { EmulationID = session.Entity.EmulationID, ErrorMsg = e.Message }); _sap1EmuContext.SaveChanges(); return(StatusCode(StatusCodes.Status500InternalServerError, e.Message)); } }
public abstract void ApplyStatus(Health health, StatusFactory factory);
public void CmdApplyStatus(uint netId, string factoryName) { StatusFactory fact = Resources.Load <StatusFactory>($"StatusEffects/{factoryName}"); ObjectPool.singleton.spawnedObjects[netId].GetComponent <Health>().ApplyStatus(fact, avatar); }
public IActionResult StartEmulation([FromBody] SAP2CodePacket sap2CodePacket) { EmulationSessionMap session = null; try { session = _sap1EmuContext.EmulationSessionMaps .Single(esm => esm.EmulationID == sap2CodePacket.EmulationID); } catch (InvalidOperationException) { return(BadRequest(sap2CodePacket.EmulationID)); } if (session.StatusId != (int)StatusType.Pending) { string message = string.Empty; switch ((StatusType)session.StatusId) { case StatusType.Ok: message = "Emulation Complete: Please use 'GET: /session/{id}/recall' instead"; break; case StatusType.SQLError: case StatusType.ParsingError: case StatusType.EmulationError: case StatusType.SystemError: message = "Emulation Errored: Please create new session"; break; case StatusType.InProgress: message = "Emulation In Progress: Please use 'POST: /{id}/resume' instead"; break; default: message = "Unknown Host Error"; break; } return(BadRequest( new { EmulationID = sap2CodePacket.EmulationID, Status = StatusFactory.GetStatus((StatusType)session.StatusId), Message = message } )); } // This will save the plain code try { _sap1EmuContext.CodeSubmissions.Add( new CodeSubmission() { EmulationID = session.EmulationID, Code = sap2CodePacket.Code } ); _sap1EmuContext.SaveChanges(); } catch (Exception e) { _sap1EmuContext.ErrorLog.Add( new ErrorLog { EmulationID = session.EmulationID, ErrorMsg = "NON-FATAL SQL ERROR:\t" + e.Message + (e.InnerException != null ? "\t" + e.InnerException.Message : "") } ); //session.SessionEnd = DateTime.UtcNow; session.StatusId = (int)StatusType.SQLError; _sap1EmuContext.SaveChanges(); } SAP2BinaryPacket sap2BinaryPacket; // Assemble try { sap2BinaryPacket = new SAP2BinaryPacket() { EmulationID = sap2CodePacket.EmulationID, Code = Assemble.Parse((List <string>)sap2CodePacket.Code), SetName = sap2CodePacket.SetName }; } catch (ParseException pe) { session.StatusId = (int)StatusType.ParsingError; session.SessionEnd = DateTime.UtcNow; string errorMsg = pe.Message + (pe.InnerException != null ? "\n" + pe.InnerException.Message : ""); _sap1EmuContext.ErrorLog.Add( new ErrorLog { EmulationID = session.EmulationID, ErrorMsg = errorMsg } ); _sap1EmuContext.SaveChanges(); return(BadRequest( new { EmulationID = sap2CodePacket.EmulationID, Status = StatusFactory.GetStatus((StatusType)session.StatusId), Message = errorMsg } )); } // Save Binary try { _sap1EmuContext.CodeSubmissionsBinary.Add( new CodeSubmission() { EmulationID = session.EmulationID, Code = sap2BinaryPacket.Code } ); _sap1EmuContext.SaveChanges(); } catch (Exception e) { _sap1EmuContext.ErrorLog.Add( new ErrorLog { EmulationID = session.EmulationID, ErrorMsg = "NON-FATAL SQL ERROR:\t" + e.Message + (e.InnerException != null ? "\t" + e.InnerException.Message : "") } ); session.SessionEnd = DateTime.UtcNow; session.StatusId = (int)StatusType.SystemError; _sap1EmuContext.SaveChanges(); } // Run Emulator try { RAMProgram rmp = new RAMProgram((List <string>)sap2BinaryPacket.Code); EngineProc engine = new EngineProc(); engine.Init(rmp, _decoder, sap2BinaryPacket.SetName); engine.Run(); session.StatusId = (int)StatusType.Ok; session.SessionEnd = DateTime.UtcNow; _sap1EmuContext.SaveChanges(); return(Ok(engine.FrameStack())); } catch (EngineRuntimeException ere) { session.StatusId = (int)StatusType.EmulationError; session.SessionEnd = DateTime.UtcNow; string errorMsg = ere.Message + (ere.InnerException != null ? "\n" + ere.InnerException.Message : ""); _sap1EmuContext.ErrorLog.Add( new ErrorLog { EmulationID = session.EmulationID, ErrorMsg = errorMsg } ); _sap1EmuContext.SaveChanges(); return(BadRequest( new { EmulationID = sap2CodePacket.EmulationID, Status = StatusFactory.GetStatus((StatusType)session.StatusId), Message = errorMsg } )); } }
/// <summary> /// 添加状态,SceneID 释放技能对象的SceneID /// </summary> /// <returns>true :该状态会打断技能 false : 该状态不打断技能</returns> public bool AddStatus(int ResalseSceneID, int SkillID, SkillStatusInfo Info) { StatusType s = (StatusType)Info.m_type; SetAttrChange(); //状态叠加规则 if (Info.m_RelpaceInfo.m_type == 1) { } else if (Info.m_RelpaceInfo.m_type == 2) //控制类状态 { if (Info.m_RelpaceInfo.m_compatible == 0) { foreach (StatusM status in m_RoleStatus) { if (status.CheckHaveStatus() && status.ReplaceInfo.m_type == 2) { if (status.ReplaceInfo.m_compatible == 0) { if (status.ReplaceInfo.m_reppriority > Info.m_RelpaceInfo.m_reppriority) { return(false); } } } } foreach (StatusM status in m_RoleStatus) { if (status.CheckHaveStatus() && status.ReplaceInfo.m_type == 2) { status.ClearStatus(); } } } else { foreach (StatusM status in m_RoleStatus) { if (status.ReplaceInfo.m_type == 2) { if (status.CheckHaveStatus() && status.ReplaceInfo.m_compatible == 0) { return(false); } } } } } else { } // StatusM Data = FindStatusM(s); if (Data != null) { if (Data.AddStatus(ResalseSceneID, SkillID, Info)) { Data.AddStatusEffect(Info, SkillID, CheckCreateAction(Info)); return(Data.InterruptSkill()); } } else { Data = StatusFactory.Create(m_SceneID, ResalseSceneID, SkillID, Info); if (Data != null) { Data.Init(m_SceneID, ResalseSceneID, SkillID, Info); m_RoleStatus.Add(Data); Info.m_releasesceneid = ResalseSceneID; Data.AddStatusEffect(Info, SkillID, CheckCreateAction(Info)); Life life = CM.GetAllLifeM(m_SceneID, LifeMType.ALL); if (life != null) { if (Info.m_bufftype == 1) { life.ShowBuff(Info.m_name); } else { life.ShowDebuff(Info.m_name); } } return(Data.InterruptSkill()); } } return(false); }