| 
									
										
										
										
											2024-12-11 15:08:57 +08:00
										 |  |  | /* | 
					
						
							|  |  |  | 文件名:PassiveObjectClass.nut | 
					
						
							|  |  |  | 路径:User/GameClass/ObjectClass/PassiveObjectClass.nut | 
					
						
							|  |  |  | 创建日期:2024-05-11	09:14 | 
					
						
							|  |  |  | 文件用途:被动对象 | 
					
						
							|  |  |  | */ | 
					
						
							| 
									
										
										
										
											2024-12-13 20:48:00 +08:00
										 |  |  | class GameObject.PassiveObject extends GameObject.ActiveObject { | 
					
						
							| 
									
										
										
										
											2024-12-11 15:08:57 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     OnCreateFunction = null; | 
					
						
							|  |  |  |     OnProcFunction = null; | 
					
						
							|  |  |  |     OnDestroyFunction = null; | 
					
						
							|  |  |  |     OnAttackFunction = null; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function Init(Idx) { | 
					
						
							|  |  |  |         Info = ScriptData.GetPassiveObject(Idx); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         base.Init(Info); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         //储存图层信息 | 
					
						
							|  |  |  |         if ("layer" in Info) | 
					
						
							|  |  |  |             Layer = Info.layer.slice(1, -1); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         //初始化回调函数 | 
					
						
							|  |  |  |         InitCallBackFunc(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function InitCallBackFunc() { | 
					
						
							|  |  |  |         if ("create function" in Info) OnCreateFunction = Info["create function"].bindenv(this); | 
					
						
							|  |  |  |         if ("destroy function" in Info) OnDestroyFunction = Info["destroy function"].bindenv(this); | 
					
						
							|  |  |  |         if ("proc function" in Info) OnProcFunction = Info["proc function"].bindenv(this); | 
					
						
							|  |  |  |         if ("attack function" in Info) OnAttackFunction = Info["attack function"].bindenv(this); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function OnAddchild(Parent) { | 
					
						
							|  |  |  |         if (OnCreateFunction) OnCreateFunction(Parent); | 
					
						
							|  |  |  |         base.OnAddchild(Parent); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function OnRemove(Parent) { | 
					
						
							|  |  |  |         if (OnDestroyFunction) OnDestroyFunction(Parent); | 
					
						
							|  |  |  |         base.OnRemove(Parent); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     //攻击到其他对象时 | 
					
						
							|  |  |  |     function OnAttack(Damager) { | 
					
						
							|  |  |  |         if (OnAttackFunction) OnAttackFunction(Damager); | 
					
						
							|  |  |  |         base.OnAttack(Damager); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     //被调用 | 
					
						
							|  |  |  |     function OnUpdate(dt) { | 
					
						
							|  |  |  |         if (OnProcFunction) OnProcFunction(dt); | 
					
						
							|  |  |  |         base.OnUpdate(dt); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } |