Angez_B 보스 기본 세팅, 기본 공격, 빛의 추종자

This commit is contained in:
Ino 2025-02-24 15:39:27 +09:00
parent c9c15917b6
commit ccbd389e85
14 changed files with 388 additions and 39 deletions

View File

@ -199,7 +199,7 @@ AnimatorStateMachine:
m_Position: {x: 360, y: -240, z: 0}
- serializedVersion: 1
m_State: {fileID: 110209958}
m_Position: {x: 100, y: -180, z: 0}
m_Position: {x: 360, y: -330, z: 0}
- serializedVersion: 1
m_State: {fileID: 110274110}
m_Position: {x: 360, y: -170, z: 0}
@ -216,7 +216,7 @@ AnimatorStateMachine:
m_StateMachineBehaviours: []
m_AnyStatePosition: {x: 120, y: -340, z: 0}
m_EntryPosition: {x: 120, y: -276, z: 0}
m_ExitPosition: {x: 120, y: -80, z: 0}
m_ExitPosition: {x: 120, y: -210, z: 0}
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
m_DefaultState: {fileID: 110209958}
--- !u!1101 &35596561822463083

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.

View File

@ -2459,7 +2459,7 @@ Transform:
m_GameObject: {fileID: 2138797020834234801}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 78.1, y: 0.01, z: 47.6}
m_LocalPosition: {x: 106.8, y: 0.01, z: 47.6}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
@ -2477,7 +2477,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 935c913087b349141aa632be4f8c2689, type: 3}
m_Name:
m_EditorClassIdentifier:
n_MonsterID: 10008
n_MonsterID: 10009
n_SpawnerId: 1
--- !u!1 &2246745228298233982
GameObject:

View File

@ -503,8 +503,8 @@ GameObject:
serializedVersion: 6
m_Component:
- component: {fileID: 3336133727429952487}
- component: {fileID: -3316453270984938914}
- component: {fileID: 3336133727422999559}
- component: {fileID: -6831191723551670216}
- component: {fileID: -8564066074108492486}
- component: {fileID: -6641780185587953727}
- component: {fileID: 1529792586914042084}
@ -525,13 +525,48 @@ Transform:
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_LocalScale: {x: 3, y: 3, z: 3}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 3336133727429952485}
- {fileID: 3336133727429952501}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &-3316453270984938914
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3336133727430254535}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5a5b29b1068015b4ca885a46b129c92a, type: 3}
m_Name:
m_EditorClassIdentifier:
gos_Effect: []
m_Role: 0
m_SubRole: 0
m_AttackType: 0
m_animation: {fileID: 0}
_target: {fileID: 0}
isTarget: 0
tf_MeeleAttackPos: {fileID: 0}
MagicID: 0
HealCount: 0
HealRate: 0.1
Skill1CoolTime: 20
Skill1Dmg: 2.8
Skill1DelayTime: 0.5
Skill1Count: 10
Skill1StunTime: 0.3
Perforation_Line: 0
Skill2CoolTime: 15
Skill2ChargingTime: 3
Skill2LifeTime: 2.5
Skill2Dmg: 1.2
Skill2DelayTime: 0.5
Skill2StunTime: 0.2
--- !u!95 &3336133727422999559
Animator:
serializedVersion: 5
@ -553,29 +588,6 @@ Animator:
m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorStateOnDisable: 0
m_WriteDefaultValuesOnDisable: 0
--- !u!114 &-6831191723551670216
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3336133727430254535}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f985004e8ad29cf428f80c433e48ab9c, type: 3}
m_Name:
m_EditorClassIdentifier:
gos_Effect: []
m_Role: 0
m_SubRole: 0
m_AttackType: 0
m_animation: {fileID: 0}
_target: {fileID: 0}
isTarget: 0
tf_MeeleAttackPos: {fileID: 0}
MagicID: 0
HealCount: 0
HealRate: 0.1
--- !u!65 &-8564066074108492486
BoxCollider:
m_ObjectHideFlags: 0
@ -595,7 +607,7 @@ BoxCollider:
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Size: {x: 1.3617501, y: 0.7951524, z: 0.59419984}
m_Size: {x: 0.9, y: 0.7951524, z: 0.3}
m_Center: {x: -0.00000011920929, y: 0.6431725, z: -0.013790637}
--- !u!195 &-6641780185587953727
NavMeshAgent:
@ -606,7 +618,7 @@ NavMeshAgent:
m_GameObject: {fileID: 3336133727430254535}
m_Enabled: 1
m_AgentTypeID: 0
m_Radius: 0.25
m_Radius: 0.1
m_Speed: 4.5
m_Acceleration: 140
avoidancePriority: 51

