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 fileFormatVersion: 2
<<<<<<<< HEAD:ColorlessWorld-2024-4-2/Assets/Prefab/MapNodePrefab/EnemyRangeMark.meta <<<<<<<< HEAD:ColorlessWorld-2024-4-2/Assets/Prefab/MapNodePrefab/EnemyRangeMark.meta
guid: 7040b5d9d3751354894af163292234a4 guid: 49d4f6582e94a5640b516eb9063f29a2
======== ========
guid: faf285059766ba34685517cd09eba7ae guid: faf285059766ba34685517cd09eba7ae
>>>>>>>> origin/dev-1217:ColorlessWorld-2024-4-2/Assets/ArtAssets/0617_遗物.meta >>>>>>>> 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: case EnemyAction_ShootAndPollute:
canMove = false; canMove = false;
canAttack = 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; break;
} }
} }
public IEnumerator PolluteAction() 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); PolluteAndDamageNodes(targets,Name.NodeColor.Black, enemyNode.currentActionScript.colA, 1);
yield return new WaitForSeconds(0.5f); 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 ZeroToFiveCircularCounter counter = new ZeroToFiveCircularCounter();
public HashSet<MapUnity> targets = new HashSet<MapUnity>();
[Header("Ãé×¼ÉäÏßͼ²ãÌÞ³ý")] [Header("Ãé×¼ÉäÏßͼ²ãÌÞ³ý")]
public LayerMask layerMask; public LayerMask layerMask;
@ -54,6 +55,7 @@ public class Enemy : MonoBehaviour
enemyNode.enemyUIBar.SwitchIntention(enemyAction); enemyNode.enemyUIBar.SwitchIntention(enemyAction);
ActionValRandom(); ActionValRandom();
BoolCheck(); BoolCheck();
GetAimTarget();
enemyNode.enemy.SettlePlannText(enemyNode.enemy.enemyAction); enemyNode.enemy.SettlePlannText(enemyNode.enemy.enemyAction);
enemyNode.enemy.SettleRangeAttack(); enemyNode.enemy.SettleRangeAttack();
} }
@ -74,6 +76,11 @@ public class Enemy : MonoBehaviour
public virtual void BoolCheck() public virtual void BoolCheck()
{ {
}
public virtual void GetAimTarget()
{
} }
public virtual void SettlePlannText(EnemyAction currentAction) 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); ShowAttackPoolRange(attackRangePool);
} }
if (enemy.canAoe)
{
ShowAttackPoolRange(enemy.targets);
}
break; break;
case false: case false:
if (enemy.canAttack) if (enemy.canAttack)
{ {
ShowAttackPoolRange(attackRangePool); ShowAttackPoolRange(attackRangePool);
} }
if (enemy.canAoe)
{
ShowAttackPoolRange(enemy.targets);
}
break; break;
} }

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

@ -169,7 +169,7 @@ public class Gravitus : Enemy
public IEnumerator PolluteAction() public IEnumerator PolluteAction()
{ {
MapUnity currentNode = getNodeTools.LocationToGetNode(enemyNode.positionX, enemyNode.positionY); MapUnity currentNode = getNodeTools.LocationToGetNode(enemyNode.positionX, enemyNode.positionY);
HashSet<MapUnity> targets = new HashSet<MapUnity> { currentNode }; targets = new HashSet<MapUnity> { currentNode };
getNodeTools.getCircleNodeForBoom(targets, 2); getNodeTools.getCircleNodeForBoom(targets, 2);
int count = ClearNodesReturnCount(targets); int count = ClearNodesReturnCount(targets);
enemyNode.EnemyState.shieldValue += count * 2; 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 + "点护盾并随机污染三格地块"); enemyNode.currentActionScript.SettleText(enemyNode, enemyNode.currentActionScript.colA.ToString(), "对生命值最低的单位施加"+ enemyNode.currentActionScript.colA + "点护盾并随机污染三格地块");
break; break;
case EnemyAction_Spell: case EnemyAction_Spell:
enemyNode.currentActionScript.SettleText(enemyNode, "", "吸收前方1范围的玩家颜色地块"); enemyNode.currentActionScript.SettleText(enemyNode, "", "吸收随机1范围的玩家颜色地块");
break; 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() public override void BoolCheck()
{ {
switch (enemyNode.currentActionScript) switch (enemyNode.currentActionScript)
@ -81,12 +100,12 @@ public class PrismReflector : Enemy
case EnemyAction_ShieldAndPollution: case EnemyAction_ShieldAndPollution:
canMove = false; canMove = false;
canAttack = false; canAttack = false;
canAoe = false; canAoe = true;
break; break;
case EnemyAction_Spell: case EnemyAction_Spell:
canMove = false; canMove = false;
canAttack = false; canAttack = false;
canAoe = false; canAoe = true;
break; break;
} }
} }
@ -112,16 +131,16 @@ public class PrismReflector : Enemy
} }
} }
EnemyManager.Instance.enemySpeedSortingList[index].EnemyState.shieldValue += EnemyManager.Instance.enemySpeedSortingList[index].ShieldCalculation(enemyNode.currentActionScript.colA); 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); RandomPollute(targets, 3);
yield return new WaitForSeconds(0.5f); yield return new WaitForSeconds(0.5f);
} }
public IEnumerator PolluteAction() 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 }; HashSet<MapUnity> targets = new HashSet<MapUnity> { currentNode };
getNodeTools.getCircleNodeForBoom(targets, 1); getNodeTools.getCircleNodeForBoom(targets, 1);*/
ClearNodes(targets); ClearNodes(targets);
yield return new WaitForSeconds(0.5f); 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); Debug.Log("ÕæÕýÐж¯ÊÇ:" + enemyAction);
switch (enemyAction) switch (enemyAction)
{ {
case EnemyAction_ShootAndPollute: case EnemyAction_Pollution:
yield return StartCoroutine(PolluteAction()); yield return StartCoroutine(PolluteAction());
break; break;
} }
@ -71,7 +71,7 @@ public class StonePillar : Enemy
{ {
switch (enemyNode.currentActionScript) switch (enemyNode.currentActionScript)
{ {
case EnemyAction_ShootAndPollute: case EnemyAction_Pollution:
canMove = false; canMove = false;
canAttack = false; canAttack = false;
canAoe = true; 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() 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 }; HashSet<MapUnity> targets = new HashSet<MapUnity> { currentNode };
getNodeTools.getCircleNodeForBoom(targets, 1); getNodeTools.getCircleNodeForBoom(targets, 1);*/
PolluteNodes(targets,Name.NodeColor.Black); PolluteNodes(targets,Name.NodeColor.Black);
yield return new WaitForSeconds(0.5f); 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; mapNode.markInfluenced = false;
} }
foreach (var mapNode in enemyNode.enemy.targets)
{
mapNode.markInfluenced = false;
}
} }
public virtual void FadeAttackRangeAll(EnemyNode enemyNode) public virtual void FadeAttackRangeAll(EnemyNode enemyNode)
{ {

Loading…
Cancel
Save