깜짝 놀래키기

This commit is contained in:
Ino 2025-02-21 16:10:14 +09:00
parent 5bf24cb26b
commit 8e50a763d5
10 changed files with 207 additions and 8 deletions

View File

@ -0,0 +1,134 @@
fileFormatVersion: 2
guid: 1127f9b78c930a448be04837caabfe57
ModelImporter:
serializedVersion: 20200
internalIDToNameTable:
- first:
74: -779177437826517512
second: Damage
externalObjects: {}
materials:
materialImportMode: 2
materialName: 0
materialSearch: 1
materialLocation: 1
animations:
legacyGenerateAnimations: 4
bakeSimulation: 0
resampleCurves: 1
optimizeGameObjects: 0
motionNodeName:
rigImportErrors:
rigImportWarnings:
animationImportErrors:
animationImportWarnings:
animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
importConstraints: 0
animationCompression: 1
animationRotationError: 0.5
animationPositionError: 0.5
animationScaleError: 0.5
animationWrapMode: 0
extraExposedTransformPaths: []
extraUserProperties: []
clipAnimations:
- serializedVersion: 16
name: Damage
takeName: Anim_Golem_Child@Damage
internalID: 0
firstFrame: 81
lastFrame: 94
wrapMode: 0
orientationOffsetY: 0
level: 0
cycleOffset: 0
loop: 0
hasAdditiveReferencePose: 0
loopTime: 1
loopBlend: 0
loopBlendOrientation: 0
loopBlendPositionY: 0
loopBlendPositionXZ: 0
keepOriginalOrientation: 0
keepOriginalPositionY: 1
keepOriginalPositionXZ: 0
heightFromFeet: 0
mirror: 0
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
curves: []
events: []
transformMask: []
maskType: 3
maskSource: {instanceID: 0}
additiveReferencePoseFrame: 81
isReadable: 0
meshes:
lODScreenPercentages: []
globalScale: 1
meshCompression: 0
addColliders: 0
useSRGBMaterialColor: 1
sortHierarchyByName: 1
importVisibility: 1
importBlendShapes: 1
importCameras: 1
importLights: 1
fileIdsGeneration: 2
swapUVChannels: 0
generateSecondaryUV: 0
useFileUnits: 1
keepQuads: 0
weldVertices: 1
bakeAxisConversion: 0
preserveHierarchy: 0
skinWeightsMode: 0
maxBonesPerVertex: 4
minBoneWeight: 0.001
meshOptimizationFlags: -1
indexFormat: 0
secondaryUVAngleDistortion: 8
secondaryUVAreaDistortion: 15.000001
secondaryUVHardAngle: 88
secondaryUVMarginMethod: 1
secondaryUVMinLightmapResolution: 40
secondaryUVMinObjectScale: 1
secondaryUVPackMargin: 4
useFileScale: 1
tangentSpace:
normalSmoothAngle: 60
normalImportMode: 0
tangentImportMode: 3
normalCalculationMode: 4
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
blendShapeNormalImportMode: 1
normalSmoothingSource: 0
referencedClips: []
importAnimation: 1
humanDescription:
serializedVersion: 3
human: []
skeleton: []
armTwist: 0.5
foreArmTwist: 0.5
upperLegTwist: 0.5
legTwist: 0.5
armStretch: 0.05
legStretch: 0.05
feetSpacing: 0
globalScale: 1
rootMotionBoneName:
hasTranslationDoF: 0
hasExtraRoot: 0
skeletonHasParents: 1
lastHumanDescriptionAvatarSource: {instanceID: 0}
autoGenerateAvatarMappingIfUnspecified: 1
animationType: 2
humanoidOversampling: 1
avatarSetup: 0
addHumanoidExtraRootOnlyWhenUsingAvatar: 1
additionalBone: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@ -183,6 +183,9 @@ AnimatorStateMachine:
- serializedVersion: 1
m_State: {fileID: 110293690}
m_Position: {x: 440, y: -140, z: 0}
- serializedVersion: 1
m_State: {fileID: 5354752314646611759}
m_Position: {x: 130, y: -140, z: 0}
m_ChildStateMachines: []
m_AnyStateTransitions: []
m_EntryTransitions: []
@ -212,6 +215,33 @@ AnimatorStateMachine:
m_ExitPosition: {x: 800, y: 120, z: 0}
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
m_DefaultState: {fileID: 0}
--- !u!1102 &5354752314646611759
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: startlebehind
m_Speed: 1
m_CycleOffset: 0
m_Transitions: []
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: -779177437826517512, guid: 1127f9b78c930a448be04837caabfe57,
type: 3}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1101 &8638698240353951168
AnimatorStateTransition:
m_ObjectHideFlags: 1

File diff suppressed because one or more lines are too long

Binary file not shown.

View File

