예제 #1
0
	public static bool ParseUnitDataTemplateData( 
	                                     #if USE_XML
	                                     XmlNode _node ,
	                                     #endif // USE_XML
                                         ref string _UnitDataTemplateName ,
	                                             ref UnitDataSetting _DataSetting )
	{
		#if USE_XML
		bool ret = XMLParseLevelUtility.ParseUnitDataTemplateData( _node , 
		                                                          ref _UnitDataTemplateName ,
		                                                          ref _DataSetting ) ;
		return ret ;
		#endif // USE_XML
	}
	/* 
	 * @brief Parse UnitData from xml
	 */
	public static bool ParseUnitDataTemplateData( XmlNode _UnitNode , 
	                           ref string _UnitDataTemplateName ,
	                                             ref UnitDataSetting _DataSetting )
	{
		// Debug.Log( _UnitNode.Name ) ;
		if( null == _UnitNode )
		{
			// Debug.LogWarning( "ParseUnitDataTemplateData(),null == _UnitNode" ) ;
			return false ;
		}

		if( null == _UnitNode.Attributes[ "UnitDataTemplateName" ] )
			return false ;
		
		_UnitDataTemplateName = _UnitNode.Attributes[ "UnitDataTemplateName" ].Value ;
		Dictionary<string,StandardParameter> standardParamMap = new Dictionary<string, StandardParameter>();
		Dictionary< string , SkillLabel > skillLabels = new Dictionary<string, SkillLabel>() ;
		
		for( int i = 0 ; i < _UnitNode.ChildNodes.Count ; ++i )
		{
			if( 0 == _UnitNode.ChildNodes[ i ].Name.IndexOf( "#comment" ) )
			{
				// comment
			}
			else if( true == ParseSkillZone( _UnitNode.ChildNodes[ i ] , 
			                                ref skillLabels ) )
			{
				// Debug.Log( "skills.Keys.Count=" + skills.Keys.Count ) ;
				_DataSetting.ImportSkillLabels( skillLabels ) ;
			}
			else if( true == ParseStandardParameterMap( _UnitNode.ChildNodes[ i ] , 
				                                        ref standardParamMap ) )
			{
				_DataSetting.ImportStandardParameter( standardParamMap ) ;
			}
			
		}
		return true ;
	}
	public void Import( UnitDataSetting _Src ) 
	{
		ImportSkillLabels( _Src.m_SkillLabels ) ;
		m_ProfileTexture = _Src.m_ProfileTexture ;
		m_ProfileTextureName = _Src.m_ProfileTextureName ;
		m_UnitType = _Src.m_UnitType ;
		ImportStandardParameter( _Src.standardParameters ) ;
	
	}
예제 #4
0
	public void LoadUnitDataTemplate( string _UnitDataTemplateFilepath )
	{
		Dictionary<string,UnitDataSetting> unitDataSettingTable = GlobalSingleton.GetUnitDataSettingTable() ;

		Debug.Log( "_UnitDataTemplateFilepath=" + _UnitDataTemplateFilepath ) ;
		if( 0 == _UnitDataTemplateFilepath.Length )
		{
			// warning
			Debug.LogWarning( "_UnitDataTemplateFilepath=" + _UnitDataTemplateFilepath ) ;
			return ;
		}

		TextAsset ta = Resources.Load<TextAsset>( _UnitDataTemplateFilepath );
		if( null == ta )
		{
			Debug.LogError( "LoadUnitDataTemplate() null == ta" ) ;
			return ;
		}

		#if USE_XML
		XmlDocument doc = new XmlDocument() ;
		doc.LoadXml( ta.text ) ;
		XmlNode root = doc.FirstChild ;
		
		if( null == root )
		{
			Debug.LogError( "LoadUnitDataTemplate() : null == root" ) ;
			return ;
		}
		
		// string levelname = root.Attributes[ "name" ].Value ;
		if( false == root.HasChildNodes )
		{
			Debug.Log( "LoadUnitDataTemplate() : false == root.HasChildNodes" ) ;
			return ;			
		}
		#endif // USE_XML



		#if USE_XML
		for( int i = 0 ; i < root.ChildNodes.Count ; ++i )
		{
			XmlNode unitNode = root.ChildNodes[ i ] ;
		#endif // USE_XML

			string unitDataTemplateName = "";
			UnitDataSetting unitDataSetting = new UnitDataSetting() ;

			if( 0 == unitNode.Name.IndexOf( "#comment" ) )
			{
				// comment
			}
			else if( true == ParseUtility.ParseUnitDataTemplateData( unitNode,
			                                                        ref unitDataTemplateName ,
			                                                        ref unitDataSetting ) )
			{
				// Debug.Log( "unitDataSettingTable.Add " ) ;
				// Debug.Log( "unitData.standardParameters.Count=" + unitData.m_UnitDataStruct.standardParameters.Count ) ;
				if( false == unitDataSettingTable.ContainsKey( unitDataTemplateName ) )
				{
					unitDataSettingTable.Add( unitDataTemplateName , unitDataSetting ) ;
				}
				else
				{
					unitDataSettingTable[ unitDataTemplateName ] = unitDataSetting ;
				}
			}

		#if USE_XML
		}
		#endif // USE_XML		

	}
예제 #5
0
	public void Import( UnitDataStruct _Src ) 
	{
		m_UnitDataSetting = _Src.m_UnitDataSetting ;// 共用
		ImportStandardParameter( _Src.m_UnitDataSetting.standardParameters ) ;// 自己複製一份
		m_UnitState = _Src.m_UnitState ;
		
	}
예제 #6
0
	public void Import( UnitDataSetting _SettingSrc ) 
	{
		m_UnitDataSetting = _SettingSrc ;// 共用
		ImportStandardParameter( _SettingSrc.standardParameters ) ;// 自己複製一份
	}