보스 아이스 골렘 완료

This commit is contained in:
Ino 2025-05-23 15:44:50 +09:00
parent 84194e23de
commit ab48357f89
19 changed files with 289 additions and 4970 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,139 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &113285305800631535
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6274153539195772616}
- component: {fileID: 3608358644939701834}
m_Layer: 0
m_Name: Effect_IceGolem_Skill2_Hit
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &6274153539195772616
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 113285305800631535}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 6697069676982927724}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &3608358644939701834
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 113285305800631535}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 456d2bd1c5c2e5e4b8b948836c4975a4, type: 3}
m_Name:
m_EditorClassIdentifier:
NoUseParticleTime: 1
OffTime: 2
e_EffectLocation: 0
--- !u!1001 &1649642619532142209
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 6274153539195772616}
m_Modifications:
- target: {fileID: 5338014997087086573, guid: 52ec1e5511e4e5f48afba5374d324fdd,
type: 3}
propertyPath: m_LocalScale.x
value: 0.4
objectReference: {fileID: 0}
- target: {fileID: 5338014997087086573, guid: 52ec1e5511e4e5f48afba5374d324fdd,
type: 3}
propertyPath: m_LocalScale.y
value: 0.4
objectReference: {fileID: 0}
- target: {fileID: 5338014997087086573, guid: 52ec1e5511e4e5f48afba5374d324fdd,
type: 3}
propertyPath: m_LocalScale.z
value: 0.4
objectReference: {fileID: 0}
- target: {fileID: 5338014997087086573, guid: 52ec1e5511e4e5f48afba5374d324fdd,
type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5338014997087086573, guid: 52ec1e5511e4e5f48afba5374d324fdd,
type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5338014997087086573, guid: 52ec1e5511e4e5f48afba5374d324fdd,
type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5338014997087086573, guid: 52ec1e5511e4e5f48afba5374d324fdd,
type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5338014997087086573, guid: 52ec1e5511e4e5f48afba5374d324fdd,
type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5338014997087086573, guid: 52ec1e5511e4e5f48afba5374d324fdd,
type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5338014997087086573, guid: 52ec1e5511e4e5f48afba5374d324fdd,
type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5338014997087086573, guid: 52ec1e5511e4e5f48afba5374d324fdd,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5338014997087086573, guid: 52ec1e5511e4e5f48afba5374d324fdd,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5338014997087086573, guid: 52ec1e5511e4e5f48afba5374d324fdd,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5338014997087086576, guid: 52ec1e5511e4e5f48afba5374d324fdd,
type: 3}
propertyPath: m_Name
value: FX_EarthSkill_Hit_air_03
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 52ec1e5511e4e5f48afba5374d324fdd, type: 3}
--- !u!4 &6697069676982927724 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 5338014997087086573, guid: 52ec1e5511e4e5f48afba5374d324fdd,
type: 3}
m_PrefabInstance: {fileID: 1649642619532142209}
m_PrefabAsset: {fileID: 0}

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 2f4b1c6b2f8a6064aa545f1e75ddb702
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -138,7 +138,7 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 4840252169106100, guid: d262d8efb01ccc8429d022747481318d, type: 3}
propertyPath: m_LocalPosition.y
value: 0
value: -0.3
objectReference: {fileID: 0}
- target: {fileID: 4840252169106100, guid: d262d8efb01ccc8429d022747481318d, type: 3}
propertyPath: m_LocalPosition.z

View File

@ -59,7 +59,7 @@ Transform:
m_GameObject: {fileID: 5389208046211158943}
serializedVersion: 2
m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068}
m_LocalPosition: {x: 0, y: -0, z: 9}
m_LocalPosition: {x: 0, y: 0.01, z: 9}
m_LocalScale: {x: 1.8, y: 18, z: 0.5}
m_ConstrainProportionsScale: 0
m_Children: []

View File

@ -52,7 +52,7 @@ BoxCollider:
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Size: {x: 4, y: 5, z: 4}
m_Size: {x: 3, y: 5, z: 4}
m_Center: {x: 0, y: 0, z: 0}
--- !u!114 &-6224349354744785331
MonoBehaviour:
@ -68,6 +68,6 @@ MonoBehaviour:
m_EditorClassIdentifier:
ColliderLayer: Actor
m_Pierce: 1
str_HitEffect:
str_HitEffect: Effect_IceGolem_Skill2_Hit
m_ShowTimeOverEffect: 0
FollowTarget: 0

View File

@ -5315,7 +5315,7 @@ Transform:
m_GameObject: {fileID: 8517633285600792639}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0.5, z: 0}
m_LocalPosition: {x: 0, y: 0.25, z: 0}
m_LocalScale: {x: 0.5, y: 0.5, z: 0.5}
m_ConstrainProportionsScale: 0
m_Children:

View File

