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");
 | ||
| 	}
 | ||
| }
 | ||
|  |