mirror of
https://github.com/oshima-studios/OshimaGameModule.git
synced 2025-04-22 03:49:35 +08:00
添加创建魔法卡和魔法卡包
This commit is contained in:
parent
1813dca1fa
commit
37ed981be2
@ -28,7 +28,7 @@ namespace Oshima.Core.Controllers
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
SQLHelper? sql = Statics.RunningPlugin.SQLHelper;
|
SQLHelper? sql = Statics.RunningPlugin.Controller.SQLHelper;
|
||||||
if (sql != null)
|
if (sql != null)
|
||||||
{
|
{
|
||||||
sql.ExecuteDataSet(ServerLoginLogs.Select_GetLastLoginTime());
|
sql.ExecuteDataSet(ServerLoginLogs.Select_GetLastLoginTime());
|
||||||
|
@ -33,6 +33,8 @@ namespace Oshima.Core.WebAPI
|
|||||||
public override void AfterLoad(params object[] objs)
|
public override void AfterLoad(params object[] objs)
|
||||||
{
|
{
|
||||||
Statics.RunningPlugin = this;
|
Statics.RunningPlugin = this;
|
||||||
|
Controller.NewSQLHelper();
|
||||||
|
Controller.NewMailSender();
|
||||||
GeneralSettings.LoadSetting();
|
GeneralSettings.LoadSetting();
|
||||||
GeneralSettings.SaveConfig();
|
GeneralSettings.SaveConfig();
|
||||||
QQOpenID.LoadConfig();
|
QQOpenID.LoadConfig();
|
||||||
@ -40,7 +42,7 @@ namespace Oshima.Core.WebAPI
|
|||||||
Daily.InitDaily();
|
Daily.InitDaily();
|
||||||
SayNo.InitSayNo();
|
SayNo.InitSayNo();
|
||||||
Ignore.InitIgnore();
|
Ignore.InitIgnore();
|
||||||
FunGameSimulation.InitCharacter();
|
FunGameSimulation.InitFunGame();
|
||||||
Task taskTime = Task.Factory.StartNew(async () =>
|
Task taskTime = Task.Factory.StartNew(async () =>
|
||||||
{
|
{
|
||||||
while (true)
|
while (true)
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using Milimoe.FunGame.Core.Api.Utility;
|
using Milimoe.FunGame.Core.Api.Utility;
|
||||||
using Milimoe.FunGame.Core.Entity;
|
using Milimoe.FunGame.Core.Entity;
|
||||||
|
using Milimoe.FunGame.Core.Library.Constant;
|
||||||
using Milimoe.FunGame.Core.Model;
|
using Milimoe.FunGame.Core.Model;
|
||||||
using Oshima.FunGame.OshimaModules;
|
using Oshima.FunGame.OshimaModules;
|
||||||
using Oshima.FunGame.OshimaModules.Characters;
|
using Oshima.FunGame.OshimaModules.Characters;
|
||||||
@ -27,6 +28,60 @@ namespace Oshima.Core.Utils
|
|||||||
public static bool DeathMatchRoundDetail { get; set; } = false;
|
public static bool DeathMatchRoundDetail { get; set; } = false;
|
||||||
public static string Msg { get; set; } = "";
|
public static string Msg { get; set; } = "";
|
||||||
|
|
||||||
|
public static void InitFunGame()
|
||||||
|
{
|
||||||
|
Characters.Add(new OshimaShiya());
|
||||||
|
Characters.Add(new XinYin());
|
||||||
|
Characters.Add(new Yang());
|
||||||
|
Characters.Add(new NanGanYu());
|
||||||
|
Characters.Add(new NiuNan());
|
||||||
|
Characters.Add(new DokyoMayor());
|
||||||
|
Characters.Add(new MagicalGirl());
|
||||||
|
Characters.Add(new QingXiang());
|
||||||
|
Characters.Add(new QWQAQW());
|
||||||
|
Characters.Add(new ColdBlue());
|
||||||
|
Characters.Add(new dddovo());
|
||||||
|
Characters.Add(new Quduoduo());
|
||||||
|
|
||||||
|
foreach (Character c in Characters)
|
||||||
|
{
|
||||||
|
CharacterStatistics.Add(c, new());
|
||||||
|
}
|
||||||
|
|
||||||
|
StatsConfig.LoadConfig();
|
||||||
|
foreach (Character character in CharacterStatistics.Keys)
|
||||||
|
{
|
||||||
|
if (StatsConfig.ContainsKey(character.ToStringWithOutUser()))
|
||||||
|
{
|
||||||
|
CharacterStatistics[character] = StatsConfig.Get<CharacterStatistics>(character.ToStringWithOutUser()) ?? CharacterStatistics[character];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (Character c in Characters)
|
||||||
|
{
|
||||||
|
TeamCharacterStatistics.Add(c, new());
|
||||||
|
}
|
||||||
|
|
||||||
|
TeamStatsConfig.LoadConfig();
|
||||||
|
foreach (Character character in TeamCharacterStatistics.Keys)
|
||||||
|
{
|
||||||
|
if (TeamStatsConfig.ContainsKey(character.ToStringWithOutUser()))
|
||||||
|
{
|
||||||
|
TeamCharacterStatistics[character] = TeamStatsConfig.Get<CharacterStatistics>(character.ToStringWithOutUser()) ?? TeamCharacterStatistics[character];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Dictionary<string, Item> exItems = Factory.GetGameModuleInstances<Item>(OshimaGameModuleConstant.General, OshimaGameModuleConstant.Item);
|
||||||
|
Equipment.AddRange(exItems.Values.Where(i => (int)i.ItemType >= 0 && (int)i.ItemType < 5));
|
||||||
|
Equipment.AddRange([new 攻击之爪10(), new 攻击之爪30(), new 攻击之爪50()]);
|
||||||
|
|
||||||
|
Items.AddRange(exItems.Values.Where(i => (int)i.ItemType > 4));
|
||||||
|
|
||||||
|
Skills.AddRange([new 疾风步()]);
|
||||||
|
|
||||||
|
Magics.AddRange([new 冰霜攻击(), new 火之矢(), new 水之矢(), new 风之轮(), new 石之锤(), new 心灵之霞(), new 次元上升(), new 暗物质(), new 回复术(), new 治愈术()]);
|
||||||
|
}
|
||||||
|
|
||||||
public static List<string> StartGame(bool printout, bool isWeb = false, bool isTeam = false, bool deathMatchRoundDetail = false)
|
public static List<string> StartGame(bool printout, bool isWeb = false, bool isTeam = false, bool deathMatchRoundDetail = false)
|
||||||
{
|
{
|
||||||
PrintOut = printout;
|
PrintOut = printout;
|
||||||
@ -88,14 +143,14 @@ namespace Oshima.Core.Utils
|
|||||||
c.Level = clevel;
|
c.Level = clevel;
|
||||||
c.NormalAttack.Level = mlevel;
|
c.NormalAttack.Level = mlevel;
|
||||||
|
|
||||||
IEnumerable<Skill> magics = Magics.OrderBy(x => Random.Shared.Next()).Take(3);
|
//IEnumerable<Skill> magics = Magics.OrderBy(x => Random.Shared.Next()).Take(3);
|
||||||
foreach (Skill magic in magics)
|
//foreach (Skill magic in magics)
|
||||||
{
|
//{
|
||||||
Skill m = magic.Copy();
|
// Skill m = magic.Copy();
|
||||||
m.Character = c;
|
// m.Character = c;
|
||||||
m.Level = mlevel;
|
// m.Level = mlevel;
|
||||||
c.Skills.Add(m);
|
// c.Skills.Add(m);
|
||||||
}
|
//}
|
||||||
|
|
||||||
Skill 疾风步 = new 疾风步(c)
|
Skill 疾风步 = new 疾风步(c)
|
||||||
{
|
{
|
||||||
@ -298,13 +353,18 @@ namespace Oshima.Core.Utils
|
|||||||
|
|
||||||
// 开始空投
|
// 开始空投
|
||||||
Msg = "";
|
Msg = "";
|
||||||
|
int 发放的卡包品质 = 0;
|
||||||
int 发放的武器品质 = 0;
|
int 发放的武器品质 = 0;
|
||||||
int 发放的防具品质 = 0;
|
int 发放的防具品质 = 0;
|
||||||
int 发放的鞋子品质 = 0;
|
int 发放的鞋子品质 = 0;
|
||||||
int 发放的饰品品质 = 0;
|
int 发放的饰品品质 = 0;
|
||||||
空投(actionQueue, 发放的武器品质, 发放的防具品质, 发放的鞋子品质, 发放的饰品品质);
|
空投(actionQueue, 发放的卡包品质, 发放的武器品质, 发放的防具品质, 发放的鞋子品质, 发放的饰品品质);
|
||||||
if (isWeb) result.Add("=== 空投 ===\r\n" + Msg);
|
if (isWeb) result.Add("=== 空投 ===\r\n" + Msg);
|
||||||
double 下一次空投 = isTeam ? 80 : 40;
|
double 下一次空投 = isTeam ? 80 : 40;
|
||||||
|
if (发放的卡包品质 < 4)
|
||||||
|
{
|
||||||
|
发放的卡包品质++;
|
||||||
|
}
|
||||||
if (发放的武器品质 < 4)
|
if (发放的武器品质 < 4)
|
||||||
{
|
{
|
||||||
发放的武器品质++;
|
发放的武器品质++;
|
||||||
@ -514,9 +574,13 @@ namespace Oshima.Core.Utils
|
|||||||
{
|
{
|
||||||
// 空投
|
// 空投
|
||||||
Msg = "";
|
Msg = "";
|
||||||
空投(actionQueue, 发放的武器品质, 发放的防具品质, 发放的鞋子品质, 发放的饰品品质);
|
空投(actionQueue, 发放的卡包品质, 发放的武器品质, 发放的防具品质, 发放的鞋子品质, 发放的饰品品质);
|
||||||
if (isWeb) result.Add("=== 空投 ===\r\n" + Msg);
|
if (isWeb) result.Add("=== 空投 ===\r\n" + Msg);
|
||||||
下一次空投 = isTeam ? 100 : 40;
|
下一次空投 = isTeam ? 100 : 40;
|
||||||
|
if (发放的卡包品质 < 4)
|
||||||
|
{
|
||||||
|
发放的卡包品质++;
|
||||||
|
}
|
||||||
if (发放的武器品质 < 4)
|
if (发放的武器品质 < 4)
|
||||||
{
|
{
|
||||||
发放的武器品质++;
|
发放的武器品质++;
|
||||||
@ -723,7 +787,7 @@ namespace Oshima.Core.Utils
|
|||||||
if (PrintOut) Console.WriteLine(str);
|
if (PrintOut) Console.WriteLine(str);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void 空投(ActionQueue queue, int wQuality, int aQuality, int sQuality, int acQuality)
|
public static void 空投(ActionQueue queue, int mQuality, int wQuality, int aQuality, int sQuality, int acQuality)
|
||||||
{
|
{
|
||||||
WriteLine($"社区送温暖了,现在随机发放空投!!");
|
WriteLine($"社区送温暖了,现在随机发放空投!!");
|
||||||
foreach (Character character in queue.Queue)
|
foreach (Character character in queue.Queue)
|
||||||
@ -754,71 +818,295 @@ namespace Oshima.Core.Utils
|
|||||||
if (b != null) 这次发放的空投.Add(b);
|
if (b != null) 这次发放的空投.Add(b);
|
||||||
if (c != null) 这次发放的空投.Add(c);
|
if (c != null) 这次发放的空投.Add(c);
|
||||||
if (d != null) 这次发放的空投.Add(d);
|
if (d != null) 这次发放的空投.Add(d);
|
||||||
|
Item? 魔法卡包 = GenerateMagicCardPack(3, (QualityType)mQuality);
|
||||||
|
if (魔法卡包 != null)
|
||||||
|
{
|
||||||
|
foreach (Skill magic in 魔法卡包.Skills.Magics)
|
||||||
|
{
|
||||||
|
magic.Level = 8;
|
||||||
|
}
|
||||||
|
魔法卡包.SetGamingQueue(queue);
|
||||||
|
queue.Equip(character, 魔法卡包);
|
||||||
|
}
|
||||||
foreach (Item item in 这次发放的空投)
|
foreach (Item item in 这次发放的空投)
|
||||||
{
|
{
|
||||||
Item realItem = item.Copy();
|
Item realItem = item.Copy();
|
||||||
realItem.SetGamingQueue(queue);
|
realItem.SetGamingQueue(queue);
|
||||||
realItem.SetLevel(1);
|
|
||||||
queue.Equip(character, realItem);
|
queue.Equip(character, realItem);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
WriteLine("");
|
WriteLine("");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void InitCharacter()
|
public static List<Item> GenerateMagicCards(int count, QualityType? qualityType = null)
|
||||||
{
|
{
|
||||||
Characters.Add(new OshimaShiya());
|
List<Item> items = [];
|
||||||
Characters.Add(new XinYin());
|
|
||||||
Characters.Add(new Yang());
|
|
||||||
Characters.Add(new NanGanYu());
|
|
||||||
Characters.Add(new NiuNan());
|
|
||||||
Characters.Add(new DokyoMayor());
|
|
||||||
Characters.Add(new MagicalGirl());
|
|
||||||
Characters.Add(new QingXiang());
|
|
||||||
Characters.Add(new QWQAQW());
|
|
||||||
Characters.Add(new ColdBlue());
|
|
||||||
Characters.Add(new dddovo());
|
|
||||||
Characters.Add(new Quduoduo());
|
|
||||||
|
|
||||||
foreach (Character c in Characters)
|
for (int i = 0; i < count; i++)
|
||||||
{
|
{
|
||||||
CharacterStatistics.Add(c, new());
|
items.Add(GenerateMagicCard(qualityType));
|
||||||
}
|
|
||||||
|
|
||||||
StatsConfig.LoadConfig();
|
|
||||||
foreach (Character character in CharacterStatistics.Keys)
|
|
||||||
{
|
|
||||||
if (StatsConfig.ContainsKey(character.ToStringWithOutUser()))
|
|
||||||
{
|
|
||||||
CharacterStatistics[character] = StatsConfig.Get<CharacterStatistics>(character.ToStringWithOutUser()) ?? CharacterStatistics[character];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (Character c in Characters)
|
return items;
|
||||||
{
|
|
||||||
TeamCharacterStatistics.Add(c, new());
|
|
||||||
}
|
|
||||||
|
|
||||||
TeamStatsConfig.LoadConfig();
|
|
||||||
foreach (Character character in TeamCharacterStatistics.Keys)
|
|
||||||
{
|
|
||||||
if (TeamStatsConfig.ContainsKey(character.ToStringWithOutUser()))
|
|
||||||
{
|
|
||||||
TeamCharacterStatistics[character] = TeamStatsConfig.Get<CharacterStatistics>(character.ToStringWithOutUser()) ?? TeamCharacterStatistics[character];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Dictionary<string, Item> exItems = Factory.GetGameModuleInstances<Item>(OshimaGameModuleConstant.General, OshimaGameModuleConstant.Item);
|
|
||||||
Equipment.AddRange(exItems.Values.Where(i => (int)i.ItemType >= 0 && (int)i.ItemType < 5));
|
|
||||||
Equipment.AddRange([new 攻击之爪10(), new 攻击之爪30(), new 攻击之爪50()]);
|
|
||||||
|
|
||||||
Items.AddRange(exItems.Values.Where(i => (int)i.ItemType > 4));
|
|
||||||
|
|
||||||
Skills.AddRange([new 疾风步()]);
|
|
||||||
|
|
||||||
Magics.AddRange([new 冰霜攻击(), new 火之矢(), new 水之矢(), new 风之轮(), new 石之锤(), new 心灵之霞(), new 次元上升(), new 暗物质(), new 回复术(), new 治愈术()]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Item GenerateMagicCard(QualityType? qualityType = null)
|
||||||
|
{
|
||||||
|
Item item = Factory.GetItem();
|
||||||
|
item.Id = Convert.ToInt64("16" + Verification.CreateVerifyCode(VerifyCodeType.NumberVerifyCode, 8));
|
||||||
|
item.Name = GenerateRandomChineseName();
|
||||||
|
item.ItemType = ItemType.MagicCard;
|
||||||
|
item.BackgroundStory = "这是一张随机生成的魔法卡。";
|
||||||
|
|
||||||
|
int total;
|
||||||
|
if (qualityType != null)
|
||||||
|
{
|
||||||
|
total = qualityType switch
|
||||||
|
{
|
||||||
|
QualityType.Green => Random.Shared.Next(7, 13),
|
||||||
|
QualityType.Blue => Random.Shared.Next(13, 19),
|
||||||
|
QualityType.Purple => Random.Shared.Next(19, 25),
|
||||||
|
QualityType.Orange => Random.Shared.Next(25, 31),
|
||||||
|
_ => Random.Shared.Next(1, 7)
|
||||||
|
};
|
||||||
|
item.QualityType = (QualityType)qualityType;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
total = Random.Shared.Next(1, 31);
|
||||||
|
if (total > 6 && total <= 12)
|
||||||
|
{
|
||||||
|
item.QualityType = QualityType.Green;
|
||||||
|
}
|
||||||
|
else if (total > 12 && total <= 18)
|
||||||
|
{
|
||||||
|
item.QualityType = QualityType.Blue;
|
||||||
|
}
|
||||||
|
else if (total > 18 && total <= 24)
|
||||||
|
{
|
||||||
|
item.QualityType = QualityType.Purple;
|
||||||
|
}
|
||||||
|
else if (total > 24 && total <= 30)
|
||||||
|
{
|
||||||
|
item.QualityType = QualityType.Orange;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
GenerateAndAddSkillToMagicCard(item, total);
|
||||||
|
|
||||||
|
return item;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void GenerateAndAddSkillToMagicCard(Item item, int total)
|
||||||
|
{
|
||||||
|
Skill magic = Magics[Random.Shared.Next(Magics.Count)].Copy();
|
||||||
|
magic.Level = (int)item.QualityType switch
|
||||||
|
{
|
||||||
|
2 => 2,
|
||||||
|
4 => 3,
|
||||||
|
6 => 4,
|
||||||
|
_ => 1
|
||||||
|
};
|
||||||
|
item.Skills.Active = magic;
|
||||||
|
|
||||||
|
// 初始化属性值
|
||||||
|
int str = 0, agi = 0, intelligence = 0;
|
||||||
|
|
||||||
|
// 随机决定将多少个属性赋给其中一个属性,确保至少一个不为零
|
||||||
|
int nonZeroAttributes = Random.Shared.Next(1, Math.Min(4, total + 1)); // 随机决定非零属性的数量,确保在 total = 1 时最多只有1个非零属性
|
||||||
|
|
||||||
|
// 根据非零属性数量分配属性点
|
||||||
|
if (nonZeroAttributes == 1)
|
||||||
|
{
|
||||||
|
// 只有一个属性不为零
|
||||||
|
int attribute = Random.Shared.Next(0, 3);
|
||||||
|
if (attribute == 0) str = total;
|
||||||
|
else if (attribute == 1) agi = total;
|
||||||
|
else intelligence = total;
|
||||||
|
}
|
||||||
|
else if (nonZeroAttributes == 2 && total >= 2)
|
||||||
|
{
|
||||||
|
// 两个属性不为零
|
||||||
|
int first = Random.Shared.Next(1, total); // 第一个属性的值
|
||||||
|
int second = total - first; // 第二个属性的值
|
||||||
|
|
||||||
|
int attribute = Random.Shared.Next(0, 3);
|
||||||
|
if (attribute == 0)
|
||||||
|
{
|
||||||
|
str = first;
|
||||||
|
}
|
||||||
|
else if (attribute == 1)
|
||||||
|
{
|
||||||
|
agi = first;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
intelligence = first;
|
||||||
|
}
|
||||||
|
|
||||||
|
attribute = Random.Shared.Next(0, 3);
|
||||||
|
while ((attribute == 0 && str > 0) || (attribute == 1 && agi > 0) || (attribute == 2 && intelligence > 0))
|
||||||
|
{
|
||||||
|
attribute = Random.Shared.Next(0, 3);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (attribute == 0)
|
||||||
|
{
|
||||||
|
str = second;
|
||||||
|
}
|
||||||
|
else if (attribute == 1)
|
||||||
|
{
|
||||||
|
agi = second;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
intelligence = second;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (total >= 3)
|
||||||
|
{
|
||||||
|
// 三个属性都不为零
|
||||||
|
str = Random.Shared.Next(1, total - 1); // 第一个属性的值
|
||||||
|
agi = Random.Shared.Next(1, total - str); // 第二个属性的值
|
||||||
|
intelligence = total - str - agi; // 剩下的值给第三个属性
|
||||||
|
}
|
||||||
|
|
||||||
|
Skill skill = Factory.OpenFactory.GetInstance<Skill>(item.Id, item.Name, []);
|
||||||
|
GenerateAndAddEffectsToMagicCard(skill, str, agi, intelligence);
|
||||||
|
|
||||||
|
if (magic.Level > 1) item.Name += $" +{magic.Level - 1}";
|
||||||
|
skill.Level = 1;
|
||||||
|
item.Skills.Passives.Add(skill);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void GenerateAndAddEffectsToMagicCard(Skill skill, int str, int agi, int intelligence)
|
||||||
|
{
|
||||||
|
if (str > 0)
|
||||||
|
{
|
||||||
|
skill.Effects.Add(Factory.OpenFactory.GetInstance<Effect>((long)EffectID.ExSTR, "", new()
|
||||||
|
{
|
||||||
|
{ "skill", skill },
|
||||||
|
{
|
||||||
|
"values", new Dictionary<string, object>()
|
||||||
|
{
|
||||||
|
{ "exstr", str }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (agi > 0)
|
||||||
|
{
|
||||||
|
skill.Effects.Add(Factory.OpenFactory.GetInstance<Effect>((long)EffectID.ExAGI, "", new()
|
||||||
|
{
|
||||||
|
{ "skill", skill },
|
||||||
|
{
|
||||||
|
"values", new Dictionary<string, object>()
|
||||||
|
{
|
||||||
|
{ "exagi", agi }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (intelligence > 0)
|
||||||
|
{
|
||||||
|
skill.Effects.Add(Factory.OpenFactory.GetInstance<Effect>((long)EffectID.ExINT, "", new()
|
||||||
|
{
|
||||||
|
{ "skill", skill },
|
||||||
|
{
|
||||||
|
"values", new Dictionary<string, object>()
|
||||||
|
{
|
||||||
|
{ "exint", intelligence }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Item? ConflateMagicCardPack(IEnumerable<Item> magicCards)
|
||||||
|
{
|
||||||
|
if (magicCards.Any())
|
||||||
|
{
|
||||||
|
List<Skill> magics = [.. magicCards.Where(i => i.Skills.Active != null).Select(i => i.Skills.Active)];
|
||||||
|
List<Skill> passives = [.. magicCards.SelectMany(i => i.Skills.Passives)];
|
||||||
|
Item item = Factory.GetItem();
|
||||||
|
item.Id = Convert.ToInt64("10" + Verification.CreateVerifyCode(VerifyCodeType.NumberVerifyCode, 8));
|
||||||
|
item.Name = GenerateRandomChineseName();
|
||||||
|
item.ItemType = ItemType.MagicCardPack;
|
||||||
|
item.BackgroundStory = "这是一个由三张魔法卡合成而来的魔法卡包。";
|
||||||
|
double str = 0, agi = 0, intelligence = 0;
|
||||||
|
foreach (Skill skill in passives)
|
||||||
|
{
|
||||||
|
Skill newSkill = skill.Copy();
|
||||||
|
foreach (Effect effect in newSkill.Effects)
|
||||||
|
{
|
||||||
|
switch ((EffectID)effect.Id)
|
||||||
|
{
|
||||||
|
case EffectID.ExSTR:
|
||||||
|
if (effect is ExSTR exstr)
|
||||||
|
{
|
||||||
|
str += exstr.Value;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case EffectID.ExAGI:
|
||||||
|
if (effect is ExAGI exagi)
|
||||||
|
{
|
||||||
|
agi += exagi.Value;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case EffectID.ExINT:
|
||||||
|
if (effect is ExINT exint)
|
||||||
|
{
|
||||||
|
intelligence += exint.Value;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
newSkill.Level = skill.Level;
|
||||||
|
item.Skills.Passives.Add(newSkill);
|
||||||
|
}
|
||||||
|
List<string> strings = [];
|
||||||
|
if (str > 0) strings.Add($"{str:0.##} 点力量");
|
||||||
|
if (agi > 0) strings.Add($"{agi:0.##} 点敏捷");
|
||||||
|
if (intelligence > 0) strings.Add($"{intelligence:0.##} 点智力");
|
||||||
|
foreach (Skill skill in magics)
|
||||||
|
{
|
||||||
|
Skill magic = skill.Copy();
|
||||||
|
magic.Level = skill.Level;
|
||||||
|
item.Skills.Magics.Add(magic);
|
||||||
|
}
|
||||||
|
item.Description = $"包含魔法:{string.Join(",", item.Skills.Magics.Select(m => m.Name + $" +{m.Level - 1}"))}\r\n" +
|
||||||
|
$"增加角色属性:{string.Join(",", strings)}";
|
||||||
|
double total = str + agi + intelligence;
|
||||||
|
if (total > 18 && total <= 36)
|
||||||
|
{
|
||||||
|
item.QualityType = QualityType.Green;
|
||||||
|
}
|
||||||
|
else if (total > 36 && total <= 54)
|
||||||
|
{
|
||||||
|
item.QualityType = QualityType.Blue;
|
||||||
|
}
|
||||||
|
else if (total > 54 && total <= 72)
|
||||||
|
{
|
||||||
|
item.QualityType = QualityType.Purple;
|
||||||
|
}
|
||||||
|
else if (total > 72 && total <= 90)
|
||||||
|
{
|
||||||
|
item.QualityType = QualityType.Orange;
|
||||||
|
}
|
||||||
|
return item;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Item? GenerateMagicCardPack(int magicCardCount, QualityType? qualityType = null)
|
||||||
|
{
|
||||||
|
List<Item> magicCards = GenerateMagicCards(magicCardCount, qualityType);
|
||||||
|
Item? magicCardPack = ConflateMagicCardPack(magicCards);
|
||||||
|
return magicCardPack;
|
||||||
|
}
|
||||||
|
|
||||||
public static void Reload()
|
public static void Reload()
|
||||||
{
|
{
|
||||||
Characters.Clear();
|
Characters.Clear();
|
||||||
@ -828,7 +1116,7 @@ namespace Oshima.Core.Utils
|
|||||||
Skills.Clear();
|
Skills.Clear();
|
||||||
Magics.Clear();
|
Magics.Clear();
|
||||||
|
|
||||||
InitCharacter();
|
InitFunGame();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Dictionary<EffectID, Dictionary<string, object>> RoundRewards
|
public static Dictionary<EffectID, Dictionary<string, object>> RoundRewards
|
||||||
@ -1012,7 +1300,7 @@ namespace Oshima.Core.Utils
|
|||||||
{
|
{
|
||||||
baseScore = baseScore * 0.6 + 0.4 * (stats.Kills / (stats.Kills + stats.Deaths + 0.01));
|
baseScore = baseScore * 0.6 + 0.4 * (stats.Kills / (stats.Kills + stats.Deaths + 0.01));
|
||||||
}
|
}
|
||||||
|
|
||||||
// 伤害贡献
|
// 伤害贡献
|
||||||
double logDamageContribution = Math.Log(1 + (stats.TotalDamage / (stats.TotalTakenDamage + 1e-6)));
|
double logDamageContribution = Math.Log(1 + (stats.TotalDamage / (stats.TotalTakenDamage + 1e-6)));
|
||||||
|
|
||||||
@ -1041,5 +1329,30 @@ namespace Oshima.Core.Utils
|
|||||||
// 确保评分在合理范围内
|
// 确保评分在合理范围内
|
||||||
return Math.Max(0.01, rating);
|
return Math.Max(0.01, rating);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static string GenerateRandomChineseName()
|
||||||
|
{
|
||||||
|
// 定义一个包含常用汉字的字符串
|
||||||
|
string commonChineseCharacters = "云星宝灵梦龙花雨风叶山川月石羽水竹金" +
|
||||||
|
"玉海火雷光天地云凤虎虹珠华霞鹏雪银沙松桃兰竹青霜鸿康龙骏波泉河湖江泽" +
|
||||||
|
"洋林枫梅桂樱桐竹晴韵凌兰若悠碧涛渊风雷壁石剑影霖玄承珍雅耀星瑞龙鹤烟" +
|
||||||
|
"影凤燕霏翼羽翔璃绮纱绫绣锦瑜琼瑾璇璧琳琪琳瑶瑛芝杏茜荷莉莹菡莲诗羽珍" +
|
||||||
|
"瑰翠椒槐榆槿柱梧桐曜曙晶暖智煌熙灵霓珠熠燕熹熠碧瑶琳嘉琪瑶琴瑶琴碧曼" +
|
||||||
|
"菁蓉菲瑾淑妙惠嘉华秋涵智映巧慧茹瑜瑶荣菱霏曦容芬玲瑛琪瑜澜碧影凌清涛" +
|
||||||
|
"湘泽澄泓泓翠澜润璇珺湘晨曦晶翠瑾澜涟润淑洁悠雅翠霏涵淑珍绮翠润";
|
||||||
|
|
||||||
|
// 随机生成名字长度,2到5个字
|
||||||
|
int nameLength = Random.Shared.Next(2, 6);
|
||||||
|
StringBuilder name = new();
|
||||||
|
|
||||||
|
for (int i = 0; i < nameLength; i++)
|
||||||
|
{
|
||||||
|
// 从常用汉字集中随机选择一个汉字
|
||||||
|
char chineseCharacter = commonChineseCharacters[Random.Shared.Next(commonChineseCharacters.Length)];
|
||||||
|
name.Append(chineseCharacter);
|
||||||
|
}
|
||||||
|
|
||||||
|
return name.ToString();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,8 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
|||||||
public override string Name => "加速系数加成";
|
public override string Name => "加速系数加成";
|
||||||
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(实际加成) * 100:0.##}% 加速系数。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(实际加成) * 100:0.##}% 加速系数。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
||||||
public override EffectType EffectType => EffectType.Item;
|
public override EffectType EffectType => EffectType.Item;
|
||||||
|
public double Value => 实际加成;
|
||||||
|
|
||||||
private readonly double 实际加成 = 0;
|
private readonly double 实际加成 = 0;
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
public override void OnEffectGained(Character character)
|
||||||
|
@ -9,7 +9,8 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
|||||||
public override string Name => "敏捷加成";
|
public override string Name => "敏捷加成";
|
||||||
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(实际加成):0.##} 点敏捷。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(实际加成):0.##} 点敏捷。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
||||||
public override EffectType EffectType => EffectType.Item;
|
public override EffectType EffectType => EffectType.Item;
|
||||||
|
public double Value => 实际加成;
|
||||||
|
|
||||||
private readonly double 实际加成 = 0;
|
private readonly double 实际加成 = 0;
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
public override void OnEffectGained(Character character)
|
||||||
|
@ -9,7 +9,8 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
|||||||
public override string Name => "敏捷加成";
|
public override string Name => "敏捷加成";
|
||||||
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(加成比例) * 100:0.##}% [ {Math.Abs(实际加成):0.##} ] 点敏捷。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(加成比例) * 100:0.##}% [ {Math.Abs(实际加成):0.##} ] 点敏捷。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
||||||
public override EffectType EffectType => EffectType.Item;
|
public override EffectType EffectType => EffectType.Item;
|
||||||
|
public double Value => 实际加成;
|
||||||
|
|
||||||
private readonly double 加成比例 = 0;
|
private readonly double 加成比例 = 0;
|
||||||
private double 实际加成 = 0;
|
private double 实际加成 = 0;
|
||||||
|
|
||||||
|
@ -9,7 +9,8 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
|||||||
public override string Name => "攻击力加成";
|
public override string Name => "攻击力加成";
|
||||||
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(实际加成):0.##} 点攻击力。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(实际加成):0.##} 点攻击力。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
||||||
public override EffectType EffectType => EffectType.Item;
|
public override EffectType EffectType => EffectType.Item;
|
||||||
|
public double Value => 实际加成;
|
||||||
|
|
||||||
private readonly double 实际加成 = 0;
|
private readonly double 实际加成 = 0;
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
public override void OnEffectGained(Character character)
|
||||||
|
@ -9,7 +9,8 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
|||||||
public override string Name => "攻击力加成";
|
public override string Name => "攻击力加成";
|
||||||
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(加成比例) * 100:0.##}% [ {Math.Abs(实际加成):0.##} ] 点攻击力。" + (Source != null && Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(加成比例) * 100:0.##}% [ {Math.Abs(实际加成):0.##} ] 点攻击力。" + (Source != null && Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
||||||
public override EffectType EffectType => EffectType.Item;
|
public override EffectType EffectType => EffectType.Item;
|
||||||
|
public double Value => 实际加成;
|
||||||
|
|
||||||
private readonly double 加成比例 = 0;
|
private readonly double 加成比例 = 0;
|
||||||
private double 实际加成 = 0;
|
private double 实际加成 = 0;
|
||||||
|
|
||||||
|
@ -9,7 +9,8 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
|||||||
public override string Name => "行动系数加成";
|
public override string Name => "行动系数加成";
|
||||||
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(实际加成) * 100:0.##}% 行动系数。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(实际加成) * 100:0.##}% 行动系数。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
||||||
public override EffectType EffectType => EffectType.Item;
|
public override EffectType EffectType => EffectType.Item;
|
||||||
|
public double Value => 实际加成;
|
||||||
|
|
||||||
private readonly double 实际加成 = 0;
|
private readonly double 实际加成 = 0;
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
public override void OnEffectGained(Character character)
|
||||||
|
@ -9,7 +9,8 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
|||||||
public override string Name => "冷却缩减加成";
|
public override string Name => "冷却缩减加成";
|
||||||
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(实际加成) * 100:0.##}% 冷却缩减。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(实际加成) * 100:0.##}% 冷却缩减。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
||||||
public override EffectType EffectType => EffectType.Item;
|
public override EffectType EffectType => EffectType.Item;
|
||||||
|
public double Value => 实际加成;
|
||||||
|
|
||||||
private readonly double 实际加成 = 0;
|
private readonly double 实际加成 = 0;
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
public override void OnEffectGained(Character character)
|
||||||
|
@ -9,7 +9,8 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
|||||||
public override string Name => "暴击伤害加成";
|
public override string Name => "暴击伤害加成";
|
||||||
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(实际加成) * 100:0.##}% 暴击伤害。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(实际加成) * 100:0.##}% 暴击伤害。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
||||||
public override EffectType EffectType => EffectType.Item;
|
public override EffectType EffectType => EffectType.Item;
|
||||||
|
public double Value => 实际加成;
|
||||||
|
|
||||||
private readonly double 实际加成 = 0;
|
private readonly double 实际加成 = 0;
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
public override void OnEffectGained(Character character)
|
||||||
|
@ -9,7 +9,8 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
|||||||
public override string Name => "暴击率加成";
|
public override string Name => "暴击率加成";
|
||||||
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(实际加成) * 100:0.##}% 暴击率。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(实际加成) * 100:0.##}% 暴击率。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
||||||
public override EffectType EffectType => EffectType.Item;
|
public override EffectType EffectType => EffectType.Item;
|
||||||
|
public double Value => 实际加成;
|
||||||
|
|
||||||
private readonly double 实际加成 = 0;
|
private readonly double 实际加成 = 0;
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
public override void OnEffectGained(Character character)
|
||||||
|
@ -9,7 +9,8 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
|||||||
public override string Name => "物理护甲加成";
|
public override string Name => "物理护甲加成";
|
||||||
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(实际加成):0.##} 点物理护甲。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(实际加成):0.##} 点物理护甲。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
||||||
public override EffectType EffectType => EffectType.Item;
|
public override EffectType EffectType => EffectType.Item;
|
||||||
|
public double Value => 实际加成;
|
||||||
|
|
||||||
private readonly double 实际加成 = 0;
|
private readonly double 实际加成 = 0;
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
public override void OnEffectGained(Character character)
|
||||||
|
@ -9,7 +9,8 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
|||||||
public override string Name => "物理护甲加成";
|
public override string Name => "物理护甲加成";
|
||||||
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(加成比例) * 100:0.##}% [ {实际加成:0.##} ] 点物理护甲。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(加成比例) * 100:0.##}% [ {实际加成:0.##} ] 点物理护甲。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
||||||
public override EffectType EffectType => EffectType.Item;
|
public override EffectType EffectType => EffectType.Item;
|
||||||
|
public double Value => 实际加成;
|
||||||
|
|
||||||
private readonly double 加成比例 = 0;
|
private readonly double 加成比例 = 0;
|
||||||
private double 实际加成 = 0;
|
private double 实际加成 = 0;
|
||||||
|
|
||||||
|
@ -9,7 +9,8 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
|||||||
public override string Name => "闪避率加成";
|
public override string Name => "闪避率加成";
|
||||||
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(实际加成) * 100:0.##}% 闪避率。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(实际加成) * 100:0.##}% 闪避率。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
||||||
public override EffectType EffectType => EffectType.Item;
|
public override EffectType EffectType => EffectType.Item;
|
||||||
|
public double Value => 实际加成;
|
||||||
|
|
||||||
private readonly double 实际加成 = 0;
|
private readonly double 实际加成 = 0;
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
public override void OnEffectGained(Character character)
|
||||||
|
@ -9,7 +9,8 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
|||||||
public override string Name => "生命回复加成";
|
public override string Name => "生命回复加成";
|
||||||
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(实际加成):0.##} 点生命回复。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(实际加成):0.##} 点生命回复。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
||||||
public override EffectType EffectType => EffectType.Item;
|
public override EffectType EffectType => EffectType.Item;
|
||||||
|
public double Value => 实际加成;
|
||||||
|
|
||||||
private readonly double 实际加成 = 0;
|
private readonly double 实际加成 = 0;
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
public override void OnEffectGained(Character character)
|
||||||
|
@ -9,7 +9,8 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
|||||||
public override string Name => "智力加成";
|
public override string Name => "智力加成";
|
||||||
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(实际加成):0.##} 点智力。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(实际加成):0.##} 点智力。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
||||||
public override EffectType EffectType => EffectType.Item;
|
public override EffectType EffectType => EffectType.Item;
|
||||||
|
public double Value => 实际加成;
|
||||||
|
|
||||||
private readonly double 实际加成 = 0;
|
private readonly double 实际加成 = 0;
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
public override void OnEffectGained(Character character)
|
||||||
|
@ -9,7 +9,8 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
|||||||
public override string Name => "智力加成";
|
public override string Name => "智力加成";
|
||||||
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(加成比例) * 100:0.##}% [ {Math.Abs(实际加成):0.##} ] 点智力。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(加成比例) * 100:0.##}% [ {Math.Abs(实际加成):0.##} ] 点智力。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
||||||
public override EffectType EffectType => EffectType.Item;
|
public override EffectType EffectType => EffectType.Item;
|
||||||
|
public double Value => 实际加成;
|
||||||
|
|
||||||
private readonly double 加成比例 = 0;
|
private readonly double 加成比例 = 0;
|
||||||
private double 实际加成 = 0;
|
private double 实际加成 = 0;
|
||||||
|
|
||||||
|
@ -9,7 +9,8 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
|||||||
public override string Name => "魔法抗性加成";
|
public override string Name => "魔法抗性加成";
|
||||||
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(实际加成) * 100:0.##}% {CharacterSet.GetMagicResistanceName(魔法类型)}。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(实际加成) * 100:0.##}% {CharacterSet.GetMagicResistanceName(魔法类型)}。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
||||||
public override EffectType EffectType => EffectType.Item;
|
public override EffectType EffectType => EffectType.Item;
|
||||||
|
public double Value => 实际加成;
|
||||||
|
|
||||||
private readonly double 实际加成 = 0;
|
private readonly double 实际加成 = 0;
|
||||||
private readonly MagicType 魔法类型 = MagicType.None;
|
private readonly MagicType 魔法类型 = MagicType.None;
|
||||||
|
|
||||||
|
@ -9,7 +9,8 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
|||||||
public override string Name => "魔法回复加成";
|
public override string Name => "魔法回复加成";
|
||||||
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(实际加成):0.##} 点魔法回复。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(实际加成):0.##} 点魔法回复。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
||||||
public override EffectType EffectType => EffectType.Item;
|
public override EffectType EffectType => EffectType.Item;
|
||||||
|
public double Value => 实际加成;
|
||||||
|
|
||||||
private readonly double 实际加成 = 0;
|
private readonly double 实际加成 = 0;
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
public override void OnEffectGained(Character character)
|
||||||
|
@ -9,7 +9,8 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
|||||||
public override string Name => "最大生命值加成";
|
public override string Name => "最大生命值加成";
|
||||||
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(实际加成):0.##} 点最大生命值。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(实际加成):0.##} 点最大生命值。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
||||||
public override EffectType EffectType => EffectType.Item;
|
public override EffectType EffectType => EffectType.Item;
|
||||||
|
public double Value => 实际加成;
|
||||||
|
|
||||||
private readonly double 实际加成 = 0;
|
private readonly double 实际加成 = 0;
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
public override void OnEffectGained(Character character)
|
||||||
|
@ -9,7 +9,8 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
|||||||
public override string Name => "最大生命值加成";
|
public override string Name => "最大生命值加成";
|
||||||
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(加成比例) * 100:0.##}% [ {Math.Abs(实际加成):0.##} ] 点最大生命值。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(加成比例) * 100:0.##}% [ {Math.Abs(实际加成):0.##} ] 点最大生命值。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
||||||
public override EffectType EffectType => EffectType.Item;
|
public override EffectType EffectType => EffectType.Item;
|
||||||
|
public double Value => 实际加成;
|
||||||
|
|
||||||
private readonly double 加成比例 = 0;
|
private readonly double 加成比例 = 0;
|
||||||
private double 实际加成 = 0;
|
private double 实际加成 = 0;
|
||||||
|
|
||||||
|
@ -9,7 +9,8 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
|||||||
public override string Name => "最大魔法值加成";
|
public override string Name => "最大魔法值加成";
|
||||||
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(实际加成):0.##} 点最大魔法值。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(实际加成):0.##} 点最大魔法值。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
||||||
public override EffectType EffectType => EffectType.Item;
|
public override EffectType EffectType => EffectType.Item;
|
||||||
|
public double Value => 实际加成;
|
||||||
|
|
||||||
private readonly double 实际加成 = 0;
|
private readonly double 实际加成 = 0;
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
public override void OnEffectGained(Character character)
|
||||||
|
@ -9,7 +9,8 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
|||||||
public override string Name => "最大魔法值加成";
|
public override string Name => "最大魔法值加成";
|
||||||
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(加成比例) * 100:0.##}% [ {Math.Abs(实际加成):0.##} ] 点最大魔法值。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(加成比例) * 100:0.##}% [ {Math.Abs(实际加成):0.##} ] 点最大魔法值。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
||||||
public override EffectType EffectType => EffectType.Item;
|
public override EffectType EffectType => EffectType.Item;
|
||||||
|
public double Value => 实际加成;
|
||||||
|
|
||||||
private readonly double 加成比例 = 0;
|
private readonly double 加成比例 = 0;
|
||||||
private double 实际加成 = 0;
|
private double 实际加成 = 0;
|
||||||
|
|
||||||
|
@ -9,7 +9,8 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
|||||||
public override string Name => "物理伤害减免加成";
|
public override string Name => "物理伤害减免加成";
|
||||||
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(实际加成) * 100:0.##}% 物理伤害减免。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(实际加成) * 100:0.##}% 物理伤害减免。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
||||||
public override EffectType EffectType => EffectType.Item;
|
public override EffectType EffectType => EffectType.Item;
|
||||||
|
public double Value => 实际加成;
|
||||||
|
|
||||||
private readonly double 实际加成 = 0;
|
private readonly double 实际加成 = 0;
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
public override void OnEffectGained(Character character)
|
||||||
|
@ -9,7 +9,8 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
|||||||
public override string Name => "行动速度加成";
|
public override string Name => "行动速度加成";
|
||||||
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(实际加成):0.##} 点行动速度。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(实际加成):0.##} 点行动速度。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
||||||
public override EffectType EffectType => EffectType.Item;
|
public override EffectType EffectType => EffectType.Item;
|
||||||
|
public double Value => 实际加成;
|
||||||
|
|
||||||
private readonly double 实际加成 = 0;
|
private readonly double 实际加成 = 0;
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
public override void OnEffectGained(Character character)
|
||||||
|
@ -9,6 +9,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
|||||||
public override string Name => "力量加成";
|
public override string Name => "力量加成";
|
||||||
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(实际加成):0.##} 点力量。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(实际加成):0.##} 点力量。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
||||||
public override EffectType EffectType => EffectType.Item;
|
public override EffectType EffectType => EffectType.Item;
|
||||||
|
public double Value => 实际加成;
|
||||||
|
|
||||||
private readonly double 实际加成 = 0;
|
private readonly double 实际加成 = 0;
|
||||||
|
|
||||||
|
@ -9,7 +9,8 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
|||||||
public override string Name => "力量加成";
|
public override string Name => "力量加成";
|
||||||
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(加成比例) * 100:0.##}% [ {Math.Abs(实际加成):0.##} ] 点力量。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(加成比例) * 100:0.##}% [ {Math.Abs(实际加成):0.##} ] 点力量。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
||||||
public override EffectType EffectType => EffectType.Item;
|
public override EffectType EffectType => EffectType.Item;
|
||||||
|
public double Value => 实际加成;
|
||||||
|
|
||||||
private readonly double 加成比例 = 0;
|
private readonly double 加成比例 = 0;
|
||||||
private double 实际加成 = 0;
|
private double 实际加成 = 0;
|
||||||
|
|
||||||
|
@ -9,7 +9,8 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
|||||||
public override string Name => "魔法穿透加成";
|
public override string Name => "魔法穿透加成";
|
||||||
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(实际加成) * 100:0.##}% 魔法穿透。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(实际加成) * 100:0.##}% 魔法穿透。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
||||||
public override EffectType EffectType => EffectType.Item;
|
public override EffectType EffectType => EffectType.Item;
|
||||||
|
public double Value => 实际加成;
|
||||||
|
|
||||||
private readonly double 实际加成 = 0;
|
private readonly double 实际加成 = 0;
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
public override void OnEffectGained(Character character)
|
||||||
|
@ -9,7 +9,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
|||||||
public override string Name => Skill.Name;
|
public override string Name => Skill.Name;
|
||||||
public override string Description => $"减少角色的普通攻击 {实际硬直时间减少:0.##} 硬直时间。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
public override string Description => $"减少角色的普通攻击 {实际硬直时间减少:0.##} 硬直时间。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
||||||
public override EffectType EffectType => EffectType.Item;
|
public override EffectType EffectType => EffectType.Item;
|
||||||
|
|
||||||
private readonly double 实际硬直时间减少 = 0;
|
private readonly double 实际硬直时间减少 = 0;
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
public override void OnEffectGained(Character character)
|
||||||
|
@ -9,7 +9,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
|||||||
public override string Name => Skill.Name;
|
public override string Name => Skill.Name;
|
||||||
public override string Description => $"减少角色的普通攻击 {减少比例 * 100:0.##}% 硬直时间。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
public override string Description => $"减少角色的普通攻击 {减少比例 * 100:0.##}% 硬直时间。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
||||||
public override EffectType EffectType => EffectType.Item;
|
public override EffectType EffectType => EffectType.Item;
|
||||||
|
|
||||||
private readonly double 减少比例 = 0;
|
private readonly double 减少比例 = 0;
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
public override void OnEffectGained(Character character)
|
||||||
|
@ -9,7 +9,8 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
|||||||
public override string Name => "物理穿透加成";
|
public override string Name => "物理穿透加成";
|
||||||
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(实际加成) * 100:0.##}% 物理穿透。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(实际加成) * 100:0.##}% 物理穿透。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
||||||
public override EffectType EffectType => EffectType.Item;
|
public override EffectType EffectType => EffectType.Item;
|
||||||
|
public double Value => 实际加成;
|
||||||
|
|
||||||
private readonly double 实际加成 = 0;
|
private readonly double 实际加成 = 0;
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
public override void OnEffectGained(Character character)
|
||||||
|
@ -9,7 +9,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
|||||||
public override string Name => Skill.Name;
|
public override string Name => Skill.Name;
|
||||||
public override string Description => $"减少角色的所有主动技能 {实际硬直时间减少:0.##} 硬直时间。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
public override string Description => $"减少角色的所有主动技能 {实际硬直时间减少:0.##} 硬直时间。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
|
||||||
public override EffectType EffectType => EffectType.Item;
|
public override EffectType EffectType => EffectType.Item;
|
||||||
|
|
||||||
private readonly double 实际硬直时间减少 = 0;
|
private readonly double 实际硬直时间减少 = 0;
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
public override void OnEffectGained(Character character)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user