Ejemplo n.º 1
0
 private void InitializeCurrentShipValues(ShipComp sdc)
 {
     sdc.CurrentAcceleration        = sdc.DefaultAcceleration;
     sdc.CurrentMaxSpeed            = sdc.DefaultMaxSpeed;
     sdc.CurrentReverseAcceleration = sdc.DefaultReverseAcceleration;
     sdc.CurrentRotationSpeed       = sdc.DefaultRotationSpeed;
     sdc.CurrentMaxRotationVelocity = sdc.DefaultMaxRotationVelocity;
     sdc.CurrentCargoSize           = sdc.DefaultCargoSize;
     sdc.CurrentShieldRecharge      = sdc.DefaultShieldRecharge;
     sdc.CurrentEnergy         = sdc.DefaultEnergy;
     sdc.CurrentEnergyRecharge = sdc.DefaultEnergyRecharge;
 }
Ejemplo n.º 2
0
        private void FitWeapons(ShipComp sdc)
        {
            var sfc = sdc.GetComponent <ShipFittingsComp>();
            //var awc = sdc.GetComponent<AvailableWeaponsComp>();

            var WeaponsGO = new GameObject("Weapons");             //Create game object on ship to hold weapons

            WeaponsGO.transform.SetParent(sdc.Owner.Wrapper.transform, false);

            foreach (var fit in sfc.fittingList.Where(x => x.FittedWeapon != null))
            {
                InitFitting(sdc, fit, WeaponsGO);
            }
        }
Ejemplo n.º 3
0
        static void Main(string[] args)
        {
            #region vars
            Organization  org1    = new Organization("A", 1950);
            Organization  org2    = new Organization("B", 1960);
            Organization  org3    = new Organization("C", 1920);
            Library       lib1    = new Library("D", 1970, 100);
            Library       lib2    = new Library("E", 1800, 150);
            Library       lib3    = new Library("F", 1860, 55);
            Plant         plant1  = new Plant("G", 1920, 70);
            Plant         plant2  = new Plant("H", 1900, 30);
            InsuranceComp incomp3 = new InsuranceComp("I", 1930, 150);
            ShipComp      sp2     = new ShipComp("J", 1850, 400);
            ShipComp      sp3     = new ShipComp("K", 1910, 300);

            Organization[] mass1 = { org1, lib1, plant1 };
            Organization[] mass2 = { org2, lib2, plant2, sp2 };
            Organization[] mass3 = { org3, lib3, incomp3, sp3 };

            Dist dist1 = new Dist("Area-A", mass1);
            Dist dist2 = new Dist("Area-B", mass2);
            Dist dist3 = new Dist("Area-C", mass3);

            List <Dist> city = new List <Dist>();
            city.Add(dist1);
            city.Add(dist2);
            city.Add(dist3);
            #endregion

            Console.WriteLine("Наименование всех организаций заданного района города");
            OrgsNames(city);
            OrgsNamesExp(city);
            Console.WriteLine("Количество организаций в городе");
            NumLibs(city);
            NumLibsExp(city);
            Console.WriteLine("Суммарное количество инженеров на всех заводах города");
            EngAmount(city);
            EngAmountExp(city);
            Console.WriteLine("Наименования организаций в районах A и B города");
            ABOrgs(city);
            ABOrgsExp(city);
            Console.WriteLine("Вывод организаций района по году основания");
            FoundedOrgs(city);
            FoundedOrgsExp(city);
        }
        public override bool Init()
        {
            //_command = _playerMatcher.GetSingleMatch().GetComponent<CommandComp>();
            cc              = engine.FindEntity(Res.Entities.Player).GetComponent <CommandComp>();
            pc              = cc.Owner.GetComponent <PositionComp>();
            rbComp          = cc.Owner.GetComponent <RigidbodyComp>().rigidbody;
            sdc             = cc.GetComponent <ShipComp>();
            cam             = Camera.main;
            invertYAxis     = engine.GetSingle <GameSettingsComp>(ComponentTypes.GameSettingsComp).InvertYAxis;
            TargetingCursor = Resources.Load <Texture2D>("Materials/TargetingCursor");
            cursorMidpoint  = new Vector2(
                TargetingCursor.width / 2f,
                TargetingCursor.height / 2f);

            rbComp.maxAngularVelocity = sdc.CurrentMaxRotationVelocity;

            return(true);
        }
