// Обновление текстовок public void UpdateDescription() { Color LColor = Color.red; switch (FActivePlanet.Owner.Role) { case SSHRole.Self: LColor = SSHLocale.IntToColor(0x00CAFFB2); break; case SSHRole.Friend: LColor = Color.green; break; case SSHRole.Neutral: LColor = SSHLocale.IntToColor(0xF0F0F0AE); break; case SSHRole.Enemy: LColor = SSHLocale.IntToColor(0xFF8E0090); break; } if (FActivePlanet.PlanetType == PlanetType.Earth) { Owner.text = FActivePlanet.Class.ToString() + " <color=\"#" + ColorUtility.ToHtmlStringRGB(LColor) + "\">" + FActivePlanet.Name + "</color>"; } else { Owner.text = "<color=\"#CBCC3C\">" + FActivePlanet.PlanetType.ToString() + "</color>"; } }
// Обновление уровня лояльности public void UpdateCapture(int AValue, SSHRole ARole) { // Закрасим кружок _OwnerCapture.fillAmount = AValue / 100000f; // Под цвет владельца if (ARole == SSHRole.Self) { _OwnerCapture.color = SSHLocale.IntToColor(0x00CAFF79); } else if (ARole == SSHRole.Friend) { _OwnerCapture.color = SSHLocale.IntToColor(0x00770079); } else { _OwnerCapture.color = SSHLocale.IntToColor(0xFF8E0090); } // Выключим графику захвата if (AValue == 0) { if (FSelf.CaptureValue > 0) { _OwnerCapture.enabled = false; _OwnerLevel.enabled = false; } } // Включим графику захвата else if (FSelf.CaptureValue == 0) { _OwnerCapture.enabled = true; _OwnerLevel.enabled = true; } }
// Активация функционала установки торгового пути или свойства планеты private void DoPlanetDrag(bool AMouseUp) { // При активном выборе пути торговли нужно протянуть до курсора мышки if ((SSHShared.MonoSource != null) && (_PathSelection.enabled)) { Vector3 LPosition = SSHLocale.PointToCircle(FSelf.Transform, C_TradePathRadius); LPosition.y = 0; _PathSelection.SetPosition(1, LPosition); return; } // Если планета недоступна или уже выбрана для протягивания - не запускаем функционал повторно /*if ((FShowingAccept != TShowingAction.Show) || (SSHShared.MonoSource != null)) * return;*/ // Покажем детали планеты if (AMouseUp) { Engine.UIPlanetDetails.Show(FSelf);/* * // Или начнем протягивание пути * else if ((FSelf.ControlEnemy == 0) * && (FSelf.Type != PlanetType.Hole) * && (Vector3.Distance(Input.mousePosition, FClickPoint) > C_PathDelta)) * { * /*SSHShared.MonoSource = FSelf; * _PathSelection.enabled = true; * ShowRadius(true); * DoPlanetDrag(AMouseUp); * }*/ } }
// Отображение отсчета таймера private void UpdateTimer() { int LTime; // Определим с какого таймера брать данные if (FSelf.Timer(ShipTimer.PortalJump) > 0) { LTime = FSelf.Timer(ShipTimer.PortalJump); } else if (FSelf.Timer(ShipTimer.Annihilation) > 0) { LTime = FSelf.Timer(ShipTimer.Annihilation); } else if (FSelf.Timer(ShipTimer.Construction) > 0) { LTime = FSelf.Timer(ShipTimer.Construction); } else { return; } // Определим оставшееся время, прячем расхождение секунды с сервером if (LTime < 0) { _Timer.text = SSHLocale.SecondsToString(LTime); } else if (LTime - Mathf.RoundToInt(Time.time) >= 0) { _Timer.text = SSHLocale.SecondsToString(LTime - Mathf.RoundToInt(Time.time)); } }
public void UpdateActive() { if (FShip == null) { return; } int LHP = FShip.Tech(ShipTech.Hp).Value; HP.text = SSHLocale.CountToLongString(LHP); Damage.text = SSHLocale.CountToLongString(LHP - FShip.HP); Count.text = SSHLocale.CountToLongString(FShip.Count); }
// Обновление состояния планеты, видимое всем игрокам public void UpdateState() { // Обновим таймер для тайминговых планет if (FSelf.IsTiming) { if (FSelf.State == PlanetState.Active) { _TimerBackground.color = SSHLocale.IntToColor(0x003807FF); } else { _TimerBackground.color = SSHLocale.IntToColor(0x636363FF); } } }
private void Update() { // Неподписанные и видимые в камере планеты игнорируются if (FSelf.Subscription != PlanetSubscription.Enabled) { return; } // Обновим таймер времени активности if (FSelf.IsTiming) { _TimerText.text = SSHLocale.SecondsToString(Mathf.RoundToInt(FSelf.TimerStateTime - (Time.time - FSelf.TimerUpdateTime))); } // Повернем слоты вокруг сферы DoSlotsRotate(); }
// Обновление роли планеты private void DoUpdateRole() { /* цвета вынести */ switch (FSelf.Owner.Role) { case SSHRole.Self: _OwnerLevel.color = SSHLocale.IntToColor(0x00CAFFB2); break; case SSHRole.Friend: _OwnerLevel.color = Color.green; break; case SSHRole.Neutral: _OwnerLevel.color = SSHLocale.IntToColor(0xF0F0F0AE); break; case SSHRole.Enemy: _OwnerLevel.color = SSHLocale.IntToColor(0xFF8E0090); break; } }
// UI графика: владелец корябля private void ShowCornerColor() { if (FSelf.Owner.Role == SSHRole.Self) { _CountBackground.color = SSHLocale.IntToColor(C_ColorSelfBack); _CountCorner.color = SSHLocale.IntToColor(C_ColorSelfCorner); } else if (FSelf.Owner.Role == SSHRole.Enemy) { _CountBackground.color = SSHLocale.IntToColor(C_ColorEnemyBack); _CountCorner.color = SSHLocale.IntToColor(C_ColorEnemyCorner); } else { _CountBackground.color = SSHLocale.IntToColor(C_ColorNeutralBack); _CountCorner.color = SSHLocale.IntToColor(C_ColorNeutralCorner); } }
// Смена типа или количества кораблика public void Change(ShipType AShipType, int ACount) { FSelf.Count = ACount; // Обновление строчки количества _TextCount.text = SSHLocale.CountToShortString(ACount); // Тип кораблика не изменился if (AShipType == FSelf.ShipType) { return; } // Меняем тип кораблика FSelf.ShipType = AShipType; if (FPrefab != null) { Destroy(FPrefab.gameObject); } // Для нового кораблика задаем спрайт if (AShipType != ShipType.Empty) { FPrefab = PrefabManager.CreateShipModel(_PanelModel, Engine.Player.Race, AShipType).transform; _TextType.text = AShipType.ToString(); _PanelInfo.SetActive(true); if (IsFocused) { CheckEnterAny(); } } // Для пустого слота выключаем кнопку else { _PanelInfo.SetActive(false); if (IsFocused) { Deactivate(); } } }
// Смены цены покупки стека void DoButtonChangePrice(int ACount) { FShipCount = Mathf.Min(FShipMax, ACount); // Если можно купить несколько кораблей, распишем формулу покупки if (FShipCount > 0) { FLastSlot.UpdatePrice(FShipCount.ToString() + " x " + FShipCost.ToString() + " = " + SSHLocale.CountToLongString(ACount * FShipCost)); } else { FLastSlot.UpdatePrice(); } InputCount.text = FShipCount.ToString(); DoSelectInput(); }
private void doshow() { OwnerName.text = FShip.Owner.Name; Type.text = FShip.ShipType.ToString(); FTime = Time.time; string LText = "Описание " + FShip.ShipType.ToString() + "\r\n"; LText += "Номер в реестре: " + FShip.UID + "\r\n\r"; if (FShip.AttachedPlanet != null) { LText += "Присоединен: " + FShip.AttachedPlanet.UID + ", " + FShip.AttachedPlanet.PlanetType + " : "; if (FShip.IsAutoTarget) { LText += "Автоприцел\r\n\r\n"; } else { LText += "Вручную\r\n\r\n"; } } LText += "Топливо: " + FShip.Fuel; if (FShip.Timer(ShipTimer.Refill) > 0) { LText += " (" + SSHLocale.SecondsToString(FShip.Timer(ShipTimer.Refill) - Mathf.RoundToInt(Time.time)) + ")\r\n"; } else { LText += "\r\n"; } if (FShip.Timer(ShipTimer.Constructor) > 0) { LText += "Constructor: (" + SSHLocale.SecondsToString(FShip.Timer(ShipTimer.Constructor) - Mathf.RoundToInt(Time.time)) + ")\r\n"; } LText += "Убито: " + FShip.Destructed + "\r\n"; LText += "В группе: " + FShip.Group + "\r\n"; LText += "Инициатор: " + FShip.Script.IsActive + "\r\n"; LText += "Состояние: " + FShip.State + ", Режим: " + FShip.Mode + "\r\n\r\n"; if (FShip.Weapon(ShipWeaponType.Left).Ship != null) { LText += "Левое орудие: " + FShip.Weapon(ShipWeaponType.Left).Ship.UID + ", " + FShip.Weapon(ShipWeaponType.Left).Ship.ShipType + "\r\n"; } if (FShip.Weapon(ShipWeaponType.Right).Ship != null) { LText += "Правое орудие: " + FShip.Weapon(ShipWeaponType.Right).Ship.UID + ", " + FShip.Weapon(ShipWeaponType.Right).Ship.ShipType + "\r\n"; } if (FShip.Weapon(ShipWeaponType.Center).Ship != null) { LText += "Центральное орудие: " + FShip.Weapon(ShipWeaponType.Center).Ship.UID + ", " + FShip.Weapon(ShipWeaponType.Center).Ship.ShipType + "\r\n"; } if (FShip.Weapon(ShipWeaponType.Rocket).Ship != null) { LText += "Ракетное орудие: " + FShip.Weapon(ShipWeaponType.Rocket).Ship.UID + ", " + FShip.Weapon(ShipWeaponType.Rocket).Ship.ShipType + "\r\n"; } Description.text = LText; UpdateActive(); UpdatePassive(); }
// Смена количества елиниц ресурсов у слота public void ChangeCount(int AValue) { FCount.text = SSHLocale.CountToShortString(AValue); FCollider.enabled = (AValue == 0); }