fix:调整青蛙boss吐蛋技能

This commit is contained in:
bzx
2026-01-14 11:45:33 +08:00
parent 66f428cbff
commit 9b7b64bbb1
11 changed files with 53 additions and 45 deletions

View File

@ -6,23 +6,16 @@
<component name="ChangeListManager">
<list default="true" id="dc25d22b-f923-4bb5-9f5e-33e2a04fd86d" name="更改" comment="">
<change beforePath="$PROJECT_DIR$/.idea/.idea.FutureMen2/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/.idea.FutureMen2/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/DC/BOSS巨龟/M_Clypeosaurus.mat" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/DC/BOSS巨龟/M_Clypeosaurus.mat" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/DC/BOSS巨龟/Textures/T_Clypeosaurus_Normal.jpg" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/DC/BOSS巨龟/Textures/T_Clypeosaurus_Normal.jpg" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Luke Peek/_Common/Demo Scene/Floor.mat" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Luke Peek/_Common/Demo Scene/Floor.mat" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Monsters Full Pack Vol 1/Monsters Pack Vol 1/Cavecrawler/Materials/M_Cavecrawler.mat" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Monsters Full Pack Vol 1/Monsters Pack Vol 1/Cavecrawler/Materials/M_Cavecrawler.mat" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Monsters Full Pack Vol 1/Monsters Pack Vol 6/Gryllunguis/Gryllunguis_Controller.controller" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Monsters Full Pack Vol 1/Monsters Pack Vol 6/Gryllunguis/Gryllunguis_Controller.controller" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/SrRubfish_VFX_02/Materials/FX_MT_FlipbookDots_01.mat" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/SrRubfish_VFX_02/Materials/FX_MT_FlipbookDots_01.mat" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/SrRubfish_VFX_02/Materials/FX_MT_LateralSlide_02.mat" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/SrRubfish_VFX_02/Materials/FX_MT_LateralSlide_02.mat" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/SrRubfish_VFX_02/Prefabs/FX_PF_WaterSimpleProjectile_Traveling.prefab" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/SrRubfish_VFX_02/Prefabs/FX_PF_WaterSimpleProjectile_Traveling.prefab" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/StreamingAssets/build_info" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/StreamingAssets/build_info" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/_FutureMen2/Prefabs/Enemys/FrogBoss/FrogBoss.asset" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/_FutureMen2/Prefabs/Enemys/FrogBoss/FrogBoss.asset" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/_FutureMen2/Prefabs/Enemys/FrogBoss/FrogBoss.controller" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/_FutureMen2/Prefabs/Enemys/FrogBoss/FrogBoss.controller" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/_FutureMen2/Prefabs/Enemys/FrogBoss/FrogBoss.prefab" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/_FutureMen2/Prefabs/Enemys/FrogBoss/FrogBoss.prefab" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/_FutureMen2/Prefabs/Enemys/TortoiseBoss/bodyQuad.mat" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/_FutureMen2/Prefabs/Enemys/TortoiseBoss/bodyQuad.mat" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/_FutureMen2/Scenes/Company1Floor.unity" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/_FutureMen2/Scenes/Company1Floor.unity" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/_FutureMen2/Scripts/Data/EnemyData.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/_FutureMen2/Scripts/Data/EnemyData.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/_FutureMen2/Prefabs/Enemys/FrogBoss/FrogBugEnemy.prefab" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/_FutureMen2/Prefabs/Enemys/FrogBoss/FrogBugEnemy.prefab" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/_FutureMen2/Scripts/Actions/FrogBossActions.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/_FutureMen2/Scripts/Actions/FrogBossActions.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/_FutureMen2/Scripts/Actions/TortoiseActions.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/_FutureMen2/Scripts/Actions/TortoiseActions.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/_FutureMen2/Scripts/Enemy/Enemy/Enemy.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/_FutureMen2/Scripts/Enemy/Enemy/Enemy.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/_FutureMen2/Scripts/Enemy/FrogBoss/FrogBoss.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/_FutureMen2/Scripts/Enemy/FrogBoss/FrogBoss.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/_FutureMen2/Scripts/Manager/GameManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/_FutureMen2/Scripts/Manager/GameManager.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/_FutureMen2/Scripts/Enemy/FrogBoss/FrogBugEnemy.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/_FutureMen2/Scripts/Enemy/FrogBoss/FrogBugEnemy.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/_FutureMen2/Scripts/Enemy/FrogBoss/PoisonBall.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/_FutureMen2/Scripts/Enemy/FrogBoss/PoisonBall.cs" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -144,6 +137,7 @@
<workItem from="1768098628099" duration="753000" />
<workItem from="1768188404069" duration="18226000" />
<workItem from="1768273748606" duration="18086000" />
<workItem from="1768358503398" duration="3402000" />
</task>
<servers />
</component>

