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