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