'''Version History:''' (Updates from the previous version are in GREEN; development notes are in BLUE) 10/3/05 - !CheeZy - Made some corrections in the Index listing (7.4.3) 19/2/05 - !CheeZy - Updated the Table of Contents with a Priority Listing, Removed section 5.1.2 Biomes. 25th July 2004 - Stuart - Updated to comply with Nathanael's new index. Split into three separate topics (since it only references the first one). 21/06/04 - Added section 7.4.3 - Object Spawner tool - !CheeZy 13/06/04 - updated all the triggers with Functions, describing what they do. - !CheeZy 01/05/04: v0.97: Overview of latest changes, by Stuart. Proofread. Added hyperlinks and blue-text convention. Updated TOC. Restructured layout (eg inserted workspace manager, moved priority list to back). Added Atlas definition. Elaborated on various things like workspaces. Fixed some discrepancies. Added preliminary Territories attributes. Queried a few things. Rewrote sections like the Campaign Editor, Environment Editor. 01/05/04: v0.96: First reliable game-ready version, by !CheeZy. 13/03/04: v0.942: Added the Priority List (!CheeZy). 07/03/04: v0.941: Minor changes by Bobby aka !CheeZy, updated section 7.4.2 Area Editor. 04/03/04: v0.94: Restructure, UBB conversion, proofread, and programming input by Stuart aka Acumen. 04/03/04: v0.93: First team release by Bobby aka !CheeZy. ----
'''"ATLAS" SCENARIO EDITOR DESIGN DOCUMENT''' '''v0.97'''
''Atlas: - n. A Titan featured in Greek mythology, kin to Prometheus. - n. The Titan doomed to carry the weight of the world upon his shoulders. - n. A pictorial reference of the world's terrain, used for navigation.''
---- '''PRIORITY LIST''' Listed here are the features of the Editor sorted by Priority level � the level of which they should be done. This serves as something to create milestones for the development of the editor, and to guide the programmers into knowing what features to work on first. '''Level 1 Priority � Basic features relating to editing and placing objects on a map.''' * - 3.0-3.3, 3.5 GUI � The Graphical User Interface of the editor with its buttons, menus and windows. Try to set up as much of it as possible even if it won't work yet. * - World Interaction up to par with the normal game (click and move units, etc) * - copy and paste functionality beginning to be implemented * - 6.1 Edit Elevation * - 6.4 Brushes * - 6.5 Terrain panel * - 7 Object Editor * - 7.4 Place Object List * - 9.1 Lighting '''Level 2 Priority - Advanced features relating to editing and placing objects on a map''' * - 7.5.2 Object manipulation (rotate, scale, move units similar to AoM's editor) * - 6.3 Water * - 6.2 Cliffs * - 6.5.1 Randomise Terrain Palette * - 9.4 - Sky '''Level 3 Priority � map enhancing features, along with scripting and "data" enhancing features of the scenario editor, play support''' * - 5.0-5.2 Map Creation and load/save functionality * - PLAYTEST SUPPORT � Ability to start and test a scenario ingame. * - 5.1-5.1.2 Map Creation Ability to load and test Random Maps * - 10 Player Editor * - 6.5.4 Map Copy * - 7.4.2.1 Object Manipulation Tool Window '''Level 4 Priority � Final features needed so that work on the Campaigns can begin.''' * - 8.0-7.5.3 TRIGGERS * - 7.4.0 Object Settings. * - 7.4.1 Edit Object * - 9.2-9.2.4 - Weather * - 9.3 Seasons * - 11 Civ Editor * - 12 Diplomacy Editor * - 15 Message Editor * - 14-14.1.2 Cinematics Editor * - 14.2 Cinematic Track Variations * - 13 Playlist Editor '''Level 5 Priority � Supplementals and mod support and custom workspace creation.''' * - 6.2.1 Custom Cliffs * - 6.3.2 Custom Water * - 6.3.1 Beautify Water * - 6.5.2 Beautify Terrain * - 18. Hotkeys � mapping out hotkeys for as many of the editor's functions as we can. * - 7.2 -Create Objects * - 3.4 Help Box/Library * - 13-13.3 Campaign Editor * - 4.0 - 4.2 - Workspaces * - Search for bugs� * - Anything else�? = OVERVIEW = The "Atlas" Scenario Editor is '''0 A.D.''''s "toybox", used to play with existing content by creating new maps, scenarios, and campaigns. * Allows users to open, load, save, create, and edit maps (scenarios). * Allows users a wide selection of tools to shape and create their maps. * Allows users to use "triggers" to script events in their map. * Allows users to use Cinematics to create cutscenes and in-game movies for their map. ''NOTE: Some of the concept images still need to be updated to account for recent revisions. When in doubt, trust the text.'' == Functionality == * The Editor must be very sleek and easy to use, yet be very powerful and improve on current RTS editor standards. * It must be extremely robust, capable of creating all the scenario content that will ship with the game, and suit the needs of designers in the Scenario Design Community. * A large community will be built from our Editor and other features of game editing/moddability. Attention needs to be given not only for our needs but the needs of future modders. * The player must be able to make use of hotkeys in the Editor. Hotkeys need to be assigned to most common tasks. * Cut and Paste should be available for everything in the Editor (triggers, unit selections, etc) by pressing ctrl+c to copy and ctrl+v to paste. * Almost every placeable object in the Editor should have support for custom user defined versions. * We anticipate that the Prometheus Engine and Atlas Editor will be reused for development of '''The Last Alliance''', so it is important to develop a neutral Editor that doesn't only have '''0 A.D.''' in mind. * Anything that can be stored in memory (triggers, camera tracks, random texture palettes, map copied data, lighting sets, elevation files) should be importable and exportable. Each of these features will have an import/export button in their section. Importing and Exporting is important for people who want to move over their work to another scenario, or make templates for designers. This is really more up to the programmers to figure out what things can be exported/imported. Try to use it as much as possible. If you want to inquire about something ask Bobby/!CheeZy. == Accessibility == * The Editor will be accessible through the main menu of the game. * The Editor will be internal and displayed ingame, not external. * Early development versions of the Editor can be external, but ultimately it will have to be integrated into the game. * The Editor will need to be compatible with all supported OS platforms (Windows and Linux) = GAME WORLD VIEW = Like a game session, the majority of the screen is dominated by a view of the game map. The Game World view takes up most of the screen. = MAIN GUI = The Editor will have some very (very) simple GUI art such as borders and angles and buttons to help promote its style and be visually pleasing, making it comfortable to use. Territorial markers and gridlines over the Game World View will be toggleable on/off through the '''View''' section of the Editor (which was tragically forgotten about in all the concepts, though it'll be there later on when the concepts are updated). The Editor GUI will have a '''Hide GUI''' button which removes unnecessary information and makes the opaque sections transparent, increasing visibility. Alternatively, he can use the alt+shift+ctrl+down/up hotkey. A concept will drawn up on request of the programmers/GUI artists. This is what a main editor screen should look like: [[Image(http://0ad.wildfiregames.com/~gamedesign/editor/FINAL-CONCEPT.gif)]] Blank Main GUI [[Image(http://0ad.wildfiregames.com/~gamedesign/editor/concept-final-diagram.gif)]] Annotated Main GUI '''''Definitions''''' '''Section Menu''' Section Menus are static menus of the interface, as represented in concepts (such as the Trigger Editor or Map Editor). They can't be moved from their position, and only one can be open at a time. A Section Menu will appear for each main section of the Editor. That is where you can locate most tools you need for that section. '''Window''' Windows display information, or function as mini-menus: things that are too large to be placed on a Section Menu, but not big enough to be their own Section Menu (such as the Group Editor, or the Playlist Editor). A window is movable and minimisable. You can move it and minimise it into the bottom of the Editor UI much like the Windows task bar, just that the area will not be opaque. Concept available on request. An example of a Window: [[Image(http://0ad.wildfiregames.com/~gamedesign/editor/create-custom-water-window.gif)]] Example Window: Create Custom Water A window has some standard icons, as shown, which function as follows: * '''New (Blank Page):''' Either brings up a browse menu to load a file, or wipes the screen blank. In this case of the Create New Water window, it wipes all the settings in the window and resets it to blank (after prompting you, of course). * '''Open (Open Folder):''' Loads up a browser in which you choose whatever you want to open. This is not used for importing since the thing you would be opening is already installed, and if it's already installed (in the proper folder) then the game recognises it and uses it. * '''Save (Floppy Disk):''' Saves the data to your harddrive, and will have the same purpose as "Create" if create is an option in the window. * '''Close (X in top right):''' Has the same function as a Cancel button (closes window without saving any changes). * '''Help (? in top right):''' Brings up the Help Database window displaying information on whatever the window is for. Read the section on the '''Help Box''' for more info. * '''Minimise (_ in top right):''' Minimises the window to the bottom of the screen. == Menu == This shows all the different menus (or sections) of the Editor ("File", "Map", "Objects", etc). They are positioned at the very top of the Editor interface. Each menu represents a section and lists options/features for that section. Clicking on a menu will produce a drop down menu with actions related to that section. Example for the File menu: [[Image(http://0ad.wildfiregames.com/~gamedesign/editor/edmenu1.gif)]] File Menu From the File menu, the player can perform several important tasks, like saving the scenario in its current state, loading a different one in the current '''Workspace''', closing the Scenario Editor, or testing (running) the scenario. The drop down menu will list the sub-sections of the section and also the hotkey command to quickly access it. (We can either show the hotkey commands by highlighting a letter in the menu option (eg '''S'''ave), or list the hotkey commands to the right (as demonstrated). Clicking on an item in a drop down menu will open that item, whether it's a section menu or a window. === Menu Options === This section describes what option appears on what pull-down menu. A concept image with all the drop down menu features is coming soon. Note that you can put other stuff in the pull-down menus as long as they fit there, and most likely some things will be forgotten or new features will come up and you'll need to put them into menus yourself. Consulting Bobby (!CheeZy) is recommended when doing things outside of what's instructed in this document � just so that he can note the change and write it down. == Toolbar == Just like most Windows applications, this toolbar has little buttons that you can click on to open up whatever action they do. Toolbar buttons are static and will not change during use of the Editor. Not only will these be in the toolbar, but we'll have buttons elsewhere in the Section Menus, for example, taking you from the Cinematics Editor to the Trigger Editor. Note the up and down arrows on the right end of the tool bar. Clicking up will minimise the toolbar (drag it up and hide it). Clicking down will pull the toolbar down. [[Image(http://0ad.wildfiregames.com/~gamedesign/editor/figure1.3.3.1toolbar.gif)]] Minimised Toolbar Clicking down again will pull down a second toolbar that displays custom shortcut buttons. These are defined through a hotkey editor. This will be separate from the Editor, done through our game options (for example, click Options from the start menu -> Game Options -> Editor Options). If we don't have time to add a GUI hotkey editor, this can be done through an external configuration file. [[Image(http://0ad.wildfiregames.com/~gamedesign/editor/figure1.3.3.2toolbar.gif)]] Maximised Toolbar A maximum of 2 rows will be used for toolbar buttons as shown above. A smooth sliding animation effect would be nice to have when you slide the toolbars up or down. == Info Selections == The Info Selections are a handful of (8-10) buttons that you can click to toggle a piece of statistical info that will be displayed on the GUI. The info will either appear in a window or directly on the screen depending on the function of the info you are viewing. * Dev info. * World info (how many objects are on the map, average terrain used). * FPS/Technical info. Ideas for Info that the Editor could display needs to be brainstormed. Concepts for each will also be made. == Help Box == The (semi transparent) Help Box displays helpful tips and context-sensitive information about the currently used section of the Editor (tip of the day about triggers when in the Trigger Editor, the tips for elevation when using elevation tools, etc). The contents of the Help Box will be constructed by Bobby (!CheeZy) when the Editor's features are outlined and nearly finished. The helpbox can be maximised into the Help Library which uses the Window form in our Editor. This entire library is all in-game, much like our in-game manuals. An XML markup system is preferred for making this library as it will mostly be text. == Mini Map == The Mini-Map has the same function as that in a standard game session (and can be largely reused): showing the game world, and permitting rapid navigation around the map. However, the Editor's Mini-Map will be more compact (about 70%-80% of its size). It will also need to be on the right-hand side of the screen to provide easy access to controls on the left. Nice to have: Holding down the left mouse button and then clicking the right button will maximise the minimap into a Window form and display interesting information, such as the highest elevation, most used terrain, # of units on the map, etc. The info displayed here will also be available to be accessed on the Info Selections area, though that one will not show the maximised minimap to save space on the screen. = WORKSPACE EDITOR = == Definition of a Workspace == '''Workspaces''' will be a unique way for us to greatly enhance functionality for Scenarios, Campaigns, and Mods. In fact, a '''Workspace''' doesn't make any distinction between them. It's likely that no one will really know what we mean by a '''Workspace''', since no other Editor has done something like this. In other RTSes, a Scenario is essentially a small library of files which contain unit data, triggers, unit placement data, map data, etc. When saved, all this data is compressed and compiled into a .scn file. Upon opening, all these files are decompressed and decompiled and loaded by the game engine. '''Workspaces''' take this a step further. A '''Workspace''' is a "wrapper" or "container" for custom content. It uses the same tree as the game's "official" data directory folders, and stores modified or new files in the same structure. It's a simple order of operations. The game first checks for files in any active '''Workspace'''. If it cannot find them, it uses the default ones in the official/ game pack. So, a Scenario will still reference the files in the official/ data and use them. However if a replacement file is found in the Scenario's '''Workspace''', the Scenario will use that file instead of the one found in the official/ data folders. A '''Workspace''' can contain any number of Scenarios and Campaigns, as well as any edited or additional data you want them to use, such as the mesh, texture, animation, sounds and attributes for a brand new unit, or a whole forest of higher-poly replacement oak trees. So, Scenarios and triggers and all the data that is created when working on a map are also saved in their appropriate folder in their '''Workspace'''. Want to use custom or modded units in your map? No problem, simply import them to your '''Workspace''' and you're done. The Scenario will now use the objects imported in the '''Workspace''' instead of the version of that object in the normal official/ folder. Makes sense? I tried my best explaining it. === Local/Global Workspaces === This is where it gets interesting. A '''Workspace''' can be put interchangeably in a subfolder in scenarios/, and be treated as a '''Local Workspace'''. Or it can be put in a subfolder in mods/, and it'll be treated as a '''Global Workspace'''. * '''Local Workspace:''' Custom content in a '''Local Workspace''' is only used when running a Scenario contained in it. So, you can use your hacked unit in your campaign, without permanently changing that unit for every other scenario in the game. This is typically used for distributed scenarios and campaigns. * '''Global Workspace:''' Custom content in a '''Global Workspace''' (or "mod") is always used, as long as the '''Workspace''' has been "activated" (they can be enabled/disabled from an Autorun-like configuration menu before the game starts). So, you can make drastic changes like replace the title screen with a new image, modify the GUI, or introduce a new unit to the game that can be accessed by any '''Workspace''' without importing it. This is typically used for distributed mods or total conversions. === Distributing Workspaces === When you're ready to distribute your '''Workspace''' for others to enjoy, the mod tree can be compressed into a single file, which can be used simply by putting it in the right folder. '''Workspaces''' can also be split into multiple archives (if, for example, you want to keep the data for your special unit separate from the rest of the campaign to distribute it separately). They'll be treated as part of the same '''Workspace''' as long as they're in the same folder. If the same file is stored in two archives in the folder, then the first found version of the file is used in preference. === Workspace Manager === The '''Workspace Manager''' is the first thing you will see when you open the Editor. You must specify a '''Workspace''' (much like selecting or creating your Profile for an RTS game) in order to proceed, so that the Editor knows where to save any content you create. [[Image(http://0ad.wildfiregames.com/~gamedesign/editor/Function_workspace.gif)]] Workspace Manager * '''Workspace Name''': Click to specify a name for your '''Workspace'''. Default names like "workspace1", "workspace2", etc, will be used unless changed by the user. * '''Specify Source Folder''': Specify the folder where all the source data is stored. The "Source Data" is basically "the game". Usually it points to the official/ game pack. However, if you want to create Scenarios for someone's total conversion mod, you can point to that instead, and it'll use that as the source. * '''Save as Scenario/Save as Mod:''': Select where the '''Workspace''' tree will be saved (under scenarios/ or mods/). "Save as Scenario" is the default, as people will typically start with '''Local Workspaces''' before moving onto ones that affect the whole game. See the distinction between '''Local''' and '''Global Workspaces''' for more information. * '''Create''': Click to create a '''Workspace''' using the above settings, and add this '''Workspace''' to the list. * '''Your Workspaces''': This is a browser that shows all the '''Workspaces'''. '''Workspaces''' will all be stored in data/mods/ or data/scenarios/. When a '''Workspace''' in the list is clicked, it turns green to show it is selected. You can click the + button next to a '''Workspace''' to expand its contents, much like how Windows Explorer works. * '''Rename''': The selected '''Workspace''' will be updated with a text cursor, allowing you to edit or change the name. * '''Import to''': The selected '''Workspace''' will be imported to another '''Workspace''' or folder � which you have to specify in the window that pops up asking you to select which folder to import to. The contents of the selected '''Workspace''' will then be copied into the specified '''Workspace'''. * '''Duplicate''': Makes a copy of the selected '''Workspace''', and adds "Copy of" in front of its name. So when you copy workspace1 for example, the duplicate's name will be "Copy of workspace1". * '''Delete:''' Brings up a confirmation window asking you if you're sure you want to delete the '''Workspace'''. * '''Load''': Load the selected '''Workspace'''. If there is a map in the '''Workspace''', then it will load the map. If there is more than one map in a '''Workspace''' it will load the map that was worked on last. If there is no map then it takes you to the "Generate Map" window � see the next section. * '''Cancel''': Closes the Editor and takes the user back to the Main Menu. = MAP EDITOR = [[Image(http://0ad.wildfiregames.com/~gamedesign/editor/Section_Map-Creation-menu.gif)]] Blank Map Editor [[Image(http://0ad.wildfiregames.com/~gamedesign/editor/Section_Map-Creation-Diagra.gif)]] Annotated Map Editor These options are used to generate the most basic attributes of a new map. == Map == === Size === * '''Tiles Drop-Down:''' Drop-down box to pick a custom map size eg 208x208. Additional sizes can be specified in its XML file. * '''Small, Medium, Large, Huge Buttons:''' Click these buttons to specify a preset size of grid tiles for the map. '''''See Maps in the Game Design Document for accurate tile dimensions of these map sizes.''''' === Random Map === * '''Random Map Drop-Down:''' Choose a Random Map compatible with the selected Biome. Custom-scripted Random Map Scripts are also included in the list. Alternatively, the user can choose various types of blank terrain (eg "Blank Grass", "Blank Water", "Blank Rock"), which generates a flat map covered with this terrain type. The Editor will include some exclusive specialty Random Maps, such as "Light Mountains" that simply makes a random lightly varied elevation on the entire map, or "Grassy Rivers" that generates rivers on the map with varied grass terrain. * '''Random Map Thumbnail:''' Displays a thumbnail associated with the currently selected Random Map. == Map Settings == * '''Players Drop-Down:''' Specify the number of players on the map. * '''Settlements Drop-Down:''' Specify the number of neutral Settlements randomly generated on the map. "0" for no Settlements. * '''Resources Drop-Down:''' How plentiful resources are on the map. * '''Starting Phase Drop-Down:''' '''NOTE''': This has been omitted; ignore it in the concept. Starting phases will be specified in the Player Editor. (Good catch on that mistake, Stuart :P) * '''Territories Checkbox:''' Enable/Disable Territories. * '''Build Distance Drop-Down:''' Number of tiles distance that a building must be from other buildings in order to be constructed (typically used when not using Territories). 0 means no Build Distance limit. * '''Provinces Drop-Down:''' Number of Provinces per Territory. 0 means no Provinces. * '''Attrition Timer Drop-Down:''' Specifies how long Territories are closed from an opponent. Timer of 00:00 means borders are immediately open. * '''Attrition Damage Drop-Down:''' Specifies how much damage is inflicted per second when a unit is within an opponent's Territory while the Attrition Timer is active. Pending� * '''Generate! Button:''' Generate a new map using the specified settings. * '''Load Height Map Button:''' Click to load a heightmap (the elevation data) from an exported or internally made PNG heightmap. If the heightmap file is bigger or smaller than the existing map, the heightmap (or whatever part of it that can be shown) is generated anyway. * '''Load Terrain Map Button:''' Similar to Load Heightmap, but this loads a terrain map (the terrain data). This along with the Heightmap feature will save designers loads of time in designing since they can load up a premade terrain or elevation sample, made either by themselves or other designers. = TERRAIN EDITOR = Once the basic map has been generated, the player will have a number of tools that he can use to tailor the terrain it to his liking. [[Image(http://0ad.wildfiregames.com/~gamedesign/editor/terrain-menu-conceptfinal.gif)]] Blank Terrain Editor [[Image(http://0ad.wildfiregames.com/~gamedesign/editor/terrain-menu-concept-diagra.gif)]] Annotated Terrain Editor == Edit Elevation == '''''Inset Buttons''''' (only one active at a time) * '''Modify Tool Inset:''' Use this tool to smoothly raise the elevation by left clicking to raise elevation and right clicking to lower elevation. Speed is adjustable. (as in AoM). This will be the standard way of raising elevation while the others are for fine-tuning. * '''Smooth Tool Inset:''' Smoothes down the difference in elevation to create more natural inclines (as in AoM). Smooth intensity is adjustable. * '''Sample Tool Inset:''' Click the Sample Elevation icon and right click a section of elevation on your map your brush will sample that elevation size. or Click and hold down the mouse on a tile of elevation to specify the level to level. Then drag the mouse around to level all nearby terrain to that level. (As in Sim City). This is a much quicker process. * '''Intensity Slider:''' Used to specify the severity of whatever elevation tool is active at the time. Generally, this defines how fast the elevation will raise or be lowered based on the intensity setting. * '''Roughen Tool Button:''' Roughens the elevation by creating elevation differences. Roughen Intensity is adjustable. * '''Roughen Style:''' You will be able to select different styles of the Roughen setting, each with a different characteristic. Custom styles should be possible too, either within the Editor or outside it. * Standard � roughens the terrain in a standard average way. * Bumpy � creates bumps. * Coarse � opposite of bumpy; create sharp jagged points. * Cliff - creates deformities on angled elevation, such as cliffs. Best used to roughen angled elevation. * Mountain � creates deformities that appear on mountains. Basically it's the Coarse effect but on a much larger scale. * Plateau � creates a series of flats and lows on elevation; like Bumpy but the bumps are flat rather than round, and on a larger scale. * '''Scale:''' This is how big the selected roughen style will be (the overlay of roughness commands on the elevation). Familiar with Photoshop? If you've used the texturiser you can pick a scale for the texture overlay. This is the same thing. If you make the scale bigger under the "Bumpy" setting, then the bumps will be bigger. * '''Power:''' This is like "Contrast". That's the best way to describe it. The more power there is, the more contrast there will be in the Roughen style selected. For example, in the Bumpy setting, the bumps will be taller and the spaces between them will be deeper. It simply creates a more acute and sharp effect. Technically, by multiplying the roughen data by whatever the input for "Power" is. If the Standard setting tells the game to lower the elevation by 1 tile every 2 tiles and raise the elevation by 1 every 3 tiles, then the power would multiply these values. * '''Increment Tool:''' Type in a value for the elevation and the brush will be set to that value. Negative values make elevation under the ground level. So if you set the value to 3, then the elevation height for the brush is 3, thus when you click, all the elevation under the brush is set to 3 height. == Cliffs == Select a cliff from the scrolling menu and click "Place Cliff" to activate the cliff placer. Select a point on the map and the cliff will be placed based on the specified cliff settings. * '''Height:''' Defines the cliff's height. * '''Angle:''' Defines the cliff's angle (in degrees). Angles range from 45 to 90 degrees. * '''Smoothness:''' Defines the cliff's smoothness. === Custom Cliffs === Clicking the "Create Custom Cliffs" icon will open up the Custom Cliffs window, as shown in the concept above. Define the settings and click Create to make your new cliff. The cliff will be placed in the Cliff scrolling list. == Water == Select a water from the scrolling menu and click "Place Water" to activate the water placer, using current height. Select a point on the map and the water will be placed based on the specified water settings. * '''Depth:''' Deepness is adjustable. For example, 0 Depth will make the elevation directly under the brush turn to water without lowering the elevation. 1 Depth will place water under the brush but will also lower and smooth the elevation under it by 1 height. Depth values range from -10 to 40. The default value is 5, the standard depth for our water (I guess?) Yes, that's right. -10. That means you can actually raise water. Instead of deepening the elevation under the water, it raises it with the water still on top. This will allow designers to make "rapids" and cataracts and things like that, not to mention make waterfalls easier to make as well. This feature will not be used in the regular game (Random Maps) but is here to add diversity and creativity to players. You will be surprised at how quickly designers will find some insanely creative uses for this. Not to mention water like this has been requested since AoK. Support for this is highly requested. '''Under this method you won't be able to use a global water plane (such as making all elevation under 0 have a water surface), but rather it would be necessary to define the surface for each body of water.''' Usually it will be 0 (elevation height) but it's requested that we be allowed to change that. * '''Colour:''' Specify the colour of the water by using RGB values. Click the block of colour to bring up a small window asking you to specify the new RGB colours (or better yet! Have a Windows style colour picker). Click OK to set the colour. I have no idea how we're doing water, but I'm hoping it'll have a surface texture and a water colour. If that's the case, you choose the surface texture (which also has a default colour) from the "water" list and thus, you edit the colour of the water through this. * '''Smooth Radius:''' The area in tiles to smooth the edges of water shores. === Beautify Water === An excellent function of the AoM editor, it randomises the depth of the target water terrain, adding reeds, lillies, fish and accurate shorelines, making it a whole lot easier for the player. Clicking this button will bring up the Beautify Water window and will prompt you to select a body of water. Do so and then click the water again to Beautify it (which will place random objects/waves around the shoreline and in the body of water which are defined along with other settings in the Beautify Water window); concept coming soon. You will be able to select different Beautify Water Styles to beautify the water. Custom styles should be possible too, either within the Editor or outside it. * Standard � this will place the normal generic rocks and weeds around a body of water. * Ocean � this places sand/beach related items on the water and shoreline. * Beach � same as ocean but has a lot more beach related items and vegetation on the shoreline. * River � places rocks and bits of grass that are on a river's edge. * Pond � places water lilies and things that appear on ponds. * Lake � places objects that appear on lakes. More Tragedy; I forgot to put this feature in the concept too. Hopefully you can guess how it will look without need of a concept. It'll just be another pull-down menu where you select what style to use. === Custom Water === Click the Custom Water button to bring up the Create Custom Water window. Define the settings and click Create to make your custom water which will be placed in the Water List. This is just like the Create Custom Cliffs tool, but for water. [[Image(http://0ad.wildfiregames.com/~gamedesign/editor/create-custom-water-window.gif)]] Create Custom Water Window == Brushes == All our brushes are scalable through the brush size slider to the left of the Mini-Map, and a hotkey system should be made to quickly change brush sizes (alt+click+drag to define the length and width of the brush). Our brushes are: * Circular � A brush in the shape of a circle. * Square � A brush in the shape of a square. Note this can also be turned into a rectangle through scaling. * Hollow � The Square brush but with a hollow centre, one tile thick perimeter. Thickness can also be changed, either through the interface or a hotkey. == Terrain Panel == The player can choose a terrain texture from the list, and simply paint it onto the mesh using the current brush size. A small square in the terrain placement bar previews the texture selected. For ease of access, the player can choose from several subdivided alphabetised categories of terrain textures, such as Grass, Road, Rocky, Marsh and All (entire list). For the full list of terrain textures, see the '''''Terrain section of the Design Document'''''. To switch to Biomes press "ctrl+alt+b". By default, Biomes will only be used in RMS. However a user can choose to place terrains through Biomes to increase performance. When using Biomes, the tabs on the top of the terrain list will change to show tabs for the predefined Biomes in the game. So instead of the tabs saying "Grass, Road", etc, it'll say "Temperate, Alpine", etc, Clicking the tabs will show a list of all the terrains in that Biome, sorting them each as "Primary", "Secondary", etc. See the '''''Biomes section in the Design Document'''''. === Randomise Terrain Palette === You do this directly on the Terrain list. Select up to 10 terrains and assign them a number value (do so by left clicking to raise their value and right clicking to lower). The brush will then randomly place the selected terrains in the order of the ones with the highest number appearing the most, and the ones with the lowest number appearing the least (as in Cossacks). This is an excellent tool for easy terrain mixing. Note that normal terrain placement uses this rule. When you click on a terrain to place, a number 1 value appears on the selected terrain. Since no other terrains are selected, the terrain has a 1 of 1 percentage chance (100%) of being placed. If you have 2 terrains both with 1 as their value, then they each have a 1 of 2 percentage chance (50%) of being placed. Makes sense? ==== Randomise Terrain Palette ==== This a simple pull down menu in the Randomise Terrain Palette Window that shows a bunch of premade palette mixes. The data is stored in XML (along with the priority numbers) for the terrains in the palette mix. You can save and load premade palettes made by yourself or others. === Beautify Terrain === Clicking this button enables terrains to automatically place sprites or other terrain-enriching objects. The Beautify settings are predefined in an XML database somewhere which says what objects to place for what terrain. === Map Copy === [[Image(http://0ad.wildfiregames.com/~gamedesign/editor/map-copy-window.gif)]] Map Copy Window Yet another Tragedy; this didn't make it into the concept for some reason, I think I ran out of room. Anyway, you can put a "Map Copy" button under the Terrain previewer and have it open up the Map Copy Window. Concept coming soon. This tool allows the player to copy a section of the map into memory, and paste it at another point on the map. There are also buttons to rotate this copied section left or right, and mirror up or down. You can also export and import Map Copy instruction sets. Note that unit and other object data are not included in Map Copy. Only elevation and terrain. Remember that Objects can be copied and pasted simply by selecting them and pressing ctrl+c to copy and ctrl+v to paste. These are global hotkeys. = OBJECT EDITOR = [[Image(http://0ad.wildfiregames.com/~gamedesign/editor/section-menu-Object.gif)]] Blank Object Editor [[Image(http://0ad.wildfiregames.com/~gamedesign/editor/section-menu-Object-diagram.gif)]] Annotated Object Editor This section allows the player to place player-controlled objects from an Object List, and specify their attributes. == Object Filters == There are several category buttons that can be used to filter the list: * All. * Buildings. * Military. * Flora (Plants, trees, etc). * Eye Candy (Bridges, statues, etc). * Units (all units). * Nature (Fauna, rocks, etc). == Create Object == This button opens up the Object Editor Window. Details and concepts for this window that allows you to create/import new objects will be added soon. == Place Object List == This shows a scrollable list of the objects, alphabetically listed. The selection can be further defined through a few additional controls: * '''Player List:''' Indicates the number and colour of the player which will have control of this unit once placed (includes an entry for Gaia). * '''Civ Sort Drop-Down:''' Indicates which civilisation's units will be displayed (All, Celts, Persians, etc). This allows a player to be assigned units that it cannot train. By default, it is set to the current player's civilisation. Trees and animals default to Gaia. * '''Show Drop-Down:''' This has the same entries and functionality as the Object Filters. Experienced users will tend to use this instead. In the unit placement list, pressing a letter (like A) will take the player to the first unit starting with A in the list. The text entry for the currently selected unit is displayed in green. == Object Settings == Upon selecting a unit, the bottom bar of the Section Menu is updated to show its properties (name, portrait, civilisation, player, hitpoints, attack, armour, etc), similar to those in a standard game. The bottom half of the section menu (the Animation Viewer) also displays a live rendering of the selected unit in its default animation. The drop-down box below it lists the animations available to this unit, and allows the player to select which animation to view. === Edit Object === Click the Edit Stats button to open a window where the unit's statistics can be modified and saved (as shown in the concept above). Editing Stats through this and triggers for individual units is '''VITAL'''; This has to be done, no matter how hard or performance compromising, to have a good editor. We cannot settle for AoM's way in which its stat editing triggers would change the stats for the entire object class (all objects of that type). For this reason AoM's editor was considered inferior to AoK's even though it was better in all other aspects. If AoK could do this (individual unit stat editing) then we can too. We will accomplish this by making the Editor derive a new custom entity when editing a unit, and have this individual point to this entity for his stats. This maintains the efficiency of an entity system while achieving the desired effect. === Object Manipulation === The user can manipulate a selected object in the Game World View using the following hotkeys (no matter what menu is currently active): * '''Move''' it, by dragging a selection box around it, and then clicking and dragging it on the map. This allows the user to move the object anywhere on the map, even if the unit cannot function there, such as cliffs, underwater, inside other units, etc. Complete freedom. * '''Position''' it, by selecting the object and pressing alt+up arrow or alt+down arrow to move it up or down on the map (make it float or sink in the ground). * '''Rotate''' it, by selecting it and pressing ctrl+left arrow or ctrl+right arrow to rotate it in that direction (Z axis). Additionally you can rotate it on an axis by pressing ctrl+up to rotate it upwards, ctrl+down to rotate it downwards (Y axis), ctrl+alt+left and ctrl+alt+right to rotate it sideways (X axis). * '''Scale''' it, by selecting it and pressing alt++ and alt-- to scale it up or down. ==== Object Manipulation Tool Window ==== This window '''''' can be opened up to access a number of settings and commands that can be enforced on a unit, many of which mirror the manipulation hotkeys. These controls include: * '''Direction:''' The angle in which the unit will be pointed when placed. The default is 135 degrees � the unit is facing south east. * '''Group Drop-Down:''' The unit will be automatically placed into the specified trigger group (if specified) when placed. * '''Stance Drop-Down:''' Default stance for the unit (Aggressive, Defensive, etc) when placed. * '''Move Button:''' Moves the selected object when active. * '''Spawn Button:''' With Spawn active, the player can select an object, then click and hold down the mouse button. Dragging the mouse will fill every tile that the mouse moves over with an instance of this unit. Much faster than clicking a ton of times to place a unit. * '''Scale Button:''' With Scale active, click a unit, then hold down the left mouse button and drag it up or down to smoothly scale the size of the unit. This window also has controls to display info on the unit's grid tile, toggle a display of the units' LOS, and many more interesting goodies that we can come up with (programmers permitting). === Object Spawner Tool === This tool will be used to primarily to place forests on the map. However With a step up in power and functionality this becomes a much more powerful tool, and thus needs a name not specific to forests. The Object Spawner tool takes the form of a window which looks like this: [[Image(http://www.wildfiregames.com/~gamedesign/editor/object-spawner.gif)]] The top left list shows the available forests available to you, and the top right list shows other �spawn classes� that you can paint on the map. Here is an example of what the Object Spawner would do. Firstly, it can paint forests on the map. Just like in any other RTS game, you select your forest and you paint it on the map with your brush. However, in 0AD, the same method applied to placing forests can also be applied to any other object � infact, you can make your own �spawn class� of objects that you want randomly painted on the map. This will help you design and detail your map very quickly. To take advantage of this system, the user will be able to make their own forests or spawn classes for their own use. Clicking on the �Custom� button under each list will bring up the �Create Custom Spawn Class� window, which will let you configure your spawn class and then save it to your workspace. ==== Placement Settings ==== The Placement Settings section of this tool allows you to fine tune the settings and parameters for painting your forests or spawn. * '''Density''': - Adjusts the density of the spawn being painted by a percentage value (which isn�t shown but represented through the scroller adjuster). For example if the density scroller is in the middle (representing 50%), then only 50% of the area being painted will have spawn objects appear on it. * '''Bias''': - This adjusts the Isolation/clumping togetherness off spawn objects. If the bar is at 50 (50%) then half of the objects being painted will be painted closer to another object rather than at an equal tile distance. This setting is needed to give the painted objects a more natural look with variations in density, rather than a 1 object per 1 tile thing. * '''Scale Difference''': - This will randomly scale the objects being painted by the specified scale values. A value of 0.8 to 1.2 means that the objects being painted will be between 80% and 120% of their original scale (a value of 1.0 = 100% = original scale). * '''Rotation''': - Similar to Scale Difference, this will randomly rotate the painted objects between the specified value. First of all click the little circle thing to enable Rotation, meaning that the objects will be randomly rotated apon placement. Then specify a value in Degrees. In this example, 0 to 360 degrees means that the objects being painted will randomly be bearing between 0 and 360 degrees. = TRIGGER EDITOR = == Trigger Introduction == Triggers are used to script existing commands as condition-effect events (if happens, then happens as a result). (They are basic If -> then logic statements.) There will have to be considerable triggers available in order to create the scenarios we require, from displaying dialogue text (relative to a specific unit), to changing ownership of soldiers, to winning or losing a game under certain conditions, to complicated events like letting the amount of gold you hoard influence the strength of your army. The trigger system will also have to be capable of incorporating new conditions and effects created by the player through independent scripting. This is what will make our Editor truly excel over others, our triggers. The most powerful triggers in the Editor will result in the most powerful Editor yet, and that is our goal. Nice-to-have: If we could, it would be nice to get more advanced and have triggers able to call in or use script commands. == Text Formatting in Triggers == Some sort of formatting code should be devised (like simple HTML) for formatting in messages. UI graphics and textures referenced with this formatting. '''Bobby, sorry, I don't follow. Could you elaborate on that sentence? - Stuart''' Also basic commands like < center > should be available as well. Some of our own invented commands could be `< color=,,''' >` (where RGB equals an RGB colour value) to specify a colour, < size > to make a size, and so on. == Trigger Editor == [[Image(http://0ad.wildfiregames.com/~gamedesign/editor/trigger-menu-concept.gif)]] Blank Trigger Editor [[Image(http://0ad.wildfiregames.com/~gamedesign/editor/trigger-menu-concept-Diagra.gif)]] Annotated Trigger Editor All these entries (triggers, conditions, effects, groups, clumps) can be renamed. When first created, they use a name that consists of its type and the next available number suffix eg Group1, Trigger3. To rename a trigger, click the title box (which is shown where the effect settings are in the concept) and type in the new name. Concepts coming soon for this and the conditions settings.. === Trigger List === A trigger must be created before condition-effects can be applied to it. Triggers are created, named, deleted and listed in the trigger list in a hierarchical format as shown. Organise triggers by clicking and dragging them into a new order or into a group or clump. Conditions and Effects that ask you to specify a trigger can also be assigned a group or clump, allowing the user to ensure an effect is applied to all triggers in a specified group. * '''New Button:''' Creates a new, empty trigger. This is a basic command; the player cannot make conditions or effects without triggers. New triggers placed on the list are automatically selected. Selected Triggers are green in colour. When a Trigger is selected its trigger menu appears. Each trigger will have a few definable parameters: [[Image(http://0ad.wildfiregames.com/~gamedesign/editor/trigger-menu-triggers.gif)]] Triggers Menu * '''Name''': Click to specify a name. Changes to a name are made live, so whatever you type, that will be the name; there is no confirmation or need to press Enter to accept the name. If the name for the trigger is already taken, or the name can't be used (due to incorrect characters maybe?) then a window appears saying "name in use, please specify a different name" or "invalid characters, you may only use the characters ". * '''Active''': Specify whether the trigger is active or not. If it's not active it will need to be Fired (Activated) by another trigger. * '''Loop''': Select to Loop the trigger. Loop the trigger for infinite. I'm still pondering whether this should have a timed loop or an interval like the Effect loop. I'll have to actually use some of the triggers to see if that would be useful or not. * '''Priority''': Give a priority to the trigger. This is simply to be able to optimise performance. There are four available levels (Low, Medium, High and Maximum). Triggers set to Maximum ignore the queue rules and just fire as fast as they can, without waiting in queue. We need to establish a limit to the number of triggers that can fire per second. Triggers in 3D games tend to be extremely performance demanding, and too many could even crash the game. A priority system would be a way to work around that. By the way, the "attack plan" for this is up for grabs, but here's my idea. We run some tests to see what the maximum amount of triggers can run on a 1ghz system or whatever our minimum requirement PC will be. When we see the performance take a sharp spike down, we check how many triggers the game was doing. Whatever that number is will be the maximum. Whatever limit is chosen, it would be preferable if we didn't hardcode it, so that we could increase the value as hardware evolves to cope. Let's assume the limit is 12 triggers per second. The triggers with priority will "queue up" in a line so that only 12 triggers will be used at a time. Let's say that 6 triggers on maximum priority can fire, 4 triggers on medium priority, and 2 on low priority. If the trigger list is using triggers that are spread all over the spectrum (maximum to low) and more than 12 want to fire per second, it would queue them up in this way. Let's say that you have some triggers only on high and only on medium priority. Then the slots in the line that go for the Low priority triggers will instead be divided out to the High and Medium priority triggers. So then we'd have 6 high priority ones and 6 medium priority ones. I hope this makes sense. Now you might ask the question: "Why can't we just make it so that high priority triggers fire before medium ones, and medium ones before low ones?" That's what Ensemble Studio did with AoM. It turned out to be very annoying since so many high priority triggers would fire, that anything under high would take 5-12 seconds to fire and it was incredibly annoying for designers. The above alternative will be most efficient I think, and the only delay would be 1-5 seconds for stuff on low priority. * '''Copy Button:''' Copying an entry will create a duplicate entry in the format "Copy of ". * '''Cut Button:''' * '''Paste Button:''' * '''Delete Button:''' Deletes the selected entry. No prompt window for this because it's incredibly annoying when it asks you 20 times if you want to delete 20 triggers. Instead, the user can press the universal Undo command (ctrl+z) to undo the delete and restore the trigger. * '''Group Button:''' Creates a new trigger group. A trigger group is a group that can house triggers; the player can name the trigger group. By default, there is only one group unless you make more. Trigger groups are created to put related triggers into sensible order (since the list can get messy), and to control a group of triggers. The player can copy triggers from the trigger list into a trigger group, or vice versa, using the standard cut-copy-paste commands above. * '''Clump Button:''' A clump is a trigger group within a trigger group (a sub-group). From Bobby aka !CheeZy: "'''NOTE''': In the concept, I had another copy button under the Group and Clump button. Originally that was there to copy the group or clump, but there's no reason why the other Copy button shouldn't apply for the groups and clumps. There won't be a Copy button under Clump in the real version, so don't put that in. I'll update the concept later." === Conditions & Effects List === Below the Trigger List is a similar area which lists all conditions and effects attached to the currently selected trigger. Functionality is virtually identical to that for the Trigger List (ability to drag, delete, rename, cut, copy entries; so we won't repeat them here unless they differ). If no trigger is selected, this list is blank. If a trigger is selected (colour changes to green), then this area shows the conditions and effects assigned to this trigger. It is split into two tabs, one for Conditions and one for Effects. Here is a basic rundown of the layout for the GUI for Conditions and Effects: [[Image(http://0ad.wildfiregames.com/~gamedesign/editor/trigger-menu-effects.gif)]] Effects Menu * '''Condition Button:''' Creates a new condition and adds it to the Conditions list. A condition is not mandatory for a trigger to function; a trigger without a condition simply starts straight away. Conditions are requirements that must be met before the associated effects can be triggered (such as timer, object exists, accumulate stockpile). A trigger can have multiple conditions. When a Condition is selected it updates the menu (in the Horizontal bar area) to the Conditions menu. Concept: [[Image(http://0ad.wildfiregames.com/~gamedesign/editor/trigger-menu-conditions.gif)]] Conditions Menu * '''Name''': Click to type in a name, just like in the Trigger Menu * '''Condition''': Click to select a Condition from the drop down list (a full listing with descriptions is available in the '''''Conditions Master List''''' section). * '''Logic � "Not" and "Or"''': Each condition can have a logical bridge to chain them together: either '''"or"''' or '''"not"'''. The "and" logic is already used by default. If there is more than one condition in the list, that's an '''automatic''' "and" logic (the trigger needs both conditions to be met for the trigger to fire). '''- Not''': If the conditions specified in the Condition are NOT met, then the Trigger will fire. '''- Or''': If either of the Conditions specified are met (this requires 2 Conditions), then the Trigger will fire. For example. If "Condition timer" or "Condition Resources" is met, then the effect will fire. * '''Effect Button:''' Creates a new effect and adds it to the Effects list. A trigger '''must''' have at least one effect. As for conditions, effects can be bridged using the same and/or/not dynamic. Effects range from declaring victory for a player, to the alteration of unit stats like attack, to another player declaring war against the player. '''Multiple Selection �''' You will be able to select more than one object/thing by shift+clicking or shift+dragging (to select) objects for all object related triggers (that want you to select objects). '''Effect Timers �''' Although our trigger structure will not be similar to that of Empire Earth's, we will have '''Effect Timers'''. This will allow designers to fine-tune events without having to make tons of timer triggers. Instead, a user can create one normal timer condition, which will then fire the effect. Let's say effect one has no timer. It fires as soon as the condition is met, but then effect 2 has a timer, meaning that it won't fire until after the timer expires after it is "fired". * '''Script Button:''' Ignore this for now, this needs to be discussed in a programming meeting. == "String"-based Materials == The Editor will need to be able to "tag" objects; give them an ID string, for use in triggers. In particular, two features that the Trigger Editor must be capable of is stringing groups of units and stringing areas on the map. === Unit Group Editor === The Unit Group Editor, or just Group Editor for short, allows you to tag multiple objects into a group, thus enabling them to be referred to as an entire group. This is useful to designers in Triggers since they can define all their units, and then have a trigger create an effect for all of those units instead of having to make a trigger per unit The Group Editor appears in a window, accessible by clicking the "Unit Group Editor" button in the Trigger Editor Section Menu. Options in the window are as follows: * '''New Unit Group:''' (Note: You can set a unit group instead of a unit for every trigger that asks for a unit.) Groups will be made and controlled much like normal triggers. Click this button (New Group) to create a new (blank) group. Give it a name (which will be used as the string), and select the objects on the map to be included in this group. Click the '''Update''' button (while your objects are selected) to create the group. * '''New Ghost Group:''' This is a tricky one. This will create groups for objects that are not yet on the map, meaning that the units will be created or added later. Click '''New Ghost Group'''. Give the group a name (which will be used as the string). From the pull down menu, select what object will be in the group. (and) will appear. Click it to open up another slot to choose another object, etc. (and) will continue showing up with a new slot to include each time it is clicked. Under each slot, specify the number of units to include in the group. To group all units (there's no limit), leave the number blank. Check the box saying "group in area". This will unshade (make available) the Area Selector. Select an area on the map where you want these ghost units to be grouped (if they are created in that area). The selection method will be the standard click-and-drag over a bunch of tiles method, in which it just creates a rectangular/square area. Nice-to-have: If feasible, a "connect the dots/polygon" way would be preferred, in which rather than selecting tiles, you put points on the map which the game then connects with a line. Anything inside this polygon that you just made would be your area. * '''Delete Group:''' Deletes the group. * '''Copy Group:''' Makes a copy of the group. * '''Cut Group:''' Removes the group and puts it on the clipboard (temporary storage). * '''Paste Group:''' Pastes the cut group. Can only be pasted in the Group Editor. === Area Editor === This is similar to the Group Editor, but instead of defining units, this defines Areas. You will be able to select areas on the map and define that as an area. The advantage of this is that areas can be reusable in triggers so that you won't have to specify the same area again and again, rather you just select it from a drop down list. Also this lets you define an area in a much more precise way. Just like the Object-Group relationship, area strings will work the same way. An option will be available in every trigger that asks to define an Area to select the predefined area from a list. Some Areas will already be created by default. For example, all of the Territories and Provinces on the map will be pre-defined as Areas, which are then accessible to the user through this list. * '''New Area:''' Just like creating a new Trigger, this will create a new area. You will have three ways of defining an area: Polygonal Selection, (Standard) Shaded Box Selection, and Radius Selection. '''Polygonal Selection:''' Click a bunch of points on the map. The game will "connect the dots" between those points, the area formed between the lines is the area. This method of selection allows for very precise areas, in which you are not limited by tiles. Command and Conquer General's editor has an excellent way of doing this and gets it right on. If you have the game I suggest you try out their Area definer, if not, look at these images. [[Image(http://0ad.wildfiregames.com/~gamedesign/editor/c&c_ref/area1.jpg)]] Command & Conquer: Generals Area Definer Example Beautiful, exactly what I want. You click to create a point, and then click again to create another, and so on and so on, to end the shape you simply connect the last line to the starting point to close the polygon. You should also be able to delete a point from the polygon and have it snap to a full shape (so it's still a polygon). You should also be able to manipulate the points and move them around. To demonstrate this in action (pictures can only show so much) download this movie of General's polygon tool in action. This same functionality should go into our Polygonal Selection Area Creator. http://0ad.wildfiregames.com/~gamedesign/editor/c&c_ref/areacreator.avi Command & Conquer: Generals Area Definer Movie (426KB) ''' "Standard" Shaded Box Selection''': Just like in AoK, select an area by clicking on the map and dragging a box which will shade all the tiles underneath it, showing that they are selected. '''Radius Selection''' This last alternative is more friendly to moving objects on the map. Specify a point on the map as the center, and then a length of the radius. The area created is a circle with a radius (distance from the center point) of whatever you defined. The advantage to this system is that you can have any unit be the centre point, even moving units. * '''Delete Area:''' Deletes the area. * '''Copy Area:''' Makes a copy of the area. * '''Cut Area:''' Removes the area and puts it on the clipboard (temporary storage). * '''Paste Area:''' Pastes the cut area. Can only be pasted in the Area Editor. == Conditions Master List == (functions listed under each trigger) Note: Universal Functions. Effects � Player (for which player will the effect work on), Loop (on or off), Loop duration (how long the loop lasts) Delay � (functions just like a timer, the time the effect delays before firing after the condition is met). If Delay is used with Loop, then the delay value will function as an interval for the loop. For example if the Delay is on 3, and the effect is looping, then it will fire very 3 seconds. If the delay is on 5, then it will fire every 5 seconds etc. Conditions: Player, Not*, Or* * See section 8.3.2 for info on the Condition Logic. ''' AI signal''' - Determines if the AI has made a signal. Select AI Select Signal (enter the signal name) ''' Aborted cinematic '''- When the cinematic mode is turned off. Select if on or off ''' Accumulate attribute''' - Checks if a certain player accumulated so much of a certain attribute, such as kills, or food etc. Select attribute (from a list) Set Delta (change) +, -, and then a value Set Operator (<, , >) ''' All buildings dead''' - When all buildings have been destroyed. ''' All units and buildings dead '''- All units and buildings are destroyed. Check if all units and buildings of a player are destroyed ''' All units dead''' - All units have been killed for the specified player. Check if all units of a player are destroyed ''' Captured object '''- when its ownership changes from the old player to the owner player. Select object(s) or group(s) to be captured Select Area(s) or Territory(s) (optional) Select Owner player (the player who owns the relic) ''' Captured Relic '''- Checks if a relic is captured. Select Relics or Treasures to be captured Select Area(s) or Territory(s) (optional) Select Owner player (the player who owns the relic ''' Chat contains '''- Checks to see if the last chat message contains a certain string. Can be used for yes/no questions. Check Chat Field (enter the chat to be checked) All? Check this to check for any cheats. ''' Cheat Entered''' - Detects of a cheat has been entered. Cheat (select from list, all is also available to check for all cheats) ''' Choice Chat Answer '''- Checks if a choice from the Send Choice Chat effect has been selected. Enter a choice to check. ''' Condition chance '''- Gives the condition a percentage chance to fire. Set Chance (in percentage) ''' Destroyed object''' - Checks if a certain object was destroyed. Specify Object(s) or Group(s) ''' Difficulty level '''- Checks the difficulty level. Specify the Difficulty level from the drop-down list ''' Diplomacy change''' - Occurs when the specified diplomacy change has occurred. Specify which diplomacy change to check for (ally, neutral, enemy) Specify the source and target player Or� Check the All box to look for a change of diplomacy from any player. ''' Distance to point '''- The selected unit is a certain distance to a point. Specify Object(s) or Group(s) Specify the Area(s) or Territory(s) Or Specify a point on the map by choosing radius, tile, or polygon selecton while you do so. ''' Distance to unit '''- The selected unit is a distance to another selected unit. Specify Object(s) or Group(s) Specify the target Object(s) or Group(s) Set the Radius of the target area around the unit. ''' Log Compare '''- Compares up to 4 logs (using =, <, > <=, >= operators). Specify an existing log�s name Specify the operator. Up to 4 logs can be checked. ''' Log Check '''- Checks a log for a value (specify the name of the log and the value to be checked). Specify a Log Specify the Delta and it�s value Specify the Operator (<, <=, ==, =>, >) ''' Variable Check''' - Checks a variable. Specify the name of a variable Specify a Delta and it�s Value Specify the Operator (<, <=, ==, =>, >) ''' Variable Compare '''- Compares a variable with another (like if Variable-X is 1 < than Variable-Y). Specify 2 Variables to check. Specify a Delta and it�s value Specify the Operator (<, <=, ==, =>, >) ''' Interactive Object''' - This condition will fire an effect when the Interactive Object can be "interacted" with. I.e. a chest has been "interacted" with, when it is opened. A chest is opened when you task an object on it and the object walks over and opens the chest. When the chest is "opened" it "Dies". This condition is basically a renamed "Object is dead" condition that only applies to interactive objects. This condition (and trigger) is automatically generated when an Interactive Object is placed. Condition and Effect is already set up to defaults when Interactive Object is placed. Specify the Interactable Object(s) Specify the Operator (<, <=, ==, =>, >) (of the interactable object being operated or not) ''' Is alive''' - The specified unit is alive. Specify Object(s) or Group(s) ''' Object visible''' - (currently visible on screen) Checks if a certain object is visible to a certain player.. Specify Player(s) Specify Object(s) or Group(s) Specify amount (how visible it has to be in order for the effect to fire. Negative values also work. For example if the value is 2, then the unit would have to be 2 �tiles� inside the player�s LOS for the condition to fire.) ''' Objects in area '''- Checks if objects are in a specified area (or territory). Specify Object(s) or Group(s) Specify area(s) or territory(s) ''' Object Selected '''- Checks if a specified player has clicked a specific object. Specify the player(s) Specify Object(s) or Group(s) Or Specify Object by Type ''' Own objects''' - Checks if a certain player owns a specific object. Specify Object(s) or Group(s) ''' Own fewer objects''' - Checks if a certain player owns less than a specified amount of a certain unit. Specify Object(s) or Group(s) Specify Delta Specify Operator ''' Object active''' - Check which options define "active", such as "is attacking, is moving, is building" etc. Specify Object(s) or Group(s) Define the Active Field (attacking, moving, idle, building, repairing, patrolling, guarding, farming, hunting, mining, etc etc). Define the Operator (<,<=, ==, =>, >) ''' Object Changed '''- Check which options define "Change", such as "attack change, armor change, moved, unit count" etc. The effect will fire when the condition detects a change in the group. Specify Object(s) or Group(s) Define Change (attack stat, armor stat, P armor stat, range stat, motion state, position state, health, total count etc, Basically almost every stat that can be counted and applied to a unit. Define the Delta (Change), + or -, and then a value (if applicable). Leave blank to check for any change in value. ''' Objects garrisoned''' - Checks if certain units are garrisoned inside a certain object. Specify Object(s) or Group(s) Specify amount Specify Operator ''' Percent complete''' - The specified unit (mainly building) is a certain % complete from being built. Specify Object(s) or Group(s) Specify percent complete delta Specify the Operator ''' Percent damaged''' - The specified object has been damaged to this percent. Specify Object(s) or Group(s) Specify percent damaged delta (or HP lost) Specify the Operator ''' Player active''' - The specified player is active. Is Active, meaning they have not resigned or been destroyed. ''' Player at pop''' - The specified player is at the specified population. Specify the player(s) Specify the Delta Specify the Operator ''' Player defeated''' - The specified player has lost. Specify the Player(s) Specify if they are defeated, or resigned, or both (checkboxes) ''' Player distance to point''' - This would detect if any of a player's units were a certain distance from a point. Specify the Source Player(s) and the Target Player(s) Specify the amount for the distance. Negative values also aply. ''' Player distance to unit''' - This would detect if any of a player's units were a certain distance from a unit. Same as above, but with units. Bah. ''' Player is building''' - The player is currently building the specified object. Specify the player(s) Specify the Object(s) being built. Any is also selectable (for anything being built, not a specific object) ''' Player unit count''' - The player's unit/building count has reached a specified amount. Specify the subject to be counted (Units, Animals, Lumberjacks, Fisherman, Buildings, Military Buildings etc) Specify the Delta Specify the Operator ''' Research tech '''- Checks if a certain player can research a certain technology. Specify Tech Specify Operator Specify what to check (not researched, available, unavailable, is researching, researched) ''' Timer''' - A timer in seconds. Timer ''' Timer ms''' - A timer in milliseconds. Timer (ms) == Effects Master List == '''AI script goal''' - Activates a goal for an AI file. Specify the Goal�s name (or ID) '''Activate trigger''' - Activates another specified trigger. Select an existing trigger from the list. '''Advance campaign''' - Advanced to another campaign. Specify the campaign '''Advance campaign progress''' - Advances to the next specified scenario or transition cinematic. Specify the next scenario to transition to. '''Area Territory Change '''- Adds (or subtracts) areas. Define what areas to change and the new area's name. Specify a beginning area Specify a target area Specify the change (Add, Subtract) '''Become hero '''- Can make any unit a hero, with self-healing availability. The unit stays the same but has hero status. Specify the Object(s) or Group(s) Specify the statistic(s) of the unit (statistics = the unique Hero abilities) '''Blockallambientsounds '''- Blocks out all of the ambient sounds (unit click noises, swords clashing etc). Specify if it�s on or off '''Blockallmusic''' - Blocks out all music and music sounds. Specify if it�s on or off '''Blockallsounds''' - Blocks all of the sounds. Specify if it�s on or off '''Camera cut '''- Changes the camera view. Specify the view (position the game�s view, and click set view) '''Camera track''' - Performs a camera track. Note, you need to create a camera track first. Choose the existing camera track from the list '''Change diplomacy '''- Changes a certain player's diplomacy towards another certain player. Specify the source player Specify the target player Specify the diplomacy (ally, neutral, enemy) '''Change elevation '''- Changes the elevation in a certain area to a certain height, with a smooth (raises smoothly) or rough (raises instantly) option. Intensity (smoothness of elevation is adjustable). Specify the target Area(s) or Territory(s) Specify which style (smooth or rough) Specify the height Specify the Edge smoothness Specify the Intensity Specify the duration (how long it will take for the elevation to reach it�s defined height) '''Change ownership''' - Changes the ownership of a certain unit or units, like a unit tribute. Specify the Object(s) or Group(s) Specify the Owner Player (who the unit�s ownership will change to) '''Change ownership Area '''- Changes the ownership of a unit or units, within an area Specify the original owner player Specify the Area(s) or Territory(s) Specify the Object(s) or Group(s) type, or select all for any of that players units to be converted. Specify the Owner Player (who the unit�s ownership will change to) '''Change terrain '''- Changes the terrain in a certain area (or territory) to another terrain, such as grass to dirt. Specify the Area(s) or Territory(s) Specify the terrain type to change too. Specify the Fade Duration (the time it�ll take for the terrain to completely fade into the new terrain, in seconds) '''Chat on/off''' - Turns the chat on or off. Choose On or Off '''Cheats on/off '''- Define Cheats as on or off. Disables all cheats besides the reveal map cheat. Choose On or Off '''Cinematic mode''' - Enters cinematic mode. Warning, you must have another trigger exiting cinematic mode (by clicking the on button to off) or you will be stuck in cinematic mode and unable to exit the game. Choose On or Off '''Clear Chat''' - Clears all chat messages on the screen. '''Clear UI''' - Clears any information or text on the screen, including chat. '''Counter add Value '''- Adds a numerical value at the end of the timer (Plus 5 seconds for example). Specify the Counter Name Specify the Delta and it�s Value '''Counter stop '''- Stops the counter. Note that counter effects will work for any counter, fake or not. Specify the Counter Name '''Counter timer''' - Adds a counter to the UI with a phrase, i.e. "Time until attack". When the countdown reaches zero a specified trigger fires. Specify the Name for the Counter Specify the Counter Phrase Specify the Counter Value Specify the Counter value type (years, minutes, seconds, etc) Specify the Trigger to fire when the counter runs out. Leave blank for the counter to do nothing when it runs out. '''Create Water '''- (IF POSSIBLE) Creates water over an area. Specify water type and depth value. Specify the Area(s) or Territory(s) Specify the Water Type Specify the Depth Specify the Smoothness Specify the Fade duration (for the water to rise up into the specified area, or for it to be created.) '''Deactivate trigger '''- Deactivates another specified trigger. Specify the Trigger '''Declare victory '''- Declares victory for a certain player or players, if there is an alliance. Specify the Player. '''Display instructions''' - Displays in-game instructions to all players. Specify the Instruction ID Specify the Instruction Number '''Enable disabled unit '''- Unforbids and enables a specified disabled unit. Specify the unit(s) to Unforbid. '''Fade to colour''' - Fades the camera to another colour. Warning, you need to have it also fade out (by clicking the in button to out) or the camera will be stuck on the faded colour. Specify Fade in or Fade Out Specify the Colour (RBG Values, or a color picker would be nice) Specify the Fade Length (how long it takes to fade) '''Fadeoutallsounds '''- Fades out all of the sounds. Specify a Fade length. Specify On or Off (Off fades sounds back in) Specify Fade Length '''Fadeoutmusic '''- Fades out the music. Specify a Fade length. Specify On or Off (Off fades music back in) Specify Fade Length '''Flare minimap''' - Flares a spot on the map and minimap. '''Flash Area''' � Flashes or Highlights a specified area on the map Specify to Flash or Highlight the area. Specify the Area(s) or Territory(s) to flash '''Flash objects '''- Flashes or Highlights objects on the map. Specify to Flash or Highlight the unit. Specify the Object(s) or Group(s) OR Specify the Area(s) or Territory(s) to flash objects in. '''Flash Objects on Minimap '''- Flashes the object�s dot on the minimap. Specify to Flash or Highlight the unit. Specify the Object(s) or Group(s) OR Specify the Area(s) or Territory(s) to flash objects in. '''Game Speed''' - Changes the speed of all unit animations and objects, and gather rates, etc. Specify the game speed, where 1.0 = default speed. '''Go to main menu '''- Exits to the main menu. '''Group Change''' - adds (or subtracts) one group to another, define what groups to modify and what the new group name will be. Specify the source Group Specify the Modifier (Combine, Subtract) Specify the Modifier Group (the group that is combined or subtracted) '''Grant '''- Grants a player a resource (Food, Wood, Stone, Ore). Specify the Player(s) Specify the Grant (Resources, Population limit, any other physical number value in the game) Specify the amount. '''Heal unit '''- Effect which can add to a unit's current HP. Specify the Object(s) or Group(s) Specify the amount HP to heal. '''Hide score''' - Hides the score. To permanently remove it, make the trigger loop. Specify On or Off '''Kill object''' - Kills a specified object. Specify the Object(s) or Group(s) '''Kill objects in area''' - Kills the objects in the selected area. Specify the Object(s) or Group(s) (leave blank to kill any objects in the area) Specify the Area(s) or Territory(s) to kill the units in. '''Lock all gates''' - Locks all gates belonging to that player. Specify the effect as either on (to lock) or off (to unlock). Specify the player Specify if they are Locked or Unlocked. '''Lock gate '''- Locks a specified gate. Specify as either on (to lock) or off (to unlock). Specify the Gate(s) Specify if they are Locked or Unlocked. '''Log''' - Specify a log name and a log value (number) which the game will write and save. Call on this log later on in the scenario or in future scenarios. This will allow the game to "remember" what you did by making a note of it in a log. All Logs will be stored in the /scenarios/workspaces/logs/ folder Type in the Log�s name (default names are Log1, Log2, Log3 etc) Specify the log�s value. '''Log Change''' - Change a log by adding or removing a number value. Specify the Log�s name Specify the Modifier (Add, Subtract) Specify the Value (the value to add or subtract) '''Modify Object''' - This is where all kinds of unit stats can be modified (range, attack, speed, all of those). Specify the Object(s) or Group(s) Specify the Stat (all unit stats go here, speed, attack, armor, hitpoints, everything) Specify the Modifier (Add, Subtract) Specify the Value '''Modify Unit Ability''' - Changes what the unit can and can't do, i.e. gather resources, build, move on water etc. Specify the Object(s) or Group(s) Specify the Ability (all unit Abilities in the game go here) Specify the Modifier (Add or Subtract the Ability) '''Modify Object Icon''' - Change the Object's icon. Specify the Object(s) or Group(s) Specify the new Icon (choose it from a list, or if we can�t do that, then manually specify where it�s located from the texture folder) '''Modify Object Name''' - Change an Object's name. Specify the Object(s) or Group(s) Specify the new Name '''Modify Resource value''' - Effect which can change an object's values, such as the amount of food on a deer, the amount of wood on a tree. It would be interesting to have this be applyable to normal units, so when you kill a unit you get the resources it has in it. Specify the Object(s) or Group(s) Specify the Resource (Food, Wood, Ore, Stone) Specify the Modifier (add, subtract) Specify the Value Specify the Gather Rate * Note that units can only have one resource value, or else the trigger won�t work (I�m assuming?) '''Move Object in area '''- Effect where you can select the area from which to move units to a point. Specify the Source Area(s) or Territory(s) Specify the Target Area(s) or Territory(s) Specify the Object(s) or Group(s) to move. '''Music file''' - Plays a music file. Specify the Music track Specify the fade in duration. '''Music play''' - Plays music (stops any currently playing music and plays the specified music). Specify On or Off Specify the Fade-in Duration. '''Music stop '''- Stops music. Specify a fade timer. Specify On or Off Specify the Fade duration '''Object Actor '''- Loads/replaces a Unit�s Actor file. The idea behind this is to replace the props for a unit or change it�s idle animation, etc. Specify the Object(s) Specify the new Actor File to load. (select it from the actors folder) '''Object Animation''' - Specify which animation to change (I.e. change the idle animation to___. The moving animation to___). Check the override all animations to have that animation be used for all animations. Check the Back to Default box to restore default animations. Specify the Object(s) or Group(s) Specify the Source Animation (the animation to be replaced) Specify the New Animation (the animation that will replace the source) override all, on or off. '''Object Change Type '''- Changes the unit type. For example, you can change a hoplite to a spearman, a rock to a tree etc. The characteristics from the source object are applied to the target object, though it�s appearance is the same. Specify the Source Object(s) or Group(s) Specify the Target Object(s) or Group(s) '''Object Create '''- Creates a certain object at a specific place. Specify the Area(s) or Territory(s) Specify the Object(s) to create. '''Object Damage'''- Deal damage to a certain object. Specify the Object(s) or Group(s) Specify the Damage Amount (Value to be subtracted from their HP) '''Object Damage in Area''' - Deal a certain amount of damage to a type of object or to all objects in an area.. Can be player-specific or to all. Specify the Area(s) or Territory(s) Specify the Object(s) or Group(s) Specify the Damage Amount (Value to be subtracted from their HP) '''Object Freeze '''- Freezes a unit exactly how it is and stops any idle animations on it. Set if the unit is functional (can be attacked, healed, etc) while it is frozen. Specify On or Off Specify the Object(s) or Group(s) if functional or not (can be attacked, healed, etc while it�s frozen) '''Object Heading''' - Makes designated units face a certain direction (in degrees). Specify the Object(s) or Group(s) Specify the Heading (in degrees) '''Object In Area Move '''- All units in the given area will be moved to the target area. Specify the Source Area(s) or Territory(s) Specify the Target Area(s) or territory(s) Specify the Object(s) or Group(s) '''Object Scale '''- You can make units grow or shrink for a set time and size. Specify the time for it to fade to scale, and specify the X, Y, and Z scale of the object. Check the option "fade" to have the unit smoothly scale to the specified scale (I.E. visually grows). Specify the Object(s) or Group(s) Specify the Scale Modifier (grow, shrink) X, Y, Z axis, check the checkboxes to turn the scaling on for those dimensions. Specify the scale value (where 1.0 = original scale) Fade Duration, the time it will take for the object to fade from it�s original scale to the specified scale. '''Object Stop '''- Makes the Object stop and be idle. Specify the Object(s) or Group(s) '''Object Task''' - Specify a target area or Object. This has the same function as right clicking to assign a task. If an Object is tasked on a relic, it'll pick up the relic (if it's function is allowed), if it's tasked on an enemy unit it'll attack the unit, etc). Specify the Object(s) or Group(s) OR Specify the Area(s) or Territory(s) to task objects in Specify the Target Object(s) or Group(s) OR Specify the Target Area(s) or Territory(s) '''Patrol''' - Causes a certain unit or units to patrol from a set path. (ctrl+click to create patrol points, just like in gameplay). Specify the Object(s) or Group(s) '''Pause game '''- Pauses the game. Specify On or Off '''Pause in objective window '''- Pauses the game when the objectives are viewed. (effect defines if active or not). Specify On or Off '''Place foundation''' - Places a foundation of a certain building. Specify the Object foundation to place. The unit will only be placed if it has a foundation. Specify Foundation HP (the amount it�s been built, for example, if you�re placing a foundation for a house and it�s foundation HP is 30, then the foundation will be placed with 30/XXX HP already built) '''Play Dialogue''' - Plays a dialogue during a cinematic mode. Specify Dialogue Length (time it stays on screen) Specify an Icon (the icon that shows up for whatever unit is talking) Specify the Dialogue (type in the dialogue) NOTE: The Dialogue model for our game will be based on that of Empire�s '''Play Dialogue Choice '''- Presents the player with a Question and (up to) 4 answer choices. Select an answer choice and tell it what trigger to fire if it is selected. Specify Dialogue Length (time it stays on screen) Specify an Icon (the icon that shows up for whatever unit is talking) Specify the Dialogue (type in the dialogue) Specify Choice A, B, C, or D (checkbox for on or off) Specify the Target Trigger for each choice (the trigger that will be fired if that choice is selected) '''Play RPG Dialogue '''- Specify the object talking, type in what the object says, specify !FlashUnit (Flash or Highlight the unit talking) Specify Control (If the unit talking is controllable or not) Specify text speed (the speed at which text "appears" as the unit is talking). When the object "talks" the text will appear above the unit in a semi-transparent shaded box, The box moves along with the unit, if the unit is moving. RPG lovers will forever love us for including this trigger. ;-) Specify the Object talking Flash or Highlight Controllable or not Specify the Text Speed (through a scroller with settings of Slow, Medium, and Fast) Specify the dialogue (type in the dialogue for the unit to say) Specify the Dialogue Length (how long the dialogue box stays on screen) '''Play sound''' - Plays a specified sound from the /sounds folder. Choose the Sound to be played '''Player destroy all buildings '''- The selected player's buildings all get demolished. Specify the Player(s) '''Player destroy all units '''- The player's units all die. Specify the Player(s) '''Player LOS change''' - Allows a player to see another player's line of sight. You can also not allow them to view it. Specify the Source Player(s) Specify the Target Player(s) Specify the Modifier (LOS enabled, Disabled) '''Player reset black map''' - Resets the black map (unexplored area) over the area or territory on the map for the specified player. Specify the Area(s) or Territory(s) '''Player reset black map all''' - Resets all of the explored map for the player into unexplored. '''Player set active '''- Sets a player�s AI to be active after being defeated. Useful for making a defeated player appear to be still playing. Specify the Player(s) to be active. (Active means that their AI still works after they have been defeated, rather than have all their units stand around doing nothing and looking dumb, which is unrealistic) '''Play next music track '''- Plays the next music file in the Playlist '''Rate construction''' - Sets the rate of construction. So you can make building be built slower, or faster. Specify the Object(s) or Group(s) Specify the Construction rate (where 1.0 = default) '''Rate research''' - Sets the tech research rates. So you can make them be researched slower or faster. Specify the Tech Specify the Research Rate (where 1.0 = default) '''Rate training''' - Sets the unit training rate. Specify the Object(s) Specify the Research Rate (where 1.0 = default) '''Rates normal''' - Sets all of the rates back to normal. '''Record Resources''' - Effect that records a player�s resources into a file which can then be loaded into another scenario. Used to transfer Resources amounts between scenarios. Specify the Record filename (the name of the file that�ll have the recorded data) '''Record Resources Load''' � Loads recorded resources data. Specify the Record filename to load. '''Record Unit Stats''' � Specify a unit�s stats to record for use in another scenario Specify the Record Filename Specify The Unit(s) or Group(s) whose data to record '''Record Unit Stats Load''' � Loads recorded stats for units. Used to transfer unit stats into another scenario '''Specify the Record Filename to load''' Specify The Unit(s) or Group(s) to load the data on. Will only work if the unit is the same as in the previous scenario. '''Remove object''' - Removes a certain object from the map. (doesn�t kill it, it just disappears) Specify the Object(s) or Group(s) '''Remove objects in area''' - Removes all objects from a certain area. Can be player specific. Specify the Area(s) or Territory(s) Specify the Object(s) or Group(s) '''Render sky''' - Renders the type of sky shown during ground-view cinematics or camera angles. '''Render Weather '''� Specify a Weather Set (which is made in the Environment Editor) to apply on the map at a specified area. This is used to render weather effects like snow, rain, fog, etc on the map. Specify the Area(s) or Territory(s) Specify the Weather Set to use. '''Reveal map''' - Reveals the whole map. Unexplored on of off Fog of War on or off '''Send chat '''- Effect that sends a chat. Can be player-specific. Specify Chat (type in what will appear in the chat) '''Send choice chat''' - Asks the player a question, the player types an answer Specify the Chat Question (the question that the player will ask) Specify Target Player (to whom the question is being asked to ) Specify answer(s) (The chat that the target player enters as an answer.) Specify Trigger(s) (specify a trigger that will be fired for each answer) '''Set playlist''' - Loads a playlist from the playlist editor. Specify a fade length for the current audio (playlist or not) to fade out and the new playlist in. Specify the Playlist t play Specify the Fade Duration. '''Set lighting''' - Sets the lighting for the map. Do so by choosing a pre-made lighting file. Specify the Lighting Set (made in the Environment Editor) Specify the Fade duration '''Set Objective''' - Adds a new objective to the objectives menu. Objectives are made in the Objective Editor. Specify an Objective and a Mission (Missions are sub-objectives in an objective) Specify Objective ID (Objective, 1, 2 , 3 etc) Specify Mission ID (mission 1, 2, 3 etc) '''Set Hint''' - Works the same as Set Objective, but with Hints. Specify Hint ID (Hint 1, 2, 3 ,etc) '''Set player defeated''' - Defeats the specified player. '''Set player won''' - The specified player wins. '''Set Unit Outlines''' - Sets unit outlines (that show when they're behind an object) on/off. You'll want to use this trigger for cinematics. Specify On or Off '''Scramble''' - Units would be tasked in random directions (with a definable radius) and continue moving around in those directions - good for big city scenarios to make things look livened up more. Specify Object(s) or Group(s) Specify Area(s) or Territory(s) Specify Scramble on or off '''Shake camera''' - Shakes the camera. Specify Durration Specify Strength (how hard the camera shakes) '''Tech Status''' - This effect sets the status for our technologies in-game. Pick a technology from the list and set its status as either Researching (is currently being researched � specify a percent next to the box that shows up), Active (tech has been researched and is active in the game) Inactive (Not yet researched) Disabled (not there, disabled) or Enabled (enables disabled techs, this includes the ones disabled through the Civilisation Editor). Specify tech(s) Specify status (researching , active, inactive, disabled, or enabled. '''Teleport units''' - Instantly teleports units from one spot to another. Specify Object(s) or Group(s) Specify Target Area or Territory '''Tribute resources''' - Tributes a specified resource from one player to another. Can do multiple resources per effect, thus eliminating the need for a trigger per resource. Specify Source Player Specify Resource(s) Specify Amount(s) '''Unblock all sounds''' - Unblocks all of the sounds (if you blocked them). '''Unload''' - Performs an unloading or ungarrisoning of units from an object. Specify Unit(s) to unload from. '''Unit Build''' � Tells a unit to build a building. Specify Unit(s) or Group(s) Specify what building to build Specify the Target point (to build the building at). '''Unit work''' - Makes units go and work at the nearest work souce (mine gold, pray at a temple, trade, etc). Specify the Unit(s) or Group(s) '''User controls''' - Allows you to turn on or off user controls. When off, the player can't do anything. When on, they can do anything as normal. Specify on or off '''Win/loss message''' - Sets the winning and losing messages. (that appear when the Victory, or You have been Defeated message shows up) Specify Win message Specify Loss message '''You lose''' � You lose. '''You win''' - You win. That's quite a list indeed. If you're clueless as to how to organise an effect or condition layout, you can request a concept from Bobby aka !CheeZy. Be nice though, since it takes anywhere from 15 minutes to 6 hours to create the concepts you see in this document. = ENVIRONMENT EDITOR = This section sets up the environment and weather settings for the map, such as weather effects, seasons, and lighting. == Lighting == The user will be able to set the lighting values by providing RGB colour values for global (sun) light, and set the angle and inclination of the sun. Additionally the user can save these settings to use them later on, or select pre-configured settings from a drop down list. == Weather == Weather effects are controlled from this section. From a drop down list, choose which kinds of weather effects you want. There may be up to 3 Weather effects going on at the same time (due to performance concerns? We could change the number later, or not have a limit at all). See the '''''Weather''''' section of the DD for descriptions of the various weather effects. === Rain === In the Editor, specify the density of rain (in which areas it will appear). At 50%, rain will only appear over half of the map (the areas are generated randomly). 100% will rain over the entire map. You can also specify the amount of rain, between 1 and 45% - which shows what percentange of the screen will be covered in rain sprites. The scale of the rain drops sprites can be adjusted, along with their velocity (how fast the rain drops will fall down). Also you can specify a contrast level for the game's lighting to fade to during rainfall. This is optional. === Snow === The user can choose to enable decals or not from the editor when he's setting up the environment (0%), or choose several levels of decals: 25%, 50%, 75%, and 100%. At 25% and above, buildings and terrain will get snow decals. At 50% and above, the atmosphere will get slightly "foggy". When the terrain decals are at 75%, the building and tree and other unit textures will get snow decals too. In the Editor, the user can also adjust the velocity, scale, density, and amount of snow, and specify the fog level and colour. === Fog === In the Editor, you can specify the amount of fog (how thick it is), the colour of fog, its density, and if you want it to create fog objects or not. === Storm === In the Editor, specify the settings similar to those for Rain, plus the density of lightning and thunder claps, and a value for how long the intervals are for lightning and thunder. == Seasons == Specify the season � Spring, Summer, Autumn, or Winter. The default is Spring. Mainly the season determines which textures to use for objects. For example if it's Winter, trees will use their "snow" texture versions. For more information on Seasons, see the '''''Seasons''''' Design Document. In the Editor, simply check if you want to enable seasons/season effects, and then select the season for your map. == Sky == Specify the texture for the skybox. A decent selection should be available such as sunset, night, sunny day, cloudy, and stormy. = PLAYER EDITOR = This tab allows the player to specify the attributes of each player on the map, such as their starting conditions. Use the Current Player drop-down list to select the currently selected Player (eg "Player 1") from the available player names (which includes the Gaia player). The following attributes can then be specified for this player: * '''Player Name:''' Allows the player to specify a name for this player, which might be more appropriate to the scenario. If left blank, the game will automatically pick a name for the player civilisation when the game loads. * '''Player Colour:''' Pick a colour for the player from the list, or specify a custom colour using a popup Colour Picker. * '''Player Type:''' Specify the possible controllers of this player (a human player or computer player). Options are "Either", "Computer", or "Human". A scenario could conceivably be set to use all Computer players without human intervention, and therefore function autonomously, to test the AI or demonstrate the game. * '''AI Personality:''' If the Player Type is not Human, this option is available, and allows the player to specify the type of AI to be used, such as Aggressive, Defensive, Standard, Passive, or Idle. AIs that are custom-scripted by the player will also be available from this list. * '''Civilisation:''' Select the player's civilisation (eg: Persians) from the list. Note that if custom civilisations are added to the game, they will also need to be available from this list. * '''Starting Civ Centre Phase:''' Choose from Village, Town or City for this player. * '''Set Resources:''' Editable text boxes containing the number of units of Food, Wood, Stone and Ore the player will have in his Resource Pool when the game begins, as well as his population cap. * '''Set View:''' Set this player's starting view (default is at the player's Civ Centre or comparable building, and if none present, on his units). * '''Starting Units:''' Specify the number of starting units the player has when he first begins the game. A value of 0 means he begins with no starting units. = CIVILISATION EDITOR = This tab is used to specify everything that can be researched, built, and trained by the current player. A tree of portraits representing the player's technologies, buildings, and units is displayed, similar to the tech tree viewable in-game in AoK and AoM, except it shows *all* civilisations' goodies. Click any icon in the tree to enable (coloured) or disable (grey) it. Note that if a tech unlocks another tech, any sub-techs will also be disabled. A drop-down list is used to select a preset selection of blocked entries. By default it is set to the Civilisation preset, which means that only the assets for the player's civilisation are enabled. Other presets are things like All (enable everything), None (disable everything), Village, Town, or City, Tech Level 3, and so on. As always, custom presets can be created. = DIPLOMACY EDITOR = The diplomacy tab is used to establish starting alliances between players. Select a player, and a table will be generated, showing the other players as columns, and a button beneath each one. Press this button to toggle between Ally or Enemy for the other players. = PLAYLIST EDITOR = Lists the music files to be played in the background during this scenario, and the sequence in which they will be played. Once the end of the playlist is reached, it will loop back to the beginning of the playlist. The playlist can use custom sounds/music. By default, a playlist will be generated based on the player's civilisation (Hellenistic tracks for a Hellenistic civilisation, etc). The player can specify new music files to add to his selection (either from other culture sets, or custom music files placed in the appropriate folder), adjust the sequence of the playlist, or remove files from the playlist. The playlists generated in the playlist editor are sequences which can be controlled by Triggers. So for example you can fade a playlist and start another, or start a different sequence, etc. = CINEMATICS EDITOR = The Cinematics Editor will create cinematic tracks for use in in-game cinematics. Cinematics tracks, along with Cinematic mode will be controlled through Triggers, similar to AoM's theme. The player will use the camera tools to setup a camera track, which is a series of waypoints in which the game's engine moves the "camera" during the specified time and variational values. == New Track == This will create a new, and blank camera track. To create a waypoint, the player will move the view (current camera) to a position on the map, and click '''Add Waypoint''' or '''Update Waypoint'''. Then he will move the camera again to a different view and add another waypoint. Specify a duration and you have a camera track. When the camera track is played the camera will move from Waypoint 1 to Waypoint 2. There is no limit to how many waypoints you can have. == Track Variations == These values can be set for each waypoint, and they will be evaluated in the Camera's transition between waypoints. We will have the following variations: * '''Amplification -''' The camera transition is exaggerated, making a shaky and jittery transition. Positive values will increase the Amplification, while negative values lower it (dull, slowly responsive transition). * '''Smoothen -''' Smooths the transition, making a smooth cinematic effect. Positive values increase the smoothness, and negative values decrease it (so it goes straight from point A to B rather than doing a nice curved path from A to B. * '''Continuity -''' Continuity determines how long the camera stays in one direction before transitioning to the next. Also if the camera is turning, it will turn for slightly longer. Positive values increase the continuity, and negative values reduce it (the camera turns early). * '''Bias -''' Bias is hard to explain; what it does is "loosen" the transition, so it doesn't follow the exact curvature path. * '''Speed -''' This will determine the starting speed of the transition. If it's a negative value the transition will be slow and then speed up as it approaches point B. If it is high it will be fast and slow down as it approaches point B. Use AoM as an example of these, though it doesn't have the same variations as we do. = MESSAGE EDITOR = This tab allows the designer to write instructions, hints, and scenario description for the current scenario. He can choose one of the sub-sections below and write its text in a large message window. He can use standard HTML tags to control the format of the text. Links to texture files or pictures in our texture library, or a custom texture library can also be formatted. * '''Description''': The description for a scenario is displayed when it is selected from the Custom Campaign or Custom Scenario selection screen. * '''Instructions:''' Upon playing the scenario, the instructions will appear first. Instructions give a short description of the situation, as well as a short overview of the actions the player has to undertake. * '''History:''' The history sections contains the history (real or not) of the scenario's situation. * '''Hints:''' These are tips provided by the designer to aid the player. * '''Victory:''' This is the text that will appear upon winning the scenario. * '''Defeat:''' This is the text that will appear upon losing the scenario. * ''' Achievements Tick-Box:''' If ticked, the Achievements (Aftermath) screen is displayed when the scenario ends, displaying statistics about the session. If unticked, this stage is skipped. Ticked by default. = CAMPAIGN EDITOR = The Campaign Editor consists of two components: the Campaign Sequence Editor (which is used to chain scenarios into campaigns), and the Campaign Screen Editor, which is used to define the Campaign Screen for the selected campaign. == Campaign Sequence Editor == Scenarios can either run as stand-alone maps, or be integrated into multi-scenario custom campaigns. The Campaign Sequence Editor is used to string scenarios together into complete campaigns. Once created with the Campaign Sequence Editor, these campaigns are then available from the Custom Campaigns section in the shell interface. Obviously, if a campaign is created that references scenarios stored in another Workspace, that Workspace must be distributed with it or it will fail to find the file(s) it needs. The Campaign Sequence Editor consists of the following panels: * '''Campaigns Panel:''' Lists all campaigns (.cpn) stored in the current Workspace. Select a campaign from this list, and its sequence is displayed in the Campaign Sequence Panel. * '''Campaign Sequence Panel:''' Lists all the scenarios that make up the currently selected campaign. When playing the campaign, scenarios will be played in this sequence. * '''Custom Scenarios Panel:''' The Editor scans the folders where custom scenarios (.scn) can be found (all loose and packed Workspaces in mods/ and scenarios/) and lists them here. === Campaign Sequence Editor Commands === '''To create a new, empty campaign:''' click the '''Create Campaign Button''', and a new entry will be added to the Campaigns Panel. You will be instructed to name the campaign. '''To select a campaign:''' Click a campaign entry in the Campaigns Panel to select it. Its sequence will be displayed in the Campaign Sequence Panel. '''To add a scenario to a campaign:''' Select the scenario you want to add from the Custom Scenarios Panel by clicking it. Select the position in the Campaign Sequence where you want the scenario to be inserted by clicking at that position in the Panel (by default, the cursor moves to the bottom of the list when a scenario is selected). Then click the '''Add Scenario''' button to insert its name at this position in the sequence chain. Note: If a scenario has been placed in the Campaign Sequence Panel that includes a '''sequence trigger''', the identifier for that trigger is automatically added to the list directly below the added scenario. A sequence trigger, when fired in a scenario, tells the game to not move to the next linear position in the Campaign Sequence, but instead skip to the position of the trigger identifier. For example, the user has linked a sequence trigger to a wonder building in the scenario. He wants the game to move the player to a different scenario than the next one in the list if the wonder is destroyed. The trigger identifier is used to indicate where the campaign will pick up again if the trigger fires. So, adjust the sequence trigger entry to a position before the scenario that you want to use as the branch. If the trigger is fired during the scenario, the campaign will continue from this point, allowing for dynamic campaign trees. '''To remove a scenario from a campaign:''' Click the entry in the Campaign Sequence Panel that you wish to remove, then click the '''Remove Button'''. ''Note that adding and removing entries does not harm the actual files. The player is simply listing the sequence in which scenarios will be executed.'' '''To adjust a scenario's position in the Campaign Sequence Panel:''' Click on the entry in the Campaign Sequence Panel, and press the '''Up Button''' to shift it up a row or the '''Down Button''' to shift it down a row. == Campaign Screen Editor == The player can use this section to customise the layout of the current custom campaign's start screen. To gain access to these options, select a campaign from the Campaigns Panel, then click the '''Campaign Screen Button''' to open a secondary window with these controls. Each campaign has its own screen which displays the list of unlocked scenarios, and a description of each. Description for each scenario is derived from its Scenario Description, defined in the scenario's Message Editor. * '''Menu Style''': Choose a layout for the Campaign menu. Pre-made styles are available, but the user can also use custom styles that he has made or downloaded externally. The style consists of a background image, button textures, window borders, and so on. * '''Campaign Description''': Specify a description for the Campaign. * '''Story''' (optional): Type dialogue or text that will appear over the main background of the campaign. Dialogue scrolls up automatically until there is none left on the screen. * '''Scroll Rate''' (optional): Adjust the slider to specify the rate that text scrolls up the screen (control only appears if Story isn't blank). * '''Audio''' (optional): Provide the path to an audio (.ogg) file which will be played during the Campaign Screen (such as background music or narration for the scrolling text). * '''Loop''' (optional): Toggle whether the Audio loops indefinitely, or only plays once (control only appears if Audio isn't blank). = MOD STATION = This is actually an external editor that condenses all Editor and game modifying tools into one section. Additionally it has a lot of features that cannot be used anywhere else in the Editor. The Mod Station is a place where we (the developers) will use tools to build the game libaries and setup civ classes, and where the end user modders will use tools to create mods for the game. Why is this external? I've decided that it would simply be much easier to work in an OS environment. It means that we don't need to have support for a lot of stuff that is already in an OS. Additionally the Mod Station is in windowed form so that users can hop between programs while working on mods, something essential. Modding within the Editor is restrictive because the environment is solely for designing maps, not updating game data libraries or creating new units. The Mod Station will have a separate DD that I'll type up later, and it will be a separate feature from the Editor. It will also use a similar "Workspace" structure as the Editor. = HOTKEYS = I'm ''still'' waiting to update this section later on, when we have an actual Editor with hotkey functions to map.