21 changed files with 592 additions and 670 deletions
@ -1,8 +0,0 @@ |
|||||
fileFormatVersion: 2 |
|
||||
guid: 178e0d528cfe03d4f81caddb6d109dbb |
|
||||
folderAsset: yes |
|
||||
DefaultImporter: |
|
||||
externalObjects: {} |
|
||||
userData: |
|
||||
assetBundleName: |
|
||||
assetBundleVariant: |
|
||||
@ -1,612 +0,0 @@ |
|||||
using System.Collections; |
|
||||
using System.Collections.Generic; |
|
||||
using UnityEngine; |
|
||||
using UnityEngine.UI; |
|
||||
using UnityEngine.EventSystems; |
|
||||
using UnityEngine.InputSystem; |
|
||||
using System; |
|
||||
using Unity.VisualScripting; |
|
||||
using System.Data; |
|
||||
|
|
||||
public class TempPlaceEffect: MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler |
|
||||
{ |
|
||||
|
|
||||
[Header("拖拽参数")] |
|
||||
public Transform originalParent; |
|
||||
public Vector3 originalpoint; |
|
||||
|
|
||||
//更换父级前的排序位置
|
|
||||
public int originalIndexInChild; |
|
||||
|
|
||||
public EventSystem eventSystem; |
|
||||
public bool canUse = true;//决定卡牌是否可以释放
|
|
||||
bool choosed;//标识卡牌是否被选中
|
|
||||
|
|
||||
[Header("贝塞尔曲线瞄准")] |
|
||||
public GameObject ainPanle; |
|
||||
|
|
||||
[Header("影响格参数")] |
|
||||
public MapUnity currentNode;//瞄准的格子
|
|
||||
|
|
||||
[Header("卡牌拖拽状态")] |
|
||||
public CardDragState dragState = CardDragState.noDrag; |
|
||||
public enum CardDragState |
|
||||
{ |
|
||||
onBeginDrag, |
|
||||
onDrag, |
|
||||
onEndDrag, |
|
||||
noDrag |
|
||||
} |
|
||||
PointerEventData eventData; |
|
||||
List<RaycastResult> result = new List<RaycastResult>(); |
|
||||
|
|
||||
public bool ready;//是否已到达可释放位置
|
|
||||
|
|
||||
[Header("卡牌属性")] |
|
||||
public List<MapUnity> castingPool;//卡牌打出范围
|
|
||||
|
|
||||
private CardEntity cardEntity; |
|
||||
|
|
||||
[Header("射线图层剔除")] |
|
||||
public LayerMask layerMask; |
|
||||
|
|
||||
[Header("鼠标检测脚本")] |
|
||||
public CardOnMouseEnter cardOnMouseEnter; |
|
||||
|
|
||||
void Start() |
|
||||
{ |
|
||||
originalParent = gameObject.transform.parent; |
|
||||
dragState = CardDragState.noDrag; |
|
||||
eventSystem = GameObject.FindObjectOfType<EventSystem>(); |
|
||||
eventData = new PointerEventData(eventSystem); |
|
||||
|
|
||||
cardOnMouseEnter = GetComponent<CardOnMouseEnter>(); |
|
||||
|
|
||||
eventSystem = GameObject.FindObjectOfType<EventSystem>(); |
|
||||
cardEntity = GetComponent<CardEntity>(); |
|
||||
|
|
||||
cardEntity.createCard("2001", 0, true); |
|
||||
} |
|
||||
|
|
||||
|
|
||||
private void Update() |
|
||||
{ |
|
||||
handleRightClickCancel(); |
|
||||
|
|
||||
|
|
||||
if (dragState != CardDragState.noDrag && dragState != CardDragState.onDrag) |
|
||||
{ |
|
||||
//UI射线检测
|
|
||||
eventData.position = Mouse.current.position.value; |
|
||||
|
|
||||
eventSystem.RaycastAll(eventData, result); |
|
||||
if (result.Count > 0) |
|
||||
{ |
|
||||
Debug.Log(result[0].gameObject.name); |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
if (GameManager.Instance.onDraw == false && TurnMaster.Instance.servantAction != TurnMaster.ServantAction.useSkill) |
|
||||
{ |
|
||||
switch (dragState) |
|
||||
{ |
|
||||
case CardDragState.onBeginDrag: |
|
||||
GameManager.Instance.onDrag = true; |
|
||||
SettlementManager.Instance.expectSettle(cardEntity.cardOriginalData);//预计伤害计算
|
|
||||
if (choosed == false) |
|
||||
{ |
|
||||
TurnMaster.Instance.playerAction = TurnMaster.PlayerAction.useCard; |
|
||||
CardChoose(eventData); |
|
||||
dragState = CardDragState.onDrag; |
|
||||
} |
|
||||
break; |
|
||||
case CardDragState.onDrag: |
|
||||
CardFollow(); |
|
||||
if (Mouse.current.leftButton.wasReleasedThisFrame && ready) |
|
||||
{ |
|
||||
dragState = CardDragState.onEndDrag; |
|
||||
} |
|
||||
break; |
|
||||
case CardDragState.onEndDrag: |
|
||||
TurnMaster.Instance.playerAction = TurnMaster.PlayerAction.none; |
|
||||
CardUse(); |
|
||||
break; |
|
||||
case CardDragState.noDrag: |
|
||||
if (Mouse.current.leftButton.wasReleasedThisFrame && GameManager.Instance.onDrag == false && TurnMaster.Instance.playerAction == TurnMaster.PlayerAction.none) |
|
||||
{ |
|
||||
eventData.position = Mouse.current.position.value; |
|
||||
|
|
||||
eventSystem.RaycastAll(eventData, result); |
|
||||
if (result.Count > 0) |
|
||||
{ |
|
||||
// Debug.Log(result[0].gameObject.name);
|
|
||||
if (result[0].gameObject == this.gameObject) |
|
||||
{ |
|
||||
dragState = CardDragState.onBeginDrag; |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
|
|
||||
} |
|
||||
break; |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
|
|
||||
} |
|
||||
|
|
||||
//卡片动作
|
|
||||
//开始选中
|
|
||||
public void CardChoose(PointerEventData eventData) |
|
||||
{ |
|
||||
banActionCardCheck(); |
|
||||
disArmCheck(); |
|
||||
costCheck(); |
|
||||
disCardCheck(); |
|
||||
if (!cardEntity.canUse) |
|
||||
{ |
|
||||
resetComponentPosition(); |
|
||||
return; |
|
||||
} |
|
||||
choosed = true; |
|
||||
//选中音效
|
|
||||
AudioManager.Instance.ChooseCardVoicePlayer(true); |
|
||||
|
|
||||
GetComponent<CanvasGroup>().blocksRaycasts = false; |
|
||||
originalpoint = this.transform.localPosition; |
|
||||
|
|
||||
transform.SetParent(transform.parent.parent); |
|
||||
transform.localPosition = cardOnMouseEnter.originPoint; |
|
||||
|
|
||||
GetComponent<RectTransform>().localScale = cardOnMouseEnter.targetScale; |
|
||||
|
|
||||
//根据卡牌数据决定是否调用曲线
|
|
||||
if (cardEntity.cardOriginalData.CastingRange != 0) |
|
||||
{ |
|
||||
//释放范围为0则不需要调用曲线
|
|
||||
ainPanle.SetActive(true); |
|
||||
} |
|
||||
else |
|
||||
{ |
|
||||
ainPanle.SetActive(false); |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
//拖拽中
|
|
||||
public void CardFollow() |
|
||||
{ |
|
||||
if (!cardEntity.canUse) |
|
||||
{ |
|
||||
return; |
|
||||
} |
|
||||
|
|
||||
dyeing(); |
|
||||
|
|
||||
eventData.position = Mouse.current.position.value; |
|
||||
|
|
||||
eventSystem.RaycastAll(eventData, result); |
|
||||
// Debug.Log(result[0].gameObject.name);
|
|
||||
if (result.Count > 0) |
|
||||
{ |
|
||||
if (result[0].gameObject.name == "TotalPanel") |
|
||||
{ |
|
||||
if (ready == false) |
|
||||
{ |
|
||||
ready = true; |
|
||||
} |
|
||||
transform.localPosition = cardOnMouseEnter.originPoint;// + new Vector3(0, 30, 0);
|
|
||||
// transform.localScale = new Vector3(1, 1, 1);
|
|
||||
if (cardEntity.cardOriginalData.CastingRange != 0) |
|
||||
{ |
|
||||
ainPanleWork(eventData); |
|
||||
} |
|
||||
else |
|
||||
{ |
|
||||
noAinPanleWork(eventData); |
|
||||
} |
|
||||
} |
|
||||
else |
|
||||
{ |
|
||||
if (ready == true) |
|
||||
{ |
|
||||
resetComponentPosition(); |
|
||||
} |
|
||||
else |
|
||||
{ |
|
||||
// Debug.Log(transform.position);
|
|
||||
// Debug.Log(eventData.position);
|
|
||||
// transform.position = eventData.position;
|
|
||||
Vector3 eventDataWorld = CardActiveSort.Instance.ScreenPointToWorldPoint(eventData.position, 4f); |
|
||||
transform.position = eventDataWorld; |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
|
|
||||
} |
|
||||
|
|
||||
} |
|
||||
|
|
||||
//卡牌释放
|
|
||||
public void CardUse() |
|
||||
{ |
|
||||
EnemyManager.Instance.HideExpHP_Observer(); |
|
||||
GameManager.Instance.onDrag = false; |
|
||||
//目标释放选择
|
|
||||
/*if (!cardTargetCheck()) |
|
||||
{ |
|
||||
canUse = false; |
|
||||
Debug.Log("目标不符合"); |
|
||||
//resetComponentPosition();
|
|
||||
}*/ |
|
||||
|
|
||||
if (canUse) |
|
||||
{ |
|
||||
CardActiveSort.Instance.ReflashCardPoint(); |
|
||||
StartCoroutine(OnDragIEnumerator(eventData)); |
|
||||
} |
|
||||
else |
|
||||
{ |
|
||||
canUse = true; |
|
||||
resetComponentPosition(); |
|
||||
} |
|
||||
|
|
||||
dragState = CardDragState.onDrag; |
|
||||
} |
|
||||
|
|
||||
//检查卡牌的费用是否可以释放
|
|
||||
private void costCheck() |
|
||||
{ |
|
||||
Debug.Log("当前费用:" + TurnMaster.Instance.currentCost); |
|
||||
Debug.Log("总费用:" + Usermanager.Instance.totalCost); |
|
||||
int trueCost = cardEntity.cardOriginalData.Cost; |
|
||||
if (MapUnityManager.Instance.isPlayerOn(Name.NodeColor.Black)) |
|
||||
{ |
|
||||
trueCost++; |
|
||||
} |
|
||||
if (GameManager.Instance.playerState.currentCost - trueCost < 0) |
|
||||
{ |
|
||||
Debug.Log("费用不足"); |
|
||||
TipManager.Instance.SendTip("费用不足"); |
|
||||
cardEntity.canUse = false; |
|
||||
} |
|
||||
|
|
||||
} |
|
||||
|
|
||||
private void stepCostCheck(bool canAdv) |
|
||||
{ |
|
||||
/*if (canAdv) |
|
||||
{ |
|
||||
if (cardEntity.cardOriginalData.AdvantageFunctionVal.ContainsKey(CardFunction.costStep)) |
|
||||
{ |
|
||||
if (GameManager.Instance.playerState.currentStepRange< int.Parse(cardEntity.cardOriginalData.AdvantageFunctionVal[CardFunction.costStep])) |
|
||||
{ |
|
||||
Debug.Log("步数不足"); |
|
||||
cardEntity.canUse = false; |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
else |
|
||||
{ |
|
||||
if (cardEntity.cardOriginalData.FunctionVal.ContainsKey(CardFunction.costStep)) |
|
||||
{ |
|
||||
if (GameManager.Instance.playerState.currentStepRange < int.Parse(cardEntity.cardOriginalData.FunctionVal[CardFunction.costStep])) |
|
||||
{ |
|
||||
Debug.Log("步数不足"); |
|
||||
cardEntity.canUse = false; |
|
||||
} |
|
||||
} |
|
||||
}*/ |
|
||||
} |
|
||||
|
|
||||
private void disArmCheck() |
|
||||
{ |
|
||||
/*if (Usermanager.playerAbnormalCondition.ContainsKey(AbnormalCondition.disarm)&&cardEntity.cardOriginalData.CarType.Equals(CardType.attack)) |
|
||||
{ |
|
||||
Debug.Log("被缴械了"); |
|
||||
cardEntity.canUse = false; |
|
||||
}*/ |
|
||||
} |
|
||||
|
|
||||
private void disCardCheck() |
|
||||
{ |
|
||||
Dictionary<string, string> trueFunctionVal = new Dictionary<string, string>(); |
|
||||
//trueFunctionVal.AddRange(cardEntity.cardOriginalData.FunctionVal);
|
|
||||
int drawCardNum = 0; |
|
||||
foreach (KeyValuePair<string, string> kvp in trueFunctionVal) |
|
||||
{ |
|
||||
switch (kvp.Key) |
|
||||
{ |
|
||||
case CardFunction.drawCard: |
|
||||
if (Usermanager.playerAbnormalCondition.ContainsKey(AbnormalCondition.banDrawCard)) |
|
||||
{ |
|
||||
|
|
||||
} |
|
||||
else |
|
||||
{ |
|
||||
drawCardNum += int.Parse(kvp.Value); |
|
||||
} |
|
||||
break; |
|
||||
|
|
||||
} |
|
||||
} |
|
||||
foreach (KeyValuePair<string, string> kvp in trueFunctionVal) |
|
||||
{ |
|
||||
switch (kvp.Key) |
|
||||
{ |
|
||||
case CardFunction.discard: |
|
||||
if (TurnMaster.Instance.handCard.cardEntityList.Count - int.Parse(kvp.Value) - 1 + drawCardNum < 0) |
|
||||
{ |
|
||||
Debug.Log("没有足够的牌可以弃牌"); |
|
||||
cardEntity.canUse = false; |
|
||||
} |
|
||||
break; |
|
||||
|
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
private void banActionCardCheck() |
|
||||
{ |
|
||||
if (TurnMaster.Instance.playerAction == TurnMaster.PlayerAction.banAction) |
|
||||
{ |
|
||||
cardEntity.canUse = false; |
|
||||
} |
|
||||
else |
|
||||
{ |
|
||||
cardEntity.canUse = true; |
|
||||
} |
|
||||
if (TurnMaster.Instance.playerAction == TurnMaster.PlayerAction.move) |
|
||||
{ |
|
||||
cardEntity.canUse = false; |
|
||||
} |
|
||||
else if (TurnMaster.Instance.playerAction != TurnMaster.PlayerAction.banAction) |
|
||||
{ |
|
||||
cardEntity.canUse = true; |
|
||||
} |
|
||||
|
|
||||
} |
|
||||
private void resetComponentPosition() |
|
||||
{ |
|
||||
//取消音效
|
|
||||
AudioManager.Instance.ChooseCardVoicePlayer(false); |
|
||||
//遍历范围预览池消除影响色
|
|
||||
foreach (MapUnity mapUnity in MapUnityManager.Instance.castPool) |
|
||||
{ |
|
||||
mapUnity.influenced = false; |
|
||||
} |
|
||||
MapUnityManager.Instance.castPool.Clear(); |
|
||||
//遍历影响池变色
|
|
||||
foreach (MapUnity mapUnity in cardEntity.influencePreviewPool) |
|
||||
{ |
|
||||
mapUnity.influenced = false; |
|
||||
} |
|
||||
cardEntity.influencePreviewPool.Clear(); |
|
||||
|
|
||||
ready = false; |
|
||||
GameManager.Instance.onDrag = false; |
|
||||
dragState = CardDragState.noDrag; |
|
||||
|
|
||||
if (TurnMaster.Instance.playerAction == TurnMaster.PlayerAction.useCard) |
|
||||
TurnMaster.Instance.playerAction = TurnMaster.PlayerAction.none; |
|
||||
|
|
||||
choosed = false; |
|
||||
canUse = true;//取消释放
|
|
||||
ainPanle.SetActive(false); |
|
||||
//其他位置都归位
|
|
||||
transform.SetParent(originalParent); |
|
||||
//归位孩子顺序
|
|
||||
transform.SetSiblingIndex(cardOnMouseEnter.oringinIndex); |
|
||||
|
|
||||
GetComponent<CanvasGroup>().blocksRaycasts = true; |
|
||||
transform.localScale = new Vector3(1f, 1f, 1f); |
|
||||
|
|
||||
CardActiveSort.Instance.ReflashCardPoint(); |
|
||||
|
|
||||
//隐藏怪物虚血
|
|
||||
EnemyManager.Instance.HideExpHP_Observer(); |
|
||||
|
|
||||
return; |
|
||||
} |
|
||||
|
|
||||
//右键取消释放
|
|
||||
private void handleRightClickCancel() |
|
||||
{ |
|
||||
|
|
||||
if (choosed && Mouse.current.rightButton.wasPressedThisFrame) |
|
||||
{ |
|
||||
resetComponentPosition(); |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
public void OnBeginDrag(PointerEventData eventData) |
|
||||
{ |
|
||||
if (GameManager.Instance.onDrag == false && TurnMaster.Instance.playerAction == TurnMaster.PlayerAction.none && TurnMaster.Instance.servantAction != TurnMaster.ServantAction.useSkill) |
|
||||
dragState = CardDragState.onBeginDrag; |
|
||||
} |
|
||||
|
|
||||
private void ainPanleWork(PointerEventData eventData) |
|
||||
{ |
|
||||
//射线检测瞄准的地图节点,判断是否可放置和改变放置影响区
|
|
||||
Ray ray = Camera.main.ScreenPointToRay(Mouse.current.position.value); |
|
||||
Debug.Log(Mouse.current.position.value); |
|
||||
if (Physics.Raycast(ray, out RaycastHit raycastHit, 500, layerMask.value)) |
|
||||
{ |
|
||||
//Debug.Log(raycastHit.collider.gameObject.name);
|
|
||||
//检测到跟上次瞄准地方不同,更新
|
|
||||
if (currentNode == null || raycastHit.collider.transform.gameObject != currentNode.gameObject) |
|
||||
{ |
|
||||
foreach (MapUnity mapUnity in cardEntity.influencePreviewPool) |
|
||||
{ |
|
||||
mapUnity.influenced = false; |
|
||||
} |
|
||||
cardEntity.influencePreviewPool.Clear(); |
|
||||
currentNode = raycastHit.collider.transform.GetComponent<MapUnity>(); |
|
||||
|
|
||||
//重新调用范围预览
|
|
||||
//GameManager.Instance.player.StepPreviewInfluencedNode(cardEntity.cardOriginalData.CastingRange);
|
|
||||
int castRange = cardEntity.cardOriginalData.CastingRange; |
|
||||
if (MapUnityManager.Instance.isPlayerOn(Name.NodeColor.Green)) |
|
||||
{ |
|
||||
castRange++; |
|
||||
} |
|
||||
setCastingRangePreview(castRange); |
|
||||
//预览影响范围
|
|
||||
if (currentNode.influenced) |
|
||||
{ |
|
||||
//根据卡牌属性改变影响池
|
|
||||
Vector3 face = currentNode.transform.position - GameManager.Instance.playerOn.transform.position; |
|
||||
float euler = Vector3.SignedAngle(-GameManager.Instance.playerOn.transform.forward, face, GameManager.Instance.playerOn.transform.up) + 180; |
|
||||
Debug.Log("euler是" + euler); |
|
||||
getNodeTools.setEffectRangePreview(cardEntity.cardOriginalData.EffectRange, euler, currentNode, cardEntity); |
|
||||
//setEffectRangePreview(cardEntity.cardOriginalData.EffectRange, euler, currentNode);
|
|
||||
//influencePreviewPool.Add(currentNode);
|
|
||||
|
|
||||
|
|
||||
} |
|
||||
|
|
||||
//更新效果作用范围内怪物虚血
|
|
||||
EnemyManager.Instance.ShowExpHp_Observer(cardEntity.influencePreviewPool); |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
} |
|
||||
|
|
||||
private void setCastingRangePreview(int castRange) |
|
||||
{ |
|
||||
foreach (MapUnity mapUnity in MapUnityManager.Instance.castPool) |
|
||||
{ |
|
||||
mapUnity.influenced = false; |
|
||||
} |
|
||||
MapUnityManager.Instance.castPool.Clear(); |
|
||||
MapUnityManager.Instance.getCastPool(cardEntity.cardOriginalData.EffectRange, castRange); |
|
||||
|
|
||||
|
|
||||
} |
|
||||
|
|
||||
|
|
||||
private void getInfluencePreviePoll(MapUnity currentNode, string effecctRange) |
|
||||
{ |
|
||||
switch (effecctRange) |
|
||||
{ |
|
||||
case EffectRange.range1: |
|
||||
break; |
|
||||
|
|
||||
} |
|
||||
} |
|
||||
|
|
||||
private void noAinPanleWork(PointerEventData eventData) |
|
||||
{ |
|
||||
|
|
||||
/*Ray ray = Camera.main.ScreenPointToRay(Mouse.current.position.value); |
|
||||
if (eventData.pointerCurrentRaycast.gameObject != null) |
|
||||
{ |
|
||||
if (Physics.Raycast(ray, out RaycastHit raycastHit)) |
|
||||
{ |
|
||||
currentNode = raycastHit.collider.transform.GetComponent<MapUnity>(); |
|
||||
cardEntity.influencePreviewPool.Add(currentNode); |
|
||||
} |
|
||||
}*/ |
|
||||
getNodeTools.setEffectRangePreview(cardEntity.cardOriginalData.EffectRange, 30.0f, currentNode, cardEntity); |
|
||||
} |
|
||||
|
|
||||
public void OnDrag(PointerEventData eventData) |
|
||||
{ |
|
||||
|
|
||||
} |
|
||||
|
|
||||
private void dyeing() |
|
||||
{ |
|
||||
//遍历影响池变色
|
|
||||
foreach (MapUnity mapUnity in cardEntity.influencePreviewPool) |
|
||||
{ |
|
||||
mapUnity.PlayerInfluenced(cardEntity.influencePreviewPool); |
|
||||
mapUnity.playerMark.meshRenderer.material = mapUnity.castPreRange; |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
|
|
||||
public void OnEndDrag(PointerEventData eventData) |
|
||||
{ |
|
||||
|
|
||||
} |
|
||||
|
|
||||
private IEnumerator OnDragIEnumerator(PointerEventData eventData) |
|
||||
{ |
|
||||
if (!cardEntity.canUse) |
|
||||
{ |
|
||||
yield break; |
|
||||
} |
|
||||
choosed = false; |
|
||||
if (canUse) |
|
||||
{ |
|
||||
if (eventData.pointerCurrentRaycast.gameObject != null) |
|
||||
{ |
|
||||
resetComponentPosition(); |
|
||||
} |
|
||||
if (ainPanle.activeSelf) |
|
||||
{ |
|
||||
ainPanle.SetActive(false);//关闭贝塞尔曲线
|
|
||||
} |
|
||||
|
|
||||
//先判断该卡牌的类型是否是需要范围
|
|
||||
if (cardEntity.cardOriginalData.CastingRange != 0) |
|
||||
{ |
|
||||
if (currentNode != null && currentNode.influenced) |
|
||||
{ |
|
||||
//卡牌释放效果
|
|
||||
yield return StartCoroutine(cardEntity.settle(0, currentNode)); |
|
||||
} |
|
||||
else |
|
||||
{ |
|
||||
resetComponentPosition(); |
|
||||
} |
|
||||
} |
|
||||
else |
|
||||
{ |
|
||||
//卡牌释放效果
|
|
||||
yield return StartCoroutine(cardEntity.settle(0, GameManager.Instance.playerOn)); |
|
||||
|
|
||||
} |
|
||||
yield break; |
|
||||
} |
|
||||
else |
|
||||
{ |
|
||||
canUse = true; |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
private bool cardTargetCheck() |
|
||||
{ |
|
||||
bool targetRight = false; |
|
||||
switch (cardEntity.cardOriginalData.CardTarget) |
|
||||
{ |
|
||||
case Name.Target.enemy: |
|
||||
foreach (MapUnity mapUnity in cardEntity.influencePreviewPool) |
|
||||
{ |
|
||||
if (mapUnity.enemyNode != null && mapUnity.enemyNode.enemyType == EnemyNode.EnemyType.enemy) |
|
||||
{ |
|
||||
targetRight = true; break; |
|
||||
} |
|
||||
} |
|
||||
break; |
|
||||
case Name.Target.enemyAndBuilding: |
|
||||
foreach (MapUnity mapUnity in cardEntity.influencePreviewPool) |
|
||||
{ |
|
||||
if (mapUnity.enemyNode != null) |
|
||||
{ |
|
||||
targetRight = true; break; |
|
||||
} |
|
||||
} |
|
||||
break; |
|
||||
case Name.Target.ally: |
|
||||
targetRight = true; |
|
||||
break; |
|
||||
} |
|
||||
Debug.Log("targetRight是" + targetRight); |
|
||||
return targetRight; |
|
||||
} |
|
||||
|
|
||||
} |
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
@ -0,0 +1,29 @@ |
|||||
|
using System.Collections; |
||||
|
using System.Collections.Generic; |
||||
|
using UnityEngine; |
||||
|
|
||||
|
public class CoordinateColorPair |
||||
|
{ |
||||
|
public int X { get; set; } |
||||
|
public int Y { get; set; } |
||||
|
public string Color { get; set; } |
||||
|
|
||||
|
public CoordinateColorPair(int x, int y, string color) |
||||
|
{ |
||||
|
X = x; |
||||
|
Y = y; |
||||
|
Color = color; |
||||
|
} |
||||
|
|
||||
|
public override bool Equals(object obj) |
||||
|
{ |
||||
|
if (obj is CoordinateColorPair other) |
||||
|
return X == other.X && Y == other.Y && Color == other.Color; |
||||
|
return false; |
||||
|
} |
||||
|
|
||||
|
public override int GetHashCode() |
||||
|
{ |
||||
|
return (X, Y, Color).GetHashCode(); |
||||
|
} |
||||
|
} |
||||
@ -1,5 +1,5 @@ |
|||||
fileFormatVersion: 2 |
fileFormatVersion: 2 |
||||
guid: b1a0228ae98882d43974484e55dca280 |
guid: e9a4d6c1d5ec9674d9cfd40bdb9c2876 |
||||
MonoImporter: |
MonoImporter: |
||||
externalObjects: {} |
externalObjects: {} |
||||
serializedVersion: 2 |
serializedVersion: 2 |
||||
|
@ -1,5 +1,5 @@ |
|||||
fileFormatVersion: 2 |
fileFormatVersion: 2 |
||||
guid: 5b07afdbcf13e43438545d591cfd2e4b |
guid: 741f3a676aaf67e458b1f5f2dfb9dea0 |
||||
DefaultImporter: |
DefaultImporter: |
||||
externalObjects: {} |
externalObjects: {} |
||||
userData: |
userData: |
||||
Loading…
Reference in new issue