@ -748,8 +748,10 @@ GameObject:
m_Component:
- component: {fileID: 868229579}
- component: {fileID: 868229578}
- component: {fileID: 868229581}
- component: {fileID: 868229580}
m_Layer: 0
m_Name: AddrResourceMgr
m_Name: Mgr
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@ -782,6 +784,30 @@ Transform:
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &868229580
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 868229577}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: cc1d3bc18379c0a4196064b2ab851346, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &868229581
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 868229577}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 205e9f58da95dca43bcd6f29f4cc3b41, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &895193284
GameObject:
m_ObjectHideFlags: 0
@ -1526,50 +1552,6 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1694741366}
m_CullTransparentMesh: 1
--- !u!1 &1718981731
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1718981732}
- component: {fileID: 1718981733}
m_Layer: 0
m_Name: CoroutineMgr
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1718981732
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1718981731}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1718981733
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1718981731}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 205e9f58da95dca43bcd6f29f4cc3b41, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &1902488690
GameObject:
m_ObjectHideFlags: 0
@ -1759,5 +1741,4 @@ SceneRoots:
- {fileID: 868229579}
- {fileID: 718788929}
- {fileID: 608854885}
- {fileID: 1718981732}
- {fileID: 1601176392}

View File

@ -850,6 +850,8 @@ public class Actor : MyCoroutine
}
transform.position = targetPos; // 최종 위치 설정
if (!DSUtil.IsValidPos_onNaveMesh(targetPos))
transform.position = DSUtil.Get_RandomPos_onNavMesh(targetPos);
}
public void Set_Invisible(float invisibleTime, Action actVisible) { StartCoroutine(Co_Invisible(invisibleTime, actVisible)); }
IEnumerator Co_Invisible(float invisibleTime, Action actVisible)
@ -1036,6 +1038,7 @@ public class Actor : MyCoroutine
if (dic_ccData[eCC.Attract].CCTime > 0f) return true;
if (dic_ccData[eCC.KnockedAirborne].CCTime > 0f) return true;
if (!ignoreknockback && dic_ccData[eCC.KnockBack].CCTime > 0f) return true;
if (!ignoreknockback && dic_ccData[eCC.KnockBack_byHitter].CCTime > 0f) return true;
if (dic_ccData[eCC.Stun].CCTime > 0f) return true;
return false;
}
@ -1259,8 +1262,17 @@ public class Actor : MyCoroutine
case eSkillExtraType.Blind:
GlobalVolumeMgr.Ins.Set(1, LifeTime);
break;
case eSkillExtraType.KnockbackStun:
KnockBack(val1, 4f, () => { Stun(val2, true); });
case eSkillExtraType.KnockBack_byHitter:
{
var a = _dinfo.Beater.Get_position();
var b = Get_position();
// 왼쪽 a == 0,0,0 b == -1,0,0
// 오른쪽 a == 0,0.0 b == 1,0,0
// 앞 a == 0,0,0 b == 0,0,1
// 뒤 a == 0,0,0 b == 0,0,-1
Knockback_byHitter((b - a).normalized, val1, 10.0f, () => { Stun(val2, true); });
TimeMgr.Ins.Set_TimeScale(0.025f, 0.05f);
}
break;
}
@ -1603,6 +1615,8 @@ public class Actor : MyCoroutine
if (dic_ccData[eCC.KnockBack].CCTime < 0.1f) dic_ccData[eCC.KnockBack].CCTime = 0.1f;
dic_ccData[eCC.KnockBack].CCReduceTime += 0.05f;
StopMove_Imm(false);
while (dic_ccData[eCC.KnockBack].CCTime > 0f)
{
dic_ccData[eCC.KnockBack].CCTime -= Time.deltaTime;
@ -1612,7 +1626,6 @@ public class Actor : MyCoroutine
}
dic_ccData[eCC.KnockBack].CCTime = 0f;
On_NavMeshAgent();
after?.Invoke();
if (StunAfterKnockBackTime > 0)
@ -1620,6 +1633,8 @@ public class Actor : MyCoroutine
Stun(StunAfterKnockBackTime, true);
StunAfterKnockBackTime = 0f;
}
else
On_NavMeshAgent();
#if UNITY_EDITOR
if (SceneManager.GetActiveScene().name == "StatTest")
@ -1630,6 +1645,44 @@ public class Actor : MyCoroutine
}
public void Stun_AfterKnockBack(float time) { StunAfterKnockBackTime = time; }
#endregion
#region :
public virtual void Knockback_byHitter(Vector3 dir, double _time, float speed = 4f, Action after = null, bool ignorePreknockback = false)
{
if (m_Stat.Get_Stat(eStat.CC_Immunity) > 0) return;
if (IsRole(eRole.OBJ) || IsSubRole(eSubRol.Boss) || DSUtil.CheckNull(m_NavMeshAgent)) return;
StopCoroutine(nameof(Co_Knockback_byHitter)); // 중복 방지
StartCoroutine(Co_Knockback_byHitter(dir, _time, speed, after));
}
IEnumerator Co_Knockback_byHitter(Vector3 dir, double _time, float speed, Action after)
{
dic_ccData[eCC.KnockBack_byHitter].CCTime = _time;
m_NavMeshAgent.enabled = false;
while (dic_ccData[eCC.KnockBack_byHitter].CCTime > 0f)
{
dic_ccData[eCC.KnockBack_byHitter].CCTime -= Time.deltaTime;
transform.position += (Time.deltaTime * speed * dir);
Set_Warp(transform.position);
yield return null;
}
after?.Invoke();
if (StunAfterKnockBackTime > 0)
{
Stun(StunAfterKnockBackTime, true);
StunAfterKnockBackTime = 0f;
}
else
On_NavMeshAgent();
#if UNITY_EDITOR
if (SceneManager.GetActiveScene().name == "StatTest")
transform.localPosition = Vector3.zero;
#endif
}
#endregion
#region :
public virtual void Attract(Vector3 _pos)
{

View File

@ -39,9 +39,7 @@ public class Boss_IceGolem : BossMobActor
CoolTime_Skill1 = 1f;
CoolTime_Skill2 = 2f;
CoolTime_Skill1 = 100f;
CoolTime_Skill2 = 1f;
Skill1CoolTime = 100f;
Skill1CoolTime = CoolTime_Skill1 = 10f;
Skill2CoolTime = 1f;
}
@ -136,6 +134,6 @@ public class Boss_IceGolem : BossMobActor
protected override void Set_Skill2Projectile(ProjectileBase pb)
{
var pd = pb.Get_ProjectTileData();
pd.Set_SkillExtra_MakeSkillListTableData(eSkillExtraType.KnockbackStun, Skill2KnockBackTime, Skill2StunTime);
pd.Set_SkillExtra_MakeSkillListTableData(eSkillExtraType.KnockBack_byHitter, Skill2KnockBackTime, Skill2StunTime);
}
}

