Damage switch to open door -- prl_damagedoor.cog
There is a door that won't open, just a thump when activated. You shoot (damage) a nearby switch (or other surface such as wires). Sparks fly out, pause, sparks and the door opens, pause, more sparks. 4 August 2001

# Jedi Knight Cog Script
#
# prl_damagedoor.cog
# Sylvicolus [PRL] 4 August 2001
#
# Door opens when surface/switch is damaged; creates sparks 3 times.
# Put sparkghost near switch or where you want sparks to originate.
# initialCel is undamaged cel of mat; damagedCel is mat cel after damage.
# Activating door produces thump sound.
#
# This cog is not supported by LucasArts Entertainment Co. 

symbols

message	startup
message	damaged
message	activated

thing	door0		linkid=1
flex	moveSpeed=3.0
surface	switch		linkid=2 mask=0x448
int	initialCel=0
int	damagedCel=1
thing	sparkghost
template	spark=+sparks	local	
sound	wav0=00ElectrExplo03.wav	local
sound	wav1=df_door1-3.wav	local
sector	doorSector		local
int	done=0			local

end

# ========================================================

code

startup:
	SetWallCel(switch,initialCel);
	doorSector = GetThingSector(door0);
	SetSectorAdjoins(doorSector, 0);
	return;

activated:
	if (GetSenderId() != 1) return;
	PlaySoundThing(wav1, door0, 1.0, -1, -1, 0);
	return;

damaged:
	if (done==1 || GetSenderId() != 2) return;
	done=1;
	CreateThing(spark,sparkghost);
	PlaySoundThing(wav0, sparkghost, 0.5,-1,-1,0);
	SetWallCel(switch,damagedCel);
	sleep(1.0);
	CreateThing(spark,sparkghost);
	PlaySoundThing(wav0, sparkghost, 0.5,-1,-1,0);
	SetSectorAdjoins(doorSector, 1);
	MoveToFrame(door0, 1, moveSpeed);
	sleep(1.5);
	CreateThing(spark,sparkghost);
	PlaySoundThing(wav0, sparkghost, 0.5,-1,-1,0);
	return;

end