펭귄 보스

This commit is contained in:
Ino 2025-02-26 11:42:03 +09:00
parent 22feb3b7e0
commit 1b4d303244
8 changed files with 239 additions and 17 deletions

View File

@ -0,0 +1,141 @@
fileFormatVersion: 2
guid: 9a19c4b7c7693134a98d292ef3ba8206
ModelImporter:
serializedVersion: 22200
internalIDToNameTable:
- first:
74: 7715286214788883660
second: boss_skill2
externalObjects: {}
materials:
materialImportMode: 2
materialName: 0
materialSearch: 1
materialLocation: 1
animations:
legacyGenerateAnimations: 4
bakeSimulation: 0
resampleCurves: 1
optimizeGameObjects: 0
removeConstantScaleCurves: 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: boss_skill2
takeName: Anim_Brother_Penguin@Damage
internalID: 0
firstFrame: 151
lastFrame: 160
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: 151
isReadable: 0
meshes:
lODScreenPercentages: []
globalScale: 1
meshCompression: 0
addColliders: 0
useSRGBMaterialColor: 1
sortHierarchyByName: 1
importPhysicalCameras: 1
importVisibility: 1
importBlendShapes: 1
importCameras: 1
importLights: 1
nodeNameCollisionStrategy: 0
fileIdsGeneration: 2
swapUVChannels: 0
generateSecondaryUV: 0
useFileUnits: 1
keepQuads: 0
weldVertices: 1
bakeAxisConversion: 0
preserveHierarchy: 0
skinWeightsMode: 0
maxBonesPerVertex: 4
minBoneWeight: 0.001
optimizeBones: 1
meshOptimizationFlags: -1
indexFormat: 0
secondaryUVAngleDistortion: 8
secondaryUVAreaDistortion: 15.000001
secondaryUVHardAngle: 88
secondaryUVMarginMethod: 1
secondaryUVMinLightmapResolution: 40
secondaryUVMinObjectScale: 1
secondaryUVPackMargin: 4
useFileScale: 1
strictVertexDataChecks: 0
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
importBlendShapeDeformPercent: 0
remapMaterialsIfMaterialImportModeIsNone: 1
additionalBone: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@ -55,6 +55,28 @@ AnimatorState:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1101 &-2831235524619601487
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions: []
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 110209958}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0.25
m_TransitionOffset: 0
m_ExitTime: 0.3333342
m_HasExitTime: 1
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1101 &-2394900857822568002
AnimatorStateTransition:
m_ObjectHideFlags: 1
@ -265,7 +287,10 @@ AnimatorStateMachine:
m_Position: {x: 120, y: -130, z: 0}
- serializedVersion: 1
m_State: {fileID: -2916805882626545900}
m_Position: {x: 120, y: -70, z: 0}
m_Position: {x: 120, y: -80, z: 0}
- serializedVersion: 1
m_State: {fileID: 7386440917468860179}
m_Position: {x: 120, y: -20, z: 0}
m_ChildStateMachines: []
m_AnyStateTransitions: []
m_EntryTransitions: []
@ -317,3 +342,31 @@ AnimatorStateTransition:
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1102 &7386440917468860179
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: boss_skill2
m_Speed: 1
m_CycleOffset: 0
m_Transitions:
- {fileID: -2831235524619601487}
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: 7715286214788883660, guid: 9a19c4b7c7693134a98d292ef3ba8206,
type: 3}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:

File diff suppressed because one or more lines are too long

Binary file not shown.

View File

@ -218,6 +218,10 @@ public class Actor : MyCoroutine
case eCC.DEX_Mul_Up: Off_StatUpBuff(eStat.DEX); break;
case eCC.INT_Mul_Up: Off_StatUpBuff(eStat.INT); break;
case eCC.LUK_Mul_Up: Off_StatUpBuff(eStat.LUK); break;
case eCC.Barrier:
dic_ccData[item.Key].CCDmg = 0;
dic_CCEffect[item.Key].Off_Imm();
break;
}
}
}

View File

