コード例 #1
0
ファイル: EnemyData.cs プロジェクト: kensuldh/UIPractice
    /// 攻撃された
    public void Attacked(BattleRouletteSlotID slotID, BattlePlayerData playerData)
    {
        switch (slotID)
        {
        case BattleRouletteSlotID.None:
            currentDamage        = 0;
            currentDamageText    = "ミス!ダメージを与えられない!";
            playerData.IsCharged = false;
            break;

        case BattleRouletteSlotID.Charge:
            currentDamage        = 0;
            currentDamageText    = "力をためた!!";
            playerData.IsCharged = true;
            break;

        default:
            CalcDamage(slotID, playerData);

            currentDamageText = AttackedName(slotID) + "\n"
                                + name + "に" + (currentDamage) + "のダメージを与えた!";
            currentHp            = Mathf.Max(currentHp - currentDamage, 0);
            isDead               = (currentHp <= 0);
            playerData.IsCharged = false;
            break;
        }
        Debug.Log(CurrentDamageText);
    }
コード例 #2
0
ファイル: BattleManager.cs プロジェクト: kensuldh/UIPractice
    //攻撃を実行
    void Attack(BattleRouletteSlotID slotID)
    {
        enemyData.Attacked(slotID, playerData);

        playerAttackGauge.SetValueGradually(playerData.ChargedAttack);
        playerMagicGauge.SetValueGradually(playerData.ChargedMagic);

        enemyLife.SetEnemyLifeGradually(enemyData.CurrentHp, enemyData.hp);

        if (enemyData.IsDead)
        {
            isEndBattle = true;
        }

        switch (slotID)
        {
        case BattleRouletteSlotID.NormalAttack:
            effectController.AttackEffect(enemyData, slotID);
            break;

        case BattleRouletteSlotID.Critical:
            TryOpenAchievement(AchievementData.Type.CriticalHit);
            effectController.AttackEffect(enemyData, slotID);
            break;

        case BattleRouletteSlotID.None:
            TryOpenAchievement(AchievementData.Type.Miss);
            effectController.AttackEffect(enemyData, slotID);
            break;

        case BattleRouletteSlotID.FilreMagic:
            effectController.AttackEffect(enemyData, slotID);
            break;

        case BattleRouletteSlotID.IceMagic:
            effectController.AttackEffect(enemyData, slotID);
            break;

        case BattleRouletteSlotID.ThunderMagic:
            effectController.AttackEffect(enemyData, slotID);
            break;

        case BattleRouletteSlotID.Charge:
            effectController.AttackEffect(enemyData, slotID);
            break;

        default:
            break;
        }

        if (enemyData.IsWeakNess(slotID))
        {
            TryOpenAchievement(AchievementData.Type.WeakNess);
        }
    }
コード例 #3
0
ファイル: BattleRoulette.cs プロジェクト: kensuldh/UIPractice
    //指定角度のスロットの中心角度を取得
    void CheckSlot(float rotZ, out float centerRot)
    {
        centerRot = 0;
        float rot = 0;

        foreach (var item in slots)
        {
            rot += item.eulerAngle;
            if (rotZ < rot)
            {
                slotID    = item.id;
                centerRot = rot - (item.eulerAngle / 2);
                break;
            }
        }
    }
コード例 #4
0
    //各種アタックエフェクト
    public void AttackEffect(EnemyData enemyData, BattleRouletteSlotID slotID)
    {
        switch (slotID)
        {
        case BattleRouletteSlotID.NormalAttack:
            enemyDamage.DamageEffect(enemyData, true, true);
            slashEffect.gameObject.SetActive(true);
            break;

        case BattleRouletteSlotID.Critical:
            enemyDamage.DamageEffect(enemyData, true, true);
            criticalEffect.gameObject.SetActive(true);
            break;

        case BattleRouletteSlotID.None:
            enemyDamage.DamageEffect(enemyData, false);
            break;

        case BattleRouletteSlotID.FilreMagic:
            enemyDamage.DamageEffect(enemyData, true, false);
            fireEffect.gameObject.SetActive(true);
            break;

        case BattleRouletteSlotID.IceMagic:
            enemyDamage.DamageEffect(enemyData, true, false);
            iceEffect.gameObject.SetActive(true);
            break;

        case BattleRouletteSlotID.ThunderMagic:
            enemyDamage.DamageEffect(enemyData, true, false);
            thunderEffect.gameObject.SetActive(true);
            break;

        case BattleRouletteSlotID.Charge:
            charge.PlaySound();
            break;

        default:
            break;
        }
    }
コード例 #5
0
ファイル: EnemyData.cs プロジェクト: kensuldh/UIPractice
    //攻撃の名前を取得(デバッグ用)
    static string AttackedName(BattleRouletteSlotID slotID)
    {
        switch (slotID)
        {
        case BattleRouletteSlotID.NormalAttack:
            return("通常攻撃");

        case BattleRouletteSlotID.Critical:
            return("クリティカル");

        case BattleRouletteSlotID.FilreMagic:
            return("炎の魔法");

        case BattleRouletteSlotID.IceMagic:
            return("氷の魔法");

        case BattleRouletteSlotID.ThunderMagic:
            return("雷の魔法");

        default:
            return("");
        }
    }
コード例 #6
0
ファイル: EnemyData.cs プロジェクト: kensuldh/UIPractice
    // ダメージ計算
    void CalcDamage(BattleRouletteSlotID slotID, BattlePlayerData playerData)
    {
        switch (slotID)
        {
        case BattleRouletteSlotID.NormalAttack:
            currentDamage = (playerData.ChargedAttack - deffence) * 100 + RandomDice(3, 6, -7);
            break;

        case BattleRouletteSlotID.Critical:
            currentDamage = (playerData.ChargedAttack - deffence) * 200 + RandomDice(3, 6, -7);
            break;

        case BattleRouletteSlotID.FilreMagic:
        case BattleRouletteSlotID.IceMagic:
        case BattleRouletteSlotID.ThunderMagic:
            currentDamage = (playerData.ChargedMagic - magicRes) * 100 + RandomDice(3, 6, -7);
            break;
        }
        currentDamage = Mathf.Max(0, currentDamage);
        if (IsWeakNess(slotID))
        {
            currentDamage *= 2;
        }
    }
コード例 #7
0
ファイル: EnemyData.cs プロジェクト: kensuldh/UIPractice
 //弱点が突かれたか?
 public bool IsWeakNess(BattleRouletteSlotID slotID)
 {
     return(slotID == weakNess);
 }