public void OnUseCard_AfterApplyDmg(PFTable.Card useCard, APFCharacterController targetCtrl) { if (useCard != null) { if (useCard.statusKeepTurnCount > 0) { if (useCard.atkRate != 0) { CardEffect.PowerRate attackRate = Create_CardEffect_PowerRate(useCard.atkRate, useCard.statusKeepTurnCount); CardEffectList_AttackRate.Add(attackRate); } if (useCard.atkRateTarget != 0) { CardEffect.PowerRate attackRate = Create_CardEffect_PowerRate(useCard.atkRateTarget, useCard.statusKeepTurnCount); targetCtrl.CardEffectList_AttackRate.Add(attackRate); } if (useCard.defRate != 0) { CardEffect.PowerRate defenceRate = Create_CardEffect_PowerRate(useCard.defRate, useCard.statusKeepTurnCount); CardEffectList_DefenceRate.Add(defenceRate); } if (useCard.defRateTarget != 0) { CardEffect.PowerRate defenceRate = Create_CardEffect_PowerRate(useCard.defRateTarget, useCard.statusKeepTurnCount); targetCtrl.CardEffectList_DefenceRate.Add(defenceRate); } } } }
static private CardEffect.PowerRate Create_CardEffect_PowerRate(float rate, int keepTurnCount) { CardEffect.PowerRate attackRate = new CardEffect.PowerRate(); attackRate.Rate = rate; attackRate.KeepTurnCount = keepTurnCount; return(attackRate); }
static private void Update_Remove_CardEffect(List <CardEffect.PowerRate> effectList) { for (int i = effectList.Count - 1; i >= 0; --i) { CardEffect.PowerRate cardEffect_powerRate = effectList[i]; if (cardEffect_powerRate.KeepTurnCount == PFConst.KeepGoing_StatusKeepTurnCount) { //"계속유지" } else { --cardEffect_powerRate.KeepTurnCount; } if (cardEffect_powerRate.KeepTurnCount == 0) { effectList.RemoveAt(i); } } }