// Update is called once per frame void Update() { if (Input.GetKeyDown(KeyCode.F)) { AttackPtoE temp = new AttackPtoE(3); temp.AddCtrl(CtrlPtoE.Stun, 6); enemy.GainAttack(temp); } if (Input.GetKeyDown(KeyCode.R)) { enemy.GetDamage(2); } }
public AttackPtoE CalcAttack(int skillNum, Enemy enemy) { if (info.commands.Length > skillNum) { AttackPtoE attack = new AttackPtoE(GetDamage(skillNum)); //Apply Ctrl effect if (this is IAtkCtrl) { ((IAtkCtrl)this).AtkCtrl(attack, skillNum, enemy); } foreach (Addon ad in addons) { if (ad is IAtkCtrl) { ((IAtkCtrl)this).AtkCtrl(attack, skillNum, enemy); } } //Apply DmgAdd effect if (this is IAtkDmgAdd) { attack.damage += ((IAtkDmgAdd)this).AtkDmgAdd(attack, skillNum, enemy); } foreach (Addon ad in addons) { if (ad is IAtkDmgAdd) { attack.damage += ((IAtkDmgAdd)ad).AtkDmgAdd(attack, skillNum, enemy); } } //Apply DmgMult effect if (this is IAtkDmgMult) { ((IAtkDmgMult)this).AtkDmgMult(attack, skillNum, enemy); } foreach (Addon ad in addons) { if (ad is IAtkDmgMult) { ((IAtkDmgMult)ad).AtkDmgMult(attack, skillNum, enemy); } } return(attack); } return(null); }
public Dictionary <CtrlPtoE, bool> ApplyCtrl(AttackPtoE attack) { Dictionary <CtrlPtoE, bool> result = new Dictionary <CtrlPtoE, bool>(); foreach (KeyValuePair <CtrlPtoE, float> ctrl in attack.ctrls) { switch (ctrl.Key) { case CtrlPtoE.Stun: result.Add(ctrl.Key, ApplyStun(ctrl.Value)); break; case CtrlPtoE.Freeze: result.Add(ctrl.Key, ApplyFreeze(ctrl.Value)); break; case CtrlPtoE.Burn: result.Add(ctrl.Key, ApplyBurn((int)ctrl.Value)); break; } } return(result); }
public void GainAttack(AttackPtoE attack) { GetDamage(attack.damage); enemyCtrl.ApplyCtrl(attack); }