View File

@ -0,0 +1,167 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &2275002850514248236
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7700533061093772912}
- component: {fileID: -5702343879196299615}
- component: {fileID: -8071003135052638929}
m_Layer: 0
m_Name: Angez_B_Attack
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &7700533061093772912
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2275002850514248236}
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: 3435209912421788877}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!65 &-5702343879196299615
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2275002850514248236}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 1
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
--- !u!114 &-8071003135052638929
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2275002850514248236}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b3062df6743c3a048910d52c2f80e25b, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Pierce: 0
str_HitEffect: Effect_Hit_IceGolem_Attack
m_ShowTimeOverEffect: 1
m_Direction: 0
--- !u!1001 &1964556433323407020
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 7700533061093772912}
m_Modifications:
- target: {fileID: 3814496778439236193, guid: 0e97097ebbad225488a0264463560ec6,
type: 3}
propertyPath: m_LocalScale.x
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 3814496778439236193, guid: 0e97097ebbad225488a0264463560ec6,
type: 3}
propertyPath: m_LocalScale.y
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 3814496778439236193, guid: 0e97097ebbad225488a0264463560ec6,
type: 3}
propertyPath: m_LocalScale.z
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 3814496778439236193, guid: 0e97097ebbad225488a0264463560ec6,
type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3814496778439236193, guid: 0e97097ebbad225488a0264463560ec6,
type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3814496778439236193, guid: 0e97097ebbad225488a0264463560ec6,
type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3814496778439236193, guid: 0e97097ebbad225488a0264463560ec6,
type: 3}
propertyPath: m_LocalRotation.w
value: 0.7071068
objectReference: {fileID: 0}
- target: {fileID: 3814496778439236193, guid: 0e97097ebbad225488a0264463560ec6,
type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3814496778439236193, guid: 0e97097ebbad225488a0264463560ec6,
type: 3}
propertyPath: m_LocalRotation.y
value: -0.7071068
objectReference: {fileID: 0}
- target: {fileID: 3814496778439236193, guid: 0e97097ebbad225488a0264463560ec6,
type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3814496778439236193, guid: 0e97097ebbad225488a0264463560ec6,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3814496778439236193, guid: 0e97097ebbad225488a0264463560ec6,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3814496778439236193, guid: 0e97097ebbad225488a0264463560ec6,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3814496778439236206, guid: 0e97097ebbad225488a0264463560ec6,
type: 3}
propertyPath: m_Name
value: Projectiles_frost
objectReference: {fileID: 0}
- target: {fileID: 3814496778439236206, guid: 0e97097ebbad225488a0264463560ec6,
type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 0e97097ebbad225488a0264463560ec6, type: 3}
--- !u!4 &3435209912421788877 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 3814496778439236193, guid: 0e97097ebbad225488a0264463560ec6,
type: 3}
m_PrefabInstance: {fileID: 1964556433323407020}
m_PrefabAsset: {fileID: 0}

View File

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

View File

@ -80,6 +80,7 @@ public class Actor : MyCoroutine
_Reincarnation.RandomizeCryptoKey();
}
}
protected int n_SummonCount;
protected float NoDmgTime = 0f;
protected void Init_CC()

View File