View File

@ -662,7 +662,7 @@ AnimatorStateTransition:
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0.25
m_TransitionDuration: 1.1643901
m_TransitionOffset: 0
m_ExitTime: 0.75
m_HasExitTime: 0

View File

@ -1 +1 @@
Build from CHINAMI-UKDLSK3 at 2026/1/13 18:40:51
Build from CHINAMI-UKDLSK3 at 2026/1/14 11:39:15

View File

@ -39,14 +39,15 @@ MonoBehaviour:
Enemy State","Instant":true,"SharedIntCurEnemyState":{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":null,"Int32mValue":3}},{"Type":"FrogBleepAttack","NodeData":{"Offset":"(122.1085,146.147156)"},"ID":25,"Name":"Frog
Bleep Attack","Instant":true,"SingletongueSpeed":25,"Singledamage":30},{"Type":"SetEnemyState","NodeData":{"Offset":"(301.763,152.9411)"},"ID":26,"Name":"Set
Enemy State","Instant":true,"SharedIntCurEnemyState":{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":null,"Int32mValue":1}}]}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(856.9219,125.071754)"},"ID":27,"Name":"Sequence","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"CheckEnemyState","NodeData":{"Offset":"(-92.63159,200.6238)"},"ID":28,"Name":"Check
Enemy State","Instant":true,"SharedIntCurEnemyState":{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":null,"Int32mValue":1}},{"Type":"FrogIdleMove","NodeData":{"Offset":"(119.10144,189.552551)"},"ID":29,"Name":"Frog
Enemy State","Instant":true,"SharedIntCurEnemyState":{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":null,"Int32mValue":1}},{"Type":"FrogIdleMove","NodeData":{"Offset":"(287.2224,209.761536)"},"ID":29,"Name":"Frog
Idle Move","Instant":true,"SinglemoveRadius":4,"SinglemoveAngle":90,"SinglestayTime":1.5,"SinglerotateSpeed":360}]}]},"DetachedTasks":[{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(-1353.33228,1086.19006)"},"ID":30,"Name":"Sequence","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"CheckCooldown","NodeData":{"Offset":"(-215.1163,191.6279)"},"ID":31,"Name":"Check
Cooldown","Instant":true,"CooldownTypetype":"Teleport"},{"Type":"SetEnemyState","NodeData":{"Offset":"(-36.0469666,193.953125)"},"ID":32,"Name":"Set
Enemy State","Instant":true,"SharedIntCurEnemyState":{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":null,"Int32mValue":3}},{"Type":"OctopusTeleport","NodeData":{"Offset":"(129.693481,190.210541)"},"ID":33,"Name":"Octopus
Teleport","Instant":true,"SinglemoveDuration":2,"SinglehideDuration":0.5},{"Type":"SetEnemyState","NodeData":{"Offset":"(295.5813,200)"},"ID":34,"Name":"Set
Enemy State","Instant":true,"SharedIntCurEnemyState":{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":null,"Int32mValue":1}}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(-295.414978,1233.45447)"},"ID":35,"Name":"Sequence","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"SetEnemyState","NodeData":{"Offset":"(-101.61293,120)"},"ID":36,"Name":"Set
Enemy State","Instant":true,"SharedIntCurEnemyState":{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":null,"Int32mValue":3}},{"Type":"OctopusTentacleAtk","NodeData":{"Offset":"(120,120)"},"ID":37,"Name":"Octopus
Tentacle Atk","Instant":true,"Int32attackCount":2}]}],"Variables":[{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":"attackmode","IsShared":true,"BooleanmValue":false},{"Type":"BehaviorDesigner.Runtime.SharedGameObject","Name":"self","IsShared":true},{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":"cooldownTimer","IsShared":true,"SinglemValue":15},{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":"skillReady","IsShared":true,"BooleanmValue":false},{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":"IsQteAttack","IsShared":true,"BooleanmValue":true},{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":"IsStopQte","IsShared":true,"BooleanmValue":false}]}'
Tentacle Atk","Instant":true,"Int32attackCount":2}]},{"Type":"FrogEggAttack","NodeData":{"Offset":"(1001.42859,577.1428)"},"ID":38,"Name":"Frog
Egg Attack","Instant":true,"Int32eggCount":12,"SingleshootInterval":0.15,"SinglefanAngle":60,"SinglelaunchHeight":3,"SingleflightTime":1.1}],"Variables":[{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":"attackmode","IsShared":true,"BooleanmValue":false},{"Type":"BehaviorDesigner.Runtime.SharedGameObject","Name":"self","IsShared":true},{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":"cooldownTimer","IsShared":true,"SinglemValue":15},{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":"skillReady","IsShared":true,"BooleanmValue":false},{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":"IsQteAttack","IsShared":true,"BooleanmValue":true},{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":"IsStopQte","IsShared":true,"BooleanmValue":false}]}'
fieldSerializationData:
typeName: []
fieldNameHash:

