public static bool SkillTargetStateCheck( Tbl_Skill_Record skillRecord, AsBaseEntity entity, bool _showAlert = true) { bool ret = false; switch( skillRecord.SkillIcon_Enable_Condition) { case eSkillIcon_Enable_Condition.NONE: return true; case eSkillIcon_Enable_Condition.LowHealth: if(entity.ContainProperty(eComponentProperty.HP_CUR) == true) { float curHP = entity.GetProperty<float>( eComponentProperty.HP_CUR); if( curHP < skillRecord.SkillIcon_Enable_ConditionValue) ret = true; } break; case eSkillIcon_Enable_Condition.Death: if(entity.ContainProperty(eComponentProperty.LIVING) == true) { bool isDied = entity.GetProperty<bool>( eComponentProperty.LIVING); ret = !isDied; } break; case eSkillIcon_Enable_Condition.Movable: AsUserEntity player = AsUserInfo.Instance.GetCurrentUserEntity(); ret = player.CheckCondition( eSkillIcon_Enable_Condition.Movable) && player.GetProperty<bool>(eComponentProperty.LIVING); break; default: ret = entity.CheckCondition( skillRecord.SkillIcon_Enable_Condition); break; } if( false == ret && _showAlert == true) AsMyProperty.Instance.AlertState(); return ret; }
//get public bool CheckValidTargeting( AsBaseEntity _target) { if( ( skillRecord_.Skill_Type == eSKILL_TYPE.SlotBase || skillRecord_.Skill_Type == eSKILL_TYPE.Target) && ( _target == null || ( skillRecord_.CheckPotencyTypeIncludeResurrection() == false && ( _target.ContainProperty( eComponentProperty.LIVING) == true && _target.GetProperty<bool>( eComponentProperty.LIVING) == false) ))) { Map map = TerrainMgr.Instance.GetCurrentMap(); eMAP_TYPE mapType = map.MapData.getMapType; if( eMAP_TYPE.Town == mapType) AsMyProperty.Instance.AlertSkillInTown(); else { Debug.Log( "Msg_Player_Skill_Ready::CheckValidTargeting: AsMyProperty.Instance.AlertInvalidTarget()"); Debug.Log( "_target = " + _target); Debug.Log( "skillRecord_.CheckPotencyTypeIncludeResurrection() = " + skillRecord_.CheckPotencyTypeIncludeResurrection()); Debug.Log( "_target.ContainProperty( eComponentProperty.LIVING) = " + _target.ContainProperty( eComponentProperty.LIVING)); Debug.Log( "_target.GetProperty<bool>( eComponentProperty.LIVING) = " + _target.GetProperty<bool>( eComponentProperty.LIVING)); AsMyProperty.Instance.AlertInvalidTarget(); } return false; } return true; }