public void UpdateStats(SpellEffectInfo effectInfo, bool isFinal) { DivineDebug.Log("Update Stats for: "); DivineDebug.Log("CurrentHP: " + _currentStats.hp + " FinalHP: " + effectInfo.finalCharacterStats.hp + " IsFinal: " + isFinal); if ((effectInfo.isMultiPart && isFinal) || !effectInfo.isMultiPart) { _currentStats = effectInfo.finalCharacterStats; DivineDebug.Log("moniker " + moniker + " hp: " + _currentStats.hp + " shield: " + _currentStats.shield + " damage: " + _currentStats.damage); charInfo.SetBaseStats(_currentStats.hp, _currentStats.maxHp, _currentStats.damage, _currentStats.shield, _currentStats.maxShield); } else { for (int i = 0; i < effectInfo.singleStatChanges.Count; i++) { switch (effectInfo.singleStatChanges[i].charStatChangeType) { case SpellSingleStatChangeType.None: break; case SpellSingleStatChangeType.curHPValChange: _currentStats.SetHP(_currentStats.hp + effectInfo.singleStatChanges[i].intVal); break; case SpellSingleStatChangeType.curShieldValChange: _currentStats.SetShield(_currentStats.shield + effectInfo.singleStatChanges[i].intVal); break; case SpellSingleStatChangeType.curDamageValChange: _currentStats.damage += effectInfo.singleStatChanges[i].intVal; break; case SpellSingleStatChangeType.curFlagValChange: _currentStats.flags = (BattleFlags)effectInfo.singleStatChanges[i].intVal; break; default: break; } } } DivineDebug.Log("After Update CurrentHP: " + _currentStats.hp + " Shield: " + _currentStats.shield + " Flag: " + _currentStats.flags.ToString()); ShowUpdatingStatsVisual(effectInfo); if (_curState == CharacterState.Idle && _currentStats.hp <= 0) { SetState_Dying(false); } _previousFlag = _currentStats.flags; }
public BattleObjStats(int hp, int maxHp, int damage, int shield, int maxShield, BattleFlags flags) { this.flags = flags; this.hp = hp; this.maxHp = maxHp; this.damage = damage; this.shield = shield; this.maxShield = maxShield; }
private void Show_EffectForFlagChange(BattleFlags newFlag, bool isFromTurnStat) { DivineDebug.Log("Show_EffectForFlagChange New: " + newFlag.ToString() + " Prev: " + _previousFlag.ToString()); _charVisual.charUI.newCharHUD.ResetActiveEffects(newFlag); _extraSpellHandler.SetExtraSpells(_previousFlag, newFlag, position_pivot, scale, _charVisual, isFromTurnStat); _charVisual.charEffects.HandleChangingFlag(newFlag, _previousFlag, scale); }
public void HandleChangingFlag(BattleFlags newFlags, BattleFlags previousFlags, Vector3 scale) { if (newFlags == previousFlags) { return; } _vfx = null; Vector3 pos = Vector3.zero; List <BattleFlags> newFlagList = new List <BattleFlags>(); List <BattleFlags> prevFlagList = new List <BattleFlags>(); foreach (BattleFlags flag in Enum.GetValues(typeof(BattleFlags))) { if ((newFlags & flag) == flag) { newFlagList.Add(flag); } if ((previousFlags & flag) == flag) { prevFlagList.Add(flag); } } foreach (BattleFlags nFlag in newFlagList) { if (!prevFlagList.Contains(nFlag)) { switch (nFlag) { case BattleFlags.Fear: _vfx = _fearEffect; pos = _tr_Helper_Fear.position; break; case BattleFlags.DamageReduction: _vfx = _damageReductionEffect; pos = _tr_Helper_Fear.position; break; case BattleFlags.DeathRattle: _vfx = _deathRattle; pos = transform.position; break; } } } if (_vfx != null) { CreateVFX(_vfx, pos, scale); } }
private BattleFlags MakeBattleFlag(WBattleFlags[] wflags) { BattleFlags battleFlag = BattleFlags.None; for (int i = 0; i < wflags.Length; i++) { battleFlag = battleFlag | (BattleFlags)wflags[i]; } return(battleFlag); }
private BattleObjStats MakeBattleObject(WBattleObjStat wbattleObj) { BattleFlags flags = (BattleFlags)wbattleObj.flag; BattleObjStats battleObj = new BattleObjStats(wbattleObj.hp, wbattleObj.max_hp, wbattleObj.damage, wbattleObj.shield, wbattleObj.max_shield, flags); return(battleObj); }
public void SetExtraSpells(BattleFlags prevFlag, BattleFlags newFlag, Vector3 pos, Vector3 scale, CharacterVisual owner, bool isFromTurnStat) { if (isFromTurnStat) { foreach (IExtraSpell exsp in _dic_extraSpells.Values) { exsp.TurnReached(); } } if (prevFlag == newFlag) { return; } //Damage Return bool newFlag_haveDmgRet = (newFlag & BattleFlags.DamageReturn) == BattleFlags.DamageReturn; bool prevFlag_haveDmgRet = (prevFlag & BattleFlags.DamageReturn) == BattleFlags.DamageReturn; if (!prevFlag_haveDmgRet && newFlag_haveDmgRet) { AddSpell(ExtraSpellType.DamageReturn, pos, scale, owner); } else if (prevFlag_haveDmgRet && !newFlag_haveDmgRet) { RemoveSpell(ExtraSpellType.DamageReturn); } //Protect bool newFlag_haveProtect = (newFlag & BattleFlags.Protect) == BattleFlags.Protect; bool prevFlag_haveProtect = (prevFlag & BattleFlags.Protect) == BattleFlags.Protect; if (!prevFlag_haveProtect && newFlag_haveProtect) { AddSpell(ExtraSpellType.Protect, pos, scale, owner); } else if (prevFlag_haveProtect && !newFlag_haveProtect) { RemoveSpell(ExtraSpellType.Protect); } //Confuse bool newFlag_haveConfuse = (newFlag & BattleFlags.Confuse) == BattleFlags.Confuse; bool prevFlag_haveConfuse = (prevFlag & BattleFlags.Confuse) == BattleFlags.Confuse; if (!prevFlag_haveConfuse && newFlag_haveConfuse) { AddSpell(ExtraSpellType.Confuse, pos, scale, owner); } else if (prevFlag_haveConfuse && !newFlag_haveConfuse) { RemoveSpell(ExtraSpellType.Confuse); } //Burn bool newFlag_haveBurn = (newFlag & BattleFlags.Burn) == BattleFlags.Burn; bool prevFlag_haveBurn = (prevFlag & BattleFlags.Burn) == BattleFlags.Burn; if (!prevFlag_haveBurn && newFlag_haveBurn) { AddSpell(ExtraSpellType.Burn, pos, scale, owner); } else if (prevFlag_haveBurn && !newFlag_haveBurn) { RemoveSpell(ExtraSpellType.Burn); } //Poison bool newFlag_havePoison = (newFlag & BattleFlags.Poison) == BattleFlags.Poison; bool prevFlag_havePoison = (prevFlag & BattleFlags.Poison) == BattleFlags.Poison; if (!prevFlag_havePoison && newFlag_havePoison) { AddSpell(ExtraSpellType.Poison, pos, scale, owner); } else if (prevFlag_havePoison && !newFlag_havePoison) { RemoveSpell(ExtraSpellType.Poison); } }