Browse Source

Merge pull request '0928锻造' (#203) from dev45-0926 into dev45-0703NewVer

Reviewed-on: #203
pull/204/head
45 3 months ago
parent
commit
86936f5c89
  1. 27
      ColorlessWorld-2024-4-2/Assets/Plugins/Microsoft.CSharp.dll.meta
  2. 7377
      ColorlessWorld-2024-4-2/Assets/Scenes/ForgingPoint.unity
  3. 70
      ColorlessWorld-2024-4-2/Assets/Scripts/ForgingPoint/ConditionOrResultSelectedNode.cs
  4. 11
      ColorlessWorld-2024-4-2/Assets/Scripts/ForgingPoint/ConditionOrResultSelectedNode.cs.meta
  5. 85
      ColorlessWorld-2024-4-2/Assets/Scripts/ForgingPoint/ForgintPointManager.cs
  6. 4
      ColorlessWorld-2024-4-2/Assets/Scripts/Weapon/WeaponManager.cs

27
ColorlessWorld-2024-4-2/Assets/Plugins/Microsoft.CSharp.dll.meta

@ -1,27 +0,0 @@
fileFormatVersion: 2
guid: a94cf6fef2879da4c91e5ef768aadf4e
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
userData:
assetBundleName:
assetBundleVariant:

7377
ColorlessWorld-2024-4-2/Assets/Scenes/ForgingPoint.unity

File diff suppressed because it is too large

70
ColorlessWorld-2024-4-2/Assets/Scripts/ForgingPoint/ConditionOrResultSelectedNode.cs

@ -0,0 +1,70 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;
using Match = System.Text.RegularExpressions.Match;
using System.Text.RegularExpressions;
using UnityEngine.UI;
public class ConditionOrResultSelectedNode : MonoBehaviour
{
public WeaponNodeDataPair weaponNodeDataPair;
public bool isResult;//是否是结果,否代表是条件
[Header("ui表示")]
public GameObject nomarlInforPanel;
public TMP_Text inforText;
public GameObject gemImageInforPanel;
public Image gemImage;
public void SetUpNode()
{
WeaponNode currentWeaponNode = ForgintPointManager.Instance.selectWeaponNode;
if(isResult ==false )
{
if (weaponNodeDataPair .nodesColor .Length ==0)
{
nomarlInforPanel .SetActive(true);
gemImageInforPanel.SetActive(false);
if(weaponNodeDataPair.description.Length !=0)
{
inforText.text = weaponNodeDataPair.description;
}
else
{
inforText.text = weaponNodeDataPair.conditionOrResult;
}
}
else
{
nomarlInforPanel.SetActive(false);
gemImageInforPanel.SetActive(true);
gemImage.sprite = CardManager.Instance.createGemImageByToolX(weaponNodeDataPair.nodesMark, weaponNodeDataPair.nodesColor);
}
}
else
{
nomarlInforPanel.SetActive(true);
gemImageInforPanel.SetActive(false);
if (weaponNodeDataPair.description.Length != 0)
{
inforText.text = weaponNodeDataPair.description;
}
else
{
inforText.text = weaponNodeDataPair.conditionOrResult;
}
}
}
public void ConfirmConditionOrResult()
{
if(weaponNodeDataPair !=null )
{
ForgintPointManager.Instance.GenerateNewWeaponNode(this);
}
}
}

11
ColorlessWorld-2024-4-2/Assets/Scripts/ForgingPoint/ConditionOrResultSelectedNode.cs.meta

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: b4d3a42ce53d1494c893d227625ec215
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

85
ColorlessWorld-2024-4-2/Assets/Scripts/ForgingPoint/ForgintPointManager.cs

@ -84,6 +84,12 @@ public class ForgintPointManager : Singleton<ForgintPointManager>
public Image weaponNodeForgingConditionGemImage;//锻造附魔界面条件领域
public TMP_Text weaponNodeForgingResaultText;//锻造附魔界面结果按钮
public List <GameObject > weaponNodeForgingEffectSlotList = new List<GameObject > ();//词条刷新区域
public WeaponNode selectWeaponNode;//被选中的附魔
string selectWeaponNodeConditionLevel;
string selectWeaponNodeResultLevel;
public List<ConditionOrResultSelectedNode> conditionOrResultSelectedNodeList = new List<ConditionOrResultSelectedNode>();//刷新出来的附魔词条载体
public bool firstConditionRefresh;//第一次点击条件会刷新三个词条
public bool firstResultRefresh;
private void Start()
{
@ -681,6 +687,10 @@ public class ForgintPointManager : Singleton<ForgintPointManager>
//进入附魔锻造界面
public void EnterWeaponNodeForging(WeaponNode currentWeaponNode,bool isGemImage)
{
selectWeaponNode = currentWeaponNode;
selectWeaponNodeConditionLevel = WeaponManager.Instance.getWeaponNodeConditionRarity(selectWeaponNode.condition, selectWeaponNode.conditionValue, selectWeaponNode.nodesColor);
selectWeaponNodeResultLevel = WeaponManager.Instance.getWeaponNodeResultRarity(selectWeaponNode.condition, selectWeaponNode.conditionValue);
weaponNodeForgingPanel.SetActive(true);
weaponNodeForgingImage.sprite = currentWeaponNode.nodeImage.sprite;//锻造附魔界面图片
@ -713,6 +723,73 @@ public class ForgintPointManager : Singleton<ForgintPointManager>
weaponNodeForgingConditionGemImage.sprite = currentWeaponNode.gemImageIcon.sprite;
weaponNodeForgingResaultText.text = currentWeaponNode.resultDescription;
}
for (int i = 0; i < conditionOrResultSelectedNodeList.Count; i++)
{
conditionOrResultSelectedNodeList[i].weaponNodeDataPair = null;
conditionOrResultSelectedNodeList[i].nomarlInforPanel.SetActive(false);
conditionOrResultSelectedNodeList[i].gemImageInforPanel.SetActive(false);
}
}
//刷新条件
public void RefreshNewCondition()
{
for(int i=0;i< conditionOrResultSelectedNodeList .Count;i++)
{
string newlevel = WeaponManager.Instance.getRarityWithLevelDiff(selectWeaponNodeConditionLevel, 1);
conditionOrResultSelectedNodeList[i].weaponNodeDataPair = WeaponManager.Instance.getRandomConditionWithLevel(newlevel);
conditionOrResultSelectedNodeList[i].isResult = false;
conditionOrResultSelectedNodeList[i].SetUpNode();
}
}
//刷新结果
public void RefreshNewReslut()
{
for (int i = 0; i < conditionOrResultSelectedNodeList.Count; i++)
{
string newlevel = WeaponManager.Instance.getRarityWithLevelDiff(selectWeaponNodeConditionLevel, 1);
conditionOrResultSelectedNodeList[i].weaponNodeDataPair = WeaponManager.Instance.getRandomResultWithLevel(newlevel);
conditionOrResultSelectedNodeList[i].isResult = true;
conditionOrResultSelectedNodeList[i].SetUpNode();
}
}
//刷新结果或者条件
public void RefreshNewConditionOrRefreshNewReslut(ConditionOrResultSelectedNode conditionOrResult)
{
if(conditionOrResult.isResult ==false )
{
RefreshNewCondition();
}
else
{
RefreshNewReslut();
}
}
//将选中的条件覆写新的附魔
public void GenerateNewWeaponNode(ConditionOrResultSelectedNode conditionOrResult )
{
if(conditionOrResult.isResult ==false )
{
selectWeaponNode.condition = conditionOrResult.weaponNodeDataPair.conditionOrResult;
selectWeaponNode.conditionDescription = conditionOrResult.weaponNodeDataPair.description;
selectWeaponNode.nodesColor = conditionOrResult.weaponNodeDataPair.nodesColor;
selectWeaponNode.nodesMark = conditionOrResult.weaponNodeDataPair.nodesMark;
selectWeaponNode.gemImageIcon.sprite = conditionOrResult.gemImage.sprite;
}
else
{
selectWeaponNode.result = conditionOrResult.weaponNodeDataPair.conditionOrResult;
selectWeaponNode.resultDescription = conditionOrResult.weaponNodeDataPair.description;
}
selectWeaponNode.SetUpInforText();
selectWeaponNode.SetUpBagNode();
RefreshWeaponNodePreview();
weaponNodeForgingPanel.SetActive(false);
}
//刷新附魔的锻造预览
@ -729,7 +806,7 @@ public class ForgintPointManager : Singleton<ForgintPointManager>
int count = weaponNodeForgingNodeFather.childCount;
for (int i = 0; i < count; i++)
{
Destroy(weaponNodeForgingNodeFather.GetChild(0).gameObject);
DestroyImmediate(weaponNodeForgingNodeFather.GetChild(0).gameObject);
}
//将读取到的数据重新生成
@ -739,4 +816,10 @@ public class ForgintPointManager : Singleton<ForgintPointManager>
weaponNodeForgingNode.GetComponent<WeaponNodeForging>().RegisterWeaponNodeForging(weaponNodeInBagList[i]);
}
}
//获得一个附魔
public void GetWeaponNode()
{
BagManager.Instance.GetWeaponNodeToBag(WeaponManager.Instance.getRandomWeaponNodeForPlayer());
}
}

4
ColorlessWorld-2024-4-2/Assets/Scripts/Weapon/WeaponManager.cs

@ -1148,8 +1148,8 @@ public class WeaponManager : Singleton<WeaponManager>
string firstPart = match.Groups[1].Value; // 第一部分
string op = match.Groups[2].Value; // 运算符部分
string secondPart = match.Groups[3].Value; // 第二部分
int firstPartCount = CardManager.Instance.evaluateExpression(firstPart);
int secondPartCount = CardManager.Instance.evaluateExpression(secondPart);
// int firstPartCount = CardManager.Instance.evaluateExpression(firstPart);
// int secondPartCount = CardManager.Instance.evaluateExpression(secondPart);
foreach (KeyValuePair<string, HashSet<string>> kvp in cardConditionPatternDict)
{
if (kvp.Value.Contains(secondPart))

Loading…
Cancel
Save