/**********************************************************************************/ // функция обновления данных для основного вооружения // /**********************************************************************************/ public void UpdateMainRadarData(RadarData data) { if (!m_isActive) { return; } if (!m_weapons.ContainsKey(WeaponSlot.MAIN_WEAPON)) { Debug.LogError("We didn't set main weapon, but recive radar data for this weapon"); return; } if (m_weapons[WeaponSlot.MAIN_WEAPON] == null) { Debug.LogError("We have no main weapon (null), but recive radar data for this weapon"); return; } // если есть цели - открываем огонь if (data.DetectedEnemy != null) { if (data.DetectedEnemy.Count > 0) { WeaponController ctr = m_weapons[WeaponSlot.MAIN_WEAPON]; UseWeapon(ctr); } } }
/**********************************************************************************/ // производим поиск цели // в случае обнаружения, функция сгенерирует // /**********************************************************************************/ protected override void UpdateTarget() { // если ещё не начали никуда двигаться, стрелять тоже не будем // защита от дурака Base.DIREC direction = m_unitWithRadar.MoveDirection; if (direction == Base.DIREC.NO_DIRECTION) { m_targetCheckTimer += m_targetCheckTimerLimit; return; } // получаем список впомогательных точек для поиска List <Point> pointsToCheck = m_cachePoints[(int)direction]; foreach (Point specPoint in pointsToCheck) { Point realPointToCheck = specPoint + m_currentPosition; List <BuildingController> buildingsInPoint = GameObjectMapController.GetInstance().SearchEnemiesBuildingInRadius(realPointToCheck, 0, m_owner); if (buildingsInPoint.Count > 0) { BuildingController targetCtr = buildingsInPoint[Random.Range(0, buildingsInPoint.Count)]; if (RadarUpdate != null) { RadarData data = new RadarData(); data.EnemyDirection.Add(direction); data.DetectedEnemy.Add(targetCtr.gameObject); RadarUpdate(data); } } m_targetCheckTimer += m_targetCheckTimerLimit; } }
/**********************************************************************************/ // обновляем цель // /**********************************************************************************/ protected override void UpdateTarget() { List <CIGameObject> units = GameObjectMapController.GetInstance().SearchEnemiesInRadius(m_currentPosition, m_searchingRadius, m_owner); if (units.Count == 0) { m_locedTarget = null; } else { // если есть цели - выбираем одну случайно CIGameObject targetCtr = units[Random.Range(0, units.Count)]; m_locedTarget = targetCtr.gameObject; } // извещаем всех заинтересованных if (TargetToMove != null) { TargetToMove(m_locedTarget); } if (RadarUpdate != null) { RadarData data = new RadarData(); data.DetectedEnemy.Add(m_locedTarget); RadarUpdate(data); } }
private void popList1_Selected(object sender, EventArgs e) { switch (popList1.Selections[0].Text) { case "DataBind": DataBind(); break; case "AddSet": this.radarChart1.Data.AddSeries(GetNewSerie(this.radarChart1.Data)); break; case "RemoveSet": if (this.radarChart1.Data.SeriesCount > 0) { this.radarChart1.Data.RemoveSeries(0); } break; case "ClearSet": this.radarChart1.Data.ClearValues(); break; case "SetData": List <string> xLabels = new List <string>(); xLabels.AddRange(new string[] { "1", "2", "3", "4" }); RadarData data = new RadarData(xLabels); data.AddSeries(GetNewSerie(data)); this.radarChart1.Data = data; break; } }
public static bool CanSeePoint(RadarData radar, Vector2Int point) { Vector2Int center = radar.position; int radius = radar.radius; return((System.Math.Sqrt(System.Math.Pow(point.x - center.x, 2) - System.Math.Pow(point.y - center.y, 2))) <= radius); }
public static bool CanSeePoint(RadarData[] radar, Vector2Int point) { for (int i = 0; i < radar.Length; i++) { if (CanSeePoint(radar[i], point)) return true; } return false; }
/**********************************************************************************/ // производим поиск цели // в случае обнаружения произвойдёт RadarUpdate эвент // /**********************************************************************************/ protected override void UpdateTarget() { if (m_targetCheckTimer <= 0) { // если ещё не начали никуда двигаться, стрелять тоже не будем // защита от дурака Base.DIREC direction = m_unitWithRadar.MoveDirection; if (direction == Base.DIREC.NO_DIRECTION) { m_targetCheckTimer += m_targetCheckTimerLimit; return; } // получаем список впомогательных точек для поиска врагов // и проводим поиск целей для стрельбы List <Point> pointsToCheck = m_cachePoints[(int)direction]; foreach (Point specPoint in pointsToCheck) { Point realPointToCheck = specPoint + m_currentPosition; List <CIGameObject> unitsInPoint = GameObjectMapController.GetInstance().SearchEnemiesInRadius(realPointToCheck, m_scaningAreaRadius, m_owner); if (unitsInPoint.Count > 0) { CIGameObject targetCtr = unitsInPoint[Random.Range(0, unitsInPoint.Count)]; if (RadarUpdate != null) { RadarData data = new RadarData(); data.EnemyDirection.Add(direction); data.DetectedEnemy.Add(targetCtr.gameObject); RadarUpdate(data); } } else { // проверяем игроков foreach (CIGameObject plObject in m_players) { // считаем расстояние от точки метания снаряда до игроков // если расстояние меньше m_scaningAreaRadius - вызываем RadarUpdate эвент Point playerPosition = plObject.GetGlobalPosition(); Point positionDiff = playerPosition - realPointToCheck; if (positionDiff.GetSimpleLength() < m_scaningAreaRadius) { RadarData data = new RadarData(); data.EnemyDirection.Add(direction); data.DetectedEnemy.Add(plObject.gameObject); RadarUpdate(data); } } } } m_targetCheckTimer += m_targetCheckTimerLimit; } }
/**********************************************************************************/ // производим поиск цели // в случае обнаружения произвойдёт RadarUpdate эвент // /**********************************************************************************/ protected override void UpdateTarget() { if (m_targetCheckTimer <= 0) { // если ещё не начали никуда двигаться, стрелять тоже не будем // защита от дурака Base.DIREC direction = m_unitWithRadar.MoveDirection; if (direction == Base.DIREC.NO_DIRECTION) { m_targetCheckTimer += m_targetCheckTimerLimit; return; } // получаем список впомогательных точек для поиска врагов // и проводим поиск целей для стрельбы List <Point> pointsToCheck = m_cachePoints[(int)direction]; foreach (Point specPoint in pointsToCheck) { Point realPointToCheck = specPoint + m_currentPosition; List <CIGameObject> unitsInPoint = GameObjectMapController.GetInstance().SearchEnemiesInRadius(realPointToCheck, 0, m_owner); if (unitsInPoint.Count > 0) { CIGameObject targetCtr = unitsInPoint[Random.Range(0, unitsInPoint.Count)]; if (RadarUpdate != null) { RadarData data = new RadarData(); data.EnemyDirection.Add(direction); data.DetectedEnemy.Add(targetCtr.gameObject); RadarUpdate(data); } } else { // проверяем игроков foreach (CIGameObject plObject in m_players) { if (plObject.Owner == (int)m_owner) { continue; } if (plObject.GetGlobalPosition().IsSamePoint(realPointToCheck)) { RadarData data = new RadarData(); data.EnemyDirection.Add(direction); data.DetectedEnemy.Add(plObject.gameObject); RadarUpdate(data); } } } } m_targetCheckTimer += m_targetCheckTimerLimit; } }
public static Vector2Int[] GetVisibleObjects(RadarData radar, Vector2Int[] points) { List<Vector2Int> seenPoints = new List<Vector2Int>(); for (int i = 0; i < points.Length; i++) { if (CanSeePoint(radar, points[i])) { seenPoints.Add(points[i]); } } return seenPoints.ToArray(); }
public static Vector2Int[] GetVisibleObjects(RadarData radar, Vector2Int[] points) { List <Vector2Int> seenPoints = new List <Vector2Int>(); for (int i = 0; i < points.Length; i++) { if (CanSeePoint(radar, points[i])) { seenPoints.Add(points[i]); } } return(seenPoints.ToArray()); }
public static RadarData createRadarData(RadarType type) { ItemQuality quality = randQuality(); float level = randLevel(); int range = Mathf.RoundToInt(type.range() * level * qualityMultiplier(quality)); RadarData data = new RadarData(quality, level, type, range); data.initCommons(calculateCost(data), calculateEnergy(data)); return(data); }
public string FormatDataToJsString(RadarData radarData) { var template = File.ReadAllText("TechRadar/template/template.js"); template = template.Replace("{{radar_title}}", radarData.Name); foreach (var entry in radarData.Data) { Quadrant quadrant = entry.Key; QuadrantData quadrantData = entry.Value; var data = quadrantData.Items.Select(item => new JsBlip(item.Name, item.Radius, item.Angle)); var jsonData = JsonConvert.SerializeObject(data); template = template.Replace(this.quadrantPlaceholder[quadrant], jsonData); } return template; }
private RadarSeries GetNewSerie(RadarData data) { Random countRandom = new Random(); ChartYAxisValueCollection <ChartYAxisValue> yVals = new ChartYAxisValueCollection <ChartYAxisValue>(); int count = data.XAxisCount; for (int i = 0; i < count; i++) { yVals.Add(new BarYAxisValue(countRandom.Next(0, count))); } RadarSeries set1 = new RadarSeries(yVals, "DataSet 1"); set1.AddColor(DemoGlobal.GetRandomColor()); set1.AddColor(DemoGlobal.GetRandomColor()); set1.AddColor(DemoGlobal.GetRandomColor()); return(set1); }
protected override void OnInitializeChartData() { base.OnInitializeChartData(); if (OriginalChartView != null && SupportChartView != null && SupportChartView.ChartData != null) { var dataSetItems = SupportChartView.ChartData.DataSets; var listDataSetItems = new List <RadarDataSet>(); foreach (var itemChild in dataSetItems) { var entryOriginal = itemChild.IF_GetValues().Select(item => new RadarEntry(item.GetValue())); RadarDataSet dataSet = new RadarDataSet(entryOriginal.ToArray(), itemChild.IF_GetLabel()); OnIntializeDataSet(itemChild, dataSet); listDataSetItems.Add(dataSet); } RadarData data = new RadarData(listDataSetItems.ToArray()); OriginalChartView.Data = data; OriginalChartView.Invalidate(); } }
private List <Item> sortList(List <Item> list, ItemType type) { SortedDictionary <long, Item> weights = new SortedDictionary <long, Item>(); long weight = 0; foreach (Item item in list) { if (type == ItemType.WEAPON) { WeaponData data = (WeaponData)item.itemData; switch (data.type) { case WeaponType.BLASTER: weight = 1000000; break; case WeaponType.PLASMER: weight = 2000000; break; case WeaponType.CHARGER: weight = 3000000; break; case WeaponType.EMITTER: weight = 4000000; break; case WeaponType.WAVER: weight = 5000000; break; case WeaponType.LAUNCHER: weight = 6000000; break; case WeaponType.SUPPRESSOR: weight = 7000000; break; default: Debug.Log("Неизвестный тип оружия"); break; } weight += item.cost; } else if (type == ItemType.HAND_WEAPON) { HandWeaponData data = (HandWeaponData)item.itemData; weight = data.maxDamage * 1000000 + data.cost; } else if (type == ItemType.BODY_ARMOR) { BodyArmorData data = (BodyArmorData)item.itemData; weight = data.armorClass * 1000000 + data.cost; } else if (type == ItemType.ENGINE) { EngineData data = (EngineData)item.itemData; weight = Mathf.RoundToInt(data.power * 1000); } else if (type == ItemType.ARMOR) { ArmorData data = (ArmorData)item.itemData; weight = data.armorClass * 1000000 + data.cost; } else if (type == ItemType.GENERATOR) { GeneratorData data = (GeneratorData)item.itemData; weight = data.maxEnergy * 1000000 + data.cost; } else if (type == ItemType.RADAR) { RadarData data = (RadarData)item.itemData; weight = data.range * 1000000 + data.cost; } else if (type == ItemType.SHIELD) { ShieldData data = (ShieldData)item.itemData; weight = data.shieldLevel * 1000000 + data.cost; } else if (type == ItemType.REPAIR_DROID) { RepairDroidData data = (RepairDroidData)item.itemData; weight = data.repairSpeed * 1000000 + data.cost; } else if (type == ItemType.HARVESTER) { HarvesterData data = (HarvesterData)item.itemData; weight = 1000000 - data.harvestTime; } else if (type == ItemType.GOODS) { weight = item.itemData.cost; } else if (type == ItemType.SUPPLY) { weight = item.itemData.sortWeight + item.cost; } else { Debug.Log("Unknown item: " + item.name); } while (weights.ContainsKey(weight)) { weight++; } weights.Add(weight, item); } list.Clear(); foreach (KeyValuePair <long, Item> pair in weights) { list.Add(pair.Value); } list.Reverse(); return(list); }
public Radar(Vector2Int location, User owner, int radius) : base(location, owner, StructureType.Radar) { Radius = radius; extraData = new RadarData(Radius); VisibleStructures = new List <Vector2Int>(); }
public override StructureSave Save() { extraData = new RadarData(Radius); return(base.Save()); }
public static bool CanSeePoint(RadarData radar, Vector2Int point) { Vector2Int center = radar.position; int radius = radar.radius; return (System.Math.Sqrt(System.Math.Pow(point.x - center.x, 2) - System.Math.Pow(point.y - center.y, 2))) <= radius; }
private void showTexts(ItemData data) { float maxLenght = 0; if (data.quality != ItemQuality.COMMON) { qualityPre.gameObject.SetActive(true); qualityBG.gameObject.SetActive(true); qualityValue.gameObject.SetActive(true); qualityValue.text = item.quality.getName(); scale.x = calcMeshLength(qualityRender);// qualityValue.text.Length + 1; qualityBG.localScale = scale; qualityValue.color = (data.quality == ItemQuality.ARTEFACT? artefactColor: data.quality == ItemQuality.UNIQUE? uniqueColor: data.quality == ItemQuality.RARE? rareColor: data.quality == ItemQuality.SUPERIOR? superiorColor: goodColor); maxLenght = qualityRender.bounds.size.x; } namePre.gameObject.SetActive(true); nameBG.gameObject.SetActive(true); nameValue.gameObject.SetActive(true); nameValue.text = data.name; scale.x = calcMeshLength(nameRender);// nameValue.text.Length + 1; nameBG.localScale = scale; maxLenght = Mathf.Max(maxLenght, nameRender.bounds.size.x); switch (data.itemType) { case ItemType.SUPPLY: pre1.gameObject.SetActive(true); bg1.gameObject.SetActive(true); value1.gameObject.SetActive(true); pre2.gameObject.SetActive(true); bg2.gameObject.SetActive(true); value2.gameObject.SetActive(true); SupplyData sud = (SupplyData)data; string val = ""; switch (sud.type) { case SupplyType.MEDKIT_SMALL: case SupplyType.MEDKIT_MEDIUM: case SupplyType.MEDKIT_LARGE: case SupplyType.MEDKIT_ULTRA: val = "Восстанавливает <color=white>" + sud.value + "</color> HP"; break; case SupplyType.GRENADE_FLASH: val = StatusEffectType.BLINDED.name() + " на <color=white>" + sud.duration + "</color> ходов"; break; case SupplyType.GRENADE_PARALIZE: val = StatusEffectType.PARALIZED.name() + " на <color=white>" + sud.duration + "</color> ходов"; break; case SupplyType.INJECTION_SPEED: val = "Дополнительно <color=white>" + sud.value + "</color> действий на <color=white>" + sud.duration + "</color> ходов"; break; case SupplyType.INJECTION_REGENERATION: val = "Восстановление по <color=white>" + sud.value + "</color> HP в течении <color=white>" + sud.duration + "</color> ходов"; break; case SupplyType.INJECTION_ARMOR: val = "Повышение защиты на <color=white>" + sud.value + "</color> в течении <color=white>" + sud.duration + "</color> ходов"; break; default: Debug.Log("Unknown supply type: " + sud.type); val = ""; break; } value1.text = "Эффект: <color=orange>" + val + "</color>"; scale.x = calcMeshLength(value1Render); // value1Render.bounds.size.x * 4.8f;// value1.text.Length - 23;// - (количество спецсимволов) bg1.localScale = scale; maxLenght = Mathf.Max(maxLenght, value1Render.bounds.size.x); maxLenght = Mathf.Max(maxLenght, setCost(2, data)); break; case ItemType.GOODS: pre1.gameObject.SetActive(true); bg1.gameObject.SetActive(true); value1.gameObject.SetActive(true); maxLenght = Mathf.Max(maxLenght, setCost(1, data)); break; case ItemType.HAND_WEAPON: pre1.gameObject.SetActive(true); bg1.gameObject.SetActive(true); value1.gameObject.SetActive(true); pre2.gameObject.SetActive(true); bg2.gameObject.SetActive(true); value2.gameObject.SetActive(true); HandWeaponData hwd = (HandWeaponData)data; value1.text = "Урон: <color=orange>" + hwd.minDamage + " - " + hwd.maxDamage + "</color>"; scale.x = calcMeshLength(value1Render); //value1.text.Length - 24;// - (количество спецсимволов) bg1.localScale = scale; maxLenght = Mathf.Max(maxLenght, value1Render.bounds.size.x); maxLenght = Mathf.Max(maxLenght, setCost(2, data)); break; case ItemType.BODY_ARMOR: pre1.gameObject.SetActive(true); bg1.gameObject.SetActive(true); value1.gameObject.SetActive(true); pre2.gameObject.SetActive(true); bg2.gameObject.SetActive(true); value2.gameObject.SetActive(true); BodyArmorData bad = (BodyArmorData)data; value1.text = "Защита: <color=orange>" + bad.armorClass + "</color>"; scale.x = calcMeshLength(value1Render); //value1.text.Length - 22; bg1.localScale = scale; maxLenght = Mathf.Max(maxLenght, value1Render.bounds.size.x); maxLenght = Mathf.Max(maxLenght, setCost(2, data)); break; case ItemType.WEAPON: pre1.gameObject.SetActive(true); bg1.gameObject.SetActive(true); value1.gameObject.SetActive(true); pre2.gameObject.SetActive(true); bg2.gameObject.SetActive(true); value2.gameObject.SetActive(true); pre3.gameObject.SetActive(true); bg3.gameObject.SetActive(true); value3.gameObject.SetActive(true); pre4.gameObject.SetActive(true); bg4.gameObject.SetActive(true); value4.gameObject.SetActive(true); pre5.gameObject.SetActive(true); bg5.gameObject.SetActive(true); value5.gameObject.SetActive(true); WeaponData wd = (WeaponData)data; value1.text = "Урон: <color=orange>" + wd.minDamage + " - " + wd.maxDamage + "</color>"; scale.x = calcMeshLength(value1Render); //value1.text.Length - 24; bg1.localScale = scale; maxLenght = Mathf.Max(maxLenght, value1Render.bounds.size.x); value2.text = "Перезарядка: <color=orange>" + wd.reloadTime.ToString("0.00") + "</color>"; scale.x = calcMeshLength(value2Render); //value2.text.Length - 22.5F; bg2.localScale = scale; maxLenght = Mathf.Max(maxLenght, value2Render.bounds.size.x); value3.text = "Питание: <color=cyan>" + data.energyNeeded + "</color>"; scale.x = calcMeshLength(value3Render); //value3.text.Length - 20.5f; bg3.localScale = scale; maxLenght = Mathf.Max(maxLenght, value3Render.bounds.size.x); value4.text = "Объём: <color=orange>" + data.volume.ToString("0.0") + "</color>"; scale.x = calcMeshLength(value4Render); //value4.text.Length - 22.5F; bg4.localScale = scale; maxLenght = Mathf.Max(maxLenght, value4Render.bounds.size.x); maxLenght = Mathf.Max(maxLenght, setCost(5, data)); break; case ItemType.ENGINE: pre1.gameObject.SetActive(true); bg1.gameObject.SetActive(true); value1.gameObject.SetActive(true); pre2.gameObject.SetActive(true); bg2.gameObject.SetActive(true); value2.gameObject.SetActive(true); pre3.gameObject.SetActive(true); bg3.gameObject.SetActive(true); value3.gameObject.SetActive(true); pre4.gameObject.SetActive(true); bg4.gameObject.SetActive(true); value4.gameObject.SetActive(true); EngineData ed = (EngineData)data; value1.text = "Мощность: <color=orange>" + ((ed.power) * 1000).ToString("0") + "</color>"; scale.x = calcMeshLength(value1Render); //value1.text.Length - 22.5f; bg1.localScale = scale; maxLenght = Mathf.Max(maxLenght, value1Render.bounds.size.x); value2.text = "Питание: <color=cyan>" + data.energyNeeded + "</color>"; scale.x = calcMeshLength(value2Render); //value2.text.Length - 20.5f; bg2.localScale = scale; maxLenght = Mathf.Max(maxLenght, value2Render.bounds.size.x); value3.text = "Объём: <color=orange>" + data.volume.ToString("0.0") + "</color>"; scale.x = calcMeshLength(value3Render); //value3.text.Length - 22.5F; bg3.localScale = scale; maxLenght = Mathf.Max(maxLenght, value3Render.bounds.size.x); maxLenght = Mathf.Max(maxLenght, setCost(4, data)); break; case ItemType.ARMOR: pre1.gameObject.SetActive(true); bg1.gameObject.SetActive(true); value1.gameObject.SetActive(true); pre2.gameObject.SetActive(true); bg2.gameObject.SetActive(true); value2.gameObject.SetActive(true); pre3.gameObject.SetActive(true); bg3.gameObject.SetActive(true); value3.gameObject.SetActive(true); ArmorData ad = (ArmorData)data; value1.text = "Броня: <color=orange>" + ad.armorClass + "</color>"; scale.x = calcMeshLength(value1Render); //value1.text.Length - 22.5f; bg1.localScale = scale; maxLenght = Mathf.Max(maxLenght, value1Render.bounds.size.x); value2.text = "Объём: <color=orange>" + data.volume.ToString("0.0") + "</color>"; scale.x = calcMeshLength(value2Render); //value2.text.Length - 22.5F; bg2.localScale = scale; maxLenght = Mathf.Max(maxLenght, value2Render.bounds.size.x); maxLenght = Mathf.Max(maxLenght, setCost(3, data)); break; case ItemType.GENERATOR: pre1.gameObject.SetActive(true); bg1.gameObject.SetActive(true); value1.gameObject.SetActive(true); pre2.gameObject.SetActive(true); bg2.gameObject.SetActive(true); value2.gameObject.SetActive(true); pre3.gameObject.SetActive(true); bg3.gameObject.SetActive(true); value3.gameObject.SetActive(true); GeneratorData gd = (GeneratorData)data; value1.text = "Мощность: <color=orange>" + gd.maxEnergy + "</color>"; scale.x = calcMeshLength(value1Render); //value1.text.Length - 22.5f; bg1.localScale = scale; maxLenght = Mathf.Max(maxLenght, value1Render.bounds.size.x); value2.text = "Объём: <color=orange>" + data.volume.ToString("0.0") + "</color>"; scale.x = calcMeshLength(value2Render); //value2.text.Length - 22.5F; bg2.localScale = scale; maxLenght = Mathf.Max(maxLenght, value2Render.bounds.size.x); maxLenght = Mathf.Max(maxLenght, setCost(3, data)); break; case ItemType.RADAR: pre1.gameObject.SetActive(true); bg1.gameObject.SetActive(true); value1.gameObject.SetActive(true); pre2.gameObject.SetActive(true); bg2.gameObject.SetActive(true); value2.gameObject.SetActive(true); pre3.gameObject.SetActive(true); bg3.gameObject.SetActive(true); value3.gameObject.SetActive(true); pre4.gameObject.SetActive(true); bg4.gameObject.SetActive(true); value4.gameObject.SetActive(true); RadarData rd = (RadarData)data; value1.text = "Дальность: <color=orange>" + rd.range + "</color>"; scale.x = calcMeshLength(value1Render); //value1.text.Length - 22.5f; bg1.localScale = scale; maxLenght = Mathf.Max(maxLenght, value1Render.bounds.size.x); value2.text = "Питание: <color=cyan>" + data.energyNeeded + "</color>"; scale.x = calcMeshLength(value2Render); //value2.text.Length - 20.5f; bg2.localScale = scale; maxLenght = Mathf.Max(maxLenght, value2Render.bounds.size.x); value3.text = "Объём: <color=orange>" + data.volume.ToString("0.0") + "</color>"; scale.x = calcMeshLength(value3Render); //value3.text.Length - 22.5F; bg3.localScale = scale; maxLenght = Mathf.Max(maxLenght, value3Render.bounds.size.x); maxLenght = Mathf.Max(maxLenght, setCost(4, data)); break; case ItemType.SHIELD: pre1.gameObject.SetActive(true); bg1.gameObject.SetActive(true); value1.gameObject.SetActive(true); pre2.gameObject.SetActive(true); bg2.gameObject.SetActive(true); value2.gameObject.SetActive(true); pre3.gameObject.SetActive(true); bg3.gameObject.SetActive(true); value3.gameObject.SetActive(true); pre4.gameObject.SetActive(true); bg4.gameObject.SetActive(true); value4.gameObject.SetActive(true); pre5.gameObject.SetActive(true); bg5.gameObject.SetActive(true); value5.gameObject.SetActive(true); ShieldData sd = (ShieldData)data; value1.text = "Защита: <color=orange>" + sd.shieldLevel + "</color>"; scale.x = calcMeshLength(value1Render); //value1.text.Length - 22.5f; bg1.localScale = scale; maxLenght = Mathf.Max(maxLenght, value1Render.bounds.size.x); value2.text = "Перезарядка: <color=orange>" + sd.rechargeSpeed + "</color>"; scale.x = calcMeshLength(value2Render); //value2.text.Length - 22.5F; bg2.localScale = scale; maxLenght = Mathf.Max(maxLenght, value2Render.bounds.size.x); value3.text = "Питание: <color=cyan>" + data.energyNeeded + "</color>"; scale.x = calcMeshLength(value3Render); //value3.text.Length - 20.5f; bg3.localScale = scale; maxLenght = Mathf.Max(maxLenght, value3Render.bounds.size.x); value4.text = "Объём: <color=orange>" + data.volume.ToString("0.0") + "</color>"; scale.x = calcMeshLength(value4Render); //value4.text.Length - 22.5F; bg4.localScale = scale; maxLenght = Mathf.Max(maxLenght, value4Render.bounds.size.x); maxLenght = Mathf.Max(maxLenght, setCost(5, data)); break; case ItemType.REPAIR_DROID: pre1.gameObject.SetActive(true); bg1.gameObject.SetActive(true); value1.gameObject.SetActive(true); pre2.gameObject.SetActive(true); bg2.gameObject.SetActive(true); value2.gameObject.SetActive(true); pre3.gameObject.SetActive(true); bg3.gameObject.SetActive(true); value3.gameObject.SetActive(true); pre4.gameObject.SetActive(true); bg4.gameObject.SetActive(true); value4.gameObject.SetActive(true); RepairDroidData rdd = (RepairDroidData)data; value1.text = "Ремонт: <color=orange>" + rdd.repairSpeed + "</color>"; scale.x = calcMeshLength(value1Render); //value1.text.Length - 22.5f; bg1.localScale = scale; maxLenght = Mathf.Max(maxLenght, value1Render.bounds.size.x); value2.text = "Питание: <color=cyan>" + data.energyNeeded + "</color>"; scale.x = calcMeshLength(value2Render); //value2.text.Length - 20.5f; bg2.localScale = scale; maxLenght = Mathf.Max(maxLenght, value2Render.bounds.size.x); value3.text = "Объём: <color=orange>" + data.volume.ToString("0.0") + "</color>"; scale.x = calcMeshLength(value3Render); //value3.text.Length - 22.5F; bg3.localScale = scale; maxLenght = Mathf.Max(maxLenght, value3Render.bounds.size.x); maxLenght = Mathf.Max(maxLenght, setCost(4, data)); break; case ItemType.HARVESTER: pre1.gameObject.SetActive(true); bg1.gameObject.SetActive(true); value1.gameObject.SetActive(true); pre2.gameObject.SetActive(true); bg2.gameObject.SetActive(true); value2.gameObject.SetActive(true); pre3.gameObject.SetActive(true); bg3.gameObject.SetActive(true); value3.gameObject.SetActive(true); HarvesterData hd = (HarvesterData)data; value1.text = "Поиск: <color=orange>" + hd.harvestTime + "</color>"; scale.x = calcMeshLength(value1Render); //value1.text.Length - 22.5f; bg1.localScale = scale; maxLenght = Mathf.Max(maxLenght, value1Render.bounds.size.x); value2.text = "Объём: <color=orange>" + data.volume.ToString("0.0") + "</color>"; scale.x = calcMeshLength(value2Render); //value2.text.Length - 22.5F; bg2.localScale = scale; maxLenght = Mathf.Max(maxLenght, value2Render.bounds.size.x); maxLenght = Mathf.Max(maxLenght, setCost(3, data)); break; } maxX = screenWidth - maxLenght - .5f; }
public static ItemData copy(ItemData source) { ItemData copy = null; switch (source.itemType) { case ItemType.SUPPLY: SupplyData sud = (SupplyData)source; copy = new SupplyData(sud.quality, sud.level, sud.type, sud.value, sud.duration); break; case ItemType.GOODS: GoodsData gda = (GoodsData)source; copy = new GoodsData(gda.type, gda.quantity); break; case ItemType.HAND_WEAPON: HandWeaponData hwd = (HandWeaponData)source; copy = new HandWeaponData(source.quality, source.level, hwd.type, hwd.minDamage, hwd.maxDamage); break; case ItemType.BODY_ARMOR: BodyArmorData bad = (BodyArmorData)source; copy = new BodyArmorData(source.quality, source.level, bad.type, bad.armorClass); break; case ItemType.WEAPON: WeaponData wd = (WeaponData)source; copy = new WeaponData(source.quality, source.level, wd.type, wd.minDamage, wd.maxDamage, wd.reloadTime); break; case ItemType.ENGINE: EngineData ed = (EngineData)source; copy = new EngineData(source.quality, source.level, ed.type, ed.power); break; case ItemType.ARMOR: ArmorData ad = (ArmorData)source; copy = new ArmorData(source.quality, source.level, ad.type, ad.armorClass); break; case ItemType.GENERATOR: GeneratorData gd = (GeneratorData)source; gd = new GeneratorData(source.quality, source.level, gd.type, gd.maxEnergy); break; case ItemType.RADAR: RadarData rd = (RadarData)source; copy = new RadarData(source.quality, source.level, rd.type, rd.range); break; case ItemType.SHIELD: ShieldData sd = (ShieldData)source; copy = new ShieldData(source.quality, source.level, sd.type, sd.shieldLevel, sd.rechargeSpeed); break; case ItemType.REPAIR_DROID: RepairDroidData rdd = (RepairDroidData)source; copy = new RepairDroidData(source.quality, source.level, rdd.type, rdd.repairSpeed); break; case ItemType.HARVESTER: HarvesterData hd = (HarvesterData)source; copy = new HarvesterData(source.quality, source.level, hd.type, hd.harvestTime); break; default: Debug.Log("Unknown item type to copy from: " + source.itemType); break; } copy.initCommons(source.cost, source.energyNeeded); return(copy); }
public RSD() : base("RSD") { Data1 = new RadarData(); Data2 = new RadarData(); Empty(); }
public static void SetRadarData(string path) { radarData = new RadarData(path); }