@ -1,5 +1,6 @@
using System;
using System.Collections;
using System.Threading;
using UnityEngine;
public class Boss_BrotherPenguin : BossMobActor
@ -20,8 +21,13 @@ public class Boss_BrotherPenguin : BossMobActor
public bool Perforation_Line;
[Header("스킬2 쿨타임")]
public float Skill2CoolTime = 20f;
[Header("스킬2 보호막 지속시간")]
public float Skill2LifeTime = 12f;
[Header("스킬2 보호막 생명력 비율")]
public float Skill2BarrierRate = 0.25f;
SkillListTableData m_Frost = new SkillListTableData { e_SkillExtraType = eSkillExtraType.Frost, f_ExtraValue4 = 1f };
SkillListTableData m_Barrier = new SkillListTableData { e_SkillExtraType = eSkillExtraType.Barrier };
public override void Set(MonsterTableData mobtable, Vector3 pos, Action<int> actDie, int order)
{
@ -33,6 +39,9 @@ public class Boss_BrotherPenguin : BossMobActor
m_Frost.f_ExtraValue2 = Skill1AtkSpd;
m_Frost.f_ExtraValue3 = Skill1MovSpd;
m_Barrier.e_SkillExtraType = eSkillExtraType.Barrier;
m_Barrier.f_ExtraValue2 = Skill2BarrierRate;
CoolTime_Skill1 = 1f;
CoolTime_Skill2 = 2f;
}
@ -51,8 +60,13 @@ public class Boss_BrotherPenguin : BossMobActor
if (UseSkillIndex == 1 && MobStatus != eMobStatus.Skill)
StartCoroutine(Co_Skill1());
//else if (UseSkillIndex == 2 && MobStatus != eMobStatus.Skill)
// StartCoroutine(Co_Skill2());
else if (UseSkillIndex == 2 && MobStatus != eMobStatus.Skill)
{
if (dic_ccData[eCC.Barrier].CCTime <= 0f)
StartCoroutine(Co_Skill2());
else
UseSkillIndex = 0;
}
}
IEnumerator Co_Skill1()
@ -87,9 +101,13 @@ public class Boss_BrotherPenguin : BossMobActor
Change_MobStatus(eMobStatus.Skill);
AnimationPlay("boss_skill2");
yield return new WaitForSeconds(0.5f);
yield return new WaitForSeconds(0.25f);
Show_Barrier(m_Barrier, table_skilltypeconfig.Ins.Get_Data_orNull(m_Barrier.e_SkillExtraType), Skill2LifeTime);
yield return new WaitForSeconds(0.25f);
Check_Battle();
yield return new WaitForSeconds(Skill2LifeTime);
Init(false, true);
}
}

View File

@ -629,18 +629,7 @@ public class MobActor : Actor
{
var conditionHP = Get_MaxHP() * temp.f_ExtraValue1;
if (conditionHP >= Get_HP())
{
dic_skill[temp] = 0;
dic_skillextra[skilltype.e_SkillExtraType] = true;
InGameInfo.Ins.Show_Effect(skilltype.e_SkillEffect, this, skilltype.e_EffectLocation, 10000,
effect =>
{
if (!dic_CCEffect.ContainsKey(eCC.Barrier))
dic_CCEffect.Add(eCC.Barrier, null);
dic_CCEffect[eCC.Barrier] = effect;
dic_ccData[eCC.Barrier].CCDmg = Get_MaxHP() * temp.f_ExtraValue2;
});
}
Show_Barrier(temp, skilltype, 10000);
}
break;
case eSkillExtraType.Reincarnation: // 부활 체크
@ -693,6 +682,23 @@ public class MobActor : Actor
}
}
protected void Show_Barrier(SkillListTableData skilldata, SkillTypeConfigTableData skilltype, float lifeTime)
{
dic_skill[skilldata] = 0;
dic_skillextra[skilltype.e_SkillExtraType] = true;
InGameInfo.Ins.Show_Effect(skilltype.e_SkillEffect, this, skilltype.e_EffectLocation, lifeTime,
effect =>
{
if (!dic_CCEffect.ContainsKey(eCC.Barrier))
dic_CCEffect.Add(eCC.Barrier, null);
dic_CCEffect[eCC.Barrier] = effect;
dic_ccData[eCC.Barrier].TimeUpdate = true;
dic_ccData[eCC.Barrier].CCTime = lifeTime;
dic_ccData[eCC.Barrier].CCDmg = Get_MaxHP() * skilldata.f_ExtraValue2;
});
}
Coroutine revive_co;
IEnumerator Co_Revive(float revivetime, float nodmgtime, float dmg, SkillTypeConfigTableData skilltype)
{