forked from project-redbud/FunGame-Core
使用 IGamingQueue 接口
This commit is contained in:
parent
a46a0120bf
commit
671e3eee40
@ -1,8 +1,8 @@
|
||||
using System.Text;
|
||||
using Milimoe.FunGame.Core.Interface.Base;
|
||||
using Milimoe.FunGame.Core.Interface.Entity;
|
||||
using Milimoe.FunGame.Core.Library.Common.Addon;
|
||||
using Milimoe.FunGame.Core.Library.Constant;
|
||||
using Milimoe.FunGame.Core.Model;
|
||||
|
||||
namespace Milimoe.FunGame.Core.Entity
|
||||
{
|
||||
@ -149,7 +149,7 @@ namespace Milimoe.FunGame.Core.Entity
|
||||
{
|
||||
foreach (Effect e in skill.AddInactiveEffectToCharacter())
|
||||
{
|
||||
e.ActionQueue = skill.ActionQueue;
|
||||
e.GamingQueue = skill.GamingQueue;
|
||||
if (Character != null && !Character.Effects.Contains(e))
|
||||
{
|
||||
Character.Effects.Add(e);
|
||||
@ -213,7 +213,7 @@ namespace Milimoe.FunGame.Core.Entity
|
||||
/// <summary>
|
||||
/// 局内使用物品触发 对某个角色使用
|
||||
/// </summary>
|
||||
public void UseItem(ActionQueue queue, Character character, List<Character> enemys, List<Character> teammates)
|
||||
public void UseItem(IGamingQueue queue, Character character, List<Character> enemys, List<Character> teammates)
|
||||
{
|
||||
OnItemUsed(character, this);
|
||||
Skills.Active?.OnSkillCasted(queue, character, enemys, teammates);
|
||||
@ -307,7 +307,7 @@ namespace Milimoe.FunGame.Core.Entity
|
||||
StringBuilder builder = new();
|
||||
|
||||
builder.AppendLine($"【{Name}】");
|
||||
builder.AppendLine($"{ItemSet.GetItemTypeName(ItemType)}" + (IsPurchasable && Price > 0 ? $" 售价:{Price:0.##}" : ""));
|
||||
builder.AppendLine($"{ItemSet.GetItemTypeName(ItemType)}" + (IsPurchasable && Price > 0 ? $" 售价:{Price}" : ""));
|
||||
|
||||
if (RemainUseTimes > 0)
|
||||
{
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
using System.Text;
|
||||
using Milimoe.FunGame.Core.Api.Utility;
|
||||
using Milimoe.FunGame.Core.Interface.Base;
|
||||
using Milimoe.FunGame.Core.Interface.Entity;
|
||||
using Milimoe.FunGame.Core.Library.Constant;
|
||||
using Milimoe.FunGame.Core.Model;
|
||||
|
||||
namespace Milimoe.FunGame.Core.Entity
|
||||
{
|
||||
@ -88,7 +88,7 @@ namespace Milimoe.FunGame.Core.Entity
|
||||
/// <summary>
|
||||
/// 游戏中的行动顺序表实例,在技能效果被触发时,此实例会获得赋值,使用时需要判断其是否存在
|
||||
/// </summary>
|
||||
public ActionQueue? ActionQueue { get; set; } = null;
|
||||
public IGamingQueue? GamingQueue { get; set; } = null;
|
||||
|
||||
/// <summary>
|
||||
/// 输出文本或日志
|
||||
@ -97,8 +97,8 @@ namespace Milimoe.FunGame.Core.Entity
|
||||
{
|
||||
get
|
||||
{
|
||||
if (ActionQueue is null) return Console.WriteLine;
|
||||
else return ActionQueue.WriteLine;
|
||||
if (GamingQueue is null) return Console.WriteLine;
|
||||
else return GamingQueue.WriteLine;
|
||||
}
|
||||
}
|
||||
|
||||
@ -387,7 +387,7 @@ namespace Milimoe.FunGame.Core.Entity
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 对敌人造成技能伤害 [ 强烈建议使用此方法造成伤害而不是自行调用 <see cref="ActionQueue.DamageToEnemy"/> ]
|
||||
/// 对敌人造成技能伤害 [ 强烈建议使用此方法造成伤害而不是自行调用 <see cref="IGamingQueue.DamageToEnemy"/> ]
|
||||
/// </summary>
|
||||
/// <param name="actor"></param>
|
||||
/// <param name="enemy"></param>
|
||||
@ -397,20 +397,20 @@ namespace Milimoe.FunGame.Core.Entity
|
||||
/// <returns></returns>
|
||||
public DamageResult DamageToEnemy(Character actor, Character enemy, bool isMagic, MagicType magicType, double expectedDamage)
|
||||
{
|
||||
if (ActionQueue is null) return DamageResult.Evaded;
|
||||
DamageResult result = !isMagic ? ActionQueue.CalculatePhysicalDamage(actor, enemy, false, expectedDamage, out double damage) : ActionQueue.CalculateMagicalDamage(actor, enemy, false, MagicType, expectedDamage, out damage);
|
||||
ActionQueue.DamageToEnemy(actor, enemy, damage, false, isMagic, magicType, result);
|
||||
if (GamingQueue is null) return DamageResult.Evaded;
|
||||
DamageResult result = !isMagic ? GamingQueue.CalculatePhysicalDamage(actor, enemy, false, expectedDamage, out double damage) : GamingQueue.CalculateMagicalDamage(actor, enemy, false, MagicType, expectedDamage, out damage);
|
||||
GamingQueue.DamageToEnemy(actor, enemy, damage, false, isMagic, magicType, result);
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 打断施法 [ 尽可能的调用此方法而不是直接调用 <see cref="ActionQueue.InterruptCasting"/>,以防止中断性变更 ]
|
||||
/// 打断施法 [ 尽可能的调用此方法而不是直接调用 <see cref="IGamingQueue.InterruptCasting"/>,以防止中断性变更 ]
|
||||
/// </summary>
|
||||
/// <param name="caster"></param>
|
||||
/// <param name="interrupter"></param>
|
||||
public void InterruptCasting(Character caster, Character interrupter)
|
||||
{
|
||||
ActionQueue?.InterruptCasting(caster, interrupter);
|
||||
GamingQueue?.InterruptCasting(caster, interrupter);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -452,7 +452,7 @@ namespace Milimoe.FunGame.Core.Entity
|
||||
DurationTurn = DurationTurn,
|
||||
MagicType = MagicType,
|
||||
Description = Description,
|
||||
ActionQueue = ActionQueue
|
||||
GamingQueue = GamingQueue
|
||||
};
|
||||
|
||||
return copy;
|
||||
|
||||
@ -1,8 +1,7 @@
|
||||
using System.Text;
|
||||
using Milimoe.FunGame.Core.Api.Utility;
|
||||
using Milimoe.FunGame.Core.Interface.Base;
|
||||
using Milimoe.FunGame.Core.Interface.Entity;
|
||||
using Milimoe.FunGame.Core.Library.Constant;
|
||||
using Milimoe.FunGame.Core.Model;
|
||||
|
||||
namespace Milimoe.FunGame.Core.Entity
|
||||
{
|
||||
@ -64,7 +63,7 @@ namespace Milimoe.FunGame.Core.Entity
|
||||
/// <param name="queue"></param>
|
||||
/// <param name="attacker"></param>
|
||||
/// <param name="enemys"></param>
|
||||
public void Attack(ActionQueue queue, Character attacker, params Character[] enemys)
|
||||
public void Attack(IGamingQueue queue, Character attacker, params Character[] enemys)
|
||||
{
|
||||
foreach (Character enemy in enemys)
|
||||
{
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
using System.Text;
|
||||
using Milimoe.FunGame.Core.Api.Utility;
|
||||
using Milimoe.FunGame.Core.Interface.Base;
|
||||
using Milimoe.FunGame.Core.Interface.Entity;
|
||||
using Milimoe.FunGame.Core.Library.Constant;
|
||||
using Milimoe.FunGame.Core.Model;
|
||||
|
||||
namespace Milimoe.FunGame.Core.Entity
|
||||
{
|
||||
@ -145,7 +145,7 @@ namespace Milimoe.FunGame.Core.Entity
|
||||
/// <summary>
|
||||
/// 游戏中的行动顺序表实例,在技能效果被触发时,此实例会获得赋值,使用时需要判断其是否存在
|
||||
/// </summary>
|
||||
public ActionQueue? ActionQueue { get; set; } = null;
|
||||
public IGamingQueue? GamingQueue { get; set; } = null;
|
||||
|
||||
/// <summary>
|
||||
/// 技能是否属于某个物品
|
||||
@ -177,7 +177,7 @@ namespace Milimoe.FunGame.Core.Entity
|
||||
{
|
||||
foreach (Effect e in AddInactiveEffectToCharacter())
|
||||
{
|
||||
e.ActionQueue = ActionQueue;
|
||||
e.GamingQueue = GamingQueue;
|
||||
if (Character != null && !Character.Effects.Contains(e))
|
||||
{
|
||||
Character.Effects.Add(e);
|
||||
@ -191,21 +191,21 @@ namespace Milimoe.FunGame.Core.Entity
|
||||
/// 当获得技能时
|
||||
/// </summary>
|
||||
/// <param name="queue"></param>
|
||||
public void OnSkillGained(ActionQueue queue)
|
||||
public void OnSkillGained(IGamingQueue queue)
|
||||
{
|
||||
ActionQueue = queue;
|
||||
GamingQueue = queue;
|
||||
OnLevelUp();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 技能开始吟唱时 [ 吟唱魔法、释放战技和爆发技、预释放爆发技均可触发 ]
|
||||
/// </summary>
|
||||
public void OnSkillCasting(ActionQueue queue, Character caster)
|
||||
public void OnSkillCasting(IGamingQueue queue, Character caster)
|
||||
{
|
||||
ActionQueue = queue;
|
||||
GamingQueue = queue;
|
||||
foreach (Effect e in Effects)
|
||||
{
|
||||
e.ActionQueue = ActionQueue;
|
||||
e.GamingQueue = GamingQueue;
|
||||
e.OnSkillCasting(caster);
|
||||
}
|
||||
}
|
||||
@ -213,12 +213,12 @@ namespace Milimoe.FunGame.Core.Entity
|
||||
/// <summary>
|
||||
/// 触发技能效果
|
||||
/// </summary>
|
||||
public void OnSkillCasted(ActionQueue queue, Character caster, List<Character> enemys, List<Character> teammates)
|
||||
public void OnSkillCasted(IGamingQueue queue, Character caster, List<Character> enemys, List<Character> teammates)
|
||||
{
|
||||
ActionQueue = queue;
|
||||
GamingQueue = queue;
|
||||
foreach (Effect e in Effects)
|
||||
{
|
||||
e.ActionQueue = ActionQueue;
|
||||
e.GamingQueue = GamingQueue;
|
||||
e.OnSkillCasted(caster, enemys, teammates, OtherArgs);
|
||||
}
|
||||
}
|
||||
@ -333,7 +333,7 @@ namespace Milimoe.FunGame.Core.Entity
|
||||
CD = CD,
|
||||
CurrentCD = CurrentCD,
|
||||
HardnessTime = HardnessTime,
|
||||
ActionQueue = ActionQueue
|
||||
GamingQueue = GamingQueue
|
||||
};
|
||||
foreach (Effect e in Effects)
|
||||
{
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user