User:Kernelmethod/Sandbox: Difference between revisions
Jump to navigation
Jump to search
Kernelmethod (talk | contribs) (Create initial sketch of the Snapjaw Wizards tutorial.) |
Kernelmethod (talk | contribs) m (Add some XML fragments to the static encounters section) |
||
(38 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
== Tutorial: Mage Towers (static and dynamic encounters) == | |||
Potential ideas for an encounters tutorial: | |||
* Static/dynamic locations | |||
* Adding secrets during worldgen | |||
* Zone builders | |||
Some potential references: | |||
{| | * {{favilink|Flattened remains}} | ||
| | * {{favilink|Ancient bones}} in the {{favilink|waterlogged tunnel}} | ||
| | * {{favilink|Stopsvalinn}} | ||
| | * {{favilink|Oddly-hued Glowpad}} | ||
|} | * {{favilink|Ruin of House Isner}} | ||
* {{favilink|Bey Lah}} | |||
Other: | |||
* https://bitbucket.org/bbucklew/cavesofqud-public-issue-tracker/issues/9458/modding-feature-request-allow-for-merging | |||
Static encounters section can be done with just XML; dynamic encounters section will require some C# experience. | |||
== | == Adding static encounters == | ||
* Editing cell definition in Worlds.xml | |||
* Add a new population table to a cell. | |||
* Create a map template with the map editor. | |||
<syntaxhighlight lang="XML"> | |||
<syntaxhighlight lang=" | |||
<?xml version="1.0" encoding="utf-8" ?> | <?xml version="1.0" encoding="utf-8" ?> | ||
<objects> | <objects> | ||
< | <!-- | ||
Due to an outstanding bug in the way the Hills zonebuilder works, your | |||
terrain object *must* have the word "Hills" somewhere in its name. | |||
https://bitbucket.org/bbucklew/cavesofqud-public-issue-tracker/issues/10902 | |||
--> | |||
< | <object Name="Pyovya_SnapjawMage_TerrainMageHills" Inherits="TerrainHills"> | ||
<part Name="Render" DisplayName="mage's tower" RenderString="227" ColorString="&K" DetailColor="m" Tile="Pyovya_SnapjawMage/mage_tower.png" /> | |||
<part Name="Description" Short="The secluded abode of an accomplished magician lays against the rolling hillscape. At night, one can hear their lonely howls emanating from the ruined tower." /> | |||
<!-- | |||
Remove the RandomTile part inherited from TerrainHills so that our tile doesn't | |||
get replaced with a random hills tile. | |||
</ | --> | ||
<removepart Name="RandomTile" /> | |||
<!-- | |||
We modify grammatical usage of the terrain's name so that when we pass it by | |||
on the world map, it says that we pass by "a mage's tower" rather than "some | |||
< | mage's tower" or "a set of mage's tower". | ||
--> | |||
<xtagGrammar Proper="false" massNoun="false" /> | |||
<tag Name="Gender" Value="*delete" /> | |||
</object> | </object> | ||
</objects> | </objects> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<syntaxhighlight lang="XML"> | |||
<syntaxhighlight lang=" | |||
<?xml version="1.0" encoding="utf-8" ?> | <?xml version="1.0" encoding="utf-8" ?> | ||
< | <worlds> | ||
< | <world Name="JoppaWorld" Load="Merge"> | ||
< | <cell Name="Pyovya_SnapjawMage_MageTower" Inherits="Hills" ApplyTo="Pyovya_SnapjawMage_TerrainMageHills" Mutable="false"> | ||
<!-- New zone containing the mage's tower --> | |||
</ | <zone Level="10" x="1" y="1" IndefiniteArticle="a" Name="mage's tower" HasWeather="true" WindSpeed="0-60" WindDirections="N,NW,NW,W,W,SW,S,SE" WindDuration="50-3000"> | ||
</ | </zone> | ||
</cell> | |||
</world> | |||
</worlds> | |||
</syntaxhighlight> | </syntaxhighlight> | ||
<syntaxhighlight lang="XML"> | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<Map Width="80" Height="25"> | |||
<cell X="19" Y="23"> | |||
<object Name="Pyovya_SnapjawMage_TerrainMageHills"></object> | |||
</cell> | |||
</Map> | |||
< | |||
</ | |||
< | |||
</syntaxhighlight> | </syntaxhighlight> | ||
== Your first dynamic encounter == | |||
=== World generation === | |||
* Locate zone to place tower | |||
* Place creature | |||
=== Zone builders === | |||
* Place walls and items | |||
* Add map template. |
Latest revision as of 01:13, 5 March 2024
Tutorial: Mage Towers (static and dynamic encounters)
Potential ideas for an encounters tutorial:
- Static/dynamic locations
- Adding secrets during worldgen
- Zone builders
Some potential references:
- flattened remains
- ancient bones in the waterlogged tunnel
- Stopsvalinn
- oddly-hued glowpad
- Ruin of House Isner
- Bey Lah
Other:
Static encounters section can be done with just XML; dynamic encounters section will require some C# experience.
Adding static encounters
- Editing cell definition in Worlds.xml
- Add a new population table to a cell.
- Create a map template with the map editor.
<?xml version="1.0" encoding="utf-8" ?>
<objects>
<!--
Due to an outstanding bug in the way the Hills zonebuilder works, your
terrain object *must* have the word "Hills" somewhere in its name.
https://bitbucket.org/bbucklew/cavesofqud-public-issue-tracker/issues/10902
-->
<object Name="Pyovya_SnapjawMage_TerrainMageHills" Inherits="TerrainHills">
<part Name="Render" DisplayName="mage's tower" RenderString="227" ColorString="&K" DetailColor="m" Tile="Pyovya_SnapjawMage/mage_tower.png" />
<part Name="Description" Short="The secluded abode of an accomplished magician lays against the rolling hillscape. At night, one can hear their lonely howls emanating from the ruined tower." />
<!--
Remove the RandomTile part inherited from TerrainHills so that our tile doesn't
get replaced with a random hills tile.
-->
<removepart Name="RandomTile" />
<!--
We modify grammatical usage of the terrain's name so that when we pass it by
on the world map, it says that we pass by "a mage's tower" rather than "some
mage's tower" or "a set of mage's tower".
-->
<xtagGrammar Proper="false" massNoun="false" />
<tag Name="Gender" Value="*delete" />
</object>
</objects>
<?xml version="1.0" encoding="utf-8" ?>
<worlds>
<world Name="JoppaWorld" Load="Merge">
<cell Name="Pyovya_SnapjawMage_MageTower" Inherits="Hills" ApplyTo="Pyovya_SnapjawMage_TerrainMageHills" Mutable="false">
<!-- New zone containing the mage's tower -->
<zone Level="10" x="1" y="1" IndefiniteArticle="a" Name="mage's tower" HasWeather="true" WindSpeed="0-60" WindDirections="N,NW,NW,W,W,SW,S,SE" WindDuration="50-3000">
</zone>
</cell>
</world>
</worlds>
<?xml version="1.0" encoding="utf-8"?>
<Map Width="80" Height="25">
<cell X="19" Y="23">
<object Name="Pyovya_SnapjawMage_TerrainMageHills"></object>
</cell>
</Map>
Your first dynamic encounter
World generation
- Locate zone to place tower
- Place creature
Zone builders
- Place walls and items
- Add map template.