@ -0,0 +1,107 @@
using System;
using System.Collections;
using UnityEngine;
public class Boss_Angez_B : BossMobActor
{
[Header("스킬1 쿨타임")]
public float Skill1CoolTime = 20f;
[Header("스킬1 데미지")]
public float Skill1Dmg = 2.8f;
[Header("스킬1 번개 경고 시간")]
public float Skill1DelayTime = 0.5f;
[Header("스킬1 번개 횟수")]
public int Skill1Count = 10;
[Header("스킬1 기절 시간")]
public float Skill1StunTime = 0.3f;
[Header("---------------------------------------")]
public bool Perforation_Line;
[Header("스킬2 쿨타임")]
public float Skill2CoolTime = 15f;
[Header("스킬2 차징시간")]
public float Skill2ChargingTime = 3f;
[Header("스킬2 유지 시간")]
public float Skill2LifeTime = 2.5f;
[Header("스킬2 데미지")]
public float Skill2Dmg = 1.2f;
[Header("스킬2 데미지 딜레이")]
public float Skill2DelayTime = 0.5f;
[Header("스킬2 기절 시간")]
public float Skill2StunTime = 0.2f;
SkillListTableData m_Stun1 = new SkillListTableData { e_SkillExtraType = eSkillExtraType.Stun, f_ExtraValue4 = 1f };
SkillListTableData m_Stun2 = new SkillListTableData { e_SkillExtraType = eSkillExtraType.Stun, f_ExtraValue4 = 1f };
public override void Set(MonsterTableData mobtable, Vector3 pos, Action<int> actDie, int order)
{
base.Set(mobtable, pos, actDie, order);
Load_Indicator("BossFlowerDryad_Skill2_Indicator", 0);
m_Stun1.f_ExtraValue1 = Skill1StunTime;
m_Stun2.f_ExtraValue1 = Skill2StunTime;
CoolTime_Skill1 = 1f;
CoolTime_Skill2 = 2f;
}
protected override void Init(bool initSkill1CoolTime, bool initSkill2CoolTime)
{
base.Init(initSkill1CoolTime, initSkill2CoolTime);
if (initSkill1CoolTime) CoolTime_Skill1 = Skill1CoolTime;
if (initSkill2CoolTime) CoolTime_Skill2 = Skill2CoolTime;
}
protected override void Update()
{
base.Update();
if (IsDead() || IsStop) return;
if (UseSkillIndex == 1 && MobStatus != eMobStatus.Skill)
StartCoroutine(Co_Skill1());
else if (UseSkillIndex == 2 && MobStatus != eMobStatus.Skill)
StartCoroutine(Co_Skill2());
}
IEnumerator Co_Skill1()
{
Change_MobStatus(eMobStatus.Skill);
AnimationPlay("boss_skill1");
yield return new WaitForSeconds(0.5f);
Check_Battle();
Init(true, false);
}
protected override float Get_Skill1Dmg() { return Skill1Dmg; }
protected override void Set_Skill1Projectile(ProjectileBase pb)
{
var pd = pb.Get_ProjectTileData();
pd.e_SkillExtraType = m_Stun1.e_SkillExtraType;
pd.m_skillTypeConfigTable = table_skilltypeconfig.Ins.Get_Data_orNull(pd.e_SkillExtraType);
pd.m_SkillListTableData = m_Stun1;
}
IEnumerator Co_Skill2()
{
Change_MobStatus(eMobStatus.Skill);
AnimationPlay("boss_skill2");
list_indicator[0].SetActive(true);
list_indicator[0].transform.position = Get_position();
yield return new WaitForSeconds(Skill2ChargingTime);
list_indicator[0].SetActive(false);
AnimationPlay("boss_skill2attack");
yield return new WaitForSeconds(3f);
Check_Battle();
Init(false, true);
}
protected override float Get_Skill2Dmg() { return Skill2Dmg; }
protected override void Set_Skill2Projectile(ProjectileBase pb)
{
var pd = pb.Get_ProjectTileData();
pd.e_SkillExtraType = m_Stun2.e_SkillExtraType;
pd.m_skillTypeConfigTable = table_skilltypeconfig.Ins.Get_Data_orNull(pd.e_SkillExtraType);
pd.m_SkillListTableData = m_Stun2;
}
}

View File

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

View File