Ejemplo n.º 5
0
        private static void InitFitting(ShipComp sdc, ShipFitting fit, GameObject WeaponsGO)
        {
            fit.FittedWeapon.Owner = sdc.Owner;             //have to manually set owner of contained components
            fit.WeaponFittingGO    = new GameObject("WeaponFitting");
            Transform tf = fit.WeaponFittingGO.transform;

            tf.SetParent(WeaponsGO.transform, false);
            tf.localPosition = fit.PositionOffset;
            tf.localRotation = fit.RotationOffset;

            //spawn weapon prefab if exists
            if (fit.FittedWeapon.LauncherPrefab.DoesNotContain("None"))
            {
                var weaponPF = Res.CreateFromPool(fit.FittedWeapon.LauncherPrefab);
                weaponPF.SetActive(true);
                weaponPF.transform.SetParent(tf, false);
                fit.FittedWeapon.WeaponGameObject = weaponPF;
                //weaponPF.transform.localPosition = fit.PositionOffset;
                fit.ProjectileSpawnPositionOffset = weaponPF.GetComponent <LauncherBehaviour>()?.LaunchPosOffset ?? Vector3.zero;
            }
        }
Ejemplo n.º 6
0
 protected void ApplyShipConfig(ShipComp sdc)
 {
     InitializeCurrentShipValues(sdc);
     FitWeapons(sdc);
 }
