//////////////////////////////////////////////////////////////////////////
//
//
Copyright 1997-2000 Pandemic Studios
//
// Dark Reign II -
Rule Type File - Control Freak
//
// Comments in this file
are here to help ya figure stuff out :)
// displays the objective in
the window.
CreateObjectType("control.objective", "Objective")
{
Condition("TRUE");
Action()
{
DisplayObjective("Add",
"objectives")
{
Text("#mods.ruleset.control.objective");
}
}
}
// blips the minimap every 20
seconds.
CreateObjectType("control.blip.timer",
"Objective")
{
Condition("Timer")
{
Time(20);
}
Action()
{
NewObjective("control.A.blip");
NewObjective("control.B.blip");
NewObjective("control.C.blip");
NewObjective("control.D.blip");
NewObjective("control.E.blip");
NewObjective("control.blip.timer");
}
}
CreateObjectType("control.A.blip",
"Objective")
{
Condition("TRUE");
Action()
{
TriggerTeamRadio("control.blip")
{
Region("CP-A");
}
}
}
CreateObjectType("control.B.blip",
"Objective")
{
Condition("TRUE");
Action()
{
TriggerTeamRadio("control.blip")
{
Region("CP-B");
}
}
}
CreateObjectType("control.C.blip",
"Objective")
{
Condition("TRUE");
Action()
{
TriggerTeamRadio("control.blip")
{
Region("CP-C");
}
}
}
CreateObjectType("control.D.blip",
"Objective")
{
Condition("TRUE");
Action()
{
TriggerTeamRadio("control.blip")
{
Region("CP-D");
}
}
}
CreateObjectType("control.E.blip",
"Objective")
{
Condition("TRUE");
Action()
{
TriggerTeamRadio("control.blip")
{
Region("CP-E");
}
}
}
CreateObjectType("control.A.take",
"Objective")
{
Condition("AND")
{
// prevents taking point from ally or
self
Condition("InRegion")
{
Region("CP-A");
Type("special.control.camera.A")
{
Operator("==");
Amount(0);
}
Relation("Ally");
Combine(1);
}
// you
must have at least one person in
Condition("InRegion")
{
Region("CP-A");
Type("*")
{
Operator(">");
Amount(0);
}
}
// no enemies in
area (camera = 1 enemy.)
Condition("InRegion")
{
Region("CP-A");
Type("*")
{
Operator("<");
Amount(2);
}
Relation("Enemy");
Combine(1);
}
}
Action()
{
Op("~.CP-temp", "=",
"A");
Delete()
{
Tag("camera-A");
}
SpawnObjects()
{
Formation("Box");
Direction(0);
Region("CP-A");
AddType("special.control.camera.A");
Tag("camera-A");
}
TriggerFX()
{
Tag("CP-A");
Effect("sprawler.fx.mojo.rage.unit");
}
TriggerTeamRadio("control.taken")
{
Region("CP-A");
}
NewObjective("control.A.lose");
}
}
CreateObjectType("control.B.take",
"Objective")
{
Condition("AND")
{
Condition("InRegion")
{
Region("CP-B");
Type("special.control.camera.B")
{
Operator("==");
Amount(0);
}
Relation("Ally");
Combine(1);
}
Condition("InRegion")
{
Region("CP-B");
Type("*")
{
Operator(">");
Amount(0);
}
}
Condition("InRegion")
{
Region("CP-B");
Type("*")
{
Operator("<");
Amount(2);
}
Relation("Enemy");
Combine(1);
}
}
Action()
{
Op("~.CP-temp", "=",
"B");
Delete()
{
Tag("camera-B");
}
SpawnObjects()
{
Formation("Box");
Direction(0);
Region("CP-B");
AddType("special.control.camera.B");
Tag("camera-B");
}
TriggerFX()
{
Tag("CP-B");
Effect("sprawler.fx.mojo.rage.unit");
}
TriggerTeamRadio("control.taken")
{
Region("CP-B");
}
NewObjective("control.B.lose");
}
}
CreateObjectType("control.C.take",
"Objective")
{
Condition("AND")
{
Condition("InRegion")
{
Region("CP-C");
Type("special.control.camera.C")
{
Operator("==");
Amount(0);
}
Relation("Ally");
Combine(1);
}
Condition("InRegion")
{
Region("CP-C");
Type("*")
{
Operator(">");
Amount(0);
}
}
Condition("InRegion")
{
Region("CP-C");
Type("*")
{
Operator("<");
Amount(2);
}
Relation("Enemy");
Combine(1);
}
}
Action()
{
Op("~.CP-temp", "=",
"C");
Delete()
{
Tag("camera-C");
}
SpawnObjects()
{
Formation("Box");
Direction(0);
Region("CP-C");
AddType("special.control.camera.C");
Tag("camera-C");
}
TriggerFX()
{
Tag("CP-C");
Effect("sprawler.fx.mojo.rage.unit");
}
TriggerTeamRadio("control.taken")
{
Region("CP-C");
}
NewObjective("control.C.lose");
}
}
CreateObjectType("control.D.take",
"Objective")
{
Condition("AND")
{
Condition("InRegion")
{
Region("CP-D");
Type("special.control.camera.D")
{
Operator("==");
Amount(0);
}
Relation("Ally");
Combine(1);
}
Condition("InRegion")
{
Region("CP-D");
Type("*")
{
Operator(">");
Amount(0);
}
}
Condition("InRegion")
{
Region("CP-D");
Type("*")
{
Operator("<");
Amount(2);
}
Relation("Enemy");
Combine(1);
}
}
Action()
{
Op("~.CP-temp", "=",
"D");
Delete()
{
Tag("camera-D");
}
SpawnObjects()
{
Formation("Box");
Direction(0);
Region("CP-D");
AddType("special.control.camera.D");
Tag("camera-D");
}
TriggerFX()
{
Tag("CP-D");
Effect("sprawler.fx.mojo.rage.unit");
}
TriggerTeamRadio("control.taken")
{
Region("CP-D");
}
NewObjective("control.D.lose");
}
}
CreateObjectType("control.E.take",
"Objective")
{
Condition("AND")
{
Condition("InRegion")
{
Region("CP-E");
Type("special.control.camera.E")
{
Operator("==");
Amount(0);
}
Relation("Ally");
Combine(1);
}
Condition("InRegion")
{
Region("CP-E");
Type("*")
{
Operator(">");
Amount(0);
}
}
Condition("InRegion")
{
Region("CP-E");
Type("*")
{
Operator("<");
Amount(2);
}
Relation("Enemy");
Combine(1);
}
}
Action()
{
Op("~.CP-temp", "=",
"E");
Delete()
{
Tag("camera-E");
}
SpawnObjects()
{
Formation("Box");
Direction(0);
Region("CP-E");
AddType("special.control.camera.E");
Tag("camera-E");
}
TriggerFX()
{
Tag("CP-E");
Effect("sprawler.fx.mojo.rage.unit");
}
TriggerTeamRadio("control.taken")
{
Region("CP-E");
}
NewObjective("control.E.lose");
}
}
// check to see if you
(not your ally) still has
point.
CreateObjectType("control.A.lose",
"Objective")
{
Condition("InRegion")
{
Region("CP-A");
Type("special.control.camera.A")
{
Operator("==");
Amount(0);
}
}
Action()
{
NewObjective("control.A.take");
}
}
CreateObjectType("control.B.lose",
"Objective")
{
Condition("InRegion")
{
Region("CP-B");
Type("special.control.camera.B")
{
Operator("==");
Amount(0);
}
}
Action()
{
NewObjective("control.B.take");
}
}
CreateObjectType("control.C.lose",
"Objective")
{
Condition("InRegion")
{
Region("CP-C");
Type("special.control.camera.C")
{
Operator("==");
Amount(0);
}
}
Action()
{
NewObjective("control.C.take");
}
}
CreateObjectType("control.D.lose",
"Objective")
{
Condition("InRegion")
{
Region("CP-D");
Type("special.control.camera.D")
{
Operator("==");
Amount(0);
}
}
Action()
{
NewObjective("control.D.take");
}
}
CreateObjectType("control.E.lose",
"Objective")
{
Condition("InRegion")
{
Region("CP-E");
Type("special.control.camera.E")
{
Operator("==");
Amount(0);
}
}
Action()
{
NewObjective("control.E.take");
}
}
//check to see if you or your allies
have all five points
CreateObjectType("control.wincheck",
"Objective")
{
Condition("AND")
{
Condition("InRegion")
{
Region("CP-A");
Type("special.control.camera.A")
{
Operator("==");
Amount(1);
}
Relation("Ally");
Combine(1);
}
Condition("InRegion")
{
Region("CP-B");
Type("special.control.camera.B")
{
Operator("==");
Amount(1);
}
Relation("Ally");
Combine(1);
}
Condition("InRegion")
{
Region("CP-C");
Type("special.control.camera.C")
{
Operator("==");
Amount(1);
}
Relation("Ally");
Combine(1);
}
Condition("InRegion")
{
Region("CP-D");
Type("special.control.camera.D")
{
Operator("==");
Amount(1);
}
Relation("Ally");
Combine(1);
}
Condition("InRegion")
{
Region("CP-E");
Type("special.control.camera.E")
{
Operator("==");
Amount(1);
}
Relation("Ally");
Combine(1);
}
}
Action()
{
// twinkles everything blue!
woo-hoo!
TriggerFX()
{
Tag("CP-A");
Effect("sprawler.fx.mojo.rage.unit");
}
TriggerFX()
{
Tag("CP-B");
Effect("sprawler.fx.mojo.rage.unit");
}
TriggerFX()
{
Tag("CP-C");
Effect("sprawler.fx.mojo.rage.unit");
}
TriggerFX()
{
Tag("CP-D");
Effect("sprawler.fx.mojo.rage.unit");
}
TriggerFX()
{
Tag("CP-E");
Effect("sprawler.fx.mojo.rage.unit");
}
TriggerTeamRadio("control.win");
NewObjective("common.timer.win");
}
}
////////////////////////////////////////////////////////////////////////////////
//////////////////////
CONTROL FREAK MESSAGE CONFIGURATION
/////////////////////
////////////////////////////////////////////////////////////////////////////////
ConfigureRadioEvent("control.blip")
{
Messages()
{
LocationMessage::Self("control.blip");
}
}
ConfigureRadioEvent("control.taken")
{
Messages()
{
LocationMessage::Self("control.s_taken",
"~.CP-temp");
LocationMessage::Ally("control.a_taken",
"~.CP-temp");
LocationMessage::Enemy("control.e_taken", "~.CP-temp");
}
}
ConfigureRadioEvent("control.win")
{
Messages()
{
GameMessage::Self("control.win");
GameMessage::Enemy("control.e_win");
}
}
ConfigureGameMessage("control.win")
{
Interval();
Sound()
{
Type("Sound::Primary");
Add("control_win.wav");
}
Message();
}
ConfigureGameMessage("control.e_win")
{
Interval();
Sound()
{
Type("Sound::Primary");
Add("control_lose.wav");
}
Message();
}
ConfigureLocationMessage("control.blip")
{
Interval();
Sound();
Message();
BlipColor(255, 255, 255, 100);
}
ConfigureLocationMessage("control.blip_e")
{
Interval();
Sound();
Message();
BlipColor(255, 100, 0, 100);
}
ConfigureLocationMessage("control.s_taken")
{
Interval();
Sound()
{
Type("Sound::Primary");
Add("control_taken.wav");
}
Message()
{
Type("Message::Console");
Add("#mods.ruleset.control.s_taken");
}
}
ConfigureLocationMessage("control.a_taken")
{
Interval();
Sound();
Message()
{
Type("Message::Console");
Add("#mods.ruleset.control.a_taken");
}
}
ConfigureLocationMessage("control.e_taken")
{
Interval();
Sound();
Message()
{
Type("Message::Console");
Add("#mods.ruleset.control.e_taken");
}
}
////////////////////////////////////////////////////////////////////////////////
//////////////////////
CONTROL FREAK OBJECTS CONFIGURATION
/////////////////////
////////////////////////////////////////////////////////////////////////////////
CreateObjectType("special.control.post",
"Unit")
{
GameObj()
{
ThinkInterval(1);
Properties()
{
Add("Filter::SpecialProp");
}
}
MapObj()
{
GodFile("jda_forcewall.god");
PhysicsModel("building");
TractionType("traction_building");
GenericFX()
{
Add("MapObj::Armour::Damaged",
"jda.armor.hit");
Add("MapObj::Armour::Lost",
"jda.armor.lose");
}
}
UnitObj()
{
SeeingRange(80);
NightModifier(100%);
Power()
{
Required(0);
}
Efficiency()
{
Green(100%);
Yellow(100%);
Red(100%);
}
}
}
CreateObjectType("special.control.camera.A",
"Unit")
{
GameObj()
{
Properties()
{
Add("Filter::SpecialProp");
}
}
MapObj()
{
Mesh();
PhysicsModel("building");
HitPoints(750);
TractionType("traction_building");
TypeDisplay();
}
UnitObj()
{
SeeingRange(60);
NightModifier(100%);
}
}
CreateObjectType("special.control.camera.B",
"Unit")
{
GameObj()
{
Properties()
{
Add("Filter::SpecialProp");
}
}
MapObj()
{
Mesh();
PhysicsModel("building");
HitPoints(750);
TractionType("traction_building");
TypeDisplay();
}
UnitObj()
{
SeeingRange(60);
NightModifier(100%);
}
}
CreateObjectType("special.control.camera.C",
"Unit")
{
GameObj()
{
Properties()
{
Add("Filter::SpecialProp");
}
}
MapObj()
{
Mesh();
PhysicsModel("building");
HitPoints(750);
TractionType("traction_building");
TypeDisplay();
}
UnitObj()
{
SeeingRange(60);
NightModifier(100%);
}
}
CreateObjectType("special.control.camera.D",
"Unit")
{
GameObj()
{
Properties()
{
Add("Filter::SpecialProp");
}
}
MapObj()
{
Mesh();
PhysicsModel("building");
HitPoints(750);
TractionType("traction_building");
TypeDisplay();
}
UnitObj()
{
SeeingRange(60);
NightModifier(100%);
}
}
CreateObjectType("special.control.camera.E",
"Unit")
{
GameObj()
{
Properties()
{
Add("Filter::SpecialProp");
}
}
MapObj()
{
Mesh();
PhysicsModel("building");
HitPoints(750);
TractionType("traction_building");
TypeDisplay();
}
UnitObj()
{
SeeingRange(60);
NightModifier(100%);
}
}