Browse Source

Merge pull request '0625提交' (#134) from dev-0624-yjm into dev-1217

Reviewed-on: #134
pull/135/head
yjm484 6 months ago
parent
commit
41811c701b
  1. 2
      ColorlessWorld-2024-4-2/Assets/ArtAssets/0617_遗物.meta
  2. 18
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/ContaminatusImmortalis.cs
  3. 7
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Enemy.cs
  4. 8
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyNode.cs
  5. 2
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Gravitus.cs
  6. 31
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/PrismReflector.cs
  7. 25
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/StonePillar.cs
  8. 4
      ColorlessWorld-2024-4-2/Assets/Scripts/EnemyPlanFunction/EnemyAction.cs

2
ColorlessWorld-2024-4-2/Assets/ArtAssets/0617_遗物.meta

@ -1,6 +1,6 @@
fileFormatVersion: 2
<<<<<<<< HEAD:ColorlessWorld-2024-4-2/Assets/Prefab/MapNodePrefab/EnemyRangeMark.meta
guid: 7040b5d9d3751354894af163292234a4
guid: 49d4f6582e94a5640b516eb9063f29a2
========
guid: faf285059766ba34685517cd09eba7ae
>>>>>>>> origin/dev-1217:ColorlessWorld-2024-4-2/Assets/ArtAssets/0617_遗物.meta

18
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/ContaminatusImmortalis.cs

@ -83,14 +83,28 @@ public class ContaminatusImmortalis : Enemy
case EnemyAction_ShootAndPollute:
canMove = false;
canAttack = false;
canAoe = false;
canAoe = true;
break;
}
}
public override void GetAimTarget()
{
if (targets != null)
{
targets.Clear();
}
switch (enemyNode.currentActionScript)
{
case EnemyAction_ShootAndPollute:
targets = MathTool.GetRandomElements(getNodeTools.getAllNotBlackNodes(), 14);
break;
}
}
public IEnumerator PolluteAction()
{
HashSet<MapUnity> targets = MathTool.GetRandomElements(getNodeTools.getAllNotBlackNodes(), 14);
//HashSet<MapUnity> targets = MathTool.GetRandomElements(getNodeTools.getAllNotBlackNodes(), 14);
PolluteAndDamageNodes(targets,Name.NodeColor.Black, enemyNode.currentActionScript.colA, 1);
yield return new WaitForSeconds(0.5f);
}

7
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Enemy.cs

@ -26,6 +26,7 @@ public class Enemy : MonoBehaviour
public ZeroToFiveCircularCounter counter = new ZeroToFiveCircularCounter();
public HashSet<MapUnity> targets = new HashSet<MapUnity>();
[Header("Ãé×¼ÉäÏßͼ²ãÌÞ³ý")]
public LayerMask layerMask;
@ -54,6 +55,7 @@ public class Enemy : MonoBehaviour
enemyNode.enemyUIBar.SwitchIntention(enemyAction);
ActionValRandom();
BoolCheck();
GetAimTarget();
enemyNode.enemy.SettlePlannText(enemyNode.enemy.enemyAction);
enemyNode.enemy.SettleRangeAttack();
}
@ -74,6 +76,11 @@ public class Enemy : MonoBehaviour
public virtual void BoolCheck()
{
}
public virtual void GetAimTarget()
{
}
public virtual void SettlePlannText(EnemyAction currentAction)
{

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

@ -166,12 +166,20 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver
{
ShowAttackPoolRange(attackRangePool);
}
if (enemy.canAoe)
{
ShowAttackPoolRange(enemy.targets);
}
break;
case false:
if (enemy.canAttack)
{
ShowAttackPoolRange(attackRangePool);
}
if (enemy.canAoe)
{
ShowAttackPoolRange(enemy.targets);
}
break;
}

2
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Gravitus.cs

