OvercastCommunity / CommunityMaps

Repository for community created maps for oc.tc
Creative Commons Attribution Share Alike 4.0 International
18 stars 42 forks source link

[Blitz/12v12v12v12] CannonQuest #864

Open ThatApplePieGuy opened 9 months ago

ThatApplePieGuy commented 9 months ago

Checklist

Map Name

CannonQuest

Gamemode & Map Description

4-team blitz with a cannoning kit and randomly generated islands. Players can bridge to mid after 5 minutes and a world border starts shrinking after 10.

Team Sizes

12v12v12v12

Screenshots

https://imgur.com/a/9PZwHra

XML

https://gist.github.com/ThatApplePieGuy/b445a5ab4e89f309bf4c6fe0bb87af10

Map Image

map

Map Download

cannonquest.zip cannonquest.zip (old)

mitchts commented 9 months ago

This is purely just a comment on the XML at first glace.

https://gist.github.com/ThatApplePieGuy/b445a5ab4e89f309bf4c6fe0bb87af10#file-map-xml-L130-L147

This can be simplified as

<filters>
    <match-started id="match-started"/>
    <after id="after-15s" duration="15s" message="Cages open in {0}" filter="match-started"/>
    <time id="after-5m">5m</time> <!-- then use 'not(after-5m)' in place of your old not-5m filter -->
    <time id="after-14m">14m</time>
    <after id="end-game" duration="1m" message="The game will end in {0}" filter="after-14m"/>
</filters>

All your structure dynamics can be simplified as:

<dynamic id="place9" structure="2v" location="13,4,13" filter="aqua_layout=0" trigger="match-started"/>

All those clear-spawners dynamics seem obscene. Are they truely necessary? Could you instead use a set action filtered to the playable area and mob spawner blocks to set them to air that way, assuming that is what they are doing..? E.g.:

<regions>
    <rectangle id="playable-area" min="-56,-56" max="57,57"/> <!-- your playable area -->
</regions>
<filters>
    <material id="monster-spawners">mob spawner</material>
</filters>
<actions>
    <trigger scope="match" filter="match-started-or-with-some-delay">
        <action>
            <fill region="playable-area" filter="monster-spawners" material="air"/>
        </action>
    </trigger>
</actions>

From the screenshots provided, one team can get absoutely shafted with not so great islands giving almost nowhere to cannon. Is this deliberate or a side-effect of the way the structures have been handled?

ThatApplePieGuy commented 9 months ago

Thanks, I implemented the cleanup and regenerated all the structures so each layout must have a minimum number of flat tiles

All those clear-spawners dynamics seem obscene. Are they truely necessary? Could you instead use a set action filtered to the playable area and mob spawner blocks to set them to air that way, assuming that is what they are doing..? E.g.:

<regions>
    <rectangle id="playable-area" min="-56,-56" max="57,57"/> <!-- your playable area -->
</regions>
<filters>
    <material id="monster-spawners">mob spawner</material>
</filters>
<actions>
    <trigger scope="match" filter="match-started-or-with-some-delay">
        <action>
            <fill region="playable-area" filter="monster-spawners" material="air"/>
        </action>
    </trigger>
</actions>

This wouldn't work because we don't want to clear every spawner, only the ones that aren't needed for the layout that gets chosen. In the screenshots you can see certain islands types have spawners in their center

calcastor commented 9 months ago

Loaded in b4456836a8ce3597401447194093ad97fa356440