94 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			94 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| 
								 | 
							
								AP_LIGHTNING_WALL_VAR_ELECT_OBJ <- 0;
							 | 
						|||
| 
								 | 
							
								AP_LIGHTNING_WALL_VAR_START_Z <- 1;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								function sq_AddFunctionName(appendage)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
									appendage.sq_AddFunctionName("proc", "proc_appendage_LightningWall")
							 | 
						|||
| 
								 | 
							
									appendage.sq_AddFunctionName("onStart", "onStart_appendage_LightningWall")
							 | 
						|||
| 
								 | 
							
									appendage.sq_AddFunctionName("onEnd", "onEnd_appendage_LightningWall")
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								function sq_AddEffect(appendage)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								function proc_appendage_LightningWall(appendage)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
									if(!appendage) {
							 | 
						|||
| 
								 | 
							
										return;		
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									local parentObj = appendage.getParent();
							 | 
						|||
| 
								 | 
							
									local sourceObj = appendage.getSource();
							 | 
						|||
| 
								 | 
							
												
							 | 
						|||
| 
								 | 
							
									if(!sourceObj || !parentObj) {
							 | 
						|||
| 
								 | 
							
										appendage.setValid(false);
							 | 
						|||
| 
								 | 
							
										return;
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									local var = appendage.getVar();
							 | 
						|||
| 
								 | 
							
									local startZ = var.getInt(AP_LIGHTNING_WALL_VAR_START_Z);
							 | 
						|||
| 
								 | 
							
									local z = sq_GetShuttleValue(0, 8, sq_GetObjectTime(parentObj), 40);
							 | 
						|||
| 
								 | 
							
									parentObj.setCurrentPos(parentObj.getXPos(), parentObj.getYPos(), startZ + z);				
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									local elect = var.getObject(AP_LIGHTNING_WALL_VAR_ELECT_OBJ);
							 | 
						|||
| 
								 | 
							
									if(elect)
							 | 
						|||
| 
								 | 
							
										elect.setCurrentPos(parentObj.getXPos(), parentObj.getYPos()+1, parentObj.getZPos() + parentObj.getObjectHeight()/2);
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									local ani = parentObj.getCurrentAnimation();
							 | 
						|||
| 
								 | 
							
									local rgb = z < 4 ? 255 : 0;
							 | 
						|||
| 
								 | 
							
									if(ani)
							 | 
						|||
| 
								 | 
							
										ani.setEffectLayer(true, GRAPHICEFFECT_MONOCHROME, true, sq_RGB(rgb,rgb,rgb), sq_ALPHA(255), true, true);
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								function onStart_appendage_LightningWall(appendage)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
									if(!appendage) {
							 | 
						|||
| 
								 | 
							
										return;
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									local parentObj = appendage.getParent();
							 | 
						|||
| 
								 | 
							
									local sourceObj = appendage.getSource();
							 | 
						|||
| 
								 | 
							
												
							 | 
						|||
| 
								 | 
							
									if(!sourceObj || !parentObj) {
							 | 
						|||
| 
								 | 
							
										appendage.setValid(false);
							 | 
						|||
| 
								 | 
							
										return;
							 | 
						|||
| 
								 | 
							
									}	
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									local var = appendage.getVar();		
							 | 
						|||
| 
								 | 
							
									local elect = sq_AddDrawOnlyAniFromParent(parentObj,"PassiveObject/Character/Mage/Animation/ATLightningWall/12_el-shock_dodge.ani", 0, 0, 0);	
							 | 
						|||
| 
								 | 
							
									elect.setCurrentPos(parentObj.getXPos(), parentObj.getYPos()+1, parentObj.getZPos() + parentObj.getObjectHeight()/2);
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									local sizeRate = sq_GetUniformVelocity(5,15,parentObj.getObjectHeight() - 100, 150);
							 | 
						|||
| 
								 | 
							
									sizeRate = sizeRate.tofloat()/10.0;
							 | 
						|||
| 
								 | 
							
									local ani = elect.getCurrentAnimation();
							 | 
						|||
| 
								 | 
							
									if(ani)
							 | 
						|||
| 
								 | 
							
										ani.resize(sizeRate);
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
									var.setObject(AP_LIGHTNING_WALL_VAR_ELECT_OBJ, elect);
							 | 
						|||
| 
								 | 
							
									var.setInt(AP_LIGHTNING_WALL_VAR_START_Z, parentObj.getZPos());
							 | 
						|||
| 
								 | 
							
									parentObj.sq_PlaySound("LIGHTWALL_ELEC");
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								function onEnd_appendage_LightningWall(appendage)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
									if(!appendage) {
							 | 
						|||
| 
								 | 
							
										return;
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
										printc("onEnd_appendage_LightningWall");
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									local var = appendage.getVar();
							 | 
						|||
| 
								 | 
							
									local elect = var.getObject(AP_LIGHTNING_WALL_VAR_ELECT_OBJ);
							 | 
						|||
| 
								 | 
							
									if(elect) {
							 | 
						|||
| 
								 | 
							
										elect.setValid(false);
							 | 
						|||
| 
								 | 
							
										printc("onEnd_appendage_LightningWall");
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								 |