View File

@ -0,0 +1,22 @@
using System.Collections;
using UnityEngine;
public class TimeMgr : MonoBehaviourSingletonTemplate<TimeMgr>
{
private void Start()
{
DontDestroy();
}
public void Set_TimeScale(float delaytime, float _timescale)
{
StartCoroutine(Run_Coroutine(delaytime, _timescale));
}
IEnumerator Run_Coroutine(float delaytime, float _timescale)
{
Time.timeScale = _timescale;
yield return new WaitForSeconds(delaytime);
Time.timeScale = 1f;
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: cc1d3bc18379c0a4196064b2ab851346
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -8,7 +8,7 @@ public enum eSkillTarget { Enemy, Self, SelfEnemy, Team, Pet }
public enum eSkillExtraType { None, Frost, Cure, Freezing, Blood, Poison, Burn, Stun, Slow, StatUp, ManaShield, SwordShield,
SpeedUp, DefenceDecrease, Aggro, VampirHeal, Knockback, Airborne, Curse, ManaBurn, HPBurn,
SilenceCurse, Barrier, Reincarnation, Blind, PerHPBuff_SPD, PerHPBuff_ADEF, PerHPBuff_AMDEF,
PerHPBuff_AASPD, PerHPBuff_AMSPD, PerHPBuff_Projectile, KnockbackStun, Revive30 }
PerHPBuff_AASPD, PerHPBuff_AMSPD, PerHPBuff_Projectile, KnockBack_byHitter, Revive30 }
public class SkillListTableData : TableDataBase
{

View File

@ -65,7 +65,8 @@ public class MonsterSimpleInfo : MonoBehaviourSingletonTemplate<MonsterSimpleInf
{
sprites[1].canvasRenderer.SetAlpha(1f);
MyValue.MyPC.Change_Target(true, m_Actor);
MyValue.m_RealCamera.Set_LockTarget(m_Actor.transform);
if (m_Actor.IsRole(eRole.Mob) && m_Actor.IsSubRole(eSubRol.Boss))
MyValue.m_RealCamera.Set_LockTarget(m_Actor.transform);
}
else
Set_DelLockTarget(false);

View File

@ -14,6 +14,9 @@ using PlayFab.ClientModels;
using UnityEngine.AI;
using CodeStage.AntiCheat.ObscuredTypes;
using static UnityEngine.GraphicsBuffer;
using static UnityEngine.UI.Image;
using Unity.Burst.CompilerServices;
@ -961,6 +964,17 @@ public static partial class DSUtil
// Return the random reachable location on the NavMesh
return randomPoint;
}
public static bool IsValidPos_onNaveMesh(Vector3 pos, float maxDistance = 0f)
{
NavMeshHit hit;
// maxDistance 안에서 pos에 가장 가까운 NavMesh 위치 찾기
if (NavMesh.SamplePosition(pos, out hit, maxDistance, NavMesh.AllAreas))
{
// 유효한 위치가 있고 너무 멀리 떨어지지 않았으면 true
return true;
}
return false;
}
static List<ItemData> list_CombineSameItem = new List<ItemData>();
public static List<ItemData> CombineSameItem(List<ItemData> lst)

View File

@ -15,7 +15,7 @@ public enum eCC {
ATK_Mul, DEF_Mul, MDEF_Mul, PerHPBuff_AASPD, PerHPBuff_AMSPD,
// 움직임 제한
Freeze, Attract, KnockedAirborne, KnockBack, Stun,
Freeze, Attract, KnockedAirborne, KnockBack, Stun, KnockBack_byHitter,
Max }
public enum eAddExtraType { None,