public override void PlayBoostCard() { base.PlayBoostCard(); if (_boostAudio) { AudioHelper.PlayClip2D(_boostAudio, 0.5f); } EndedSelection?.Invoke(); }
// TODO I don't think it's best that this goes here, but I don't know a better way to organize it yet // TODO these if checks are kinda disgusting IEnumerator AbilityCardSelection(AbilityCard card, int index) { SelectedAbilityCard?.Invoke(card); if (_selectedAudio) { AudioHelper.PlayClip2D(_selectedAudio, 0.5f); } yield return(new WaitForEndOfFrame()); while (true) { if (Input.GetMouseButtonDown(0)) { RaycastHit hit = GetPointerRaycast(); BoardSpace space = hit.collider?.GetComponent <BoardSpace>(); if (space != null) // && hit.collider.gameObject.layer == LayerMask.NameToLayer("PlayerSpace")) { if (!space.UseCard(card)) { EndedSelection?.Invoke(); _abilityRoutine = null; yield break; } Actions -= card.Cost; Hand.Remove(index); AbilityDiscard.Add(card); RaiseActions(Actions); RaiseDiscard(AbilityDiscard); RaiseHand(Hand); EndedSelection?.Invoke(); _abilityRoutine = null; yield break; } else { if (_clickFailAudio) { AudioHelper.PlayClip2D(_clickFailAudio, 0.5f); } } } else if (Input.GetMouseButtonDown(1)) { EndedSelection?.Invoke(); if (_droppedAudio) { AudioHelper.PlayClip2D(_droppedAudio, 0.5f); } _abilityRoutine = null; yield break; } yield return(null); } }
IEnumerator BoostCardSelection() { SelectedBoostCard?.Invoke(BoostDeck.TopItem); if (_selectedAudio) { AudioHelper.PlayClip2D(_selectedAudio, 0.5f); } yield return(new WaitForEndOfFrame()); while (true) { if (Input.GetMouseButtonDown(0)) { RaycastHit hit = GetPointerRaycast(); IBoostable boostable = hit.collider?.GetComponent <IBoostable>(); if (boostable != null) { ITargetable boostTarget = boostable as ITargetable; TargetController.CurrentTarget = boostTarget; PlayBoostCard(); _boostRoutine = null; yield break; } else if (hit.collider?.gameObject.layer == LayerMask.NameToLayer("PlayerTarget")) { TargetController.CurrentTarget = GetComponent <ITargetable>(); PlayBoostCard(); EndedSelection?.Invoke(); _boostRoutine = null; yield break; } else { if (_clickFailAudio) { AudioHelper.PlayClip2D(_clickFailAudio, 0.5f); } } } else if (Input.GetMouseButtonDown(1)) { EndedSelection?.Invoke(); if (_droppedAudio) { AudioHelper.PlayClip2D(_droppedAudio, 0.5f); } _boostRoutine = null; yield break; } yield return(null); } }