private void ChangeRune(EventInfo eventInfo) { runeSprite.enabled = true; runeBackground.enabled = true; ChangeRuneEventInfo changeRuneInfo = (ChangeRuneEventInfo)eventInfo; currentRune = changeRuneInfo.newRune; Debug.Log("Changeing from currentrune value " + currentRune.GetRuneValue()); DisEnableAllRunes(); switch (currentRune.GetRuneValue()) { case 1: ChangeRuneSprite(changeRuneInfo.newRune); thunderRune.enabled = true; break; case 2: ChangeRuneSprite(changeRuneInfo.newRune); calmRune.enabled = true; break; case 3: ChangeRuneSprite(changeRuneInfo.newRune); locateRune.enabled = true; break; default: runeSprite.sprite = null; break; } }
/// <summary> /// Adds a rune to the Rune Array. /// </summary> /// <param name="rune"> Contains information about the runes values</param> public void AddRune(EventInfo eventInfo) { Rune rune = null; RewardQuestInfo rqei = (RewardQuestInfo)eventInfo; if (rqei.rewardNumber == 1) { rune = new Rune(1, "Thunder", 50); } else if (rqei.rewardNumber == 2) { rune = new Rune(2, "Calm", 45); } else if (rqei.rewardNumber == 3) { rune = new Rune(3, "Locate", 20); } if (rune == null) { return; } rune.Index = RuneNumber; if (RuneNumber == 0) { CurrentRune = rune; ChangeRuneEventInfo crei = new ChangeRuneEventInfo { newRune = rune }; EventHandeler.Current.FireEvent(EventHandeler.EVENT_TYPE.ChangeRune, crei); } Runes[RuneNumber] = rune; RuneNumber++; }
/// <summary> /// Uses different runes depending on the <see cref="CurrentRune"/> value. And enables the selection of rune. /// </summary> private void RuneKeys() { if (Input.GetButtonDown("Rune activation key") || (Input.GetAxisRaw("Rune activation axis") > 0 && XboxInputLeftTriggerNotOnCooldown == true)) { XboxInputLeftTriggerNotOnCooldown = false; owner.StartCoroutine(owner.XboxCooldown()); if (CurrentRune != null && CurrentRune.ReadyToUse() && !Source.isPlaying) { CurrentRune.Used(); switch (CurrentRune.GetRuneValue()) { case 1: AudioClip clip = StunGiantSound; Source.PlayOneShot(clip); StunGiantEventInfo sgei = new StunGiantEventInfo { playerPosition = Position.position, stunDistance = StunRange }; EventHandeler.Current.FireEvent(EventHandeler.EVENT_TYPE.StunGiant, sgei); MadeANoise(clip.length); break; case 2: CalmCowEvent cce = new CalmCowEvent { playerPosition = Position.position }; EventHandeler.Current.FireEvent(EventHandeler.EVENT_TYPE.CalmCow, cce); MadeANoise(1); break; case 3: LocateCowEventInfo lcei = new LocateCowEventInfo { playerPosition = Position.position }; EventHandeler.Current.FireEvent(EventHandeler.EVENT_TYPE.LocateCow, lcei); MadeANoise(1); break; default: break; } } } if (Input.GetButton("Change rune key") || (Input.GetAxisRaw("Change rune axis") < 0 && XboxInputDownNotOnCooldown == true)) { if (CurrentRune != null) { XboxInputDownNotOnCooldown = false; owner.StartCoroutine(owner.XboxCooldown()); int temp = CurrentRune.Index; temp++; if (temp >= RuneNumber) { temp = 0; } CurrentRune = Runes[temp]; Debug.Log("Sending change rune event with value " + CurrentRune.GetRuneValue()); ChangeRuneEventInfo crei = new ChangeRuneEventInfo { newRune = CurrentRune }; EventHandeler.Current.FireEvent(EventHandeler.EVENT_TYPE.ChangeRune, crei); } } }