@ -55,7 +55,9 @@ public class Actor : MyCoroutine
set
{
_isstop = value;
//if (IsSubRole(eSubRol.Boss)) Debug.Log("IsStop 변경 " + value);
//if (IsSubRole(eSubRol.Boss))
if (IsRole(eRole.PC))
Debug.Log("IsStop 변경 " + value);
}
}
public bool m_IsLockTarget { get; set; }
@ -852,7 +854,8 @@ public class Actor : MyCoroutine
{
var startPos = Get_position(); // 현재 위치
Vector3 direction = (target.Get_position() - Get_position()).normalized; // 목표와 현재 위치의 방향 벡터를 구함
return target.Get_position() - direction * dist; // 목표 위치에서 -1f 앞 지점 계산
var rtnPos = DSUtil.Get_RandomPos_onNavMesh(target.Get_position() - direction * dist, 0, dist);
return rtnPos;
}
public float Get_ScaleSizeDist() { return transform.localScale.x > 2f ? ObjSize.z * 0.5f : 0f; }
public ActorStatInfo Get_StatInfo() { return m_Stat; }

View File

@ -1,5 +1,3 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Boss_GolemChild : BossMobActor

View File

@ -7,13 +7,14 @@ public class BossMobActor : MobActor
{
protected GameObject go_indicator1, go_indicator2;
protected bool CanUseSkill1, CanUseSkill2;
protected float CoolTime_Skill1, CoolTime_Skill2;
protected float CoolTime_PassiveSkill, CoolTime_Skill1, CoolTime_Skill2;
protected int UseSkillIndex = 0;
public override void On_Regen(bool reincarnation = false, float healrate = 1)
{
base.On_Regen(reincarnation, healrate);
CanUseSkill1 = CanUseSkill2 = false;
CoolTime_PassiveSkill = 0;
}
protected override void Update()
@ -21,6 +22,7 @@ public class BossMobActor : MobActor
base.Update();
if (IsDead()) return;
Check_PassiveSkill();
if (UseSkillIndex != 1 && CoolTime_Skill1 > 0f) CoolTime_Skill1 -= Time.deltaTime;
if (UseSkillIndex != 2 && CoolTime_Skill2 > 0f) CoolTime_Skill2 -= Time.deltaTime;
// 스킬 사용 결정
@ -82,6 +84,32 @@ public class BossMobActor : MobActor
Init(false, false);
}
protected virtual void Check_PassiveSkill()
{
if (CoolTime_PassiveSkill > 0f) CoolTime_PassiveSkill -= Time.deltaTime;
if (CoolTime_PassiveSkill <= 0f)
{
if (isTarget && m_Stat.Get_Stat(eStat.StartleBehind) > 0)
{
var skillData = table_skilllist.Ins.Get_Data_orNull(m_MonsterTableData.n_PassiveSkillID);
if (Vector3.Distance(Get_position(), m_Target.Get_position()) > skillData.f_ExtraValue1)
StartCoroutine(Co_StartleBehind(skillData));
}
}
}
IEnumerator Co_StartleBehind(SkillListTableData skillData)
{
CoolTime_PassiveSkill = skillData.f_ExtraValue4;
InGameInfo.Ins.Show_Effect("Effect_Teleport", Get_position());
AnimationPlay("startlebehind");
yield return new WaitForSeconds(0.5f);
m_Target.Stun(skillData.f_ExtraValue2, true);
Set_Warp(Get_TeleportPostion(m_Target, -skillData.f_ExtraValue3));
Change_MobStatus(eMobStatus.Attack);
}
protected virtual float Get_Skill1Dmg() { return 1f; }
protected virtual Vector3 Get_Skill1Pos() { return Get_CenterPositionFoward(); }
protected virtual void Set_Skill1Projectile(ProjectileBase pb) { }

View File

@ -182,7 +182,12 @@ public enum eStat
Reduction_in_Immediate_Harvest_Cost,
Reclaim_Used_Resources,
DMG_TO_HP, SkillDmg_DECREASE, BaseDmg_DECREASE, HP_REGEN_Per1Sec, ADD_ATK_FIXED,
DMG_TO_HP,
SkillDmg_DECREASE,
BaseDmg_DECREASE,
HP_REGEN_Per1Sec,
ADD_ATK_FIXED,
StartleBehind,
None
}
@ -234,7 +239,7 @@ public enum eSkillEnhance
STR_Up, DEX_Up, INT_Up, LUCK_Up, ATK_SPD_Up, MOV_SPD_Up, PIERCING, Boss_Dmg, Monster_Dmg, GoldHunter, MP_Down, AttackRange_Up,
Dmg_Decrease, Dmg_Up, CRI_Up, SkillCoolTime, PetStat_Up,
DMG_TO_HP, SkillDmg_DECREASE, BaseDmg_DECREASE, HP_REGEN_Per1Sec, ATK_FIXED, DMG_DECREASE,
DMG_TO_HP, SkillDmg_DECREASE, BaseDmg_DECREASE, HP_REGEN_Per1Sec, ATK_FIXED, DMG_DECREASE, StartleBehind,
Newbie,
}

View File

@ -794,6 +794,7 @@ public class ActorStatInfo
case eSkillEnhance.HP_Up: Set_Stat(true, eStat.HP_Multiplier, skilldata.f_ExtraValue1); break;
case eSkillEnhance.ATK_FIXED: Set_Stat(true, eStat.ADD_ATK_FIXED, skilldata.f_ExtraValue1); break;
case eSkillEnhance.DMG_DECREASE: Set_Stat(true, eStat.DMG_DECREASE, skilldata.f_ExtraValue1); break;
case eSkillEnhance.StartleBehind: Set_Stat(true, eStat.StartleBehind, 1); break;
}
}
}