Bounce Pads
Dynamic Entity (Backer)
entity {
entityDef invasion_bouncepad_back_1 {
inherit = "func/dynamic";
class = "idDynamicEntity";
expandInheritance = false;
poolCount = 0;
poolGranularity = 2;
networkReplicated = false;
disableAIPooling = false;
edit = {
spawnPosition = { // Set the position roughly -0.2 (on the z axis) behind the emitter FX
x = -11.11;
y = -11.11;
z = -11.11;
}
spawnOrientation = { // Backer should be laying on the ground
mat = {
mat[0] = {
x = 0.707107;
y = -0.707107;
z = 0;
}
mat[1] = {
x = 0.707107;
y = 0.707107;
z = 0;
}
mat[2] = {
x = 0;
y = 0;
z = 1;
}
}
}
renderModelInfo = {
model = "art/kit/hell/bridge/bridge_archPillar_a_divider.lwo";
scale = { // Do not change the scale, it will break collision
x = 0.66;
y = 0.66;
z = 0.5;
}
}
clipModelInfo = {
clipModelName = "art/kit/hell/bridge/bridge_archPillar_a_divider.lwo"; // Adds collision
}
}
}
}
Emitter FX (Slayer Team)
entity {
layers {
"game/pvp/slayer_team" // Only the Slayer can see this FX
}
entityDef invasion_bouncepad_fx_slayer_1 {
inherit = "func/fx";
class = "idEntityFx";
expandInheritance = false;
poolCount = 0;
poolGranularity = 2;
networkReplicated = false;
disableAIPooling = false;
edit = {
flags = {
canBecomeDormant = true;
}
dormancy = {
delay = 5;
distance = 78.029007;
}
spawnPosition = { // Position should be identical to the FX on the demon team
x = -11.11;
y = -11.11;
z = -11.11;
}
fxEffect = "gameplay/invasion/bounce_pad_slayer"; // Emitter is red
spawnOrientation = { // Orientation should not be changed
mat = {
mat[0] = {
x = 1;
y = 0;
z = 0;
}
mat[1] = {
x = 0;
y = 1;
z = 0;
}
mat[2] = {
x = 0;
y = 0;
z = 1;
}
}
}
renderModelInfo = {
scale = {
x = 1;
y = 1;
z = 1;
}
}
}
}
}
Emitter FX (Demon Team)
entity {
layers {
"game/pvp/demon_team" // Only Demon Players can see this FX
}
entityDef invasion_bouncepad_fx_slayer_1 {
inherit = "func/fx";
class = "idEntityFx";
expandInheritance = false;
poolCount = 0;
poolGranularity = 2;
networkReplicated = false;
disableAIPooling = false;
edit = {
flags = {
canBecomeDormant = true;
}
dormancy = {
delay = 5;
distance = 78.029007;
}
spawnPosition = { // Position should be identical to the FX on the slayer team
x = -11.11;
y = -11.11;
z = -11.11;
}
automapPropertiesDecl = "invasion_bounce_demon";
fxEffect = "gameplay/invasion/bounce_pad_demon"; // Emitter is purple
spawnOrientation = { // Orientation should not be changed
mat = {
mat[0] = {
x = 1;
y = 0;
z = 0;
}
mat[1] = {
x = 0;
y = 1;
z = 0;
}
mat[2] = {
x = 0;
y = 0;
z = 1;
}
}
}
renderModelInfo = {
scale = {
x = 1;
y = 1;
z = 1;
}
}
}
}
}
Bouncepad
entity {
entityDef invasion_bouncepad_from_1 {
inherit = "trigger/bounce_pad";
class = "idTrigger_BouncePad";
expandInheritance = false;
poolCount = 0;
poolGranularity = 2;
networkReplicated = false;
disableAIPooling = false;
edit = {
flags = {
canBecomeDormant = true;
}
launchFX = "fx/bounce_pad/basic";
spawnPosition = { // Position should be roughtly +1 (z axis) above the FX
x = -11.11;
y = -11.11;
z = -11.11;
}
renderModelInfo = {
model = NULL;
scale = {
x = 1;
y = 1;
z = 1;
}
}
clipModelInfo = {
clipModelName = "maps/game/sp/e1m3_cult/e1m3_cult/invasion_x_bouncepad_from_1";
size = {
x = 1.5;
y = 1.5;
z = 1;
}
}
playerCanActivate = false; // Slayer cannot activate
demonPlayerCanActivate = true; // Demon players can activate
destination = "invasion_bouncepad_dest_1"; // Fly to this destination when activated
launchSpeed = 32; // Speed demons will fly upwards
}
}
}
Destination
entity {
layers {
"game/pvp/demon_team" // Only demon players can be launched
}
entityDef invasion_bouncepad_dest_1 {
inherit = "info/bounce_destination";
class = "idInfo_BounceDestination";
expandInheritance = false;
poolCount = 0;
poolGranularity = 2;
networkReplicated = false;
disableAIPooling = false;
edit = {
spawnPosition = { // Increase z axis position close to the destination
x = -11.11;
y = -11.11;
z = -11.11;
}
spawnOrientation = { // Orientation does not matter
mat = {
mat[0] = {
x = 1;
y = 0;
z = 0;
}
mat[1] = {
x = 0;
y = 1;
z = 0;
}
mat[2] = {
x = 0;
y = 0;
z = 1;
}
}
}
renderModelInfo = {
scale = {
x = 1;
y = 1;
z = 1;
}
}
}
}
}
No Comments