Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
 private void PlayAbilitySound(BaseSpirit spirit)
 {
     if (spirit.AbilitySound != null)
     {
         AudioSource source = GetComponentInChildren <AudioSource>();
         source.PlayOneShot(spirit.AbilitySound);
     }
 }
Beispiel #3
0
    public BaseSpirit GetRandomSpiritFromList(List <BaseSpirit> spiritList)
    {
        BaseSpirit spirit      = new BaseSpirit();
        int        spiritIndex = Random.Range(0, spiritList.Count - 1);

        spirit = spiritList[spiritIndex];

        return(spirit);
    }
Beispiel #4
0
 public void ActiveAbility(BaseSpirit _CurrentSpirit)
 {
     if (canUseAbility)
     {
         PlayAbilitySound(_CurrentSpirit);
         //Active Ability logic
         UpdateVFXScript(_CurrentSpirit);
         AbilityCooldown(_CurrentSpirit);
         _CurrentSpirit.abilityEvoked = true;
     }
 }
Beispiel #5
0
    /// <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);
    }
Beispiel #6
0
        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();
                }
            }
        }
Beispiel #7
0
        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;
            }
        }
Beispiel #8
0
 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;
 }
Beispiel #9
0
        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;
            }
        }
Beispiel #10
0
        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);
            }
        }
Beispiel #11
0
 void AbilityCooldown(BaseSpirit _EquippedSpirit)
 {
     canUseAbility = false;
     UIManager.Instance.UpdateAbilityBar(_EquippedSpirit.ActiveAbilityCooldown);
     StartCoroutine(DoAfter(_EquippedSpirit.ActiveAbilityCooldown, () => canUseAbility = true));
 }
Beispiel #12
0
    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");
        }
    }
Beispiel #13
0
 /// <summary>
 /// Remove the chosen spirit from the inventory.
 /// </summary>
 public void RemoveSpiritCardFromInventory(BaseSpirit spirit)
 {
     spiritCards.Remove(spirit);
     print(spirit.name + " removed from inventory");
 }
Beispiel #14
0
    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);
    }