Example #1
0
        public void do_every_tick()
        {
            if (isSessionStarted)
            {
                ObstaclesAndTimers();

                PacketsProcessAndShutDown();

                foreach (Players CurrentPlayer in LocalPlayersPool.Values)
                {
                    /*
                     * //just for testing====================
                     * if (CurrentTimerToStart.WhenSessionCreated.AddSeconds(5)<DateTime.Now && !istest)
                     * {
                     *  istest = true;
                     *
                     *  string personalID = null;
                     *
                     *  while (true)
                     *  {
                     *      personalID = functions.get_symb_for_IDs();
                     *      bool isOK = true;
                     *      foreach (Players item in LocalPlayersPool.Values)
                     *      {
                     *          if (item.personalID == personalID)
                     *          {
                     *              isOK = false;
                     *              break;
                     *          }
                     *      }
                     *
                     *      if (isOK)
                     *      {
                     *          break;
                     *      }
                     *  }
                     *
                     *  LocalPlayersPool.TryAdd("efwefwef", new Players(InGamePlayerType.npc_enemy, 10, "efwefwef", "test_player", 1, "0", 1, 1, 1, 0, 0, 0, 0, 45, 0, 1, 0, "100=100", 100, 10, 10, "10-15", 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, personalID, Session_id));
                     *
                     *  Console.WriteLine("YYYYYYYYYEEEEEEEEEEEEEEEEEE");
                     * }
                     * //====================================
                     */


                    /*
                     * if (CurrentPlayer.player_name == "elem bot")
                     * {
                     *  Console.WriteLine(CurrentPlayer.player_name + " - " + CurrentPlayer.Cast_speed);
                     * }
                     */



                    //========================making DEAD===============================
                    if (CurrentPlayer.CurrentHealth <= 0 && !CurrentPlayer.isDead && !isRoundChecked)
                    {
                        CurrentPlayer.make_dead();

                        //checking conditions for round end
                        CheckingRoundConditions();
                    }

                    if (CurrentPlayer.isDead)
                    {
                        CurrentPlayer.is_reset_any_button = true;
                        CurrentPlayer.animation_id        = 22;
                    }
                    //========================================================

                    if (!CurrentPlayer.isDead && !isRoundChecked && CurrentTimerToStart.isCheckTimeOut)
                    {
                        //USE SPECIALS=========================================
                        Task.Run(() => CurrentPlayer.CurrentSpecial?.Invoke());
                        //======================================================

                        //testing

                        /*
                         * if (CurrentPlayer.player_name=="rogue")
                         * {
                         *  StringBuilder s = new StringBuilder(1000);
                         *  foreach (var item in CurrentPlayer.conditions.Values)
                         *  {
                         *      s.Append(item.GetDataForPacketSending());
                         *  }
                         *  Console.WriteLine(s);
                         * }
                         */
                        //Console.WriteLine(CurrentPlayer.player_name + " - " + CurrentPlayer.team_id + " - " + CurrentPlayer.CurrentHealth);



                        //free regen
                        CurrentPlayer.CheckForFreeRegeneration();
                        //energy regen
                        if (CurrentPlayer.Energy < 100)
                        {
                            CurrentPlayer.Energy += CurrentPlayer.Energy_regen * starter.TICKf * 2;
                        }

                        //health regen
                        if (CurrentPlayer.CurrentHealth < CurrentPlayer.MaxHealth)
                        {
                            CurrentPlayer.CurrentHealth += (int)(CurrentPlayer.Health_regen * starter.TICKf);
                        }
                        else if (CurrentPlayer.CurrentHealth > CurrentPlayer.MaxHealth)
                        {
                            CurrentPlayer.CurrentHealth = CurrentPlayer.MaxHealth;
                        }


                        /*
                         * //working with invisibility status
                         * if (CurrentPlayer.is_invisible && CurrentPlayer.player_class==4)
                         * {
                         *  try
                         *  {
                         *      foreach (ConditionsPacket keys in CurrentPlayer.conditions.Values)
                         *      {
                         *
                         *          if (
                         *              (!(keys.isContainsCondType(CondType.dt) && keys.GetDamageOrHealApplied() ==0) &&
                         *              keys.isContainsCondType(CondType.dt)) ||
                         *              keys.isContainsCondType(CondType.dg) ||
                         *              keys.isContainsCondType(CondType.ca)
                         *              )
                         *          {
                         *              rogue.from_inviz_to_viz(CurrentPlayer);
                         *          }
                         *      }
                         *  }
                         *  catch (Exception ex)
                         *  {
                         *      Console.WriteLine(ex);
                         *  }
                         * }
                         */
                    }
                }

                if (CurrentEnvironment != null)
                {
                    CurrentEnvironment();
                }



                if (LocalEnvironmentPool.Count > 0)
                {
                    environment_packet = "";
                    for (int i = 0; i < LocalEnvironmentPool.Count; i++)
                    {
                        environment_packet = environment_packet + LocalEnvironmentPool[i].GetPacketForSending_nonPlayer();
                    }
                }
            }
        }