// // Hacked Quake 2 CTF game definition file to add TD2K entities (.fgd) // for Worldcraft 1.6 and above // (Quake 3.12 or greater, and Threewave Quake2 CTF required) // last update: march 21 1998 // // written by autolycus / autolycus@planetquake.com // email me with improvements and suggestions // // special thanks to Zoid for CTF help // // // worldspawn // // 0222 - Note that if you are running Q2 CTF 1.0, you // absolutely MUST give some value to the Worldspawn // "message" key. Otherwise, Quake2 will crash. // 0302 - added "nextmap" key // 0317 - rearranged keys for more intuitive order @SolidClass = worldspawn : "World entity" [ message(string) : "Level name" nextmap(string) : "Next map (DM only)" sky(string) : "Environment map name" skyaxis(string) : "Vector axis for rotating sky" skyrotate(string) : "Speed of rotation (degrees/second)" sounds(integer) : "CD Track Number" : 1 gravity(integer) : "Gravity" : 800 ] // // base marker definitions // @baseclass = Appearflags [ spawnflags(Flags) = [ 256 : "Not in Easy" : 0 512 : "Not in Normal" : 0 1024 : "Not in Hard" : 0 2048 : "Not in Deathmatch" : 0 ] ] @baseclass = Targetname [ targetname(target_source) : "Name" ] @baseclass = Target [ target(target_destination) : "Target" ] // // CTF, player start, deathmatch, coop, deathmatch intermission // @baseclass base(Appearflags, Targetname) size(-16 -16 -24, 16 16 32) color(0 255 0) = PlayerClass [] // CTF entities @PointClass base(PlayerClass) = info_player_team1 : "CTF: Red team base start" [] @PointClass base(PlayerClass) = info_player_team2 : "CTF: Blue team base start" [] @PointClass size(-16 -16 -24, 16 16 32) base(Appearflags) = item_flag_team1 : "CTF: Red Team Flag" [] @PointClass size(-16 -16 -24, 16 16 32) base(Appearflags) = item_flag_team2 : "CTF: Blue Team Flag" [] // the origin of the banner is at the bottom // normal banner is ~256 units tall // small banner is ~128 units tall // // 0223 - updated above descriptive comments // 0223 - fixed team selection for banners // 0224 - changed size from (-4 -4 -4, 4 4 4) to (-4 -4 0, 4 4 246) @PointClass base(Appearflags) color(255 128 0) size(-4 -4 0, 4 4 246) = misc_ctf_banner : "Flowing banner (origin at bottom, 128 tall)" [ spawnflags(Flags) = [ 1 : "Blue Team" : 0 ] ] // 0224 - changed size from (-4 -4 -4, 4 4 4) to (-4 -4 0, 4 4 123) @PointClass base(misc_ctf_banner) size(-4 -4 0, 4 4 123) = misc_ctf_small_banner : "Flowing banner (origin at bottom)" [] // standard player entities @PointClass base(PlayerClass) = info_player_start : "Player 1 start" [] @PointClass base(PlayerClass) = info_player_deathmatch : "Player deathmatch start" [] @PointClass base(PlayerClass) = info_player_coop : "Player cooperative start" [] @PointClass base(PlayerClass) = info_player_intermission : "Deathmatch intermission point" [ angles(string) : "pitch yaw roll" ] // Notes on the 'team' key: First of all, it's really only useful in DM because it creates a // random respawn pattern. Let's say that in one spot, you want to have the shotgun, Quad // damage and mega health item to respawn in alternance. Place all of them in approximately // the same location, team them and voila! The FIRST item that you place in the map will be // the team MASTER - the others will be SLAVES. In DM play, the Master will be the first one // to spawn. Once the Master is picked up, the respawn pattern becomes RANDOM: it could be // the same or one of the other 2. If you try to use this in a Single Player map, it's // pretty useless because only the team MASTER spawns and the others never appear obviously. @BaseClass base(Appearflags, Target) color(76 76 255) size(-16 -16 -16, 16 16 16) = Ammo [ team(string) : "Team" ] @PointClass base(Ammo) = ammo_shells : "Shotgun ammo" [] @PointClass base(Ammo) = ammo_bullets : "Machine/Chain gun ammo" [] @PointClass base(Ammo) = ammo_cells : "Blaster/BFG ammo" [] @PointClass base(Ammo) = ammo_grenades : "Grenades" [] @PointClass base(Ammo) = ammo_rockets : "Rockets" [] @PointClass base(Ammo) = ammo_slugs : "Rail gun ammo" [] // Keep in mind when using func_areaportal that it must // *completely* separate two areas. otherwise, you will // get an error message and the areaportal will not work // // 0221 - is there any point in a "style" key? @SolidClass base(Appearflags, Targetname) = func_areaportal : "Area portal (Vis blocker)" [] // 0221 - added "pathtarget" // 0221 - changed "sounds" information // 0321 - added a "killtarget" key @SolidClass base(Appearflags, Target, Targetname) color(0 128 204) = func_button : "Button" [ killtarget(string) : "Kill Target" pathtarget(string) : "Elevator level target" speed(integer) : "Speed" : 40 wait(choices) : "Wait before reset" : 1 = [ -1 : "Never Return" ] lip(integer) : "Lip remaining after move" : 4 health(integer) : "Health (shootable)" sounds(choices) : "Sounds" : 0 = [ 0 : "Audible" 1 : "Silent" ] message(string) : "Activation message" _minlight(integer) : "Minimum light (optional)" ] // 0221 - added "count" key...oops :) @PointClass base(Appearflags, Targetname) color(0 0 255) size(-8 -8 -8, 8 8 8) = func_clock : "Clock" [ spawnflags(Flags) = [ 1 : "Timer Up" : 0 2 : "Timer Down" : 0 4 : "Start Off" : 0 8 : "Multi Use" : 0 ] count(integer) : "Clock Count" pathtarget(string) : "Target" style(choices) : "Style" : 0 = [ 0 : "xx" 1 : "xx:xx" 2 : "xx:xx:xx" ] ] // func_conveyor code is incomplete. use the surface attribute "flowing" // and the "current" content flag. (texture won't scroll) // // 0221 - added _minlight @SolidClass base(Appearflags, Targetname) color(0 128 204) = func_conveyor : "Conveyor belt" [ spawnflags(Flags) = [ 1 : "Start On" : 0 2 : "Toggle" : 0 ] speed(integer) : "Speed" : 100 _minlight(integer) : "Minimum light (optional)" ] // 0221 - updated "sounds" information // 0221 - added "killtarget" @SolidClass base(Appearflags, Targetname, Target) color(0 128 204) = func_door : "Door" [ spawnflags(Flags) = [ 1 : "Start Open" : 0 4 : "Crusher" : 0 8 : "No Monsters" : 0 16 : "Animated" : 0 32 : "Toggle" : 0 64 : "Animated Fast" : 0 ] killtarget(string) : "Kill Target" team(string) : "Team" message(string) : "Trigger message" health(integer) : "Health (shootable)" speed(integer) : "Speed" : 100 wait(choices) : "Wait before close" : 3 = [ -1 : "Stay open" ] lip(integer) : "Lip remaining after move" : 8 dmg(integer) : "Damage when blocked" : 2 sounds(choices) : "Sounds" : 0 = [ 0 : "Audible" 1 : "Silent" ] _minlight(integer) : "Minimum light (optional)" ] // 0221 - added "killtarget" and "target" keys // 0221 - updated "sounds" info // 0221 - removed "lip" key @SolidClass base(Appearflags, Targetname, Target) color(0 128 204) = func_door_rotating : "Rotating Door" [ spawnflags(Flags) = [ 1 : "Start Open" : 0 2 : "Reverse" : 0 4 : "Crusher" : 0 8 : "No Monsters" : 0 16 : "Animated" : 0 32 : "Toggle" : 0 64 : "X Axis" : 0 128 : "Y Axis" : 0 ] killtarget(string) : "Kill Target" team(string) : "Team" distance(integer) : "Degrees of rotation" : 90 message(string) : "Trigger message" health(integer) : "Health (shootable)" speed(integer) : "Speed" : 100 wait(choices) : "Wait before close" : 3 = [ -1 : "Stay open" ] dmg(integer) : "Damage when blocked" : 2 sounds(choices) : "Sounds" : 0 = [ 0 : "Audible" 1 : "Silent" ] // sounds(choices) : "Sounds" : 3 = // [ // 1 : "Silent" // 2 : "Light" // 3 : "Medium" // 4 : "Heavy" // ] _minlight(integer) : "Minimum light (optional)" ] // 0221 - added "_minlight" key (even tho you dont want it to stand out) // 0221 - added "message" key // 0221 - removed "team" key @SolidClass base(Appearflags, Targetname) color(0 128 204) = func_door_secret : "Secret Door" [ spawnflags(Flags) = [ 1 : "Always shoot" : 0 2 : "1st Left" : 0 4 : "1st Down" : 0 ] dmg(integer) : "Damage when blocked" : 2 wait(choices) : "Wait before close" : 5 = [ -1 : "Stay open" ] message(string) : "Message" _minlight(integer) : "Minimum light (optional)" ] // not visible in DM mode // // 0221 - added "_minlight" key (even tho you dont want it to stand out) @SolidClass base(Appearflags, Targetname, Target) color(0 128 204) = func_explosive : "Exploding/Breakable brush" [ spawnflags(Flags) = [ 1 : "Trigger Spawn" : 0 2 : "Animated" : 0 4 : "Animated Fast" : 0 ] health(integer) : "Health" : 100 mass(integer) : "Mass (debris)" : 75 dmg(integer) : "Damage" : 0 _minlight(integer) : "Minimum light (optional)" ] @SolidClass base(Appearflags, Targetname) color(255 0 0) = func_killbox : "Instant death" [] // 0221 - added "_minlight" key @SolidClass base(Appearflags, Targetname) color (0 128 204) = func_object : "Solid bmodel, will fall if its support is removed" [ spawnflags(Flags) = [ 1 : "Trigger Spawn" : 0 2 : "Animated" : 0 4 : "Animated Fast" : 0 ] _minlight(integer) : "Minimum light (optional)" ] // 0221 - removed "sounds" key @SolidClass base(Appearflags, Targetname) color(0 128 204) = func_plat : "Platform" [ spawnflags(Flags) = [ 1 : "Plat Low Trigger" : 0 ] speed(integer) : "Speed" : 100 accel(integer) : "Acceleration" : 500 lip(integer) : "Lip remaining after move" : 8 height(integer) : "Movement distance" _minlight(integer) : "Minimum light (optional)" ] // 0222 - added "team" key @SolidClass base(Appearflags, Targetname) color(0 128 204) = func_rotating : "Rotating brush" [ spawnflags(Flags) = [ 1 : "Start On" : 0 2 : "Reverse" : 0 4 : "X Axis" : 0 8 : "Y Axis" : 0 16 : "Pain on Touch" : 0 32 : "Block Stops" : 0 64 : "Animated" : 0 128 : "Animated Fast" : 0 ] team(string) : "Team" speed(integer) : "Speed" : 100 dmg(integer) : "Damage when blocked" : 2 _minlight(integer) : "Minimum light (optional)" ] @PointClass base(Appearflags, Targetname, Target) color(76 25 153) size(-8 -8 -8, 8 8 8) = func_timer : "Timer" [ spawnflags(Flags) = [ 1 : "Start On" : 0 ] wait(integer) : "Base wait time" : 1 random(integer) : "Wait variance (+/-)" delay(integer) : "Delay before first firing" pausetime(integer) : "Additional delay" ] // 0219 - added "team" key @SolidClass base(Appearflags, Targetname) color(0 128 204) = func_train : "Moving platform" [ spawnflags(Flags) = [ 1 : "Start On" : 0 2 : "Toggle" : 0 4 : "Block Stops" : 0 ] target(string) : "First stop target" team(string) : "Team" speed(integer) : "Speed" : 100 dmg(integer) : "Damage when blocked" : 2 noise(string) : "Sound (path/file.wav)" _minlight(integer) : "Minimum light (optional)" ] // 0221 - added a "_minlight" key @SolidClass base(Appearflags, Targetname) color(0 128 204) = func_wall : "Solid Wall" [ spawnflags(Flags) = [ 1 : "Trigger Spawn" : 0 2 : "Toggle" : 0 4 : "Start On" : 0 8 : "Animated" : 0 16 : "Animated Fast" : 0 ] _minlight(integer) : "Minimum light (optional)" ] // must never be transparent? // // 0221 - added a "_minlight" key @SolidClass base(Appearflags, Targetname) color(0 128 204) = func_water : "Moveable water" [ spawnflags(Flags) = [ 1 : "Start Open" : 0 ] speed(integer) : "Speed" : 25 wait(choices) : "Wait before return" : -1 = [ -1 : "Toggle" ] lip(integer) : "Lip remaining after move" sounds(Choices) : "Sounds" : 1 = [ 0 : "No Sounds" 1 : "Water" 2 : "Lava" ] team(string) : "Team" _minlight(integer) : "Minimum light (optional)" ] @PointClass base(Appearflags, Targetname) color(0 128 0) size(-4 -4 -4, 4 4 4) = info_null : "Spotlight target" [] @PointClass base(info_null) = info_notnull : "Lightning target" [] @BaseClass base(Appearflags, Target) color(76 76 255) size(-16 -16 -16, 16 16 16) = Items [ team(string) : "Team" ] @PointClass base(Items) = item_adrenaline : "+1 to max health" [] @PointClass base(Items) = item_ancient_head : "+2 to max health" [] @PointClass base(Items) = item_armor_body : "Body armor" [] @PointClass base(Items) = item_armor_combat : "Combat armor" [] @PointClass base(Items) = item_armor_jacket : "Jacket armor" [] @PointClass base(Items) = item_armor_shard : "Armor shard" [] @PointClass base(Items) = item_bandolier : "Equipment belt" [] @PointClass base(Items) = item_breather : "Underwater breather" [] @PointClass base(Items) = item_enviro : "Enviro-Suit" [] @PointClass base(Items) = item_health : "+10 health" [] @PointClass base(Items) = item_health_small : "+2 health" [] @PointClass base(Items) = item_health_large : "+25 health" [] @PointClass base(Items) = item_health_mega : "+100 health" [] @PointClass base(Items) = item_invulnerability : "Invulnerability" [] @PointClass base(Items) = item_pack : "Heavy backpack" [] @PointClass base(Items) = item_power_screen : "Power screen" [] @PointClass base(Items) = item_power_shield : "Power shield" [] @PointClass base(Items) = item_quad : "Quad damage" [] @PointClass base(Items) = item_silencer : "Silencer" [] //td2k weapons @PointClass base(Weapons) = td2k_boomerang : "TD2K Boomerang" [] @PointClass base(Weapons) = td2k_wristxbow : "TD2K Wrist Crossbow" [] @PointClass base(Weapons) = td2k_machinegun : "TD2K Machinegun" [] @PointClass base(Weapons) = td2k_largexbow : "TD2K Large Crossbow" [] @PointClass base(Weapons) = td2k_sawedoff : "TD2K Sawedoff Shotgun" [] @PointClass base(Weapons) = td2k_epl : "TD2K Grenade Launcher" [] @PointClass base(Weapons) = td2k_shotgun : "TD2K Shotgun" [] @PointClass base(Weapons) = td2k_handcannon : "TD2K Handcannon" [] //td2k weapon upgrades @PointClass base(Items) = td2k_explosive_tips : "Explosive Bolt Tips" [] @PointClass base(Items) = td2k_machinegun_silencer : "Machinegun Silencer" [] @PointClass base(Items) = td2k_machinegun_support : "Machinegun Support Bar" [] @PointClass base(Items) = td2k_enhanced_scope : "Enhanced Scope" [] @PointClass base(Items) = td2k_titanium_bolts : "Titanium Bolts" [] @PointClass base(Items) = td2k_wd40 : "WD40" [] @PointClass base(Items) = td2k_armor_piercing : "Armor Piercing Shells" [] @PointClass base(Items) = td2k_pipe_bombs : "Pipe Bombs" [] @PointClass base(Items) = td2k_sticky_grenade : "Adhesive" [] @PointClass base(Items) = td2k_shotgun_extension : "Shotgun Extension" [] @PointClass base(Items) = td2k_shotgun_choke : "Shotgun Choke" [] @PointClass base(Items) = td2k_shotgun_stock : "Shotgun Stock" [] @PointClass base(Items) = td2k_handcannon_silencer : "Handcannon Silencer" [] //td2k power ups @PointClass base(Items) = td2k_bear_trap : "Crate of Bear traps" [] @PointClass base(Items) = td2k_canteen : "Canteen of Water" [] @PointClass base(Items) = td2k_backpack : "Ammo Backpack" [] @PointClass base(Items) = td2k_geiger : "Geiger Counter" [] @PointClass base(Items) = td2k_stimpack : "Stimpack" [] @PointClass base(Items) = td2k_leather_boots : "Leather Boots" [] @PointClass base(Items) = td2k_steel_vest : "Steel Vest" [] @PointClass base(Items) = td2k_flashlight : "Flashlight" [] @PointClass base(Items) = td2k_helmet : "Helmet" [] @PointClass base(Items) = td2k_landmine : "Crate of Landmines" [] @PointClass base(Items) = td2k_ir_goggles : "IR Goggles" [] @PointClass base(Items) = td2k_mud : "Can of Mud" [] //bazaar entities @PointClass base(Items) = td2k_bazaar_spawn : "Spawnpoint inside the bazaar" [ dmg(integer) : "BazaarBubble" : 128 ] @PointClass base(Items) = td2k_bazaar_exit: "Exit bazaar"[] @PointClass base(Items) = td2k_bazaar_pigkiller : "Pigkiller - drugs, etc" [] @PointClass base(Items) = td2k_bazaar_blackmarket : "Blackmarket, gambling" [] @PointClass base(Items) = td2k_bazaar_cashier : "Sell frags, sell items" [] @PointClass base(Items) = td2k_team1_selector : "Team 1 selection" [] @PointClass base(Items) = td2k_team2_selector : "Team 2 selection" [] @PointClass base(Items) = td2k_guided_spawn : "Special guided spawnpoint" [] //end td2k @BaseClass base(Appearflags, Target) color(0 128 204) size(-16 -16 -16, 16 16 16) = Keys [] @PointClass base(Keys) = key_airstrike_target : "Tank commander's head" [] @PointClass base(Keys) = key_blue_key : "Normal door key - blue" [] @PointClass base(Keys) = key_commander_head : "Tank commander's head" [] @PointClass base(Keys) = key_data_cd : "Key for computer centers" [] @PointClass base(Keys) = key_data_spinner : "Key for city computer" [] @PointClass base(Keys) = key_pass : "Security pass for secret level" [] // 0301 - added "targetname" key @PointClass base(Keys, Targetname) = key_power_cube : "Warehouse circuits" [ spawnflags(Flags) = [ 1 : "Trigger Spawn" : 0 2 : "No Touch" : 0 ] ] @PointClass base(Keys) = key_pyramid : "Key for entrance to jail3" [] @PointClass base(Keys) = key_red_key : "normal door key - red" [] @PointClass base(Appearflags, Target, Targetname) color(0 255 0) size(-8 -8 -8, 8 8 8) = light : "Light" [ spawnflags(Flags) = [ 1 : "Start Off" : 0 ] light(integer) : "Brightness" : 300 _color(color1) : "RGB Color" style(Choices) : "Style" : 0 = [ 0 : "Normal" 1 : "Flicker #1" 6 : "Flicker #2" 2 : "Slow Strong Pulse" 3 : "Candle #1" 7 : "Candle #2" 8 : "Candle #3" 4 : "Fast Strobe" 5 : "Gentle Pulse #1" 9 : "Slow Strobe" 10 : "Fluorescent Flicker" 11 : "Slow pulse, no black" 12 : "TD2K Dimming Light" ] _cone(integer) : "Size of light (spotlight)" : 10 ] // 0221 - blanked out the "start off" spawnflag // 0221 - added better descriptions :) @PointClass base(light) color(0 255 0) size(-2 -2 -12, 2 2 12) = light_mine1 : "Dusty fluorescent light fixture" [ spawnflags(Flags) = [ 1 : "" : 0 ] ] // 0221 - changed inheritance from "light" to "light_min1" @PointClass base(light_mine1) = light_mine2 : "Clean fluorescent light fixture" [] // actor code is still broken...leaving this in because i know *someone* will fix // this because its pretty damn cool. @PointClass base(PlayerClass, Target) = misc_actor : "Actor" [ health(integer) : "Health" : 100 ] @PointClass base(Appearflags, Targetname) = target_actor : "Actor path" [ spawnflags(Flags) = [ 1 : "Jump" : 0 2 : "Shoot" : 0 4 : "Attack" : 0 16 : "Hold" : 0 32 : "Brutal" : 0 ] target(string) : "Next path target" pathtarget(string) : "Action target" wait(integer) : "Pause time" message(string) : "Message" speed(integer) : "Forward (jump)" : 200 height(integer) : "Height (jump)" : 200 ] // 0224 - changed banner size from (-4 -4 -4, 4 4 4) to (-4 -4 0, 4 4 246) @PointClass base(Appearflags) color(255 128 0) size(-4 -4 0, 4 4 246) = misc_banner : "Flowing banner" [] @PointClass base(Appearflags) color(255 128 0) size(-8 -8 -8, 8 8 8) = misc_blackhole : "Blackhole" [] @PointClass base(Appearflags) color(255 128 0) size(-16 -16 0, 16 16 16) = misc_deadsoldier : "Dead guys! 6 of em!" [ spawnflags(Flags) = [ 1 : "On Back" : 0 2 : "On Stomach" : 0 4 : "Back, Decap" : 0 8 : "Fetal Position" : 0 16 : "Sitting, Decap" : 0 32 : "Impaled" : 0 ] ] // The following three entities are eye-candy - they don't do anything @PointClass base(Appearflags) color(255 128 0) size(-32 -32 -16, 32 32 32) = misc_eastertank : "Tank Pimp" [] @PointClass base(Appearflags) color(255 128 0) size(-32 -32 0, 32 32 32) = misc_easterchick : "Chick #1" [] @PointClass base(Appearflags) color(255 128 0) size(-32 -32 0, 32 32 32) = misc_easterchick2 : "Chick #2" [] // 0225 - removed "target" key - id concluded being able to target // something with a movable barrel was a bug and removed that function :( @PointClass base(Appearflags, Targetname) color(0 128 204) size(-16 -16 0, 16 16 40) = misc_explobox : "Large exploding box" [ mass(integer) : "Mass" : 100 health(integer) : "Health" : 80 dmg(integer) : "Damage" : 150 ] // set angle for gib direction, otherwise it just drops @PointClass base(Appearflags) color(255 0 0) size(-8 -8 -8, 8 8 8) = misc_gib_arm : "arm gib, use with target_spawner" [] @PointClass base(Appearflags) color(255 0 0) size(-8 -8 -8, 8 8 8) = misc_gib_head : "head gib, use with target_spawner" [] @PointClass base(Appearflags) color(255 0 0) size(-8 -8 -8, 8 8 8) = misc_gib_leg : "leg gib, use with target_spawner" [] // 0221 - added "item", "deathtarget", and "killtarget" keys @PointClass base(Appearflags, Targetname, Target) color(255 128 0) size(-16 -16 -24, 16 16 32) = misc_insane : "Insane Soldiers" [ spawnflags(Flags) = [ 1 : "Ambush" : 0 2 : "Trigger Spawn" : 0 4 : "Crawl" : 0 8 : "Crucified" : 0 16 : "Stand Ground" : 0 32 : "Always Stand" : 0 ] deathtarget(string) : "Entity to trigger at death" killtarget(string) : "Entity to remove at death" item(string) : "Item to spawn at death" ] // 0303 - added "targetname" key @PointClass base(Appearflags, Targetname) color(255 128 0) size(-64 -64 0, 64 64 128) = misc_satellite_dish : "Satellite Dish" [] @PointClass base(Appearflags, Targetname) color(255 128 0) size(-16 -16 0, 16 16 32) = misc_strogg_ship : "Strogg ship for flybys" [ target(string) : "First path target" speed(integer) : "Speed" ] // place teleporter units 10 units into a brush to get rid of teleport pad @PointClass base(Appearflags, Targetname) color(255 0 0) size(-32 -32 -24, 32 32 -16) = misc_teleporter : "Teleporter" [ target(string) : "Teleport Destination" ] @PointClass base(Appearflags, Targetname) color(255 0 0) size(-32 -32 -24, 32 32 -16) = misc_teleporter_dest : "Teleport Destination" [] @PointClass base(Appearflags) color(255 128 0) size(-176 -120 -24, 176 120 72) = misc_bigviper : "Large stationary Viper" [] @PointClass base(Appearflags, Targetname) color(255 128 0) size(-16 -16 0, 16 16 32) = misc_viper : "Viper for flybys" [ target(string) : "First path target" speed(integer) : "Speed" ] @PointClass base(Appearflags, Targetname) color(255 0 0) size(-8 -8 -8, 8 8 8) = misc_viper_bomb : "Viper Bomb" [ dmg(integer) : "Damage" ] // // Monsters! // // 0221 - added "deathtarget", "killtarget", and "combattarget" keys @BaseClass base(Appearflags, Target, Targetname) color(255 128 0) size(-16 -16 -24, 16 16 32) = Monsters [ spawnflags(Flags) = [ 1 : "Ambush" : 0 2 : "Trigger Spawn" : 0 4 : "Sight" : 0 ] combattarget(string) : "Point combat target" deathtarget(string) : "Entity to trigger at death" killtarget(string) : "Entity to remove at death" item(string) : "Spawn Item" ] @PointClass base(Monsters) = monster_berserk : "Berserker" [] @PointClass base(Monsters) size(-56 -56 0, 56 56 80) = monster_boss2 : "Boss2" [] // Just fidgets in one spot and teleports away when triggered // // 0221 - removed Monsters class inheritance @PointClass base(Appearflags, Targetname) size(-32 -32 0, 32 32 90) = monster_boss3_stand : "Stationnary Makron" [] @PointClass base(Monsters) = monster_brain : "Brains" [] @PointClass base(Monsters) = monster_chick : "Iron Maiden" [] @PointClass base(Appearflags, Targetname) color(255 128 0) size(-32 -32 0, 32 32 48) = monster_commander_body : "Tank commander's decapitated body" [] @PointClass base(Monsters) = monster_flipper : "Barracuda shark" [] @PointClass base(Monsters) = monster_floater : "Technician" [] @PointClass base(Monsters) = monster_flyer : "Flyer" [] @PointClass base(Monsters) size(-32 -32 -24, 32 32 64) = monster_gladiator : "Gladiator" [] @PointClass base(Monsters) = monster_gunner : "Gunner" [] @PointClass base(Monsters) = monster_hover : "Icarus" [] @PointClass base(Monsters) = monster_infantry : "Infantry" [] @PointClass base(Monsters) size(-80 -80 0, 90 90 140) = monster_jorg : "Jorg" [] // 0221 - this entity can only spawn once the Jorg dies ... im sure someone will change that tho @PointClass base(Monsters) size(-30 -30 0, 30 30 90) = monster_makron : "Makron" [] @PointClass base(Monsters) = monster_medic : "Medic" [] @PointClass base(Monsters) size(-32 -32 -24, 32 32 32) = monster_mutant : "Mutant" [] @PointClass base(Monsters) = monster_parasite : "Parasite" [] @PointClass base(Monsters) = monster_soldier_light : "Light Soldier" [] @PointClass base(Monsters) = monster_soldier : "Soldier" [] @PointClass base(Monsters) = monster_soldier_ss : "SS Soldier" [] @PointClass base(Monsters) size(-32 -32 -16, 32 32 72) = monster_tank : "Tank" [] @PointClass base(Monsters) size(-64 -64 0, 64 64 72) = monster_supertank : "Super tank" [] @PointClass base(Monsters) size(-32 -32 -16, 32 32 72) = monster_tank_commander : "Tank commander" [] // using a "wait" value of -1 on a path corner causes a func_train to go silent between // itself and the next path corner when the train is restarted. The train's sound will // resume as soon as it reaches a path corner with a "wait" value other than -1 @PointClass base(Appearflags, Targetname) color(128 76 0) size(-8 -8 -8, 8 8 8) = path_corner : "Path marker" [ spawnflags(Flags) = [ 1 : "Teleport" : 0 ] target(string) : "Next path target" pathtarget(string) : "Event to trigger" wait(choices) : "Wait" : 0 = [ -1 : "Wait for retrigger" ] ] // "target" doesn't work (for now)...a separate trigger is needed @PointClass base(Appearflags, Targetname, Target) color(128 76 9) size(-8 -8 -8, 8 8 8) = point_combat : "1st point of combat" [ spawnflags(Flags) = [ 1 : "Hold" : 0 ] ] @PointClass base(Appearflags, Targetname) color(255 0 0) size(-8 -8 -8, 8 8 8) = target_blaster : "Blaster" [ spawnflags(Flags) = [ 1 : "No Trail" : 0 2 : "No Effects" : 0 ] dmg(integer) : "Damage" : 15 speed(integer) : "Speed" : 1000 ] // set "map" value to "mapname$playername" where playername equals // the targetname of a corresponding info_player_start in the // next map. To play a cinematic before starting the level, the // "map" value should be "cinemeatic.cin+mapname$playername". Note // that a playername is not required if the corresponding info_player_start // doesn't have a targetname. If you want this to be designated as the last // level of a unit, place an asterix (*) before the map name. @PointClass base(Appearflags, Targetname) color(255 0 0) size(-8 -8 -8, 8 8 8) = target_changelevel : "Change level" [ map(string) : "Next map" ] // 0221 - added "_minlight" key @SolidClass base(Appearflags, Targetname) color(0 0 255) = target_character : "Use with target_string and func_clock" [ team(string) : "Team" count(integer) : "Position in the string" _minlight(string) : "Minimum light (optional)" ] @PointClass base(Appearflags, Targetname, Target) color(128 128 128) size(-8 -8 -8, 8 8 8) = target_crosslevel_trigger : "Cross-level trigger" [ spawnflags(Flags) = [ 1 : "Trigger 1" : 0 2 : "Trigger 2" : 0 4 : "Trigger 3" : 0 8 : "Trigger 4" : 0 16 : "Trigger 5" : 0 32 : "Trigger 6" : 0 64 : "Trigger 7" : 0 128 : "Trigger 8" : 0 ] killtarget(string) : "Kill Target" message(string) : "Message" delay(integer) : "Trigger delay" ] @PointClass base(Appearflags, Targetname, Target) color(128 128 128) size(-8 -8 -8, 8 8 8) = target_crosslevel_target : "Cross-level trigger" [ spawnflags(Flags) = [ 1 : "Trigger 1" : 0 2 : "Trigger 2" : 0 4 : "Trigger 3" : 0 8 : "Trigger 4" : 0 16 : "Trigger 5" : 0 32 : "Trigger 6" : 0 64 : "Trigger 7" : 0 128 : "Trigger 8" : 0 ] killtarget(string) : "Kill Target" delay(integer) : "Trigger delay (if activated)" : 1 ] @PointClass base(Appearflags, Targetname) color(255 0 0) size(-8 -8 -8, 8 8 8) = target_earthquake : "Level wide earthquake" [ speed(integer) : "Severity of quake" : 200 count(integer) : "Duration" : 5 ] @PointClass base(Appearflags, Targetname) color(255 0 0) size(-8 -8 -8, 8 8 8) = target_explosion : "Explosion" [ delay(integer) : "Delay before explosion" dmg(integer) : "Radius damage" : 0 ] @PointClass base(Appearflags, Targetname) color(255 0 255) size(-8 -8 -8, 8 8 8) = target_goal : "Counts a goal completed" [] @PointClass base(Appearflags, Targetname) color(255 0 255) size(-8 -8 -8, 8 8 8) = target_help : "Computer help message" [ spawnflags(Flags) = [ 1 : "Main Objective" : 0 ] message(string) : "Computer message" ] // if no color spawnflags are set, the laser color defaults to dim gray (and hard to see // setting the damage to 0 makes it use the default damage of 1 // setting the damage to a negative number will actually give health @PointClass base(Appearflags, Targetname, Target) color(0 128 204) size(-8 -8 -8, 8 8 8) = target_laser : "Laser" [ spawnflags(Flags) = [ 1 : "Start On" : 0 2 : "Red" : 0 4 : "Green" : 0 8 : "Blue" : 0 16 : "Yellow" : 0 32 : "Orange" : 0 64 : "Fat" : 0 ] dmg(integer) : "Damage" ] // 0221 - added "target" key @PointClass base(Appearflags, Targetname, Target) color(0 128 204) size(-8 -8 -8, 8 8 8) = target_lightramp : "Light ramp" [ spawnflags(Flags) = [ 1 : "Toggle" : 0 ] speed(integer) : "Speed" message(string) : "start/end light level" ] @PointClass base(Appearflags, Targetname) color(255 0 255) size(-8 -8 -8, 8 8 8) = target_secret : "Counts a secret found" [ message(string) : "Message to print" : "You have found a secret." ] // set speed and angle, otherwise spawned object drops // // 0221 - changed "target" key description for clarity @PointClass base(Appearflags, Targetname) color(255 0 0) size(-8 -8 -8, 8 8 8) = target_spawner : "Monster/Item spawner" [ target(string) : "Monster/Item to spawn" speed(integer) : "Speed" ] // looped sounds are automatically volume 1, attenuation 3 :\ @PointClass base(Appearflags, Targetname) color(255 0 0) size(-8 -8 -8, 8 8 8) = target_speaker : "Sound player" [ spawnflags(Flags) = [ 1 : "Looped On" : 0 2 : "Looped Off" : 0 4 : "Reliable" : 0 ] noise(string) : "Sound (path/file.wav)" attenuation(Choices) : "Attenuation" : 1 = [ -1 : "None, send to whole level" 1 : "Normal fighting sounds" 2 : "Idle sound level" 3 : "Ambient sound level" ] volume(integer) : "Volume (0.0 - 1.0)" : 1 ] // "sounds" values other than 1 are silent. leaving in the other // options for availability to mods/fixes // // 0221 - clarified "count" description @PointClass base(Appearflags, Targetname) color(255 0 0) size(-8 -8 -8, 8 8 8) = target_splash : "Creates a splash when used" [ sounds(choices) : "Type of splash" : 2 = [ 1 : "Sparks" 2 : "Blue water" 3 : "Brown water" 4 : "Slime" 5 : "Lava" 6 : "Blood" ] count(integer) : "Number of pixels in splash (1 - 255)" dmg(integer) : "Radius damage" ] // 0221 - removed "message" key (?) @PointClass base(Appearflags, Targetname) color(0 0 255) size(-8 -8 -8, 8 8 8) = target_string : "String" [ team(string) : "Team" ] // eye candy... Particles #2 (style 22) is quite cool @PointClass base(Appearflags, Targetname) color(255 0 0) size(-8 -8 -8, 8 8 8) = target_temp_entity : "Temp entity" [ style(choices) : "Style" : 22 = [ 20 : "Green Fireball" 21 : "Particles #1" 22 : "Particles #2" ] ] // 0221 - added "delay" and "killtarget" keys @PointClass base(Appearflags, Target) color(128 128 128) size(-8 -8 -8, 8 8 8) = trigger_always : "Always triggers" [ killtarget(string) : "Kill Target" delay(integer) : "Time before triggering" ] // 0317 - changed from @SolidClass to @PointClass - id source code error // 0321 - added "killtarget" key @PointClass base(Appearflags, Targetname, Target) color(128 128 128) size(-8 -8 -8, 8 8 8) = trigger_counter : "Counter" [ spawnflags(Flags) = [ 1 : "No Message" : 0 ] killtarget(string) : "Kill Target" count(integer) : "Count before trigger" : 2 ] @PointClass base(Appearflags, Targetname, Target) color(76 25 153) = trigger_elevator : "Elevator trigger" [] @SolidClass base(Appearflags) color(128 128 128) = trigger_gravity : "Change gravity" [ gravity(integer) : "Gravity (standard = 1.0)" : 1 ] @SolidClass base(Appearflags, Targetname) color(128 128 128) = trigger_hurt : "Hurts on touch" [ spawnflags(Flags) = [ 1 : "Start Off" : 0 2 : "Toggle" : 0 4 : "Silent" : 0 8 : "No Protection" : 0 16 : "Slow hurt" : 0 ] dmg(integer) : "Damage" : 5 ] @PointClass base(Appearflags, Targetname, Target) color(128 128 128) size(-8 -8 -8, 8 8 8) = trigger_key : "Triggers with key" [ killtarget(string) : "Kill target" item(string) : "Item classname" : "key_blue_key" ] @SolidClass base(Appearflags) color(128 128 128) = trigger_monsterjump : "Makes monsters jump" [ speed(integer) : "Speed thrown forward" : 200 height(integer) : "Height thrown upward" : 200 ] // 0221 - switched around _relay, _once, and _multiple @PointClass base(Appearflags, Targetname, Target) color(128 128 128) = trigger_relay : "Relay trigger" [ killtarget(string) : "Kill Target" delay(integer) : "Time before triggering" message(string) : "Trigger message" ] @SolidClass base(trigger_relay) = trigger_once : "Single fire trigger" [ spawnflags(Flags) = [ 4 : "Triggered" : 0 ] sounds(choices) : "Sounds" : 0 = [ 0 : "Beep beep" 1 : "Secret" 2 : "F1 prompt" 3 : "Silent" ] ] @SolidClass base(trigger_once) = trigger_multiple : "Multiple fire trigger" [ spawnflags(Flags) = [ 1 : "Monster" : 0 2 : "Not Player" : 0 ] wait(integer) : "Seconds between triggers" : 0 ] @SolidClass base(Appearflags) color(128 128 128) = trigger_push : "Push trigger" [ spawnflags(Flags) = [ 1 : "Push Once" : 0 ] speed(integer) : "Speed of push" : 1000 ] // 0221 - added "_minlight" key to _breach and _base @SolidClass base(Appearflags, Targetname, Target) color(128 255 128) = turret_breach : "Turret breach" [ speed(integer) : "Speed" : 50 dmg(integer) : "Damage" : 10 minpitch(integer) : "Miminum pitch angle" : -30 maxpitch(integer) : "Maximum pitch angle" : 30 minyaw(integer) : "Minimum yaw angle" : 0 maxyaw(integer) : "Maximum yaw angle" : 360 team(string) : "Team" _minlight(string) : "Minimum light (optional)" ] @SolidClass base(Appearflags) color(128 255 128) = turret_base : "Turret base" [ team(string) : "Team" _minlight(string) : "Minimum light (optional)" ] @PointClass base(Appearflags) color(128 255 128) size(-16 -16 -24, 16 16 32) = turret_driver : "Turret driver" [ target(string) : "Target (turret_breach)" ] @PointClass base(Appearflags) color(0 128 204) size(-8 -8 -8, 8 8 8) = viewthing : "Just for debugging level - dont use" [] @BaseClass base(Appearflags, Target) color(76 76 255) size(-16 -16 -16, 16 16 16) = Weapons [ team(string) : "Team" ] // // Weapons! // @PointClass base(Weapons) = weapon_shotgun : "Shotgun" [] @PointClass base(Weapons) = weapon_supershotgun : "Super shotgun" [] @PointClass base(Weapons) = weapon_machinegun : "Machinegun" [] @PointClass base(Weapons) = weapon_chaingun : "Chain gun" [] @PointClass base(Weapons) = weapon_grenadelauncher : "Grenade launcher" [] @PointClass base(Weapons) = weapon_rocketlauncher : "Rocket launcher" [] @PointClass base(Weapons) = weapon_hyperblaster : "Hyperblaster" [] @PointClass base(Weapons) = weapon_railgun : "Rail gun" [] @PointClass base(Weapons) = weapon_bfg : "Big Freakin Gun!" []