private static void CalculateMyTankShotPredictions(Point point, Direction direction, List <Direction> command) { var startShotPoint = point; var startIndex = Math.Min(-1 - State.ThisRound.MyTank.ShotCountdownLeft, 1); for (var i = startIndex; i <= Bullet.DefaultSpeed * AppSettings.MyShotPredictionDepth; i++) { var shotPoint = BaseMobile.Shift(startShotPoint, direction); var shotCell = Field.GetCell(shotPoint); var depth = (int)Math.Ceiling((decimal)i / 2); if (i >= -1) { var actualDepth = (command.Count - 1) + Math.Max(0, State.ThisRound.MyTank.ShotCountdownLeft) + depth; var directionActCommand = command.ToList(); directionActCommand.Add(Direction.Act); shotCell.AddPrediction(actualDepth, PredictionType.MyShot, directionActCommand); } if (shotCell.CanShootThrough) { startShotPoint = shotPoint; } else { break; } } }
public Energy(BaseMobile mobile) : base(mobile) { MaxValue = mobile.Dexterity.Value * 10; CurrentValue = MaxValue; Mobile.Dexterity.OnAfterValueChangedEvent += new Kryz.CharacterStats.CharacterStat.CharacterStatEventHandler(OnAfterDexterityChanged); }
public static void CalculateTankShotPredictions(Point point, PredictionType type, Direction direction, BaseTank tank, int maxDepth = 1, List <Direction> command = null) { var startShotPoint = point; var startIndex = Math.Min(-1 - tank.ShotCountdownLeft, 1); //if (!tank.IsShotThisRound) // return; for (var i = startIndex; i <= Bullet.DefaultSpeed * maxDepth; i++) { var shotPoint = BaseMobile.Shift(startShotPoint, direction); var shotCell = Field.GetCell(shotPoint); var depth = (int)Math.Ceiling((decimal)i / 2); if (i >= -1) { var actualDepth = Math.Max(1, tank.ShotCountdownLeft) + depth; shotCell.AddPrediction(actualDepth, type, command); } if (shotCell.CanShootThrough) { startShotPoint = shotPoint; } else { break; } } }
private static void PopulateMyHiddenTank(MyTank prevMyTank, List <Tree> trees, Direction?direction) { var prevMyTankStepPosition = prevMyTank.GetNextPositionNotCheckedForCanMove(direction); foreach (var tree in trees) { if (prevMyTankStepPosition != tree.Point) { continue; } var thisHiddenMyTank = prevMyTank.DeepClone(); thisHiddenMyTank.Point = tree.Point; thisHiddenMyTank.Direction = direction; thisHiddenMyTank.UpdateElementByDirection(); var cell = Field.GetCell(tree.Point); cell.Items.Insert(0, thisHiddenMyTank); State.ThisRound.MyTank = thisHiddenMyTank; if (State.PrevRound.CurrentMoveCommands.Contains(Direction.Act)) { var bulletPoint = BaseMobile.Shift(prevMyTank.Point, direction, Bullet.DefaultSpeed); var bullet = new Bullet(Element.BULLET, bulletPoint); bullet.Direction = direction; bullet.IsMyBullet = true; var bulletCell = Field.GetCell(bulletPoint); bulletCell.Items.Insert(0, bullet); State.ThisRound.Bullets.Add(bullet); } } }
private void SetAnimation(BaseMobile mobile) { var equipment = this.ItemTemplate as BaseEquipment; var movementAnimationHandler = GameObject.FindGameObjectWithTag("Player").GetComponentInChildren <MovementAnimationHandler>(); Animator animator = null; switch (equipment.EquipmentType) { case EquipmentType.Chest: break; case EquipmentType.Legs: animator = movementAnimationHandler.LegsSlot.GetComponentInChildren <Animator>(); animator.runtimeAnimatorController = IsEquipped ? equipment.ItemPrefab.GetComponent <EquippableItemBehaviour>().AnimatorController : null; break; case EquipmentType.Boots: break; case EquipmentType.RightHand: break; case EquipmentType.LeftHand: break; } }
public Health(BaseMobile mobile) : base(mobile) { MaxValue = mobile.Strength.Value * 10; CurrentValue = MaxValue; Mobile.Strength.OnAfterValueChangedEvent += new Kryz.CharacterStats.CharacterStat.CharacterStatEventHandler(OnAfterValueStrengthChanged); }
/// <summary> /// Preenche um objeto proposta com todas as informações contidas na base de dados da Proposta e de todos os seus itens. /// </summary> /// <returns> Objeto Proposta </returns> private Proposta fillProposta() { Proposta proposta = null; objTransacoes = new BaseMobile(); daoProposta = new DaoProposta(); daoEmbalagem = new DaoEmbalagem(); try { //Carrega um list com informações gerais sobre a proposta atual na base Mobile. listInfoProposta = daoProposta.fillInformacoesProposta(); //carrega um obj Proposta com a atual proposta na base mobile //e com o item top 1 da proposta que ainda não esteja separado. proposta = daoProposta.fillPropostaWithTop1Item(); //Set o total de peças e o total de Itens para o objeto proposta proposta.setTotalValoresProposta(Convert.ToDouble(listInfoProposta[4]), Convert.ToDouble(listInfoProposta[3])); //Carrega informações de Embalagem para o produto que será trabalhado. proposta.ListObjItemProposta[0].Embalagens = daoEmbalagem.carregarEmbalagensProduto(proposta); //Set os valores para os atributos auxiliares. ProcedimentosLiberacao.inicializarProcedimentos(Convert.ToDouble(listInfoProposta[4]), Convert.ToDouble(listInfoProposta[3]), proposta.ListObjItemProposta[0].Quantidade, proposta.Volumes); //Carrega o formulário com as informações que serão manusueadas para a proposta e o item da proposta //this.fillCamposForm(proposta.Numero, (string)proposta.RazaoCliente, proposta.Totalpecas, proposta.TotalItens, (string)proposta.ListObjItemProposta[0].Partnumber, (string)proposta.ListObjItemProposta[0].Descricao, (string)proposta.ListObjItemProposta[0].NomeLocalLote, proposta.ListObjItemProposta[0].Quantidade.ToString()); this.fillCamposForm(proposta); //Retorna o objeto proposta o qual terá suas informações trabalhadas do processo de conferencia do item. return(proposta); } catch (ArithmeticException ex) { StringBuilder sbMsg = new StringBuilder(); sbMsg.Append("Problemas durante o processamento de informações sobre a proposta.\n"); sbMsg.AppendFormat("Error : {0}", ex.Message); MainConfig.errorMessage(sbMsg.ToString(), "Operação Inválida!"); throw; //return null; } catch (Exception ex) { StringBuilder sbMsg = new StringBuilder(); sbMsg.Append("Problemas durante o processamento de informações sobre a proposta \n"); sbMsg.AppendFormat("Error : {0}", ex.Message); sbMsg.Append("Contate o Administrador do sistema."); MainConfig.errorMessage(sbMsg.ToString(), "Sistem Error!"); throw; //return null; } finally { //zera o obj transações objTransacoes = null; daoProposta = null; proposta = null; } }
public PhoneForm() { InitializeComponent(); simCorp = new SimCorpMobile(new TextBoxOutput(PlayTextBox)); simCorp.PlaybackDevice = simCorp.Speaker; unofficialHeadset = new UnofficialHeadset(new RealSpeaker(0.2), new RealSpeaker(0.2), 50, new TextBoxOutput(PlayTextBox)); samsungHeadset = new SamsungHeadset(new RealSpeaker(0.5), new RealSpeaker(0.5), 20, new TextBoxOutput(PlayTextBox)); externalSpeaker = new ExternalSpeaker(new RealSpeaker(10), 20, new TextBoxOutput(PlayTextBox)); }
public static void CalculateStuckPosition(BaseMobile mobileItem, PredictionType type, int maxDepth) { var cell = Field.GetCell(mobileItem.Point); for (var depth = 1; depth <= maxDepth; depth++) { cell.AddPrediction(depth, type, item: mobileItem); } }
public override bool Consume(ItemInstance instance, BaseMobile mobile) { if (mobile.Health.CurrentValue == mobile.Health.MaxValue) { Debug.Log("mobile is already at max health."); return(false); } mobile.Health.CurrentValue += (((int)instance.Quality + 0.5f) * 10); return(true); }
void InitGameData() { BaseMobile.Init(); BaseItem.Init(); // load all room id's into used id' section foreach (Room r in ScriptResolver.ImportedRooms) { r.RoomsIDsInUse.Add(r.RoomID); } Console.WriteLine("Server startup tasks complete."); }
private static void PopulateMyTankUnderTrees() { Settings.Get.ShowMyTankUnderTree = false; //todo: temp if (!State.HasPrevRound || Settings.Get.ShowMyTankUnderTree || State.ThisRound.MyTank != null) { return; } var trees = State.ThisRound.Trees; var prevMyTank = State.PrevRound.MyTank; if (prevMyTank == null) { return; } if (State.PrevRound.CurrentMoveCommands.Count == 1 && State.PrevRound.CurrentMoveCommands[0] == Direction.Act) { return; } var prevDirection = State.PrevRound.CurrentMoveCommands.FirstOrDefault(x => BaseMobile.ValidDirections.Contains(x)); var prevMyTankStepPosition = prevMyTank.GetNextPositionNotCheckedForCanMove(prevDirection); foreach (var tree in trees) { if (prevMyTankStepPosition == tree.Point) { var thisHiddenMyTank = prevMyTank.DeepClone(); thisHiddenMyTank.Point = tree.Point; thisHiddenMyTank.CurrentDirection = prevDirection; var cell = Field.GetCell(tree.Point); cell.Items.Insert(0, thisHiddenMyTank); State.ThisRound.MyTank = thisHiddenMyTank; if (State.PrevRound.CurrentMoveCommands.Contains(Direction.Act)) { var bulletPoint = BaseMobile.Shift(prevMyTank.Point, prevDirection, Bullet.DefaultSpeed); var bullet = new Bullet(Element.BULLET, bulletPoint); bullet.CurrentDirection = prevDirection; var bulletCell = Field.GetCell(bulletPoint); bulletCell.Items.Insert(0, bullet); State.ThisRound.Bullets.Add(bullet); } } } }
public int SetCurrentAnimation(Vector2 direction, BaseMobile mobile) { //use the Run states by default string[] directionArray = null; if (mobile.IsAttacking) { directionArray = attackingAnimations; } else if (mobile.IsDefending) { directionArray = defendingAnimations; } else if (direction.magnitude < .01f) //measure the magnitude of the input. { //if we are basically standing still, we'll use the Static states //we won't be able to calculate a direction if the user isn't pressing one, anyway! directionArray = idleAnimations; } else { //we can calculate which direction we are going in //use DirectionToIndex to get the index of the slice from the direction vector //save the answer to lastDirection directionArray = walkingAnimations; lastDirectionIndex = DirectionToIndex(direction, 4); } if (mobile.Health <= 0) { directionArray = deadAnimations; } //tell the animator to play the requested state var animationName = directionArray[lastDirectionIndex]; if (lastAnimationName == animationName) { return(lastDirectionIndex); } lastDirection = direction; //play base character animation animator.Play(animationName, -1, 0); SetHandleSortIndex(lastDirectionIndex, mobile.IsAttacking); lastAnimationName = animationName; return(lastDirectionIndex); }
public void RemoveModifiers(BaseMobile mobile) { if (isModifiersSet) { var bonusList = ItemTemplate.GetBonusList(); foreach (var bonus in bonusList) { var characterStat = GetField <CharacterStat>(mobile, bonus.ModifierName); if (characterStat != null) { characterStat.RemoveAllModifiersFromSource(this); } } isModifiersSet = false; } }
public frmLogin() { try { daoUsuario = new DaoUsuario(); //Configurações de criação do form InitializeComponent(); //Seta as configurações principais a serem usadas na classe MainConfig MainConfig.setMainConfigurations(); //Configura a string de conexão para conexão com o servidor. SqlServerConn.configuraStrConnection(System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase), "strConn.txt"); //Configura string de conexão E/OU cria a base mobile e todas as suas tabelas. BaseMobile.configurarBaseMobile(); //Recupera Permissões a serem usadas no sistema mobile MainConfig.recuperaPermissoes(); //Configura Layout this.configControls(); //Preenche o combo de Usuários para que seja validado o Login this.preencheComboBoxUsuario(cbUsuario, daoUsuario.retornaListUsuarios(), Usuario.usuarioProperty.NOME, false); } catch (System.Data.SqlClient.SqlException sqlEx) { StringBuilder bdMsg = new StringBuilder(); bdMsg.Append("\nOcorreu um problema durante a tentativa de conexão com a base de dados!"); bdMsg.Append("\nA aplicação não poderá ser iniciada."); bdMsg.Append("\nDescription :" + sqlEx.Message); bdMsg.Append("\nSource :" + sqlEx.Source); MainConfig.errorMessage(bdMsg.ToString(), "Connection error"); Application.Exit(); } catch (Exception ex) { StringBuilder bdMsg = new StringBuilder(); bdMsg.Append("\nO sistema não pode ser iniciado."); bdMsg.Append("\nFavor contate o administrador do sitema."); bdMsg.Append("\nDescription :" + ex.Message); MainConfig.errorMessage(bdMsg.ToString(), "Application Error."); Application.Exit(); } finally { daoUsuario = null; } }
void Update() { if (!this.IsPlaced) { return; } if (this.state == ETowerState.LOADING) { return; } if (this.state == ETowerState.WATCHING) { var layerMask = LayerMask.GetMask("Mobiles"); var cols = Physics.OverlapSphere(this.transform.position, this.attackRange, layerMask); if (cols.Length > 0) { var target = cols[0].GetComponent <BaseMobile>(); Debug.Log(target.gameObject.name); if (target) { Debug.Log("ATTACKING!!!!"); this.target = target; this.state = ETowerState.ATTACKING; } } return; } if (target && Vector3.Distance(this.transform.position, target.transform.position) > this.attackRange) { this.target = null; this.state = ETowerState.WATCHING; return; } if (this.target && !this.target.isActiveAndEnabled) { this.target = null; this.state = ETowerState.WATCHING; } if (this.target && this.state == ETowerState.ATTACKING) { this.Attack(); } }
public virtual void SetModifiers(BaseMobile mobile) { if (!isModifiersSet) { var bonusList = ItemTemplate.GetBonusList(); foreach (var bonus in bonusList) { var characterStat = GetField <CharacterStat>(mobile, bonus.ModifierName); if (characterStat != null) { characterStat.AddModifier(new StatModifier(bonus.Value + (int)this.Quality, StatModType.Flat, this)); } } isModifiersSet = true; } }
public void Interact(BaseMobile baseMobile) { Debug.Log("Interacted with rock tile"); //TODO: Check if mobile is equipping pickaxe if (Source < 0) { //TODO: create popup that says there is no source left on this rock Debug.Log("There is no source left on this rock"); return; } //TODO: Add source item to mobile's backpack Source--; Debug.Log(Source); }
private static void PopulateAiTanksUnderTrees() { if (!State.HasPrevRound) { return; } var trees = State.ThisRound.Trees; var prevAiTanks = State.PrevRound.AiTanks; foreach (var tree in trees) { var prevHiddenAiTank = prevAiTanks.FirstOrDefault(b => b.GetNextPositionNotCheckedForCanMove() == tree.Point); if (prevHiddenAiTank == null) { continue; } var thisHiddenAiTank = prevHiddenAiTank.DeepClone(); thisHiddenAiTank.Point = tree.Point; var cell = Field.GetCell(tree.Point); cell.Items.Insert(0, thisHiddenAiTank); State.ThisRound.AiTanks.Add(thisHiddenAiTank); if (prevHiddenAiTank.IsShotThisRound && prevHiddenAiTank.Direction.HasValue) { var bulletPoint = BaseMobile.Shift(prevHiddenAiTank.Point, prevHiddenAiTank.Direction, Bullet.DefaultSpeed); var bullet = new Bullet(Element.BULLET, bulletPoint); bullet.Direction = prevHiddenAiTank.Direction; var bulletCell = Field.GetCell(bulletPoint); bulletCell.Items.Insert(0, bullet); State.ThisRound.Bullets.Add(bullet); } } }
private static void CalculateEnemyShotForDirection(Point point, Direction direction, EnemyTank tank) { var startShotPoint = point; //var startIndex = Math.Min(-1 - tank.ShotCountdownLeft, 1); var startIndex = 1; for (var i = startIndex; i <= Bullet.DefaultSpeed * AppSettings.EnemyTankShotPredictionDepth; i++) { var shotPoint = BaseMobile.Shift(startShotPoint, direction); var shotCell = Field.GetCell(shotPoint); if (shotCell.IsWall) { break; } //var depth = (int)Math.Ceiling((decimal)i / 2); //var actualDepth = Math.Max(1, tank.ShotCountdownLeft) + depth; var depth = (int)Math.Ceiling((decimal)i / 2); var shotCountDownLeft = tank.ShotCountdownLeft; var actualDepth = shotCountDownLeft + depth; shotCell.AddPrediction(actualDepth, PredictionType.EnemyShot); if (shotCell.CanShootThrough) { startShotPoint = shotPoint; } else { break; } } }
public BaseRangedWeapon(string name, float damage, float swingSpeed, BaseMobile mobile) : base(name, damage, swingSpeed, mobile) { }
/// <summary> /// Reliza todos os processos nescessários para efetuar a carga de dados na base Mobile. /// </summary> public static void carregaBaseMobile(FrmProposta frm) { var objTransacoes = new BaseMobile(); var objProposta = new Proposta(); var daoItemProposta = new DaoProdutoProposta(); var daoProposta = new DaoProposta(); var daoProduto = new DaoProduto(); var daoEmbalagem = new DaoEmbalagem(); //LIMPA INFORMAÇÕES RESULTANTE DE OUTROS PRODUTOS JÁ CONFERIDOS ProcedimentosLiberacao.limpar(); try { //Limpa a Base. objTransacoes.clearBaseMobile(); //Carrega um objeto Proposta e inicia todo o procedimento. //Caso não exista propostas a serem liberadas gera um exception //onde será feito os tratamentos para evitar o travamento do sistema. if ((objProposta = daoProposta.fillTop1PropostaServidor()) != null) { daoProposta.InsertOrUpdatePickingMobile(objProposta, MainConfig.UserOn.Codigo, Proposta.StatusLiberacao.TRABALHANDO, DateTime.Now); //recupera o codigoPickingMobile da proposta trabalhada. objProposta.CodigoPikingMobile = daoProposta.selectMaxCodigoPickingMobile(objProposta.Codigo); //Realiza o Insert na Base Mobile daoProposta.insertProposta(objProposta, MainConfig.UserOn.Codigo); //Recupera List com itens da proposta //Insert na Base Mobile tabela tb0002_ItensProposta daoItemProposta.carregarBaseMobileItens(daoItemProposta.fillListItensProposta((int)objProposta.Codigo).ToList <ProdutoProposta>()); //Insert na base Mobile tabela tb0003_Produtos //Recupera informações sobre os produtos existentes na proposta daoProduto.insertProdutoBaseMobile(daoProduto.fillListProduto((int)objProposta.Codigo).ToList <Produto>()); //Armazena informações de embalagens do produto na base mobile. daoEmbalagem.insertEmbalagemBaseMobile(daoEmbalagem.cargaEmbalagensProduto((int)objProposta.Codigo)); //Carrega Informações das Embalagens de Separação. //Carrega Quantidade das Embalagens utilizadas nos volumes da separação ProcedimentosLiberacao.ListEmbalagensSeparacao = daoEmbalagem.carregarInformacoesEmbalagensUtilizadas((Int32)objProposta.CodigoPikingMobile, daoEmbalagem.carregarEmbalagensSeparacao()); } else { throw new NoNewPropostaException("Não existem novas propostas a serem liberadas!!"); } } catch (SqlQueryExceptions ex) { frm.exitOnError(ex.Message, "Próxima Proposta", false); } catch (NoNewPropostaException ex) { frm.exitOnError(ex.Message, "Próxima Proposta", false); } catch (SqlCeException sqlEx) { ProcedimentosLiberacao.interromperLiberacao(objProposta); daoProposta.updatePropostaTbPickingMobile(objProposta, Proposta.StatusLiberacao.NAOFINALIZADO, true, false); StringBuilder strBuilder = new StringBuilder(); strBuilder.Append("O procedimento não pode ser concluído.\n"); strBuilder.AppendFormat("Erro : {0}", sqlEx.Errors); strBuilder.AppendFormat("Description : {0}", sqlEx.Message); frm.exitOnError(strBuilder.ToString(), "SqlException!!", false); } catch (Exception ex) { ProcedimentosLiberacao.interromperLiberacao(objProposta); daoProposta.updatePropostaTbPickingMobile(objProposta, Proposta.StatusLiberacao.NAOFINALIZADO, true, false); StringBuilder strBuilder = new StringBuilder(); strBuilder.Append("O procedimento não pode ser concluído.\n"); strBuilder.AppendFormat(" Descrição: {0}", ex.Message); strBuilder.Append("\nContate o Administrador do sistema."); frm.exitOnError(strBuilder.ToString(), "SqlException!!", false); } finally { objTransacoes = null; objProposta = null; daoProposta = null; daoProduto = null; daoItemProposta = null; daoEmbalagem = null; } }
/// <summary> /// Realiza todos os procedimentos nescessários para carregar o próximo item a ser separado. /// </summary> /// /// <returns> /// TRUE --> caso exista um próximo item a ser trabalhado /// FALSE --> caso não exista mais items para serem trabalhados. /// </returns> public static bool nextItemProposta(Proposta objProposta,FrmProposta frm) { bool hasItem = false; var daoItemProposta = new DaoProdutoProposta(); var daoEtiqueta = new DaoEtiqueta(); var objTransacoes = new BaseMobile(); try { frm.clearParaProximoItem(); tratarParaProximoItem(objProposta); //grava informações do item na base de dados mobile daoItemProposta.updateStatusItemProposta(objProposta.ListObjItemProposta[0]); //inseri informações das etiquetas referente ao produto liberado em formato Xml daoItemProposta.updateXmlItemProposta(montarXmlProcedimento(), objProposta.ListObjItemProposta[0].CodigoItemProposta); //carrega próximo item if (frm.temItensConferir()) { var prod = daoItemProposta.itemATrabalhar(); var daoEmbalagem = new DaoEmbalagem(); if (prod != null) { //Carrega informações de Embalagem para o produto que será trabalhado. prod.Embalagens = daoEmbalagem.carregarEmbalagensProduto(prod); hasItem = true; objProposta.setNextItemProposta(prod); } else { hasItem = false; } } else // CASO não tenha um próximo item { hasItem = false; } //Se existir um próximo item if (hasItem) { //seta Parametros para iniciar leitura do próximo item inicializarProcedimentosProximoItem(objProposta.ListObjItemProposta[0].Quantidade); //recarrega o form com as informações do próximo item. //frm.fillCamposForm(objProposta, TotalPecas, TotalItens); frm.fillCamposForm(objProposta); } else { frm.clearFormulario(true, true); } } catch (SqlCeException Ex) { MessageBox.Show(Ex.Message); } catch (Exception ex) { throw new Exception("Erro ao carregar próximo item!", ex); } finally { daoEtiqueta = null; daoItemProposta = null; objTransacoes = null; } return hasItem; }
public MobileInventory(BaseMobile mobile) { this.mobile = mobile; MaxWeight = (float)mobile.Strength.Value * 10; }
public BaseDamagableProperty(BaseMobile mobile) { Mobile = mobile; }
private static string SelectionMsg(BaseMobile mobile) { return(mobile.PlaybackDeviceName + " playback selected" + Environment.NewLine); }
private static void CalculateMyShotsForDirection(Point point, Direction direction, List <Command> commands, List <Direction> command, bool correctFirstShotDepth = false) { var startShotPoint = point; //var startIndex = Math.Min(1 - State.ThisRound.MyTank.ShotCountdownLeft, 1); var startIndex = 1; for (var i = startIndex; i <= Bullet.DefaultSpeed * AppSettings.MyShotPredictionDepth; i++) { var shotPoint = BaseMobile.Shift(startShotPoint, direction); var shotCell = Field.GetCell(shotPoint); if (shotCell.IsWall) { break; } var depth = (int)Math.Ceiling((decimal)i / 2); if (correctFirstShotDepth) { depth--; } var directionActCommand = command.ToList(); directionActCommand.Add(Direction.Act); var directionActCommands = commands.ToList(); directionActCommands.Add(new Command(directionActCommand.ToArray())); var commandRoundsCount = directionActCommands.Count; var shotDepth = depth; //var depthShotDelay = commandRoundsCount + shotDepth; //var shotCountDownDifference = State.ThisRound.MyTank.ShotCountdownLeft - depthShotDelay; var notShotRoundsCount = directionActCommands.Count(x => !x.IsActCommand()); var shotCountDownLeft = Math.Max(State.ThisRound.MyTank.ShotCountdownLeft - notShotRoundsCount, 0); //var shotCountDownLeft = 0; var actualDepth = commandRoundsCount + shotDepth + shotCountDownLeft; //var currentDirectionStr = directionActCommand.CommandsToString(); //var shotCellPredictions = shotCell.Predictions.MyShotPredictions // .Where(x => x.Depth == actualDepth && x.Commands.AreSameCommands(directionActCommands)) // .ToList(); //if (!shotCellPredictions.Any()) shotCell.AddPrediction(actualDepth, PredictionType.MyShot, directionActCommands); if (shotCell.CanShootThrough) { startShotPoint = shotPoint; } else { break; } } }
/// <summary> /// Reliza todos os processos nescessários para efetuar a carga de dados na base Mobile. /// </summary> public static void carregaBaseMobile(FrmProposta frm) { var objTransacoes = new BaseMobile(); var objProposta = new Proposta(); var daoItemProposta = new DaoProdutoProposta(); var daoProposta = new DaoProposta(); var daoProduto = new DaoProduto(); var daoEmbalagem = new DaoEmbalagem(); //LIMPA INFORMAÇÕES RESULTANTE DE OUTROS PRODUTOS JÁ CONFERIDOS ProcedimentosLiberacao.limpar(); try { //Limpa a Base. objTransacoes.clearBaseMobile(); //Carrega um objeto Proposta e inicia todo o procedimento. //Caso não exista propostas a serem liberadas gera um exception //onde será feito os tratamentos para evitar o travamento do sistema. if ((objProposta = daoProposta.fillTop1PropostaServidor()) != null) { daoProposta.InsertOrUpdatePickingMobile(objProposta, MainConfig.UserOn.Codigo, Proposta.StatusLiberacao.TRABALHANDO, DateTime.Now); //recupera o codigoPickingMobile da proposta trabalhada. objProposta.CodigoPikingMobile = daoProposta.selectMaxCodigoPickingMobile(objProposta.Codigo); //Realiza o Insert na Base Mobile daoProposta.insertProposta(objProposta, MainConfig.UserOn.Codigo); //Recupera List com itens da proposta //Insert na Base Mobile tabela tb0002_ItensProposta daoItemProposta.carregarBaseMobileItens(daoItemProposta.fillListItensProposta((int)objProposta.Codigo).ToList<ProdutoProposta>()); //Insert na base Mobile tabela tb0003_Produtos //Recupera informações sobre os produtos existentes na proposta daoProduto.insertProdutoBaseMobile(daoProduto.fillListProduto((int)objProposta.Codigo).ToList<Produto>()); //Armazena informações de embalagens do produto na base mobile. daoEmbalagem.insertEmbalagemBaseMobile(daoEmbalagem.cargaEmbalagensProduto((int)objProposta.Codigo)); //Carrega Informações das Embalagens de Separação. //Carrega Quantidade das Embalagens utilizadas nos volumes da separação ProcedimentosLiberacao.ListEmbalagensSeparacao = daoEmbalagem.carregarInformacoesEmbalagensUtilizadas((Int32)objProposta.CodigoPikingMobile, daoEmbalagem.carregarEmbalagensSeparacao()); } else { throw new NoNewPropostaException("Não existem novas propostas a serem liberadas!!"); } } catch (SqlQueryExceptions ex) { frm.exitOnError(ex.Message, "Próxima Proposta", false); } catch (NoNewPropostaException ex) { frm.exitOnError(ex.Message, "Próxima Proposta", false); } catch (SqlCeException sqlEx) { ProcedimentosLiberacao.interromperLiberacao(objProposta); daoProposta.updatePropostaTbPickingMobile(objProposta, Proposta.StatusLiberacao.NAOFINALIZADO, true, false); StringBuilder strBuilder = new StringBuilder(); strBuilder.Append("O procedimento não pode ser concluído.\n"); strBuilder.AppendFormat("Erro : {0}", sqlEx.Errors); strBuilder.AppendFormat("Description : {0}", sqlEx.Message); frm.exitOnError(strBuilder.ToString(), "SqlException!!", false); } catch (Exception ex) { ProcedimentosLiberacao.interromperLiberacao(objProposta); daoProposta.updatePropostaTbPickingMobile(objProposta, Proposta.StatusLiberacao.NAOFINALIZADO, true, false); StringBuilder strBuilder = new StringBuilder(); strBuilder.Append("O procedimento não pode ser concluído.\n"); strBuilder.AppendFormat(" Descrição: {0}", ex.Message); strBuilder.Append("\nContate o Administrador do sistema."); frm.exitOnError(strBuilder.ToString(), "SqlException!!", false); } finally { objTransacoes = null; objProposta = null; daoProposta = null; daoProduto = null; daoItemProposta = null; daoEmbalagem = null; } }
/// <summary> /// Realiza todos os procedimentos nescessários para carregar o próximo item a ser separado. /// </summary> /// /// <returns> /// TRUE --> caso exista um próximo item a ser trabalhado /// FALSE --> caso não exista mais items para serem trabalhados. /// </returns> private bool nextItemProposta() { bool hasItem = false; daoItemProposta = new DaoProdutoProposta(); daoEtiqueta = new DaoEtiqueta(); objTransacoes = new BaseMobile(); try { this.clearParaProximoItem(); //processa Quantidade de itens ProcedimentosLiberacao.decrementaQtdTotalItens(1); //processa qunatidade de peças ProcedimentosLiberacao.decrementaQtdTotalPecas(objProposta.ListObjItemProposta[0].Quantidade); //seta status para separado ProcedimentosLiberacao.setStatusProdutoParaSeparado(objProposta.ListObjItemProposta[0]); //grava informações do item na base de dados mobile daoItemProposta.updateStatusItemProposta(objProposta.ListObjItemProposta[0]); ////ESTE TRECHO TALVES ESTEJA SENDO DESNECESSÀRIO. ////ANALIZAR MELHOR Action SUA UTILIZACAO //daoEtiqueta.insertSequencia(ProcedimentosLiberacao.EtiquetasLidas); //inseri informações das etiquetas referente ao produto liberado em formato Xml daoItemProposta.updateXmlItemProposta(Etiqueta.gerarXmlItensEtiquetas(ProcedimentosLiberacao.EtiquetasLidas), objProposta.ListObjItemProposta[0].CodigoItemProposta); //carrega próximo item if (ProcedimentosLiberacao.TotalItens > 0) { ProdutoProposta prod = daoItemProposta.fillTop1ItemProposta(); //Carrega informações de Embalagem para o produto que será trabalhado. prod.Embalagens = daoEmbalagem.carregarEmbalagensProduto(prod); if (prod != null) { hasItem = true; objProposta.setNextItemProposta(prod); } else { hasItem = false; } } else // CASO não tenha um próximo item { hasItem = false; } //Se existir um próximo item if (hasItem) { //seta Parametros para iniciar leitura do próximo item ProcedimentosLiberacao.inicializarProcedimentosProximoItem(objProposta.ListObjItemProposta[0].Quantidade); //recarrega o form com as informações do próximo item. this.fillCamposForm(objProposta, ProcedimentosLiberacao.TotalPecas, ProcedimentosLiberacao.TotalItens); } else { this.clearFormulario(true, true); } } catch (SqlCeException Ex) { MessageBox.Show(Ex.Message); } catch (Exception ex) { throw new Exception("Erro ao carregar próximo item!", ex); } finally { daoEtiqueta = null; daoItemProposta = null; } return(hasItem); }
public abstract void OnHit(BaseMobile mobile);
public RoundShield(string name, float defendRate, float swingSpeed, BaseMobile mobile) : base(name, defendRate, swingSpeed, mobile) { }
/// <summary> /// Reliza todos os processos nescessários para efetuar a carga de dados na base Mobile. /// </summary> private void carregaBaseMobile() { objTransacoes = new BaseMobile(); objProposta = new Proposta(); daoItemProposta = new DaoProdutoProposta(); daoProposta = new DaoProposta(); daoProduto = new DaoProduto(); daoEmbalagem = new DaoEmbalagem(); try { //Limpa a Base. objTransacoes.clearBaseMobile(); //Carrega um objeto Proposta e inicia todo o procedimento. //Caso não exista propostas a serem liberadas gera um exception //onde será feito os tratamentos para evitar o travamento do sistema. if ((objProposta = daoProposta.fillTop1PropostaServidor()) != null) { daoProposta.InsertOrUpdatePickingMobile(objProposta, MainConfig.CodigoUsuarioLogado, Proposta.StatusLiberacao.TRABALHANDO, DateTime.Now); //recupera o codigoPickingMobile da proposta trabalhada. objProposta.CodigoPikingMobile = daoProposta.selectMaxCodigoPickingMobile(objProposta.Codigo); //Realiza o Insert na Base Mobile daoProposta.insertProposta(objProposta, MainConfig.CodigoUsuarioLogado); ////Recupera List com itens da proposta //this.listaProdutoProposta = daoItemProposta.fillListItensProposta((int)objProposta.Codigo).ToList<ProdutoProposta>(); ////Insert na Base Mobile tabela tb0002_ItensProsposta //daoItemProposta.insertItemProposta(listaProdutoProposta.ToList<ProdutoProposta>()); //Recupera List com itens da proposta //Insert na Base Mobile tabela tb0002_ItensProposta daoItemProposta.insertItemProposta(daoItemProposta.fillListItensProposta((int)objProposta.Codigo).ToList <ProdutoProposta>()); //Recupera informações sobre os produtos existentes na proposta //this.listaProduto = daoProduto.fillListProduto((int)objProposta.Codigo).ToList<Produto>(); //daoProduto.insertProdutoBaseMobile(listaProduto.ToList<Produto>()); //Insert na base Mobile tabela tb0003_Produtos //Recupera informações sobre os produtos existentes na proposta daoProduto.insertProdutoBaseMobile(daoProduto.fillListProduto((int)objProposta.Codigo).ToList <Produto>()); //Armazena informações de embalagens do produto na base mobile. daoEmbalagem.insertEmbalagemBaseMobile(daoEmbalagem.cargaEmbalagensProduto((int)objProposta.Codigo)); //Carrega Informações das Embalagens de Separação. ProcedimentosLiberacao.ListEmbalagensSeparacao = daoEmbalagem.carregarEmbalagensSeparacao(); } else { throw new NoNewPropostaException("Não existem novas propostas a serem liberadas!!"); } } catch (SqlQueryExceptions ex) { this.exitOnError(ex.Message, "Próxima Proposta"); } catch (NoNewPropostaException ex) { this.exitOnError(ex.Message, "Próxima Proposta"); } catch (SqlCeException sqlEx) { StringBuilder strBuilder = new StringBuilder(); strBuilder.Append("Ocorreram problemas durante a carga de dados na tabela tb0002_ItensProposta. \n"); strBuilder.Append("O procedimento não pode ser concluído"); strBuilder.AppendFormat("Erro : {0}", sqlEx.Errors); strBuilder.AppendFormat("Description : {0}", sqlEx.Message); MainConfig.errorMessage(strBuilder.ToString(), "SqlException!!"); } catch (Exception ex) { StringBuilder sbMsg = new StringBuilder(); sbMsg.Append("Ocorreram problemas durante a carga de dados para a Base Mobile \n"); sbMsg.AppendFormat("Error : {0}", ex.Message); sbMsg.Append("\nContate o Administrador do sistema."); MainConfig.errorMessage(sbMsg.ToString(), "Sistem Error!"); } finally { objTransacoes = null; objProposta = null; daoProposta = null; daoProduto = null; daoItemProposta = null; daoEmbalagem = null; } }