Browse Source

Merge pull request '8-30修bug,意图优化' (#27) from dev-0830 into dev-0524

Reviewed-on: #27
pull/31/head
45 1 year ago
parent
commit
9d3d1371f5
  1. 2438
      ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity
  2. 11
      ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardDrag.cs
  3. 11
      ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardEntity.cs
  4. 3
      ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardSmall/CardSmall.cs
  5. 3
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/CorrosiveSludge.cs
  6. 13
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyNode.cs
  7. 53
      ColorlessWorld-2024-4-2/Assets/Scripts/EnemyPlanFunction/EnemyAction.cs
  8. 27
      ColorlessWorld-2024-4-2/Assets/Scripts/MapManager.cs
  9. 9
      ColorlessWorld-2024-4-2/Assets/Scripts/UI/EnemyPlanActionUI.cs
  10. 7
      ColorlessWorld-2024-4-2/Assets/Scripts/UI/EnemyUIBar.cs
  11. BIN
      ColorlessWorld-2024-4-2/obj/Debug/Assembly-CSharp-Editor.csproj.AssemblyReference.cache

2438
ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity

File diff suppressed because it is too large

11
ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardDrag.cs

@ -16,6 +16,9 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag
public Transform originalParent; public Transform originalParent;
public Vector3 originalpoint; public Vector3 originalpoint;
//更换父级前的排序位置
public int originalIndexInChild;
public EventSystem eventSystem; public EventSystem eventSystem;
public bool canUse = true;//决定卡牌是否可以释放 public bool canUse = true;//决定卡牌是否可以释放
bool choosed;//标识卡牌是否被选中 bool choosed;//标识卡牌是否被选中
@ -87,6 +90,7 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag
switch (dragState) switch (dragState)
{ {
case CardDragState.onBeginDrag: case CardDragState.onBeginDrag:
GameManager.Instance.onDrag = true;
if (choosed == false) if (choosed == false)
{ {
TurnMaster.Instance.playerAction = TurnMaster.PlayerAction.useCard; TurnMaster.Instance.playerAction = TurnMaster.PlayerAction.useCard;
@ -116,8 +120,7 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag
Debug.Log(result[0].gameObject.name); Debug.Log(result[0].gameObject.name);
if (result[0].gameObject == this.gameObject) if (result[0].gameObject == this.gameObject)
{ {
dragState = CardDragState.onBeginDrag; dragState = CardDragState.onBeginDrag;
GameManager.Instance.onDrag = true;
} }
} }
@ -140,6 +143,7 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag
disCardCheck(); disCardCheck();
if (!cardEntity.canUse) if (!cardEntity.canUse)
{ {
resetComponentPosition();
return; return;
} }
choosed = true; choosed = true;
@ -386,6 +390,9 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag
ainPanle.SetActive(false); ainPanle.SetActive(false);
//其他位置都归位 //其他位置都归位
transform.SetParent(originalParent); transform.SetParent(originalParent);
//归位孩子顺序
transform.SetSiblingIndex(cardOnMouseEnter.oringinIndex);
GetComponent<CanvasGroup>().blocksRaycasts = true; GetComponent<CanvasGroup>().blocksRaycasts = true;
transform.localScale = new Vector3(1f, 1f, 1f); transform.localScale = new Vector3(1f, 1f, 1f);

11
ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardEntity.cs

@ -2,12 +2,7 @@ using System;
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
using Unity.VisualScripting;
using UnityEditor.SearchService;
using UnityEngine; using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.InputSystem;
using UnityEngine.SceneManagement;
using UnityEngine.UI; using UnityEngine.UI;
public class CardEntity : MonoBehaviour public class CardEntity : MonoBehaviour
@ -40,6 +35,8 @@ public class CardEntity : MonoBehaviour
[Header("¿¨ÅÆÊͷźóЧС¿¨")] [Header("¿¨ÅÆÊͷźóЧС¿¨")]
public GameObject smallCardPrefab; public GameObject smallCardPrefab;
[Header("是否是场景退出")]
public bool isQuit = false ;
public void Start() public void Start()
{ {
@ -80,9 +77,11 @@ public class CardEntity : MonoBehaviour
private void OnDisable() private void OnDisable()
{ {
CreateSmallCard(); CreateSmallCard();
} }
public void CreateSmallCard() public void CreateSmallCard()
{ {
var smallCard = Instantiate(smallCardPrefab, transform.position, transform.localRotation); var smallCard = Instantiate(smallCardPrefab, transform.position, transform.localRotation);
smallCard.GetComponent<CardSmall>().SetDestination(TurnMaster.Instance.usedCardNumberText.gameObject, cardId); smallCard.GetComponent<CardSmall>().SetDestination(TurnMaster.Instance.usedCardNumberText.gameObject, cardId);

3
ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardSmall/CardSmall.cs

@ -35,8 +35,10 @@ public class CardSmall : MonoBehaviour
IEnumerator moveCardFollowLineWithToUsedCard() IEnumerator moveCardFollowLineWithToUsedCard()
{ {
for (int i = 0; i < linePath .Count -1 ; i++) for (int i = 0; i < linePath .Count -1 ; i++)
{ {
bool isMove = true; bool isMove = true;
time = 0; time = 0;
while (isMove ) while (isMove )
@ -94,6 +96,7 @@ public class CardSmall : MonoBehaviour
} }
public void SetDestination(GameObject gameObject,int ID ) public void SetDestination(GameObject gameObject,int ID )
{ {
cardID = ID; cardID = ID;
lineRender = GetComponent<LineRenderer>(); lineRender = GetComponent<LineRenderer>();
mainCaera = GameManager.Instance.mainCamera; mainCaera = GameManager.Instance.mainCamera;

3
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/CorrosiveSludge.cs

@ -170,7 +170,8 @@ public class CorrosiveSludge : MonoBehaviour
} }
} }
enemyNode.currentActionScript.FadeAttackRange(enemyNode); enemyNode.currentActionScript.FadeAttackRangeAll(enemyNode);
enemyNode.aoeRangePool.Clear();
yield break; yield break;
} }

13
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyNode.cs

@ -125,6 +125,18 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver
{ {
disableAttack.SetActive(true); disableAttack.SetActive(true);
} }
if (aoeRangePool.Count > 0)
{
if (aoeRangePool.Contains(GameManager.Instance.playerOn))
{
disableAttack.SetActive(false);
}
else
{
disableAttack.SetActive(true);
}
}
} }
} }
@ -599,6 +611,7 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver
switch (enemyType) switch (enemyType)
{ {
case EnemyType.enemy: case EnemyType.enemy:
currentActionScript.FadeAttackRangeAll(this);
EnemyManager.Instance.statePanel.SetActive(false); EnemyManager.Instance.statePanel.SetActive(false);
RewardManager.Instance.JudgeEnemyOver(); RewardManager.Instance.JudgeEnemyOver();
Destroy(this.gameObject); Destroy(this.gameObject);

53
ColorlessWorld-2024-4-2/Assets/Scripts/EnemyPlanFunction/EnemyAction.cs

@ -6,7 +6,6 @@ using UnityEngine.UI;
public class EnemyAction public class EnemyAction
{ {
public Sprite sprite; public Sprite sprite;
public bool isAoe = false;
public virtual void SettleText( EnemyNode enemyNode ,Text attackDamageText,Text stateText) public virtual void SettleText( EnemyNode enemyNode ,Text attackDamageText,Text stateText)
{ {
attackDamageText.text = (enemyNode.EnemyState.damage * enemyNode.EnemyState.damageMultiplier).ToString(); attackDamageText.text = (enemyNode.EnemyState.damage * enemyNode.EnemyState.damageMultiplier).ToString();
@ -26,43 +25,45 @@ public class EnemyAction
public virtual void ShowAttackRange(EnemyNode enemyNode) public virtual void ShowAttackRange(EnemyNode enemyNode)
{ {
//遍历影响池变色 //遍历影响池变色
if(isAoe ==false ) foreach (var mapNode in enemyNode.rangePool)
{ {
foreach (var mapNode in enemyNode.rangePool) mapNode.markInfluenced = true;
{ mapNode.hightLigtMark.GetComponent<Renderer>().material = mapNode.enemyMark;
mapNode.markInfluenced = true;
mapNode.hightLigtMark.GetComponent<Renderer>().material = mapNode.enemyMark;
}
} }
else foreach (var mapNode in enemyNode.aoeRangePool)
{ {
foreach (var mapNode in enemyNode.rangePool) mapNode.aoeInfluenced = true;
{ }
mapNode.aoeInfluenced = true; }
} public virtual void ShowAttackRangeAoe(EnemyNode enemyNode)
{
//±éÀúÓ°Ïì³Ø±äÉ«
foreach (var mapNode in enemyNode.aoeRangePool)
{
mapNode.aoeInfluenced = true;
} }
} }
public virtual void FadeAttackRange(EnemyNode enemyNode) public virtual void FadeAttackRange(EnemyNode enemyNode)
{ {
//遍历影响池变色 //遍历影响池变色
if(isAoe ==false ) for (int i = 0; i < enemyNode.rangePool.Count; i++)
{ {
for (int i = 0; i < enemyNode.rangePool.Count; i++) enemyNode.rangePool[i].markInfluenced = false;
{ }
enemyNode.rangePool[i].markInfluenced = false; }
} public virtual void FadeAttackRangeAll(EnemyNode enemyNode)
{
//±éÀúÓ°Ïì³Ø±äÉ«
for (int i = 0; i < enemyNode.rangePool.Count; i++)
{
enemyNode.rangePool[i].markInfluenced = false;
} }
else foreach (var mapNode in enemyNode.aoeRangePool)
{ {
foreach (var mapNode in enemyNode.rangePool) mapNode.aoeInfluenced = false;
{
mapNode.aoeInfluenced = false;
}
} }
} }
//范围遍历方法 //范围遍历方法
//通用普攻 //通用普攻
public virtual void GeneralAttackRange(EnemyNode enemyNode) public virtual void GeneralAttackRange(EnemyNode enemyNode)
@ -87,9 +88,9 @@ public class EnemyAction
{ {
Debug.Log("aoe"); Debug.Log("aoe");
//几-几 //几-几
isAoe = true; EnemyManager.Instance.AttackRangeInfluencedNode(GameManager.Instance.X[enemyNode.positionX].Y[enemyNode.positionY], enemyNode.EnemyState.attackRange, enemyNode.rangePool);
EnemyManager.Instance.AttackRangeInfluencedNode(GameManager.Instance.X[enemyNode.positionX].Y[enemyNode.positionY],3, enemyNode.aoeRangePool); EnemyManager.Instance.AttackRangeInfluencedNode(GameManager.Instance.X[enemyNode.positionX].Y[enemyNode.positionY],3, enemyNode.aoeRangePool);
ShowAttackRange(enemyNode); ShowAttackRangeAoe(enemyNode);
} }
//魔法 //魔法
public virtual void MagicAttackRange(EnemyNode enemyNode) public virtual void MagicAttackRange(EnemyNode enemyNode)

27
ColorlessWorld-2024-4-2/Assets/Scripts/MapManager.cs

@ -33,9 +33,30 @@ public class MapManager : Singleton<MapManager>
{ {
Debug.Log("怪物是" + a); Debug.Log("怪物是" + a);
} }
List<GameObject> enemyListTest = EnemyPool.getEnemyPrefab(enemyList);
HashSet<MapUnity> mapSet = MathTool.GetRandomElements(getNodeTools.getAllNodesExceptEnemyAndPlayer(), enemyListTest.Count); List<GameObject> enemyListTest =new List<GameObject> ();
List<MapUnity> mapList = new List<MapUnity>(mapSet); HashSet<MapUnity> mapSet = new HashSet<MapUnity> ();
List<MapUnity> mapList = new List<MapUnity> ();
//ÅжÏÊÇ·ñÓнڵãΪ¿Õ
bool listWithDisableNode = true;
while (listWithDisableNode)
{
listWithDisableNode = false;
enemyListTest = EnemyPool.getEnemyPrefab(enemyList);
mapSet = MathTool.GetRandomElements(getNodeTools.getAllNodesExceptEnemyAndPlayer(), enemyListTest.Count);
mapList = new List<MapUnity>(mapSet);
foreach (var node in mapList )
{
if(node .gameObject.activeInHierarchy == false )
{
listWithDisableNode = true;
}
}
}
Debug.Log("enemyListTest大小" + enemyListTest.Count); Debug.Log("enemyListTest大小" + enemyListTest.Count);
Debug.Log("mapList大小" + mapList.Count); Debug.Log("mapList大小" + mapList.Count);
for (int i = 0; i < mapList.Count; i++) for (int i = 0; i < mapList.Count; i++)

9
ColorlessWorld-2024-4-2/Assets/Scripts/UI/EnemyPlanActionUI.cs

@ -24,10 +24,11 @@ public class EnemyPlanActionUI : MonoBehaviour
} }
private void OnMouseOver() private void OnMouseOver()
{ {
planPanle.SetActive(true); if (TurnMaster.Instance.turn == TurnMaster.Turn.playerTurn && GameManager.Instance.onDrag == false)
planPanle.transform.position = Mouse.current.position.value; {
planPanle.SetActive(true);
planPanle.transform.position = Mouse.current.position.value;
}
} }
private void OnMouseExit() private void OnMouseExit()

7
ColorlessWorld-2024-4-2/Assets/Scripts/UI/EnemyUIBar.cs

@ -89,11 +89,8 @@ public class EnemyUIBar : MonoBehaviour
enemyNode.lineAim.SetActive(false); enemyNode.lineAim.SetActive(false);
//±éÀúÓ°Ïì³Ø±äÉ« //±éÀúÓ°Ïì³Ø±äÉ«
if (enemyNode.currentActionScript.isAoe == false) enemyNode.currentActionScript.FadeAttackRange(enemyNode);
{
enemyNode.currentActionScript.FadeAttackRange(enemyNode);
}
} }

BIN
ColorlessWorld-2024-4-2/obj/Debug/Assembly-CSharp-Editor.csproj.AssemblyReference.cache

Binary file not shown.
Loading…
Cancel
Save