95 lines
3.2 KiB
C#
95 lines
3.2 KiB
C#
using System;
|
|
using System.Collections;
|
|
using UnityEngine;
|
|
|
|
public class Boss_BrotherPenguin : BossMobActor
|
|
{
|
|
[Header("스킬1 쿨타임")]
|
|
public float Skill1CoolTime = 12f;
|
|
[Header("스킬1 차징시간")]
|
|
public float Skill1ChargingTime = 3f;
|
|
[Header("스킬1 데미지")]
|
|
public float Skill1Dmg = 3.2f;
|
|
[Header("스킬1 냉기 시간")]
|
|
public float Skill1FrostTime = 3f;
|
|
[Header("스킬1 냉기 공속 감소")]
|
|
public float Skill1AtkSpd = 0.7f;
|
|
[Header("스킬1 냉기 이속 감소")]
|
|
public float Skill1MovSpd = 0.7f;
|
|
[Header("---------------------------------------")]
|
|
public bool Perforation_Line;
|
|
[Header("스킬2 쿨타임")]
|
|
public float Skill2CoolTime = 20f;
|
|
|
|
SkillListTableData m_Frost = new SkillListTableData { e_SkillExtraType = eSkillExtraType.Frost, f_ExtraValue4 = 1f };
|
|
|
|
public override void Set(MonsterTableData mobtable, Vector3 pos, Action<int> actDie, int order)
|
|
{
|
|
base.Set(mobtable, pos, actDie, order);
|
|
|
|
Load_Indicator("BrotherPenguin_Skill1_Indicator", 0);
|
|
|
|
m_Frost.f_ExtraValue1 = Skill1FrostTime;
|
|
m_Frost.f_ExtraValue2 = Skill1AtkSpd;
|
|
m_Frost.f_ExtraValue3 = Skill1MovSpd;
|
|
|
|
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_skill1charging");
|
|
InGameInfo.Ins.Show_Effect("Effect_BrotherPenguin_Charging", this, eEffectLocation.Bottom, Skill1ChargingTime);
|
|
dic_indicator[0].SetActive(true);
|
|
dic_indicator[0].transform.position = Get_position();
|
|
|
|
yield return new WaitForSeconds(Skill1ChargingTime);
|
|
|
|
AnimationPlay("boss_skill1attack");
|
|
dic_indicator[0].SetActive(false);
|
|
yield return new WaitForSeconds(0.5f);
|
|
|
|
Check_Battle();
|
|
Init(true, false);
|
|
}
|
|
protected override float Get_Skill1Dmg() { return Skill1Dmg; }
|
|
protected override Vector3 Get_Skill1Pos() { return dic_indicator[0].transform.position; }
|
|
protected override void Set_Skill1Projectile(ProjectileBase pb)
|
|
{
|
|
var pd = pb.Get_ProjectTileData();
|
|
pd.e_SkillExtraType = m_Frost.e_SkillExtraType;
|
|
pd.m_skillTypeConfigTable = table_skilltypeconfig.Ins.Get_Data_orNull(pd.e_SkillExtraType);
|
|
pd.m_SkillListTableData = m_Frost;
|
|
}
|
|
|
|
IEnumerator Co_Skill2()
|
|
{
|
|
Change_MobStatus(eMobStatus.Skill);
|
|
AnimationPlay("boss_skill2");
|
|
|
|
yield return new WaitForSeconds(0.5f);
|
|
|
|
Check_Battle();
|
|
Init(false, true);
|
|
}
|
|
} |