public void SpellReceieved(SpellEffectOnChar effect)
 {
     foreach (IExtraSpell exsp in _dic_extraSpells.Values)
     {
         exsp.SpellReceieved(effect);
     }
 }
    public void MakeAndAddSpellEffect(BtlCtrlCharacter target, SpellEffectOnChar effectOnChar,
                                      BtlCtrlCharacter.ChangeStatInfo changeStatInfo)
    {
        var statChanges = new List <SpellSingleStatChangeInfo>();

        if (Mathf.Abs(changeStatInfo.shieldChangeAmount) > 0)
        {
            statChanges.Add(new SpellSingleStatChangeInfo(
                                SpellSingleStatChangeType.curShieldValChange,
                                changeStatInfo.shieldChangeAmount));
        }

        if (Mathf.Abs(changeStatInfo.hpChangeAmount) > 0)
        {
            statChanges.Add(new SpellSingleStatChangeInfo(
                                SpellSingleStatChangeType.curHPValChange,
                                changeStatInfo.hpChangeAmount));
        }

        var stat = new BattleObjStats(target.hp,
                                      target.maxHp,
                                      damage,
                                      target.shield,
                                      target.maxShield);

        var effectInfo = new SpellEffectInfo(
            statChanges, target.id,
            effectOnChar,
            stat);

        _spellEffectInfoes.Add(effectInfo);
    }
Пример #3
0
    //Override Methods
    public override void Init(SpellEffectOnChar effect, int damage, int actionPoint, string spellParams,
                              bool isMultipleTarget = false)
    {
        base.Init(effect, damage, actionPoint, spellParams, isMultipleTarget);

        BtlCtrlSpellSubset_ChakraTransfer effectMultiPartDmg = new BtlCtrlSpellSubset_ChakraTransfer();

        _spellSubsets.Add(effectMultiPartDmg);
    }
Пример #4
0
 //Base Methods
 public SpellEffectInfo(
     List <SpellSingleStatChangeInfo> statChanges, long targetCharacterID,
     SpellEffectOnChar effectOnChar, BattleObjStats finalCharStats)
 {
     _singleStatChanges   = statChanges;
     _targetCharacterID   = targetCharacterID;
     _effectOnCharacter   = effectOnChar;
     _finalCharacterStats = finalCharStats;
 }
    //Override Methods
    public override void Init(SpellEffectOnChar effect, int damage, int actionPoint, string spellParams,
                              bool isMultipleTarget = false)
    {
        base.Init(effect, damage, actionPoint, spellParams, isMultipleTarget);

        BtlCtrlSpellSubset_MultiPartDamage effectMultiPartDmg = new BtlCtrlSpellSubset_MultiPartDamage();

        effectMultiPartDmg.SetPercent(_percents);

        _spellSubsets.Add(effectMultiPartDmg);
    }
Пример #6
0
    public override void Init(SpellEffectOnChar effect, int damage, int actionPoint, string spellParams, bool isMultipleTarget = false)
    {
        base.Init(effect, damage, actionPoint, spellParams, isMultipleTarget);

        _isSecret   = true;
        _secretType = Divine.Secret.Revival;

        BtlCtrlSpellSubset_SecretRev subset = new BtlCtrlSpellSubset_SecretRev();

        _spellSubsets.Add(subset);
    }
Пример #7
0
    public void SpellReceieved(SpellEffectOnChar effect)
    {
        if (effect != SpellEffectOnChar.Protect)
        {
            return;
        }

        _showingHitAnim = true;

        PlayAnimation(_hit, false);
        _curAnimTrackEntry.Complete += OnSpellRecievedComplete;
    }
    //Virtual Methods
    public virtual void Init(SpellEffectOnChar effect, int damage, int actionPoint, string spellParams,
                             bool isMultipleTarget = false)
    {
        _effect            = effect;
        _damage            = damage;
        _isMultipleTarget  = isMultipleTarget;
        _actionPointAmount = actionPoint;

        _spellParams = spellParams;

        _spellSubsets      = new List <BtlCtrlSpellSubset>();
        _spellEffectInfoes = new List <SpellEffectInfo>();
    }
Пример #9
0
    private void ShowUI_StatChange_DMG(int val, SpellEffectOnChar effectType)
    {
        switch (effectType)
        {
        case SpellEffectOnChar.Nerf:
            _charVisual.charUI.newCharHUD.AddBuzz(BuzzType.AttackDec);
            break;

        case SpellEffectOnChar.Buff:
            _charVisual.charUI.newCharHUD.AddBuzz(BuzzType.AttackInc);
            break;
        }
    }
    public void SpellReceieved(SpellEffectOnChar effect)
    {
        if (effect != SpellEffectOnChar.NormalDamage && effect != SpellEffectOnChar.SeriousDamage)
        {
            return;
        }

        if (_ignoreFirstDamage)
        {
            _ignoreFirstDamage = false;
            return;
        }

        PlayAnimation(_hit, false);
        _curAnimTrackEntry.Complete += OnAppearComplete; // Goes to idle again
    }
    private List <int> FindIndexesOfDamagedSpells()
    {
        List <int> indexs = new List <int>();

        for (int i = 0; i < _spellInfo.spellEffectInfos.Count; i++)
        {
            SpellEffectOnChar effect = _spellInfo.spellEffectInfos[i].effectOnCharacter;

            if (effect == SpellEffectOnChar.NormalDamage || effect == SpellEffectOnChar.SeriousDamage ||
                effect == SpellEffectOnChar.Dodge || effect == SpellEffectOnChar.Miss)
            {
                indexs.Add(i);
            }
        }

        return(indexs);
    }
Пример #12
0
    private bool ShouldWait(SpellInfo spellInfo, int effectIndex)
    {
        bool result = false;

        //bool shouldWait = spellInfo.owner == spellInfo.spellEffectInfos[effectIndex].targetCharacter;

        if (_curState == CharacterState.CastSpell)
        {
            result = true;
        }

        SpellEffectOnChar type = spellInfo.spellEffectInfos[effectIndex].effectOnCharacter;

        if (_curState == CharacterState.ReceiveSpell &&
            type != SpellEffectOnChar.NormalDamage && type != SpellEffectOnChar.SeriousDamage)
        {
            result = true;
        }

        return(result);
    }
Пример #13
0
 public void SpellReceieved(SpellEffectOnChar effect)
 {
 }