View File

@ -1031,6 +1031,7 @@ GameObject:
- component: {fileID: -4366665564013984747}
- component: {fileID: -1491859959607692579}
- component: {fileID: 7777068790013891191}
- component: {fileID: 7300574650919205589}
m_Layer: 3
m_Name: FrogBugEnemy
m_TagString: Enemy
@ -1069,7 +1070,7 @@ Animator:
m_Controller: {fileID: 9100000, guid: 8821a22a054de5d48829fb837ed28a55, type: 2}
m_CullingMode: 1
m_UpdateMode: 0
m_ApplyRootMotion: 1
m_ApplyRootMotion: 0
m_LinearVelocityBlending: 0
m_StabilizeFeet: 0
m_WarningMessage:
@ -1096,7 +1097,7 @@ MonoBehaviour:
bloodSlider: {fileID: 3873863944127844135}
enemyState: 0
explosionPre: {fileID: 0}
dieTime: 3
dieTime: 2
isShowEnd: 0
skill1Cooldown: 6
skill2Cooldown: 30
@ -1270,10 +1271,24 @@ CapsuleCollider:
m_ProvidesContacts: 1
m_Enabled: 1
serializedVersion: 2
m_Radius: 0.385175
m_Height: 1.5799111
m_Radius: 0.57
m_Height: 2.1
m_Direction: 2
m_Center: {x: 0, y: 0.62768173, z: 0}
m_Center: {x: 0, y: 0.62768173, z: -0.12}
--- !u!114 &7300574650919205589
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4891584589991081564}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 31b48c27550e9f9478dc3ee402bb930d, type: 3}
m_Name:
m_EditorClassIdentifier:
curEnemy: {fileID: 9068868098415327668}
player: {fileID: 0}
--- !u!1 &5238226244982169157
GameObject:
m_ObjectHideFlags: 0

View File

@ -91,7 +91,6 @@ public class FrogBleepAttack : Action
}
}
/// <summary>
/// 毒液弹攻击
/// </summary>
@ -204,7 +203,7 @@ public class FrogEggAttack : Action
boss.EggAttack();
yield return new WaitForSeconds(0.5f);
boss.aiPath.isStopped = true;
Transform firePoint = boss.eggFirePoint; // 嘴巴
float step = fanAngle / (eggCount - 1);
@ -245,7 +244,7 @@ public class FrogEggAttack : Action
);
FrogBugEnemy bug = egg.GetComponent<FrogBugEnemy>();
bug.SetAtk(boss.Data.Atk_2);
bug.SetAtk(boss.Data.Atk_2,boss.Data.Hp_CS2);
// 扇形方向
Vector3 dir = Quaternion.Euler(0, angle, 0) * boss.transform.forward;
@ -290,7 +289,11 @@ public class FrogIdleMove : Action
if (player == null)
return TaskStatus.Running;
if (boss.HasAnySkillReady())
{
boss.aiPath.isStopped = true;
return TaskStatus.Failure;
}
FaceToPlayer();
Move();

