mirror of
https://github.com/project-redbud/FunGame-Core.git
synced 2026-04-19 21:15:00 +00:00
SelectTargets 将所有角色列表传入 (#154)
This commit is contained in:
parent
5e4b742505
commit
64ab9870b3
@ -162,7 +162,7 @@ namespace Milimoe.FunGame.Core.Controller
|
||||
|
||||
if (normalAttackReachableEnemys.Count > 0)
|
||||
{
|
||||
List<Character> targets = SelectTargets(character, character.NormalAttack, normalAttackReachableEnemys, []);
|
||||
List<Character> targets = SelectTargets(character, character.NormalAttack, allEnemysInGame, allTeammatesInGame, normalAttackReachableEnemys, []);
|
||||
if (targets.Count > 0)
|
||||
{
|
||||
double currentScore = EvaluateNormalAttack(character, targets) - movePenalty;
|
||||
@ -223,7 +223,7 @@ namespace Milimoe.FunGame.Core.Controller
|
||||
|
||||
if (skillReachableEnemys.Count > 0 || skillReachableTeammates.Count > 0)
|
||||
{
|
||||
List<Character> targets = SelectTargets(character, skill, skillReachableEnemys, skillReachableTeammates);
|
||||
List<Character> targets = SelectTargets(character, skill, allEnemysInGame, allTeammatesInGame, skillReachableEnemys, skillReachableTeammates);
|
||||
if (targets.Count > 0)
|
||||
{
|
||||
double currentScore = EvaluateSkill(character, skill, targets, cost) - movePenalty;
|
||||
@ -288,7 +288,7 @@ namespace Milimoe.FunGame.Core.Controller
|
||||
|
||||
if (itemSkillReachableEnemys.Count > 0 || itemSkillReachableTeammates.Count > 0)
|
||||
{
|
||||
List<Character> targetsForItem = SelectTargets(character, itemSkill, itemSkillReachableEnemys, itemSkillReachableTeammates);
|
||||
List<Character> targetsForItem = SelectTargets(character, itemSkill, allEnemysInGame, allTeammatesInGame, itemSkillReachableEnemys, itemSkillReachableTeammates);
|
||||
if (targetsForItem.Count > 0)
|
||||
{
|
||||
double currentScore = EvaluateItem(character, item, targetsForItem, cost) - movePenalty;
|
||||
@ -484,9 +484,9 @@ namespace Milimoe.FunGame.Core.Controller
|
||||
}
|
||||
|
||||
// 选择技能的最佳目标
|
||||
private static List<Character> SelectTargets(Character character, ISkill skill, List<Character> enemys, List<Character> teammates)
|
||||
private static List<Character> SelectTargets(Character character, ISkill skill, List<Character> allEnemys, List<Character> allTeammates, List<Character> enemys, List<Character> teammates)
|
||||
{
|
||||
List<Character> targets = skill.GetSelectableTargets(character, enemys, teammates);
|
||||
List<Character> targets = skill.GetSelectableTargets(character, allEnemys, allTeammates, enemys, teammates);
|
||||
int count = skill.RealCanSelectTargetCount(enemys, teammates);
|
||||
return [.. targets.OrderBy(o => Random.Shared.Next()).Take(count)];
|
||||
}
|
||||
|
||||
@ -714,9 +714,11 @@ namespace Milimoe.FunGame.Core.Entity
|
||||
/// </summary>
|
||||
/// <param name="character"></param>
|
||||
/// <param name="skill"></param>
|
||||
/// <param name="allEnemys"></param>
|
||||
/// <param name="allTeammates"></param>
|
||||
/// <param name="enemys"></param>
|
||||
/// <param name="teammates"></param>
|
||||
public virtual void AlterSelectListBeforeSelection(Character character, ISkill skill, List<Character> enemys, List<Character> teammates)
|
||||
public virtual void AlterSelectListBeforeSelection(Character character, ISkill skill, List<Character> allEnemys, List<Character> allTeammates, List<Character> enemys, List<Character> teammates)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@ -248,10 +248,12 @@ namespace Milimoe.FunGame.Core.Entity
|
||||
/// 获取可选择的目标列表
|
||||
/// </summary>
|
||||
/// <param name="attacker"></param>
|
||||
/// <param name="allEnemys"></param>
|
||||
/// <param name="allTeammates"></param>
|
||||
/// <param name="enemys"></param>
|
||||
/// <param name="teammates"></param>
|
||||
/// <returns></returns>
|
||||
public List<Character> GetSelectableTargets(Character attacker, List<Character> enemys, List<Character> teammates)
|
||||
public List<Character> GetSelectableTargets(Character attacker, List<Character> allEnemys, List<Character> allTeammates, List<Character> enemys, List<Character> teammates)
|
||||
{
|
||||
List<Character> selectable = [];
|
||||
|
||||
@ -300,12 +302,14 @@ namespace Milimoe.FunGame.Core.Entity
|
||||
/// 选取普攻目标
|
||||
/// </summary>
|
||||
/// <param name="attacker"></param>
|
||||
/// <param name="allEnemys"></param>
|
||||
/// <param name="allTeammates"></param>
|
||||
/// <param name="enemys"></param>
|
||||
/// <param name="teammates"></param>
|
||||
/// <returns></returns>
|
||||
public List<Character> SelectTargets(Character attacker, List<Character> enemys, List<Character> teammates)
|
||||
public List<Character> SelectTargets(Character attacker, List<Character> allEnemys, List<Character> allTeammates, List<Character> enemys, List<Character> teammates)
|
||||
{
|
||||
List<Character> tobeSelected = GetSelectableTargets(attacker, enemys, teammates);
|
||||
List<Character> tobeSelected = GetSelectableTargets(attacker, allEnemys, allTeammates, enemys, teammates);
|
||||
|
||||
List<Character> targets = [];
|
||||
|
||||
|
||||
@ -180,7 +180,7 @@ namespace Milimoe.FunGame.Core.Entity
|
||||
public virtual bool AllowSelectNoCharacterGrid { get; set; } = false;
|
||||
|
||||
/// <summary>
|
||||
/// 是否可以选择已死亡的角色。仅 <see cref="IsNonDirectional"/> = true 时有效。
|
||||
/// 是否可以选择已死亡的角色
|
||||
/// </summary>
|
||||
public virtual bool AllowSelectDead { get; set; } = false;
|
||||
|
||||
@ -485,10 +485,12 @@ namespace Milimoe.FunGame.Core.Entity
|
||||
/// 获取可选择的目标列表
|
||||
/// </summary>
|
||||
/// <param name="caster"></param>
|
||||
/// <param name="allEnemys"></param>
|
||||
/// <param name="allTeammates"></param>
|
||||
/// <param name="enemys"></param>
|
||||
/// <param name="teammates"></param>
|
||||
/// <returns></returns>
|
||||
public virtual List<Character> GetSelectableTargets(Character caster, List<Character> enemys, List<Character> teammates)
|
||||
public virtual List<Character> GetSelectableTargets(Character caster, List<Character> allEnemys, List<Character> allTeammates, List<Character> enemys, List<Character> teammates)
|
||||
{
|
||||
List<Character> selectable = [];
|
||||
|
||||
@ -503,22 +505,35 @@ namespace Milimoe.FunGame.Core.Entity
|
||||
checkType |= ImmuneType.Magical;
|
||||
}
|
||||
|
||||
foreach (Character character in enemys)
|
||||
if (CanSelectEnemy)
|
||||
{
|
||||
IEnumerable<Effect> effects = Effects.Where(e => e.IsInEffect).OrderByDescending(e => e.Priority);
|
||||
if (CanSelectEnemy && ((character.ImmuneType & checkType) == ImmuneType.None ||
|
||||
effects.Any(e => e.IgnoreImmune == ImmuneType.All || e.IgnoreImmune == ImmuneType.Skilled || (IsMagic && e.IgnoreImmune == ImmuneType.Magical))))
|
||||
foreach (Character character in enemys)
|
||||
{
|
||||
selectable.Add(character);
|
||||
IEnumerable<Effect> effects = Effects.Where(e => e.IsInEffect).OrderByDescending(e => e.Priority);
|
||||
if ((character.ImmuneType & checkType) == ImmuneType.None ||
|
||||
effects.Any(e => e.IgnoreImmune == ImmuneType.All || e.IgnoreImmune == ImmuneType.Skilled || (IsMagic && e.IgnoreImmune == ImmuneType.Magical)))
|
||||
{
|
||||
selectable.Add(character);
|
||||
}
|
||||
}
|
||||
|
||||
if (AllowSelectDead)
|
||||
{
|
||||
selectable.AddRange(allEnemys.Where(c => c.HP == 0));
|
||||
}
|
||||
}
|
||||
|
||||
foreach (Character character in teammates)
|
||||
if (CanSelectTeammate)
|
||||
{
|
||||
if (CanSelectTeammate)
|
||||
foreach (Character character in teammates)
|
||||
{
|
||||
selectable.Add(character);
|
||||
}
|
||||
|
||||
if (AllowSelectDead)
|
||||
{
|
||||
selectable.AddRange(allTeammates.Where(c => c.HP == 0));
|
||||
}
|
||||
}
|
||||
|
||||
// 其他条件
|
||||
@ -548,12 +563,14 @@ namespace Milimoe.FunGame.Core.Entity
|
||||
/// 选取技能目标
|
||||
/// </summary>
|
||||
/// <param name="caster"></param>
|
||||
/// <param name="allEnemys"></param>
|
||||
/// <param name="allTeammates"></param>
|
||||
/// <param name="enemys"></param>
|
||||
/// <param name="teammates"></param>
|
||||
/// <returns></returns>
|
||||
public virtual List<Character> SelectTargets(Character caster, List<Character> enemys, List<Character> teammates)
|
||||
public virtual List<Character> SelectTargets(Character caster, List<Character> allEnemys, List<Character> allTeammates, List<Character> enemys, List<Character> teammates)
|
||||
{
|
||||
List<Character> tobeSelected = GetSelectableTargets(caster, enemys, teammates);
|
||||
List<Character> tobeSelected = GetSelectableTargets(caster, allEnemys, allTeammates, enemys, teammates);
|
||||
|
||||
List<Character> targets = [];
|
||||
|
||||
|
||||
@ -205,22 +205,26 @@ namespace Milimoe.FunGame.Core.Interface.Base
|
||||
/// </summary>
|
||||
/// <param name="caster"></param>
|
||||
/// <param name="skill"></param>
|
||||
/// <param name="allEnemys"></param>
|
||||
/// <param name="allTeammates"></param>
|
||||
/// <param name="enemys"></param>
|
||||
/// <param name="teammates"></param>
|
||||
/// <param name="castRange"></param>
|
||||
/// <returns></returns>
|
||||
public List<Character> SelectTargets(Character caster, Skill skill, List<Character> enemys, List<Character> teammates, List<Grid> castRange);
|
||||
public List<Character> SelectTargets(Character caster, Skill skill, List<Character> allEnemys, List<Character> allTeammates, List<Character> enemys, List<Character> teammates, List<Grid> castRange);
|
||||
|
||||
/// <summary>
|
||||
/// 选取普通攻击目标
|
||||
/// </summary>
|
||||
/// <param name="character"></param>
|
||||
/// <param name="attack"></param>
|
||||
/// <param name="allEnemys"></param>
|
||||
/// <param name="allTeammates"></param>
|
||||
/// <param name="enemys"></param>
|
||||
/// <param name="teammates"></param>
|
||||
/// <param name="attackRange"></param>
|
||||
/// <returns></returns>
|
||||
public List<Character> SelectTargets(Character character, NormalAttack attack, List<Character> enemys, List<Character> teammates, List<Grid> attackRange);
|
||||
public List<Character> SelectTargets(Character character, NormalAttack attack, List<Character> allEnemys, List<Character> allTeammates, List<Character> enemys, List<Character> teammates, List<Grid> attackRange);
|
||||
|
||||
/// <summary>
|
||||
/// 获取某角色的敌人列表
|
||||
|
||||
@ -112,10 +112,12 @@ namespace Milimoe.FunGame.Core.Interface.Entity
|
||||
/// 获取可选择的目标列表
|
||||
/// </summary>
|
||||
/// <param name="caster"></param>
|
||||
/// <param name="allEnemys"></param>
|
||||
/// <param name="allTeammates"></param>
|
||||
/// <param name="enemys"></param>
|
||||
/// <param name="teammates"></param>
|
||||
/// <returns></returns>
|
||||
public List<Character> GetSelectableTargets(Character caster, List<Character> enemys, List<Character> teammates);
|
||||
public List<Character> GetSelectableTargets(Character caster, List<Character> allEnemys, List<Character> allTeammates, List<Character> enemys, List<Character> teammates);
|
||||
|
||||
/// <summary>
|
||||
/// 实际可选取的目标数量
|
||||
|
||||
@ -392,10 +392,10 @@ namespace Milimoe.FunGame.Core.Library.Common.Addon.Example
|
||||
//queue.TurnEndEvent += Queue_TurnEndEvent;
|
||||
|
||||
// 我们示范两个事件,一是选择技能目标,需要和客户端交互的事件
|
||||
queue.SelectSkillTargetsEvent += (queue, caster, skill, enemys, teammates, castRange) =>
|
||||
queue.SelectSkillTargetsEvent += (queue, caster, skill, allEnemys, allTeammates, enemys, teammates, castRange) =>
|
||||
{
|
||||
/// 如果你的逻辑都写在 <see cref="ModuleServerWorker"/> 里就不用这么麻烦每次都传 obj 和 worker 了。
|
||||
return Queue_SelectSkillTargetsEvent(worker, caster, skill, enemys, teammates, castRange);
|
||||
return Queue_SelectSkillTargetsEvent(worker, caster, skill, allEnemys, allTeammates, enemys, teammates, castRange);
|
||||
};
|
||||
|
||||
// 二是角色行动完毕,需要通知客户端更新状态的事件
|
||||
@ -511,21 +511,23 @@ namespace Milimoe.FunGame.Core.Library.Common.Addon.Example
|
||||
});
|
||||
}
|
||||
|
||||
private List<Character> Queue_SelectSkillTargetsEvent(ModuleServerWorker worker, Character caster, Skill skill, List<Character> enemys, List<Character> teammates, List<Grid> castRange)
|
||||
private List<Character> Queue_SelectSkillTargetsEvent(ModuleServerWorker worker, Character caster, Skill skill, List<Character> allEnemys, List<Character> allTeammates, List<Character> enemys, List<Character> teammates, List<Grid> castRange)
|
||||
{
|
||||
// 这是一个需要与客户端交互的事件,其他的选择事件与之做法相同
|
||||
// SyncAwaiter是一个允许同步方法安全等待异步任务完成的工具类
|
||||
return SyncAwaiter.WaitResult(RequestClientSelectSkillTargets(worker, caster, skill, enemys, teammates, castRange));
|
||||
return SyncAwaiter.WaitResult(RequestClientSelectSkillTargets(worker, caster, skill, allEnemys, allTeammates, enemys, teammates, castRange));
|
||||
}
|
||||
|
||||
private async Task<List<Character>> RequestClientSelectSkillTargets(ModuleServerWorker worker, Character caster, Skill skill, List<Character> enemys, List<Character> teammates, List<Grid> castRange)
|
||||
private async Task<List<Character>> RequestClientSelectSkillTargets(ModuleServerWorker worker, Character caster, Skill skill, List<Character> allEnemys, List<Character> allTeammates, List<Character> enemys, List<Character> teammates, List<Grid> castRange)
|
||||
{
|
||||
List<Character> selectTargets = [];
|
||||
Dictionary<string, object> data = [];
|
||||
data.Add("event", "SelectSkillTargets");
|
||||
data.Add("caster", caster.Id);
|
||||
data.Add("skill", skill.Id);
|
||||
data.Add("allenemys", allEnemys.Select(c => c.Id));
|
||||
data.Add("enemys", enemys.Select(c => c.Id));
|
||||
data.Add("allteammates", allTeammates.Select(c => c.Id));
|
||||
data.Add("teammates", teammates.Select(c => c.Id));
|
||||
data.Add("castRange", castRange.Select(g => g.Id));
|
||||
await SendGamingMessage(_clientModels, GamingType.Skill, data);
|
||||
|
||||
@ -1270,9 +1270,6 @@ namespace Milimoe.FunGame.Core.Model
|
||||
// 启用战棋地图时的专属 AI 决策方法
|
||||
if (isAI && ai != null && startGrid != null)
|
||||
{
|
||||
List<Character> allEnemysInGame = [.. allEnemys.Where(canAttackGridsByStartGrid.Union(canCastGridsByStartGrid).SelectMany(g => g.Characters).Contains)];
|
||||
List<Character> allTeammatesInGame = [.. allTeammates.Where(canAttackGridsByStartGrid.Union(canCastGridsByStartGrid).SelectMany(g => g.Characters).Contains)];
|
||||
|
||||
aiDecision = ai.DecideAIAction(character, dp, startGrid, canMoveGrids, skills, items, allEnemys, allTeammates, enemys, teammates, pUseItem, pCastSkill, pNormalAttack);
|
||||
type = aiDecision.ActionType;
|
||||
}
|
||||
@ -1386,7 +1383,7 @@ namespace Milimoe.FunGame.Core.Model
|
||||
enemys = [.. enemys.Where(attackRange.SelectMany(g => g.Characters).Contains)];
|
||||
teammates = [.. teammates.Where(attackRange.SelectMany(g => g.Characters).Contains)];
|
||||
}
|
||||
targets = SelectTargets(character, character.NormalAttack, enemys, teammates, attackRange);
|
||||
targets = SelectTargets(character, character.NormalAttack, allEnemys, allTeammates, enemys, teammates, attackRange);
|
||||
}
|
||||
if (targets.Count > 0)
|
||||
{
|
||||
@ -2972,7 +2969,7 @@ namespace Milimoe.FunGame.Core.Model
|
||||
if (aiDecision != null) targets = aiDecision.Targets;
|
||||
if (targets.Count == 0)
|
||||
{
|
||||
targets = SelectTargets(character, skill, enemys, teammates, castRange);
|
||||
targets = SelectTargets(character, skill, allEnemys, allTeammates, enemys, teammates, castRange);
|
||||
}
|
||||
if (skill.CanSelectTargetRange > 0)
|
||||
{
|
||||
@ -3283,21 +3280,23 @@ namespace Milimoe.FunGame.Core.Model
|
||||
/// </summary>
|
||||
/// <param name="caster"></param>
|
||||
/// <param name="skill"></param>
|
||||
/// <param name="allEnemys"></param>
|
||||
/// <param name="allTeammates"></param>
|
||||
/// <param name="enemys"></param>
|
||||
/// <param name="teammates"></param>
|
||||
/// <param name="castRange"></param>
|
||||
/// <returns></returns>
|
||||
public List<Character> SelectTargets(Character caster, Skill skill, List<Character> enemys, List<Character> teammates, List<Grid> castRange)
|
||||
public List<Character> SelectTargets(Character caster, Skill skill, List<Character> allEnemys, List<Character> allTeammates, List<Character> enemys, List<Character> teammates, List<Grid> castRange)
|
||||
{
|
||||
List<Effect> effects = [.. caster.Effects.Where(e => e.IsInEffect).OrderByDescending(e => e.Priority)];
|
||||
foreach (Effect effect in effects)
|
||||
{
|
||||
effect.AlterSelectListBeforeSelection(caster, skill, enemys, teammates);
|
||||
effect.AlterSelectListBeforeSelection(caster, skill, allEnemys, allTeammates, enemys, teammates);
|
||||
}
|
||||
List<Character> targets = OnSelectSkillTargetsEvent(caster, skill, enemys, teammates, castRange);
|
||||
List<Character> targets = OnSelectSkillTargetsEvent(caster, skill, allEnemys, allTeammates, enemys, teammates, castRange);
|
||||
if (targets.Count == 0 && IsCharacterInAIControlling(caster))
|
||||
{
|
||||
targets = skill.SelectTargets(caster, enemys, teammates);
|
||||
targets = skill.SelectTargets(caster, allEnemys, allTeammates, enemys, teammates);
|
||||
}
|
||||
return targets;
|
||||
}
|
||||
@ -3326,21 +3325,23 @@ namespace Milimoe.FunGame.Core.Model
|
||||
/// </summary>
|
||||
/// <param name="character"></param>
|
||||
/// <param name="attack"></param>
|
||||
/// <param name="allEnemys"></param>
|
||||
/// <param name="allTeammates"></param>
|
||||
/// <param name="enemys"></param>
|
||||
/// <param name="teammates"></param>
|
||||
/// <param name="attackRange"></param>
|
||||
/// <returns></returns>
|
||||
public List<Character> SelectTargets(Character character, NormalAttack attack, List<Character> enemys, List<Character> teammates, List<Grid> attackRange)
|
||||
public List<Character> SelectTargets(Character character, NormalAttack attack, List<Character> allEnemys, List<Character> allTeammates, List<Character> enemys, List<Character> teammates, List<Grid> attackRange)
|
||||
{
|
||||
List<Effect> effects = [.. character.Effects.Where(e => e.IsInEffect).OrderByDescending(e => e.Priority)];
|
||||
foreach (Effect effect in effects)
|
||||
{
|
||||
effect.AlterSelectListBeforeSelection(character, attack, enemys, teammates);
|
||||
effect.AlterSelectListBeforeSelection(character, attack, allEnemys, allTeammates, enemys, teammates);
|
||||
}
|
||||
List<Character> targets = OnSelectNormalAttackTargetsEvent(character, attack, enemys, teammates, attackRange);
|
||||
List<Character> targets = OnSelectNormalAttackTargetsEvent(character, attack, allEnemys, allTeammates, enemys, teammates, attackRange);
|
||||
if (targets.Count == 0 && IsCharacterInAIControlling(character))
|
||||
{
|
||||
targets = character.NormalAttack.SelectTargets(character, enemys, teammates);
|
||||
targets = character.NormalAttack.SelectTargets(character, allEnemys, allTeammates, enemys, teammates);
|
||||
}
|
||||
return targets;
|
||||
}
|
||||
@ -4698,7 +4699,7 @@ namespace Milimoe.FunGame.Core.Model
|
||||
return SelectTargetGridEvent?.Invoke(this, character, enemys, teammates, map, moveRange) ?? Grid.Empty;
|
||||
}
|
||||
|
||||
public delegate List<Character> SelectSkillTargetsEventHandler(GamingQueue queue, Character caster, Skill skill, List<Character> enemys, List<Character> teammates, List<Grid> castRange);
|
||||
public delegate List<Character> SelectSkillTargetsEventHandler(GamingQueue queue, Character caster, Skill skill, List<Character> allEnemys, List<Character> allTeammates, List<Character> enemys, List<Character> teammates, List<Grid> castRange);
|
||||
/// <summary>
|
||||
/// 选取技能目标事件
|
||||
/// </summary>
|
||||
@ -4708,13 +4709,15 @@ namespace Milimoe.FunGame.Core.Model
|
||||
/// </summary>
|
||||
/// <param name="caster"></param>
|
||||
/// <param name="skill"></param>
|
||||
/// <param name="allEnemys"></param>
|
||||
/// <param name="allTeammates"></param>
|
||||
/// <param name="enemys"></param>
|
||||
/// <param name="teammates"></param>
|
||||
/// <param name="castRange"></param>
|
||||
/// <returns></returns>
|
||||
protected List<Character> OnSelectSkillTargetsEvent(Character caster, Skill skill, List<Character> enemys, List<Character> teammates, List<Grid> castRange)
|
||||
protected List<Character> OnSelectSkillTargetsEvent(Character caster, Skill skill, List<Character> allEnemys, List<Character> allTeammates, List<Character> enemys, List<Character> teammates, List<Grid> castRange)
|
||||
{
|
||||
return SelectSkillTargetsEvent?.Invoke(this, caster, skill, enemys, teammates, castRange) ?? [];
|
||||
return SelectSkillTargetsEvent?.Invoke(this, caster, skill, allEnemys, allTeammates, enemys, teammates, castRange) ?? [];
|
||||
}
|
||||
|
||||
public delegate List<Grid> SelectNonDirectionalSkillTargetsEventHandler(GamingQueue queue, Character caster, Skill skill, List<Character> enemys, List<Character> teammates, List<Grid> castRange);
|
||||
@ -4736,7 +4739,7 @@ namespace Milimoe.FunGame.Core.Model
|
||||
return SelectNonDirectionalSkillTargetsEvent?.Invoke(this, caster, skill, enemys, teammates, castRange) ?? [];
|
||||
}
|
||||
|
||||
public delegate List<Character> SelectNormalAttackTargetsEventHandler(GamingQueue queue, Character character, NormalAttack attack, List<Character> enemys, List<Character> teammates, List<Grid> attackRange);
|
||||
public delegate List<Character> SelectNormalAttackTargetsEventHandler(GamingQueue queue, Character character, NormalAttack attack, List<Character> allEnemys, List<Character> allTeammates, List<Character> enemys, List<Character> teammates, List<Grid> attackRange);
|
||||
/// <summary>
|
||||
/// 选取普通攻击目标事件
|
||||
/// </summary>
|
||||
@ -4746,13 +4749,15 @@ namespace Milimoe.FunGame.Core.Model
|
||||
/// </summary>
|
||||
/// <param name="character"></param>
|
||||
/// <param name="attack"></param>
|
||||
/// <param name="allEnemys"></param>
|
||||
/// <param name="allTeammates"></param>
|
||||
/// <param name="enemys"></param>
|
||||
/// <param name="teammates"></param>
|
||||
/// <param name="attackRange"></param>
|
||||
/// <returns></returns>
|
||||
protected List<Character> OnSelectNormalAttackTargetsEvent(Character character, NormalAttack attack, List<Character> enemys, List<Character> teammates, List<Grid> attackRange)
|
||||
protected List<Character> OnSelectNormalAttackTargetsEvent(Character character, NormalAttack attack, List<Character> allEnemys, List<Character> allTeammates, List<Character> enemys, List<Character> teammates, List<Grid> attackRange)
|
||||
{
|
||||
return SelectNormalAttackTargetsEvent?.Invoke(this, character, attack, enemys, teammates, attackRange) ?? [];
|
||||
return SelectNormalAttackTargetsEvent?.Invoke(this, character, attack, allEnemys, allTeammates, enemys, teammates, attackRange) ?? [];
|
||||
}
|
||||
|
||||
public delegate void InterruptCastingEventHandler(GamingQueue queue, Character cast, Skill? skill, Character interrupter);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user