fix:修复迁移商店时的一些小问题;修复装备数值未正确迁移的问题
This commit is contained in:
parent
a96b7ad67e
commit
98693412f1
@ -192,7 +192,9 @@ namespace H5MotaUpdate.ViewModels
|
|||||||
shopId = shop["id"].ToString(),
|
shopId = shop["id"].ToString(),
|
||||||
flagName_Time = "flag:" + shopId + "_times"; // 新设的购买次数变量flag:xxx
|
flagName_Time = "flag:" + shopId + "_times"; // 新设的购买次数变量flag:xxx
|
||||||
string priceStr = shopNeed.Replace("times", flagName_Time); //商店价格字符串,用新变量名取代times
|
string priceStr = shopNeed.Replace("times", flagName_Time); //商店价格字符串,用新变量名取代times
|
||||||
|
|
||||||
shop["text"] = StringUtils.ReplaceInBetweenCurlyBraces(shopText, "times", flagName_Time);
|
shop["text"] = StringUtils.ReplaceInBetweenCurlyBraces(shopText, "times", flagName_Time);
|
||||||
|
shop["text"] = StringUtils.ReplaceInBetweenCurlyBraces(shopText, "need", priceStr);
|
||||||
shop["disablePreview"] = false;
|
shop["disablePreview"] = false;
|
||||||
|
|
||||||
if (use == "experience")
|
if (use == "experience")
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using Newtonsoft.Json.Linq;
|
using H5MotaUpdate.ViewModels.Utils;
|
||||||
|
using Newtonsoft.Json.Linq;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
|
||||||
@ -92,6 +93,12 @@ namespace H5MotaUpdate.ViewModels
|
|||||||
|
|
||||||
// 设置每张地图的尺寸。如果自己有就用自己的,否则设为默认长宽。
|
// 设置每张地图的尺寸。如果自己有就用自己的,否则设为默认长宽。
|
||||||
|
|
||||||
|
foreach (JProperty posEvent in jsonObject["events"])
|
||||||
|
{
|
||||||
|
JToken posEventValue = posEvent.Value;
|
||||||
|
MotaEventParser.parseMotaEvent(posEventValue);
|
||||||
|
}
|
||||||
|
|
||||||
int width, height;
|
int width, height;
|
||||||
|
|
||||||
if (jsonObject["width"] != null && jsonObject["width"].Type == JTokenType.Integer)
|
if (jsonObject["width"] != null && jsonObject["width"].Type == JTokenType.Integer)
|
||||||
@ -145,7 +152,7 @@ namespace H5MotaUpdate.ViewModels
|
|||||||
jsonObject["images"] = new JArray(newImages);
|
jsonObject["images"] = new JArray(newImages);
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region
|
#region 滑冰转移到背景层
|
||||||
JArray mapMatrix = (JArray)jsonObject["map"];
|
JArray mapMatrix = (JArray)jsonObject["map"];
|
||||||
JArray zeroBgMatrix = StringUtils.CreateMatrix(width, height);
|
JArray zeroBgMatrix = StringUtils.CreateMatrix(width, height);
|
||||||
for (int i = 0; i < mapMatrix.Count; i++)
|
for (int i = 0; i < mapMatrix.Count; i++)
|
||||||
|
@ -89,11 +89,37 @@ namespace H5MotaUpdate.ViewModels
|
|||||||
{
|
{
|
||||||
string key = prop.Name;
|
string key = prop.Name;
|
||||||
JObject perData = (JObject)prop.Value;
|
JObject perData = (JObject)prop.Value;
|
||||||
if (perData["cls"].ToString() == "keys")
|
|
||||||
|
if (perData["cls"]?.ToString() == "keys")
|
||||||
{
|
{
|
||||||
perData["cls"] = "tools";
|
perData["cls"] = "tools";
|
||||||
perData["hideInToolbox"] = true;
|
perData["hideInToolbox"] = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (perData["cls"]?.ToString() == "equips")
|
||||||
|
{
|
||||||
|
JObject equipValue = (JObject)perData["equip"];
|
||||||
|
|
||||||
|
if (equipValue != null)
|
||||||
|
{
|
||||||
|
JObject valueObj = new JObject();
|
||||||
|
|
||||||
|
// 装备属性的名字
|
||||||
|
string[] keysToMove = { "atk", "def", "mdef", "hp" };
|
||||||
|
|
||||||
|
foreach (string keyToMove in keysToMove)
|
||||||
|
{
|
||||||
|
if (equipValue.ContainsKey(keyToMove))
|
||||||
|
{
|
||||||
|
JToken val = equipValue[keyToMove];
|
||||||
|
valueObj[keyToMove] = val;
|
||||||
|
equipValue.Remove(keyToMove);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
equipValue["value"] = valueObj;
|
||||||
|
perData["equip"] = equipValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (newItemDatas.ContainsKey("snow"))
|
if (newItemDatas.ContainsKey("snow"))
|
||||||
{
|
{
|
||||||
|
50
ViewModels/Utils/MotaEventParser.cs
Normal file
50
ViewModels/Utils/MotaEventParser.cs
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
using Newtonsoft.Json.Linq;
|
||||||
|
|
||||||
|
namespace H5MotaUpdate.ViewModels.Utils
|
||||||
|
{
|
||||||
|
internal static class MotaEventParser
|
||||||
|
{
|
||||||
|
public static void parseOneMotaEvent(JObject motaEvent)
|
||||||
|
{
|
||||||
|
// 如果type为openShop,添加一个open:true的键
|
||||||
|
if (motaEvent["type"] is JValue typeValue && typeValue.Value is string typeString && typeString == "openShop")
|
||||||
|
{
|
||||||
|
motaEvent["open"] = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void parseMotaEventArr(JArray motaEventArr)
|
||||||
|
{
|
||||||
|
foreach (JToken motaEventToken in motaEventArr)
|
||||||
|
{
|
||||||
|
// 只处理对象事件 字符串不计
|
||||||
|
if (motaEventToken.Type == JTokenType.Object)
|
||||||
|
{
|
||||||
|
JObject motaEvent = (JObject)motaEventToken;
|
||||||
|
parseOneMotaEvent(motaEvent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void parseMotaEvent(JToken motaEvent)
|
||||||
|
{
|
||||||
|
if (motaEvent is JArray motaEventArr)
|
||||||
|
{
|
||||||
|
parseMotaEventArr(motaEventArr);
|
||||||
|
}
|
||||||
|
else if (motaEvent is JObject motaEventObj)
|
||||||
|
{ // 说明有覆盖触发器等,data中才是真正的事件
|
||||||
|
if (motaEvent["data"] is JArray dataArr)
|
||||||
|
{
|
||||||
|
parseMotaEventArr(dataArr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -50,7 +50,7 @@ namespace H5MotaUpdate.ViewModels
|
|||||||
// 获取匹配的内容,去掉 ${ 和 }
|
// 获取匹配的内容,去掉 ${ 和 }
|
||||||
string content = match.Groups[1].Value;
|
string content = match.Groups[1].Value;
|
||||||
// 在匹配的内容中替换 oldWord 为 newWord
|
// 在匹配的内容中替换 oldWord 为 newWord
|
||||||
string modifiedContent = content.Replace(oldWord, newWord);
|
string modifiedContent = "(" + content.Replace(oldWord, newWord) + ")";
|
||||||
// 返回替换后的完整匹配字符串,包含 ${ 和 }
|
// 返回替换后的完整匹配字符串,包含 ${ 和 }
|
||||||
return "${" + modifiedContent + "}";
|
return "${" + modifiedContent + "}";
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user