diff --git a/fortressone.fgd b/fortressone.fgd new file mode 100644 index 0000000..68bbcb4 --- /dev/null +++ b/fortressone.fgd @@ -0,0 +1,1389 @@ +// +// Quake game definition file (.fgd) +// for Worldcraft 1.6 and above +// +// written by autolycus / autolycus@planetquake.com +// email me with improvements and suggestions +// + +// Modified by CZG : grawert@online.no : http://www.planetquake.com/greyvoid/ +// further modified by various authors + +// Modified by sort 5/28/2018. Merged with Fortress_edit.fgd. +// Visit: http://discord.megateamfortress.com + + + +// +// Team Fortress Mixins +// + +@baseclass = TFArmorType +[ + armortype(choices) : "Armor Type" : 0 : "The APA's armortype is set to the Goals 'armortype'." = + [ + 0.3 : "Green" + 0.6 : "Yellow" + 0.8 : "Red" + ] +] + +@baseclass = TFArmorClass +[ + armorclass(flags) = + [ + // APA's armorclass is set to + 1 : "Shell Resistant" + 2 : "Nail Resistant" + 4 : "Explosion Resistant" + 8 : "Electricity Resistant" + 16 : "Fire Resistant" + ] +] + +@baseclass = TFPlayerClassFilter +[ + playerclass(choices) : "Player Class" : 0 : "AP must be this playerclass to meet this Goal's criteria. You can not add these up, you can only specify one player class." = + [ + 1 : "Only allow a Scout to activate" + 2 : "Only allow a Sniper to activate" + 3 : "Only allow a Soldier to activate" + 4 : "Only allow a Demolition Man to activate" + 5 : "Only allow a Medic to activate" + 6 : "Only allow a Heavy Weapons Guy to activate" + 7 : "Only allow a Pyro to activate" + 8 : "Only allow a Spy to activate" + 9 : "Only allow an Engineer to activate" + ] +] + +@baseclass = TFSkillFilter +[ + ex_skill_min(integer) : "Skill Minimum" + ex_skill_max(integer) : "Skill Maximum" +] + +@baseclass = TFTeamFilter +[ + team_no(choices) : "Team Number" : : "Only members of this team can activate or use this entity." = + [ + 1 : "Team 1 (Blue)" + 2 : "Team 2 (Red)" + 3 : "Team 3 (Yellow)" + 4 : "Team 4 (Green)" + ] +] + +@baseclass = TFGoalState +[ + goal_state(choices) : "Goal State" : 2 : "The initial state of this entity. The default (nothing specified) is Inactive the same as if you specified a value of 2." = + [ + 1 : "Active (Already On)" + 2 : "Inactive (Ready to be used)" + 3 : "Removed (Unmanipulatable until restored)" + ] +] + + + +// +// worldspawn +// + +@SolidClass = worldspawn : "World entity" +[ + message(string) : "Text on entering the world" + worldtype(choices) : "Ambience" : 0 = + [ + 0 : "Medieval" + 1 : "Metal (runic)" + 2 : "Base" + ] + sounds(integer) : "CD track to play" : 0 + light(integer) : "Ambient light" : 0 : "Set a global minimum light level across the whole map." + _minlight_color(string) : "Ambient light color" : "255 255 255" : "" + _minlight_dirt(integer) : "Dirtmapping" : : "1 enables dirtmapping (ambient occlusion) on minlight, -1 to disable. Default is to use the value of '_dirt'." + + _sunlight(integer) : "Sunlight brightness" : 0 : "Set the brightness of the sunlight coming from an unseen sun in the sky." + _sunlight_color(string) : "Sunlight color" : "255 255 255" : "Specify red(r), green(g) and blue(b) components for the colour of the sunlight. RGB component values are between 0 and 255 (between 0 and 1 is also accepted)." + _sun_mangle(string) : "Sun mangle (Yaw pitch roll)" : "0 -90 0" : "Specifies the direction of sunlight using yaw, pitch and roll in degrees. Yaw specifies the angle around the Z-axis from 0 to 359 degrees and pitch specifies the angle from 90 (shining straight up) to -90 (shining straight down from above). Roll has no effect, so use any value (e.g. 0)." + + _sunlight2(integer) : "Sunlight2 brightness" : 0 : "Set the brightness of a dome of lights arranged around the upper hemisphere." + _sunlight_color2(string) : "Sunlight2 color" : "255 255 255" : "Specifies the colour of _sunlight2, same format as '_sunlight_color'." + _sunlight2_dirt(integer) : "Sunlight2 dirtmapping" : : "1 enables dirtmapping (ambient occlusion) on sunlight2/3, -1 to disable. Default is to use the value of '_dirt'." + + _sunlight3(integer) : "Sunlight3 brightness" : 0 : "Same as '_sunlight2', but for the bottom hemisphere (i.e. ambient light, coming from below the horizon). Combine '_sunlight2' and '_sunlight3' to have light coming equally from all directions, e.g. for levels floating in the clouds." + _sunlight_color3(string) : "Sunlight3 color" : "255 255 255" : "Specifies the colour of '_sunlight3'." + + _dirt(choices) : "Dirtmapping" : -1 : "1 enables dirtmapping (ambient occlusion) on all lights, borrowed from q3map2. This adds shadows to corners and crevices. You can override the global setting for specific lights with the '_dirt' light entitiy key or '_sunlight_dirt', '_sunlight2_dirt', and '_minlight_dirt' worldspawn keys." = [ + 1 : "Enabled" + -1 : "No dirtmapping" + ] + + _bounce(choices) : "Bounce" : 0 : "1 enables bounce lighting, disabled by default." = [ + 1 : "Enabled" + 0 : "Disabled" + ] + _bouncescale(integer) : "Bounce scale" : 1 : "Scales brightness of bounce lighting, default 1." + _bouncecolorscale(choices) : "Bounce Color Scale" : 0 : "Weight for bounce lighting to use texture colors from the map: 0=ignore map textures (default), 1=multiply bounce light color by texture color." = [ + 1 : "Enabled" + 0 : "Disabled" + ] + _bouncestyled(choices) : "Bounce Styled" : 0 : "1 makes styled lights bounce (e.g. flickering or switchable lights), default is 0, they do not bounce." = [ + 1 : "Enabled" + 0 : "Disabled" + ] + + _spotlightautofalloff(integer) : "Spotlight Auto Falloff" : 0 : "When set to 1, spotlight falloff is calculated from the distance to the targeted info_null. Ignored when '_falloff' is not 0. Default 0." +] + +// +// base marker definitions +// + +@baseclass = Angle [ angle(integer) : "Direction" ] + +@baseclass = Appearflags [ + spawnflags(Flags) = + [ + 256 : "Not on Easy" : 0 + 512 : "Not on Normal" : 0 + 1024 : "Not on Hard" : 0 + 2048 : "Not in Deathmatch" : 0 + ] +] + +@baseclass = Targetname [ targetname(target_source) : "Name" ] +@baseclass = Target [ + target(target_destination) : "Target" + killtarget(target_destination) : "Killtarget" +] + +@baseclass = ModelEntity [ + _minlight(integer) : "" : 0 : "Set the minimum light level for any surface of the brush model." + _minlight_exclude(string) : "" : "" : "Faces with the given texture are excluded from receiving minlight on this brush model." + _minlight_color(string) : "" : "255 255 255" : "Specify red(r), green(g) and blue(b) components for the colour of the minlight. RGB component values are between 0 and 255 (between 0 and 1 is also accepted)." + _shadow(choices) : "Shadow" : 0 : "If n is 1, this model will cast shadows on other models and itself (i.e. '_shadow' implies '_shadowself'). Note that this doesn’t magically give Quake dynamic lighting powers, so the shadows will not move if the model moves. Set to -1 on func_detail/func_group to prevent them from casting shadows." = [ + 1 : "Enabled" + 0 : "Disabled" + -1 : "No shadows" + ] + _shadowself(choices) : "" : 0 : "If n is 1, this model will cast shadows on itself if one part of the model blocks the light from another model surface. This can be a better compromise for moving models than full shadowing." = [ + 1 : "Enabled" + 0 : "Disabled" + ] + _shadowworldonly(choices) : "" : 0 : "If n is 1, this model will cast shadows on the world only (not other bmodels)." = [ + 1 : "Enabled" + 0 : "Disabled" + ] + _switchableshadow(choices) : "" : : "If n is 1, this model casts a shadow that can be switched on/off using QuakeC. To make this work, a lightstyle is automatically assigned and stored in a key called 'switchshadstyle', which the QuakeC will need to read and call the 'lightstyle()' builtin with 'a' or 'm' to switch the shadow on or off. Entities sharing the same targetname, and with '_switchableshadow' set to 1, will share the same lightstyle." = [ + 1 : "Enabled" + 0 : "Disabled" + ] + _dirt(choices) : "" : 0 : "For brush models, -1 prevents dirtmapping on the brush model. Useful it the bmodel touches or sticks into the world, and you want to those ares from turning black." = [ + 1 : "Enabled" + 0 : "Disabled" + ] + _phong(choices) : "Phong Shading" : 0 : "1 enables phong shading on this model with a default _phong_angle of 89 (softens columns etc)." = [ + 1 : "Enabled" + 0 : "Disabled" + ] + _phong_angle(integer) : "Phong Shading Angle" : 89 : "Enables phong shading on faces of this model with a custom angle. Adjacent faces with normals this many degrees apart (or less) will be smoothed. Consider setting '_anglescale' to '1' on lights or worldspawn to make the effect of phong shading more visible. Use the '-phongdebug' command-line flag to save the interpolated normals to the lightmap for previewing (use 'r_lightmap 1' or 'gl_lightmaps 1' in your engine to preview.)" + _phong_angle_concave(integer) : "" : : "Optional key for setting a different angle threshold for concave joints. A pair of faces will either use '_phong_angle' or '_phong_angle_concave' as the smoothing threshold, depending on whether the joint between the faces is concave or not. '_phong_angle(_concave)' is the maximum angle (in degrees) between the face normals that will still cause the pair of faces to be smoothed. The minimum setting for '_phong_angle_concave' is 1, this should make all concave joints non-smoothed (unless they’re less than 1 degree apart, almost a flat plane.) If it’s 0 or unset, the same value as '_phong_angle' is used." + _lightignore(choices) : "Ignore Light" : 0 : "1 makes a model receive minlight only, ignoring all lights / sunlight. Could be useful on rotators / trains." = [ + 1 : "Enabled" + 0 : "Disabled" + ] +] + + + +// +// player starts, deathmatch, coop, teleport +// + +@baseclass base(Appearflags) size(-16 -16 -24, 16 16 32) + color(0 255 0) model({ "path": ":progs/player.mdl" }) = PlayerClass [] + +@PointClass base(PlayerClass) = info_player_start : "Player 1 start" [] +@PointClass base(PlayerClass) = info_player_coop : "Player cooperative start" [] +@PointClass base(PlayerClass) = info_player_start2 : "Player episode return point" [] +@PointClass base(PlayerClass) = info_player_deathmatch : "Deathmatch start" [] +@PointClass size(-32 -32 0, 32 32 64) base(PlayerClass, Targetname) = info_teleport_destination : "Teleporter destination" [] +@PointClass color(200 150 150) = info_null : "info_null (spotlight target)" +[ + targetname(target_source) : "Name" +] + +@PointClass base(Appearflags, Target, Targetname) color(200 150 150) = info_notnull : "Wildcard entity" // I love you +[ + use(string) : "self.use" + think(string) : "self.think" + nextthink(integer) : "nextthink" + noise(string) : "noise" + touch(string) : "self.touch" +] +@PointClass base(Appearflags) = info_intermission : "Intermission camera" +[ + mangle(string) : "Camera angle (Pitch Yaw Roll)" +] + +// +// items +// +@baseclass base(Appearflags, Target, Targetname) = Item +[ + message(string) : "Message" + target(string) : "Target" + killtarget(string) : "Killtarget" + delay(integer) : "Delay" +] +@baseclass size(0 0 0, 32 32 56) color(80 0 200) base(Item) = Ammo +[ + spawnflags(flags) = + [ + 1 : "Large box" : 0 + ] +] + +@PointClass + base(Ammo) + model( + {{ + spawnflags & 1 -> ":maps/b_batt1.bsp", + ":maps/b_batt0.bsp" + }} + ) = + item_cells : "Thunderbolt ammo" [] + +@PointClass + base(Ammo) + model( + {{ + spawnflags & 1 -> ":maps/b_rock1.bsp", + ":maps/b_rock0.bsp" + }} + ) = + item_rockets : "Rockets" [] + +@PointClass + base(Ammo) + model( + {{ + spawnflags & 1 -> ":maps/b_shell1.bsp", + ":maps/b_shell0.bsp" + }} + ) = item_shells : "Shells" [] + +@PointClass + base(Ammo) + model( + {{ + spawnflags & 1 -> ":maps/b_nail1.bsp", + ":maps/b_nail0.bsp" + }} + ) = item_spikes : "Nailgun/Perforator ammo" [] + +@PointClass + size(0 0 0, 32 32 56) + base(Appearflags) + model( + {{ + spawnflags & 2 -> ":maps/b_bh100.bsp", + spawnflags & 1 -> ":maps/b_bh10.bsp", + ":maps/b_bh25.bsp" + }} + ) = + item_health : "Health pack" +[ + spawnflags(flags) = + [ + 1 : "Rotten" : 0 + 2 : "Megahealth" : 0 + ] +] + +@PointClass size(-16 -16 -24, 16 16 32) base(Item, Appearflags) model({ "path": ":progs/suit.mdl" }) = + item_artifact_envirosuit : "Environmental protection suit" [] +@PointClass size(-16 -16 -24, 16 16 32) base(Item, Appearflags) model({ "path": ":progs/quaddama.mdl" }) = + item_artifact_super_damage : "Quad damage" [] +@PointClass size(-16 -16 -24, 16 16 32) base(Item, Appearflags) model({ "path": ":progs/invulner.mdl" }) = + item_artifact_invulnerability : "Pentagram of Protection" [] +@PointClass size(-16 -16 -24, 16 16 32) base(Item, Appearflags) model({ "path": ":progs/invisibl.mdl" }) = + item_artifact_invisibility : "Ring of Shadows" [] + +@PointClass size(-16 -16 0, 16 16 56) base(Item, Appearflags) model({ "path": ":progs/armor.mdl", "skin": 2 }) = + item_armorInv : "Red armor (200%)" [] +@PointClass size(-16 -16 0, 16 16 56) base(Item, Appearflags) model({ "path": ":progs/armor.mdl", "skin": 1 }) = + item_armor2 : "Yellow armor (150%)" [] +@PointClass size(-16 -16 0, 16 16 56) base(Item, Appearflags) model({ "path": ":progs/armor.mdl" }) = + item_armor1 : "Green armor (100%)" [] +@PointClass size(-16 -16 -24, 16 16 32) base(Item, Appearflags) model({ "path": ":progs/w_s_key.mdl" }) = + item_key1 : "Silver key" [] +@PointClass size(-16 -16 -24, 16 16 32) base(Item, Appearflags) model({ "path": ":progs/w_g_key.mdl" }) = + item_key2 : "Gold key" [] +@PointClass size(-16 -16 -24, 16 16 32) base(Item, Appearflags) model({ "path": ":progs/end1.mdl" }) = + item_sigil : "Sigil" +[ + spawnflags(Flags) = + [ + 1 : "Episode 1" : 1 + 2 : "Episode 2" : 0 + 4 : "Episode 3" : 0 + 8 : "Episode 4" : 0 + ] +] + +// +// weapons +// + +@baseclass size(-16 -16 0, 16 16 56) color(0 0 200) base(Item, Appearflags) = Weapon [] + +@PointClass base(Weapon) model({ "path": ":progs/g_shot.mdl" }) = weapon_supershotgun : "Double-barrelled shotgun" [] +@PointClass base(Weapon) model({ "path": ":progs/g_nail.mdl" }) = weapon_nailgun : "Nailgun" [] +@PointClass base(Weapon) model({ "path": ":progs/g_nail2.mdl" }) = weapon_supernailgun : "Super nailgun" [] +@PointClass base(Weapon) model({ "path": ":progs/g_rock.mdl" }) = weapon_grenadelauncher : "Grenade launcher" [] +@PointClass base(Weapon) model({ "path": ":progs/g_rock2.mdl" }) = weapon_rocketlauncher : "Rocket launcher" [] +@PointClass base(Weapon) model({ "path": ":progs/g_light.mdl" }) = weapon_lightning : "Thunderbolt" [] + +// +// monsters +// + +@baseclass base(Angle, Appearflags, Target, Targetname) color(220 0 0) = Monster +[ + spawnflags(Flags) = + [ + 1 : "Ambush" : 0 + ] +] + +@PointClass base(Monster) size(-16 -16 -24, 16 16 40) model({ "path": ":progs/soldier.mdl" }) = monster_army : "Grunt" [] +@PointClass base(Monster) size(-32 -32 -24, 32 32 40) model({ "path": ":progs/dog.mdl" }) = monster_dog : "Nasty Doggie" [] +@PointClass base(Monster) size(-32 -32 -24, 32 32 64) model({ "path": ":progs/ogre.mdl" }) = monster_ogre : "Ogre" [] +@PointClass base(Monster) size(-32 -32 -24, 32 32 64) model({ "path": ":progs/ogre.mdl" }) = monster_ogre_marksman : "Ogre marksman" [] +@PointClass base(Monster) size(-16 -16 -24, 16 16 40) model({ "path": ":progs/knight.mdl" }) = monster_knight : "Knight" [] +@PointClass base(Monster) size(-16 -16 -24, 16 16 40) model({ "path": ":progs/hknight.mdl" }) = monster_hell_knight : "Hell knight" [] +@PointClass base(Monster) size(-16 -16 -24, 16 16 40) model({ "path": ":progs/wizard.mdl" }) = monster_wizard : "Scrag" [] +@PointClass base(Monster) size(-32 -32 -24, 32 32 64) model({ "path": ":progs/demon.mdl" }) = monster_demon1 : "Fiend" [] +@PointClass base(Monster) size(-32 -32 -24, 32 32 64) model({ "path": ":progs/shambler.mdl" }) = monster_shambler : "Shambler" [] +@PointClass base(Monster) size(-128 -128 -24, 128 128 256) model({ "path": ":progs/boss.mdl" }) = monster_boss : "Chthon" [] +@PointClass base(Monster) size(-16 -16 -24, 16 16 40) model({ "path": ":progs/enforcer.mdl" }) = monster_enforcer : "Enforcer" [] +@PointClass base(Monster) size(-32 -32 -24, 32 32 64) model({ "path": ":progs/shalrath.mdl" }) = monster_shalrath : "Vore" [] +@PointClass base(Monster) size(-16 -16 -24, 16 16 24) model({ "path": ":progs/tarbaby.mdl" }) = monster_tarbaby : "Spawn" [] +@PointClass base(Monster) size(-16 -16 -24, 16 16 24) model({ "path": ":progs/fish.mdl" }) = monster_fish : "Rotfish" [] +@PointClass base(Monster) size(-16 -16 -24, 16 16 32) model({ "path": ":progs/oldone.mdl" }) = monster_oldone : "Shub-Niggurath" [] +@PointClass base(Monster) size(-16 -16 -24, 16 16 32) model({ "path": ":progs/zombie.mdl" }) = monster_zombie : "Zombie" +[ + spawnflags(Flags) = + [ + 1 : "Crucified" : 0 + 2 : "Ambush" : 0 + ] +] + +// +// lights +// + +@baseclass color(255 255 40) = Light [ + light(integer) : "Brightness" : 300 + wait(integer) : "Fade distance multiplier" : 1 + delay(choices) : "Attenuation" : 0 = + [ + 0 : "Linear falloff (Default)" + 1 : "Inverse distance falloff" + 2 : "Inverse distance squared" + 3 : "No falloff" + 4 : "Local minlight" + 5 : "Inverse distance squared B" + ] + mangle(string) : "Spotlight angle" : : "Turns the light into a spotlight and specifies the direction of light using yaw, pitch and roll in degrees. Yaw specifies the angle around the Z-axis from 0 to 359 degrees and pitch specifies the angle from 90 (straight up) to -90 (straight down). Roll has no effect, so use any value (e.g. 0). Often easier than the 'target' method." + style(Choices) : "Appearance" : 0 = + [ + 0 : "Normal" + 10: "Fluorescent flicker" + 2 : "Slow, strong pulse" + 11: "Slow pulse, noblack" + 5 : "Gentle pulse" + 1 : "Flicker A" + 6 : "Flicker B" + 3 : "Candle A" + 7 : "Candle B" + 8 : "Candle C" + 4 : "Fast strobe" + 9 : "Slow strobe" + ] + _surface(string) : "Surface" : : "Makes surfaces with the given texture name emit light, by using this light as a template which is copied across those surfaces. Lights are spaced about 128 units (though possibly closer due to bsp splitting) apart and positioned 2 units above the surfaces." + _surface_offset(integer) : "Surface offset" : 2 : "Controls the offset lights are placed above surfaces for '_surface'." + _falloff(integer) : "Falloff" : : "Sets the distance at which the light drops to 0, in map units. In this mode, 'wait' is ignored and 'light' only controls the brightness at the center of the light, and no longer affects the falloff distance." + _color(string) : "Color" : "255 255 255" : "Specify red(r), green(g) and blue(b) components for the colour of the light. RGB component values are between 0 and 255 (between 0 and 1 is also accepted)." +] + +@PointClass size(-8 -8 -8, 8 8 8) base(Light, Target, Targetname) = + light : "Invisible light source" + [ + spawnflags(Flags) = [ 1 : "Start off" : 0 ] + ] +@PointClass size(-8 -8 -8, 8 8 8) base(Light, Target, Targetname) = + light_fluoro : "Fluorescent light" + [ + spawnflags(Flags) = [ 1 : "Start off" : 0 ] + ] +@PointClass size(-8 -8 -8, 8 8 8) base(Light, Target, Targetname) = + light_fluorospark : "Sparking fluorescent light" + [ + spawnflags(Flags) = [ 1 : "Start off" : 0 ] + ] +@PointClass size(-8 -8 -8, 8 8 8) base(Appearflags, Light, Target, Targetname) = + light_globe : "Globe light" + [ + spawnflags(Flags) = [ 1 : "Start off" : 0 ] + ] +@PointClass size(-8 -8 -12, 8 8 20) base(Appearflags, Light, Target, Targetname) model({ "path": ":progs/flame2.mdl" }) = + light_flame_large_yellow : "Large yellow flame" + [ + spawnflags(Flags) = [ 1 : "Start off" : 0 ] + ] +@PointClass size(-4 -4 -12, 4 4 20) base(Appearflags, Light, Target, Targetname) model({ "path": ":progs/flame2.mdl" }) = + light_flame_small_yellow : "Small yellow flame" + [ + spawnflags(Flags) = [ 1 : "Start off" : 0 ] + ] +@PointClass size(-4 -4 -12, 4 4 20) base(Appearflags, Light, Target, Targetname) model({ "path": ":progs/flame2.mdl" }) = + light_flame_small_white : "Small white flame" + [ + spawnflags(Flags) = [ 1 : "Start off" : 0 ] + ] +@PointClass size(-4 -4 -12, 4 4 20) base(Appearflags, Light, Target, Targetname) model({ "path": ":progs/flame.mdl" }) = + light_torch_small_walltorch : "Small walltorch" [] + +// +// misc +// + +@SolidClass base(Appearflags) = func_illusionary : "Static nonsolid model" [] + +@PointClass base(Appearflags) color(0 150 220) = air_bubbles : "Air bubbles" [] +@PointClass base(Appearflags, Targetname) = + event_lightning : "Chthon's lightning" [] +@PointClass base(Appearflags) model({ "path": ":progs/lavaball.mdl" }) = misc_fireball : "Small fireball" + [ speed(integer) : "Speed" : 40 ] +@PointClass base(Appearflags) size(0 0 0, 32 32 64) model({ "path": ":maps/b_explob.bsp" }) = misc_explobox : "Large exploding container" [] +@PointClass base(Appearflags) size(0 0 0, 32 32 32) model({ "path": ":maps/b_exbox2.bsp" }) = misc_explobox2 : "Small exploding container" [] +@PointClass base(Appearflags) size(-8 -8 -8, 8 8 8) model({ "path": ":progs/teleport.mdl" }) = misc_teleporttrain : "Flying teleporter destination" +[ + target(string) : "First stop target" + targetname(target_source) : "Name" +] +@PointClass base(Appearflags, Targetname) color(220 150 150) = trap_spikeshooter : "Triggered shooter" +[ + spawnflags(Flags) = + [ + 1 : "Spike" : 0 + 2 : "Laser" : 0 + ] +] +@PointClass base(Appearflags) color(220 150 150) = trap_shooter : "Continuous shooter" +[ + nextthink(integer) : "Delay before first spike" + wait(integer) : "Delay between spikes" + spawnflags(Flags) = + [ + 1 : "Spike" : 0 + 2 : "Laser" : 0 + ] +] + + +@SolidClass base(ModelEntity) = func_group : "Group of brushes for in-editor use" [] +@SolidClass base(ModelEntity) = func_detail : "Group of brushes for certain compilers " [] +@SolidClass base(ModelEntity) = func_detail_illusionary : "func_detail variant with no collision (players / monsters / gunfire) and doesn’t split world faces." [] +@SolidClass base(ModelEntity) = func_detail_wall : "func_detail variant that doesn’t split world faces." [] +@SolidClass base(ModelEntity) = func_detail_fence : "Similar to func_detail_wall except it’s suitable for fence textures, never clips away world faces." [] +@SolidClass base(Appearflags, ModelEntity) = func_illusionary_visblocker : "For creating vis-blocking illusionary brushes (similar to 'func_detail_illusionary' or 'func_illusionary'." [] + + +// +// ambient sounds +// + +@PointClass base(Appearflags) color(150 0 150) = ambient_drip : "Dripping sound" [] +@PointClass base(Appearflags) color(150 0 150) = ambient_drone : "Engine/machinery sound" [] +@PointClass base(Appearflags) color(150 0 150) = ambient_comp_hum : "Computer background sounds" [] +@PointClass base(Appearflags) color(150 0 150) = ambient_flouro_buzz : "Fluorescent buzzing sound" [] +@PointClass base(Appearflags) color(150 0 150) = ambient_light_buzz : "Buzzing sound from light" [] +@PointClass base(Appearflags) color(150 0 150) = ambient_suck_wind : "Wind sound" [] +@PointClass base(Appearflags) color(150 0 150) = ambient_swamp1 : "Frogs croaking" [] +@PointClass base(Appearflags) color(150 0 150) = ambient_swamp2 : "Frogs croaking B" [] +@PointClass base(Appearflags) color(150 0 150) = ambient_thunder : "Thunder sound" [] + +// +// moving things +// + + +@SolidClass base(Angle, Appearflags, Targetname, Target) = func_door : "Basic door" +[ + speed(integer) : "Speed" : 100 + sounds(choices) : "Sound" : 0 = + [ + 0: "Silent" + 1: "Stone" + 2: "Machine" + 3: "Stone Chain" + 4: "Screechy Metal" + ] + wait(string) : "Wait before close" : "3" + lip(integer) : "Lip" : 8 + dmg(integer) : "Damage inflicted when blocked" : 2 + message(string) : "Message if touched" + health(integer) : "Health (shootable)" : 0 + spawnflags(flags) = + [ + 1 : "Starts Open" : 0 + 4 : "Don't link" : 0 + 8 : "Gold Key required" : 0 + 16: "Silver Key required" : 0 + 32: "Toggle" : 0 + ] +] + +@SolidClass base(Appearflags, Targetname, Target) = func_door_secret : "Secret door" +[ + angle(integer) : "Direction of second move" + t_width(integer) : "First move length" + t_length(integer) : "Second move length" + dmg(integer) : "Damage when blocked" : 2 + wait(string) : "Wait before close" : "2" + sounds(choices) : "Sounds" : 3 = + [ + 1: "Medieval" + 2: "Metal" + 3: "Base" + ] + message(string) : "Message" + spawnflags(flags) = + [ + 1 : "Open once" : 0 + 2 : "Move left first" : 0 + 4 : "Move down first" : 0 + 8 : "Not shootable" : 0 + 16 : "Always shootable" : 0 + ] +] + +@SolidClass base(Appearflags, Targetname, ModelEntity) = func_wall : "Wall, starts animation when triggered (if supporting texture)" [] + + +@SolidClass base(Angle, Appearflags, Targetname) = func_button : "Button" +[ + speed(integer) : "Speed" : 40 + lip(integer) : "Lip" : 4 + target(target_source) : "Target" + health(integer) : "Health (shootable)" + sounds(choices) : "Sounds" = + [ + 0 : "Steam metal" + 1 : "Wooden clunk" + 2 : "Metallic clink" + 3 : "In-out" + ] + wait(string) : "Wait before reset" : "1" + delay(string) : "Delay before trigger" + message(string) : "Message" +] + +@SolidClass base(Appearflags, Targetname) = func_train : "Moving platform" +[ + sounds(choices) : "Sound" : 1 = + [ + 0: "Silent" + 1: "Ratchet Metal" + ] + speed(integer) : "Speed (units per second)" : 64 + target(target_source) : "Target to start at" + dmg(integer) : "Damage on block" : 2 +] + +@PointClass base(Appearflags, Targetname) size(16 16 16) color(0 255 255) = + path_corner : "Waypoint for platforms and monsters" +[ + target(target_source) : "Next target" + wait(integer) : "Wait" : 0 +] + +@SolidClass base(Appearflags, Targetname) = func_plat : "Elevator" +[ + spawnflags(Flags) = + [ + 1 : "Low trigger volume" : 0 + ] + speed(integer) : "Speed" : 150 + height(integer) : "Travel altitude (can be negative)" : 0 + sounds(choices) : "Sound" : 1 = + [ + 0: "None" + 1: "Base fast" + 2: "Chain Slow" + ] +] + +@SolidClass base(Appearflags) = func_episodegate : "Episode Gate" +[ + spawnflags(Flags) = + [ + 1 : "Episode 1" : 1 + 2 : "Episode 2" : 0 + 4 : "Episode 3" : 0 + 8 : "Episode 4" : 0 + ] +] + +@SolidClass base(Appearflags) = func_bossgate : "Boss gate" [] + +// +// triggers +// + +@baseclass base(Appearflags, Target, Killarget, Targetname) = Trigger +[ + sounds(choices) : "Sound style" : 0 = + [ + 0 : "None" + 1 : "Secret sound" + 2 : "Beep beep" + 3 : "Large switch" + ] + delay(string) : "Delay before trigger" : "0" + message(string) : "Message" +] + +@SolidClass base(Trigger) = trigger_changelevel : "Trigger: Change level" +[ + map(string) : "Next map" + target(target_destination) : "Target" + spawnflags(flags) = + [ + 1: "No intermission" : 0 + ] +] + +@SolidClass base(Trigger) = trigger_once : "Trigger: Activate once" +[ + health(integer) : "Health (shootable)" + spawnflags(flags) = [ 1: "Not touchable" : 0 ] +] +@SolidClass base(Trigger) = trigger_multiple : "Trigger: Activate multiple" +[ + wait(string) : "Wait before reset" : "0.2" + health(integer) : "Health (shootable)" + spawnflags(flags) = [ 1: "Not touchable" : 0 ] +] +@SolidClass base(Trigger) = trigger_onlyregistered : "Trigger: Registered only" +[ + spawnflags(flags) = [ 1: "Not touchable" : 0 ] +] +@SolidClass base(Trigger) = trigger_secret : "Trigger: Secret" +[ + sounds(choices) : "Sound" : 1 = + [ + 1 : "Secret sound" + 2 : "Beep beep" + ] + spawnflags(flags) = [ 1: "Not touchable" : 0 ] +] + +@SolidClass base(Appearflags, Target, Targetname) = trigger_teleport : "Trigger: Teleporter" +[ + spawnflags(Flags) = + [ + 1 : "Player only" : 0 + 2 : "Silent" : 0 + ] +] + +@SolidClass base(Appearflags) = trigger_setskill : "Trigger: Set skill" +[ + message(choices) : "Skill to change to" : 1 = + [ + 0 : "Easy" + 1 : "Medium" + 2 : "Hard" + 3 : "Nightmare!" + ] +] +@PointClass base(Trigger) = trigger_relay : "Trigger: Relay" +[ +] +@SolidClass base(Angle, Appearflags, Targetname) = trigger_monsterjump : "Trigger: Monster jump" +[ + speed(integer) : "Jump Speed" : 200 + height(integer) : "Jump Height" : 200 +] +@PointClass base(Appearflags, Target, Targetname) = trigger_counter : "Trigger: Counter" +[ + spawnflags(flags) = [ 1: "No Message" : 0 ] + count(integer) : "Count before trigger" : 2 + delay (integer) : "Delay" + message(string) : "Message" +] +@SolidClass base(Angle, Appearflags, Targetname) = trigger_push : "Trigger: Push" +[ + spawnflags(flags) = [ 1: "Push once" : 0 ] + speed(integer) : "Speed" : 1000 +] +@SolidClass base(Appearflags, Targetname) = trigger_hurt : "Trigger: Hurt" +[ + dmg(integer) : "Damage per second" : 5 +] +@PointClass size(16 16 16) = misc_noisemaker : "Debug entity: continuously plays enforcer sounds" [] +@PointClass size(16 16 16) = viewthing : "Debug entity: fake player model" [] + + + +// FORTRESS + + +// TEAM FORTRESS BASE CLASSES + +@BaseClass = TFDetectflags [ + impulse2(Flags) = + [ + 1 : "Episode 1" : 0 + 2 : "Episode 2" : 0 + 4 : "Episode 3" : 0 + 8 : "Episode 4" : 0 + ] + +] + +@baseclass = TFDetectflags2 [ + spawnflags2(Flags) = + [ + 256 : "Not on Easy" : 0 + 512 : "Not on Normal" : 0 + 1024 : "Not on Hard" : 0 + 2048 : "Not in Deathmatch" : 0 + ] +] + +@baseclass base (TFDetectflags, TFDetectflags2) size(24 24 24) color(255 128 0) = TfDClass +[ + netname(string) : "netname" +] +@baseclass size(24 24 24) color(255 128 0) = TfClass +[ + netname(string) : "netname" +] + +// MEGA-TF AMBIENT ADDONS + +@PointClass = ambient_brook : "Stream or Brook (Mega)" [] +@PointClass = ambient_ice_moving : "Ice Moving (Mega)" [] +@PointClass = ambient_high_wind : "High wind sound (Mega)" [] +@PointClass = ambient_meadow : "Birdsong of Meadow (Mega)" [] +@PointClass = ambient_nightpond : "Crickets & Frogs (Mega)" [] +@PointClass = ambient_alert : "Star Trek Alert (Mega)" [] +@PointClass = ambient_onboard : "Onboard Engines (Mega)" [] +@PointClass = ambient_rocket_engine : "Near Rocket Engines (Mega)" [] +@PointClass = ambient_chant : "Mystical Chanting (Mega)" [] +@PointClass = ambient_unholy : "Unholy Kingdoms Map Music (Mega)" [] +@PointClass = ambient_ocean : "Soothing Ocean (Mega)" [] +@PointClass = ambient_eerie : "Cavern with Wind (Mega)" [] +@PointClass = ambient_lavapit : "Boiling Lava with Steam (Mega)" [] +@PointClass = ambient_peakwind : "Whistling Wind (Mega)" [] +@PointClass = ambient_flagflap : "Flag Whipping in Wind (Mega)" [] + +// INFO_TFDETECT + +@PointClass base(TfDClass, AppearFlags) = info_tfdetect : "TF Detection Entity" +[ + impulse(flags) = + [ + 1 : "Class Skins" : 0 + 2 : "Class Persistence" : 0 + 4 : "Cheat Checking" : 0 + 8 : "Fortress Map" : 0 + 16 : "Respawn Delay" : 0 + 32 : "Respawn Delay" : 0 + 64 : "Auto Team" : 0 + 128 : "Individual Frags" : 0 + ] + + message(string) : "Localcmds to send to server on start" + + ammo_shells(integer) : "Max lives for player in Team 1 (Blue)." : 0 : "0 = Unlimited number of lives" + ammo_nails(integer) : "Max lives for player in Team 2 (Red)." : 0 : "0 = Unlimited number of lives" + ammo_rockets(integer) : "Max lives for player in Team 3 (Yellow)." : 0 : "0 = Unlimited number of lives" + ammo_cells(integer) : "Max lives for player in Team 4 (Green)." : 0 : "0 = Unlimited number of lives" + + ammo_medikit(integer) : "Max players allowed in Team 1 (Blue)." : 0 : "0 = Unlimited number of players" + ammo_detpack(integer) : "Max players allowed in Team 2 (Red)." : 0 : "0 = Unlimited number of players" + maxammo_medikit(integer) : "Max players allowed in Team 3 (Yellow)." : 0 : "0 = Unlimited number of players" + maxammo_detpack(integer) : "Max players allowed in Team 4 (Green)." : 0 : "0 = Unlimited number of players" + + maxammo_shells(flags) = + [ + // Restricted Classes Team 1 + -1 : "Team 1: Civilian Only. (Cannot Specify Others)" : 0 + 1 : "Team 1: No Scout" : 0 + 2 : "Team 1: No Sniper" : 0 + 4 : "Team 1: No Soldier" : 0 + 8 : "Team 1: No Demolitions Man" : 0 + 16 : "Team 1: No Combat Medic" : 0 + 32 : "Team 1: No Heavy Weapons Guy" : 0 + 64 : "Team 1: No Pyro" : 0 + 128 : "Team 1: No Random PlayerClass" : 0 + 256 : "Team 1: No Spy" : 0 + 512 : "Team 1: No Engineer" : 0 + ] + maxammo_nails(flags) = + [ + -1 : "Team 2: Civilian Only. (Cannot Specify Others)" + 1 : "Team 2: No Scout" : 0 + 2 : "Team 2: No Sniper" : 0 + 4 : "Team 2: No Soldier" : 0 + 8 : "Team 2: No Demolitions Man" : 0 + 16 : "Team 2: No Combat Medic" : 0 + 32 : "Team 2: No Heavy Weapons Guy" : 0 + 64 : "Team 2: No Pyro" : 0 + 128 : "Team 2: No Random PlayerClass" : 0 + 256 : "Team 2: No Spy" : 0 + 512 : "Team 2: No Engineer" : 0 + ] + maxammo_rockets(flags) = + [ + // Restricted Classes Team 3 + -1 : "Team 3: Civilian Only. (Cannot Specify Others)" + 1 : "Team 3: No Scout" : 0 + 2 : "Team 3: No Sniper" : 0 + 4 : "Team 3: No Soldier" : 0 + 8 : "Team 3: No Demolitions Man" : 0 + 16 : "Team 3: No Combat Medic" : 0 + 32 : "Team 3: No Heavy Weapons Guy" : 0 + 64 : "Team 3: No Pyro" : 0 + 128 : "Team 3: No Random PlayerClass" : 0 + 256 : "Team 3: No Spy" : 0 + 512 : "Team 3: No Engineer" : 0 + ] + maxammo_cells(flags) = + [ + // Restricted Classes Team 4 + -1 : "Team 4: Civilian Only. (Cannot Specify Others)" + 1 : "Team 4: No Scout" : 0 + 2 : "Team 4: No Sniper" : 0 + 4 : "Team 4: No Soldier" : 0 + 8 : "Team 4: No Demolitions Man" : 0 + 16 : "Team 4: No Combat Medic" : 0 + 32 : "Team 4: No Heavy Weapons Guy" : 0 + 64 : "Team 4: No Pyro" : 0 + 128 : "Team 4: No Random PlayerClass" : 0 + 256 : "Team 4: No Spy" : 0 + 512 : "Team 4: No Engineer" : 0 + ] + + hook_out(choices) : "Grapple Hook" : 0 : "If 1, the grappling hook cannot be used on this map. Else, this does not need to be specified" = + [ + 0 : "Enabled" + 1 : "Disabled" + ] + + display_item_status1(string) : "On FlagInfo, display this GoalItem status" + display_item_status2(string) : "On FlagInfo, display this GoalItem status" + display_item_status3(string) : "On FlagInfo, display this GoalItem status" + display_item_status4(string) : "On FlagInfo, display this GoalItem status" + + team_str_home(string) : "Disp to owner if is at its origin." + team_str_moved(string) : "Disp to owner if is not at its origin." + team_str_carried(string) : "Disp to owner if being carried." + + non_team_str_home(string) : "Disp to others if is at its origin." + non_team_str_moved(string) : "Disp to others if is not at its origin." + non_team_str_carried(string) : "Disp to others if is being carried." + + team_broadcast(string) : "String that replaces the Team Menu." + non_team_broadcast(string) : "String that is the Map Help command." + + noise1(string) : "Class Menu for Team 1." + noise2(string) : "Class Menu for Team 2." + noise3(string) : "Class Menu for Team 3." + noise4(string) : "Class Menu for Team 4." +] + + + +// +// INFO_TFGOAL +// + +@PointClass base(TfClass, TFArmorType, TFArmorClass, TFPlayerClassFilter, TFTeamFilter, TFSkillFilter) = info_tfgoal : "TF Goal Entity" +[ + netname(string) : "The name of the Goal." + goal_no(integer) : "Unique ID number of this goal." + group_no(integer) : "ID Number of the goal group this goal belongs to." + owned_by(integer) : "The Team that own this entity." + + goal_state(integer) : "Bitfield. The initial state." + + mdl(string) : "The mdl used by this Goal if any." + skin(integer) : "The number of the skin on mdl." + + goal_activation(integer) : "Bitfield. Activation criteria." + items_allowed(integer) : "AP must have this goal item no" + has_item_from_group(integer) : "AP must have Item from group no" + + if_goal_is_active(integer) : "This Goal must be in ACTIVE state." + if_goal_is_inactive(integer) : "This Goal must be in INACTIVE state." + if_goal_is_removed(integer) : "This Goal must be in REMOVED state." + if_group_is_active(integer) : "All Goals in Group must be in ACTIVE." + if_group_is_inactive(integer) : "All Goals in Group must be in INACTIVE." + if_group_is_removed(integer) : "All Goals in Group must be in REMOVED." + if_item_has_moved(integer) : "This Item not moved or carried." + if_item_hasnt_moved(integer) : "This Item must be moved or carried." + + else_goal(integer) : "If criteria fails, activate this goal no" + + goal_min(string) : "Bounding box min for goal, def is -16 -16 -24" + goal_max(integer) : "Bounding box max for goal, def is 16 16 32" + + // + // When this Goal is successfully activated up, the following variables may be executed + // + + return_item_no(integer) : "Return this GoalItem if not carried" + + broadcast(string) : "Message centerprinted to everyone else." + message(string) : "Message centerprinted to AP." + team_broadcast(string) : "Message centerprinted to teammates" + non_team_broadcast(string) : "Message centerprinted to other team" + owners_team_broadcast(string) : "Centerprinted to all owning teammates" + netname_broadcast(string) : "_____ activated this goal.\n" + netname_team_broadcast(string) : "_____ activated your teams goal.\n" + netname_non_team_broadcast(string) : "____ took an enemy flag!\n" + netname_owners_team_broadcast(string) : "____ took your flag!\n" + + deathtype(string) : "___ was killed by this goal!\n" + + target(string) : "Activate goal with this targetname" + killtarget(string) : "Remove goal with this targetname" + + goal_effects(integer) : "Bitfield. See TFEntRef" + + maxammo_shells(integer) : "All members of this team are affected." + maxammo_nails(integer) : "All members not of this team are affected." + + t_length(integer) : "Everyone within this radius is affected." + + goal_results(integer) : "Bitfield. See TFEntRef" + + count(integer) : "Specified score given to the AP's team." + + increase_team1(integer) : "Specified score given to team 1" + increase_team2(integer) : "Specified score given to team 2" + increase_team3(integer) : "Specified score given to team 3" + increase_team4(integer) : "Specified score given to team 4" + + noise(string) : "WAV file played when this Goal is activated." + + lives(integer) : "Added to APA's lives." + + health(integer) : "Added to APA's health." + + armorvalue(integer) : "APA's armorvalue is set to (0-250)" + + frags(integer) : "Added to APA's frags." + + ammo_shells(integer) : "Added this number of shells." + ammo_nails(integer) : "Added this number of nails." + ammo_rockets(integer) : "Added this number of rockets." + ammo_cells(integer) : "Added this number of cells." + ammo_detpack(integer) : "Added this number of det packs." + ammo_medikit(integer) : "Added this number of medikits." + + no_grenades_1(integer) : "Added to number type 1 TF grenades." + no_grenades_2(integer) : "Added to number type 2 TF grenades." + + invincible_finished(integer) : "Number of seconds of invincibility." + invisible_finished(integer) : "Number of seconds of invisibility." + super_damage_finished(integer) : "Number of seconds of quad." + radsuit_finished(integer) : "Number of seconds of radsuit." + + items(integer) : "Goal gives this GoalItem to APA." + axhitme(integer) : "Goal removes this GoalItem from APA with it." + + delay_time(integer) : "Delay before activation." + wait(integer) : "Goal stays ACTIVE for this long." + + activate_goal_no(integer) : "Activate this Goal." + inactivate_goal_no(integer) : "Inactivate this Goal." + remove_goal_no(integer) : "Remove this Goal." + restore_goal_no(integer) : "Restore this Goal." + + activate_group_no(integer) : "Activate all Goals in this GoalGroup." + inactivate_group_no(integer) : "Inactivate all Goals in this GoalGroup." + remove_group_no(integer) : "Remove all Goals in this GoalGroup." + restore_group_no(integer) : "Restore all Goals in this GoalGroup." + + remove_item_group(integer) : "Removes a GoalGroup from APA" + + all_active(integer) : "If whole group ACTIVE, activate last_impulse" + last_impulse(integer) : "Activate goal based on all_active" + + remove_spawnpoint(integer) : "Remove spawnpoint with this goal_no." + restore_spawnpoint(integer) : "Restore spawnpoint with this goal_no." + remove_spawngroup(integer) : "Remove all spawnpoints in group_no." + restore_spawngroup(integer) : "Restore all spawnpoints in group_no." + + display_item_status1(string) : "Display this when activated" + display_item_status2(string) : "Display this when activated" + display_item_status3(string) : "Display this when activated" + display_item_status4(string) : "Display this when activated" + + team_str_home(string) : "Your flag is in it's base" + team_str_moved(string) : "Your flag is lying around" + team_str_carried(string) : "Your flag is being carried by" + + non_team_str_home(string) : "The enemy flag is in it's base" + non_team_str_moved(string) : "The enemy flag is lying around" + non_team_str_carried(string) : "The enemy flag is being carried by" +] + + + +// +// INFO_TFGOAL_TIMER +// + +@PointClass base(TfClass, TFGoalState, TFArmorType, TFArmorClass, TFPlayerClassFilter, TFSkillFilter) = info_tfgoal_timer : "TF Timer Goal" +[ + goal_effects(integer) : "Bitfield. See TFEntRef" + + search_time(integer) : "Time between iterations." + + netname(string) : "The name of the Goal." + + goal_no(integer) : "Unique ID number of this goal." + group_no(integer) : "ID Number of the goal group this goal belongs to." + + items_allowed(integer) : "AP must have this goal item no" + + if_goal_is_active(integer) : "This Goal must be in ACTIVE state." + if_goal_is_inactive(integer) : "This Goal must be in INACTIVE state." + if_goal_is_removed(integer) : "This Goal must be in REMOVED state." + if_group_is_active(integer) : "All Goals in Group must be in ACTIVE." + if_group_is_inactive(integer) : "All Goals in Group must be in INACTIVE." + if_group_is_removed(integer) : "All Goals in Group must be in REMOVED." + if_item_has_moved(integer) : "This Item not moved or carried." + if_item_hasnt_moved(integer) : "This Item must be moved or carried." + + has_item_from_group(integer) : "AP must have Item from group no" + maxammo_shells(integer) : "All members of this team are checked for criteria." + maxammo_nails(integer) : "All member not on this team are checked for criteria." + t_length(integer) : "Everyone within this radius is affected." + + // When this Goal is successfully activated up, the following variables may be executed + + return_item_no(integer) : "Return this GoalItem if not carried" + + deathtype(string) : "___ was killed by this goal!\n" + + target(string) : "Activate goal with this targetname" + killtarget(string) : "Remove goal with this targetname" + + goal_results(integer) : "Bitfield. See TFEntRef" + + increase_team1(integer) : "Specified score given to team 1" + increase_team2(integer) : "Specified score given to team 2" + increase_team3(integer) : "Specified score given to team 3" + increase_team4(integer) : "Specified score given to team 4" + + noise(string) : "WAV file played when this Goal is activated." + + lives(integer) : "Added to APA's lives." + health(integer) : "Added to APA's health." + + armorvalue(integer) : "APA's armorvalue is set to (0-250)" + frags(integer) : "Added to APA's frags." + + ammo_shells(integer) : "Added this number of shells." + ammo_nails(integer) : "Added this number of nails." + ammo_rockets(integer) : "Added this number of rockets." + ammo_cells(integer) : "Added this number of cells." + ammo_detpack(integer) : "Added this number of det packs." + ammo_medikit(integer) : "Added this number of medikits." + + no_grenades_1(integer) : "Added to number type 1 TF grenades." + no_grenades_2(integer) : "Added to number type 2 TF grenades." + + invincible_finished(integer) : "Number of seconds of invincibility." + invisible_finished(integer) : "Number of seconds of invisibility." + super_damage_finished(integer) : "Number of seconds of quad." + radsuit_finished(integer) : "Number of seconds of radsuit." + + items(integer) : "Goal gives this GoalItem to APA." + axhitme(integer) : "Goal removes this GoalItem from APA with it." + + delay_time(integer) : "Delay before activation." + wait(integer) : "Goal stays ACTIVE for this long." + + activate_group_no(integer) : "Activate all Goals in this GoalGroup." + inactivate_group_no(integer) : "Inactivate all Goals in this GoalGroup." + remove_group_no(integer) : "Remove all Goals in this GoalGroup." + restore_group_no(integer) : "Restore all Goals in this GoalGroup." + + activate_goal_no(integer) : "Activate this Goal." + inactivate_goal_no(integer) : "Inactivate this Goal." + remove_goal_no(integer) : "Remove this Goal." + restore_goal_no(integer) : "Restore this Goal." + + all_active(integer) : "If whole group ACTIVE, activate last_impulse" + last_impulse(integer) : "Activate goal based on all_active" + + remove_spawnpoint(integer) : "Remove spawnpoint with this goal_no." + restore_spawnpoint(integer) : "Restore spawnpoint with this goal_no." + remove_spawngroup(integer) : "Remove all spawnpoints in group_no." + restore_spawngroup(integer) : "Restore all spawnpoints in group_no." + + display_item_status1(string) : "Display this when activated" + display_item_status2(string) : "Display this when activated" + display_item_status3(string) : "Display this when activated" + display_item_status4(string) : "Display this when activated" + + team_str_home(string) : "Your flag is in it's base" + team_str_moved(string) : "Your flag is lying around" + team_str_carried(string) : "Your flag is being carried by" + non_team_str_home(string) : "The enemy flag is in it's base" + non_team_str_moved(string) : "The enemy flag is lying around" + non_team_str_carried(string) : "The enemy flag is being carried by" +] + + + +// +// ITEM_TFGOAL +// + +@PointClass base(TfClass, TFGoalState, TFArmorClass, TFPlayerClassFilter, TFTeamFilter, TFSkillFilter) = item_tfgoal : "TF Goal Item" +[ + netname(string) : "The name of the Goal." + + goal_no(integer) : "Unique ID number of this goal." + group_no(integer) : "ID Number of the goal group this goal belongs to." + owned_by(integer) : "The Team that own this entity." + + mdl(string) : "The mdl used by this Goal if any." + skin(integer) : "The number of the skin on mdl." + + goal_activation(integer) : "Bitfield. Activation criteria." + items_allowed(integer) : "AP must have this goal item no" + has_item_from_group(integer) : "AP must have Item from group no" + + if_goal_is_active(integer) : "This Goal must be in ACTIVE state." + if_goal_is_inactive(integer) : "This Goal must be in INACTIVE state." + if_goal_is_removed(integer) : "This Goal must be in REMOVED state." + + if_group_is_active(integer) : "All Goals in Group must be in ACTIVE." + if_group_is_inactive(integer) : "All Goals in Group must be in INACTIVE." + if_group_is_removed(integer) : "All Goals in Group must be in REMOVED." + + if_item_has_moved(integer) : "This Item not moved or carried." + if_item_hasnt_moved(integer) : "This Item must be moved or carried." + + else_goal(integer) : "If criteria fails, activate this goal no" + + goal_min(string) : "Bounding box min for goal, def is -16 -16 -24" + goal_max(integer) : "Bounding box max for goal, def is 16 16 32" + + // When this Goal is successfully activated up, the following variables may be executed + + return_item_no(integer) : "Return this GoalItem if not carried" + + broadcast(string) : "Message centerprinted to everyone else." + message(string) : "Message centerprinted to AP." + + team_broadcast(string) : "Message centerprinted to teammates" + non_team_broadcast(string) : "Message centerprinted to other team" + owners_team_broadcast(string) : "Centerprinted to all owning teammates" + netname_broadcast(string) : "_____ activated this goal.\n" + netname_team_broadcast(string) : "_____ activated your teams goal.\n" + netname_non_team_broadcast(string) : "____ took an enemy flag!\n" + netname_owners_team_broadcast(string) : "____ took your flag!\n" + + deathtype(string) : "___ was killed by this goal!\n" + + target(string) : "Activate goal with this targetname" + killtarget(string) : "Remove goal with this targetname" + + goal_effects(integer) : "Bitfield. See TFEntRef" + + maxammo_shells(integer) : "All members of this team are affected." + maxammo_nails(integer) : "All members not of this team are affected." + + t_length(integer) : "Everyone within this radius is affected." + + goal_results(integer) : "Bitfield. See TFEntRef" + + count(integer) : "Specified score given to the AP's team." + + increase_team1(integer) : "Specified score given to team 1" + increase_team2(integer) : "Specified score given to team 2" + increase_team3(integer) : "Specified score given to team 3" + increase_team4(integer) : "Specified score given to team 4" + + noise(string) : "WAV file played when this Goal is activated." + lives(integer) : "Added to APA's lives." + health(integer) : "Added to APA's health." + armortype(integer) : "Bitfield. The APAs armortype is set to." + armorvalue(integer) : "APA's armorvalue is set to (0-250)" + frags(integer) : "Added to APA's frags." + + ammo_shells(integer) : "Added this number of shells." + ammo_nails(integer) : "Added this number of nails." + ammo_rockets(integer) : "Added this number of rockets." + ammo_cells(integer) : "Added this number of cells." + ammo_detpack(integer) : "Added this number of det packs." + ammo_medikit(integer) : "Added this number of medikits." + + no_grenades_1(integer) : "Added to number type 1 TF grenades." + no_grenades_2(integer) : "Added to number type 2 TF grenades." + + invincible_finished(integer) : "Number of seconds of invincibility." + invisible_finished(integer) : "Number of seconds of invisibility." + super_damage_finished(integer) : "Number of seconds of quad." + radsuit_finished(integer) : "Number of seconds of radsuit." + + items(integer) : "Goal gives this GoalItem to APA." + axhitme(integer) : "Goal removes this GoalItem from APA with it." + + delay_time(integer) : "Delay before activation." + wait(integer) : "Goal stays ACTIVE for this long." + + activate_goal_no(integer) : "Activate this Goal." + inactivate_goal_no(integer) : "Inactivate this Goal." + remove_goal_no(integer) : "Remove this Goal." + restore_goal_no(integer) : "Restore this Goal." + + activate_group_no(integer) : "Activate all Goals in this GoalGroup." + inactivate_group_no(integer) : "Inactivate all Goals in this GoalGroup." + remove_group_no(integer) : "Remove all Goals in this GoalGroup." + restore_group_no(integer) : "Restore all Goals in this GoalGroup." + remove_item_group(integer) : "Removes a GoalGroup from APA" + + all_active(integer) : "If whole group ACTIVE, activate last_impulse" + last_impulse(integer) : "Activate goal based on all_active" + + remove_spawnpoint(integer) : "Remove spawnpoint with this goal_no." + restore_spawnpoint(integer) : "Restore spawnpoint with this goal_no." + remove_spawngroup(integer) : "Remove all spawnpoints in group_no." + restore_spawngroup(integer) : "Restore all spawnpoints in group_no." + + display_item_status1(string) : "Display this when activated" + display_item_status2(string) : "Display this when activated" + display_item_status3(string) : "Display this when activated" + display_item_status4(string) : "Display this when activated" + + team_str_home(string) : "Your flag is in it's base" + team_str_moved(string) : "Your flag is lying around" + team_str_carried(string) : "Your flag is being carried by" + + non_team_str_home(string) : "The enemy flag is in it's base" + non_team_str_moved(string) : "The enemy flag is lying around" + non_team_str_carried(string) : "The enemy flag is being carried by" +] + + + +// +// INFO_PLAYER_TEAMSPAWN +// + +@PointClass base(PlayerClass, TFGoalState, TFArmorClass, TFArmorType, TFPlayerClassFilter, TFTeamFilter, TFSkillFilter) = info_player_teamspawn : "TF Player Start" +[ + netname(string) : "netname" + + goal_no(integer) : "Goal Number" + group_no(integer) : "Group Number" + + items(integer) : "Goal given to first to spawn here." + axhitme(integer) : "Removes this GoalItem from APA." + + message(string) : "Disp to the first to spawn here." + + goal_activation(integer) : "Bitfields. See TFEntRef." + goal_effects(choices) : "Remove spawnpoint after first use." : 0 = + [ + 0 : "Enabled" + 1 : "Disabled" + ] + activate_goal_no(integer) : "Activate this Goal." + items_allowed(integer) : "AP needs this GoalItem." + has_item_from_group(integer) : "AP must have Item from group_no" + + if_goal_is_active(integer) : "This Goal must be in ACTIVE state." + if_goal_is_inactive(integer) : "This Goal must be in INACTIVE state." + if_goal_is_removed(integer) : "This Goal must be in REMOVED state." + if_group_is_active(integer) : "All Goals in Group must be in ACTIVE." + if_group_is_inactive(integer) : "All Goals in Group must be in INACTIVE." + if_group_is_removed(integer) : "All Goals in Group must be in REMOVED." + if_item_has_moved(integer) : "This Item not moved or carried." + if_item_hasnt_moved(integer) : "This Item must be moved or carried." + + target(string) : "Activate any target with this name" + killtarget(string) : "Remove any target with this name" + + count(integer) : "Specified score given to the AP's team." + + increase_team1(integer) : "Specified score given to team 1" + increase_team2(integer) : "Specified score given to team 2" + increase_team3(integer) : "Specified score given to team 3" + increase_team4(integer) : "Specified score given to team 4" + + noise(string) : "WAV file played when this Goal is activated." + + lives(integer) : "Added to APA's lives." + + health(integer) : "Added to APA's health." + + armorvalue(integer) : "APA's armorvalue is set to (0-250)" + + frags(integer) : "Added to APA's frags." + + ammo_shells(integer) : "Added this number of shells." + ammo_nails(integer) : "Added this number of nails." + ammo_rockets(integer) : "Added this number of rockets." + ammo_cells(integer) : "Added this number of cells." + ammo_detpack(integer) : "Added this number of det packs." + ammo_medikit(integer) : "Added this number of medikits." + + no_grenades_1(integer) : "Added to number type 1 TF grenades." + no_grenades_2(integer) : "Added to number type 2 TF grenades." + + invincible_finished(integer) : "Number of seconds of invincibility." + invisible_finished(integer) : "Number of seconds of invisibility." + super_damage_finished(integer) : "Number of seconds of quad." + radsuit_finished(integer) : "Number of seconds of radsuit." + + activate_goal_no(integer) : "Activate this Goal." + inactivate_goal_no(integer) : "Inactivate this Goal." + remove_goal_no(integer) : "Remove this Goal." + restore_goal_no(integer) : "Restore this Goal." + + activate_group_no(integer) : "Activate all Goals in this GoalGroup." + inactivate_group_no(integer) : "Inactivate all Goals in this GoalGroup." + remove_group_no(integer) : "Remove all Goals in this GoalGroup." + restore_group_no(integer) : "Restore all Goals in this GoalGroup." + + remove_item_group(integer) : "Removes a Items APA has from GoalGroup" + + all_active(integer) : "If all Group ACTIVE, activate last_impulse goal." + last_impulse(integer) : "If all Group are ACTIVE, activate this Goal." + + remove_spawnpoint(integer) : "Remove the spawnpoint with this goal_no." + restore_spawnpoint(integer) : "Restore the spawnpoint with this goal_no." + + remove_spawngroup(integer) : "Remove all spawnpoints with this group_no." + restore_spawngroup(integer) : "Restore all spawnpoints with this group_no." +] +