├── .gitignore ├── .gitattributes ├── addon_delta_resource_pack └── games │ └── doom │ ├── data │ ├── D3_Textures.wad │ └── D3_Brightmaps.wad │ └── fabs │ ├── picture │ ├── pic_box_d3.wad │ ├── pic_gtd_d3_tech_groups.wad │ ├── pic_gtd_d3_tech_machines.wad │ ├── pic_gtd_d3_urban_building_facades.wad │ ├── pic_gtd_d3_tech_machines.d3fabdef │ ├── pic_box_d3.d3fabdef │ ├── pic_gtd_d3_urban_building_facades.d3fabdef │ └── pic_gtd_d3_tech_groups.d3fabdef │ ├── decor │ ├── d3_tech_decor.wad │ └── d3_tech_decor.d3fabdef │ ├── window │ ├── d3_window_cagey.wad │ ├── d3_window_scaffold.wad │ ├── d3_window_cagey.lua │ └── d3_window_scaffold.lua │ └── wall │ ├── d3_exterior_tech_walls.wad │ ├── d3_interior_hell_walls.wad │ ├── d3_interior_tech_walls.wad │ ├── d3_interior_hell_walls.d3fabdef │ ├── d3_exterior_tech_walls.d3fabdef │ └── d3_interior_tech_walls.d3fabdef ├── addon_no_blue_sky └── modules │ └── addon_no_blue_sky.lua ├── README.md ├── addon_room_theme_shuffle └── modules │ └── addon_room_theme_shuffle.lua ├── addon_remove_secret_stuffs └── modules │ └── addon_remove_secret_stuffs.lua ├── addon_barebones_shape_grammar └── games │ ├── chex │ └── shapes.lua │ ├── doom │ └── shapes.lua │ ├── hacx │ └── shapes.lua │ ├── hexen │ └── shapes.lua │ ├── harmony │ └── shapes.lua │ ├── heretic │ └── shapes.lua │ └── strife │ └── shapes.lua ├── addon_doom_tournament └── modules │ └── addon_doom_tournament.lua └── addon_realm_667_lua_54 └── modules └── realm667_weapons.lua /.gitignore: -------------------------------------------------------------------------------- 1 | doom3_textures/ -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /addon_delta_resource_pack/games/doom/data/D3_Textures.wad: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GTD-Carthage/Obsidian-Addons/HEAD/addon_delta_resource_pack/games/doom/data/D3_Textures.wad -------------------------------------------------------------------------------- /addon_delta_resource_pack/games/doom/data/D3_Brightmaps.wad: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GTD-Carthage/Obsidian-Addons/HEAD/addon_delta_resource_pack/games/doom/data/D3_Brightmaps.wad -------------------------------------------------------------------------------- /addon_delta_resource_pack/games/doom/fabs/picture/pic_box_d3.wad: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GTD-Carthage/Obsidian-Addons/HEAD/addon_delta_resource_pack/games/doom/fabs/picture/pic_box_d3.wad -------------------------------------------------------------------------------- /addon_delta_resource_pack/games/doom/fabs/decor/d3_tech_decor.wad: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GTD-Carthage/Obsidian-Addons/HEAD/addon_delta_resource_pack/games/doom/fabs/decor/d3_tech_decor.wad -------------------------------------------------------------------------------- /addon_delta_resource_pack/games/doom/fabs/window/d3_window_cagey.wad: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GTD-Carthage/Obsidian-Addons/HEAD/addon_delta_resource_pack/games/doom/fabs/window/d3_window_cagey.wad -------------------------------------------------------------------------------- /addon_delta_resource_pack/games/doom/fabs/window/d3_window_scaffold.wad: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GTD-Carthage/Obsidian-Addons/HEAD/addon_delta_resource_pack/games/doom/fabs/window/d3_window_scaffold.wad -------------------------------------------------------------------------------- /addon_delta_resource_pack/games/doom/fabs/wall/d3_exterior_tech_walls.wad: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GTD-Carthage/Obsidian-Addons/HEAD/addon_delta_resource_pack/games/doom/fabs/wall/d3_exterior_tech_walls.wad -------------------------------------------------------------------------------- /addon_delta_resource_pack/games/doom/fabs/wall/d3_interior_hell_walls.wad: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GTD-Carthage/Obsidian-Addons/HEAD/addon_delta_resource_pack/games/doom/fabs/wall/d3_interior_hell_walls.wad -------------------------------------------------------------------------------- /addon_delta_resource_pack/games/doom/fabs/wall/d3_interior_tech_walls.wad: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GTD-Carthage/Obsidian-Addons/HEAD/addon_delta_resource_pack/games/doom/fabs/wall/d3_interior_tech_walls.wad -------------------------------------------------------------------------------- /addon_delta_resource_pack/games/doom/fabs/picture/pic_gtd_d3_tech_groups.wad: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GTD-Carthage/Obsidian-Addons/HEAD/addon_delta_resource_pack/games/doom/fabs/picture/pic_gtd_d3_tech_groups.wad -------------------------------------------------------------------------------- /addon_delta_resource_pack/games/doom/fabs/picture/pic_gtd_d3_tech_machines.wad: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GTD-Carthage/Obsidian-Addons/HEAD/addon_delta_resource_pack/games/doom/fabs/picture/pic_gtd_d3_tech_machines.wad -------------------------------------------------------------------------------- /addon_delta_resource_pack/games/doom/fabs/picture/pic_gtd_d3_urban_building_facades.wad: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GTD-Carthage/Obsidian-Addons/HEAD/addon_delta_resource_pack/games/doom/fabs/picture/pic_gtd_d3_urban_building_facades.wad -------------------------------------------------------------------------------- /addon_delta_resource_pack/games/doom/fabs/window/d3_window_cagey.lua: -------------------------------------------------------------------------------- 1 | PREFABS.Window_d3_cagey_1 = 2 | { 3 | file = "window/d3_window_cagey.wad", 4 | map = "MAP01", 5 | 6 | group = "d3_window_cagey", 7 | prob = 50, 8 | 9 | where = "edge", 10 | seed_w = 1, 11 | 12 | height = 96, 13 | deep = 16, 14 | over = 16, 15 | 16 | z_fit = "top", 17 | 18 | bound_z1 = 0, 19 | bound_z2 = 96, 20 | } 21 | 22 | PREFABS.Window_d3_cagey_2 = 23 | { 24 | template = "Window_d3_cagey_1", 25 | map = "MAP02", 26 | 27 | seed_w = 2, 28 | } 29 | 30 | PREFABS.Window_d3_cagey_3 = 31 | { 32 | template = "Window_d3_cagey_1", 33 | map = "MAP03", 34 | 35 | seed_w = 3, 36 | } 37 | -------------------------------------------------------------------------------- /addon_delta_resource_pack/games/doom/fabs/window/d3_window_scaffold.lua: -------------------------------------------------------------------------------- 1 | PREFABS.Window_d3_scaffold_1 = 2 | { 3 | file = "window/d3_window_scaffold.wad", 4 | map = "MAP01", 5 | 6 | group = "d3_window_scaffold", 7 | prob = 50, 8 | 9 | where = "edge", 10 | seed_w = 1, 11 | 12 | height = 128, 13 | deep = 16, 14 | over = 16, 15 | 16 | z_fit = "top", 17 | 18 | bound_z1 = 0, 19 | bound_z2 = 128, 20 | } 21 | 22 | PREFABS.Window_d3_scaffold_2 = 23 | { 24 | template = "Window_d3_scaffold_1", 25 | map = "MAP02", 26 | 27 | seed_w = 2, 28 | } 29 | 30 | PREFABS.Window_d3_scaffold_3 = 31 | { 32 | template = "Window_d3_scaffold_1", 33 | map = "MAP03", 34 | 35 | seed_w = 3, 36 | } 37 | 38 | PREFABS.Window_d3_scaffold_4 = 39 | { 40 | template = "Window_d3_scaffold_1", 41 | map = "MAP04", 42 | 43 | seed_w = 4, 44 | } 45 | -------------------------------------------------------------------------------- /addon_delta_resource_pack/games/doom/fabs/picture/pic_gtd_d3_tech_machines.d3fabdef: -------------------------------------------------------------------------------- 1 | PREFABS.Pic_d3_machine_1 = 2 | { 3 | file = "picture/pic_gtd_d3_tech_machines.wad", 4 | map = "MAP01", 5 | 6 | prob = 50, 7 | prob_skew = 1.5, 8 | skip_prob = 25, 9 | 10 | theme = "!hell", 11 | env = "building", 12 | 13 | where = "seeds", 14 | seed_w = 2, 15 | seed_h = 1, 16 | 17 | height = 128, 18 | deep = 16, 19 | 20 | x_fit = "frame", 21 | y_fit = "top", 22 | } 23 | 24 | PREFABS.Pic_d3_machine_2 = 25 | { 26 | template = "Pic_d3_machine_1", 27 | map = "MAP02" 28 | } 29 | 30 | PREFABS.Pic_d3_machine_3 = 31 | { 32 | template = "Pic_d3_machine_1", 33 | map = "MAP03" 34 | } 35 | 36 | -- 37 | 38 | PREFABS.Pic_d3_machine_comp_double = 39 | { 40 | template = "Pic_d3_machine_1", 41 | map = "MAP04", 42 | 43 | port = "zdoom" 44 | } 45 | 46 | PREFABS.Pic_d3_machine_comp_triple = 47 | { 48 | template = "Pic_d3_machine_1", 49 | map = "MAP05", 50 | 51 | port = "zdoom", 52 | 53 | seed_w = 3 54 | } 55 | -------------------------------------------------------------------------------- /addon_no_blue_sky/modules/addon_no_blue_sky.lua: -------------------------------------------------------------------------------- 1 | ------------------------------------------------------------------------ 2 | -- MODULE: No Mr. Blue Sky 3 | ------------------------------------------------------------------------ 4 | -- 5 | -- Copyright (C) 2021 MsrSgtShooterPerson 6 | -- 7 | -- This program is free software; you can redistribute it and/or 8 | -- modify it under the terms of the GNU General Public License 9 | -- as published by the Free Software Foundation; either version 2 10 | -- of the License, or (at your option) any later version. 11 | -- 12 | -- This program is distributed in the hope that it will be useful, 13 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | -- GNU General Public License for more details. 16 | -- 17 | ------------------------------------------------------------------------ 18 | 19 | NO_BLUE_SKY = {} 20 | 21 | function NO_BLUE_SKY.do_it() 22 | SKY_GEN.themes.urban.clouds["SKY_CLOUDS"] = 0 23 | end 24 | 25 | ---------------------------------------------------------------- 26 | 27 | OB_MODULES["NO_BLUE_SKY"] = 28 | { 29 | 30 | name = "NO_BLUE_SKY", 31 | 32 | label = _("No Mr. Blue Sky"), 33 | tooltip = _("Disables blue skies from the sky generator."), 34 | 35 | side = "left", 36 | priority = 94, 37 | 38 | port = "zdoom", 39 | 40 | game = "doomish", 41 | 42 | hooks = 43 | { 44 | setup = NO_BLUE_SKY.do_it 45 | }, 46 | } 47 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Obsidian-Addons 2 | An assortment of addons for Obsidian Level Generator. 3 | 4 | ### Barebones Shape Grammar 5 | An addon containing an extremely simple shape grammar to use as a basis for learning about the grammar system and creating your own. Maps will essentially be 6 | a series of identical and directly connected squares. 7 | 8 | ### Delta Resource Pack 9 | An addon containing various new textures, prefabs, and themes based on hidfan's Doom 3 texture rips Craneo's Doom 3 texture conversion for Doom. 10 | 11 | ### Realm 667 Monsters and Weapons Modules 12 | An update to the module for mridlen's Oblige Realm667 Monsters and Weapons addon making it compatible with Lua 5.4/Obsidian. You will still need the Realm667.pk3 and Realm667_weapons.pk3 files from his repository at https://github.com/mridlen/Oblige_Realm667_Mod 13 | 14 | ### Remove Secret Stuffs 15 | An addon that changes the occurence of target items in secret closets and rooms. 16 | 17 | ### Room Theme Shuffle 18 | An addon that causes levels to completely have different room themes per room, including room themes from other level themes entirely (i.e. hell rooms in tech) 19 | 20 | # Installation Steps 21 | * Download the repository. 22 | * Zip the contents of the addon folder you wish to use. (for example, zip the contents of the Doom 3 Resource Pack folder into `d3_resource_pack.oaf`) 23 | * The *.oaf extension is required to distinguish other package files from Obsidian addons but they are all structurally the same (ZIP files) 24 | * Place the resulting archive into Obsidian's addon folder. 25 | * Activate the addon from the Addon List (under File menu or shortcut F3) in Obsidian. 26 | * Look for the addon module among the panels and activate the checkbox. More options will appear on certain addons modules when checked. 27 | -------------------------------------------------------------------------------- /addon_delta_resource_pack/games/doom/fabs/wall/d3_interior_hell_walls.d3fabdef: -------------------------------------------------------------------------------- 1 | PREFABS.Wall_d3_hell_skintek_1 = --# 2 | { 3 | file = "wall/d3_interior_hell_walls.wad", 4 | map = "MAP01", 5 | 6 | prob = 50, 7 | 8 | group = "d3_hell_skintek", 9 | 10 | where = "edge", 11 | height = 96, 12 | deep = 16, 13 | 14 | tex_D3SKINW2 = 15 | { 16 | D3SKINW1 = 5, 17 | D3SKINW2 = 5, 18 | D3SKINW3 = 1, 19 | D3SKINW4 = 1, 20 | }, 21 | 22 | bound_z1 = 0, 23 | bound_z2 = 96, 24 | 25 | z_fit = {60,64} 26 | } 27 | 28 | PREFABS.Wall_d3_hell_skintek_2 = 29 | { 30 | template = "Wall_d3_hell_skintek_1", 31 | 32 | forced_offsets = 33 | { 34 | [16] = {x=128,y=1} 35 | } 36 | } 37 | 38 | PREFABS.Wall_d3_hell_skintek_diag = 39 | { 40 | template = "Wall_d3_hell_skintek_1", 41 | map = "MAP02", 42 | 43 | where = "diagonal" 44 | } 45 | 46 | -- 47 | 48 | PREFABS.Wall_d3_hell_tablets = 49 | { 50 | file = "wall/d3_interior_hell_walls.wad", 51 | map = "MAP03", 52 | 53 | rank = 2, 54 | port = "zdoom", 55 | prob = 50, 56 | 57 | where = "edge", 58 | height = 129, 59 | deep = 16, 60 | 61 | group = "d3_hell_tablets", 62 | 63 | tex_D3HTBLT1 = { 64 | D3HTBLT1 = 1, 65 | D3HTBLT2 = 1, 66 | D3HTBLT3 = 1, 67 | D3HTBLT4 = 1, 68 | D3HTBLT5 = 1, 69 | D3HTBLT6 = 1, 70 | D3HTBLT7 = 1 71 | }, 72 | 73 | bound_z1 = 0, 74 | bound_z2 = 129, 75 | 76 | z_fit = "top" 77 | } 78 | 79 | PREFABS.Wall_d3_hell_tablets_no_slope = 80 | { 81 | template = "Wall_d3_hell_tablets", 82 | 83 | rank = 1, 84 | 85 | line_344 = 0 86 | } 87 | 88 | PREFABS.Wall_d3_hell_tablets_alt = 89 | { 90 | template = "Wall_d3_hell_tablets", 91 | 92 | forced_offsets = 93 | { 94 | [11] = {x=1, y=1} 95 | } 96 | } 97 | 98 | PREFABS.Wall_d3_hell_tablets_alt_no_slope = 99 | { 100 | template = "Wall_d3_hell_tablets", 101 | 102 | rank = 1, 103 | 104 | line_344 = 0, 105 | 106 | forced_offsets = 107 | { 108 | [11] = {x=1, y=1} 109 | } 110 | } 111 | -------------------------------------------------------------------------------- /addon_room_theme_shuffle/modules/addon_room_theme_shuffle.lua: -------------------------------------------------------------------------------- 1 | ------------------------------------------------------------------------ 2 | -- MODULE: Shuffle Room Themes 3 | ------------------------------------------------------------------------ 4 | -- 5 | -- Copyright (C) 2021 MsrSgtShooterPerson 6 | -- 7 | -- This program is free software; you can redistribute it and/or 8 | -- modify it under the terms of the GNU General Public License 9 | -- as published by the Free Software Foundation; either version 2 10 | -- of the License, or (at your option) any later version. 11 | -- 12 | -- This program is distributed in the hope that it will be useful, 13 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | -- GNU General Public License for more details. 16 | -- 17 | ------------------------------------------------------------------------ 18 | 19 | SHUFFLE_ROOM_THEME = {} 20 | 21 | 22 | function SHUFFLE_ROOM_THEME.begin_level() 23 | local room_theme_tables = table.copy(GAME.ROOM_THEMES) 24 | 25 | -- iterate through the Room Themes 26 | for _,R_T in pairs(room_theme_tables) do 27 | R_T.keep_prob = -1 -- by forcing keep_prob to be -1, room themes are always dropped 28 | -- and a new one is picked as the generator assigns room themes per room 29 | 30 | -- force theme overrides on each room theme - this allows 31 | -- respective room themes to still force their influence on fabs 32 | -- regardless of the actual level theme 33 | if not R_T.theme_override then 34 | if string.match(R_T.name, "tech") then R_T.theme_override = "tech" end 35 | if string.match(R_T.name, "urban") then R_T.theme_override = "urban" end 36 | if string.match(R_T.name, "hell") then R_T.theme_override = "hell" end 37 | end 38 | 39 | -- allow any outdoor theme to be used in any level theme 40 | if not string.match(R_T.name, "Outdoors") 41 | and not string.match(R_T.name, "Hallway") then 42 | R_T.name = string.gsub(R_T.name, "tech", "any") 43 | R_T.name = string.gsub(R_T.name, "urban", "any") 44 | R_T.name = string.gsub(R_T.name, "hell", "any") 45 | end 46 | 47 | GAME.ROOM_THEMES[R_T.name] = R_T 48 | end 49 | 50 | PARAM.single_room_theme = 0 51 | PARAM.limit_wall_groups = 0 52 | 53 | for _,R_T in pairs(room_theme_tables) do 54 | if string.match(R_T.name, "Outdoors") then 55 | for _,R_T2 in pairs(room_theme_tables) do 56 | if string.match(R_T2.name, "Outdoors") then 57 | table.deep_merge(R_T, R_T2) 58 | end 59 | end 60 | end 61 | end 62 | end 63 | 64 | 65 | OB_MODULES["SHUFFLE_ROOM_THEME"] = 66 | { 67 | label = _("Shuffle Room Themes"), 68 | 69 | side = "right", 70 | priority = -95, 71 | 72 | tooltip = "Shuffles all indoor rooms in the level to use different room theme and overrides.", 73 | 74 | hooks = 75 | { 76 | begin_level = SHUFFLE_ROOM_THEME.begin_level 77 | } 78 | } 79 | -------------------------------------------------------------------------------- /addon_delta_resource_pack/games/doom/fabs/picture/pic_box_d3.d3fabdef: -------------------------------------------------------------------------------- 1 | PREFABS.Pic_box_d3_single = 2 | { 3 | file = "picture/pic_box_d3.wad", 4 | map = "MAP01", 5 | 6 | prob = 100, 7 | skip_prob = 25, 8 | 9 | theme = "!hell", 10 | env = "building", 11 | 12 | where = "seeds", 13 | seed_w = 2, 14 | seed_h = 1, 15 | 16 | height = 128, 17 | deep = 16, 18 | 19 | x_fit = "frame", 20 | y_fit = "top", 21 | 22 | tex_D3BRCP1 = 23 | { 24 | D3BRCP1 = 1, 25 | D3BRCP2 = 1, 26 | D3BRCP3 = 1, 27 | D3BRCP4 = 1, 28 | D3BRCP5 = 1, 29 | D3DKCP1 = 1, 30 | D3DKCP2 = 1, 31 | D3DKCP3 = 1, 32 | D3DKCP4 = 1, 33 | D3DKCP5 = 1, 34 | D3DKCP6 = 1, 35 | D3DKCP7 = 1, 36 | D3DKCP8 = 1, 37 | D3DKCP9 = 1, 38 | } 39 | } 40 | 41 | PREFABS.Pic_box_d3_quad = 42 | { 43 | template = "Pic_box_d3_single", 44 | map = "MAP02", 45 | 46 | height = 144, 47 | 48 | tex_D3BRCP2 = 49 | { 50 | D3BRCP1 = 1, D3BRCP2 = 1, D3BRCP3 = 1, D3BRCP4 = 1, 51 | D3BRCP5 = 1, D3DKCP1 = 1, D3DKCP2 = 1, D3DKCP3 = 1, 52 | D3DKCP4 = 1, D3DKCP5 = 1, D3DKCP6 = 1, D3DKCP7 = 1, 53 | D3DKCP8 = 1, D3DKCP9 = 1, 54 | }, 55 | 56 | tex_D3DKCP1 = 57 | { 58 | D3BRCP1 = 1, D3BRCP2 = 1, D3BRCP3 = 1, D3BRCP4 = 1, 59 | D3BRCP5 = 1, D3DKCP1 = 1, D3DKCP2 = 1, D3DKCP3 = 1, 60 | D3DKCP4 = 1, D3DKCP5 = 1, D3DKCP6 = 1, D3DKCP7 = 1, 61 | D3DKCP8 = 1, D3DKCP9 = 1, 62 | }, 63 | 64 | tex_D3DKCP2 = 65 | { 66 | D3BRCP1 = 1, D3BRCP2 = 1, D3BRCP3 = 1, D3BRCP4 = 1, 67 | D3BRCP5 = 1, D3DKCP1 = 1, D3DKCP2 = 1, D3DKCP3 = 1, 68 | D3DKCP4 = 1, D3DKCP5 = 1, D3DKCP6 = 1, D3DKCP7 = 1, 69 | D3DKCP8 = 1, D3DKCP9 = 1, 70 | } 71 | } 72 | 73 | PREFABS.Pic_box_d3_hex = 74 | { 75 | template = "Pic_box_d3_single", 76 | map = "MAP03", 77 | 78 | height = 144, 79 | 80 | tex_D3BRCP2 = 81 | { 82 | D3BRCP1 = 1, D3BRCP2 = 1, D3BRCP3 = 1, D3BRCP4 = 1, 83 | D3BRCP5 = 1, D3DKCP1 = 1, D3DKCP2 = 1, D3DKCP3 = 1, 84 | D3DKCP4 = 1, D3DKCP5 = 1, D3DKCP6 = 1, D3DKCP7 = 1, 85 | D3DKCP8 = 1, D3DKCP9 = 1, 86 | }, 87 | 88 | tex_D3BRCP3 = 89 | { 90 | D3BRCP1 = 1, D3BRCP2 = 1, D3BRCP3 = 1, D3BRCP4 = 1, 91 | D3BRCP5 = 1, D3DKCP1 = 1, D3DKCP2 = 1, D3DKCP3 = 1, 92 | D3DKCP4 = 1, D3DKCP5 = 1, D3DKCP6 = 1, D3DKCP7 = 1, 93 | D3DKCP8 = 1, D3DKCP9 = 1, 94 | }, 95 | 96 | tex_D3DKCP1 = 97 | { 98 | D3BRCP1 = 1, D3BRCP2 = 1, D3BRCP3 = 1, D3BRCP4 = 1, 99 | D3BRCP5 = 1, D3DKCP1 = 1, D3DKCP2 = 1, D3DKCP3 = 1, 100 | D3DKCP4 = 1, D3DKCP5 = 1, D3DKCP6 = 1, D3DKCP7 = 1, 101 | D3DKCP8 = 1, D3DKCP9 = 1, 102 | }, 103 | 104 | tex_D3DKCP2 = 105 | { 106 | D3BRCP1 = 1, D3BRCP2 = 1, D3BRCP3 = 1, D3BRCP4 = 1, 107 | D3BRCP5 = 1, D3DKCP1 = 1, D3DKCP2 = 1, D3DKCP3 = 1, 108 | D3DKCP4 = 1, D3DKCP5 = 1, D3DKCP6 = 1, D3DKCP7 = 1, 109 | D3DKCP8 = 1, D3DKCP9 = 1, 110 | }, 111 | 112 | tex_D3DKCP3 = 113 | { 114 | D3BRCP1 = 1, D3BRCP2 = 1, D3BRCP3 = 1, D3BRCP4 = 1, 115 | D3BRCP5 = 1, D3DKCP1 = 1, D3DKCP2 = 1, D3DKCP3 = 1, 116 | D3DKCP4 = 1, D3DKCP5 = 1, D3DKCP6 = 1, D3DKCP7 = 1, 117 | D3DKCP8 = 1, D3DKCP9 = 1, 118 | } 119 | } -------------------------------------------------------------------------------- /addon_remove_secret_stuffs/modules/addon_remove_secret_stuffs.lua: -------------------------------------------------------------------------------- 1 | ------------------------------------------------------------------------ 2 | -- MODULE: Remove Items From Secrets 3 | ------------------------------------------------------------------------ 4 | -- 5 | -- Copyright (C) 2021 MsrSgtShooterPerson 6 | -- 7 | -- This program is free software; you can redistribute it and/or 8 | -- modify it under the terms of the GNU General Public License 9 | -- as published by the Free Software Foundation; either version 2 10 | -- of the License, or (at your option) any later version. 11 | -- 12 | -- This program is distributed in the hope that it will be useful, 13 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | -- GNU General Public License for more details. 16 | -- 17 | ------------------------------------------------------------------------ 18 | 19 | NO_SECRET_AMMO_MODULE = {} 20 | 21 | 22 | function NO_SECRET_AMMO_MODULE.setup(self) 23 | for name,opt in pairs(self.options) do 24 | if opt.valuator then 25 | if opt.valuator == "button" then 26 | PARAM[opt.name] = gui.get_module_button_value(self.name, opt.name) 27 | elseif opt.valuator == "slider" then 28 | PARAM[opt.name] = gui.get_module_slider_value(self.name, opt.name) 29 | end 30 | else 31 | PARAM[name] = self.options[name].value 32 | end 33 | end 34 | end 35 | 36 | 37 | function NO_SECRET_AMMO_MODULE.begin_level() 38 | -- iterate through the pickups table and force all ammo type pickups 39 | -- to lose their closet_prob and secret_prob, thereby removing them 40 | -- as primary items of both secret rooms and secret closets 41 | if PARAM.bool_remove_ammo == 1 then 42 | for _,item in pairs(GAME.PICKUPS) do 43 | if item.kind == "ammo" then 44 | if item.closet_prob then item.closet_prob = 0 end 45 | if item.secret_prob then item.secret_prob = 0 end 46 | end 47 | end 48 | end 49 | 50 | if PARAM.bool_remove_medkits == 1 then 51 | for _,item in pairs(GAME.PICKUPS) do 52 | if item.kind == "health" then 53 | if item.closet_prob then item.closet_prob = 0 end 54 | if item.secret_prob then item.secret_prob = 0 end 55 | end 56 | end 57 | end 58 | end 59 | 60 | 61 | OB_MODULES["NO_SECRET_AMMO_MODULE"] = 62 | { 63 | label = _("Remove Ammo from Secrets"), 64 | 65 | side = "right", 66 | priority = -100, 67 | 68 | tooltip = "Removes certain pickups from secret closets and rooms.", 69 | 70 | hooks = 71 | { 72 | setup = NO_SECRET_AMMO_MODULE.setup, 73 | begin_level = NO_SECRET_AMMO_MODULE.begin_level, 74 | }, 75 | 76 | options = 77 | { 78 | bool_remove_ammo = 79 | { 80 | name = "bool_remove_ammo", 81 | label=_("Remove Ammo"), 82 | valuator = "button", 83 | default = 0, 84 | tooltip = _("Remove ammunition from secret rooms and closets.\n"), 85 | }, 86 | 87 | bool_remove_medkits = 88 | { 89 | name = "bool_remove_medkits", 90 | label=_("Remove Medkits"), 91 | valuator = "button", 92 | default = 0, 93 | tooltip = _("Remove medikits from secret rooms and closets. Doom and Doom 2 only.\n"), 94 | } 95 | } 96 | } 97 | -------------------------------------------------------------------------------- /addon_delta_resource_pack/games/doom/fabs/picture/pic_gtd_d3_urban_building_facades.d3fabdef: -------------------------------------------------------------------------------- 1 | PREFABS.Pic_d3_building_facade_2x = 2 | { 3 | file = "picture/pic_gtd_d3_urban_building_facades.wad", 4 | map = "MAP01", 5 | 6 | prob = 300, 7 | prob_skew = 1.5, 8 | 9 | theme = "urban", 10 | env = "outdoor", 11 | 12 | where = "seeds", 13 | seed_w = 2, 14 | seed_h = 1, 15 | 16 | height = 128, 17 | deep = 16, 18 | 19 | tex_D3HLITE1 = -- main facade 20 | { 21 | D3HLITE1 = 1, 22 | D3HLITE2 = 1, 23 | D3HLITE4 = 0.5, 24 | D3HLITE5 = 0.5, 25 | D3HLITE6 = 1, 26 | D3HLITE7 = 1, 27 | D3HLITE8 = 1, 28 | D3HLITE9 = 1, 29 | D3HLITEA = 1, 30 | D3HLITEB = 1, 31 | D3HLITEC = 1, 32 | D3HLITED = 1, 33 | D3HLITEE = 1, 34 | }, 35 | 36 | tex_D3MTGPL1 = -- highlights trims under the facade 37 | { 38 | D3MTBPL9 = 1, 39 | D3MTBPLA = 1, 40 | D3MTGPL1 = 1, 41 | D3MTGPL7 = 1, 42 | D3MTGPL8 = 1, 43 | D3MTHUL7 = 1, 44 | D3WMTL9 = 1, 45 | D3WMTL11 = 1, 46 | D3MTTIL2 = 1, 47 | D3BMTL1 = 1, 48 | D3BMTL4 = 1, 49 | }, 50 | 51 | flat_CEIL3_4 = -- lighting under the doors 52 | { 53 | CEIL3_4 = 1, 54 | FLAT2 = 1, 55 | FLOOR1_7 = 1, 56 | CEIL4_3 = 1, 57 | }, 58 | 59 | y_fit = "top", 60 | } 61 | 62 | PREFABS.Pic_d3_building_facade_3x = 63 | { 64 | template = "Pic_d3_building_facade_2x", 65 | map = "MAP02", 66 | 67 | prob = 400, 68 | 69 | seed_w = 3, 70 | 71 | tex_D3GHYL1 = -- alt texture for the main facade 72 | { 73 | D3GHYL1 = 1, 74 | D3GHYL4 = 1, 75 | D3GHYL7 = 1, 76 | D3GHYL8 = 1, 77 | D3GHYL9 = 1, 78 | D3GHYL10 = 1, 79 | D3GHYL11 = 1, 80 | 81 | D3MTBPL3 = 1, 82 | D3MTBPL4 = 1, 83 | D3MTBPL5 = 1, 84 | D3MTBPL6 = 1, 85 | D3MTBPL7 = 1, 86 | D3MTBPL8 = 1, 87 | D3MTBPL9 = 1, 88 | D3MTBPLA = 1, 89 | D3MTBPLB = 1, 90 | D3MTBPLC = 1, 91 | D3MTBPLD = 1, 92 | D3MTBPLE = 1, 93 | D3MTBPLJ = 1, 94 | 95 | D3MTGPL1 = 1, 96 | D3MTGPL2 = 1, 97 | 98 | D3MTHUL7 = 1, 99 | D3MTSD1 = 1, 100 | 101 | D3WMETL1 = 1, 102 | D3WMETL4 = 1, 103 | D3WMETL6 = 1, 104 | 105 | D3WMTL1 = 1, 106 | D3WMTL2 = 1, 107 | D3WMTL3 = 1, 108 | D3WMTL4 = 1, 109 | D3WMTL6 = 1, 110 | D3WMTL7 = 1, 111 | D3WMTL8 = 1, 112 | D3WMTL9 = 1, 113 | D3WMTL11 = 1, 114 | D3WMTL12 = 1, 115 | D3WMTL13 = 1, 116 | }, 117 | } 118 | 119 | PREFABS.Pic_d3_building_facade_4x = 120 | { 121 | template = "Pic_d3_building_facade_2x", 122 | map = "MAP03", 123 | 124 | prob = 550, 125 | 126 | seed_w = 4, 127 | 128 | tex_D3GHYL1 = -- alt texture for the main facade 129 | { 130 | D3GHYL1 = 1, 131 | D3GHYL4 = 1, 132 | D3GHYL7 = 1, 133 | D3GHYL8 = 1, 134 | D3GHYL9 = 1, 135 | D3GHYL10 = 1, 136 | D3GHYL11 = 1, 137 | 138 | D3MTBPL3 = 1, 139 | D3MTBPL4 = 1, 140 | D3MTBPL5 = 1, 141 | D3MTBPL6 = 1, 142 | D3MTBPL7 = 1, 143 | D3MTBPL8 = 1, 144 | D3MTBPL9 = 1, 145 | D3MTBPLA = 1, 146 | D3MTBPLB = 1, 147 | D3MTBPLC = 1, 148 | D3MTBPLD = 1, 149 | D3MTBPLE = 1, 150 | D3MTBPLJ = 1, 151 | 152 | D3MTGPL1 = 1, 153 | D3MTGPL2 = 1, 154 | 155 | D3MTHUL7 = 1, 156 | D3MTSD1 = 1, 157 | 158 | D3WMETL1 = 1, 159 | D3WMETL4 = 1, 160 | D3WMETL6 = 1, 161 | 162 | D3WMTL1 = 1, 163 | D3WMTL2 = 1, 164 | D3WMTL3 = 1, 165 | D3WMTL4 = 1, 166 | D3WMTL6 = 1, 167 | D3WMTL7 = 1, 168 | D3WMTL8 = 1, 169 | D3WMTL9 = 1, 170 | D3WMTL11 = 1, 171 | D3WMTL12 = 1, 172 | D3WMTL13 = 1, 173 | }, 174 | 175 | x_fit = "frame", 176 | } -------------------------------------------------------------------------------- /addon_delta_resource_pack/games/doom/fabs/decor/d3_tech_decor.d3fabdef: -------------------------------------------------------------------------------- 1 | PREFABS.Decor_gtd_d3_comp_box_single = 2 | { 3 | file = "decor/d3_tech_decor.wad", 4 | map = "MAP01", 5 | 6 | prob = 5000, 7 | 8 | group = "d3_tech_comp_tile", 9 | 10 | where = "point", 11 | size = 72, 12 | height = 96, 13 | 14 | bound_z1 = 0, 15 | bound_z2 = 96, 16 | 17 | tex_D3BRCP1 = 18 | { 19 | D3BRCP1 = 1, 20 | D3BRCP2 = 1, 21 | D3BRCP3 = 1, 22 | D3BRCP4 = 1, 23 | D3BRCP5 = 1, 24 | D3DKCP1 = 1, 25 | D3DKCP2 = 1, 26 | D3DKCP3 = 1, 27 | D3DKCP4 = 1, 28 | D3DKCP5 = 1, 29 | D3DKCP6 = 1, 30 | D3DKCP7 = 1, 31 | D3DKCP8 = 1, 32 | D3DKCP9 = 1, 33 | }, 34 | 35 | tex_D3BRCP2 = 36 | { 37 | D3BRCP1 = 1, 38 | D3BRCP2 = 1, 39 | D3BRCP3 = 1, 40 | D3BRCP4 = 1, 41 | D3DKCP3 = 1, 42 | D3DKCP4 = 1, 43 | D3DKCP5 = 1, 44 | D3DKCP6 = 1, 45 | D3DKCP7 = 1, 46 | D3DKCP8 = 1, 47 | D3DKCP9 = 1, 48 | } 49 | } 50 | 51 | PREFABS.Decor_gtd_d3_comp_box_double = 52 | { 53 | template = "Decor_gtd_d3_comp_box_single", 54 | map = "MAP02", 55 | 56 | size = 112 57 | } 58 | 59 | PREFABS.Decor_gtd_d3_comp_box_console = 60 | { 61 | template = "Decor_gtd_d3_comp_box_single", 62 | map = "MAP03", 63 | 64 | height = 64, 65 | 66 | size = 108 67 | } 68 | 69 | -- 70 | 71 | PREFABS.Decor_gtd_d3_comp_box_single_cascade = 72 | { 73 | template = "Decor_gtd_d3_comp_box_single", 74 | 75 | group = "d3_tech_comp_tile_cascade" 76 | } 77 | 78 | PREFABS.Decor_gtd_d3_comp_box_double_cascade = 79 | { 80 | template = "Decor_gtd_d3_comp_box_single", 81 | map = "MAP02", 82 | 83 | size = 112, 84 | 85 | group = "d3_tech_comp_tile_cascade" 86 | } 87 | 88 | PREFABS.Decor_gtd_d3_comp_box_console_cascade = 89 | { 90 | template = "Decor_gtd_d3_comp_box_single", 91 | map = "MAP03", 92 | 93 | group = "d3_tech_comp_tile_cascade", 94 | 95 | tex_D3MONTR1 = {D3MONTR1 = 5, D3MONTR2 = 5}, 96 | tex_D3MONTR2 = {D3MONTR1 = 5, D3MONTR2 = 5} 97 | } 98 | 99 | -- 100 | 101 | PREFABS.Decor_gtd_d3_blue_machine_row_point_1 = 102 | { 103 | template = "Decor_gtd_d3_comp_box_single", 104 | map = "MAP04", 105 | 106 | size = 80, 107 | height = 112, 108 | 109 | group = "d3_tech_blue_machine_row", 110 | 111 | bound_z2 = 112 112 | } 113 | 114 | PREFABS.Decor_gtd_d3_blue_machine_row_point_2 = 115 | { 116 | template = "Decor_gtd_d3_comp_box_single", 117 | map = "MAP05", 118 | 119 | size = 144, 120 | height = 112, 121 | 122 | group = "d3_tech_blue_machine_row", 123 | 124 | bound_z2 = 112 125 | } 126 | 127 | -- 128 | 129 | PREFABS.Decor_gtd_d3_fried_chicken_lite_pillar = 130 | { 131 | template = "Decor_gtd_d3_comp_box_single", 132 | map = "MAP07", 133 | 134 | size = 88, 135 | height = 128, 136 | 137 | group = "d3_fried_chicken_lights", 138 | 139 | bound_z2 = 128 140 | } 141 | 142 | -- 143 | 144 | PREFABS.Decor_gtd_d3_grid_light_green_banded_pillar = 145 | { 146 | template = "Decor_gtd_d3_comp_box_single", 147 | map = "MAP08", 148 | 149 | size = 80, 150 | height = 96, 151 | 152 | group = "d3_grid_light_green_bands", 153 | 154 | bound_z2 = 96 155 | } 156 | 157 | -- 158 | 159 | PREFABS.Decor_gtd_tech_grey_girder_lite_point = 160 | { 161 | template = "Decor_gtd_d3_comp_box_single", 162 | map = "MAP09", 163 | 164 | size = 68, 165 | height = 104, 166 | 167 | group = "d3_tech_grey_girder_lite_banded", 168 | 169 | bound_z2 = 68, 170 | } 171 | 172 | -- 173 | 174 | PREFABS.Decor_d3_tetromino_grate = 175 | { 176 | template = "Decor_gtd_d3_comp_box_single", 177 | map = "MAP10", 178 | 179 | size = 88, 180 | height = 112, 181 | 182 | group = "d3_tetromino_grate", 183 | 184 | bound_z2 = 112, 185 | } 186 | -------------------------------------------------------------------------------- /addon_barebones_shape_grammar/games/chex/shapes.lua: -------------------------------------------------------------------------------- 1 | ------------------------------------------------------------------------ 2 | -- GRAMMAR RULES 3 | ------------------------------------------------------------------------ 4 | -- 5 | -- // Obsidian // 6 | -- 7 | -- Copyright (C) 2015-2017 Andrew Apted 8 | -- Copyright (C) 2018-2019 MsrSgtShooterPerson 9 | -- 10 | -- This program is free software; you can redistribute it and/or 11 | -- modify it under the terms of the GNU General Public License 12 | -- as published by the Free Software Foundation; either version 2, 13 | -- of the License, or (at your option) any later version. 14 | -- 15 | -- This program is distributed in the hope that it will be useful, 16 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 | -- GNU General Public License for more details. 19 | -- 20 | ------------------------------------------------------------------------ 21 | 22 | CHEX3.SHAPE_GRAMMAR = 23 | { 24 | 25 | ROOT_1 = 26 | { 27 | prob = 50, 28 | 29 | structure = 30 | { 31 | "!!!!!!", "......", 32 | "!!!!!!", ".RRRR.", 33 | "!!!!!!", ".RRRR.", 34 | "!!!!!!", ".RRRR.", 35 | "!!!!!!", ".RRRR.", 36 | "!!!!!!", "......", 37 | }, 38 | 39 | --[[ new_room = 40 | { 41 | symmetry = { kind="mirror", x=3, y=2, dir=8 }, 42 | symmetry2 = { kind="rotate", x=2, y=2, x2=4, y2=4 }, 43 | }]] 44 | 45 | }, 46 | 47 | 48 | ----------------------------------------- 49 | 50 | --[[GROW_1 = 51 | { 52 | prob = 400, --Non-MSSP default: 100, 53 | prob_skew = 2, 54 | 55 | structure = 56 | { 57 | "...", "#1#", 58 | "x1x", "x1x", 59 | }, 60 | }, 61 | 62 | GROW_2 = 63 | { 64 | prob = 400, --Non-MSSP default: 100, 65 | prob_skew = 2, 66 | 67 | structure = 68 | { 69 | "....", "#11#", 70 | "x11x", "x11x", 71 | }, 72 | },]]-- 73 | 74 | GROW_2 = 75 | { 76 | prob = 400, --Non-MSSP default: 100, 77 | prob_skew = 2, 78 | 79 | structure = 80 | { 81 | --"......", "......", 82 | --"......", "......", 83 | --"......", "......", 84 | --"......", "......", 85 | "......", "......", 86 | ".1111.", ".1111.", 87 | }, 88 | }, 89 | 90 | 91 | ------------------------------------------ 92 | 93 | 94 | --[[SPROUT_DIRECT_1 = 95 | { 96 | prob = 3, --3, 97 | 98 | structure = 99 | { 100 | "....", "#..#", 101 | "....", "#RR#", 102 | "x11x", "x11x", 103 | }, 104 | 105 | new_room = 106 | { 107 | conn = { x=2, y=1, w=2, dir=8 }, 108 | 109 | symmetry = { x=2, y=3, w=2, dir=8 }, 110 | }, 111 | },]]-- 112 | 113 | SPROUT_DIRECT_2 = 114 | { 115 | prob = 400, --Non-MSSP default: 100, 116 | prob_skew = 2, 117 | 118 | structure = 119 | { 120 | --"......", "......", 121 | "......", ".RRRR.", 122 | "......", ".RRRR.", 123 | "......", ".RRRR.", 124 | "......", ".RRRR.", 125 | ".1111.", ".1111.", 126 | }, 127 | 128 | new_room = 129 | { 130 | conn = { x=2, y=1, w=2, dir=8 }, 131 | 132 | symmetry = { x=2, y=3, w=2, dir=8 }, 133 | }, 134 | 135 | }, 136 | 137 | --[[SPROUT_DIRECT_2_EMERGENCY = 138 | { 139 | emergency = true, 140 | 141 | -- high prob to force this rule to be tried fairly early 142 | prob = 500, 143 | 144 | structure = 145 | { 146 | "..", "RR", 147 | "..", "RR", 148 | "11", "11", 149 | }, 150 | 151 | new_room = 152 | { 153 | conn = { x=1, y=1, w=2, dir=8 }, 154 | 155 | symmetry = { x=1, y=2, w=2, dir=8 }, 156 | }, 157 | },--]] 158 | 159 | 160 | SPROUT_TELEPORTER_2x2 = 161 | { 162 | prob = 700, 163 | 164 | structure = 165 | { 166 | "..", "TT", 167 | "..", "TT", 168 | "11", "11", 169 | "11", "11", 170 | }, 171 | 172 | teleporter = true, 173 | 174 | closet = 175 | { 176 | from_dir = 2, 177 | }, 178 | }, 179 | 180 | SQUARE_OUT_FROM_CORNER_2X = 181 | { 182 | pass = "square_out", 183 | 184 | prob = 100, 185 | 186 | structure = 187 | { 188 | "1.","11", 189 | "x1","x1", 190 | }, 191 | }, 192 | 193 | DECORATE_CLOSET_2x1 = 194 | { 195 | prob = 60, --40, 196 | prob_skew = 2, 197 | 198 | structure = 199 | { 200 | "..", "TT", 201 | "11", "11", 202 | }, 203 | 204 | closet = { from_dir=2 }, 205 | }, 206 | 207 | FILLER_1 = 208 | { 209 | pass = "filler", 210 | prob = 40, --30, 211 | 212 | structure = 213 | { 214 | "1.", "1.", 215 | "1.", "11", 216 | "11", "11", 217 | }, 218 | }, 219 | 220 | SMOOTHER_1 = 221 | { 222 | pass = "smoother", 223 | prob = 75, --50, 224 | 225 | structure = 226 | { 227 | "x.", "x.", 228 | "1.", "1%", 229 | "11", "11", 230 | }, 231 | 232 | diagonals = { "1." }, 233 | }, 234 | 235 | } 236 | -------------------------------------------------------------------------------- /addon_barebones_shape_grammar/games/doom/shapes.lua: -------------------------------------------------------------------------------- 1 | ------------------------------------------------------------------------ 2 | -- GRAMMAR RULES 3 | ------------------------------------------------------------------------ 4 | -- 5 | -- // Obsidian // 6 | -- 7 | -- Copyright (C) 2015-2017 Andrew Apted 8 | -- Copyright (C) 2018-2019 MsrSgtShooterPerson 9 | -- 10 | -- This program is free software; you can redistribute it and/or 11 | -- modify it under the terms of the GNU General Public License 12 | -- as published by the Free Software Foundation; either version 2, 13 | -- of the License, or (at your option) any later version. 14 | -- 15 | -- This program is distributed in the hope that it will be useful, 16 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 | -- GNU General Public License for more details. 19 | -- 20 | ------------------------------------------------------------------------ 21 | 22 | DOOM.SHAPE_GRAMMAR = 23 | { 24 | 25 | ROOT_1 = 26 | { 27 | prob = 50, 28 | 29 | structure = 30 | { 31 | "!!!!!!", "......", 32 | "!!!!!!", ".RRRR.", 33 | "!!!!!!", ".RRRR.", 34 | "!!!!!!", ".RRRR.", 35 | "!!!!!!", ".RRRR.", 36 | "!!!!!!", "......", 37 | }, 38 | 39 | --[[ new_room = 40 | { 41 | symmetry = { kind="mirror", x=3, y=2, dir=8 }, 42 | symmetry2 = { kind="rotate", x=2, y=2, x2=4, y2=4 }, 43 | }]] 44 | 45 | }, 46 | 47 | 48 | ----------------------------------------- 49 | 50 | --[[GROW_1 = 51 | { 52 | prob = 400, --Non-MSSP default: 100, 53 | prob_skew = 2, 54 | 55 | structure = 56 | { 57 | "...", "#1#", 58 | "x1x", "x1x", 59 | }, 60 | }, 61 | 62 | GROW_2 = 63 | { 64 | prob = 400, --Non-MSSP default: 100, 65 | prob_skew = 2, 66 | 67 | structure = 68 | { 69 | "....", "#11#", 70 | "x11x", "x11x", 71 | }, 72 | },]]-- 73 | 74 | GROW_2 = 75 | { 76 | prob = 400, --Non-MSSP default: 100, 77 | prob_skew = 2, 78 | 79 | structure = 80 | { 81 | --"......", "......", 82 | --"......", "......", 83 | --"......", "......", 84 | --"......", "......", 85 | "......", "......", 86 | ".1111.", ".1111.", 87 | }, 88 | }, 89 | 90 | 91 | ------------------------------------------ 92 | 93 | 94 | --[[SPROUT_DIRECT_1 = 95 | { 96 | prob = 3, --3, 97 | 98 | structure = 99 | { 100 | "....", "#..#", 101 | "....", "#RR#", 102 | "x11x", "x11x", 103 | }, 104 | 105 | new_room = 106 | { 107 | conn = { x=2, y=1, w=2, dir=8 }, 108 | 109 | symmetry = { x=2, y=3, w=2, dir=8 }, 110 | }, 111 | },]]-- 112 | 113 | SPROUT_DIRECT_2 = 114 | { 115 | prob = 400, --Non-MSSP default: 100, 116 | prob_skew = 2, 117 | 118 | structure = 119 | { 120 | --"......", "......", 121 | "......", ".RRRR.", 122 | "......", ".RRRR.", 123 | "......", ".RRRR.", 124 | "......", ".RRRR.", 125 | ".1111.", ".1111.", 126 | }, 127 | 128 | new_room = 129 | { 130 | conn = { x=2, y=1, w=2, dir=8 }, 131 | 132 | symmetry = { x=2, y=3, w=2, dir=8 }, 133 | }, 134 | 135 | }, 136 | 137 | --[[SPROUT_DIRECT_2_EMERGENCY = 138 | { 139 | emergency = true, 140 | 141 | -- high prob to force this rule to be tried fairly early 142 | prob = 500, 143 | 144 | structure = 145 | { 146 | "..", "RR", 147 | "..", "RR", 148 | "11", "11", 149 | }, 150 | 151 | new_room = 152 | { 153 | conn = { x=1, y=1, w=2, dir=8 }, 154 | 155 | symmetry = { x=1, y=2, w=2, dir=8 }, 156 | }, 157 | },--]] 158 | 159 | 160 | SPROUT_TELEPORTER_2x2 = 161 | { 162 | prob = 700, 163 | 164 | structure = 165 | { 166 | "..", "TT", 167 | "..", "TT", 168 | "11", "11", 169 | "11", "11", 170 | }, 171 | 172 | teleporter = true, 173 | 174 | closet = 175 | { 176 | from_dir = 2, 177 | }, 178 | }, 179 | 180 | SQUARE_OUT_FROM_CORNER_2X = 181 | { 182 | pass = "square_out", 183 | 184 | prob = 100, 185 | 186 | structure = 187 | { 188 | "1.","11", 189 | "x1","x1", 190 | }, 191 | }, 192 | 193 | DECORATE_CLOSET_2x1 = 194 | { 195 | prob = 60, --40, 196 | prob_skew = 2, 197 | 198 | structure = 199 | { 200 | "..", "TT", 201 | "11", "11", 202 | }, 203 | 204 | closet = { from_dir=2 }, 205 | }, 206 | 207 | FILLER_1 = 208 | { 209 | pass = "filler", 210 | prob = 40, --30, 211 | 212 | structure = 213 | { 214 | "1.", "1.", 215 | "1.", "11", 216 | "11", "11", 217 | }, 218 | }, 219 | 220 | SMOOTHER_1 = 221 | { 222 | pass = "smoother", 223 | prob = 75, --50, 224 | 225 | structure = 226 | { 227 | "x.", "x.", 228 | "1.", "1%", 229 | "11", "11", 230 | }, 231 | 232 | diagonals = { "1." }, 233 | }, 234 | 235 | } 236 | -------------------------------------------------------------------------------- /addon_barebones_shape_grammar/games/hacx/shapes.lua: -------------------------------------------------------------------------------- 1 | ------------------------------------------------------------------------ 2 | -- GRAMMAR RULES 3 | ------------------------------------------------------------------------ 4 | -- 5 | -- // Obsidian // 6 | -- 7 | -- Copyright (C) 2015-2017 Andrew Apted 8 | -- Copyright (C) 2018-2019 MsrSgtShooterPerson 9 | -- 10 | -- This program is free software; you can redistribute it and/or 11 | -- modify it under the terms of the GNU General Public License 12 | -- as published by the Free Software Foundation; either version 2, 13 | -- of the License, or (at your option) any later version. 14 | -- 15 | -- This program is distributed in the hope that it will be useful, 16 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 | -- GNU General Public License for more details. 19 | -- 20 | ------------------------------------------------------------------------ 21 | 22 | HACX.SHAPE_GRAMMAR = 23 | { 24 | 25 | ROOT_1 = 26 | { 27 | prob = 50, 28 | 29 | structure = 30 | { 31 | "!!!!!!", "......", 32 | "!!!!!!", ".RRRR.", 33 | "!!!!!!", ".RRRR.", 34 | "!!!!!!", ".RRRR.", 35 | "!!!!!!", ".RRRR.", 36 | "!!!!!!", "......", 37 | }, 38 | 39 | --[[ new_room = 40 | { 41 | symmetry = { kind="mirror", x=3, y=2, dir=8 }, 42 | symmetry2 = { kind="rotate", x=2, y=2, x2=4, y2=4 }, 43 | }]] 44 | 45 | }, 46 | 47 | 48 | ----------------------------------------- 49 | 50 | --[[GROW_1 = 51 | { 52 | prob = 400, --Non-MSSP default: 100, 53 | prob_skew = 2, 54 | 55 | structure = 56 | { 57 | "...", "#1#", 58 | "x1x", "x1x", 59 | }, 60 | }, 61 | 62 | GROW_2 = 63 | { 64 | prob = 400, --Non-MSSP default: 100, 65 | prob_skew = 2, 66 | 67 | structure = 68 | { 69 | "....", "#11#", 70 | "x11x", "x11x", 71 | }, 72 | },]]-- 73 | 74 | GROW_2 = 75 | { 76 | prob = 400, --Non-MSSP default: 100, 77 | prob_skew = 2, 78 | 79 | structure = 80 | { 81 | --"......", "......", 82 | --"......", "......", 83 | --"......", "......", 84 | --"......", "......", 85 | "......", "......", 86 | ".1111.", ".1111.", 87 | }, 88 | }, 89 | 90 | 91 | ------------------------------------------ 92 | 93 | 94 | --[[SPROUT_DIRECT_1 = 95 | { 96 | prob = 3, --3, 97 | 98 | structure = 99 | { 100 | "....", "#..#", 101 | "....", "#RR#", 102 | "x11x", "x11x", 103 | }, 104 | 105 | new_room = 106 | { 107 | conn = { x=2, y=1, w=2, dir=8 }, 108 | 109 | symmetry = { x=2, y=3, w=2, dir=8 }, 110 | }, 111 | },]]-- 112 | 113 | SPROUT_DIRECT_2 = 114 | { 115 | prob = 400, --Non-MSSP default: 100, 116 | prob_skew = 2, 117 | 118 | structure = 119 | { 120 | --"......", "......", 121 | "......", ".RRRR.", 122 | "......", ".RRRR.", 123 | "......", ".RRRR.", 124 | "......", ".RRRR.", 125 | ".1111.", ".1111.", 126 | }, 127 | 128 | new_room = 129 | { 130 | conn = { x=2, y=1, w=2, dir=8 }, 131 | 132 | symmetry = { x=2, y=3, w=2, dir=8 }, 133 | }, 134 | 135 | }, 136 | 137 | --[[SPROUT_DIRECT_2_EMERGENCY = 138 | { 139 | emergency = true, 140 | 141 | -- high prob to force this rule to be tried fairly early 142 | prob = 500, 143 | 144 | structure = 145 | { 146 | "..", "RR", 147 | "..", "RR", 148 | "11", "11", 149 | }, 150 | 151 | new_room = 152 | { 153 | conn = { x=1, y=1, w=2, dir=8 }, 154 | 155 | symmetry = { x=1, y=2, w=2, dir=8 }, 156 | }, 157 | },--]] 158 | 159 | 160 | SPROUT_TELEPORTER_2x2 = 161 | { 162 | prob = 700, 163 | 164 | structure = 165 | { 166 | "..", "TT", 167 | "..", "TT", 168 | "11", "11", 169 | "11", "11", 170 | }, 171 | 172 | teleporter = true, 173 | 174 | closet = 175 | { 176 | from_dir = 2, 177 | }, 178 | }, 179 | 180 | SQUARE_OUT_FROM_CORNER_2X = 181 | { 182 | pass = "square_out", 183 | 184 | prob = 100, 185 | 186 | structure = 187 | { 188 | "1.","11", 189 | "x1","x1", 190 | }, 191 | }, 192 | 193 | DECORATE_CLOSET_2x1 = 194 | { 195 | prob = 60, --40, 196 | prob_skew = 2, 197 | 198 | structure = 199 | { 200 | "..", "TT", 201 | "11", "11", 202 | }, 203 | 204 | closet = { from_dir=2 }, 205 | }, 206 | 207 | FILLER_1 = 208 | { 209 | pass = "filler", 210 | prob = 40, --30, 211 | 212 | structure = 213 | { 214 | "1.", "1.", 215 | "1.", "11", 216 | "11", "11", 217 | }, 218 | }, 219 | 220 | SMOOTHER_1 = 221 | { 222 | pass = "smoother", 223 | prob = 75, --50, 224 | 225 | structure = 226 | { 227 | "x.", "x.", 228 | "1.", "1%", 229 | "11", "11", 230 | }, 231 | 232 | diagonals = { "1." }, 233 | }, 234 | 235 | } 236 | -------------------------------------------------------------------------------- /addon_barebones_shape_grammar/games/hexen/shapes.lua: -------------------------------------------------------------------------------- 1 | ------------------------------------------------------------------------ 2 | -- GRAMMAR RULES 3 | ------------------------------------------------------------------------ 4 | -- 5 | -- // Obsidian // 6 | -- 7 | -- Copyright (C) 2015-2017 Andrew Apted 8 | -- Copyright (C) 2018-2019 MsrSgtShooterPerson 9 | -- 10 | -- This program is free software; you can redistribute it and/or 11 | -- modify it under the terms of the GNU General Public License 12 | -- as published by the Free Software Foundation; either version 2, 13 | -- of the License, or (at your option) any later version. 14 | -- 15 | -- This program is distributed in the hope that it will be useful, 16 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 | -- GNU General Public License for more details. 19 | -- 20 | ------------------------------------------------------------------------ 21 | 22 | HEXEN.SHAPE_GRAMMAR = 23 | { 24 | 25 | ROOT_1 = 26 | { 27 | prob = 50, 28 | 29 | structure = 30 | { 31 | "!!!!!!", "......", 32 | "!!!!!!", ".RRRR.", 33 | "!!!!!!", ".RRRR.", 34 | "!!!!!!", ".RRRR.", 35 | "!!!!!!", ".RRRR.", 36 | "!!!!!!", "......", 37 | }, 38 | 39 | --[[ new_room = 40 | { 41 | symmetry = { kind="mirror", x=3, y=2, dir=8 }, 42 | symmetry2 = { kind="rotate", x=2, y=2, x2=4, y2=4 }, 43 | }]] 44 | 45 | }, 46 | 47 | 48 | ----------------------------------------- 49 | 50 | --[[GROW_1 = 51 | { 52 | prob = 400, --Non-MSSP default: 100, 53 | prob_skew = 2, 54 | 55 | structure = 56 | { 57 | "...", "#1#", 58 | "x1x", "x1x", 59 | }, 60 | }, 61 | 62 | GROW_2 = 63 | { 64 | prob = 400, --Non-MSSP default: 100, 65 | prob_skew = 2, 66 | 67 | structure = 68 | { 69 | "....", "#11#", 70 | "x11x", "x11x", 71 | }, 72 | },]]-- 73 | 74 | GROW_2 = 75 | { 76 | prob = 400, --Non-MSSP default: 100, 77 | prob_skew = 2, 78 | 79 | structure = 80 | { 81 | --"......", "......", 82 | --"......", "......", 83 | --"......", "......", 84 | --"......", "......", 85 | "......", "......", 86 | ".1111.", ".1111.", 87 | }, 88 | }, 89 | 90 | 91 | ------------------------------------------ 92 | 93 | 94 | --[[SPROUT_DIRECT_1 = 95 | { 96 | prob = 3, --3, 97 | 98 | structure = 99 | { 100 | "....", "#..#", 101 | "....", "#RR#", 102 | "x11x", "x11x", 103 | }, 104 | 105 | new_room = 106 | { 107 | conn = { x=2, y=1, w=2, dir=8 }, 108 | 109 | symmetry = { x=2, y=3, w=2, dir=8 }, 110 | }, 111 | },]]-- 112 | 113 | SPROUT_DIRECT_2 = 114 | { 115 | prob = 400, --Non-MSSP default: 100, 116 | prob_skew = 2, 117 | 118 | structure = 119 | { 120 | --"......", "......", 121 | "......", ".RRRR.", 122 | "......", ".RRRR.", 123 | "......", ".RRRR.", 124 | "......", ".RRRR.", 125 | ".1111.", ".1111.", 126 | }, 127 | 128 | new_room = 129 | { 130 | conn = { x=2, y=1, w=2, dir=8 }, 131 | 132 | symmetry = { x=2, y=3, w=2, dir=8 }, 133 | }, 134 | 135 | }, 136 | 137 | --[[SPROUT_DIRECT_2_EMERGENCY = 138 | { 139 | emergency = true, 140 | 141 | -- high prob to force this rule to be tried fairly early 142 | prob = 500, 143 | 144 | structure = 145 | { 146 | "..", "RR", 147 | "..", "RR", 148 | "11", "11", 149 | }, 150 | 151 | new_room = 152 | { 153 | conn = { x=1, y=1, w=2, dir=8 }, 154 | 155 | symmetry = { x=1, y=2, w=2, dir=8 }, 156 | }, 157 | },--]] 158 | 159 | 160 | SPROUT_TELEPORTER_2x2 = 161 | { 162 | prob = 700, 163 | 164 | structure = 165 | { 166 | "..", "TT", 167 | "..", "TT", 168 | "11", "11", 169 | "11", "11", 170 | }, 171 | 172 | teleporter = true, 173 | 174 | closet = 175 | { 176 | from_dir = 2, 177 | }, 178 | }, 179 | 180 | SQUARE_OUT_FROM_CORNER_2X = 181 | { 182 | pass = "square_out", 183 | 184 | prob = 100, 185 | 186 | structure = 187 | { 188 | "1.","11", 189 | "x1","x1", 190 | }, 191 | }, 192 | 193 | DECORATE_CLOSET_2x1 = 194 | { 195 | prob = 60, --40, 196 | prob_skew = 2, 197 | 198 | structure = 199 | { 200 | "..", "TT", 201 | "11", "11", 202 | }, 203 | 204 | closet = { from_dir=2 }, 205 | }, 206 | 207 | FILLER_1 = 208 | { 209 | pass = "filler", 210 | prob = 40, --30, 211 | 212 | structure = 213 | { 214 | "1.", "1.", 215 | "1.", "11", 216 | "11", "11", 217 | }, 218 | }, 219 | 220 | SMOOTHER_1 = 221 | { 222 | pass = "smoother", 223 | prob = 75, --50, 224 | 225 | structure = 226 | { 227 | "x.", "x.", 228 | "1.", "1%", 229 | "11", "11", 230 | }, 231 | 232 | diagonals = { "1." }, 233 | }, 234 | 235 | } 236 | -------------------------------------------------------------------------------- /addon_barebones_shape_grammar/games/harmony/shapes.lua: -------------------------------------------------------------------------------- 1 | ------------------------------------------------------------------------ 2 | -- GRAMMAR RULES 3 | ------------------------------------------------------------------------ 4 | -- 5 | -- // Obsidian // 6 | -- 7 | -- Copyright (C) 2015-2017 Andrew Apted 8 | -- Copyright (C) 2018-2019 MsrSgtShooterPerson 9 | -- 10 | -- This program is free software; you can redistribute it and/or 11 | -- modify it under the terms of the GNU General Public License 12 | -- as published by the Free Software Foundation; either version 2, 13 | -- of the License, or (at your option) any later version. 14 | -- 15 | -- This program is distributed in the hope that it will be useful, 16 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 | -- GNU General Public License for more details. 19 | -- 20 | ------------------------------------------------------------------------ 21 | 22 | HARMONY.SHAPE_GRAMMAR = 23 | { 24 | 25 | ROOT_1 = 26 | { 27 | prob = 50, 28 | 29 | structure = 30 | { 31 | "!!!!!!", "......", 32 | "!!!!!!", ".RRRR.", 33 | "!!!!!!", ".RRRR.", 34 | "!!!!!!", ".RRRR.", 35 | "!!!!!!", ".RRRR.", 36 | "!!!!!!", "......", 37 | }, 38 | 39 | --[[ new_room = 40 | { 41 | symmetry = { kind="mirror", x=3, y=2, dir=8 }, 42 | symmetry2 = { kind="rotate", x=2, y=2, x2=4, y2=4 }, 43 | }]] 44 | 45 | }, 46 | 47 | 48 | ----------------------------------------- 49 | 50 | --[[GROW_1 = 51 | { 52 | prob = 400, --Non-MSSP default: 100, 53 | prob_skew = 2, 54 | 55 | structure = 56 | { 57 | "...", "#1#", 58 | "x1x", "x1x", 59 | }, 60 | }, 61 | 62 | GROW_2 = 63 | { 64 | prob = 400, --Non-MSSP default: 100, 65 | prob_skew = 2, 66 | 67 | structure = 68 | { 69 | "....", "#11#", 70 | "x11x", "x11x", 71 | }, 72 | },]]-- 73 | 74 | GROW_2 = 75 | { 76 | prob = 400, --Non-MSSP default: 100, 77 | prob_skew = 2, 78 | 79 | structure = 80 | { 81 | --"......", "......", 82 | --"......", "......", 83 | --"......", "......", 84 | --"......", "......", 85 | "......", "......", 86 | ".1111.", ".1111.", 87 | }, 88 | }, 89 | 90 | 91 | ------------------------------------------ 92 | 93 | 94 | --[[SPROUT_DIRECT_1 = 95 | { 96 | prob = 3, --3, 97 | 98 | structure = 99 | { 100 | "....", "#..#", 101 | "....", "#RR#", 102 | "x11x", "x11x", 103 | }, 104 | 105 | new_room = 106 | { 107 | conn = { x=2, y=1, w=2, dir=8 }, 108 | 109 | symmetry = { x=2, y=3, w=2, dir=8 }, 110 | }, 111 | },]]-- 112 | 113 | SPROUT_DIRECT_2 = 114 | { 115 | prob = 400, --Non-MSSP default: 100, 116 | prob_skew = 2, 117 | 118 | structure = 119 | { 120 | --"......", "......", 121 | "......", ".RRRR.", 122 | "......", ".RRRR.", 123 | "......", ".RRRR.", 124 | "......", ".RRRR.", 125 | ".1111.", ".1111.", 126 | }, 127 | 128 | new_room = 129 | { 130 | conn = { x=2, y=1, w=2, dir=8 }, 131 | 132 | symmetry = { x=2, y=3, w=2, dir=8 }, 133 | }, 134 | 135 | }, 136 | 137 | --[[SPROUT_DIRECT_2_EMERGENCY = 138 | { 139 | emergency = true, 140 | 141 | -- high prob to force this rule to be tried fairly early 142 | prob = 500, 143 | 144 | structure = 145 | { 146 | "..", "RR", 147 | "..", "RR", 148 | "11", "11", 149 | }, 150 | 151 | new_room = 152 | { 153 | conn = { x=1, y=1, w=2, dir=8 }, 154 | 155 | symmetry = { x=1, y=2, w=2, dir=8 }, 156 | }, 157 | },--]] 158 | 159 | 160 | SPROUT_TELEPORTER_2x2 = 161 | { 162 | prob = 700, 163 | 164 | structure = 165 | { 166 | "..", "TT", 167 | "..", "TT", 168 | "11", "11", 169 | "11", "11", 170 | }, 171 | 172 | teleporter = true, 173 | 174 | closet = 175 | { 176 | from_dir = 2, 177 | }, 178 | }, 179 | 180 | SQUARE_OUT_FROM_CORNER_2X = 181 | { 182 | pass = "square_out", 183 | 184 | prob = 100, 185 | 186 | structure = 187 | { 188 | "1.","11", 189 | "x1","x1", 190 | }, 191 | }, 192 | 193 | DECORATE_CLOSET_2x1 = 194 | { 195 | prob = 60, --40, 196 | prob_skew = 2, 197 | 198 | structure = 199 | { 200 | "..", "TT", 201 | "11", "11", 202 | }, 203 | 204 | closet = { from_dir=2 }, 205 | }, 206 | 207 | FILLER_1 = 208 | { 209 | pass = "filler", 210 | prob = 40, --30, 211 | 212 | structure = 213 | { 214 | "1.", "1.", 215 | "1.", "11", 216 | "11", "11", 217 | }, 218 | }, 219 | 220 | SMOOTHER_1 = 221 | { 222 | pass = "smoother", 223 | prob = 75, --50, 224 | 225 | structure = 226 | { 227 | "x.", "x.", 228 | "1.", "1%", 229 | "11", "11", 230 | }, 231 | 232 | diagonals = { "1." }, 233 | }, 234 | 235 | } 236 | -------------------------------------------------------------------------------- /addon_barebones_shape_grammar/games/heretic/shapes.lua: -------------------------------------------------------------------------------- 1 | ------------------------------------------------------------------------ 2 | -- GRAMMAR RULES 3 | ------------------------------------------------------------------------ 4 | -- 5 | -- // Obsidian // 6 | -- 7 | -- Copyright (C) 2015-2017 Andrew Apted 8 | -- Copyright (C) 2018-2019 MsrSgtShooterPerson 9 | -- 10 | -- This program is free software; you can redistribute it and/or 11 | -- modify it under the terms of the GNU General Public License 12 | -- as published by the Free Software Foundation; either version 2, 13 | -- of the License, or (at your option) any later version. 14 | -- 15 | -- This program is distributed in the hope that it will be useful, 16 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 | -- GNU General Public License for more details. 19 | -- 20 | ------------------------------------------------------------------------ 21 | 22 | HERETIC.SHAPE_GRAMMAR = 23 | { 24 | 25 | ROOT_1 = 26 | { 27 | prob = 50, 28 | 29 | structure = 30 | { 31 | "!!!!!!", "......", 32 | "!!!!!!", ".RRRR.", 33 | "!!!!!!", ".RRRR.", 34 | "!!!!!!", ".RRRR.", 35 | "!!!!!!", ".RRRR.", 36 | "!!!!!!", "......", 37 | }, 38 | 39 | --[[ new_room = 40 | { 41 | symmetry = { kind="mirror", x=3, y=2, dir=8 }, 42 | symmetry2 = { kind="rotate", x=2, y=2, x2=4, y2=4 }, 43 | }]] 44 | 45 | }, 46 | 47 | 48 | ----------------------------------------- 49 | 50 | --[[GROW_1 = 51 | { 52 | prob = 400, --Non-MSSP default: 100, 53 | prob_skew = 2, 54 | 55 | structure = 56 | { 57 | "...", "#1#", 58 | "x1x", "x1x", 59 | }, 60 | }, 61 | 62 | GROW_2 = 63 | { 64 | prob = 400, --Non-MSSP default: 100, 65 | prob_skew = 2, 66 | 67 | structure = 68 | { 69 | "....", "#11#", 70 | "x11x", "x11x", 71 | }, 72 | },]]-- 73 | 74 | GROW_2 = 75 | { 76 | prob = 400, --Non-MSSP default: 100, 77 | prob_skew = 2, 78 | 79 | structure = 80 | { 81 | --"......", "......", 82 | --"......", "......", 83 | --"......", "......", 84 | --"......", "......", 85 | "......", "......", 86 | ".1111.", ".1111.", 87 | }, 88 | }, 89 | 90 | 91 | ------------------------------------------ 92 | 93 | 94 | --[[SPROUT_DIRECT_1 = 95 | { 96 | prob = 3, --3, 97 | 98 | structure = 99 | { 100 | "....", "#..#", 101 | "....", "#RR#", 102 | "x11x", "x11x", 103 | }, 104 | 105 | new_room = 106 | { 107 | conn = { x=2, y=1, w=2, dir=8 }, 108 | 109 | symmetry = { x=2, y=3, w=2, dir=8 }, 110 | }, 111 | },]]-- 112 | 113 | SPROUT_DIRECT_2 = 114 | { 115 | prob = 400, --Non-MSSP default: 100, 116 | prob_skew = 2, 117 | 118 | structure = 119 | { 120 | --"......", "......", 121 | "......", ".RRRR.", 122 | "......", ".RRRR.", 123 | "......", ".RRRR.", 124 | "......", ".RRRR.", 125 | ".1111.", ".1111.", 126 | }, 127 | 128 | new_room = 129 | { 130 | conn = { x=2, y=1, w=2, dir=8 }, 131 | 132 | symmetry = { x=2, y=3, w=2, dir=8 }, 133 | }, 134 | 135 | }, 136 | 137 | --[[SPROUT_DIRECT_2_EMERGENCY = 138 | { 139 | emergency = true, 140 | 141 | -- high prob to force this rule to be tried fairly early 142 | prob = 500, 143 | 144 | structure = 145 | { 146 | "..", "RR", 147 | "..", "RR", 148 | "11", "11", 149 | }, 150 | 151 | new_room = 152 | { 153 | conn = { x=1, y=1, w=2, dir=8 }, 154 | 155 | symmetry = { x=1, y=2, w=2, dir=8 }, 156 | }, 157 | },--]] 158 | 159 | 160 | SPROUT_TELEPORTER_2x2 = 161 | { 162 | prob = 700, 163 | 164 | structure = 165 | { 166 | "..", "TT", 167 | "..", "TT", 168 | "11", "11", 169 | "11", "11", 170 | }, 171 | 172 | teleporter = true, 173 | 174 | closet = 175 | { 176 | from_dir = 2, 177 | }, 178 | }, 179 | 180 | SQUARE_OUT_FROM_CORNER_2X = 181 | { 182 | pass = "square_out", 183 | 184 | prob = 100, 185 | 186 | structure = 187 | { 188 | "1.","11", 189 | "x1","x1", 190 | }, 191 | }, 192 | 193 | DECORATE_CLOSET_2x1 = 194 | { 195 | prob = 60, --40, 196 | prob_skew = 2, 197 | 198 | structure = 199 | { 200 | "..", "TT", 201 | "11", "11", 202 | }, 203 | 204 | closet = { from_dir=2 }, 205 | }, 206 | 207 | FILLER_1 = 208 | { 209 | pass = "filler", 210 | prob = 40, --30, 211 | 212 | structure = 213 | { 214 | "1.", "1.", 215 | "1.", "11", 216 | "11", "11", 217 | }, 218 | }, 219 | 220 | SMOOTHER_1 = 221 | { 222 | pass = "smoother", 223 | prob = 75, --50, 224 | 225 | structure = 226 | { 227 | "x.", "x.", 228 | "1.", "1%", 229 | "11", "11", 230 | }, 231 | 232 | diagonals = { "1." }, 233 | }, 234 | 235 | } 236 | -------------------------------------------------------------------------------- /addon_barebones_shape_grammar/games/strife/shapes.lua: -------------------------------------------------------------------------------- 1 | ------------------------------------------------------------------------ 2 | -- GRAMMAR RULES 3 | ------------------------------------------------------------------------ 4 | -- 5 | -- // Obsidian // 6 | -- 7 | -- Copyright (C) 2015-2017 Andrew Apted 8 | -- Copyright (C) 2018-2019 MsrSgtShooterPerson 9 | -- 10 | -- This program is free software; you can redistribute it and/or 11 | -- modify it under the terms of the GNU General Public License 12 | -- as published by the Free Software Foundation; either version 2, 13 | -- of the License, or (at your option) any later version. 14 | -- 15 | -- This program is distributed in the hope that it will be useful, 16 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 | -- GNU General Public License for more details. 19 | -- 20 | ------------------------------------------------------------------------ 21 | 22 | STRIFE.SHAPE_GRAMMAR = 23 | { 24 | 25 | ROOT_1 = 26 | { 27 | prob = 50, 28 | 29 | structure = 30 | { 31 | "!!!!!!", "......", 32 | "!!!!!!", ".RRRR.", 33 | "!!!!!!", ".RRRR.", 34 | "!!!!!!", ".RRRR.", 35 | "!!!!!!", ".RRRR.", 36 | "!!!!!!", "......", 37 | }, 38 | 39 | --[[ new_room = 40 | { 41 | symmetry = { kind="mirror", x=3, y=2, dir=8 }, 42 | symmetry2 = { kind="rotate", x=2, y=2, x2=4, y2=4 }, 43 | }]] 44 | 45 | }, 46 | 47 | 48 | ----------------------------------------- 49 | 50 | --[[GROW_1 = 51 | { 52 | prob = 400, --Non-MSSP default: 100, 53 | prob_skew = 2, 54 | 55 | structure = 56 | { 57 | "...", "#1#", 58 | "x1x", "x1x", 59 | }, 60 | }, 61 | 62 | GROW_2 = 63 | { 64 | prob = 400, --Non-MSSP default: 100, 65 | prob_skew = 2, 66 | 67 | structure = 68 | { 69 | "....", "#11#", 70 | "x11x", "x11x", 71 | }, 72 | },]]-- 73 | 74 | GROW_2 = 75 | { 76 | prob = 400, --Non-MSSP default: 100, 77 | prob_skew = 2, 78 | 79 | structure = 80 | { 81 | --"......", "......", 82 | --"......", "......", 83 | --"......", "......", 84 | --"......", "......", 85 | "......", "......", 86 | ".1111.", ".1111.", 87 | }, 88 | }, 89 | 90 | 91 | ------------------------------------------ 92 | 93 | 94 | --[[SPROUT_DIRECT_1 = 95 | { 96 | prob = 3, --3, 97 | 98 | structure = 99 | { 100 | "....", "#..#", 101 | "....", "#RR#", 102 | "x11x", "x11x", 103 | }, 104 | 105 | new_room = 106 | { 107 | conn = { x=2, y=1, w=2, dir=8 }, 108 | 109 | symmetry = { x=2, y=3, w=2, dir=8 }, 110 | }, 111 | },]]-- 112 | 113 | SPROUT_DIRECT_2 = 114 | { 115 | prob = 400, --Non-MSSP default: 100, 116 | prob_skew = 2, 117 | 118 | structure = 119 | { 120 | --"......", "......", 121 | "......", ".RRRR.", 122 | "......", ".RRRR.", 123 | "......", ".RRRR.", 124 | "......", ".RRRR.", 125 | ".1111.", ".1111.", 126 | }, 127 | 128 | new_room = 129 | { 130 | conn = { x=2, y=1, w=2, dir=8 }, 131 | 132 | symmetry = { x=2, y=3, w=2, dir=8 }, 133 | }, 134 | 135 | }, 136 | 137 | --[[SPROUT_DIRECT_2_EMERGENCY = 138 | { 139 | emergency = true, 140 | 141 | -- high prob to force this rule to be tried fairly early 142 | prob = 500, 143 | 144 | structure = 145 | { 146 | "..", "RR", 147 | "..", "RR", 148 | "11", "11", 149 | }, 150 | 151 | new_room = 152 | { 153 | conn = { x=1, y=1, w=2, dir=8 }, 154 | 155 | symmetry = { x=1, y=2, w=2, dir=8 }, 156 | }, 157 | },--]] 158 | 159 | 160 | SPROUT_TELEPORTER_2x2 = 161 | { 162 | prob = 700, 163 | 164 | structure = 165 | { 166 | "..", "TT", 167 | "..", "TT", 168 | "11", "11", 169 | "11", "11", 170 | }, 171 | 172 | teleporter = true, 173 | 174 | closet = 175 | { 176 | from_dir = 2, 177 | }, 178 | }, 179 | 180 | SQUARE_OUT_FROM_CORNER_2X = 181 | { 182 | pass = "square_out", 183 | 184 | prob = 100, 185 | 186 | structure = 187 | { 188 | "1.","11", 189 | "x1","x1", 190 | }, 191 | }, 192 | 193 | DECORATE_CLOSET_2x1 = 194 | { 195 | prob = 60, --40, 196 | prob_skew = 2, 197 | 198 | structure = 199 | { 200 | "..", "TT", 201 | "11", "11", 202 | }, 203 | 204 | closet = { from_dir=2 }, 205 | }, 206 | 207 | FILLER_1 = 208 | { 209 | pass = "filler", 210 | prob = 40, --30, 211 | 212 | structure = 213 | { 214 | "1.", "1.", 215 | "1.", "11", 216 | "11", "11", 217 | }, 218 | }, 219 | 220 | SMOOTHER_1 = 221 | { 222 | pass = "smoother", 223 | prob = 75, --50, 224 | 225 | structure = 226 | { 227 | "x.", "x.", 228 | "1.", "1%", 229 | "11", "11", 230 | }, 231 | 232 | diagonals = { "1." }, 233 | }, 234 | 235 | } 236 | -------------------------------------------------------------------------------- /addon_delta_resource_pack/games/doom/fabs/picture/pic_gtd_d3_tech_groups.d3fabdef: -------------------------------------------------------------------------------- 1 | PREFABS.Pic_d3_tech_silverbottom_brown_lite_1 = 2 | { 3 | file = "picture/pic_gtd_d3_tech_groups.wad", 4 | map = "MAP01", 5 | 6 | prob = 100, 7 | 8 | group = "d3_tech_silverbottom_brown_lite", 9 | 10 | where = "seeds", 11 | seed_w = 2, 12 | seed_h = 1, 13 | 14 | height = 136, 15 | deep = 16, 16 | 17 | x_fit = { 120,136 }, 18 | y_fit = "top" 19 | } 20 | 21 | PREFABS.Pic_d3_tech_blue_machine_row = 22 | { 23 | template = "Pic_d3_tech_silverbottom_brown_lite_1", 24 | map = "MAP02", 25 | 26 | group = "d3_tech_blue_machine_row", 27 | 28 | height = 112, 29 | 30 | x_fit = { 92,164 } 31 | } 32 | 33 | PREFABS.Pic_d3_grid_light_green_bands = 34 | { 35 | template = "Pic_d3_tech_silverbottom_brown_lite_1", 36 | map = "MAP03", 37 | 38 | group = "d3_grid_light_green_bands", 39 | 40 | height = 128, 41 | 42 | x_fit = { 68,188 }, 43 | z_fit = { 110,112 }, 44 | 45 | bound_z1 = 0, 46 | bound_z2 = 128 47 | } 48 | 49 | PREFABS.Pic_d3_tech_door_thing_bronze_lite = 50 | { 51 | template = "Pic_d3_tech_silverbottom_brown_lite_1", 52 | map = "MAP04", 53 | 54 | group = "d3_tech_door_thing_bronze_lite", 55 | 56 | height = 120, 57 | 58 | x_fit = { 36,52 , 204,220 } 59 | } 60 | 61 | PREFABS.Pic_d3_tetromino_grate = 62 | { 63 | template = "Pic_d3_tech_silverbottom_brown_lite_1", 64 | map = "MAP05", 65 | 66 | group = "d3_tetromino_grate", 67 | 68 | height = 112, 69 | 70 | x_fit = { 80,104 , 152,176 } 71 | } 72 | 73 | PREFABS.Pic_d3_tech_comp_tile_cascade = 74 | { 75 | template = "Pic_d3_tech_silverbottom_brown_lite_1", 76 | map = "MAP06", 77 | 78 | group = "d3_tech_comp_tile_cascade", 79 | 80 | height = 128, 81 | 82 | tex_D3BRCP5 = 83 | { 84 | D3BRCP1 = 1, 85 | D3BRCP2 = 1, 86 | D3BRCP3 = 1, 87 | D3BRCP4 = 1, 88 | D3BRCP5 = 1, 89 | D3DKCP1 = 1, 90 | D3DKCP2 = 1, 91 | D3DKCP3 = 1, 92 | D3DKCP4 = 1, 93 | D3DKCP5 = 1, 94 | D3DKCP6 = 1, 95 | D3DKCP7 = 1, 96 | D3DKCP8 = 1, 97 | D3DKCP9 = 1 98 | }, 99 | 100 | tex_D3DKCP1 = 101 | { 102 | D3BRCP1 = 1, 103 | D3BRCP2 = 1, 104 | D3BRCP3 = 1, 105 | D3BRCP4 = 1, 106 | D3BRCP5 = 1, 107 | D3DKCP1 = 1, 108 | D3DKCP2 = 1, 109 | D3DKCP3 = 1, 110 | D3DKCP4 = 1, 111 | D3DKCP5 = 1, 112 | D3DKCP6 = 1, 113 | D3DKCP7 = 1, 114 | D3DKCP8 = 1, 115 | D3DKCP9 = 1 116 | }, 117 | 118 | x_fit = { 68,188 } 119 | } 120 | 121 | PREFABS.Pic_d3_tech_pockmarked = 122 | { 123 | template = "Pic_d3_tech_silverbottom_brown_lite_1", 124 | map = "MAP07", 125 | 126 | group = "d3_tech_pockmarked", 127 | 128 | height = 128, 129 | 130 | tex_D3BRCP1 = 131 | { 132 | D3BRCP1 = 1, 133 | D3BRCP2 = 1, 134 | D3BRCP3 = 1, 135 | D3BRCP4 = 1, 136 | D3BRCP5 = 1, 137 | D3DKCP1 = 1, 138 | D3DKCP2 = 1, 139 | D3DKCP3 = 1, 140 | D3DKCP4 = 1, 141 | D3DKCP5 = 1, 142 | D3DKCP6 = 1, 143 | D3DKCP7 = 1, 144 | D3DKCP8 = 1, 145 | D3DKCP9 = 1 146 | }, 147 | 148 | tex_D3DKCP2 = 149 | { 150 | D3BRCP1 = 1, 151 | D3BRCP2 = 1, 152 | D3BRCP3 = 1, 153 | D3BRCP4 = 1, 154 | D3BRCP5 = 1, 155 | D3DKCP1 = 1, 156 | D3DKCP2 = 1, 157 | D3DKCP3 = 1, 158 | D3DKCP4 = 1, 159 | D3DKCP5 = 1, 160 | D3DKCP6 = 1, 161 | D3DKCP7 = 1, 162 | D3DKCP8 = 1, 163 | D3DKCP9 = 1 164 | }, 165 | 166 | x_fit = { 24,56 , 200,232 } 167 | } 168 | 169 | -- 170 | 171 | PREFABS.Pic_d3_tech_bronze_light = 172 | { 173 | template = "Pic_d3_tech_silverbottom_brown_lite_1", 174 | map = "MAP08", 175 | 176 | rank = 1, 177 | group = "d3_tech_bronze_light", 178 | 179 | height = 136, 180 | 181 | x_fit = "frame", 182 | } 183 | 184 | PREFABS.Pic_d3_tech_bronze_light_2 = 185 | { 186 | template = "Pic_d3_tech_silverbottom_brown_lite_1", 187 | map = "MAP09", 188 | 189 | rank = 2, 190 | group = "d3_tech_bronze_light", 191 | 192 | seed_w = 3, 193 | height = 136, 194 | 195 | x_fit = "frame", 196 | 197 | sector_1 = {[0]=17, [1]=1, [2]=1, [17]=1} 198 | } 199 | 200 | -- 201 | 202 | PREFABS.Pic_d3_tech_silver_v_lite = 203 | { 204 | template = "Pic_d3_tech_silverbottom_brown_lite_1", 205 | map = "MAP10", 206 | 207 | group = "d3_tech_silver_v_lite", 208 | 209 | seed_w = 2, 210 | height = 128, 211 | 212 | x_fit = false, 213 | 214 | sector_1 = {[0]=17, [1]=1, [2]=1, [17]=1} 215 | } 216 | 217 | -- 218 | 219 | PREFABS.Pic_d3_tech_comp_machine_light = 220 | { 221 | template = "Pic_d3_tech_silverbottom_brown_lite_1", 222 | map = "MAP11", 223 | 224 | group = "d3_tech_comp_machine_light", 225 | 226 | seed_w = 2, 227 | height = 104, 228 | 229 | x_fit = { 88,168 }, 230 | 231 | sector_1 = {[0]=17, [1]=1, [2]=1, [17]=1} 232 | } 233 | 234 | -- 235 | 236 | PREFABS.Pic_d3_tech_brown_girder = 237 | { 238 | template = "Pic_d3_tech_silverbottom_brown_lite_1", 239 | map = "MAP12", 240 | 241 | group = "d3_tech_brown_girder", 242 | 243 | height = 96, 244 | 245 | x_fit = { 76,180 } 246 | } 247 | -------------------------------------------------------------------------------- /addon_delta_resource_pack/games/doom/fabs/wall/d3_exterior_tech_walls.d3fabdef: -------------------------------------------------------------------------------- 1 | PREFABS.Wall_tech_d3_1 = --# 2 | { 3 | file = "wall/d3_exterior_tech_walls.wad", 4 | map = "MAP01", 5 | 6 | prob = 50, 7 | 8 | group = "d3_tech_o_1", 9 | 10 | where = "edge", 11 | height = 128, 12 | deep = 16, 13 | 14 | bound_z1 = 0, 15 | bound_z2 = 128, 16 | 17 | z_fit = "top", 18 | 19 | tex_D3WMETL2 = 20 | { 21 | D3WMETL1 = 20, 22 | D3WMETL2 = 5, 23 | } 24 | } 25 | 26 | -- 27 | 28 | PREFABS.Wall_tech_d3_2 = 29 | { 30 | template = "Wall_tech_d3_1", 31 | 32 | group = "d3_tech_o_2", 33 | 34 | tex_D3DOORW1 = 35 | { 36 | D3DOORW1 = 8, 37 | D3DOORW2 = 1, 38 | D3DOORW3 = 1, 39 | }, 40 | 41 | z_fit = "bottom", 42 | } 43 | 44 | -- 45 | 46 | PREFABS.Wall_tech_d3_3 = 47 | { 48 | template = "Wall_tech_d3_1", 49 | map = "MAP02", 50 | 51 | group = "d3_tech_o_3", 52 | } 53 | 54 | -- 55 | 56 | PREFABS.Wall_tech_d3_3_a = 57 | { 58 | template = "Wall_tech_d3_1", 59 | map = "MAP03", 60 | 61 | height = 136, 62 | 63 | prob = 8, 64 | 65 | group = "d3_tech_o_4", 66 | 67 | tex_D3DOORW5 = 68 | { 69 | D3DOORW5 = 5, 70 | D3DOORW6 = 5 71 | }, 72 | 73 | bound_z2 = 136 74 | } 75 | 76 | PREFABS.Wall_tech_d3_3_b = 77 | { 78 | template = "Wall_tech_d3_1", 79 | map = "MAP04", 80 | 81 | height = 136, 82 | 83 | prob = 50, 84 | 85 | group = "d3_tech_o_4", 86 | 87 | tex_D3WMETL3 = 88 | { 89 | D3WMETL2 = 5, 90 | D3WMETL3 = 5, 91 | D3WMETL4 = 5, 92 | D3WMETL6 = 40 93 | }, 94 | 95 | bound_z2 = 136 96 | } 97 | 98 | -- 99 | 100 | PREFABS.Wall_tech_d3_warn_red_light = 101 | { 102 | template = "Wall_tech_d3_1", 103 | map = "MAP05", 104 | 105 | group = "d3_tech_warn_red_light", 106 | } 107 | 108 | -- 109 | 110 | PREFABS.Wall_tech_d3_brown_girder = 111 | { 112 | template = "Wall_tech_d3_1", 113 | map = "MAP06", 114 | 115 | group = "d3_tech_o_brown_girder", 116 | } 117 | 118 | -- 119 | 120 | PREFABS.Wall_tech_building_v_light_tall = 121 | { 122 | template = "Wall_tech_d3_1", 123 | map = "MAP07", 124 | 125 | group = "d3_tech_building_v_light_tall", 126 | } 127 | 128 | -- 129 | 130 | PREFABS.Wall_tech_d3_vent_red_lights = 131 | { 132 | template = "Wall_tech_d3_1", 133 | map = "MAP08", 134 | 135 | group = "d3_tech_vent_red_lights", 136 | } 137 | 138 | -- 139 | 140 | PREFABS.Wall_tech_d3_grate_rail_light_trim = 141 | { 142 | template = "Wall_tech_d3_1", 143 | map = "MAP09", 144 | 145 | group = "d3_tech_grate_rail_light_trim", 146 | 147 | z_fit = { 88,96 , 112,120 } 148 | } 149 | 150 | -- 151 | 152 | PREFABS.Wall_tech_d3_vertical_lite_row = 153 | { 154 | template = "Wall_tech_d3_1", 155 | map = "MAP10", 156 | 157 | height = 104, 158 | 159 | group = "d3_tech_vertical_lite_row", 160 | 161 | z_fit = "top", 162 | bound_z2 = 104 163 | } 164 | 165 | -- 166 | 167 | PREFABS.Wall_tech_d3_grey_girder = 168 | { 169 | template = "Wall_tech_d3_1", 170 | map = "MAP11", 171 | 172 | group = "d3_tech_grey_girder", 173 | 174 | z_fit = {0,1 , 127,128} 175 | } 176 | 177 | -- 178 | 179 | PREFABS.Wall_tech_d3_cement_1 = 180 | { 181 | template = "Wall_tech_d3_1", 182 | map = "MAP12", 183 | 184 | group = "d3_tech_cement_1", 185 | } 186 | 187 | -- 188 | 189 | PREFABS.Wall_tech_d3_cement_2 = 190 | { 191 | template = "Wall_tech_d3_1", 192 | map = "MAP12", 193 | 194 | group = "d3_tech_cement_2", 195 | 196 | tex_D3CEMNT4 = "D3CEMNT5" 197 | } 198 | 199 | -- 200 | 201 | PREFABS.Wall_tech_d3_triple_green_frame_lite = 202 | { 203 | template = "Wall_tech_d3_1", 204 | map = "MAP13", 205 | 206 | group = "d3_triple_green_frame_lite", 207 | 208 | z_fit = "bottom" 209 | } 210 | 211 | -- 212 | 213 | PREFABS.Wall_tech_d3_tall_window_lite = 214 | { 215 | template = "Wall_tech_d3_1", 216 | map = "MAP14", 217 | 218 | group = "d3_tall_window_lite", 219 | 220 | z_fit = { 116,118 } 221 | } 222 | 223 | -- 224 | 225 | PREFABS.Wall_tech_d3_grey_banded_lite3 = 226 | { 227 | template = "Wall_tech_d3_1", 228 | map = "MAP15", 229 | 230 | group = "d3_grey_banded_lite3", 231 | 232 | z_fit = { 116,118 } 233 | } 234 | 235 | -- 236 | 237 | PREFABS.Wall_tech_d3_round_lite_set = 238 | { 239 | template = "Wall_tech_d3_1", 240 | map = "MAP16", 241 | 242 | group = "d3_round_lite_set" 243 | } 244 | 245 | -- 246 | 247 | PREFABS.Wall_tech_d3_brown_lite_grey_frame = 248 | { 249 | template = "Wall_tech_d3_1", 250 | map = "MAP17", 251 | 252 | group = "d3_brown_lite_grey_frame" 253 | } 254 | 255 | -- 256 | 257 | PREFABS.Wall_tech_d3_4 = 258 | { 259 | template = "Wall_tech_d3_1", 260 | map = "MAP18", 261 | 262 | group = "d3_binary_lite_top_vent" 263 | } 264 | 265 | -- 266 | 267 | PREFABS.Wall_tech_d4_5 = 268 | { 269 | template = "Wall_tech_d3_1", 270 | map = "MAP19", 271 | 272 | group = "d3_brown_scaffold_double_lite_inset" 273 | } 274 | 275 | -- 276 | 277 | PREFABS.Wall_tech_d4_6 = 278 | { 279 | template = "Wall_tech_d3_1", 280 | map = "MAP20", 281 | 282 | group = "d3_small_round_door_n_grate_inset", 283 | 284 | tex_D3DOORW6 = 285 | { 286 | D3DOORW6 = 3, 287 | D3GYHL6 = 10, 288 | } 289 | } 290 | 291 | -- 292 | 293 | PREFABS.Wall_tech_d4_orange_white_stripe_lite = 294 | { 295 | template = "Wall_tech_d3_1", 296 | map = "MAP21", 297 | 298 | group = "d4_orange_white_stripe_lite", 299 | 300 | z_fit = { 103,106 } 301 | } 302 | -------------------------------------------------------------------------------- /addon_doom_tournament/modules/addon_doom_tournament.lua: -------------------------------------------------------------------------------- 1 | ------------------------------------------------------------------------ 2 | -- MODULE: Doom Tournament Weapons 3 | ------------------------------------------------------------------------ 4 | -- 5 | -- Copyright (C) 2021 MsrSgtShooterPerson 6 | -- 7 | -- This program is free software; you can redistribute it and/or 8 | -- modify it under the terms of the GNU General Public License 9 | -- as published by the Free Software Foundation; either version 2 10 | -- of the License, or (at your option) any later version. 11 | -- 12 | -- This program is distributed in the hope that it will be useful, 13 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | -- GNU General Public License for more details. 16 | -- 17 | ------------------------------------------------------------------------ 18 | 19 | DOOM_TOURNAMENT = {} 20 | 21 | 22 | DOOM_TOURNAMENT.START_ID = 13337 23 | 24 | 25 | DOOM_TOURNAMENT.WEAPONS = 26 | { 27 | impacthammer = 28 | { 29 | --actor_name = "HammerImpact", 30 | attack = "melee", 31 | rate = 0.5, 32 | damage = 78 33 | }, 34 | 35 | --[[chainsaw = 36 | { 37 | attack = "melee", 38 | damage = 20, 39 | rate = 4, 40 | },]] 41 | 42 | enforcer = 43 | { 44 | pref = 20, 45 | attack = "hitscan", 46 | rate = 1.4, 47 | damage = 17, 48 | accuracy = 80, 49 | ammo = "MiniAmmo", 50 | per = 1 51 | }, 52 | 53 | double_enforcer = 54 | { 55 | pref = 40, 56 | add_prob = 50, 57 | 58 | level = 1, 59 | actor_name = "Enforcer", 60 | upgrades = "enforcer", 61 | attack = "hitscan", 62 | rate = 2.8, 63 | damage = 17, 64 | accuracy = 80, 65 | ammo = "MiniAmmo", 66 | give = { {ammo="MiniAmmo", count=10} }, 67 | per = 1 68 | }, 69 | 70 | bio_rifle = 71 | { 72 | pref = 20, 73 | add_prob = 50, 74 | level = 1.2, 75 | 76 | actor_name = "BioRifle", 77 | attack = "missile", 78 | damage = 37, 79 | rate = 3, 80 | accuracy = 50, 81 | splash = { 37, 14 }, 82 | ammo = "BioAmmo", 83 | give = { {ammo="BioAmmo", count=25} }, 84 | bonus_ammo = 5, 85 | per = 1 86 | }, 87 | 88 | shock_rifle = 89 | { 90 | pref = 40, 91 | add_prob = 50, 92 | level = 1.3, 93 | 94 | actor_name = "ShockRifle", 95 | attack = "hitscan", 96 | damage = 51, 97 | rate = 0.9, 98 | accuracy = 90, 99 | splash = { 25 }, 100 | ammo = "ShockAmmo", 101 | give = { {ammo="ShockAmmo", count=20} }, 102 | bonus_ammo = 5, 103 | per = 1 104 | }, 105 | 106 | pulse_rifle = 107 | { 108 | pref = 40, 109 | add_prob = 50, 110 | level = 2, 111 | 112 | id = 1340, 113 | actor_name = "PulseGun", 114 | attack = "missile", 115 | damage = 20, 116 | rate = 5, 117 | accuracy = 60, -- low accuracy due to slow projectile and low altfire range 118 | ammo = "PulseAmmo", 119 | give = { {ammo="PulseAmmo", count=60 } }, 120 | bonus_ammo = 15, 121 | per = 1 122 | }, 123 | 124 | ripper = 125 | { 126 | pref = 30, 127 | add_prob = 50, 128 | level = 2.5, 129 | 130 | actor_name = "Ripper2", 131 | attack = "missile", 132 | damage = 67, -- damage adjusted for headshots 133 | rate = 1.2, 134 | accuracy = 75, 135 | ammo = "RipperAmmo", 136 | give = { {ammo="RipperAmmo", count=10} }, 137 | bonus_ammo = 5, 138 | per = 1 139 | }, 140 | 141 | minigun = 142 | { 143 | pref = 70, 144 | add_prob = 50, 145 | hide_prob = 10, 146 | level = 4, 147 | 148 | upgrades = "double_enforcer", 149 | 150 | actor_name = "Minigun", 151 | attack = "hitscan", 152 | damage = 13, 153 | rate = 12, -- adjusted for high-ROF alternate fire 154 | accuracy = 80, 155 | ammo = "MiniAmmo", 156 | give = { {ammo="MiniAmmo", count=50} }, 157 | bonus_ammo = 20, 158 | per = 1 159 | }, 160 | 161 | flak = 162 | { 163 | pref = 80, 164 | add_prob = 50, 165 | hide_prob = 10, 166 | level = 7, 167 | 168 | actor_name = "FlakCannon", 169 | attack = "missile", 170 | damage = 64, 171 | rate = 1.2, 172 | accuracy = 90, 173 | ammo = "FlakAmmo", 174 | splash = {32, 16, 16}, 175 | give = { {ammo="FlakAmmo", count=10} }, 176 | bonus_ammo = 5, 177 | per = 1 178 | }, 179 | 180 | eightball = 181 | { 182 | pref = 70, 183 | add_prob = 50, 184 | level = 7, 185 | 186 | actor_name = "UTRocketLauncher", 187 | attack = "missile", 188 | damage = 110, 189 | rate = 0.8, 190 | splash = {50, 25, 25}, 191 | ammo = "UTRocketAmmo", 192 | give = { {ammo="UTRocketAmmo", count=6} }, 193 | bonus_ammo = 3, 194 | per = 1 195 | }, 196 | 197 | sniper_rifle = 198 | { 199 | pref = 60, 200 | add_prob = 50, 201 | level = 5, 202 | 203 | actor_name = "SniperRifle", 204 | attack = "hitscan", 205 | damage = 75, -- compensating headshots 206 | rate = 1, 207 | accuracy = 95, 208 | ammo = "RifleAmmo", 209 | give = { {ammo="RifleAmmo", count=8} }, 210 | bonus_ammo = 2, 211 | per = 1 212 | }, 213 | 214 | redeemer = 215 | { 216 | pref = 10, 217 | add_prob = 10, 218 | hide_prob = 30, 219 | level = 9, 220 | 221 | actor_name = "WarheadLauncher", 222 | attack = "missile", 223 | damage = 1000, 224 | splash = {1000, 1000, 1000, 1000, 225 | 1000, 1000, 1000, 1000}, 226 | rate = 0.25, 227 | accuracy = 100, 228 | ammo = "WarheadAmmo", 229 | give = { {ammo="WarheadAmmo", count=1} }, 230 | per = 1 231 | } 232 | } 233 | 234 | DOOM_TOURNAMENT.NICE_ITEMS = 235 | { 236 | -- This shouldn't be here? Of course it should! 237 | -- Play Seven Bullets, bruh. 238 | enhanced_shock_rifle = 239 | { 240 | name = "enhanced_shock_rifle", 241 | actor_name = "EnhancedShockRifle", 242 | kind = "powerup", 243 | pref = 10, 244 | add_prob = 8, 245 | secret_prob = 40, 246 | storage_prob = 5, 247 | level = 9, 248 | 249 | --[[attack = "hitscan", 250 | damage = 1000, 251 | rate = 0.9, 252 | accuracy = 90, 253 | ammo = "EnhancedShockAmmo", 254 | give = { {ammo="EnhancedShockAmmo", count=50} }, 255 | bonus_ammo = 5, 256 | per = 1]] 257 | } 258 | } 259 | 260 | DOOM_TOURNAMENT.AMMO = 261 | { 262 | enforcer_clip = 263 | { 264 | actor_name = "EClip", 265 | kind = "ammo", 266 | add_prob = 20, 267 | cluster = {2,5}, 268 | give = { {ammo="MiniAmmo", count=5} } 269 | }, 270 | 271 | minigun_ammo = 272 | { 273 | actor_name = "MiniAmmo", 274 | kind = "ammo", 275 | rank = 2, 276 | add_prob = 40, 277 | closet_prob = 20, 278 | storage_prob = 20, 279 | storage_qty = 2, 280 | cluster = { 1,2 }, 281 | give = { {ammo="MiniAmmo", count=50} } 282 | }, 283 | 284 | bio_ammo = 285 | { 286 | actor_name = "BioAmmo", 287 | kind = "ammo", 288 | add_prob = 40, 289 | closet_prob = 10, 290 | cluster = {1,2}, 291 | give = { {ammo="BioAmmo", count=25} } 292 | }, 293 | 294 | bio_ammo_small = 295 | { 296 | actor_name = "BioAmmo2", 297 | kind = "ammo", 298 | add_prob = 20, 299 | cluster = {2,3}, 300 | give = { {ammo="BioAmmo", count=10} } 301 | }, 302 | 303 | shock_core = 304 | { 305 | actor_name = "ShockAmmo", 306 | kind = "ammo", 307 | add_prob = 40, 308 | closet_prob = 20, 309 | cluster = {1,2}, 310 | give = { {ammo="ShockAmmo", count=10} } 311 | }, 312 | 313 | shock_core_small = 314 | { 315 | actor_name = "ShockAmmo2", 316 | kind = "ammo", 317 | add_prob = 20, 318 | cluster = {1,3}, 319 | give = { {ammo="ShockAmmo", count=3} } 320 | }, 321 | 322 | pulse_battery = 323 | { 324 | actor_name = "PulseAmmo", 325 | kind = "ammo", 326 | add_prob = 40, 327 | closet_prob = 20, 328 | cluster = {3,5}, 329 | give = { {ammo="PulseAmmo", count=10} } 330 | }, 331 | 332 | ripper_ammo = 333 | { 334 | actor_name = "RipperAmmo", 335 | add_prob = 40, 336 | closet_prob = 20, 337 | secret__prob = 5, 338 | storage_prob = 20, 339 | storage_qty = 2, 340 | kind = "ammo", 341 | cluster = {1,3}, 342 | give = { {ammo="RipperAmmo", count=5} } 343 | }, 344 | 345 | flak_box = 346 | { 347 | actor_name = "FlakAmmo", 348 | add_prob = 40, 349 | closet_prob = 20, 350 | secret__prob = 5, 351 | storage_prob = 20, 352 | storage_qty = 2, 353 | kind = "ammo", 354 | give = { {ammo="FlakAmmo", count=10} } 355 | }, 356 | 357 | flak_single = 358 | { 359 | actor_name = "FlakAmmo2", 360 | kind = "ammo", 361 | add_prob = 25, 362 | cluster = {2,5}, 363 | give = { {ammo="FlakAmmo", count=1} } 364 | }, 365 | 366 | rocket_single = 367 | { 368 | actor_name = "UTRocketAmmo2", 369 | kind = "ammo", 370 | add_prob = 25, 371 | cluster = {3,5}, 372 | give = { {ammo="UTRocketAmmo", count=1} } 373 | }, 374 | 375 | rocket_box = 376 | { 377 | actor_name = "UTRocketAmmo", 378 | add_prob = 40, 379 | closet_prob = 20, 380 | secret_prob = 5, 381 | storage_prob = 20, 382 | storage_qty = 2, 383 | kind = "ammo", 384 | give = { {ammo="UTRocketAmmo", count=12} } 385 | }, 386 | 387 | rifle_shot = 388 | { 389 | actor_name = "RifleAmmo2", 390 | add_prob = 20, 391 | storage_prob = 20, 392 | storage_qty = 5, 393 | kind = "ammo", 394 | cluster = {2,5}, 395 | give = { {ammo="RifleAmmo", count=1} } 396 | }, 397 | 398 | rifle_box = 399 | { 400 | actor_name = "RifleAmmo", 401 | add_prob = 40, 402 | closet_prob = 20, 403 | secret_prob = 5, 404 | storage_prob = 20, 405 | storage_qty = 2, 406 | kind = "ammo", 407 | cluster = {1,3}, 408 | give = { {ammo="RifleAmmo", count=10} } 409 | }, 410 | 411 | redeemer_ammo = 412 | { 413 | actor_name = "WarheadAmmo", 414 | rank = 2, 415 | add_prob = 2, 416 | secret_prob = 5, 417 | storage_prob = 2, 418 | storage_qty = 1, 419 | kind = "ammo", 420 | give = { {ammo="WarheadAmmo", count=1} } 421 | }, 422 | 423 | --[[enhanced_shock_core = 424 | { 425 | actor_name = "EnhancedShockAmmo", 426 | rank = 2, 427 | add_prob = 2, 428 | closet_prob = 5, 429 | secret_prob = 1, 430 | kind = "ammo", 431 | cluster = {2,5}, 432 | give = { {ammo="EnhancedShockAmmo", count=5} } 433 | }]] 434 | } 435 | 436 | DOOM_TOURNAMENT.PLAYER_MODEL = 437 | { 438 | utguy = 439 | { 440 | stats = { health=0 }, 441 | weapons = {impacthammer = 1, enforcer = 1} 442 | } 443 | } 444 | 445 | function DOOM_TOURNAMENT.setup() 446 | GAME.PLAYER_MODEL = DOOM_TOURNAMENT.PLAYER_MODEL 447 | 448 | local id_start = DOOM_TOURNAMENT.START_ID 449 | local doomednum_string = "" 450 | local weap_tab = DOOM_TOURNAMENT.WEAPONS 451 | local ammo_tab = DOOM_TOURNAMENT.AMMO 452 | local nice_tab = DOOM_TOURNAMENT.NICE_ITEMS 453 | 454 | 455 | -- Doom Tournament actors have no DoomEdNums, so they 456 | -- are generated here instead 457 | for _,weapon in pairs(weap_tab) do 458 | if weapon.actor_name then 459 | weapon.id = id_start 460 | doomednum_string = doomednum_string .. " " .. id_start .. " = " .. weapon.actor_name .. "\n" 461 | id_start = id_start + 1 462 | end 463 | end 464 | 465 | for _,ammo in pairs(ammo_tab) do 466 | if ammo.actor_name then 467 | ammo.id = id_start 468 | doomednum_string = doomednum_string .. " " .. id_start .. " = " .. ammo.actor_name .. "\n" 469 | id_start = id_start + 1 470 | end 471 | end 472 | 473 | for _,NI in pairs(nice_tab) do 474 | if NI.actor_name then 475 | NI.id = id_start 476 | doomednum_string = doomednum_string .. " " .. id_start .. " = " .. NI.actor_name .. "\n" 477 | id_start = id_start + 1 478 | end 479 | end 480 | 481 | if SCRIPTS.doomednums then 482 | SCRIPTS.doomednums = SCRIPTS.doomednums .. doomednum_string 483 | elseif not SCRIPTS.doomednums then 484 | SCRIPTS.doomednums = doomednum_string 485 | end 486 | 487 | GAME.WEAPONS = weap_tab 488 | 489 | 490 | -- remove only the ammo pickups from 491 | -- the default table since 492 | -- Doom health usage is assumed 493 | local p_tab = {} 494 | local old_p_tab = GAME.PICKUPS 495 | --table.name_up(old_p_tab) 496 | 497 | for name,pickup in pairs(old_p_tab) do 498 | if pickup.kind and pickup.kind ~= "ammo" then 499 | p_tab[name] = pickup 500 | end 501 | end 502 | 503 | table.deep_merge(p_tab, ammo_tab, 3) 504 | 505 | GAME.PICKUPS = p_tab 506 | 507 | 508 | -- remove vanilla weapon pickup references from monsters 509 | local M = GAME.MONSTERS 510 | for _,mon in pairs(M) do 511 | if mon.give then mon.give = nil end 512 | if mon.weap_prefs then mon.weap_prefs = nil end 513 | if mon.weap_needed then mon.weap_needed = nil end 514 | end 515 | GAME.MONSTERS = M 516 | 517 | 518 | -- fix quantities brought by Doom backpack 519 | if GAME.NICE_ITEMS["backpack"] then 520 | GAME.NICE_ITEMS["backpack"].give = { 521 | {ammo = "MiniAmmo", count = 25}, 522 | {ammo = "BioAmmo", count = 15}, 523 | {ammo = "ShockAmmo", count = 5}, 524 | {ammo = "PulseAmmo", count = 10}, 525 | {ammo = "RipperAmmo", count = 5}, 526 | {ammo = "FlakAmmo", count = 5}, 527 | {ammo = "UTRocketAmmo", count = 6}, 528 | {ammo = "RifleAmmo", count = 5} 529 | } 530 | end 531 | 532 | table.deep_merge(GAME.NICE_ITEMS, nice_tab, 3) 533 | end 534 | 535 | 536 | OB_MODULES["DOOM_TOURNAMENT"] = 537 | { 538 | label = _("Doom Tournament Module"), 539 | 540 | side = "right", 541 | priority = -95, 542 | 543 | tooltip = "Adds properly balanced Doom Tournmanent weapon tables to game.", 544 | 545 | hooks = 546 | { 547 | setup = DOOM_TOURNAMENT.setup, 548 | } 549 | } 550 | -------------------------------------------------------------------------------- /addon_delta_resource_pack/games/doom/fabs/wall/d3_interior_tech_walls.d3fabdef: -------------------------------------------------------------------------------- 1 | PREFABS.Wall_d3_tech_bronze_light = --# 2 | { 3 | file = "wall/d3_interior_tech_walls.wad", 4 | map = "MAP01", 5 | 6 | prob = 50, 7 | 8 | group = "d3_tech_bronze_light", 9 | 10 | where = "edge", 11 | height = 136, 12 | deep = 16, 13 | 14 | bound_z1 = 0, 15 | bound_z2 = 136, 16 | 17 | z_fit = "top", 18 | 19 | sector_1 = {[0]=17, [1]=1, [2]=1, [17]=1} 20 | } 21 | 22 | PREFABS.Wall_d3_tech_green_tile_v_lite = 23 | { 24 | template = "Wall_d3_tech_bronze_light", 25 | map = "MAP02", 26 | 27 | group = "d3_tech_green_tile_v_lite", 28 | 29 | height = 128, 30 | 31 | bound_z2 = 128, 32 | } 33 | 34 | PREFABS.Wall_d3_silver_v_lite = 35 | { 36 | template = "Wall_d3_tech_bronze_light", 37 | map = "MAP03", 38 | 39 | group = "d3_tech_silver_v_lite", 40 | 41 | height = 128, 42 | 43 | bound_z2 = 128, 44 | } 45 | 46 | PREFABS.Wall_d3_tech_red_light_cement = 47 | { 48 | template = "Wall_d3_tech_bronze_light", 49 | map = "MAP04", 50 | 51 | group = "d3_tech_red_light_cement", 52 | 53 | height = 136, 54 | 55 | bound_z2 = 136, 56 | } 57 | 58 | PREFABS.Wall_d3_tech_bronze_warn = 59 | { 60 | template = "Wall_d3_tech_bronze_light", 61 | map = "MAP05", 62 | 63 | group = "d3_tech_bronze_warn", 64 | 65 | height = 136, 66 | 67 | bound_z2 = 136, 68 | } 69 | 70 | PREFABS.Wall_d3_tech_comp_machine_light = 71 | { 72 | template = "Wall_d3_tech_bronze_light", 73 | map = "MAP06", 74 | 75 | group = "d3_tech_comp_machine_light", 76 | 77 | height = 104, 78 | 79 | bound_z2 = 104, 80 | 81 | tex_D3METCP2 = 82 | { 83 | D3METCP1 = 10, 84 | D3METCP2 = 5, 85 | } 86 | } 87 | 88 | PREFABS.Wall_d3_tech_comp_tile = 89 | { 90 | template = "Wall_d3_tech_bronze_light", 91 | map = "MAP07", 92 | 93 | group = "d3_tech_comp_tile", 94 | 95 | height = 136, 96 | 97 | tex_D3BRCP1 = 98 | { 99 | D3BRCP1 = 1, 100 | D3BRCP2 = 1, 101 | D3BRCP3 = 1, 102 | D3BRCP4 = 1, 103 | D3BRCP5 = 1, 104 | D3DKCP1 = 1, 105 | D3DKCP2 = 1, 106 | D3DKCP3 = 1, 107 | D3DKCP4 = 1, 108 | D3DKCP5 = 1, 109 | D3DKCP6 = 1, 110 | D3DKCP7 = 1, 111 | D3DKCP8 = 1, 112 | D3DKCP9 = 1 113 | }, 114 | 115 | tex_D3BRCP2 = 116 | { 117 | D3BRCP1 = 1, 118 | D3BRCP2 = 1, 119 | D3BRCP3 = 1, 120 | D3BRCP4 = 1, 121 | D3BRCP5 = 1, 122 | D3DKCP1 = 1, 123 | D3DKCP2 = 1, 124 | D3DKCP3 = 1, 125 | D3DKCP4 = 1, 126 | D3DKCP5 = 1, 127 | D3DKCP6 = 1, 128 | D3DKCP7 = 1, 129 | D3DKCP8 = 1, 130 | D3DKCP9 = 1 131 | } 132 | } 133 | 134 | PREFABS.Wall_d3_tech_comp_tile_cascade = 135 | { 136 | template = "Wall_d3_tech_bronze_light", 137 | map = "MAP08", 138 | 139 | group = "d3_tech_comp_tile_cascade", 140 | 141 | height = 128, 142 | 143 | tex_D3BRCP5 = 144 | { 145 | D3BRCP1 = 1, 146 | D3BRCP2 = 1, 147 | D3BRCP3 = 1, 148 | D3BRCP4 = 1, 149 | D3BRCP5 = 1, 150 | D3DKCP1 = 1, 151 | D3DKCP2 = 1, 152 | D3DKCP3 = 1, 153 | D3DKCP4 = 1, 154 | D3DKCP5 = 1, 155 | D3DKCP6 = 1, 156 | D3DKCP7 = 1, 157 | D3DKCP8 = 1, 158 | D3DKCP9 = 1 159 | }, 160 | 161 | tex_D3DKCP1 = 162 | { 163 | D3BRCP1 = 1, 164 | D3BRCP2 = 1, 165 | D3BRCP3 = 1, 166 | D3BRCP4 = 1, 167 | D3BRCP5 = 1, 168 | D3DKCP1 = 1, 169 | D3DKCP2 = 1, 170 | D3DKCP3 = 1, 171 | D3DKCP4 = 1, 172 | D3DKCP5 = 1, 173 | D3DKCP6 = 1, 174 | D3DKCP7 = 1, 175 | D3DKCP8 = 1, 176 | D3DKCP9 = 1 177 | }, 178 | 179 | bound_z2 = 128 180 | } 181 | 182 | PREFABS.Wall_d3_tech_comp_tile_cascade_diag = 183 | { 184 | template = "Wall_d3_tech_bronze_light", 185 | map = "MAP09", 186 | 187 | group = "d3_tech_comp_tile_cascade", 188 | 189 | where = "diagonal", 190 | 191 | height = 128, 192 | 193 | tex_D3BRCP5 = 194 | { 195 | D3BRCP1 = 1, 196 | D3BRCP2 = 1, 197 | D3BRCP3 = 1, 198 | D3BRCP4 = 1, 199 | D3BRCP5 = 1, 200 | D3DKCP1 = 1, 201 | D3DKCP2 = 1, 202 | D3DKCP3 = 1, 203 | D3DKCP4 = 1, 204 | D3DKCP5 = 1, 205 | D3DKCP6 = 1, 206 | D3DKCP7 = 1, 207 | D3DKCP8 = 1, 208 | D3DKCP9 = 1 209 | }, 210 | 211 | tex_D3DKCP1 = 212 | { 213 | D3BRCP1 = 1, 214 | D3BRCP2 = 1, 215 | D3BRCP3 = 1, 216 | D3BRCP4 = 1, 217 | D3BRCP5 = 1, 218 | D3DKCP1 = 1, 219 | D3DKCP2 = 1, 220 | D3DKCP3 = 1, 221 | D3DKCP4 = 1, 222 | D3DKCP5 = 1, 223 | D3DKCP6 = 1, 224 | D3DKCP7 = 1, 225 | D3DKCP8 = 1, 226 | D3DKCP9 = 1 227 | }, 228 | 229 | bound_z2 = 128 230 | } 231 | 232 | -- 233 | 234 | PREFABS.Wall_d3_tech_blue_machine_row = 235 | { 236 | template = "Wall_d3_tech_bronze_light", 237 | map = "MAP10", 238 | 239 | group = "d3_tech_blue_machine_row", 240 | 241 | height = 112, 242 | 243 | bound_z2 = 112 244 | } 245 | 246 | PREFABS.Wall_d3_tech_blue_machine_row_diag = 247 | { 248 | template = "Wall_d3_tech_bronze_light", 249 | map = "MAP11", 250 | 251 | where = "diagonal", 252 | group = "d3_tech_blue_machine_row", 253 | 254 | height = 112, 255 | 256 | bound_z2 = 112 257 | } 258 | 259 | -- 260 | -- 261 | -- 262 | 263 | PREFABS.Wall_d3_tech_mid_gap_lite = 264 | { 265 | template = "Wall_d3_tech_bronze_light", 266 | map = "MAP12", 267 | 268 | group = "d3_tech_mid_gap_lite", 269 | 270 | height = 72, 271 | 272 | bound_z2 = 72 273 | } 274 | 275 | PREFABS.Wall_d3_tech_mid_gap_lite_diag = 276 | { 277 | template = "Wall_d3_tech_bronze_light", 278 | map = "MAP13", 279 | 280 | where = "diagonal", 281 | group = "d3_tech_mid_gap_lite", 282 | 283 | height = 72, 284 | 285 | bound_z2 = 72 286 | } 287 | 288 | -- 289 | 290 | PREFABS.Wall_d3_tech_mid_gap_lite_alt = 291 | { 292 | template = "Wall_d3_tech_bronze_light", 293 | map = "MAP12", 294 | 295 | group = "d3_tech_mid_gap_lite_alt", 296 | 297 | height = 72, 298 | 299 | bound_z2 = 72, 300 | 301 | tex_D3HLITE3 = "D3HLITEC" 302 | } 303 | 304 | PREFABS.Wall_d3_tech_mid_gap_lite_alt_diag = 305 | { 306 | template = "Wall_d3_tech_bronze_light", 307 | map = "MAP13", 308 | 309 | where = "diagonal", 310 | group = "d3_tech_mid_gap_lite_alt", 311 | 312 | height = 72, 313 | 314 | bound_z2 = 72, 315 | 316 | tex_D3HLITE3 = "D3HLITEC" 317 | } 318 | 319 | -- 320 | 321 | PREFABS.Wall_d3_tech_mid_gap_lite_red = 322 | { 323 | template = "Wall_d3_tech_bronze_light", 324 | map = "MAP12", 325 | 326 | group = "d3_tech_mid_gap_lite_red", 327 | 328 | height = 72, 329 | 330 | bound_z2 = 72, 331 | 332 | tex_D3HLITE3 = "D3HLITE6" 333 | } 334 | 335 | PREFABS.Wall_d3_tech_mid_gap_lite_red_diag = 336 | { 337 | template = "Wall_d3_tech_bronze_light", 338 | map = "MAP13", 339 | 340 | where = "diagonal", 341 | group = "d3_tech_mid_gap_lite_red", 342 | 343 | height = 72, 344 | 345 | bound_z2 = 72, 346 | 347 | tex_D3HLITE3 = "D3HLITE6" 348 | } 349 | 350 | -- 351 | 352 | PREFABS.Wall_d3_tech_mid_gap_lite_yellow = 353 | { 354 | template = "Wall_d3_tech_bronze_light", 355 | map = "MAP12", 356 | 357 | group = "d3_tech_mid_gap_lite_yellow", 358 | 359 | height = 72, 360 | 361 | bound_z2 = 72, 362 | 363 | tex_D3HLITE3 = "D3HLITE8" 364 | } 365 | 366 | PREFABS.Wall_d3_tech_mid_gap_lite_yellow_diag = 367 | { 368 | template = "Wall_d3_tech_bronze_light", 369 | map = "MAP13", 370 | 371 | where = "diagonal", 372 | group = "d3_tech_mid_gap_lite_yellow", 373 | 374 | height = 72, 375 | 376 | bound_z2 = 72, 377 | 378 | tex_D3HLITE3 = "D3HLITE8" 379 | } 380 | 381 | -- 382 | 383 | PREFABS.Wall_d3_tech_pockmarked = 384 | { 385 | template = "Wall_d3_tech_bronze_light", 386 | map = "MAP14", 387 | 388 | group = "d3_tech_pockmarked", 389 | 390 | height = 80, 391 | 392 | bound_z2 = 80 393 | } 394 | 395 | PREFABS.Wall_d3_tech_pockmarked_diag = 396 | { 397 | template = "Wall_d3_tech_bronze_light", 398 | map = "MAP15", 399 | 400 | where = "diagonal", 401 | group = "d3_tech_pockmarked", 402 | 403 | height = 80, 404 | 405 | bound_z2 = 80 406 | } 407 | 408 | -- 409 | 410 | PREFABS.Wall_d3_tech_silverbottom_brown_lite = 411 | { 412 | template = "Wall_d3_tech_bronze_light", 413 | map = "MAP16", 414 | 415 | group = "d3_tech_silverbottom_brown_lite", 416 | 417 | height = 96, 418 | 419 | bound_z2 = 96 420 | } 421 | 422 | PREFABS.Wall_d3_tech_silverbottom_brown_lite_diag = 423 | { 424 | template = "Wall_d3_tech_bronze_light", 425 | map = "MAP17", 426 | 427 | where = "diagonal", 428 | group = "d3_tech_silverbottom_brown_lite", 429 | 430 | height = 96, 431 | 432 | bound_z2 = 96, 433 | } 434 | 435 | -- 436 | 437 | PREFABS.Wall_d3_tech_flourescent_caution = 438 | { 439 | template = "Wall_d3_tech_bronze_light", 440 | map = "MAP18", 441 | 442 | group = "d3_tech_flourescent_caution", 443 | 444 | height = 128, 445 | 446 | bound_z2 = 128, 447 | } 448 | 449 | PREFABS.Wall_d3_tech_flourescent_caution_diag = 450 | { 451 | template = "Wall_d3_tech_bronze_light", 452 | map = "MAP19", 453 | 454 | where = "diagonal", 455 | group = "d3_tech_flourescent_caution", 456 | 457 | height = 128, 458 | 459 | bound_z2 = 128, 460 | } 461 | 462 | -- 463 | 464 | PREFABS.Wall_d3_tech_green_monitor_row = 465 | { 466 | template = "Wall_d3_tech_bronze_light", 467 | map = "MAP20", 468 | 469 | group = "d3_tech_green_monitor_rows", 470 | 471 | height = 96, 472 | 473 | bound_z2 = 96, 474 | 475 | tex_D3MONTR1 = {D3MONTR1=1, D3MONTR2=1}, 476 | tex_D3DKCP4 = {D3DKCP4=1, D3DKCP5=1, D3DKCP9=2}, 477 | tex_D3DKCP5 = {D3DKCP4=1, D3DKCP5=1, D3DKCP9=2} 478 | } 479 | 480 | PREFABS.Wall_d3_tech_green_monitor_row_diag = 481 | { 482 | template = "Wall_d3_tech_bronze_light", 483 | map = "MAP21", 484 | 485 | group = "d3_tech_green_monitor_rows", 486 | where = "diagonal", 487 | 488 | height = 96, 489 | 490 | bound_z2 = 96, 491 | 492 | tex_D3MONTR1 = {D3MONTR1=1, D3MONTR2=1} 493 | } 494 | 495 | -- 496 | 497 | PREFABS.Wall_d3_tech_door_thing_bronze_lite = 498 | { 499 | template = "Wall_d3_tech_bronze_light", 500 | map = "MAP22", 501 | 502 | group = "d3_tech_door_thing_bronze_lite", 503 | 504 | height = 120, 505 | 506 | bound_z2 = 120 507 | } 508 | 509 | PREFABS.Wall_d3_tech_door_thing_bronze_lite_diag = 510 | { 511 | template = "Wall_d3_tech_bronze_light", 512 | map = "MAP23", 513 | 514 | group = "d3_tech_door_thing_bronze_lite", 515 | where = "diagonal", 516 | 517 | height = 120, 518 | 519 | bound_z2 = 120 520 | } 521 | 522 | -- 523 | 524 | PREFABS.Wall_d3_tech_fried_chicken_lights = 525 | { 526 | template = "Wall_d3_tech_bronze_light", 527 | map = "MAP24", 528 | 529 | group = "d3_fried_chicken_lights", 530 | 531 | height = 112, 532 | 533 | bound_z2 = 112 534 | } 535 | 536 | PREFABS.Wall_d3_tech_fried_chicken_lights_diag = 537 | { 538 | template = "Wall_d3_tech_bronze_light", 539 | map = "MAP25", 540 | 541 | group = "d3_fried_chicken_lights", 542 | where = "diagonal", 543 | 544 | height = 112, 545 | 546 | bound_z2 = 112 547 | } 548 | 549 | -- 550 | 551 | PREFABS.Wall_d3_grid_light_green_bands = 552 | { 553 | template = "Wall_d3_tech_bronze_light", 554 | map = "MAP26", 555 | 556 | group = "d3_grid_light_green_bands", 557 | 558 | height = 128, 559 | 560 | bound_z2 = 128 561 | } 562 | 563 | PREFABS.Wall_d3_grid_light_green_bands_diag = 564 | { 565 | template = "Wall_d3_tech_bronze_light", 566 | map = "MAP27", 567 | 568 | group = "d3_grid_light_green_bands", 569 | where = "diagonal", 570 | 571 | height = 128, 572 | 573 | bound_z2 = 128 574 | } 575 | 576 | -- 577 | 578 | PREFABS.Wall_d3_tetromino_grate = 579 | { 580 | template = "Wall_d3_tech_bronze_light", 581 | map = "MAP28", 582 | 583 | group = "d3_tetromino_grate", 584 | 585 | height = 112, 586 | 587 | bound_z2 = 112 588 | } 589 | 590 | PREFABS.Wall_d3_tetromino_grate_diag = 591 | { 592 | template = "Wall_d3_tech_bronze_light", 593 | map = "MAP29", 594 | 595 | group = "d3_tetromino_grate", 596 | where = "diagonal", 597 | 598 | height = 112, 599 | 600 | bound_z2 = 112 601 | } 602 | 603 | -- 604 | 605 | PREFABS.Wall_d3_tech_grey_girder_lite_banded = 606 | { 607 | template = "Wall_d3_tech_bronze_light", 608 | map = "MAP30", 609 | 610 | group = "d3_tech_grey_girder_lite_banded", 611 | 612 | height = 128, 613 | 614 | bound_z2 = 128 615 | } 616 | 617 | PREFABS.Wall_d3_tech_grey_girder_lite_banded_diag = 618 | { 619 | template = "Wall_d3_tech_bronze_light", 620 | map = "MAP31", 621 | 622 | group = "d3_tech_grey_girder_lite_banded", 623 | where = "diagonal", 624 | 625 | height = 128, 626 | 627 | bound_z2 = 128 628 | } 629 | 630 | -- 631 | 632 | PREFABS.Wall_d3_tech_blue_banding = 633 | { 634 | template = "Wall_d3_tech_bronze_light", 635 | map = "MAP32", 636 | 637 | group = "d3_tech_blue_banding", 638 | 639 | height = 128, 640 | 641 | bound_z2 = 128 642 | } 643 | 644 | PREFABS.Wall_d3_tech_blue_banding_diag = 645 | { 646 | template = "Wall_d3_tech_bronze_light", 647 | map = "MAP33", 648 | 649 | group = "d3_tech_blue_banding", 650 | where = "diagonal", 651 | 652 | height = 128, 653 | 654 | bound_z2 = 128 655 | } 656 | 657 | -- 658 | 659 | PREFABS.Wall_d3_tech_brown_cantilever = 660 | { 661 | template = "Wall_d3_tech_bronze_light", 662 | map = "MAP34", 663 | 664 | group = "d3_tech_brown_cantilever", 665 | 666 | height = 128, 667 | 668 | bound_z2 = 128 669 | } 670 | 671 | PREFABS.Wall_d3_tech_brown_cantilever_diag = 672 | { 673 | template = "Wall_d3_tech_bronze_light", 674 | map = "MAP35", 675 | 676 | group = "d3_tech_brown_cantilever", 677 | where = "diagonal", 678 | 679 | height = 128, 680 | 681 | bound_z2 = 128 682 | } 683 | 684 | --# 685 | 686 | PREFABS.Wall_d3_tech_brown_girder = 687 | { 688 | template = "Wall_d3_tech_bronze_light", 689 | map = "MAP36", 690 | 691 | group = "d3_tech_brown_girder", 692 | 693 | height = 96, 694 | bound_z2 = 96, 695 | 696 | z_fit = "top" 697 | } 698 | 699 | PREFABS.Wall_d3_tech_brown_girder_diag = 700 | { 701 | template = "Wall_d3_tech_bronze_light", 702 | map = "MAP37", 703 | 704 | group = "d3_tech_brown_girder", 705 | where = "diagonal", 706 | 707 | height = 96, 708 | bound_z2 = 96, 709 | 710 | z_fit = "top" 711 | } 712 | -------------------------------------------------------------------------------- /addon_realm_667_lua_54/modules/realm667_weapons.lua: -------------------------------------------------------------------------------- 1 | REALM667W = { } 2 | 3 | REALM667W.WEAPONS = 4 | { 5 | GrenadeLauncher40mm = 6 | { 7 | id = 29010, 8 | level = 4, 9 | pref = 5, 10 | add_prob = 1, 11 | hide_prob = 80, 12 | attack = "hitscan", 13 | rate = 0.9, 14 | damage = 10, 15 | ammo = "bullet", 16 | per = 1, 17 | }, 18 | AA12 = 19 | { 20 | id = 29604, 21 | level = 8, 22 | pref = 2, 23 | add_prob = 1, 24 | hide_prob = 80, 25 | attack = "hitscan", 26 | rate = 0.9, 27 | damage = 10, 28 | ammo = "shell", 29 | per = 1, 30 | }, 31 | ActionMachineGun = 32 | { 33 | id = 29124, 34 | level = 4, 35 | pref = 5, 36 | add_prob = 1, 37 | hide_prob = 80, 38 | attack = "hitscan", 39 | rate = 0.9, 40 | damage = 10, 41 | ammo = "bullet", 42 | per = 1, 43 | }, 44 | AK47 = 45 | { 46 | id = 29125, 47 | level = 4, 48 | pref = 5, 49 | add_prob = 1, 50 | hide_prob = 80, 51 | attack = "hitscan", 52 | rate = 0.9, 53 | damage = 10, 54 | ammo = "bullet", 55 | per = 1, 56 | }, 57 | AlphaUnmaker = 58 | { 59 | id = 29263, 60 | level = 8, 61 | pref = 5, 62 | add_prob = 1, 63 | hide_prob = 80, 64 | attack = "hitscan", 65 | rate = 0.9, 66 | damage = 10, 67 | ammo = "bullet", 68 | per = 1, 69 | }, 70 | --disabled by default 71 | AngledPistol = 72 | { 73 | id = 29128, 74 | level = 1, 75 | pref = 5, 76 | add_prob = 0, 77 | hide_prob = 80, 78 | attack = "hitscan", 79 | rate = 0.9, 80 | damage = 10, 81 | ammo = "bullet", 82 | per = 1, 83 | }, 84 | Autogun = 85 | { 86 | id = 29130, 87 | level = 6, 88 | pref = 5, 89 | add_prob = 1, 90 | hide_prob = 80, 91 | attack = "hitscan", 92 | rate = 0.9, 93 | damage = 10, 94 | ammo = "bullet", 95 | per = 1, 96 | }, 97 | AutoShot = 98 | { 99 | id = 5664, 100 | level = 4, 101 | pref = 5, 102 | add_prob = 1, 103 | hide_prob = 80, 104 | attack = "hitscan", 105 | rate = 0.9, 106 | damage = 10, 107 | ammo = "shell", 108 | per = 1, 109 | }, 110 | --disabled by default 111 | Axe = 112 | { 113 | id = 29131, 114 | level = 1, 115 | pref = 5, 116 | add_prob = 0, 117 | hide_prob = 80, 118 | attack = "hitscan", 119 | rate = 0.9, 120 | damage = 10, 121 | ammo = "bullet", 122 | per = 1, 123 | }, 124 | --disabled by default 125 | BayonetRifle = 126 | { 127 | id = 29132, 128 | level = 1, 129 | pref = 5, 130 | add_prob = 0, 131 | hide_prob = 80, 132 | attack = "hitscan", 133 | rate = 0.9, 134 | damage = 10, 135 | ammo = "bullet", 136 | per = 1, 137 | }, 138 | BFG2704 = 139 | { 140 | id = 29140, 141 | level = 7, 142 | pref = 5, 143 | add_prob = 1, 144 | hide_prob = 80, 145 | attack = "hitscan", 146 | rate = 0.9, 147 | damage = 10, 148 | ammo = "cell", 149 | per = 1, 150 | }, 151 | BHGen = 152 | { 153 | id = 29150, 154 | level = 6, 155 | pref = 5, 156 | add_prob = 1, 157 | hide_prob = 80, 158 | attack = "hitscan", 159 | rate = 0.9, 160 | damage = 10, 161 | ammo = "bullet", 162 | per = 1, 163 | }, 164 | BioPipebombLauncher = 165 | { 166 | id = 29141, 167 | level = 3, 168 | pref = 5, 169 | add_prob = 1, 170 | hide_prob = 80, 171 | attack = "hitscan", 172 | rate = 0.9, 173 | damage = 10, 174 | ammo = "bullet", 175 | per = 1, 176 | }, 177 | Bolter = 178 | { 179 | id = 17376, 180 | level = 8, 181 | pref = 5, 182 | add_prob = 1, 183 | hide_prob = 80, 184 | attack = "hitscan", 185 | rate = 0.9, 186 | damage = 10, 187 | ammo = "bullet", 188 | per = 1, 189 | }, 190 | --BratwurstWeapons.wad start 191 | --WolfKnife disabled by default 192 | WolfKnife = 193 | { 194 | id = 17446, 195 | level = 1, 196 | pref = 5, 197 | add_prob = 0, 198 | hide_prob = 80, 199 | attack = "melee", 200 | rate = 0.9, 201 | damage = 10, 202 | ammo = "bullet", 203 | per = 1, 204 | }, 205 | WolfPistol = 206 | { 207 | id = 17440, 208 | level = 2, 209 | pref = 5, 210 | add_prob = 1, 211 | hide_prob = 80, 212 | attack = "melee", 213 | rate = 0.9, 214 | damage = 10, 215 | ammo = "bullet", 216 | per = 1, 217 | }, 218 | WolfMachineGun = 219 | { 220 | id = 17441, 221 | level = 3, 222 | pref = 5, 223 | add_prob = 1, 224 | hide_prob = 80, 225 | attack = "melee", 226 | rate = 0.9, 227 | damage = 10, 228 | ammo = "bullet", 229 | per = 1, 230 | }, 231 | WolfGatlingGun = 232 | { 233 | id = 17442, 234 | level = 4, 235 | pref = 5, 236 | add_prob = 1, 237 | hide_prob = 80, 238 | attack = "melee", 239 | rate = 0.9, 240 | damage = 10, 241 | ammo = "bullet", 242 | per = 1, 243 | }, 244 | --BratwurstWeapons.wad end 245 | BRPS = 246 | { 247 | id = 17363, 248 | level = 4, 249 | pref = 5, 250 | add_prob = 1, 251 | hide_prob = 80, 252 | attack = "hitscan", 253 | rate = 0.9, 254 | damage = 10, 255 | ammo = "cell", 256 | per = 1, 257 | }, 258 | Butchergun = 259 | { 260 | id = 29151, 261 | level = 5, 262 | pref = 5, 263 | add_prob = 1, 264 | hide_prob = 80, 265 | attack = "hitscan", 266 | rate = 0.9, 267 | damage = 10, 268 | ammo = "bullet", 269 | per = 1, 270 | }, 271 | Channeler = 272 | { 273 | id = 29152, 274 | level = 7, 275 | pref = 5, 276 | add_prob = 1, 277 | hide_prob = 80, 278 | attack = "hitscan", 279 | rate = 0.9, 280 | damage = 10, 281 | ammo = "cell", 282 | per = 1, 283 | }, 284 | --disabled by default 285 | ClaymoreMine = 286 | { 287 | id = 10200, 288 | level = 1, 289 | pref = 5, 290 | add_prob = 0, 291 | hide_prob = 80, 292 | attack = "hitscan", 293 | rate = 0.9, 294 | damage = 10, 295 | ammo = "bullet", 296 | per = 1, 297 | }, 298 | Coachgun = 299 | { 300 | id = 29160, 301 | level = 3, 302 | pref = 5, 303 | add_prob = 1, 304 | hide_prob = 80, 305 | attack = "hitscan", 306 | rate = 0.9, 307 | damage = 10, 308 | ammo = "bullet", 309 | per = 1, 310 | }, 311 | Colt45 = 312 | { 313 | id = 5757, 314 | level = 2, 315 | pref = 5, 316 | add_prob = 1, 317 | hide_prob = 80, 318 | attack = "hitscan", 319 | rate = 0.9, 320 | damage = 10, 321 | ammo = "bullet", 322 | per = 1, 323 | }, 324 | CryoBow = 325 | { 326 | id = 29161, 327 | level = 9, 328 | pref = 5, 329 | add_prob = 1, 330 | hide_prob = 80, 331 | attack = "hitscan", 332 | rate = 0.9, 333 | damage = 10, 334 | ammo = "cell", 335 | per = 1, 336 | }, 337 | --disabled by default 338 | D2C_Pipebomb = 339 | { 340 | id = 25018, 341 | level = 1, 342 | pref = 5, 343 | add_prob = 0, 344 | hide_prob = 80, 345 | attack = "hitscan", 346 | rate = 0.9, 347 | damage = 10, 348 | ammo = "bullet", 349 | per = 1, 350 | }, 351 | DemonicLeech = 352 | { 353 | id = 29170, 354 | level = 2, 355 | pref = 5, 356 | add_prob = 1, 357 | hide_prob = 80, 358 | attack = "hitscan", 359 | rate = 0.9, 360 | damage = 10, 361 | ammo = "bullet", 362 | per = 1, 363 | }, 364 | DesertEagle = 365 | { 366 | id = 425, 367 | level = 3, 368 | pref = 5, 369 | add_prob = 1, 370 | hide_prob = 80, 371 | attack = "hitscan", 372 | rate = 0.9, 373 | damage = 10, 374 | ammo = "bullet", 375 | per = 1, 376 | }, 377 | DGL = 378 | { 379 | id = 29173, 380 | level = 5, 381 | pref = 5, 382 | add_prob = 1, 383 | hide_prob = 80, 384 | attack = "hitscan", 385 | rate = 0.9, 386 | damage = 10, 387 | ammo = "bullet", 388 | per = 1, 389 | }, 390 | Doom3SSG = 391 | { 392 | id = 29171, 393 | level = 3, 394 | pref = 5, 395 | add_prob = 1, 396 | hide_prob = 80, 397 | attack = "hitscan", 398 | rate = 0.9, 399 | damage = 10, 400 | ammo = "shell", 401 | per = 1 402 | }, 403 | DoubleBladedChainsaw = 404 | { 405 | id = 29172, 406 | level = 2, 407 | pref = 5, 408 | add_prob = 1, 409 | hide_prob = 80, 410 | attack = "hitscan", 411 | rate = 0.9, 412 | damage = 10, 413 | ammo = "bullet", 414 | per = 1, 415 | }, 416 | DualLaser = 417 | { 418 | id = 5666, 419 | level = 4, 420 | pref = 5, 421 | add_prob = 1, 422 | hide_prob = 80, 423 | attack = "hitscan", 424 | rate = 0.9, 425 | damage = 10, 426 | ammo = "cell", 427 | per = 1, 428 | }, 429 | DukePistol = 430 | { 431 | id = 17392, 432 | level = 3, 433 | pref = 5, 434 | add_prob = 1, 435 | hide_prob = 80, 436 | attack = "hitscan", 437 | rate = 0.9, 438 | damage = 10, 439 | ammo = "bullet", 440 | per = 1, 441 | }, 442 | DukeShotgun = 443 | { 444 | id = 29174, 445 | level = 2, 446 | pref = 5, 447 | add_prob = 1, 448 | hide_prob = 80, 449 | attack = "hitscan", 450 | rate = 0.9, 451 | damage = 10, 452 | ammo = "shell", 453 | per = 1, 454 | }, 455 | EgoSmasher = 456 | { 457 | id = 29175, 458 | level = 10, 459 | pref = 5, 460 | add_prob = 1, 461 | hide_prob = 80, 462 | attack = "hitscan", 463 | rate = 0.9, 464 | damage = 10, 465 | ammo = "bullet", 466 | per = 1, 467 | }, 468 | ElectroGun = 469 | { 470 | id = 29176, 471 | level = 5, 472 | pref = 5, 473 | add_prob = 1, 474 | hide_prob = 80, 475 | attack = "hitscan", 476 | rate = 0.9, 477 | damage = 10, 478 | ammo = "cell", 479 | per = 1, 480 | }, 481 | EMSRifle = 482 | { 483 | id = 29177, 484 | level = 4, 485 | pref = 5, 486 | add_prob = 1, 487 | hide_prob = 80, 488 | attack = "hitscan", 489 | rate = 0.9, 490 | damage = 10, 491 | ammo = "cell", 492 | per = 1, 493 | }, 494 | --disabled by default 495 | FistRedux = 496 | { 497 | id = 29178, 498 | level = 1, 499 | pref = 5, 500 | add_prob = 0, 501 | hide_prob = 80, 502 | attack = "hitscan", 503 | rate = 0.9, 504 | damage = 10, 505 | ammo = "bullet", 506 | per = 1, 507 | }, 508 | FistsOfFury = 509 | { 510 | id = 17384, 511 | level = 1, 512 | pref = 5, 513 | add_prob = 0, 514 | hide_prob = 80, 515 | attack = "hitscan", 516 | rate = 0.9, 517 | damage = 10, 518 | ammo = "bullet", 519 | per = 1, 520 | }, 521 | FlakCannon = 522 | { 523 | id = 2052, 524 | level = 3, 525 | pref = 5, 526 | add_prob = 1, 527 | hide_prob = 80, 528 | attack = "hitscan", 529 | rate = 0.9, 530 | damage = 10, 531 | ammo = "shell", 532 | per = 1, 533 | }, 534 | -- disabled by default 535 | FlashLightAngled = 536 | { 537 | id = 29182, 538 | level = 1, 539 | pref = 5, 540 | add_prob = 0, 541 | hide_prob = 80, 542 | attack = "hitscan", 543 | rate = 0.9, 544 | damage = 10, 545 | ammo = "bullet", 546 | per = 1, 547 | }, 548 | -- disabled by default 549 | FragGrenade = 550 | { 551 | id = 11907, 552 | level = 1, 553 | pref = 5, 554 | add_prob = 0, 555 | hide_prob = 80, 556 | attack = "hitscan", 557 | rate = 0.9, 558 | damage = 10, 559 | ammo = "bullet", 560 | per = 1, 561 | }, 562 | FreezeRifle = 563 | { 564 | id = 29183, 565 | level = 5, 566 | pref = 5, 567 | add_prob = 1, 568 | hide_prob = 80, 569 | attack = "hitscan", 570 | rate = 0.9, 571 | damage = 10, 572 | ammo = "cell", 573 | per = 1, 574 | }, 575 | GasGun = 576 | { 577 | id = 20039, 578 | level = 4, 579 | pref = 5, 580 | add_prob = 1, 581 | hide_prob = 80, 582 | attack = "hitscan", 583 | rate = 0.9, 584 | damage = 10, 585 | ammo = "bullet", 586 | per = 1, 587 | }, 588 | GatLaser = 589 | { 590 | id = 6570, 591 | level = 6, 592 | pref = 5, 593 | add_prob = 1, 594 | hide_prob = 80, 595 | attack = "hitscan", 596 | rate = 0.9, 597 | damage = 10, 598 | ammo = "cell", 599 | per = 1, 600 | }, 601 | Glock18 = 602 | { 603 | id = 29184, 604 | level = 3, 605 | pref = 5, 606 | add_prob = 1, 607 | hide_prob = 80, 608 | attack = "hitscan", 609 | rate = 0.9, 610 | damage = 10, 611 | ammo = "bullet", 612 | per = 1, 613 | }, 614 | --disabled by default 615 | HandGrenade = 616 | { 617 | id = 25099, 618 | level = 1, 619 | pref = 5, 620 | add_prob = 0, 621 | hide_prob = 80, 622 | attack = "hitscan", 623 | rate = 0.9, 624 | damage = 10, 625 | ammo = "bullet", 626 | per = 1, 627 | }, 628 | --disabled by default 629 | HeavyCarbine = 630 | { 631 | id = 20212, 632 | level = 5, 633 | pref = 5, 634 | add_prob = 0, 635 | hide_prob = 80, 636 | attack = "hitscan", 637 | rate = 0.9, 638 | damage = 10, 639 | ammo = "bullet", 640 | per = 1, 641 | }, 642 | HeavyChaingun = 643 | { 644 | id = 29605, 645 | level = 5, 646 | pref = 5, 647 | add_prob = 1, 648 | hide_prob = 80, 649 | attack = "hitscan", 650 | rate = 0.9, 651 | damage = 10, 652 | ammo = "bullet", 653 | per = 1, 654 | }, 655 | HeavyMachineGun = 656 | { 657 | id = 602, 658 | level = 5, 659 | pref = 5, 660 | add_prob = 1, 661 | hide_prob = 80, 662 | attack = "hitscan", 663 | rate = 0.9, 664 | damage = 10, 665 | ammo = "bullet", 666 | per = 1, 667 | }, 668 | HeavyRifle = 669 | { 670 | id = 25035, 671 | level = 10, 672 | pref = 5, 673 | add_prob = 1, 674 | hide_prob = 80, 675 | attack = "hitscan", 676 | rate = 0.9, 677 | damage = 10, 678 | ammo = "bullet", 679 | per = 1, 680 | }, 681 | HellstormCannon = 682 | { 683 | id = 29187, 684 | level = 4, 685 | pref = 5, 686 | add_prob = 1, 687 | hide_prob = 80, 688 | attack = "hitscan", 689 | rate = 0.9, 690 | damage = 10, 691 | ammo = "bullet", 692 | per = 1, 693 | }, 694 | HuntingRifle = 695 | { 696 | id = 29190, 697 | level = 7, 698 | pref = 5, 699 | add_prob = 1, 700 | hide_prob = 80, 701 | attack = "hitscan", 702 | rate = 0.9, 703 | damage = 10, 704 | ammo = "bullet", 705 | per = 1, 706 | }, 707 | iGun = 708 | { 709 | id = 29191, 710 | level = 2, 711 | pref = 5, 712 | add_prob = 1, 713 | hide_prob = 80, 714 | attack = "hitscan", 715 | rate = 0.9, 716 | damage = 10, 717 | ammo = "bullet", 718 | per = 1, 719 | }, 720 | Ionspray = 721 | { 722 | id = 29192, 723 | level = 6, 724 | pref = 5, 725 | add_prob = 1, 726 | hide_prob = 80, 727 | attack = "hitscan", 728 | rate = 0.9, 729 | damage = 10, 730 | ammo = "bullet", 731 | per = 1, 732 | }, 733 | Karasawa = 734 | { 735 | id = 29193, 736 | level = 4, 737 | pref = 5, 738 | add_prob = 1, 739 | hide_prob = 80, 740 | attack = "hitscan", 741 | rate = 0.9, 742 | damage = 10, 743 | ammo = "cell", 744 | per = 1, 745 | }, 746 | KDiZDGrenadeLauncher = 747 | { 748 | id = 29186, 749 | level = 4, 750 | pref = 5, 751 | add_prob = 1, 752 | hide_prob = 80, 753 | attack = "hitscan", 754 | rate = 0.9, 755 | damage = 10, 756 | ammo = "bullet", 757 | per = 1, 758 | }, 759 | KDiZDSuperShotgun = 760 | { 761 | id = 29257, 762 | level = 4, 763 | pref = 5, 764 | add_prob = 1, 765 | hide_prob = 80, 766 | attack = "hitscan", 767 | rate = 0.9, 768 | damage = 10, 769 | ammo = "bullet", 770 | per = 1, 771 | }, 772 | -- disabled by default 773 | Knife = 774 | { 775 | id = 29194, 776 | level = 1, 777 | pref = 5, 778 | add_prob = 0, 779 | hide_prob = 80, 780 | attack = "hitscan", 781 | rate = 0.9, 782 | damage = 10, 783 | ammo = "bullet", 784 | per = 1, 785 | }, 786 | -- disabled by default 787 | LandMineLayer = 788 | { 789 | id = 29195, 790 | level = 1, 791 | pref = 5, 792 | add_prob = 0, 793 | hide_prob = 80, 794 | attack = "hitscan", 795 | rate = 0.9, 796 | damage = 10, 797 | ammo = "bullet", 798 | per = 1, 799 | }, 800 | LaserCannon = 801 | { 802 | id = 29197, 803 | level = 4, 804 | pref = 5, 805 | add_prob = 1, 806 | hide_prob = 80, 807 | attack = "hitscan", 808 | rate = 0.9, 809 | damage = 10, 810 | ammo = "cell", 811 | per = 1, 812 | }, 813 | LightMachinegun = 814 | { 815 | id = 601, 816 | level = 3, 817 | pref = 5, 818 | add_prob = 1, 819 | hide_prob = 80, 820 | attack = "hitscan", 821 | rate = 0.9, 822 | damage = 10, 823 | ammo = "cell", 824 | per = 1, 825 | }, 826 | M16 = 827 | { 828 | id = 29198, 829 | level = 4, 830 | pref = 5, 831 | add_prob = 1, 832 | hide_prob = 80, 833 | attack = "hitscan", 834 | rate = 0.9, 835 | damage = 10, 836 | ammo = "bullet", 837 | per = 1, 838 | }, 839 | M40Rifle = 840 | { 841 | id = 29199, 842 | level = 2, 843 | pref = 5, 844 | add_prob = 1, 845 | hide_prob = 80, 846 | attack = "hitscan", 847 | rate = 0.9, 848 | damage = 10, 849 | ammo = "bullet", 850 | per = 1, 851 | }, 852 | M79 = 853 | { 854 | id = 29202, 855 | level = 4, 856 | pref = 5, 857 | add_prob = 1, 858 | hide_prob = 80, 859 | attack = "hitscan", 860 | rate = 0.9, 861 | damage = 10, 862 | ammo = "bullet", 863 | per = 1, 864 | }, 865 | --disabled by default 866 | Machete = 867 | { 868 | id = 29205, 869 | level = 1, 870 | pref = 5, 871 | add_prob = 0, 872 | hide_prob = 80, 873 | attack = "hitscan", 874 | rate = 0.9, 875 | damage = 10, 876 | ammo = "bullet", 877 | per = 1, 878 | }, 879 | Machinegun = 880 | { 881 | id = 29206, 882 | level = 3, 883 | pref = 5, 884 | add_prob = 1, 885 | hide_prob = 80, 886 | attack = "hitscan", 887 | rate = 0.9, 888 | damage = 10, 889 | ammo = "bullet", 890 | per = 1, 891 | }, 892 | Mag60 = 893 | { 894 | id = 5509, 895 | level = 3, 896 | pref = 5, 897 | add_prob = 1, 898 | hide_prob = 80, 899 | attack = "hitscan", 900 | rate = 0.9, 901 | damage = 10, 902 | ammo = "bullet", 903 | per = 1, 904 | }, 905 | MancubusArm = 906 | { 907 | id = 29207, 908 | level = 2, 909 | pref = 5, 910 | add_prob = 1, 911 | hide_prob = 80, 912 | attack = "hitscan", 913 | rate = 0.9, 914 | damage = 10, 915 | ammo = "bullet", 916 | per = 1, 917 | }, 918 | DualMancubusArm = 919 | { 920 | id = 29208, 921 | level = 2, 922 | pref = 5, 923 | add_prob = 1, 924 | hide_prob = 80, 925 | attack = "hitscan", 926 | rate = 0.9, 927 | damage = 10, 928 | ammo = "bullet", 929 | per = 1, 930 | }, 931 | MicroUzi = 932 | { 933 | id = 29606, 934 | level = 3, 935 | pref = 5, 936 | add_prob = 1, 937 | hide_prob = 80, 938 | attack = "hitscan", 939 | rate = 0.9, 940 | damage = 10, 941 | ammo = "bullet", 942 | per = 1, 943 | }, 944 | model1887 = 945 | { 946 | id = 29210, 947 | level = 3, 948 | pref = 5, 949 | add_prob = 1, 950 | hide_prob = 80, 951 | attack = "hitscan", 952 | rate = 0.9, 953 | damage = 10, 954 | ammo = "bullet", 955 | per = 1, 956 | }, 957 | --disabled by default 958 | MP40 = 959 | { 960 | id = 12400, 961 | level = 2, 962 | pref = 5, 963 | add_prob = 0, 964 | hide_prob = 80, 965 | attack = "hitscan", 966 | rate = 0.9, 967 | damage = 10, 968 | ammo = "bullet", 969 | per = 1, 970 | }, 971 | MP5 = 972 | { 973 | id = 29211, 974 | level = 4, 975 | pref = 5, 976 | add_prob = 1, 977 | hide_prob = 80, 978 | attack = "hitscan", 979 | rate = 0.9, 980 | damage = 10, 981 | ammo = "bullet", 982 | per = 1, 983 | }, 984 | NailGunMG = 985 | { 986 | id = 29212, 987 | level = 4, 988 | pref = 5, 989 | add_prob = 1, 990 | hide_prob = 80, 991 | attack = "hitscan", 992 | rate = 0.9, 993 | damage = 10, 994 | ammo = "bullet", 995 | per = 1, 996 | }, 997 | NailgunSG = 998 | { 999 | id = 29214, 1000 | level = 4, 1001 | pref = 5, 1002 | add_prob = 1, 1003 | hide_prob = 80, 1004 | attack = "hitscan", 1005 | rate = 0.9, 1006 | damage = 10, 1007 | ammo = "bullet", 1008 | per = 1, 1009 | }, 1010 | NuclearMissileLauncher = 1011 | { 1012 | id = 29608, 1013 | level = 10, 1014 | pref = 5, 1015 | add_prob = 1, 1016 | hide_prob = 80, 1017 | attack = "hitscan", 1018 | rate = 0.9, 1019 | damage = 10, 1020 | ammo = "bullet", 1021 | per = 1, 1022 | }, 1023 | PlasmaBallista = 1024 | { 1025 | id = 29217, 1026 | level = 4, 1027 | pref = 5, 1028 | add_prob = 1, 1029 | hide_prob = 80, 1030 | attack = "hitscan", 1031 | rate = 0.9, 1032 | damage = 10, 1033 | ammo = "cell", 1034 | per = 1, 1035 | }, 1036 | PlasmaBeam = 1037 | { 1038 | id = 29218, 1039 | level = 3, 1040 | pref = 5, 1041 | add_prob = 1, 1042 | hide_prob = 80, 1043 | attack = "hitscan", 1044 | rate = 0.9, 1045 | damage = 10, 1046 | ammo = "cell", 1047 | per = 1, 1048 | }, 1049 | PlasmaBolter = 1050 | { 1051 | id = 29219, 1052 | level = 4, 1053 | pref = 5, 1054 | add_prob = 1, 1055 | hide_prob = 80, 1056 | attack = "hitscan", 1057 | rate = 0.9, 1058 | damage = 10, 1059 | ammo = "cell", 1060 | per = 1, 1061 | }, 1062 | PlasmaPistol = 1063 | { 1064 | id = 29220, 1065 | level = 2, 1066 | pref = 5, 1067 | add_prob = 1, 1068 | hide_prob = 80, 1069 | attack = "hitscan", 1070 | rate = 0.9, 1071 | damage = 10, 1072 | ammo = "cell", 1073 | per = 1, 1074 | }, 1075 | PlasmaQuadShotgun = 1076 | { 1077 | id = 17388, 1078 | level = 8, 1079 | pref = 5, 1080 | add_prob = 1, 1081 | hide_prob = 80, 1082 | attack = "hitscan", 1083 | rate = 0.9, 1084 | damage = 10, 1085 | ammo = "cell", 1086 | per = 1, 1087 | }, 1088 | PlasmaRepeater = 1089 | { 1090 | id = 5012, 1091 | level = 4, 1092 | pref = 5, 1093 | add_prob = 1, 1094 | hide_prob = 80, 1095 | attack = "hitscan", 1096 | rate = 0.9, 1097 | damage = 10, 1098 | ammo = "cell", 1099 | per = 1, 1100 | }, 1101 | PlasmaRocketLauncher = 1102 | { 1103 | id = 17389, 1104 | level = 5, 1105 | pref = 5, 1106 | add_prob = 1, 1107 | hide_prob = 80, 1108 | attack = "missile", 1109 | rate = 0.9, 1110 | damage = 10, 1111 | ammo = "cell", 1112 | per = 1, 1113 | }, 1114 | PlasmaShotgun = 1115 | { 1116 | id = 29221, 1117 | level = 4, 1118 | pref = 5, 1119 | add_prob = 1, 1120 | hide_prob = 80, 1121 | attack = "hitscan", 1122 | rate = 0.9, 1123 | damage = 10, 1124 | ammo = "cell", 1125 | per = 1, 1126 | }, 1127 | PlasmaSplitter = 1128 | { 1129 | id = 17366, 1130 | level = 6, 1131 | pref = 5, 1132 | add_prob = 1, 1133 | hide_prob = 80, 1134 | attack = "hitscan", 1135 | rate = 0.9, 1136 | damage = 10, 1137 | ammo = "cell", 1138 | per = 1, 1139 | }, 1140 | PulseNailgun = 1141 | { 1142 | id = 29609, 1143 | level = 3.5, 1144 | pref = 5, 1145 | add_prob = 1, 1146 | hide_prob = 80, 1147 | attack = "hitscan", 1148 | rate = 0.9, 1149 | damage = 10, 1150 | ammo = "bullet", 1151 | per = 1, 1152 | }, 1153 | PulseRifle = 1154 | { 1155 | id = 18730, 1156 | level = 3, 1157 | pref = 5, 1158 | add_prob = 1, 1159 | hide_prob = 80, 1160 | attack = "hitscan", 1161 | rate = 0.9, 1162 | damage = 10, 1163 | ammo = "bullet", 1164 | per = 1, 1165 | }, 1166 | PumpActionShotgun = 1167 | { 1168 | id = 29227, 1169 | level = 4, 1170 | pref = 5, 1171 | add_prob = 1, 1172 | hide_prob = 80, 1173 | attack = "hitscan", 1174 | rate = 0.9, 1175 | damage = 10, 1176 | ammo = "bullet", 1177 | per = 1, 1178 | }, 1179 | QuadShotgun = 1180 | { 1181 | id = 29999, 1182 | level = 5, 1183 | pref = 5, 1184 | add_prob = 1, 1185 | hide_prob = 80, 1186 | attack = "hitscan", 1187 | rate = 0.9, 1188 | damage = 10, 1189 | ammo = "bullet", 1190 | per = 1, 1191 | }, 1192 | Raptor = 1193 | { 1194 | id = 29230, 1195 | level = 5, 1196 | pref = 5, 1197 | add_prob = 1, 1198 | hide_prob = 80, 1199 | attack = "hitscan", 1200 | rate = 0.9, 1201 | damage = 10, 1202 | ammo = "bullet", 1203 | per = 1, 1204 | }, 1205 | Raygun = 1206 | { 1207 | id = 12634, 1208 | level = 9, 1209 | pref = 5, 1210 | add_prob = 1, 1211 | hide_prob = 80, 1212 | attack = "hitscan", 1213 | rate = 0.9, 1214 | damage = 10, 1215 | ammo = "cell", 1216 | per = 1, 1217 | }, 1218 | Reaper = 1219 | { 1220 | id = 6021, 1221 | level = 2, 1222 | pref = 5, 1223 | add_prob = 1, 1224 | hide_prob = 80, 1225 | attack = "hitscan", 1226 | rate = 0.9, 1227 | damage = 10, 1228 | ammo = "bullet", 1229 | per = 1, 1230 | }, 1231 | Repeater = 1232 | { 1233 | id = 29231, 1234 | level = 8, 1235 | pref = 5, 1236 | add_prob = 1, 1237 | hide_prob = 80, 1238 | attack = "hitscan", 1239 | rate = 0.9, 1240 | damage = 10, 1241 | ammo = "cell", 1242 | per = 1, 1243 | }, 1244 | --disabled by default 1245 | Rifle = 1246 | { 1247 | id = 25096, 1248 | level = 1, 1249 | pref = 5, 1250 | add_prob = 0, 1251 | hide_prob = 80, 1252 | attack = "hitscan", 1253 | rate = 0.9, 1254 | damage = 10, 1255 | ammo = "bullet", 1256 | per = 1, 1257 | }, 1258 | RivetGun = 1259 | { 1260 | id = 7932, 1261 | level = 2, 1262 | pref = 5, 1263 | add_prob = 1, 1264 | hide_prob = 80, 1265 | attack = "hitscan", 1266 | rate = 0.9, 1267 | damage = 10, 1268 | ammo = "bullet", 1269 | per = 1, 1270 | }, 1271 | RocketLaunchermkII = 1272 | { 1273 | id = 17378, 1274 | level = 10, 1275 | pref = 5, 1276 | add_prob = 1, 1277 | hide_prob = 80, 1278 | attack = "missile", 1279 | rate = 0.9, 1280 | damage = 10, 1281 | ammo = "rocket", 1282 | per = 1, 1283 | }, 1284 | Satcheler = 1285 | { 1286 | id = 29126, 1287 | level = 1, 1288 | pref = 5, 1289 | add_prob = 0, 1290 | hide_prob = 80, 1291 | attack = "hitscan", 1292 | rate = 0.9, 1293 | damage = 10, 1294 | ammo = "bullet", 1295 | per = 1, 1296 | }, 1297 | ScatterPistol = 1298 | { 1299 | id = 29238, 1300 | level = 2, 1301 | pref = 5, 1302 | add_prob = 1, 1303 | hide_prob = 80, 1304 | attack = "hitscan", 1305 | rate = 0.9, 1306 | damage = 10, 1307 | ammo = "bullet", 1308 | per = 1, 1309 | }, 1310 | --disabled by default 1311 | ShieldGun = 1312 | { 1313 | id = 29239, 1314 | level = 1, 1315 | pref = 5, 1316 | add_prob = 0, 1317 | hide_prob = 80, 1318 | attack = "hitscan", 1319 | rate = 0.9, 1320 | damage = 10, 1321 | ammo = "bullet", 1322 | per = 1, 1323 | }, 1324 | ShockRifle = 1325 | { 1326 | id = 17368, 1327 | level = 3, 1328 | pref = 5, 1329 | add_prob = 0, 1330 | hide_prob = 80, 1331 | attack = "hitscan", 1332 | rate = 0.9, 1333 | damage = 10, 1334 | ammo = "cell", 1335 | per = 1, 1336 | }, 1337 | SidebySide = 1338 | { 1339 | id = 29240, 1340 | level = 7, 1341 | pref = 5, 1342 | add_prob = 1, 1343 | hide_prob = 80, 1344 | attack = "hitscan", 1345 | rate = 0.9, 1346 | damage = 10, 1347 | ammo = "bullet", 1348 | per = 1, 1349 | }, 1350 | SilencedPistol = 1351 | { 1352 | id = 29241, 1353 | level = 1, 1354 | pref = 5, 1355 | add_prob = 1, 1356 | hide_prob = 80, 1357 | attack = "hitscan", 1358 | rate = 0.9, 1359 | damage = 10, 1360 | ammo = "bullet", 1361 | per = 1, 1362 | }, 1363 | SingleShot = 1364 | { 1365 | id = 29242, 1366 | level = 1, 1367 | pref = 5, 1368 | add_prob = 1, 1369 | hide_prob = 80, 1370 | attack = "hitscan", 1371 | rate = 0.9, 1372 | damage = 10, 1373 | ammo = "bullet", 1374 | per = 1, 1375 | }, 1376 | SkeletalRevenge = 1377 | { 1378 | id = 29243, 1379 | level = 6, 1380 | pref = 5, 1381 | add_prob = 1, 1382 | hide_prob = 80, 1383 | attack = "hitscan", 1384 | rate = 0.9, 1385 | damage = 10, 1386 | ammo = "bullet", 1387 | per = 1, 1388 | }, 1389 | SlugShotgun = 1390 | { 1391 | id = 17390, 1392 | level = 5, 1393 | pref = 5, 1394 | add_prob = 1, 1395 | hide_prob = 80, 1396 | attack = "hitscan", 1397 | rate = 0.9, 1398 | damage = 10, 1399 | ammo = "bullet", 1400 | per = 1, 1401 | }, 1402 | Smartgun = 1403 | { 1404 | id = 29250, 1405 | level = 4, 1406 | pref = 5, 1407 | add_prob = 1, 1408 | hide_prob = 80, 1409 | attack = "hitscan", 1410 | rate = 0.9, 1411 | damage = 10, 1412 | ammo = "bullet", 1413 | per = 1, 1414 | }, 1415 | Smasher = 1416 | { 1417 | id = 12465, 1418 | level = 3, 1419 | pref = 5, 1420 | add_prob = 1, 1421 | hide_prob = 80, 1422 | attack = "hitscan", 1423 | rate = 0.9, 1424 | damage = 10, 1425 | ammo = "bullet", 1426 | per = 1, 1427 | }, 1428 | SniperRifle = 1429 | { 1430 | id = 2395, 1431 | level = 3, 1432 | pref = 5, 1433 | add_prob = 1, 1434 | hide_prob = 80, 1435 | attack = "hitscan", 1436 | rate = 0.9, 1437 | damage = 10, 1438 | ammo = "bullet", 1439 | per = 1, 1440 | }, 1441 | SPAS12 = 1442 | { 1443 | id = 29251, 1444 | level = 3, 1445 | pref = 5, 1446 | add_prob = 1, 1447 | hide_prob = 80, 1448 | attack = "hitscan", 1449 | rate = 0.9, 1450 | damage = 10, 1451 | ammo = "bullet", 1452 | per = 1, 1453 | }, 1454 | SprayCannon = 1455 | { 1456 | id = 29252, 1457 | level = 4, 1458 | pref = 5, 1459 | add_prob = 1, 1460 | hide_prob = 80, 1461 | attack = "hitscan", 1462 | rate = 0.9, 1463 | damage = 10, 1464 | ammo = "bullet", 1465 | per = 1, 1466 | }, 1467 | STBFG10K = 1468 | { 1469 | id = 29136, 1470 | level = 8, 1471 | pref = 5, 1472 | add_prob = 1, 1473 | hide_prob = 80, 1474 | attack = "hitscan", 1475 | rate = 0.9, 1476 | damage = 10, 1477 | ammo = "cell", 1478 | per = 1, 1479 | }, 1480 | STGrenadeLauncher = 1481 | { 1482 | id = 29185, 1483 | level = 6, 1484 | pref = 5, 1485 | add_prob = 1, 1486 | hide_prob = 80, 1487 | attack = "hitscan", 1488 | rate = 0.9, 1489 | damage = 10, 1490 | ammo = "bullet", 1491 | per = 1, 1492 | }, 1493 | STMinigun = 1494 | { 1495 | id = 29607, 1496 | level = 6, 1497 | pref = 5, 1498 | add_prob = 1, 1499 | hide_prob = 80, 1500 | attack = "hitscan", 1501 | rate = 0.9, 1502 | damage = 10, 1503 | ammo = "bullet", 1504 | per = 1, 1505 | }, 1506 | STRailgun = 1507 | { 1508 | id = 29229, 1509 | level = 5, 1510 | pref = 5, 1511 | add_prob = 1, 1512 | hide_prob = 80, 1513 | attack = "hitscan", 1514 | rate = 0.9, 1515 | damage = 10, 1516 | ammo = "bullet", 1517 | per = 1, 1518 | }, 1519 | StrifePistol = 1520 | { 1521 | id = 29255, 1522 | level = 1, 1523 | pref = 5, 1524 | add_prob = 1, 1525 | hide_prob = 80, 1526 | attack = "hitscan", 1527 | rate = 0.9, 1528 | damage = 10, 1529 | ammo = "bullet", 1530 | per = 1, 1531 | }, 1532 | StunnerRifle = 1533 | { 1534 | id = 29256, 1535 | level = 10, 1536 | pref = 5, 1537 | add_prob = 1, 1538 | hide_prob = 80, 1539 | attack = "hitscan", 1540 | rate = 0.9, 1541 | damage = 10, 1542 | ammo = "bullet", 1543 | per = 1, 1544 | }, 1545 | SuperMiniMissileLauncher = 1546 | { 1547 | id = 17394, 1548 | level = 6, 1549 | pref = 5, 1550 | add_prob = 1, 1551 | hide_prob = 80, 1552 | attack = "missile", 1553 | rate = 0.9, 1554 | damage = 10, 1555 | ammo = "rocket", 1556 | per = 1, 1557 | }, 1558 | SuppressedMP5 = 1559 | { 1560 | id = 29258, 1561 | level = 4, 1562 | pref = 5, 1563 | add_prob = 1, 1564 | hide_prob = 80, 1565 | attack = "hitscan", 1566 | rate = 0.9, 1567 | damage = 10, 1568 | ammo = "bullet", 1569 | per = 1, 1570 | }, 1571 | SwatShotgun = 1572 | { 1573 | id = 29259, 1574 | level = 2, 1575 | pref = 5, 1576 | add_prob = 1, 1577 | hide_prob = 80, 1578 | attack = "hitscan", 1579 | rate = 0.9, 1580 | damage = 10, 1581 | ammo = "shell", 1582 | per = 1, 1583 | }, 1584 | TacticalShotgun = 1585 | { 1586 | id = 17367, 1587 | level = 2, 1588 | pref = 5, 1589 | add_prob = 1, 1590 | hide_prob = 80, 1591 | attack = "hitscan", 1592 | rate = 0.9, 1593 | damage = 10, 1594 | ammo = "shell", 1595 | per = 1, 1596 | }, 1597 | Thompson = 1598 | { 1599 | id = 29260, 1600 | level = 8, 1601 | pref = 5, 1602 | add_prob = 1, 1603 | hide_prob = 80, 1604 | attack = "hitscan", 1605 | rate = 0.9, 1606 | damage = 10, 1607 | ammo = "bullet", 1608 | per = 1, 1609 | }, 1610 | Toaster = 1611 | { 1612 | id = 12466, 1613 | level = 10, 1614 | pref = 5, 1615 | add_prob = 1, 1616 | hide_prob = 80, 1617 | attack = "hitscan", 1618 | rate = 0.9, 1619 | damage = 10, 1620 | ammo = "bullet", 1621 | per = 1, 1622 | }, 1623 | UACPlasmaticRifle = 1624 | { 1625 | id = 29261, 1626 | level = 7, 1627 | pref = 5, 1628 | add_prob = 1, 1629 | hide_prob = 80, 1630 | attack = "hitscan", 1631 | rate = 0.9, 1632 | damage = 10, 1633 | ammo = "bullet", 1634 | per = 1, 1635 | }, 1636 | UberMinigun = 1637 | { 1638 | id = 29262, 1639 | level = 6, 1640 | pref = 5, 1641 | add_prob = 1, 1642 | hide_prob = 80, 1643 | attack = "hitscan", 1644 | rate = 0.9, 1645 | damage = 10, 1646 | ammo = "bullet", 1647 | per = 1, 1648 | }, 1649 | UTNTFlamethrower = 1650 | { 1651 | id = 29179, 1652 | level = 5, 1653 | pref = 5, 1654 | add_prob = 1, 1655 | hide_prob = 80, 1656 | attack = "hitscan", 1657 | rate = 0.9, 1658 | damage = 10, 1659 | ammo = "bullet", 1660 | per = 1, 1661 | }, 1662 | UTNTPyroCannon = 1663 | { 1664 | id = 29269, 1665 | level = 7, 1666 | pref = 5, 1667 | add_prob = 1, 1668 | hide_prob = 80, 1669 | attack = "hitscan", 1670 | rate = 0.9, 1671 | damage = 10, 1672 | ammo = "bullet", 1673 | per = 1, 1674 | }, 1675 | Uzi = 1676 | { 1677 | id = 17459, 1678 | level = 5, 1679 | pref = 5, 1680 | add_prob = 1, 1681 | hide_prob = 80, 1682 | attack = "hitscan", 1683 | rate = 0.9, 1684 | damage = 10, 1685 | ammo = "bullet", 1686 | per = 1, 1687 | }, 1688 | WensternShotgun = 1689 | { 1690 | id = 29272, 1691 | level = 2, 1692 | pref = 5, 1693 | add_prob = 1, 1694 | hide_prob = 80, 1695 | attack = "hitscan", 1696 | rate = 0.9, 1697 | damage = 10, 1698 | ammo = "shell", 1699 | per = 1, 1700 | }, 1701 | Yellowboy = 1702 | { 1703 | id = 22911, 1704 | level = 2, 1705 | pref = 5, 1706 | add_prob = 1, 1707 | hide_prob = 80, 1708 | attack = "hitscan", 1709 | rate = 0.9, 1710 | damage = 10, 1711 | ammo = "shell", 1712 | per = 1, 1713 | }, 1714 | } 1715 | 1716 | 1717 | REALM667W.PICKUPS = 1718 | { 1719 | Grenades40mm = 1720 | { 1721 | id = 5567, 1722 | kind = "ammo", 1723 | add_prob = 20, 1724 | cluster = { 4,7 }, 1725 | give = { {ammo="40mmGrenades", count=5} }, 1726 | }, 1727 | Grenades40mmBox = 1728 | { 1729 | id = 5568, 1730 | kind = "ammo", 1731 | add_prob = 20, 1732 | give = { {ammo="40mmGrenades", count=20 } }, 1733 | }, 1734 | BioContainer = 1735 | { 1736 | id = 29146, 1737 | kind = "ammo", 1738 | add_prob = 20, 1739 | cluster = { 4,7 }, 1740 | give = { {ammo="BioContainer", count=6} }, 1741 | }, 1742 | BioContainerHefty = 1743 | { 1744 | id = 29147, 1745 | kind = "ammo", 1746 | add_prob = 20, 1747 | give = { {ammo="BioContainer", count=30 } }, 1748 | }, 1749 | --Claymore goes here when I'm not feeling lazy 1750 | 1751 | --EMS Rifle = Slugs 1752 | Slugs = 1753 | { 1754 | id = 5660, 1755 | kind = "ammo", 1756 | add_prob = 20, 1757 | give = { {ammo="Slugs", count=12} }, 1758 | }, 1759 | SlugMag = 1760 | { 1761 | id = 5661, 1762 | kind = "ammo", 1763 | add_prob = 20, 1764 | give = { {ammo="Slugs", count=6} }, 1765 | }, 1766 | FlakAmmo = 1767 | { 1768 | id = 2050, 1769 | kind = "ammo", 1770 | add_prob = 20, 1771 | give = { {ammo="FlakAmmo", count=2} }, 1772 | }, 1773 | FlakAmmoBox = 1774 | { 1775 | id = 2051, 1776 | kind = "ammo", 1777 | add_prob = 20, 1778 | give = { {ammo="FlakAmmo", count=6} }, 1779 | }, 1780 | 1781 | --Hand Grenade goes here when I'm not feeling lazy 1782 | 1783 | --Karasawa goes here when I'm not feeling lazy 1784 | 1785 | --Landmine Layer 1786 | 1787 | NuclearMissile = 1788 | { 1789 | id = 29216, 1790 | kind = "ammo", 1791 | add_prob = 5, 1792 | give = { {ammo="NuclearMissile", count=1} }, 1793 | }, 1794 | 1795 | Rivets = 1796 | { 1797 | id = 32257, 1798 | kind = "ammo", 1799 | add_prob = 20, 1800 | give = { {ammo="Rivets", count=12} }, 1801 | }, 1802 | RivetRack = 1803 | { 1804 | id = 32258, 1805 | kind = "ammo", 1806 | add_prob = 20, 1807 | give = { {ammo="RivetRack", count=25} }, 1808 | }, 1809 | 1810 | 1811 | --Unmaker 1812 | 1813 | 1814 | } 1815 | 1816 | 1817 | -- Interface code below... 1818 | 1819 | REALM667W.WEAPON_CHOICES = 1820 | { 1821 | "default", _("DEFAULT"), 1822 | "none", _("None at all"), 1823 | "scarce", _("Scarce"), 1824 | "less", _("Less"), 1825 | "plenty", _("Plenty"), 1826 | "more", _("More"), 1827 | "heaps", _("Heaps"), 1828 | "loveit", _("I LOVE IT"), 1829 | } 1830 | 1831 | REALM667W.WEAPON_PROBS = 1832 | { 1833 | none = 0, 1834 | scarce = 2, 1835 | less = 15, 1836 | plenty = 50, 1837 | more = 120, 1838 | heaps = 300, 1839 | loveit = 1000, 1840 | } 1841 | 1842 | REALM667W.WEAPON_PREFS = 1843 | { 1844 | none = 1, 1845 | scarce = 10, 1846 | less = 25, 1847 | plenty = 40, 1848 | more = 70, 1849 | heaps = 100, 1850 | loveit = 170, 1851 | } 1852 | 1853 | 1854 | function REALM667W.weapon_setup(self) 1855 | for name,opt in pairs(self.options) do 1856 | local W = GAME.WEAPONS[name] 1857 | 1858 | if W and opt.value ~= "default" then 1859 | W.add_prob = REALM667W.WEAPON_PROBS[opt.value] 1860 | W.pref = REALM667W.WEAPON_PREFS[opt.value] 1861 | 1862 | -- loosen some of the normal restrictions 1863 | W.level = 1 1864 | end 1865 | end -- for opt 1866 | end 1867 | 1868 | 1869 | 1870 | 1871 | 1872 | OB_MODULES["REALM667W"] = 1873 | { 1874 | label = "Realm667 Weapons", 1875 | 1876 | game = "doomish", 1877 | 1878 | hooks = 1879 | { 1880 | setup = REALM667W.weapon_setup 1881 | }, 1882 | 1883 | tables = 1884 | { 1885 | REALM667W 1886 | }, 1887 | 1888 | options = 1889 | { 1890 | 1891 | GrenadeLauncher40mm = { label=_("GrenadeLauncher40mm"), choices=REALM667W.WEAPON_CHOICES }, 1892 | AA12 = { label=_("AA12"), choices=REALM667W.WEAPON_CHOICES }, 1893 | ActionMachineGun = { label=_("ActionMachineGun"), choices=REALM667W.WEAPON_CHOICES }, 1894 | AK47 = { label=_("AK47"), choices=REALM667W.WEAPON_CHOICES }, 1895 | AlphaUnmaker = { label=_("AlphaUnmaker"), choices=REALM667W.WEAPON_CHOICES }, 1896 | AngledPistol = { label=_("AngledPistol"), choices=REALM667W.WEAPON_CHOICES }, 1897 | Autogun = { label=_("Autogun"), choices=REALM667W.WEAPON_CHOICES }, 1898 | AutoShot = { label=_("AutoShot"), choices=REALM667W.WEAPON_CHOICES }, 1899 | Axe = { label=_("Axe"), choices=REALM667W.WEAPON_CHOICES }, 1900 | BayonetRifle = { label=_("BayonetRifle"), choices=REALM667W.WEAPON_CHOICES }, 1901 | BFG2704 = { label=_("BFG2704"), choices=REALM667W.WEAPON_CHOICES }, 1902 | BHGen = { label=_("BHGen"), choices=REALM667W.WEAPON_CHOICES }, 1903 | BioPipebombLauncher = { label=_("BioPipebombLauncher"), choices=REALM667W.WEAPON_CHOICES }, 1904 | Bolter = { label=_("Bolter"), choices=REALM667W.WEAPON_CHOICES }, 1905 | --Bratwurst Weapons.wad 1906 | WolfKnife = { label=_("WolfKnife"), choices=REALM667W.WEAPON_CHOICES }, 1907 | WolfPistol = { label=_("WolfPistol"), choices=REALM667W.WEAPON_CHOICES }, 1908 | WolfMachineGun = { label=_("WolfMachineGun"), choices=REALM667W.WEAPON_CHOICES }, 1909 | WolfGatlingGun = { label=_("WolfGatlingGun"), choices=REALM667W.WEAPON_CHOICES }, 1910 | --End Bratwurst Weapons.wad 1911 | BRPS = { label=_("BRPS"), choices=REALM667W.WEAPON_CHOICES }, 1912 | Butchergun = { label=_("Butchergun"), choices=REALM667W.WEAPON_CHOICES }, 1913 | Channeler = { label=_("Channeler"), choices=REALM667W.WEAPON_CHOICES }, 1914 | ClaymoreMine = { label=_("ClaymoreMine"), choices=REALM667W.WEAPON_CHOICES }, 1915 | Coachgun = { label=_("Coachgun"), choices=REALM667W.WEAPON_CHOICES }, 1916 | Colt45 = { label=_("Colt45"), choices=REALM667W.WEAPON_CHOICES }, 1917 | CryoBow = { label=_("CryoBow"), choices=REALM667W.WEAPON_CHOICES }, 1918 | D2C_Pipebomb = { label=_("D2C_Pipebomb"), choices=REALM667W.WEAPON_CHOICES }, 1919 | DemonicLeech = { label=_("DemonicLeech"), choices=REALM667W.WEAPON_CHOICES }, 1920 | DesertEagle = { label=_("DesertEagle"), choices=REALM667W.WEAPON_CHOICES }, 1921 | DGL = { label=_("DGL"), choices=REALM667W.WEAPON_CHOICES }, 1922 | Doom3SSG = { label=_("Doom3SSG"), choices=REALM667W.WEAPON_CHOICES }, 1923 | DoubleBladedChainsaw = { label=_("DoubleBladedChainsaw"), choices=REALM667W.WEAPON_CHOICES }, 1924 | DualLaser = { label=_("DualLaser"), choices=REALM667W.WEAPON_CHOICES }, 1925 | DukePistol = { label=_("DukePistol"), choices=REALM667W.WEAPON_CHOICES }, 1926 | DukeShotgun = { label=_("DukeShotgun"), choices=REALM667W.WEAPON_CHOICES }, 1927 | EgoSmasher = { label=_("EgoSmasher"), choices=REALM667W.WEAPON_CHOICES }, 1928 | ElectroGun = { label=_("ElectroGun"), choices=REALM667W.WEAPON_CHOICES }, 1929 | EMSRifle = { label=_("EMSRifle"), choices=REALM667W.WEAPON_CHOICES }, 1930 | FistRedux = { label=_("FistRedux"), choices=REALM667W.WEAPON_CHOICES }, 1931 | FistsOfFury = { label=_("FistsOfFury"), choices=REALM667W.WEAPON_CHOICES }, 1932 | FlakCannon = { label=_("FlakCannon"), choices=REALM667W.WEAPON_CHOICES }, 1933 | FlashLightAngled = { label=_("FlashLightAngled"), choices=REALM667W.WEAPON_CHOICES }, 1934 | FragGrenade = { label=_("FragGrenade"), choices=REALM667W.WEAPON_CHOICES }, 1935 | FreezeRifle = { label=_("FreezeRifle"), choices=REALM667W.WEAPON_CHOICES }, 1936 | GasGun = { label=_("GasGun"), choices=REALM667W.WEAPON_CHOICES }, 1937 | GatLaser = { label=_("GatLaser"), choices=REALM667W.WEAPON_CHOICES }, 1938 | Glock18 = { label=_("Glock18"), choices=REALM667W.WEAPON_CHOICES }, 1939 | HandGrenade = { label=_("HandGrenade"), choices=REALM667W.WEAPON_CHOICES }, 1940 | HeavyCarbine = { label=_("HeavyCarbine"), choices=REALM667W.WEAPON_CHOICES }, 1941 | HeavyChaingun = { label=_("HeavyChaingun"), choices=REALM667W.WEAPON_CHOICES }, 1942 | HeavyMachinegun = { label=_("HeavyMachineGun"), choices=REALM667W.WEAPON_CHOICES }, 1943 | HeavyRifle = { label=_("HeavyRifle"), choices=REALM667W.WEAPON_CHOICES }, 1944 | HellstormCannon = { label=_("HellstormCannon"), choices=REALM667W.WEAPON_CHOICES }, 1945 | HuntingRifle = { label=_("HuntingRifle"), choices=REALM667W.WEAPON_CHOICES }, 1946 | iGun = { label=_("iGun"), choices=REALM667W.WEAPON_CHOICES }, 1947 | Ionspray = { label=_("Ionspray"), choices=REALM667W.WEAPON_CHOICES }, 1948 | Karasawa = { label=_("Karasawa"), choices=REALM667W.WEAPON_CHOICES }, 1949 | KDiZDGrenadeLauncher = { label=_("KDiZDGrenadeLauncher"), choices=REALM667W.WEAPON_CHOICES }, 1950 | KDiZDSuperShotgun = { label=_("KDiZDSuperShotgun"), choices=REALM667W.WEAPON_CHOICES }, 1951 | Knife = { label=_("Knife"), choices=REALM667W.WEAPON_CHOICES }, 1952 | LandMineLayer = { label=_("LandMineLayer"), choices=REALM667W.WEAPON_CHOICES }, 1953 | LaserCannon = { label=_("LaserCannon"), choices=REALM667W.WEAPON_CHOICES }, 1954 | LightMachinegun = { label=_("LightMachinegun"), choices=REALM667W.WEAPON_CHOICES }, 1955 | M16 = { label=_("M16"), choices=REALM667W.WEAPON_CHOICES }, 1956 | M40Rifle = { label=_("M40Rifle"), choices=REALM667W.WEAPON_CHOICES }, 1957 | M79 = { label=_("M79"), choices=REALM667W.WEAPON_CHOICES }, 1958 | Machete = { label=_("Machete"), choices=REALM667W.WEAPON_CHOICES }, 1959 | Machinegun = { label=_("Machinegun"), choices=REALM667W.WEAPON_CHOICES }, 1960 | Mag60 = { label=_("Mag60"), choices=REALM667W.WEAPON_CHOICES }, 1961 | MancubusArm = { label=_("MancubusArm"), choices=REALM667W.WEAPON_CHOICES }, 1962 | DualMancubusArm = { label=_("DualMancubusArm"), choices=REALM667W.WEAPON_CHOICES }, 1963 | MicroUzi = { label=_("MicroUzi"), choices=REALM667W.WEAPON_CHOICES }, 1964 | model1887 = { label=_("model1887"), choices=REALM667W.WEAPON_CHOICES }, 1965 | MP40 = { label=_("MP40"), choices=REALM667W.WEAPON_CHOICES }, 1966 | MP5 = { label=_("MP5"), choices=REALM667W.WEAPON_CHOICES }, 1967 | NailGunMG = { label=_("NailGunMG"), choices=REALM667W.WEAPON_CHOICES }, 1968 | NailgunSG = { label=_("NailgunSG"), choices=REALM667W.WEAPON_CHOICES }, 1969 | NuclearMissileLauncher = { label=_("NuclearMissileLauncher"), choices=REALM667W.WEAPON_CHOICES }, 1970 | PlasmaBallista = { label=_("PlasmaBallista"), choices=REALM667W.WEAPON_CHOICES }, 1971 | PlasmaBeam = { label=_("PlasmaBeam"), choices=REALM667W.WEAPON_CHOICES }, 1972 | PlasmaBolter = { label=_("PlasmaBolter"), choices=REALM667W.WEAPON_CHOICES }, 1973 | PlasmaPistol = { label=_("PlasmaPistol"), choices=REALM667W.WEAPON_CHOICES }, 1974 | PlasmaQuadShotgun = { label=_("PlasmaQuadShotgun"), choices=REALM667W.WEAPON_CHOICES }, 1975 | PlasmaRepeater = { label=_("PlasmaRepeater"), choices=REALM667W.WEAPON_CHOICES }, 1976 | PlasmaRocketLauncher = { label=_("PlasmaRocketLauncher"), choices=REALM667W.WEAPON_CHOICES }, 1977 | PlasmaShotgun = { label=_("PlasmaShotgun"), choices=REALM667W.WEAPON_CHOICES }, 1978 | PulseNailgun = { label=_("PulseNailgun"), choices=REALM667W.WEAPON_CHOICES }, 1979 | PulseRifle = { label=_("PulseRifle"), choices=REALM667W.WEAPON_CHOICES }, 1980 | PumpActionShotgun = { label=_("PumpActionShotgun"), choices=REALM667W.WEAPON_CHOICES }, 1981 | QuadShotgun = { label=_("QuadShotgun"), choices=REALM667W.WEAPON_CHOICES }, 1982 | Raptor = { label=_("Raptor"), choices=REALM667W.WEAPON_CHOICES }, 1983 | Raygun = { label=_("Raygun"), choices=REALM667W.WEAPON_CHOICES }, 1984 | Reaper = { label=_("Reaper"), choices=REALM667W.WEAPON_CHOICES }, 1985 | Repeater = { label=_("Repeater"), choices=REALM667W.WEAPON_CHOICES }, 1986 | Rifle = { label=_("Rifle"), choices=REALM667W.WEAPON_CHOICES }, 1987 | Rifle = { label=_("Rifle"), choices=REALM667W.WEAPON_CHOICES }, 1988 | RivetGun = { label=_("RivetGun"), choices=REALM667W.WEAPON_CHOICES }, 1989 | RocketLaunchermkII = { label=_("RocketLaunchermkII"), choices=REALM667W.WEAPON_CHOICES }, 1990 | Satcheler = { label=_("Satcheler"), choices=REALM667W.WEAPON_CHOICES }, 1991 | ScatterPistol = { label=_("ScatterPistol"), choices=REALM667W.WEAPON_CHOICES }, 1992 | ShieldGun = { label=_("ShieldGun"), choices=REALM667W.WEAPON_CHOICES }, 1993 | SidebySide = { label=_("SidebySide"), choices=REALM667W.WEAPON_CHOICES }, 1994 | SilencedPistol = { label=_("SilencedPistol"), choices=REALM667W.WEAPON_CHOICES }, 1995 | SingleShot = { label=_("SingleShot"), choices=REALM667W.WEAPON_CHOICES }, 1996 | SkeletalRevenge = { label=_("SkeletalRevenge"), choices=REALM667W.WEAPON_CHOICES }, 1997 | SlugShotgun = { label=_("SlugShotgun"), choices=REALM667W.WEAPON_CHOICES }, 1998 | Smartgun = { label=_("Smartgun"), choices=REALM667W.WEAPON_CHOICES }, 1999 | Smasher = { label=_("Smasher"), choices=REALM667W.WEAPON_CHOICES }, 2000 | SniperRifle = { label=_("SniperRifle"), choices=REALM667W.WEAPON_CHOICES }, 2001 | SPAS12 = { label=_("SPAS12"), choices=REALM667W.WEAPON_CHOICES }, 2002 | SprayCannon = { label=_("SprayCannon"), choices=REALM667W.WEAPON_CHOICES }, 2003 | STBFG10K = { label=_("STBFG10K"), choices=REALM667W.WEAPON_CHOICES }, 2004 | STGrenadeLauncher = { label=_("STGrenadeLauncher"), choices=REALM667W.WEAPON_CHOICES }, 2005 | STMinigun = { label=_("STMinigun"), choices=REALM667W.WEAPON_CHOICES }, 2006 | STRailgun = { label=_("STRailgun"), choices=REALM667W.WEAPON_CHOICES }, 2007 | StrifePistol = { label=_("StrifePistol"), choices=REALM667W.WEAPON_CHOICES }, 2008 | StunnerRifle = { label=_("StunnerRifle"), choices=REALM667W.WEAPON_CHOICES }, 2009 | SuperMiniMissileLauncher = { label=_("SuperMiniMissileLauncher"), choices=REALM667W.WEAPON_CHOICES }, 2010 | SuppressedMP5 = { label=_("SuppressedMP5"), choices=REALM667W.WEAPON_CHOICES }, 2011 | SwatShotgun = { label=_("SwatShotgun"), choices=REALM667W.WEAPON_CHOICES }, 2012 | Thompson = { label=_("Thompson"), choices=REALM667W.WEAPON_CHOICES }, 2013 | Toaster = { label=_("Toaster"), choices=REALM667W.WEAPON_CHOICES }, 2014 | UACPlasmaticRifle = { label=_("UACPlasmaticRifle"), choices=REALM667W.WEAPON_CHOICES }, 2015 | UberMinigun = { label=_("UberMinigun"), choices=REALM667W.WEAPON_CHOICES }, 2016 | UTNTFlamethrower = { label=_("UTNTFlamethrower"), choices=REALM667W.WEAPON_CHOICES }, 2017 | UTNTPyroCannon = { label=_("UTNTPyroCannon"), choices=REALM667W.WEAPON_CHOICES }, 2018 | Uzi = { label=_("Uzi"), choices=REALM667W.WEAPON_CHOICES }, 2019 | WensternShotgun = { label=_("WensternShotgun"), choices=REALM667W.WEAPON_CHOICES }, 2020 | Yellowboy = { label=_("Yellowboy"), choices=REALM667W.WEAPON_CHOICES }, 2021 | 2022 | }, 2023 | } 2024 | --------------------------------------------------------------------------------