@ -25,6 +25,7 @@ public class MobActor : Actor
protected NoSeeLongDMob m_NoSeeLongDMob;
bool useMeeleAttackPos;
bool isNSLDMob;
List<Actor> list_summon = new List<Actor>();
protected override void Start()
{
@ -117,6 +118,7 @@ public class MobActor : Actor
Set_Warp(OriginalPos);
InGameInfo.Ins.Show_Effect("Effect_MonsterSpawn", Get_position());
Reset_Extra();
list_summon.ForEach(f => f.Off());
}
}
@ -476,6 +478,44 @@ public class MobActor : Actor
// if (allies[i].Get_Target() == null)
// allies[i].Change_Target(false, m_Target, true);
}
if (m_MonsterTableData.n_PassiveSkillID > 0 && !IsDead())
{
var skilldata = table_skilllist.Ins.Get_Data_orNull(m_MonsterTableData.n_PassiveSkillID);
if (skilldata.e_SkillEnhance == eSkillEnhance.SummonMob)
{
int perval1 = (int)(Get_hpLostPercentage() / skilldata.f_ExtraValue1);
if (n_SummonCount < perval1)
{
++n_SummonCount;
if (list_summon.Count >= n_SummonCount * skilldata.f_ExtraValue2)
{
int startindex = (n_SummonCount - 1) * (int)skilldata.f_ExtraValue2;
for (int i = startindex; i < skilldata.f_ExtraValue2; i++)
list_summon[i].On_Regen();
}
else
{
var mobData = table_monsterlist.Ins.Get_Data_orNull((int)skilldata.f_ExtraValue4);
for (int i = 0; i < skilldata.f_ExtraValue2; i++)
{
AddrResourceMgr.Ins.LoadObject<GameObject>(mobData.s_MonsterPrefab, handle =>
{
var mob = DSUtil.Get_Clone<MobActor>(handle.Result, transform.parent);
AddrResourceMgr.Ins.Set_AddressableReleaseSelf(mob.gameObject);
ActorInfo.Ins.Add_Actor(mob, eRole.Mob, m_MonsterAppearData.n_SpawnerID, mobData.s_MonsterPrefab);
mob.Set(true, null, null, m_MonsterAppearData.n_SpawnerID, false);
mob.Set(mobData, DSUtil.Get_RandomPos_onNavMesh(Get_position(), 2f), null, 0);
mob.m_SubRole = eSubRol.Summon;
mob.On_Regen();
mob.Get_StatInfo().Reset_byStatInfo(Get_StatInfo(), skilldata.f_ExtraValue3);
list_summon.Add(mob);
});
}
}
}
}
}
}
public override void Change_Target(bool _ispc, Actor target, bool _ChangeTargetByHit = false)
{
@ -711,18 +751,16 @@ public class MobActor : Actor
void Reset_Extra()
{
// 1. 패시브 스킬이 존재하는지 확인
if (m_MonsterTableData.n_PassiveSkillID <= 0)
return;
var pSkill = table_skilllist.Ins.Get_Data_orNull(m_MonsterTableData.n_PassiveSkillID);
// 2. dic_skill에 추가할 때 예외 방지
if (!dic_skill.ContainsKey(pSkill))
dic_skill[pSkill] = 0;
n_Reincarnation = 0;
n_SummonCount = n_Reincarnation = 0;
list_summon.ForEach(f => f.Off());
// 3. 배리어 스킬이면 값 초기화
switch (pSkill.e_SkillExtraType)
{
case eSkillExtraType.Barrier:

View File

@ -3,7 +3,7 @@ public enum eDungeon { None, d1_Mimic, d2_Maze, d3_Nightmare, d4_Wave }
public enum eDifficult { Normal, Hard, NightMare, Hell, Max }
public enum eUnlockCondition { None, BossKill, GetItem, SealBreaking, ChapterClear, }
public enum eRole { Mob, Pet, PC, Fairy, EnemyPC, Farmer, Summon, BattleNPC, OBJ, EnemyPet, EnemySummon }
public enum eSubRol { None, Elite, Boss, Mimic, }
public enum eSubRol { None, Elite, Boss, Mimic, Summon }
public enum eClassType { SwordMan, Archer, Fighter, Mage }
public enum eSpawnerType { Random, Order, Phase, PhaseAllKill }
public enum eAnim { Idle, Run, Die, Hit, Dodge, Attack, Attack2, Attack3, Attack4, Skill }
@ -241,7 +241,7 @@ public enum eSkillEnhance
Dmg_Decrease, Dmg_Up, CRI_Up, SkillCoolTime, PetStat_Up,
DMG_TO_HP, SkillDmg_DECREASE, BaseDmg_DECREASE, HP_REGEN_Per1Sec, ATK_FIXED, DMG_DECREASE, StartleBehind, DeadSkin,
RageOfFairy,
RageOfFairy, SummonMob,
Newbie,
}

View File

@ -485,6 +485,12 @@ public class ActorStatInfo
// UI 표시
if (showchange && m_Role == eRole.PC && !DSUtil.CheckNull(StatChangeUI.Ins)) StatChangeUI.Ins.Set(false, dic_StatValue);
}
public void Reset_byStatInfo(ActorStatInfo stat, float rate)
{
var keys = new List<eStat>(dic_StatValue.Keys);
foreach (var key in keys)
Set_Stat(key, stat.Get_Stat(key) * rate);
}
void Set_GlobalValue()
{
Set_Stat(true, eStat.ATK, table_GlobalValue.Ins.Get_Float("ATK"));