void BumpUpgradeSelection(int adjust) { int newIndex = CurrentUpgradeSelection + adjust; int count = 0; for (int i = CurrentUpgradeSelection + adjust; ; i += adjust) { if (i < 0) { i = selections.Count - 1; } else if (i >= selections.Count) { i = 0; } IUpgradeable ug = Game.Instance.playerShip.GetUpgradeable((PlayerShip.UpgradeType)i); if (ug.CanUpgrade()) { CurrentUpgradeSelection = i; break; } count++; if (count >= selections.Count) { CurrentUpgradeSelection = (int)PlayerShip.UpgradeType.NoUpgrades; break; } } }
private void ChangeStateRPC(bool enabled) { if (Upgrade) { UpgradePreview.SetActive(enabled); if (enabled) { m_upgradeableTarget = null; } } else { if (enabled) { CreatePreview(); } else { m_target = null; if (m_weaponOnSocket != null) { Destroy(m_weaponOnSocket.gameObject); } } } if (PhotonNetwork.IsMasterClient && enabled == false) { StartCoroutine(Respawn()); } ChangeState?.Invoke(enabled); Collider.enabled = enabled; }
public void UISetUpgrade(TMP_Dropdown tmp) { int index = tmp.value; string val = tmp.options[index].text; _upgradeable = GameStateBehaviour.Instance.upgradeDict[val]; RefreshShownValues(); }
public void SetChangeableObject(IUpgradeable changeableObject) { if (changeableObject as IUpgradeable != null) { InstalledFacility = changeableObject as IUpgradeable; } IsFree = false; }
public static void UpgradeRequest(Type type, IUpgradeable instance) { var baseUpgrades = FindObjectsOfType <BaseUpgrade>().Where(x => x.GetUserType() == type && x.GetIndex() == instance.UpgradeIndex); foreach (BaseUpgrade upgrade in baseUpgrades) { upgrade.UpgradeInstance(instance); } }
/// /// Upgrade the ship and the specified upgradeble. /// public void Upgrade(IUpgradeable upgradeable) { // full health recovery this.health = this.maxHealth; if (upgradeable.CanUpgrade()) { upgradeable.Upgrade(); } Game.Instance.ShowMessage(UItext.MessageType.RankUp, Game.Instance.ExplorationCount.ToString()); }
void DisplayUpgradeWindow(IUpgradeable upgradeable) { // Clear listeners UpgradeButton.GetComponentInChildren <Button>().onClick.RemoveAllListeners(); // Add a listener that tries to upgrade UpgradeButton.GetComponentInChildren <Button>().onClick.AddListener(() => TryToUpgrade(upgradeable)); UpgradeButton.transform.GetChild(0).Find("Price").GetComponent <TMPro.TextMeshProUGUI>().text = upgradeable.GetUpgradeCost().ToString(); //Move and display the upgrade button next to the object UpgradeButton.SetActive(true); UpgradeButton.transform.position = selected.transform.position + new Vector3(0, -1, 0); }
void UpdateStarsAndSelections() { for (int i = 0; i < selections.Count; i++) { selections[i].GetComponent <Image>().enabled = i == (int)Game.Instance.playerShip.CurrentUpgradeType; PlayerShip.UpgradeType ut = (PlayerShip.UpgradeType)i; IUpgradeable ug = Game.Instance.playerShip.GetUpgradeable(ut); stars[i].enabled = ug.HasMaxUpgrade(); upgrades[i].enabled = !(ug is PlayerShip.NonUpgradeable); } }
private void OnTriggerEnter(Collider other) { var targetView = other.GetComponent <PhotonView>(); if (targetView == null || !targetView.IsMine) { return; } m_target = other.GetComponent <IPickable>(); m_upgradeableTarget = other.GetComponent <IUpgradeable>(); TriggerEntered?.Invoke(); }
private int GetUpgradedLevel(IUpgradeable i_upgrade) { int upgradedLevel = i_upgrade.Value + 1; if (upgradedLevel > i_upgrade.MaxLevel) { upgradedLevel = i_upgrade.MaxLevel; } else if (upgradedLevel < 0) { upgradedLevel = 0; } return(upgradedLevel); }
void TryToUpgrade(IUpgradeable upgradeable) { // If we have enough money if (upgradeable.CanUpgrade() && PlayerData.Instance.CanAfford(upgradeable.GetUpgradeCost())) { //Spend the money PlayerData.Instance.Spend(upgradeable.GetUpgradeCost()); //Upgrade upgradeable.Upgrade(); var cost = upgradeable.GetUpgradeCost(); var text = cost >= 0 ? cost.ToString() : "-"; UpgradeButton.transform.GetChild(0).Find("Price").GetComponent <TMPro.TextMeshProUGUI>().text = text; } }
/// <summary> /// Called from Controller, if target available proceed. /// </summary> internal void PickUp() { if (m_target == null || m_upgradeableTarget == null) { return; } if (Upgrade) { m_upgradeableTarget?.Upgrade(); } else { m_target?.PickUp(m_weapon); } m_target = null; m_upgradeableTarget = null; m_photonView.RPC("ChangeStateRPC", RpcTarget.All, false); PickedWeapon?.Invoke(); }
public void SetUpgrade(IUpgradeable upgrade) { _upgradeable = upgrade; RefreshShownValues(); }
/// <summary> /// Checks if the given <paramref name="upgrade"/> is compatible /// with the object. /// </summary> /// <param name="obj">Calling object.</param> /// <param name="upgrade">Upgrade to check for compatibility.</param> /// <returns>True if upgrade is compatible, false if not.</returns> public static bool IsUpgradeCompatible(this IUpgradeable obj, IUpgrade upgrade) { return(upgrade.ValidObjects.Contains(obj.GetType())); }
private void OnTriggerExit(Collider other) { m_target = null; m_upgradeableTarget = null; TriggerExited?.Invoke(); }
/// <summary> /// Constructor. /// </summary> /// <param name="parent">The object this UpgradeContainer is /// built-in.</param> /// <param name="amountSlots">Amount of slots of the <see cref="UpgradeSlots"/>.</param> public UpgradeContainer(IUpgradeable parent, int amountSlots = 1) { _parent = parent ?? throw new ArgumentNullException(nameof(parent)); _upgradeSlots = new IUpgrade[amountSlots]; }
public void UpgradeInstance(IUpgradeable instance) { instance.Upgrade(upgradeType, Level, maxLevel); }
void Update() { totalExplored.text = game.ExplorationCount.ToString(); var player = Game.Instance.playerShip; if (player) { hpBar.fillAmount = player.health / (float)player.maxHealth; } else { hpBar.fillAmount = 0; } int gridNum = Game.Instance.GetCurrentGrid(); textCurrentSector.text = "Sector: " + Game.Instance.GetSectorName(gridNum); // text if (!_showingText && _messageQueue.Count > 0) { // show the next message textForPlayer.text = _messageQueue.Dequeue(); textForPlayer.enabled = true; textForPlayer.transform.parent.gameObject.SetActive(true); if (notificationSound) { Game.Instance.effectsAudioSource.PlayOneShot(notificationSound); } _textTimerCounter = 0; _showingText = true; } else if (_showingText) { if (_textTimerCounter >= textTimer) { textForPlayer.enabled = false; textForPlayer.transform.parent.gameObject.SetActive(false); textForPlayer.text = string.Empty; _showingText = false; _textTimerCounter = 0; } _textTimerCounter += Time.deltaTime; } // for (int i = 0; i < juices.Count; i++) { juices[i].enabled = (i + 1) <= WarpCount; } if (CurrentUpgradeSelection != (int)PlayerShip.UpgradeType.NoUpgrades) { // if (Input.GetButtonDown("Upgrade Selection Down")) // { // BumpUpgradeSelection(-1); // } // if (Input.GetButtonDown("Upgrade Selection Up")) // { // BumpUpgradeSelection(1); // } float axVal = Input.GetAxis("Upgrade Selection"); if (axVal != _lastSelectionX) { if (axVal < 0) { BumpUpgradeSelection(-1); } else if (axVal > 0) { BumpUpgradeSelection(1); } _lastSelectionX = axVal; } UpdateStarsAndSelections(); // Automatically bump the upgrade if current is not upgradeable. IUpgradeable upgradeable = Game.Instance.playerShip.GetUpgradeable(); if (!upgradeable.CanUpgrade()) { BumpUpgradeSelection(1); } } else { // Try to find a new thing we can upgrade. BumpUpgradeSelection(1); UpdateStarsAndSelections(); } }