mirror of
https://github.com/project-redbud/FunGame-Core.git
synced 2025-12-05 00:06:02 +00:00
修复游戏结束偶现的崩溃问题;修复物品没有复制 Others 字典的问题;地区新增掉落物绑定
This commit is contained in:
parent
0a1bb0b2a5
commit
b5a12ad18d
@ -650,6 +650,10 @@ namespace Milimoe.FunGame.Core.Entity
|
||||
item.Skills.Magics.Add(newskill);
|
||||
}
|
||||
}
|
||||
foreach (string key in itemDefined.Others.Keys)
|
||||
{
|
||||
item.Others[key] = itemDefined.Others[key];
|
||||
}
|
||||
return item;
|
||||
}
|
||||
|
||||
|
||||
@ -11,6 +11,7 @@ namespace Milimoe.FunGame.Core.Entity
|
||||
public HashSet<Character> Characters { get; } = [];
|
||||
public HashSet<Unit> Units { get; } = [];
|
||||
public HashSet<Item> Crops { get; } = [];
|
||||
public HashSet<Item> Items { get; } = [];
|
||||
public string Weather { get; set; } = "";
|
||||
public int Temperature { get; set; } = 15;
|
||||
public Dictionary<string, int> Weathers { get; } = [];
|
||||
@ -53,19 +54,31 @@ namespace Milimoe.FunGame.Core.Entity
|
||||
if (Characters.Count > 0)
|
||||
{
|
||||
builder.AppendLine($"== 头目 ==");
|
||||
builder.AppendLine(string.Join(",", Characters.Select(o => o.Name)));
|
||||
builder.AppendLine(string.Join(",", Characters.Select(c => c.Name)));
|
||||
}
|
||||
|
||||
if (Units.Count > 0)
|
||||
{
|
||||
builder.AppendLine($"== 生物 ==");
|
||||
builder.AppendLine(string.Join(",", Units.Select(o => o.Name)));
|
||||
builder.AppendLine(string.Join(",", Units.Select(u => u.Name)));
|
||||
}
|
||||
|
||||
if (Crops.Count > 0)
|
||||
{
|
||||
builder.AppendLine($"== 作物 ==");
|
||||
builder.AppendLine(string.Join(",", Crops.Select(c => c.Name)));
|
||||
builder.AppendLine(string.Join(",", Crops.Select(c => c.Name + (c.Description != "" ? $":{c.Description}" : "") + (c.BackgroundStory != "" ? $"\"{c.BackgroundStory}\"" : ""))));
|
||||
}
|
||||
|
||||
if (Items.Count > 0)
|
||||
{
|
||||
builder.AppendLine($"== 掉落 ==");
|
||||
builder.AppendLine(string.Join(",", Items.Select(i =>
|
||||
{
|
||||
string itemquality = ItemSet.GetQualityTypeName(i.QualityType);
|
||||
string itemtype = ItemSet.GetItemTypeName(i.ItemType) + (i.ItemType == ItemType.Weapon && i.WeaponType != WeaponType.None ? "-" + ItemSet.GetWeaponTypeName(i.WeaponType) : "");
|
||||
if (itemtype != "") itemtype = $"|{itemtype}";
|
||||
return $"[{itemquality + itemtype}]{i.Name}";
|
||||
})));
|
||||
}
|
||||
|
||||
builder.AppendLine($"探索难度:{CharacterSet.GetRarityTypeName(Difficulty)}");
|
||||
|
||||
@ -290,6 +290,15 @@ namespace Milimoe.FunGame.Core.Model
|
||||
_original.Add(original.Guid, original);
|
||||
}
|
||||
|
||||
// 完全初始化
|
||||
foreach (Character character in _allCharacters)
|
||||
{
|
||||
// 添加统计数据
|
||||
_stats[character] = new();
|
||||
// 添加助攻对象
|
||||
_assistDetail[character] = new AssistDetail(character, _allCharacters.Where(c => c != character));
|
||||
}
|
||||
|
||||
// 获取 HP 小于等于 0 的角色
|
||||
List<Character> deadCharacters = [.. characters.Where(c => c.HP <= 0)];
|
||||
foreach (Character death in deadCharacters)
|
||||
@ -325,8 +334,6 @@ namespace Milimoe.FunGame.Core.Model
|
||||
// 如果只有一个角色,直接加入队列
|
||||
Character character = group.First();
|
||||
AddCharacter(character, Calculation.Round2Digits(_queue.Count * 0.1), false);
|
||||
_assistDetail.Add(character, new AssistDetail(character, _allCharacters.Where(c => c != character)));
|
||||
_stats.Add(character, new());
|
||||
// 初始化技能
|
||||
foreach (Skill skill in character.Skills)
|
||||
{
|
||||
@ -379,8 +386,6 @@ namespace Milimoe.FunGame.Core.Model
|
||||
if (selectedCharacter != null)
|
||||
{
|
||||
AddCharacter(selectedCharacter, Calculation.Round2Digits(_queue.Count * 0.1), false);
|
||||
_assistDetail.Add(selectedCharacter, new AssistDetail(selectedCharacter, _allCharacters.Where(c => c != selectedCharacter)));
|
||||
_stats.Add(selectedCharacter, new());
|
||||
// 初始化技能
|
||||
foreach (Skill skill in selectedCharacter.Skills)
|
||||
{
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user