public void ButtonHandler(GameObject go) { int currentButton = go.GetComponent <UnitButtonHandler>().buttonNumber; UnitButtonHandler buttonHandlerRef = go.GetComponent <UnitButtonHandler>(); //int tempRequirement = skillButtonArray[currentButton].GetComponent<UnitButtonHandler>().cost; int tempRequirement = 5; int elementToCheck = buttonHandlerRef.referenceNumber; int settingsValue = buttonHandlerRef.settingsReferer; CharacterProperties.UnitType buttonUnitType = characterSettingsPrefab.GetComponent <CharacterSettings>().characterProperties[settingsValue].unitType; buttonHandlerRef.currentAmount -= 5; UpdateElementText(); if (go.transform.FindChild("Dim").GetComponent <UISprite>().localSize.y != buttonHandlerRef.originalSize.y) { go.GetComponent <UnitButtonHandler>().ActivateButtonCoolDown(); } if (GlobalManager.multiplyerGame) { this.gameObject.GetComponent <GameNetworkHandler>().NetworkMessage(GlobalManager.NetworkMessage.SpawnUnit, new object[4] { bonusDamageDeck, settingsValue + 1, 5, (int)buttonUnitType }); } else { defObj.SpawnCharacter(bonusDamageDeck, settingsValue + 1, GlobalManager.UICard.localUserCardDeck[currentButton].level, buttonUnitType, CharacterProperties.Team.LEFT); } }
//makes the unit buttons interactable //changes the listener functions on the unit buttons to the handler provided as an argument to the method //UnitButtonHandler handler: function delegate to be assigned to the unit buttons upon state change void ReengageUnitButtons(UnitButtonHandler handler) { UnityAction tempAction = new UnityAction(handler); foreach (Button unitButton in unitButtonList) { unitButton.interactable = true; unitButton.onClick.RemoveAllListeners(); unitButton.onClick.AddListener(tempAction); } currentSelectedUnit.GetComponent <Button>().Select(); prevSelectedButton = currentSelectedUnit; }
private void InitSkillButton() { string buttonName = ""; string spriteName = ""; int limit = 8; int val = 0; int tempReferenceNumber = 0; int buttonNumber = -1; CharacterProperties.CategoryColour category = CharacterProperties.CategoryColour.RED; CharacterProperties.UnitType unitType = CharacterProperties.UnitType.ARCHER; int unitLevel = 0; CharacterProperties.SkillType skillType = CharacterProperties.SkillType.NONE; int skillLevel = 0; int settingsAmt = 0; //int offset = 0; float buttonXPos = 0; for (int i = 0; i < skillButtonArray.Length; i++) { val = i; if (GlobalManager.UICard.localUserCardDeck[i] != null) { int deckValue = settingsAmt = GlobalManager.UICard.localUserCardDeck[i].cardNumber - 1; UIEventListener.Get(skillButtonArray[i]).onClick += ButtonHandler; // character deck if (GlobalManager.UICard.localUserCardDeck[i].cardNumber > 0) { buttonName = spriteName = characterSettingsPrefab.GetComponent <CharacterSettings>().characterProperties[deckValue].iconSpriteName; tempReferenceNumber = i + 1; category = characterSettingsPrefab.GetComponent <CharacterSettings>().characterProperties[deckValue].category; unitType = characterSettingsPrefab.GetComponent <CharacterSettings>().characterProperties[deckValue].unitType; unitLevel = 1; skillType = characterSettingsPrefab.GetComponent <CharacterSettings>().characterProperties[deckValue].skillType; skillLevel = (int)characterSettingsPrefab.GetComponent <CharacterSettings>().characterProperties[deckValue].skillLevel; settingsAmt = deckValue; buttonNumber = i; if (skillType == CharacterProperties.SkillType.FIRE_BOOST) { int skillIndex = (int)CharacterProperties.SkillType.FIRE_BOOST - 1; bonusDamageDeck[0] += (int)skillSettings.skillProperties[skillIndex].damageBoost[skillLevel]; Debug.Log(bonusDamageDeck[0]); } else if (skillType == CharacterProperties.SkillType.WATER_BOOST) { int skillIndex = (int)CharacterProperties.SkillType.WATER_BOOST - 1; bonusDamageDeck[1] += (int)skillSettings.skillProperties[skillIndex].damageBoost[skillLevel]; } else if (skillType == CharacterProperties.SkillType.NATURE_BOOST) { int skillIndex = (int)CharacterProperties.SkillType.NATURE_BOOST - 1; bonusDamageDeck[2] += (int)skillSettings.skillProperties[skillIndex].damageBoost[skillLevel]; } else if (skillType == CharacterProperties.SkillType.GROUND_BOOST) { int skillIndex = (int)CharacterProperties.SkillType.GROUND_BOOST - 1; bonusDamageDeck[3] += (int)skillSettings.skillProperties[skillIndex].damageBoost[skillLevel]; } else if (skillType == CharacterProperties.SkillType.DARK_BOOST) { int skillIndex = (int)CharacterProperties.SkillType.DARK_BOOST - 1; bonusDamageDeck[4] += (int)skillSettings.skillProperties[skillIndex].damageBoost[skillLevel]; } else if (skillType == CharacterProperties.SkillType.LIGHT_BOOST) { int skillIndex = (int)CharacterProperties.SkillType.LIGHT_BOOST - 1; bonusDamageDeck[5] += (int)skillSettings.skillProperties[skillIndex].damageBoost[skillLevel]; } skillButtonArray[i].transform.Find("Background").GetComponent <UISprite>().spriteName = spriteName; skillButtonArray[i].GetComponent <UIButton>().normalSprite = spriteName; skillButtonArray[i].GetComponent <UIButton>().hoverSprite = spriteName; skillButtonArray[i].GetComponent <UIButton>().pressedSprite = spriteName; skillButtonArray[i].GetComponent <UIButton>().disabledSprite = spriteName; UnitButtonHandler obj = skillButtonArray[i].GetComponent <UnitButtonHandler>(); obj.referenceNumber = tempReferenceNumber; obj.element = category; obj.unitType = unitType; obj.unitLevel = unitLevel; obj.skillType = skillType; obj.skillLevel = skillLevel; obj.buttonNumber = buttonNumber; obj.settingsReferer = settingsAmt; } else { //skillButtonArray[i].collider.enabled = false; skillButtonArray[i].GetComponent <UIButton>().isEnabled = false; skillButtonArray[i].GetComponent <UnitButtonHandler>().DisableSelf(); } } } }