Ejemplo n.º 7
0
        static void Main(string[] args)
        {
            SortedList    sl   = new SortedList();
            Library       lb1  = new Library("A", 1950, 52);
            Library       lb2  = new Library("B", 1990, 50);
            ShipComp      sc1  = new ShipComp("C", 1950, 200);
            ShipComp      sc2  = new ShipComp("D", 1975, 350);
            InsuranceComp ic1  = new InsuranceComp("E", 1990, 52);
            Plant         pl1  = new Plant("F", 2000, 300);
            Plant         pl2  = new Plant("G", 1950, 500);
            Organization  org1 = new Organization("H", 1980);

            sl.Add(lb1.Name + "-" + lb1.Founded, lb1);
            sl.Add(lb2.Name + "-" + lb2.Founded, lb2);
            sl.Add(sc1.Name + "-" + sc1.Founded, sc1);
            sl.Add(sc2.Name + "-" + sc2.Founded, sc2);
            sl.Add(ic1.Name + "-" + ic1.Founded, ic1);
            sl.Add(pl1.Name + "-" + pl1.Founded, pl1);
            sl.Add(pl2.Name + "-" + pl2.Founded, pl2);
            sl.Add(org1.Name + "-" + org1.Founded, org1);


            int  operation;
            bool stop = false;

            #region demo1
            ListFunctions();
            do
            {
                Console.WriteLine("Введите номер нужной операции");
                operation = EnterIntNumber();
                switch (operation)
                {
                case 0:
                {
                    Console.WriteLine("Работа завершена");
                    stop = true;
                    break;
                }

                case 1:
                {
                    EngsAtEveryPlant(sl);
                    break;
                }

                case 2:
                {
                    int libs = NumberOfLibs(sl);
                    Console.WriteLine($"В коллекции {libs} библиотек");
                    break;
                }

                case 3:
                {
                    Console.WriteLine($"Сумма страховых фондов = {InshFondSum(sl)} млн");
                    break;
                }

                case 4:
                {
                    foreach (DictionaryEntry x in sl)
                    {
                        Organization temp = (Organization)x.Value;
                        temp.VShow();
                        Console.WriteLine();
                    }
                    break;
                }

                case 5:
                {
                    AddElement(ref sl);
                    break;
                }

                case 6:
                {
                    DeleteElement(ref sl);
                    break;
                }

                default:
                {
                    Console.WriteLine("Операции с данным номером не существует. Введите другой номер");
                    break;
                }
                }
            } while (!stop);
            Console.WriteLine("Для продолжения нажмите Enter");
            Console.ReadLine();
            Console.Clear();

            #endregion

            List <Organization> sl2 = new List <Organization>();
            sl2.Add(lb1);
            sl2.Add(lb2);
            sl2.Add(sc1);
            sl2.Add(sc2);
            sl2.Add(ic1);
            sl2.Add(pl1);
            sl2.Add(pl2);
            sl2.Add(org1);
            stop = false;

            #region demo2
            ListFunctions();
            do
            {
                Console.WriteLine("Введите номер нужной операции");
                operation = EnterIntNumber();
                switch (operation)
                {
                case 0:
                {
                    Console.WriteLine("Работа завершена");
                    stop = true;
                    break;
                }

                case 1:
                {
                    EngsAtEveryPlant(sl2);
                    break;
                }

                case 2:
                {
                    int libs = NumberOfLibs(sl2);
                    Console.WriteLine($"В коллекции {libs} библиотек");
                    break;
                }

                case 3:
                {
                    Console.WriteLine($"Сумма страховых фондов = {InshFondSum(sl2)} млн");
                    break;
                }

                case 4:
                {
                    foreach (Organization x in sl2)
                    {
                        x.VShow();
                        Console.WriteLine();
                    }
                    break;
                }

                case 5:
                {
                    AddElement(ref sl2);
                    break;
                }

                case 6:
                {
                    DeleteElement(ref sl2);
                    break;
                }

                default:
                {
                    Console.WriteLine("Операции с данным номером не существует. Введите другой номер");
                    break;
                }
                }
            } while (!stop);
            Console.WriteLine("Для продолжения нажмите Enter");
            Console.ReadLine();
            Console.Clear();
            #endregion

            #region demo 1 + 2

            SortedList slClone = (SortedList)sl.Clone();
            slClone.Add("zero", 0);
            Console.WriteLine("Поиск добавленного в клон коллекции элемента:");
            if (sl.ContainsValue(0))
            {
                Console.WriteLine("Элемент найден в оригинальной коллекции");
            }
            else
            {
                Console.WriteLine("Элемент не найден в оригинальной коллекции");
            }
            if (slClone.ContainsValue(0))
            {
                Console.WriteLine("Элемент найден в клоне коллекции");
            }
            else
            {
                Console.WriteLine("Элемент не найден в клоне коллекции");
            }
            Console.WriteLine();

            Plant extraplant             = new Plant();
            List <Organization> sl2Clone = new List <Organization>();
            foreach (Organization x in sl2)
            {
                Organization clone = (Organization)x.Clone();
                sl2Clone.Add(clone);
            }
            sl2Clone.Add(extraplant);
            Plant exPlantClone = (Plant)extraplant.Clone();
            Console.WriteLine("Поиск добавленного в клон коллекции элемента:");
            if (sl.ContainsValue(exPlantClone))
            {
                Console.WriteLine("Элемент найден в оригинальной коллекции");
            }
            else
            {
                Console.WriteLine("Элемент не найден в оригинальной коллекции");
            }
            if (slClone.ContainsValue(exPlantClone))
            {
                Console.WriteLine("Элемент найден в клоне коллекции");
            }
            else
            {
                Console.WriteLine("Элемент не найден в клоне коллекции");
            }

            Console.WriteLine("Для продолжения нажмите Enter");
            Console.ReadLine();

            #endregion

            #region demo3
            int             size = 100;
            TestCollections tc   = new TestCollections(size);
            Stopwatch       stw  = new Stopwatch();

            Organization[] arr       = tc.Link.ToArray();
            Organization   firstOrg  = (Organization)arr[0].Clone();
            Organization   middleOrg = (Organization)arr[size / 2].Clone();
            Organization   lastOrg   = (Organization)arr[size - 1].Clone();
            Organization   absOrg    = new Organization();

            Console.WriteLine("Queue<Organization>");
            stw.Start();
            if (tc.Link.Contains(firstOrg))
            {
                Console.WriteLine($"Первый элемент найден, время поиска {stw.ElapsedTicks}");
            }
            else
            {
                Console.WriteLine($"Первый элемент не найден, время поиска {stw.ElapsedTicks}");
            }
            stw.Restart();
            if (tc.Link.Contains(middleOrg))
            {
                Console.WriteLine($"Средний элемент найден, время поиска {stw.ElapsedTicks}");
            }
            else
            {
                Console.WriteLine($"Средний элемент не найден, время поиска {stw.ElapsedTicks}");
            }
            stw.Restart();
            if (tc.Link.Contains(lastOrg))
            {
                Console.WriteLine($"Последний элемент найден, время поиска {stw.ElapsedTicks}");
            }
            else
            {
                Console.WriteLine($"Последний элемент не найден, время поиска {stw.ElapsedTicks}");
            }
            stw.Restart();
            if (tc.Link.Contains(absOrg))
            {
                Console.WriteLine($"Элемент найден, время поиска {stw.ElapsedTicks}");
            }
            else
            {
                Console.WriteLine($"Элемент не найден, время поиска {stw.ElapsedTicks}");
            }
            stw.Reset();
            Console.WriteLine();

            string[] arr1      = tc.Key.ToArray();
            string   firstStr  = (string)arr1[0].Clone();
            string   middleStr = (string)arr1[size / 2].Clone();
            string   lastStr   = (string)arr1[size - 1].Clone();
            string   absStr    = "???";

            Console.WriteLine("Queue<string>");
            stw.Start();
            if (tc.Key.Contains(firstStr))
            {
                Console.WriteLine($"Первый элемент найден, время поиска {stw.ElapsedTicks}");
            }
            else
            {
                Console.WriteLine($"Первый элемент не найден, время поиска {stw.ElapsedTicks}");
            }
            stw.Restart();
            if (tc.Key.Contains(middleStr))
            {
                Console.WriteLine($"Средний элемент найден, время поиска {stw.ElapsedTicks}");
            }
            else
            {
                Console.WriteLine($"Средний элемент не найден, время поиска {stw.ElapsedTicks}");
            }
            stw.Restart();
            if (tc.Key.Contains(lastStr))
            {
                Console.WriteLine($"Последний элемент найден, время поиска {stw.ElapsedTicks}");
            }
            else
            {
                Console.WriteLine($"Последний элемент не найден, время поиска {stw.ElapsedTicks}");
            }
            stw.Restart();
            if (tc.Key.Contains(absStr))
            {
                Console.WriteLine($"Элемент найден, время поиска {stw.ElapsedTicks}");
            }
            else
            {
                Console.WriteLine($"Элемент не найден, время поиска {stw.ElapsedTicks}");
            }
            stw.Reset();
            Console.WriteLine();

            Console.WriteLine("SortedDictionary<Organization, Library> /// ContainsKey");
            stw.Start();
            if (tc.Coll1.ContainsKey(firstOrg))
            {
                Console.WriteLine($"Первый элемент найден, время поиска {stw.ElapsedTicks}");
            }
            else
            {
                Console.WriteLine($"Первый элемент не найден, время поиска {stw.ElapsedTicks}");
            }
            stw.Restart();
            if (tc.Coll1.ContainsKey(middleOrg))
            {
                Console.WriteLine($"Средний элемент найден, время поиска {stw.ElapsedTicks}");
            }
            else
            {
                Console.WriteLine($"Средний элемент не найден, время поиска {stw.ElapsedTicks}");
            }
            stw.Restart();
            if (tc.Coll1.ContainsKey(lastOrg))
            {
                Console.WriteLine($"Последний элемент найден, время поиска {stw.ElapsedTicks}");
            }
            else
            {
                Console.WriteLine($"Последний элемент не найден, время поиска {stw.ElapsedTicks}");
            }
            stw.Restart();
            if (tc.Coll1.ContainsKey(absOrg))
            {
                Console.WriteLine($"Элемент найден, время поиска {stw.ElapsedTicks}");
            }
            else
            {
                Console.WriteLine($"Элемент не найден, время поиска {stw.ElapsedTicks}");
            }
            stw.Reset();
            Console.WriteLine();

            Library[] arr2 = new Library[size];
            tc.Coll1.Values.CopyTo(arr2, 0);
            Library firstLib  = (Library)arr2[0].Clone();
            Library middleLib = (Library)arr2[size / 2].Clone();
            Library lastLib   = (Library)arr2[size - 1].Clone();
            Library absLib    = new Library();

            Console.WriteLine("SortedDictionary<Organization, Library> /// ContainsValue");
            stw.Start();
            if (tc.Coll1.ContainsValue(firstLib))
            {
                Console.WriteLine($"Первый элемент найден, время поиска {stw.ElapsedTicks}");
            }
            else
            {
                Console.WriteLine($"Первый элемент не найден, время поиска {stw.ElapsedTicks}");
            }
            stw.Restart();
            if (tc.Coll1.ContainsValue(middleLib))
            {
                Console.WriteLine($"Средний элемент найден, время поиска {stw.ElapsedTicks}");
            }
            else
            {
                Console.WriteLine($"Средний элемент не найден, время поиска {stw.ElapsedTicks}");
            }
            stw.Restart();
            if (tc.Coll1.ContainsValue(lastLib))
            {
                Console.WriteLine($"Последний элемент найден, время поиска {stw.ElapsedTicks}");
            }
            else
            {
                Console.WriteLine($"Последний элемент не найден, время поиска {stw.ElapsedTicks}");
            }
            stw.Restart();
            if (tc.Coll1.ContainsValue(absLib))
            {
                Console.WriteLine($"Элемент найден, время поиска {stw.ElapsedTicks}");
            }
            else
            {
                Console.WriteLine($"Элемент не найден, время поиска {stw.ElapsedTicks}");
            }
            stw.Reset();
            Console.WriteLine();


            Console.WriteLine("SortedDictionary<string, Library>");
            stw.Start();
            if (tc.Coll2.ContainsKey(firstStr))
            {
                Console.WriteLine($"Первый элемент найден, время поиска {stw.ElapsedTicks}");
            }
            else
            {
                Console.WriteLine($"Первый элемент не найден, время поиска {stw.ElapsedTicks}");
            }
            stw.Restart();
            if (tc.Coll2.ContainsKey(middleStr))
            {
                Console.WriteLine($"Средний элемент найден, время поиска {stw.ElapsedTicks}");
            }
            else
            {
                Console.WriteLine($"Средний элемент не найден, время поиска {stw.ElapsedTicks}");
            }
            stw.Restart();
            if (tc.Coll2.ContainsKey(lastStr))
            {
                Console.WriteLine($"Последний элемент найден, время поиска {stw.ElapsedTicks}");
            }
            else
            {
                Console.WriteLine($"Последний элемент не найден, время поиска {stw.ElapsedTicks}");
            }
            stw.Restart();
            if (tc.Coll2.ContainsKey(absStr))
            {
                Console.WriteLine($"Элемент найден, время поиска {stw.ElapsedTicks}");
            }
            else
            {
                Console.WriteLine($"Элемент не найден, время поиска {stw.ElapsedTicks}");
            }
            stw.Reset();

            #endregion

            Console.Readline();
        }