Beispiel #1
0
	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;
	}