mirror of
https://github.com/oshima-studios/OshimaGameModule.git
synced 2025-04-23 04:19:36 +08:00
添加探索地区(1)
This commit is contained in:
parent
24084b4740
commit
ee03383008
@ -31,19 +31,19 @@ namespace Oshima.FunGame.OshimaModules.Regions
|
||||
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(i => i.Name + ":" + i.Description + "\"" + i.BackgroundStory + "\"")));
|
||||
}
|
||||
|
||||
builder.AppendLine($"探索难度:{CharacterSet.GetRarityTypeName(Difficulty)}");
|
||||
|
@ -11,6 +11,7 @@ namespace Oshima.FunGame.OshimaServers.Service
|
||||
public const long CustomCharacterId = -1;
|
||||
public const int ItemsPerPage1 = 6;
|
||||
public const int ItemsPerPage2 = 10;
|
||||
public const int ExploreTime = 2;
|
||||
public static List<Character> Characters { get; } = [];
|
||||
public static List<Skill> Skills { get; } = [];
|
||||
public static List<Skill> PassiveSkills { get; } = [];
|
||||
@ -19,6 +20,7 @@ namespace Oshima.FunGame.OshimaServers.Service
|
||||
public static List<Item> Equipment { get; } = [];
|
||||
public static List<Item> Items { get; } = [];
|
||||
public static List<Item> DrawCardItems { get; } = [];
|
||||
public static Dictionary<OshimaRegion, List<Item>> ExploreItems { get; } = [];
|
||||
public static List<Skill> ItemSkills { get; } = [];
|
||||
public static List<Item> AllItems { get; } = [];
|
||||
public static List<Skill> AllSkills { get; } = [];
|
||||
@ -374,23 +376,23 @@ namespace Oshima.FunGame.OshimaServers.Service
|
||||
{
|
||||
{
|
||||
"星银警戒协议·弎级响应",
|
||||
"星银合金守卫在悖论引擎周边暴走,形成包围核心区的杀戮矩阵,必须在三刻钟内解除警戒协议"
|
||||
"星银合金守卫在悖论引擎周边暴走,形成包围核心区的杀戮矩阵,必须在三刻钟内解除警戒协议。"
|
||||
},
|
||||
{
|
||||
"音律囚笼突破作战",
|
||||
"苏醒的旋律古龙释放出高频震波,将精灵们困在水晶共振牢笼中,需在下次地貌重组前切断声波共鸣节点"
|
||||
"苏醒的旋律古龙释放出高频震波,将精灵们困在水晶共振牢笼中,需在下次地貌重组前切断声波共鸣节点。"
|
||||
},
|
||||
{
|
||||
"深渊火种收容危机",
|
||||
"矿道底层的深渊火钻因元素污染进入链式裂变,引发全矿道魔能过载,立即部署熵减力场遏制反应"
|
||||
"矿道底层的深渊火钻因元素污染进入链式裂变,引发全矿道魔能过载,立即部署熵减力场遏制反应。"
|
||||
},
|
||||
{
|
||||
"时霜逆流救援行动",
|
||||
"科研小组被困在加速百倍的时间泡内,其肉体正以肉眼可见的速度衰老,必须校准哨塔时钟恢复时间流速"
|
||||
"科研小组被困在加速百倍的时间泡内,其肉体正以肉眼可见的速度衰老,必须校准哨塔时钟恢复时间流速。"
|
||||
},
|
||||
{
|
||||
"镜像侵蚀净化指令",
|
||||
"镜像守卫突破湖面屏障入侵现实维度,携带的认知病毒正在改写物理法则,启动银辉城防卫协议实施净化"
|
||||
"镜像守卫突破湖面屏障入侵现实维度,携带的认知病毒正在改写物理法则,启动银辉城防卫协议实施净化。"
|
||||
},
|
||||
{
|
||||
"雷霆风暴紧急预警",
|
||||
@ -458,83 +460,83 @@ namespace Oshima.FunGame.OshimaServers.Service
|
||||
{
|
||||
{
|
||||
"月光萃取计划",
|
||||
"在星银合金建筑的沟壑中采集 {0} 份液态月光(注意避开月光洪流的高潮时段/每夜丑时三刻)。"
|
||||
"前往【银辉城】,在星银合金建筑的沟壑中采集 {0} 份液态月光(注意避开月光洪流的高潮时段/每夜丑时三刻)。"
|
||||
},
|
||||
{
|
||||
"灵脉汁液采收行动",
|
||||
"使用抗腐蚀容器收集 {0} 份瑟兰薇歌林海的荧蓝汁液(树木自卫系统激活时汁液会转化为神经毒素)。"
|
||||
"使用抗腐蚀容器收集 {0} 份【瑟兰薇歌林海】的荧蓝汁液(树木自卫系统激活时汁液会转化为神经毒素)。"
|
||||
},
|
||||
{
|
||||
"火钻精炼协议",
|
||||
"在矿工灵魂烙印的指引下获取 {0} 颗深渊火钻(未烙印者触碰火钻将引发元素爆燃)。"
|
||||
"在【赫菲斯托斯之喉】矿工灵魂烙印的指引下获取 {0} 颗深渊火钻(未烙印者触碰火钻将引发元素爆燃)。"
|
||||
},
|
||||
{
|
||||
"时霜逆向工程",
|
||||
"通过时间镜像收集 {0} 份不同历史断片的时霜药剂样本(注意时空回响对记忆的覆盖效应)。"
|
||||
"通过时间镜像收集 {0} 份来自【永霜裂痕】不同历史断片的时霜药剂样本(注意时空回响对记忆的覆盖效应)。"
|
||||
},
|
||||
{
|
||||
"瞳孔密钥重构计划",
|
||||
"从 {0} 个瞳孔状传送门提取量子纠缠碎片(每个采集点需保持镜像对称操作以避免维度塌缩)。"
|
||||
"前往【千瞳镜湖】,从 {0} 个瞳孔状传送门提取量子纠缠碎片(每个采集点需保持镜像对称操作以避免维度塌缩)。"
|
||||
},
|
||||
{
|
||||
"泰坦符文拓印",
|
||||
"在雷霆王座山脉的裁决尖碑上拓印 {0} 份不同的泰坦符文(注意避开雷暴时段/每逢子时)。"
|
||||
"在【雷霆王座山脉】的裁决尖碑上拓印 {0} 份不同的泰坦符文(注意避开雷暴时段/每逢子时)。"
|
||||
},
|
||||
{
|
||||
"时间碎片收集",
|
||||
"在流沙时计荒漠的昨日之城中收集 {0} 份不同的时间碎片(注意时间碎片会随机重组)。"
|
||||
"在【流沙时计荒漠】的昨日之城中收集 {0} 份不同的时间碎片(注意时间碎片会随机重组)。"
|
||||
},
|
||||
{
|
||||
"共生母体样本采集",
|
||||
"从腐萤沼渊的共生母体上采集 {0} 份不同的菌类样本(注意菌类会释放麻痹毒素)。"
|
||||
"从【腐萤沼渊】的共生母体上采集 {0} 份不同的菌类样本(注意菌类会释放麻痹毒素)。"
|
||||
},
|
||||
{
|
||||
"星锚能量校准",
|
||||
"在苍穹碎屿的星锚之地校准 {0} 个不同的引雷柱(注意引雷柱会释放高压电流)。"
|
||||
"在【苍穹碎屿】的星锚之地校准 {0} 个不同的引雷柱(注意引雷柱会释放高压电流)。"
|
||||
},
|
||||
{
|
||||
"改造逆转实验",
|
||||
"在齿与血回廊的造物车间进行 {0} 次不同的改造逆转实验(注意改造实验会引发身体异变)。"
|
||||
"在【齿与血回廊】的造物车间进行 {0} 次不同的改造逆转实验(注意改造实验会引发身体异变)。"
|
||||
},
|
||||
{
|
||||
"星辉水母观测记录",
|
||||
"在穹顶之泪湖记录 {0} 次星辉水母重构水体重力法则的完整过程(注意水母重构时会产生重力波动)。"
|
||||
"在【穹顶之泪湖】记录 {0} 次星辉水母重构水体重力法则的完整过程(注意水母重构时会产生重力波动)。"
|
||||
},
|
||||
{
|
||||
"构装巨龙残骸分析",
|
||||
"在齿轮坟场分析 {0} 个不同的构装巨龙残骸(注意残骸可能带有自毁装置)。"
|
||||
"在【齿轮坟场】分析 {0} 个不同的构装巨龙残骸(注意残骸可能带有自毁装置)。"
|
||||
},
|
||||
{
|
||||
"亡者记忆提取",
|
||||
"在回音棱镜林提取 {0} 份不同的亡者记忆(注意记忆提取会引发共感)。"
|
||||
"在【回音棱镜林】提取 {0} 份不同的亡者记忆(注意记忆提取会引发共感)。"
|
||||
},
|
||||
{
|
||||
"活体金属苔藓培养",
|
||||
"在永燃坩埚培养 {0} 份不同的活体金属苔藓样本(注意苔藓会吸收金属)。"
|
||||
"在【永燃坩埚】培养 {0} 份不同的活体金属苔藓样本(注意苔藓会吸收金属)。"
|
||||
},
|
||||
{
|
||||
"幽灵船能量分析",
|
||||
"在骨桥深渊收集 {0} 份幽灵船的能量波动数据(注意幽灵船会释放虚空能量)。"
|
||||
"在【骨桥深渊】收集 {0} 份幽灵船的能量波动数据(注意幽灵船会释放虚空能量)。"
|
||||
},
|
||||
{
|
||||
"时凝液提纯",
|
||||
"在时漏沙漠提纯 {0} 份时凝液(注意时凝液会加速时间流速)。"
|
||||
"在【时漏沙漠】提纯 {0} 份时凝液(注意时凝液会加速时间流速)。"
|
||||
},
|
||||
{
|
||||
"蜜蜡编码破解",
|
||||
"在脉轮圣树破解 {0} 份不同的蜜蜡编码(注意编码会引发精神干扰)。"
|
||||
"在【脉轮圣树】破解 {0} 份不同的蜜蜡编码(注意编码会引发精神干扰)。"
|
||||
},
|
||||
{
|
||||
"神经宝石能量分析",
|
||||
"在悲鸣矿脉分析 {0} 份不同的神经宝石能量(注意宝石会引发山体剧痛)。"
|
||||
"在【悲鸣矿脉】分析 {0} 份不同的神经宝石能量(注意宝石会引发山体剧痛)。"
|
||||
},
|
||||
{
|
||||
"湮灭边界观察",
|
||||
"在双生月崖观察 {0} 次不同的湮灭边界现象(注意湮灭边界会吞噬物质)。"
|
||||
"在【双生月崖】观察 {0} 次不同的湮灭边界现象(注意湮灭边界会吞噬物质)。"
|
||||
},
|
||||
{
|
||||
"梦境碎片分析",
|
||||
"在谵妄海市分析 {0} 份不同的梦境碎片(注意梦境碎片会引发幻觉)。"
|
||||
"在【谵妄海市】分析 {0} 份不同的梦境碎片(注意梦境碎片会引发幻觉)。"
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -55,11 +55,14 @@ namespace Oshima.FunGame.OshimaServers.Service
|
||||
|
||||
foreach (OshimaRegion region in FunGameConstant.Regions)
|
||||
{
|
||||
FunGameConstant.AllItems.AddRange(region.Crops.Select(i => i.Copy()));
|
||||
List<Item> items = [.. region.Crops.Select(i => i.Copy())];
|
||||
FunGameConstant.ExploreItems.Add(region, items);
|
||||
}
|
||||
|
||||
FunGameConstant.DrawCardItems.AddRange(FunGameConstant.AllItems.Where(i => !FunGameConstant.ItemCanNotDrawCard.Contains(i.ItemType)));
|
||||
|
||||
FunGameConstant.AllItems.AddRange(FunGameConstant.ExploreItems.Values.SelectMany(list => list));
|
||||
|
||||
Skill?[] activeSkills = [.. FunGameConstant.Equipment.Select(i => i.Skills.Active), .. FunGameConstant.Items.Select(i => i.Skills.Active)];
|
||||
foreach (Skill? skill in activeSkills)
|
||||
{
|
||||
@ -376,6 +379,7 @@ namespace Oshima.FunGame.OshimaServers.Service
|
||||
FunGameConstant.PassiveSkills.Clear();
|
||||
FunGameConstant.Magics.Clear();
|
||||
FunGameConstant.DrawCardItems.Clear();
|
||||
FunGameConstant.ExploreItems.Clear();
|
||||
FunGameConstant.AllItems.Clear();
|
||||
FunGameConstant.ItemSkills.Clear();
|
||||
FunGameConstant.AllSkills.Clear();
|
||||
|
@ -5095,8 +5095,13 @@ namespace Oshima.FunGame.WebAPI.Controllers
|
||||
regions.Add($"世界地图:");
|
||||
for (int i = 0; i < FunGameConstant.Regions.Count; i++)
|
||||
{
|
||||
Region region = FunGameConstant.Regions[i];
|
||||
regions.Add($"{region.Id}. {region.Name}");
|
||||
OshimaRegion region = FunGameConstant.Regions[i];
|
||||
List<Item> crops = [];
|
||||
if (FunGameConstant.ExploreItems.TryGetValue(region, out List<Item>? list) && list != null)
|
||||
{
|
||||
crops = list;
|
||||
}
|
||||
regions.Add($"{region.Id}. {region.Name}" + (crops.Count > 0 ? "(作物:" + string.Join(",", crops.Select(i => i.Name)) + ")" : ""));
|
||||
}
|
||||
regions.Add($"提示:使用【查地区+序号】指令来查看指定地区的信息。");
|
||||
}
|
||||
@ -5107,6 +5112,41 @@ namespace Oshima.FunGame.WebAPI.Controllers
|
||||
return regions;
|
||||
}
|
||||
|
||||
[HttpPost("exploreregion")]
|
||||
public string ExploreRegion([FromQuery] long? uid = null, [FromQuery] int? id = null)
|
||||
{
|
||||
long userid = uid ?? Convert.ToInt64("10" + Verification.CreateVerifyCode(VerifyCodeType.NumberVerifyCode, 11));
|
||||
int regionid = id ?? 0;
|
||||
|
||||
PluginConfig pc = new("saved", userid.ToString());
|
||||
pc.LoadConfig();
|
||||
|
||||
string msg = "";
|
||||
if (pc.Count > 0)
|
||||
{
|
||||
User user = FunGameService.GetUser(pc);
|
||||
|
||||
if (regionid > 0 && regionid <= FunGameConstant.Regions.Count && FunGameConstant.Regions.FirstOrDefault(r => r.Id == regionid) is OshimaRegion region)
|
||||
{
|
||||
msg = $"开始探索【{region.Name}】,探索时间:{FunGameConstant.ExploreTime} 分钟。(骗你的,其实还没做)";
|
||||
}
|
||||
else
|
||||
{
|
||||
return $"没有找到与这个序号相对应的地区!";
|
||||
}
|
||||
|
||||
user.LastTime = DateTime.Now;
|
||||
pc.Add("user", user);
|
||||
pc.SaveConfig();
|
||||
|
||||
return msg;
|
||||
}
|
||||
else
|
||||
{
|
||||
return noSaved;
|
||||
}
|
||||
}
|
||||
|
||||
[HttpGet("reload")]
|
||||
public string Relaod([FromQuery] long? master = null)
|
||||
{
|
||||
|
@ -1982,6 +1982,31 @@ namespace Oshima.FunGame.WebAPI.Services
|
||||
return result;
|
||||
}
|
||||
|
||||
if (e.Detail == "世界地图")
|
||||
{
|
||||
List<string> msgs = Controller.GetRegion();
|
||||
if (msgs.Count > 0)
|
||||
{
|
||||
await SendAsync(e, "世界地图", string.Join("\r\n", msgs));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
if (e.Detail.StartsWith("探索", StringComparison.CurrentCultureIgnoreCase) || e.Detail.StartsWith("前往", StringComparison.CurrentCultureIgnoreCase))
|
||||
{
|
||||
string detail = e.Detail.Replace("探索", "").Replace("前往", "").Trim();
|
||||
string msg = "";
|
||||
if (int.TryParse(detail, out int cid))
|
||||
{
|
||||
msg = Controller.ExploreRegion(cid);
|
||||
if (msg.Trim() != "")
|
||||
{
|
||||
await SendAsync(e, "探索", msg);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
if (uid == GeneralSettings.Master && e.Detail.StartsWith("重载FunGame", StringComparison.CurrentCultureIgnoreCase))
|
||||
{
|
||||
string msg = NetworkUtility.JsonDeserialize<string>(Controller.Relaod(uid)) ?? "";
|
||||
|
Loading…
x
Reference in New Issue
Block a user