private void ChooseDamageType(BaseSpirit _playerSpirit, Enemy _enemy) { if (_playerSpirit.abilityEvoked) { switch (_playerSpirit.spiritClass) { case BaseSpirit.SpiritClass.Berserker: damage += (int)_playerSpirit.DamageModifier; _enemy.TakeDamage(damage); print("Enemy Damaged by " + damage); damage = baseDamage; _playerSpirit.abilityEvoked = false; return; case BaseSpirit.SpiritClass.Sellsword: damage += (int)_playerSpirit.DamageModifier; _enemy.TakeDamage(damage); playerStateManager.RestoreHealth(_playerSpirit.HealthModifier); print("Enemy Damaged by " + damage); damage = baseDamage; _playerSpirit.abilityEvoked = false; return; default: damage = baseDamage; _enemy.TakeDamage(damage); return; } } else { _enemy.TakeDamage(damage); } }
private void PlayAbilitySound(BaseSpirit spirit) { if (spirit.AbilitySound != null) { AudioSource source = GetComponentInChildren <AudioSource>(); source.PlayOneShot(spirit.AbilitySound); } }
public BaseSpirit GetRandomSpiritFromList(List <BaseSpirit> spiritList) { BaseSpirit spirit = new BaseSpirit(); int spiritIndex = Random.Range(0, spiritList.Count - 1); spirit = spiritList[spiritIndex]; return(spirit); }
public void ActiveAbility(BaseSpirit _CurrentSpirit) { if (canUseAbility) { PlayAbilitySound(_CurrentSpirit); //Active Ability logic UpdateVFXScript(_CurrentSpirit); AbilityCooldown(_CurrentSpirit); _CurrentSpirit.abilityEvoked = true; } }
/// <summary> /// Attempts to add a spirit to the list of spirits stored. /// </summary> public bool AddSpiritCardToInventory(BaseSpirit spirit) { if (spiritCards.Count + 1 <= spiritCardLimit) { spiritCards.Add(spirit); //spiritDeckCallback.Invoke(spirit); // Invoke delegate passing the spirit added to the inventory return(true); } print("Spirit could not be added to the deck, too many cards!"); return(false); }
private void Update() { if (DebugTesting) { if (Input.GetKeyDown(KeyCode.Alpha1)) { spiritEquipped = DemoSpirits[0]; OnEquipSpirit(spiritEquipped); } else if (Input.GetKeyDown(KeyCode.Alpha2)) { spiritEquipped = DemoSpirits[1]; OnEquipSpirit(spiritEquipped); } else if (Input.GetKeyDown(KeyCode.Alpha3)) { spiritEquipped = DemoSpirits[2]; OnEquipSpirit(spiritEquipped); } else if (Input.GetKeyDown(KeyCode.Alpha4)) { spiritEquipped = DemoSpirits[3]; OnEquipSpirit(spiritEquipped); } else if (Input.GetKeyDown(KeyCode.Alpha5)) { spiritEquipped = DemoSpirits[4]; OnEquipSpirit(spiritEquipped); } else if (Input.GetKeyDown(KeyCode.Alpha6)) { spiritEquipped = DemoSpirits[5]; OnEquipSpirit(spiritEquipped); } else if (Input.GetKeyDown(KeyCode.Alpha0)) { OnEquipSpirit(spirit); } } if (spiritEquipped != null) { if (spiritEquipped.abilityEvoked == false) { swordMesh.RevertToOriginalMat(); shieldMesh.RevertToOriginalMat(); } } }
protected void UpdateVFXScript(BaseSpirit _EquippedSpirit) { //AnimationLogic for the active ability switch (_EquippedSpirit.spiritClass) { case BaseSpirit.SpiritClass.Cleric: //hook up with RFX4 effect event swordMesh.RevertToOriginalMat(); shieldMesh.RevertToOriginalMat(); _EffectEvent.MainEffect = _EquippedSpirit.VFXPrefab; break; case BaseSpirit.SpiritClass.Paladin: swordMesh.RevertToOriginalMat(); shieldMesh.RevertToOriginalMat(); shieldMesh.VFXPrefab = _EquippedSpirit.VFXPrefab; shieldMesh.UpdateMeshEffect(); break; case BaseSpirit.SpiritClass.Ranger: _EffectEvent.MainEffect = _EquippedSpirit.VFXPrefab; break; case BaseSpirit.SpiritClass.Berserker: swordMesh.RevertToOriginalMat(); shieldMesh.RevertToOriginalMat(); swordMesh.VFXPrefab = _EquippedSpirit.VFXPrefab; _EffectEvent.MainEffect = null; swordMesh.UpdateMeshEffect(); break; case BaseSpirit.SpiritClass.Sellsword: swordMesh.RevertToOriginalMat(); shieldMesh.RevertToOriginalMat(); swordMesh.VFXPrefab = _EquippedSpirit.VFXPrefab; swordMesh.UpdateMeshEffect(); break; case BaseSpirit.SpiritClass.Mage: //hook up with RFX4 effect event swordMesh.RevertToOriginalMat(); shieldMesh.RevertToOriginalMat(); _EffectEvent.MainEffect = _EquippedSpirit.VFXPrefab; break; } }
public void AddMember(BaseSpirit bs) { this.SName = bs.SName; this.image = bs.image; this.biomeFound = bs.biomeFound; this.type1 = bs.type1; this.type2 = bs.type2; this.rarity = bs.rarity; this.HP = bs.HP; this.maxHP = bs.maxHP; //this.AttStat = bs.AttStat; // this.DefStat = bs.DefStat; this.spiritStats = bs.spiritStats; this.canAscend = bs.canAscend; this.AscendTo = bs.AscendTo; this.level = bs.level; }
public void ManageSpiritUI(BaseSpirit _spiritToDisplay) { if (_spiritToDisplay != null) { SpiritIcon.gameObject.SetActive(true); SpiritBar.gameObject.SetActive(true); SpiritBar.color = Color.white; SpiritIcon.sprite = _spiritToDisplay._spiritSpriteIcon; } else { SpiritIcon.sprite = huskSpiritSprite; SpiritBar.color = Color.gray; } }
public void OnEquipSpirit(BaseSpirit _SpiritToEquip) { PlayerCharacter = gameObject.GetComponent <StateManager>(); if (_SpiritToEquip != null) { //Update UI onSpiritChanged?.Invoke(_SpiritToEquip); if (actionManager != null) { actionManager.actionSlots[2].desiredAnimation = _SpiritToEquip.activeAbilityAnimation; } canUseAbility = true; } else { //Update UI onSpiritChanged?.Invoke(_SpiritToEquip); } }
void AbilityCooldown(BaseSpirit _EquippedSpirit) { canUseAbility = false; UIManager.Instance.UpdateAbilityBar(_EquippedSpirit.ActiveAbilityCooldown); StartCoroutine(DoAfter(_EquippedSpirit.ActiveAbilityCooldown, () => canUseAbility = true)); }
public void SetCorrectProps(BaseSpirit _EquippedSpirit) { if (_EquippedSpirit != null) { switch (_EquippedSpirit.spiritClass) { case BaseSpirit.SpiritClass.Cleric: BerserkerProps.SetActive(false); ClericProps.SetActive(true); PaladinProps.SetActive(false); MageProps.SetActive(false); RangerProps.SetActive(false); SellswordProps.SetActive(false); print("My class is " + _EquippedSpirit.spiritClass); break; case BaseSpirit.SpiritClass.Paladin: BerserkerProps.SetActive(false); ClericProps.SetActive(false); PaladinProps.SetActive(true); MageProps.SetActive(false); RangerProps.SetActive(false); SellswordProps.SetActive(false); print("My class is " + _EquippedSpirit.spiritClass); break; case BaseSpirit.SpiritClass.Ranger: BerserkerProps.SetActive(false); ClericProps.SetActive(false); PaladinProps.SetActive(false); MageProps.SetActive(false); RangerProps.SetActive(true); SellswordProps.SetActive(false); print("My class is " + _EquippedSpirit.spiritClass); break; case BaseSpirit.SpiritClass.Berserker: BerserkerProps.SetActive(true); ClericProps.SetActive(false); PaladinProps.SetActive(false); MageProps.SetActive(false); RangerProps.SetActive(false); SellswordProps.SetActive(false); print("My class is " + _EquippedSpirit.spiritClass); break; case BaseSpirit.SpiritClass.Sellsword: BerserkerProps.SetActive(false); ClericProps.SetActive(false); PaladinProps.SetActive(false); MageProps.SetActive(false); RangerProps.SetActive(false); SellswordProps.SetActive(true); print("My class is " + _EquippedSpirit.spiritClass); break; case BaseSpirit.SpiritClass.Mage: BerserkerProps.SetActive(false); ClericProps.SetActive(false); PaladinProps.SetActive(false); MageProps.SetActive(true); RangerProps.SetActive(false); SellswordProps.SetActive(false); print("My class is " + _EquippedSpirit.spiritClass); break; } } else { BerserkerProps.SetActive(false); ClericProps.SetActive(false); PaladinProps.SetActive(false); MageProps.SetActive(false); RangerProps.SetActive(false); SellswordProps.SetActive(false); print("My class is husk"); } }
/// <summary> /// Remove the chosen spirit from the inventory. /// </summary> public void RemoveSpiritCardFromInventory(BaseSpirit spirit) { spiritCards.Remove(spirit); print(spirit.name + " removed from inventory"); }
public void EnterBattle(Rarity rarity) { playerCamera.SetActive(false); battleCamera.SetActive(true); player.GetComponent <PlayerMovement>().isAllowedToMove = false; battleSpirit = GetRandomSpiritFromList(GetSpiritByRarity(rarity)); p1 = player.GetComponent <Player>(); Debug.Log(battleSpirit.name); if (battleSpirit.biomeFound == BiomeList.Route1) { lvlMin = 1; lvlMax = 5; } enemyLvl = Random.Range(lvlMin, lvlMax); battleSpirit.lvl = enemyLvl; enemyMaxHP = ((3 * enemyLvl) / 100 + enemyLvl + 10); enemyHP = enemyMaxHP; bm.enemyHealthFill.value = 1; enemyAtt = ((((battleSpirit.spiritStats.AttackStat * 2) * enemyLvl) / 100) + 5); enemyMag = ((((battleSpirit.spiritStats.MagicStat * 2) * enemyLvl) / 100) + 5); enemyDef = ((((battleSpirit.spiritStats.DefenceStat * 2) * enemyLvl) / 100) + 5); enemyWil = ((((battleSpirit.spiritStats.WillpowerStat * 2) * enemyLvl) / 100) + 5); enemySpe = ((((battleSpirit.spiritStats.SpeedStat * 2) * enemyLvl) / 100) + 5); playerMaxHP = ((3 * p1.ownedSpirits[0].level) / 100 + p1.ownedSpirits[0].level + 10); if (p1.ownedSpirits[0].currentHP > playerMaxHP) { playerHP = (int)playerMaxHP; } else { playerHP = p1.ownedSpirits[0].currentHP; } bm.playerHealthFill.value = playerHP / playerMaxHP; playerAtt = ((((p1.ownedSpirits[0].spirit.spiritStats.AttackStat * 2) * p1.ownedSpirits[0].level) / 100) + 5); playerMag = ((((p1.ownedSpirits[0].spirit.spiritStats.MagicStat * 2) * p1.ownedSpirits[0].level) / 100) + 5); playerDef = ((((p1.ownedSpirits[0].spirit.spiritStats.DefenceStat * 2) * p1.ownedSpirits[0].level) / 100) + 5); playerWil = ((((p1.ownedSpirits[0].spirit.spiritStats.WillpowerStat * 2) * p1.ownedSpirits[0].level) / 100) + 5); playerSpe = ((((p1.ownedSpirits[0].spirit.spiritStats.SpeedStat * 2) * p1.ownedSpirits[0].level) / 100) + 5); Debug.Log(enemyHP); Debug.Log(enemyAtt); Debug.Log(enemyMag); Debug.Log(enemyDef); Debug.Log(enemyWil); Debug.Log(enemySpe); EnemySpirit = Instantiate(emptySpirit, EnemyPodium.transform.position, Quaternion.identity) as GameObject; PlayerSpirit = Instantiate(emptySpirit, PlayerPodium.transform.position, Quaternion.identity) as GameObject; Vector3 SpiritLocalPos = new Vector3(0, 1, 0); EnemySpirit.transform.parent = EnemyPodium; EnemySpirit.transform.localPosition = SpiritLocalPos; PlayerSpirit.transform.parent = PlayerPodium; PlayerSpirit.transform.localPosition = SpiritLocalPos; BaseSpirit tempSpirit = EnemySpirit.AddComponent <BaseSpirit>() as BaseSpirit; tempSpirit.AddMember(battleSpirit); PlayerSpirit.GetComponent <SpriteRenderer>().sprite = p1.ownedSpirits[0].spirit.image; PlayerSpirit.GetComponent <SpriteRenderer>().flipX = true; EnemySpirit.GetComponent <SpriteRenderer>().sprite = battleSpirit.image; bm.ChangeMenu(BattleMenu.Selection); }