View File

@ -65,15 +65,15 @@ public class TortoiseSprintAttack : Action
Vector3 targetPos = player.position + dir * sprintDistance;
// A* 移动
boss.ai.maxSpeed = sprintSpeed;
boss.ai.isStopped = false;
boss.ai.destination = targetPos;
boss.aiPath.maxSpeed = sprintSpeed;
boss.aiPath.isStopped = false;
boss.aiPath.destination = targetPos;
// 面向移动方向
boss.transform.rotation = Quaternion.LookRotation(dir);
// 等待到达
while (!boss.ai.reachedEndOfPath)
while (!boss.aiPath.reachedEndOfPath)
{
if (boss.isDead)
{
@ -83,7 +83,7 @@ public class TortoiseSprintAttack : Action
yield return null;
}
boss.ai.isStopped = true;
boss.aiPath.isStopped = true;
boss.EndAttack();
}

View File

@ -54,17 +54,6 @@ public class Enemy : MonoBehaviour
public BehaviorTree behaviourTree;
// A* / RVO
private IAstarAI _ai;
public IAstarAI ai
{
get
{
if (_ai == null) _ai = GetComponent<IAstarAI>();
return _ai;
}
}
private AIPath _aiPath;
public AIPath aiPath
{
@ -168,6 +157,8 @@ public class Enemy : MonoBehaviour
ColliderComponent.enabled = false;
if(behaviourTree != null)
behaviourTree.enabled = false;
if(aiPath!=null)
aiPath.enabled = false;
StopAllCoroutines();
CoroutineTaskManager.Instance.WaitSecondTodo(() =>
{

View File

@ -23,6 +23,7 @@ public class FrogBoss : Enemy
{
clipQuadObj.transform.localPosition = new Vector3(0, -5f, 0);
mouthBoneHit.SetDamage(Data.Atk_1P);
bloodSlider.gameObject.SetActive(false);
}
public override void Update()
@ -46,6 +47,7 @@ public class FrogBoss : Enemy
CoroutineTaskManager.Instance.WaitSecondTodo(() =>
{
isShowEnd = true;
bloodSlider.gameObject.SetActive(true);
}, 2f);
});
}

View File

@ -43,9 +43,11 @@ public class FrogBugEnemy : Enemy
//蛋到达落点后 抖动两下 之后播放蛋破碎动画 播放后model打开 蛋消失 怪物切换成EnemyState.NormalAttack
}
public void SetAtk(float curAtk)
public void SetAtk(float curAtk,float maxHp)
{
atk = curAtk;
maxHealth = maxHp;
health = maxHp;
}
@ -260,7 +262,6 @@ public class FrogBugEnemy : Enemy
StopAllCoroutines();
StopAI();
anim.SetBool("IsDie",true);
}

View File

@ -1,3 +1,4 @@
using DragonLi.Core;
using UnityEngine;
[RequireComponent(typeof(Rigidbody))]
@ -36,9 +37,9 @@ public class PoisonBall : MonoBehaviour
private void OnCollisionEnter(Collision collision)
{
if (collision.gameObject.tag == "Ground")
if (collision.gameObject.tag == "Ground"|| collision.gameObject.tag == "Player")
{
GameObject ball= Instantiate(poisonPoolPrefab, transform.position, Quaternion.identity);
GameObject ball= Instantiate(poisonPoolPrefab, transform.position.ReflectVectorXOZ(), Quaternion.identity);
ball.GetComponent<PoisonPool>().SetDamage(poolDamage, poolTime);
Destroy(gameObject);
}