@ -169,7 +169,7 @@ public class Gravitus : Enemy
public IEnumerator PolluteAction()
{
MapUnity currentNode = getNodeTools.LocationToGetNode(enemyNode.positionX, enemyNode.positionY);
HashSet<MapUnity> targets = new HashSet<MapUnity> { currentNode };
targets = new HashSet<MapUnity> { currentNode };
getNodeTools.getCircleNodeForBoom(targets, 2);
int count = ClearNodesReturnCount(targets);
enemyNode.EnemyState.shieldValue += count * 2;

31
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/PrismReflector.cs

@ -53,7 +53,7 @@ public class PrismReflector : Enemy
enemyNode.currentActionScript.SettleText(enemyNode, enemyNode.currentActionScript.colA.ToString(), "对生命值最低的单位施加"+ enemyNode.currentActionScript.colA + "点护盾并随机污染三格地块");
break;
case EnemyAction_Spell:
enemyNode.currentActionScript.SettleText(enemyNode, "", "吸收前方1范围的玩家颜色地块");
enemyNode.currentActionScript.SettleText(enemyNode, "", "吸收随机1范围的玩家颜色地块");
break;
}
@ -74,6 +74,25 @@ public class PrismReflector : Enemy
}
public override void GetAimTarget()
{
if (targets != null)
{
targets.Clear();
}
switch (enemyNode.currentActionScript)
{
case EnemyAction_ShieldAndPollution:
targets = MathTool.GetRandomElements(getNodeTools.getAllBlackNodes(), 3);
break;
case EnemyAction_Spell:
MapUnity currentNode = MathTool.GetRandomElements(getNodeTools.getAllNodes(), 1).ElementAt(0);
targets = new HashSet<MapUnity> { currentNode };
getNodeTools.getCircleNodeForBoom(targets, 1);
break;
}
}
public override void BoolCheck()
{
switch (enemyNode.currentActionScript)
@ -81,12 +100,12 @@ public class PrismReflector : Enemy
case EnemyAction_ShieldAndPollution:
canMove = false;
canAttack = false;
canAoe = false;
canAoe = true;
break;
case EnemyAction_Spell:
canMove = false;
canAttack = false;
canAoe = false;
canAoe = true;
break;
}
}
@ -112,16 +131,16 @@ public class PrismReflector : Enemy
}
}
EnemyManager.Instance.enemySpeedSortingList[index].EnemyState.shieldValue += EnemyManager.Instance.enemySpeedSortingList[index].ShieldCalculation(enemyNode.currentActionScript.colA);
HashSet<MapUnity> targets = getNodeTools.getAllNotBlackNodes();
//HashSet<MapUnity> targets = getNodeTools.getAllNotBlackNodes();
RandomPollute(targets, 3);
yield return new WaitForSeconds(0.5f);
}
public IEnumerator PolluteAction()
{
MapUnity currentNode = MathTool.GetRandomElements(getNodeTools.getAllNodes(), 1).ElementAt(0);
/*MapUnity currentNode = MathTool.GetRandomElements(getNodeTools.getAllNodes(), 1).ElementAt(0);
HashSet<MapUnity> targets = new HashSet<MapUnity> { currentNode };
getNodeTools.getCircleNodeForBoom(targets, 1);
getNodeTools.getCircleNodeForBoom(targets, 1);*/
ClearNodes(targets);
yield return new WaitForSeconds(0.5f);
}

25
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/StonePillar.cs

@ -60,7 +60,7 @@ public class StonePillar : Enemy
Debug.Log("ÕæÕýÐж¯ÊÇ:" + enemyAction);
switch (enemyAction)
{
case EnemyAction_ShootAndPollute:
case EnemyAction_Pollution:
yield return StartCoroutine(PolluteAction());
break;
}
@ -71,7 +71,7 @@ public class StonePillar : Enemy
{
switch (enemyNode.currentActionScript)
{
case EnemyAction_ShootAndPollute:
case EnemyAction_Pollution:
canMove = false;
canAttack = false;
canAoe = true;
@ -80,14 +80,29 @@ public class StonePillar : Enemy
}
public override void GetAimTarget()
{
if (targets != null)
{
targets.Clear();
}
switch (enemyNode.currentActionScript)
{
case EnemyAction_Pollution:
MapUnity currentNode = MathTool.GetRandomElements(getNodeTools.getAllNodes(), 1).ElementAt(0);
targets = new HashSet<MapUnity> { currentNode };
getNodeTools.getCircleNodeForBoom(targets, 1);
break;
}
Debug.Log("targetsÊýÁ¿ÊÇ" + targets.Count);
}
public IEnumerator PolluteAction()
{
MapUnity currentNode = MathTool.GetRandomElements(getNodeTools.getAllNodes(), 1).ElementAt(0);
/*MapUnity currentNode = MathTool.GetRandomElements(getNodeTools.getAllNodes(), 1).ElementAt(0);
HashSet<MapUnity> targets = new HashSet<MapUnity> { currentNode };
getNodeTools.getCircleNodeForBoom(targets, 1);
getNodeTools.getCircleNodeForBoom(targets, 1);*/
PolluteNodes(targets,Name.NodeColor.Black);
yield return new WaitForSeconds(0.5f);
}

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

@ -81,6 +81,10 @@ public class EnemyAction
{
mapNode.markInfluenced = false;
}
foreach (var mapNode in enemyNode.enemy.targets)
{
mapNode.markInfluenced = false;
}
}
public virtual void FadeAttackRangeAll(EnemyNode enemyNode)
{

Loading…
Cancel
Save