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; }
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); } }
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); }
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; } }
protected void ApplyShipConfig(ShipComp sdc) { InitializeCurrentShipValues(sdc); FitWeapons(sdc); }
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(); }