protected internal override void onSingleAction(BattleFighter attacker, BattleFighter defencer, SkillDataHolder resultData) { foreach (int _buffId in buffIds) { defencer.addBuff(new BuffInfo(_buffId, buffCondition)); } }
/// <summary> /// 核心方法,执行技能动作 /// </summary> /// <param name="attacker"> </param> /// <param name="record"> </param> internal virtual void optionAction(BattleFighter attacker, BattleFightRecord record) { // 创建一个供不同动作之间数据沟通的记录 SkillDataHolder _holder = new SkillDataHolder(); // 动作分两步 // 准备数据 //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final java.util.List<com.kx.sglm.gs.battle.share.actor.impl.BattleFighter> _enemyList = calcTargetList(attacker, true); List<BattleFighter> _enemyList = calcTargetList(attacker, true); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final java.util.List<com.kx.sglm.gs.battle.share.actor.impl.BattleFighter> _friendList = calcTargetList(attacker, false); List<BattleFighter> _friendList = calcTargetList(attacker, false); List<ISkillEffect> _activeEffects = calcActiveEffectByRate(); _holder.Record = record; _holder.Attacker = attacker; _holder.EnemyList = _enemyList; _holder.FriendList = _friendList; _holder.ActiveEffect = _activeEffects; // 执行动作内容 optionEffectAction(_holder); // 执行动作后操作 optionAfterAction(_holder); }
public override void onAction(BattleFighter attacker, List<BattleFighter> defencerList, SkillDataHolder resultData) { initRecord(attacker, resultData.Record); foreach (BattleFighter _defencer in defencerList) { onSingleAction(attacker, _defencer, resultData); } }
protected internal override void onSingleAction(BattleFighter attacker, BattleFighter defencer, SkillDataHolder resultData) { HeroColor _color = HeroColor.getValue(colorIndex); BattleFightRecord _record = resultData.Record; SingleActionRecord _singleRecord = _record.OrCreateDefence; _singleRecord.ActType = BattleRecordConstants.SINGLE_ACTION_TYPE_CHANGED_COLOR; BattleRecordHelper.initSingleRecord(defencer, _singleRecord); defencer.changeColor(_color, _singleRecord); _record.finishCurDefecner(); }
protected internal override void onSingleAction(BattleFighter attacker, BattleFighter defencer, SkillDataHolder resultData) { onAttack(attacker, defencer, resultData.Record); }
public abstract void onAction(BattleFighter attacker, List<BattleFighter> defencerList, SkillDataHolder resultData);
protected internal override void recoverRecord(BattleFighter attacker, BattleFighter defencer, SkillDataHolder resultData) { SingleActionRecord _singleRecord = resultData.Record.OrCreateAttack; _singleRecord.ResultHp = defencer.FighterCurHp; }
protected internal override void onSingleAction(BattleFighter attacker, BattleFighter defencer, SkillDataHolder resultData) { recoverOption(attacker, defencer); recoverRecord(attacker, defencer, resultData); }
protected internal abstract void recoverRecord(BattleFighter attacker, BattleFighter defencer, SkillDataHolder resultData);
/// <summary> /// 技能释放后操作 /// </summary> /// <param name="holder"> 包含当次技能的一些实时数据 </param> internal virtual void optionAfterAction(SkillDataHolder holder) { BattleFightRecord _record = holder.Record; holder.Attacker.attackerAfterSkillAction(_record); foreach (ISkillEffect _effect in holder.ActiveEffect) { List<BattleFighter> _fighterList = holder.getTargets(_effect); _effect.defencerAfterEffect(holder.Attacker, _fighterList, _record); } }
/// <summary> /// 技能操作 /// </summary> /// <param name="holder"> </param> internal virtual void optionEffectAction(SkillDataHolder holder) { foreach (ISkillEffect _effect in holder.ActiveEffect) { if (!ratioEffect(_effect)) { continue; } List<BattleFighter> _fighterList = holder.getTargets(_effect); _effect.onAction(holder.Attacker, _fighterList, holder); } }
protected internal abstract void onSingleAction(BattleFighter attacker, BattleFighter defencer, SkillDataHolder resultData);