8-30修bug,意图优化 #27

Merged
45 merged 1 commits from dev-0830 into dev-0524 1 year ago
  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 Vector3 originalpoint;
//更换父级前的排序位置
public int originalIndexInChild;
public EventSystem eventSystem;
public bool canUse = true;//决定卡牌是否可以释放
bool choosed;//标识卡牌是否被选中
@ -87,6 +90,7 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag
switch (dragState)
{
case CardDragState.onBeginDrag:
GameManager.Instance.onDrag = true;
if (choosed == false)
{
TurnMaster.Instance.playerAction = TurnMaster.PlayerAction.useCard;
@ -116,8 +120,7 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag
Debug.Log(result[0].gameObject.name);
if (result[0].gameObject == this.gameObject)
{
dragState = CardDragState.onBeginDrag;
GameManager.Instance.onDrag = true;
dragState = CardDragState.onBeginDrag;
}
}
@ -140,6 +143,7 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag
disCardCheck();
if (!cardEntity.canUse)
{
resetComponentPosition();
return;
}
choosed = true;
@ -386,6 +390,9 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag
ainPanle.SetActive(false);
//其他位置都归位
transform.SetParent(originalParent);
//归位孩子顺序
transform.SetSiblingIndex(cardOnMouseEnter.oringinIndex);
GetComponent<CanvasGroup>().blocksRaycasts = true;
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.Generic;
using System.Text;
using Unity.VisualScripting;
using UnityEditor.SearchService;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.InputSystem;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class CardEntity : MonoBehaviour
@ -40,6 +35,8 @@ public class CardEntity : MonoBehaviour
[Header("¿¨ÅÆÊͷźóЧС¿¨")]
public GameObject smallCardPrefab;
[Header("是否是场景退出")]
public bool isQuit = false ;
public void Start()
{
@ -80,9 +77,11 @@ public class CardEntity : MonoBehaviour
private void OnDisable()
{
CreateSmallCard();
}
public void CreateSmallCard()
{
{
var smallCard = Instantiate(smallCardPrefab, transform.position, transform.localRotation);
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()
{
for (int i = 0; i < linePath .Count -1 ; i++)
{
bool isMove = true;
time = 0;
while (isMove )
@ -94,6 +96,7 @@ public class CardSmall : MonoBehaviour
}
public void SetDestination(GameObject gameObject,int ID )
{
cardID = ID;
lineRender = GetComponent<LineRenderer>();
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;
}

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

@ -125,6 +125,18 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver
{
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)
{
case EnemyType.enemy:
currentActionScript.FadeAttackRangeAll(this);
EnemyManager.Instance.statePanel.SetActive(false);
RewardManager.Instance.JudgeEnemyOver();
Destroy(this.gameObject);

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

@ -6,7 +6,6 @@ using UnityEngine.UI;
public class EnemyAction
{
public Sprite sprite;
public bool isAoe = false;
public virtual void SettleText( EnemyNode enemyNode ,Text attackDamageText,Text stateText)
{
attackDamageText.text = (enemyNode.EnemyState.damage * enemyNode.EnemyState.damageMultiplier).ToString();
@ -26,43 +25,45 @@ public class EnemyAction
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)
{
//遍历影响池变色
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)
@ -87,9 +88,9 @@ public class EnemyAction
{
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);
ShowAttackRange(enemyNode);
ShowAttackRangeAoe(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);
}
List<GameObject> enemyListTest = EnemyPool.getEnemyPrefab(enemyList);
HashSet<MapUnity> mapSet = MathTool.GetRandomElements(getNodeTools.getAllNodesExceptEnemyAndPlayer(), enemyListTest.Count);
List<MapUnity> mapList = new List<MapUnity>(mapSet);
List<GameObject> enemyListTest =new List<GameObject> ();
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("mapList大小" + mapList.Count);
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()
{
planPanle.SetActive(true);
planPanle.transform.position = Mouse.current.position.value;
if (TurnMaster.Instance.turn == TurnMaster.Turn.playerTurn && GameManager.Instance.onDrag == false)
{
planPanle.SetActive(true);
planPanle.transform.position = Mouse.current.position.value;
}
}
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);
//±éÀúÓ°Ïì³Ø±äÉ«
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