Add in templates, strategies, and setup for Chapter 3 monsters. Fix tile collisions on Chapter 3 tiles. Release Build 11595.

master
sigonasr2 2 months ago
parent 8f5973d836
commit 90d9bc86b1
  1. 7
      Adventures in Lestoria/Adventures in Lestoria.vcxproj
  2. 21
      Adventures in Lestoria/Adventures in Lestoria.vcxproj.filters
  3. 51
      Adventures in Lestoria/Crab.cpp
  4. 7
      Adventures in Lestoria/Monster.h
  5. 51
      Adventures in Lestoria/Parrot.cpp
  6. 51
      Adventures in Lestoria/Pirate_Buccaneer.cpp
  7. 51
      Adventures in Lestoria/Pirate_Captain.cpp
  8. 90
      Adventures in Lestoria/Pirate_Marauder.cpp
  9. 7
      Adventures in Lestoria/RUN_STRATEGY.cpp
  10. 51
      Adventures in Lestoria/Sandworm.cpp
  11. 51
      Adventures in Lestoria/Seagull.cpp
  12. 30
      Adventures in Lestoria/TODO.txt
  13. 2
      Adventures in Lestoria/Version.h
  14. 34
      Adventures in Lestoria/assets/Campaigns/3_1.tmx
  15. 2
      Adventures in Lestoria/assets/Campaigns/World_Map.tmx
  16. 60
      Adventures in Lestoria/assets/config/MonsterStrategies.txt
  17. 153
      Adventures in Lestoria/assets/config/Monsters.txt
  18. 6
      Adventures in Lestoria/assets/config/story/Chapter 2.txt
  19. BIN
      Adventures in Lestoria/assets/gamepack.pak
  20. 72
      Adventures in Lestoria/assets/maps/Decorations_c1_No_Shadow24x24.tsx
  21. 10
      Adventures in Lestoria/assets/maps/Monster_Presets.tmx
  22. 5
      Adventures in Lestoria/assets/maps/Monsters/Crab.tx
  23. 5
      Adventures in Lestoria/assets/maps/Monsters/Giant Crab.tx
  24. 5
      Adventures in Lestoria/assets/maps/Monsters/Pirate Buccaneer.tx
  25. 5
      Adventures in Lestoria/assets/maps/Monsters/Pirate Captain.tx
  26. 5
      Adventures in Lestoria/assets/maps/Monsters/Pirate Marauder.tx
  27. 5
      Adventures in Lestoria/assets/maps/Monsters/Pirate.tx
  28. 5
      Adventures in Lestoria/assets/maps/Monsters/Sandworm.tx
  29. 132
      Adventures in Lestoria/assets/maps/Tilesheet_No_Shadow24x24.tsx
  30. BIN
      Adventures in Lestoria/assets/maps/monsters-tileset.png
  31. BIN
      x64/Release/Adventures in Lestoria.exe

@ -826,6 +826,7 @@
<SubType>
</SubType>
</ClCompile>
<ClCompile Include="Crab.cpp" />
<ClCompile Include="ExplosiveTrap.cpp">
<SubType>
</SubType>
@ -1053,10 +1054,14 @@
</SubType>
</ClCompile>
<ClCompile Include="packkey.cpp" />
<ClCompile Include="Parrot.cpp" />
<ClCompile Include="PauseMenu.cpp">
<SubType>
</SubType>
</ClCompile>
<ClCompile Include="Pirate_Buccaneer.cpp" />
<ClCompile Include="Pirate_Captain.cpp" />
<ClCompile Include="Pirate_Marauder.cpp" />
<ClCompile Include="Pixel.cpp" />
<ClCompile Include="PoisonBottle.cpp">
<SubType>
@ -1084,6 +1089,7 @@
<ClCompile Include="PulsatingFire.cpp" />
<ClCompile Include="Ranger.cpp" />
<ClCompile Include="RUN_STRATEGY.cpp" />
<ClCompile Include="Sandworm.cpp" />
<ClCompile Include="SaveFile.cpp">
<SubType>
</SubType>
@ -1092,6 +1098,7 @@
<SubType>
</SubType>
</ClCompile>
<ClCompile Include="Seagull.cpp" />
<ClCompile Include="SellItemWindow.cpp">
<SubType>
</SubType>

@ -1226,6 +1226,27 @@
<ClCompile Include="ArtificerRefineResultWindow.cpp">
<Filter>Source Files\Interface</Filter>
</ClCompile>
<ClCompile Include="Pirate_Marauder.cpp">
<Filter>Source Files\Monster Strategies</Filter>
</ClCompile>
<ClCompile Include="Crab.cpp">
<Filter>Source Files\Monster Strategies</Filter>
</ClCompile>
<ClCompile Include="Parrot.cpp">
<Filter>Source Files\Monster Strategies</Filter>
</ClCompile>
<ClCompile Include="Pirate_Buccaneer.cpp">
<Filter>Source Files\Monster Strategies</Filter>
</ClCompile>
<ClCompile Include="Pirate_Captain.cpp">
<Filter>Source Files\Monster Strategies</Filter>
</ClCompile>
<ClCompile Include="Sandworm.cpp">
<Filter>Source Files\Monster Strategies</Filter>
</ClCompile>
<ClCompile Include="Seagull.cpp">
<Filter>Source Files\Monster Strategies</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<None Include="cpp.hint" />

@ -0,0 +1,51 @@
#pragma region License
/*
License (OLC-3)
~~~~~~~~~~~~~~~
Copyright 2024 Joshua Sigona <sigonasr2@gmail.com>
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
1. Redistributions or derivations of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions or derivative works in binary form must reproduce the above
copyright notice. This list of conditions and the following disclaimer must be
reproduced in the documentation and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its contributors may
be used to endorse or promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
Portions of this software are copyright © 2024 The FreeType
Project (www.freetype.org). Please see LICENSE_FT.txt for more information.
All rights reserved.
*/
#pragma endregion
#include "MonsterStrategyHelpers.h"
#include "util.h"
#include "AdventuresInLestoria.h"
#include "SoundEffect.h"
#include "BulletTypes.h"
using A=Attribute;
INCLUDE_game
void Monster::STRATEGY::CRAB(Monster&m,float fElapsedTime,std::string strategy){
}

@ -352,6 +352,13 @@ private:
static void DONOTHING(Monster&m,float fElapsedTime,std::string strategy);
static void STONE_GOLEM(Monster&m,float fElapsedTime,std::string strategy);
static void BREAKING_PILLAR(Monster&m,float fElapsedTime,std::string strategy);
static void PIRATE_MARAUDER(Monster&m,float fElapsedTime,std::string strategy);
static void PIRATE_CAPTAIN(Monster&m,float fElapsedTime,std::string strategy);
static void SEAGULL(Monster&m,float fElapsedTime,std::string strategy);
static void SANDWORM(Monster&m,float fElapsedTime,std::string strategy);
static void PIRATE_BUCCANEER(Monster&m,float fElapsedTime,std::string strategy);
static void PARROT(Monster&m,float fElapsedTime,std::string strategy);
static void CRAB(Monster&m,float fElapsedTime,std::string strategy);
};
bool bumpedIntoTerrain=false; //Gets set to true before a strategy executes if the monster runs into some terrain on this frame.
bool attackedByPlayer=false; //Gets set to true before a strategy executes if the monster has been attacked by the player.

@ -0,0 +1,51 @@
#pragma region License
/*
License (OLC-3)
~~~~~~~~~~~~~~~
Copyright 2024 Joshua Sigona <sigonasr2@gmail.com>
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
1. Redistributions or derivations of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions or derivative works in binary form must reproduce the above
copyright notice. This list of conditions and the following disclaimer must be
reproduced in the documentation and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its contributors may
be used to endorse or promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
Portions of this software are copyright © 2024 The FreeType
Project (www.freetype.org). Please see LICENSE_FT.txt for more information.
All rights reserved.
*/
#pragma endregion
#include "MonsterStrategyHelpers.h"
#include "util.h"
#include "AdventuresInLestoria.h"
#include "SoundEffect.h"
#include "BulletTypes.h"
using A=Attribute;
INCLUDE_game
void Monster::STRATEGY::PARROT(Monster&m,float fElapsedTime,std::string strategy){
}

@ -0,0 +1,51 @@
#pragma region License
/*
License (OLC-3)
~~~~~~~~~~~~~~~
Copyright 2024 Joshua Sigona <sigonasr2@gmail.com>
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
1. Redistributions or derivations of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions or derivative works in binary form must reproduce the above
copyright notice. This list of conditions and the following disclaimer must be
reproduced in the documentation and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its contributors may
be used to endorse or promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
Portions of this software are copyright © 2024 The FreeType
Project (www.freetype.org). Please see LICENSE_FT.txt for more information.
All rights reserved.
*/
#pragma endregion
#include "MonsterStrategyHelpers.h"
#include "util.h"
#include "AdventuresInLestoria.h"
#include "SoundEffect.h"
#include "BulletTypes.h"
using A=Attribute;
INCLUDE_game
void Monster::STRATEGY::PIRATE_BUCCANEER(Monster&m,float fElapsedTime,std::string strategy){
}

@ -0,0 +1,51 @@
#pragma region License
/*
License (OLC-3)
~~~~~~~~~~~~~~~
Copyright 2024 Joshua Sigona <sigonasr2@gmail.com>
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
1. Redistributions or derivations of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions or derivative works in binary form must reproduce the above
copyright notice. This list of conditions and the following disclaimer must be
reproduced in the documentation and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its contributors may
be used to endorse or promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
Portions of this software are copyright © 2024 The FreeType
Project (www.freetype.org). Please see LICENSE_FT.txt for more information.
All rights reserved.
*/
#pragma endregion
#include "MonsterStrategyHelpers.h"
#include "util.h"
#include "AdventuresInLestoria.h"
#include "SoundEffect.h"
#include "BulletTypes.h"
using A=Attribute;
INCLUDE_game
void Monster::STRATEGY::PIRATE_CAPTAIN(Monster&m,float fElapsedTime,std::string strategy){
}

@ -0,0 +1,90 @@
#pragma region License
/*
License (OLC-3)
~~~~~~~~~~~~~~~
Copyright 2024 Joshua Sigona <sigonasr2@gmail.com>
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
1. Redistributions or derivations of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions or derivative works in binary form must reproduce the above
copyright notice. This list of conditions and the following disclaimer must be
reproduced in the documentation and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its contributors may
be used to endorse or promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
Portions of this software are copyright © 2024 The FreeType
Project (www.freetype.org). Please see LICENSE_FT.txt for more information.
All rights reserved.
*/
#pragma endregion
#include "MonsterStrategyHelpers.h"
#include "util.h"
#include "AdventuresInLestoria.h"
#include "SoundEffect.h"
#include "BulletTypes.h"
using A=Attribute;
INCLUDE_game
void Monster::STRATEGY::PIRATE_MARAUDER(Monster&m,float fElapsedTime,std::string strategy){
enum PhaseName{
MOVE,
WINDUP,
RECOVERY,
};
enum AttackType{
STAB,
SLASH
};
switch(m.phase){
case MOVE:{
float distToPlayer=m.GetDistanceFrom(game->GetPlayer()->GetPos());
if(distToPlayer>ConfigFloat("Attack Spacing")/100.f*24){
RUN_TOWARDS(m,fElapsedTime,"Run Towards");
}else{
m.phase=WINDUP;
m.F(A::CASTING_TIMER)=ConfigFloat("Slash Windup Time");
m.PerformAnimation("SLASH",m.GetFacingDirectionToTarget(game->GetPlayer()->GetPos()));
}
}break;
case WINDUP:{
m.F(A::CASTING_TIMER)-=fElapsedTime;
if(m.F(A::CASTING_TIMER)<=0){
m.phase=RECOVERY;
vf2d slashTarget=game->GetPlayer()->GetPos();
m.PerformAnimation("SLASHING",m.GetFacingDirectionToTarget(game->GetPlayer()->GetPos()));
CreateBullet(DaggerSlash)(m,ConfigFloat("Dagger Hit Radius"),m.GetAttack(),ConfigFloat("Dagger Slash Knockback"),m.OnUpperLevel(),m.GetFacingDirectionToTarget(slashTarget),ConfigFloat("Dagger Frame Duration"),ConfigFloat("Dagger Slash Distance"))EndBullet;
m.F(A::CASTING_TIMER)=m.GetCurrentAnimation().GetTotalAnimationDuration();
m.F(A::RECOVERY_TIME)=ConfigFloat("Attack Recovery Time");
}
}break;
case RECOVERY:{
m.F(A::CASTING_TIMER)-=fElapsedTime;
m.F(A::RECOVERY_TIME)-=fElapsedTime;
if(m.F(A::CASTING_TIMER)<=0){m.PerformIdleAnimation(m.GetFacingDirectionToTarget(game->GetPlayer()->GetPos()));}
if(m.F(A::RECOVERY_TIME)<=0)m.phase=MOVE;
}break;
}
}

@ -67,6 +67,13 @@ void Monster::InitializeStrategies(){
STRATEGY_DATA.insert("Do Nothing",Monster::STRATEGY::DONOTHING);
STRATEGY_DATA.insert("Stone Golem",Monster::STRATEGY::STONE_GOLEM);
STRATEGY_DATA.insert("Breaking Pillar",Monster::STRATEGY::BREAKING_PILLAR);
STRATEGY_DATA.insert("Pirate Marauder",Monster::STRATEGY::PIRATE_MARAUDER);
STRATEGY_DATA.insert("Pirate Captain",Monster::STRATEGY::PIRATE_CAPTAIN);
STRATEGY_DATA.insert("Pirate Buccaneer",Monster::STRATEGY::PIRATE_BUCCANEER);
STRATEGY_DATA.insert("Crab",Monster::STRATEGY::CRAB);
STRATEGY_DATA.insert("Seagull",Monster::STRATEGY::SEAGULL);
STRATEGY_DATA.insert("Sandworm",Monster::STRATEGY::SANDWORM);
STRATEGY_DATA.insert("Parrot",Monster::STRATEGY::PARROT);
STRATEGY_DATA.SetInitialized();
}

@ -0,0 +1,51 @@
#pragma region License
/*
License (OLC-3)
~~~~~~~~~~~~~~~
Copyright 2024 Joshua Sigona <sigonasr2@gmail.com>
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
1. Redistributions or derivations of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions or derivative works in binary form must reproduce the above
copyright notice. This list of conditions and the following disclaimer must be
reproduced in the documentation and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its contributors may
be used to endorse or promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
Portions of this software are copyright © 2024 The FreeType
Project (www.freetype.org). Please see LICENSE_FT.txt for more information.
All rights reserved.
*/
#pragma endregion
#include "MonsterStrategyHelpers.h"
#include "util.h"
#include "AdventuresInLestoria.h"
#include "SoundEffect.h"
#include "BulletTypes.h"
using A=Attribute;
INCLUDE_game
void Monster::STRATEGY::SANDWORM(Monster&m,float fElapsedTime,std::string strategy){
}

@ -0,0 +1,51 @@
#pragma region License
/*
License (OLC-3)
~~~~~~~~~~~~~~~
Copyright 2024 Joshua Sigona <sigonasr2@gmail.com>
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
1. Redistributions or derivations of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions or derivative works in binary form must reproduce the above
copyright notice. This list of conditions and the following disclaimer must be
reproduced in the documentation and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its contributors may
be used to endorse or promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
Portions of this software are copyright © 2024 The FreeType
Project (www.freetype.org). Please see LICENSE_FT.txt for more information.
All rights reserved.
*/
#pragma endregion
#include "MonsterStrategyHelpers.h"
#include "util.h"
#include "AdventuresInLestoria.h"
#include "SoundEffect.h"
#include "BulletTypes.h"
using A=Attribute;
INCLUDE_game
void Monster::STRATEGY::SEAGULL(Monster&m,float fElapsedTime,std::string strategy){
}

@ -1,37 +1,9 @@
Time Trial Idea
Upon completing a stage for the first time, the player is shown the completion time and a record time.
On first clears, the player will always obtain a new record. Make it apparent to the player they obtained a new record.
The overworld map will show a new section that says "Completion Time" for any previous completed stages.
Upon the second time entering a stage, the game will spawn a timer that the player can run into to begin a time trial-like mode.
During the Time Trial mode the player can defeat monsters to freeze the timer by 1 second per mob killed.
Upon completion of a stage in time trial mode if the player beat their previous time (which they likely will) the record will update.
For each class and stage combination there will be a "dev time"
Traveling merchants of different colors/looks.
Look into removing OVERRIDE from rumble settings. It looks like it was used to purposefully disable rumble, but looks very unnecessary.
New Monster Sound Effects
Add a Helper Function: Change proximity knockback checks regardless of player/monster friendliness to be a function call instead.
Add rectangular hitbox possibility to the game for monsters. (specifically for use with pillars)
Fanfare -> Post boss song
Add unconscious monster state.
DEMO
====
Add Unit Test for Attack Speed Reduction stat.
Move censoredTextEntry calculation in MenuLabel draw somewhere else perhaps?
PGETinker notes
===============
Changing zoom size does not affect the indentation breadcumb immediately (requires scrolling to change the view)
Enabling javid mode does not immediately re-evaluate code.

@ -39,7 +39,7 @@ All rights reserved.
#define VERSION_MAJOR 1
#define VERSION_MINOR 3
#define VERSION_PATCH 0
#define VERSION_BUILD 11593
#define VERSION_BUILD 11595
#define stringify(a) stringify_(a)
#define stringify_(a) #a

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<map version="1.10" tiledversion="1.10.2" class="Map" orientation="orthogonal" renderorder="right-down" width="335" height="165" tilewidth="24" tileheight="24" infinite="0" nextlayerid="8" nextobjectid="3">
<map version="1.10" tiledversion="1.10.2" class="Map" orientation="orthogonal" renderorder="right-down" width="335" height="165" tilewidth="24" tileheight="24" infinite="0" nextlayerid="8" nextobjectid="9">
<properties>
<property name="Background Music" propertytype="BGM" value="mountain"/>
<property name="Level Type" type="int" propertytype="LevelType" value="0"/>
@ -42,8 +42,8 @@
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2312,1684,1682,2298,2298,1680,1683,2312,0,2700,2700,2700,2700,2700,2700,2700,2700,2700,2700,2700,2700,2700,2700,2217,2216,2113,2217,2112,2216,2164,2165,2216,2112,2112,2164,2216,2217,2112,2112,2216,2216,2165,2165,2217,2165,2165,2165,2165,2217,2217,2217,2165,2165,2217,2165,2165,2165,2165,2217,2217,2217,2165,2165,2217,2165,2165,2165,2165,2217,2217,2217,2165,2112,2112,2216,2216,2113,2165,2113,2216,2216,2113,2112,2216,2217,2217,2164,2216,2165,2165,2165,2217,2112,2216,2112,2164,2113,2112,2112,2112,2112,2113,2217,2216,2216,2164,2216,2113,2165,2216,2113,2113,2217,2112,2165,2112,2216,2113,2112,2165,2112,2165,2216,2113,2165,2165,2216,2217,2165,2113,2164,2165,2216,2164,2217,2217,2112,2112,2113,2164,2217,2112,2165,2216,2165,2164,2216,2164,2216,2112,2216,2164,2217,2113,2216,2164,2165,2112,2112,2216,2217,2217,2113,2217,2217,2216,2164,2164,2112,2217,2113,2113,2216,2113,2112,2164,2165,2217,2217,2112,2112,2165,2216,2217,2165,2165,2164,2216,2113,2164,2165,2164,2113,2112,2312,2312,2312,2312,2312,2312,2312,2312,2312,2312,0,0,2312,2312,2312,2312,2312,2312,2312,2312,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2312,2312,1684,1681,1681,1683,2312,2312,0,2700,2700,2700,2700,2700,2700,2700,2700,2700,2700,2700,2700,2700,2700,2113,2112,2216,2217,2112,2164,2112,2165,2216,2217,2216,2165,2164,2112,2216,2217,2112,2113,2164,2113,2113,2113,2216,2164,2217,2165,2217,2216,2217,2164,2112,2216,2165,2112,2112,2113,2112,2217,2216,2112,2217,2217,2112,2217,2164,2113,2217,2164,2217,2164,2164,2165,2112,2164,2217,2216,2165,2113,2112,2113,2112,2165,2165,2164,2113,2165,2112,2216,2112,2216,2164,2112,2216,2165,2112,2112,2113,2164,2216,2216,2217,2217,2217,2164,2112,2217,2165,2164,2216,2165,2165,2165,2165,2216,2216,2112,2113,2217,2164,2112,2164,2112,2112,2165,2217,2165,2217,2112,2113,2216,2164,2216,2112,2112,2217,2113,2216,2164,2113,2216,2165,2113,2216,2164,2216,2165,2112,2217,2164,2164,2113,2217,2216,2164,2217,2217,2216,2165,2216,2112,2216,2217,2113,2164,2113,2165,2112,2113,2112,2164,2164,2165,2217,2217,2164,2165,2112,2113,2164,2217,2165,2113,2217,2217,2113,2112,2216,2113,2113,2165,2164,2312,2312,2312,2312,2312,2312,2312,2312,2312,2312,2312,0,2312,2312,2312,2312,2312,2312,2312,2312,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2312,2312,2312,2312,2312,2312,2312,2312,0,2700,2700,2700,2700,2700,2700,2700,2700,2700,2700,2700,2700,2700,2112,2112,2164,2165,2112,2165,2216,2164,2217,2217,2165,2113,2216,2165,2216,2217,2165,2165,2113,2216,2217,2164,2164,2216,2217,2164,2217,2216,2216,2165,2165,2112,2216,2164,2217,2112,2216,2165,2112,2216,2164,2165,2165,2112,2164,2216,2164,2112,2217,2216,2113,2113,2164,2216,2113,2164,2164,2113,2216,2217,2216,2217,2164,2112,2112,2113,2164,2112,2165,2112,2113,2217,2164,2164,2216,2113,2217,2165,2164,2113,2112,2217,2164,2165,2164,2113,2216,2112,2112,2216,2217,2112,2112,2164,2112,2165,2164,2113,2165,2113,2165,2165,2165,2164,2112,2164,2112,2112,2164,2112,2113,2165,2216,2112,2165,2217,2165,2216,2113,2216,2112,2217,2216,2164,2113,2216,2165,2165,2113,2113,2217,2164,2216,2165,2164,2113,2164,2112,2217,2106,2107,2107,2107,2107,2107,2107,2107,2108,2216,2112,2165,2112,2113,2165,2113,2165,2164,2216,2164,2113,2165,2217,2165,2216,2113,2165,2165,2216,2112,2217,2164,2165,2113,2113,2312,2312,2312,2312,2312,2312,2312,2312,2312,0,2312,2312,2312,2312,2312,2312,2312,2312,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2312,2312,2312,2312,2312,2312,2312,0,0,2700,1736,1735,2700,2700,2700,2700,2700,2700,2700,2700,2700,2217,2216,2216,2112,2217,2165,2217,2112,2165,2112,2165,2113,2112,2112,2164,2112,2113,2164,2165,2113,2107,2107,2107,2107,2107,2107,2108,2106,2107,2107,2107,2107,2107,2107,2107,2107,2217,2106,2107,2107,2107,2107,2107,2107,2107,2107,2108,2106,2107,2112,2164,2217,2113,2164,2216,2113,2216,2112,2113,2165,2165,2216,2165,2106,2107,2107,2107,2107,2107,2107,2107,2107,2108,2112,2164,2216,2217,2112,2113,2217,2112,2113,2113,2112,2217,2112,2165,2113,2216,2164,2113,2216,2165,2164,2165,2216,2165,2217,2113,2216,2216,2165,2164,2113,2217,2216,2113,2217,2112,2164,2216,2217,2216,2165,2164,2112,2113,2113,2165,2113,2164,2165,2216,2106,2107,2107,2217,2106,2107,2107,2107,2107,2107,2108,2106,2107,2107,2107,2107,2107,2109,2159,2159,2159,2159,2159,2159,2159,2110,2107,2107,2108,2217,2216,2165,2217,2112,2112,2165,2113,2164,2165,2164,2164,2165,2217,2112,2217,2113,2112,2216,2217,2216,2164,2165,2312,2312,2312,2312,2312,2312,2312,2312,2312,0,2312,2312,2312,2312,2312,2312,2312,2312,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2312,2312,2312,2312,2312,2312,2312,0,0,1736,1786,1784,1735,2700,2700,2700,2700,2700,2700,2700,2700,2165,2216,2216,2165,2165,2165,2112,2216,2216,2216,2165,2112,2113,2217,2112,0,0,0,0,2107,2159,2159,2159,2159,2159,2159,2110,2109,2159,2159,2159,2159,2159,2159,2159,2159,2110,2109,2159,2159,2159,2159,2159,2159,2159,2159,2110,2109,2159,2159,2164,2165,2165,2112,2112,2165,2164,2165,2216,2217,2112,2164,2106,2109,2159,2159,2159,2159,2159,2159,2159,2159,2110,2107,2107,2107,2108,2216,2165,2216,2112,2216,2112,2106,2107,2107,2107,2217,2112,2112,2165,2106,2107,2107,2108,2165,2113,2113,2112,2216,2164,2113,2112,2217,2217,2164,2164,2165,2112,2217,2217,2106,2107,2107,2107,2107,2107,2107,2108,2217,2216,2106,2107,2109,2159,2159,2107,2109,2159,2159,2159,2159,2159,2110,2109,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2110,2107,2107,2107,2107,2107,2107,2108,2112,2113,2106,2107,2107,2107,2107,2108,2112,2164,2217,2216,2164,2165,2217,2217,2312,2312,2312,2312,2312,2312,2312,2312,2312,0,2312,2312,2312,2312,2312,2312,2312,2312,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2312,2312,2312,2312,2312,2312,2312,0,0,2700,1736,1735,2700,2700,2700,2700,2700,2700,2700,2700,2700,2217,2216,2216,2112,2217,2165,2217,2112,2165,2112,2165,2113,2112,2112,2164,2112,2113,2164,2165,2113,2107,2107,2107,2107,2107,2107,2108,2106,2107,2107,2107,2107,2107,2107,2107,2107,2217,2106,2107,2107,2107,2107,2107,2107,2107,2107,2108,2106,2107,2112,2164,2217,2113,2164,2216,2113,2216,2112,2113,2165,2165,2216,2165,2106,2107,2107,2107,2107,2107,2107,2107,2107,2108,2112,2164,2216,2217,2112,2113,2217,2112,2113,2113,2112,2217,2112,2165,2113,2216,2164,2113,2216,2165,2164,2165,2216,2165,2217,2113,2216,2216,2165,2164,2113,2217,2216,2113,2217,2112,2164,2216,2217,2216,2165,2164,2112,2113,2113,2165,2113,2164,2165,2216,2106,2107,2108,2217,2106,2107,2107,2107,2107,2107,2108,2106,2107,2107,2107,2107,2107,2109,2159,2159,2159,2159,2159,2159,2159,2110,2107,2107,2108,2217,2216,2165,2217,2112,2112,2165,2113,2164,2165,2164,2164,2165,2217,2112,2217,2113,2112,2216,2217,2216,2164,2165,2312,2312,2312,2312,2312,2312,2312,2312,2312,0,2312,2312,2312,2312,2312,2312,2312,2312,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2312,2312,2312,2312,2312,2312,2312,0,0,1736,1786,1784,1735,2700,2700,2700,2700,2700,2700,2700,2700,2165,2216,2216,2165,2165,2165,2112,2216,2216,2216,2165,2112,2113,2217,2112,0,0,0,0,2107,2159,2159,2159,2159,2159,2159,2110,2109,2159,2159,2159,2159,2159,2159,2159,2159,2110,2109,2159,2159,2159,2159,2159,2159,2159,2159,2110,2109,2159,2159,2164,2165,2165,2112,2112,2165,2164,2165,2216,2217,2112,2164,2106,2109,2159,2159,2159,2159,2159,2159,2159,2159,2110,2107,2107,2107,2108,2216,2165,2216,2112,2216,2112,2106,2107,2107,2107,2217,2112,2112,2165,2106,2107,2107,2108,2165,2113,2113,2112,2216,2164,2113,2112,2217,2217,2164,2164,2165,2112,2217,2217,2106,2107,2107,2107,2107,2107,2107,2108,2217,2216,2106,2107,2109,2159,2110,2107,2109,2159,2159,2159,2159,2159,2110,2109,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2110,2107,2107,2107,2107,2107,2107,2108,2112,2113,2106,2107,2107,2107,2107,2108,2112,2164,2217,2216,2164,2165,2217,2217,2312,2312,2312,2312,2312,2312,2312,2312,2312,0,2312,2312,2312,2312,2312,2312,2312,2312,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2312,2312,2312,2312,2312,2312,2312,0,2700,1734,2298,2298,1732,2700,2700,2700,2700,2700,2700,2700,2700,2217,2165,2112,2113,2216,2217,2216,2113,2113,2165,2216,0,0,0,0,0,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2165,2216,2107,2107,2107,2107,2107,2107,2107,2109,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2110,2107,2107,2107,2107,2107,2107,2109,2159,2159,2159,2159,0,2107,2107,2109,2159,2159,2110,2107,2107,2107,2107,2108,2113,2112,2216,2112,2112,2106,2107,2107,2107,2107,2107,2109,2159,2159,2159,2159,2159,2159,2110,2107,0,2109,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2110,2107,2107,2109,2159,2159,2159,2159,2110,2108,2165,2165,2112,2165,2216,2216,2113,2312,2312,2312,2312,2312,2312,2312,2312,2312,0,2312,2312,2312,2312,2312,2312,2312,2312,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2312,2312,2312,2312,2312,2312,2312,0,2700,1734,2298,2298,1732,2700,2700,2700,2700,2700,2700,2700,2700,2165,2112,2112,2112,2164,2112,2216,2164,0,0,0,0,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2110,2107,2107,2107,2107,2107,2109,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2160,2216,2216,2164,2113,2113,2164,2165,2312,2312,2312,2312,1736,1785,1785,1735,2312,0,2312,2312,2312,2312,2312,2312,2312,2312,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2312,2312,2312,2312,2312,2312,0,0,1736,1786,2298,2298,1732,2700,2700,2700,2700,2700,2700,2700,2700,2217,2165,2216,2217,2164,2164,2216,2112,0,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2159,2160,2165,2216,2112,2112,2164,2113,2312,2312,2312,2312,2312,1684,1682,2298,1784,1735,0,2312,2312,2312,2312,2312,1736,1785,1785,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
@ -861,5 +861,33 @@
<property name="Upper?" type="bool" value="false"/>
</properties>
</object>
<object id="3" template="../maps/Monsters/Giant Crab.tx" x="324" y="1608">
<properties>
<property name="spawner" type="object" value="8"/>
</properties>
</object>
<object id="4" template="../maps/Monsters/Pirate.tx" x="366" y="1416">
<properties>
<property name="spawner" type="object" value="8"/>
</properties>
</object>
<object id="5" template="../maps/Monsters/Pirate.tx" x="492" y="1452">
<properties>
<property name="spawner" type="object" value="8"/>
</properties>
</object>
<object id="6" template="../maps/Monsters/Pirate Marauder.tx" x="480" y="1542">
<properties>
<property name="spawner" type="object" value="8"/>
</properties>
</object>
<object id="7" template="../maps/Monsters/Pirate Marauder.tx" x="408" y="1542">
<properties>
<property name="spawner" type="object" value="8"/>
</properties>
</object>
<object id="8" name="Spawn Zone" type="SpawnGroup" x="180" y="1326" width="426" height="306">
<ellipse/>
</object>
</objectgroup>
</map>

@ -788,7 +788,7 @@
</object>
<object id="32" name="Story II-II" type="StagePlate" x="229" y="105" width="18" height="22">
<properties>
<property name="Map" propertytype="Level" value="STORY_2_1"/>
<property name="Map" propertytype="Level" value="STORY_2_2"/>
<property name="Type" propertytype="StageType" value="STORY"/>
<property name="Unlock Condition" propertytype="Level" value="BOSS_2"/>
</properties>

@ -1026,4 +1026,64 @@ MonsterStrategy
# RGBA
Death Ring Bullet Color = 255, 255, 255, 255
}
Pirate Marauder
{
# Distance from player to run to before swinging weapon.
Attack Spacing = 50
# Stab Attack windup time
Stab Windup Time = 0.3s
# Amount of time where nothing happens after an attack.
Attack Recovery Time = 1.0s
# Number of pixels from the dagger's center that the player would be hit by.
Dagger Hit Radius = 12
# Number of pixels of reach the dagger stab has.
Dagger Stab Distance = 2
Dagger Stab Knockback = 100
# How long between each dagger stab frame.
Dagger Frame Duration = 0.1s
# Slash Attack windup time
Slash Windup Time = 0.4s
# Number of pixels of reach the dagger slash has from the monster.
Dagger Slash Distance = 6
Dagger Slash Knockback = 75
# Offset for the dagger stab effect per direction from the monster's center.
Dagger Up Offset = 5,-4
Dagger Down Offset = -5,5
Dagger Right Offset = 4,4
Dagger Left Offset = -2,4
}
Pirate Captain
{
}
Seagull
{
}
Sandworm
{
}
Pirate Buccaneer
{
}
Parrot
{
}
Crab
{
}
}

@ -1251,11 +1251,21 @@ Monsters
Strategy = Goblin Dagger
#### Script Override ####
# Stab Attack windup time
Stab Windup Time = 0.2s
# Amount of time where nothing happens after an attack.
Attack Recovery Time = 0.6s
########
# Wait time override for Run Towards strategy.
WaitTime = 0
#Size of each animation frame
SheetFrameSize = 36,36
SheetFrameSize = 48,48
# Setting this to true means every four rows indicates one animation, the ordering of the directions is: NORTH, EAST, SOUTH, WEST
4-Way Spritesheet = True
@ -1267,11 +1277,11 @@ Monsters
# The First Four animations must represent a standing, walking, attack, and death animation. Their names are up to the creator.
IDLE = 4, 0.4, Repeat
WALK = 4, 0.15, Repeat
DEATH = 4, 0.25, OneShot
SLASHING = 4, 0.1, OneShot
DEATH = 4, 0.25, OneShot
STABBING = 3, 0.1, OneShot
STAB = 1, 0.1, OneShot
SLASH = 1, 0.1, OneShot
STAB = 1, 0.1, OneShot
}
# Drop Item Name, Drop Percentage(0-100%), Drop Min Quantity, Drop Max Quantity
@ -1311,8 +1321,8 @@ Monsters
# The First Four animations must represent a standing, walking, attack, and death animation. Their names are up to the creator.
IDLE = 4, 0.4, Repeat
WALK = 4, 0.15, Repeat
DEATH = 4, 0.15, OneShot
SLASHING = 4, 0.075, OneShot
DEATH = 4, 0.15, OneShot
SLASH = 1, 0.1, OneShot
SPIN = 2, 0.2, Repeat
SPINNING = 4, 0.1, Repeat
@ -1356,8 +1366,8 @@ Monsters
# The First Four animations must represent a standing, walking, attack, and death animation. Their names are up to the creator.
IDLE = 4, 0.6, Repeat
WALK = 4, 0.15, Repeat
DEATH = 4, 0.25, OneShot
SLASHING = 4, 0.1, OneShot
DEATH = 4, 0.25, OneShot
STABBING = 3, 0.1, OneShot
SLASH = 1, 0.1, OneShot
STAB = 1, 0.1, OneShot
@ -1403,8 +1413,8 @@ Monsters
# The First Four animations must represent a standing, walking, attack, and death animation. Their names are up to the creator.
IDLE = 4, 0.6, Repeat
WALK = 4, 0.15, Repeat
DEATH = 4, 0.25, OneShot
SHOOTING = 4, 0.2, OneShot
DEATH = 4, 0.25, OneShot
SHOOT = 2, 0.1, OneShot
}
@ -1446,7 +1456,7 @@ Monsters
IDLE = 1, 0.6, Repeat
WALK = 2, 0.15, Repeat
PINCER = 3, 0.3, Repeat
DEATH = 3, 0.15, OneShot
DEATH = 2, 0.15, OneShot
}
# Drop Item Name, Drop Percentage(0-100%), Drop Min Quantity, Drop Max Quantity
@ -1487,7 +1497,134 @@ Monsters
IDLE = 1, 0.6, Repeat
WALK = 2, 0.15, Repeat
PINCER = 3, 0.3, Repeat
DEATH = 3, 0.15, OneShot
DEATH = 2, 0.15, OneShot
}
# Drop Item Name, Drop Percentage(0-100%), Drop Min Quantity, Drop Max Quantity
#DROP[0] = Broken Dagger,30%,1,1
Hurt Sound = Monster Hurt
Death Sound = Slime Dead
Walk Sound = Slime Walk
}
Seagull
{
Health = 40
Attack = 0
CollisionDmg = 0
MoveSpd = 120%
Size = 80%
XP = 6
Strategy = Seagull
# Wait time override for Run Towards strategy.
WaitTime = 0
#Size of each animation frame
SheetFrameSize = 48,48
# Setting this to true means every four rows indicates one animation, the ordering of the directions is: NORTH, EAST, SOUTH, WEST
4-Way Spritesheet = True
Animations
{
# Frame Count, Frame Speed (s), Frame Cycling (Repeat,OneShot,PingPong,Reverse,ReverseOneShot)
# Animations must be defined in the same order as they are in their sprite sheets
# The First Four animations must represent a standing, walking, attack, and death animation. Their names are up to the creator.
IDLE = 1, 0.6, Repeat
FLY = 2, 0.15, Repeat
ATTACK = 1, 0.3, OneShot
DEATH = 1, 0.15, OneShot
}
# Drop Item Name, Drop Percentage(0-100%), Drop Min Quantity, Drop Max Quantity
#DROP[0] = Broken Dagger,30%,1,1
Hurt Sound = Monster Hurt
Death Sound = Slime Dead
Walk Sound = Slime Walk
}
Sandworm
{
Health = 400
Attack = 33
CollisionDmg = 10
MoveSpd = 200%
Size = 90%
XP = 24
Strategy = Sandworm
# Wait time override for Run Towards strategy.
WaitTime = 0
#Size of each animation frame
SheetFrameSize = 96,96
# Setting this to true means every four rows indicates one animation, the ordering of the directions is: NORTH, EAST, SOUTH, WEST
4-Way Spritesheet = True
Animations
{
# Frame Count, Frame Speed (s), Frame Cycling (Repeat,OneShot,PingPong,Reverse,ReverseOneShot)
# Animations must be defined in the same order as they are in their sprite sheets
# The First Four animations must represent a standing, walking, attack, and death animation. Their names are up to the creator.
IDLE = 4, 0.2, Repeat
SWIM = 4, 0.15, Repeat
SAND ATTACK = 6, 0.2, OneShot
DEATH = 4, 0.15, OneShot
BURROW = 6, 0.1, OneShot
EMERGE = 5, 0.1, OneShot
}
# Drop Item Name, Drop Percentage(0-100%), Drop Min Quantity, Drop Max Quantity
#DROP[0] = Broken Dagger,30%,1,1
Hurt Sound = Monster Hurt
Death Sound = Slime Dead
Walk Sound = Slime Walk
}
Parrot
{
Health = 10
Attack = 22
CollisionDmg = 22
MoveSpd = 180%
Size = 50%
XP = 0
Strategy = Parrot
# Instead of the monster dying, it gets knocked unconscious
Unconscious Time = 5s
#Size of each animation frame
SheetFrameSize = 96,96
# Setting this to true means every four rows indicates one animation, the ordering of the directions is: NORTH, EAST, SOUTH, WEST
4-Way Spritesheet = True
Animations
{
# Frame Count, Frame Speed (s), Frame Cycling (Repeat,OneShot,PingPong,Reverse,ReverseOneShot)
# Animations must be defined in the same order as they are in their sprite sheets
# The First Four animations must represent a standing, walking, attack, and death animation. Their names are up to the creator.
IDLE = 4, 0.2, Repeat
SWIM = 4, 0.15, Repeat
SAND ATTACK = 6, 0.2, OneShot
DEATH = 4, 0.15, OneShot
BURROW = 6, 0.1, OneShot
EMERGE = 5, 0.1, OneShot
}
# Drop Item Name, Drop Percentage(0-100%), Drop Min Quantity, Drop Max Quantity

@ -30,3 +30,9 @@ You can make use of those extra rings you have been piling up!
Hi
===STORY_2_2===
[You]
Hi

@ -1008,6 +1008,14 @@
<tile id="678" type="ForegroundTile"/>
<tile id="679" type="ForegroundTile"/>
<tile id="680" type="ForegroundTile"/>
<tile id="684" type="ForegroundTile"/>
<tile id="685" type="ForegroundTile"/>
<tile id="686" type="ForegroundTile"/>
<tile id="687" type="ForegroundTile"/>
<tile id="688" type="ForegroundTile"/>
<tile id="689" type="ForegroundTile"/>
<tile id="690" type="ForegroundTile"/>
<tile id="691" type="ForegroundTile"/>
<tile id="713" type="ForegroundTile">
<objectgroup draworder="index" id="2">
<object id="1" x="19" y="0" width="5" height="16"/>
@ -1035,17 +1043,42 @@
<tile id="726" type="ForegroundTile"/>
<tile id="727" type="ForegroundTile"/>
<tile id="728" type="ForegroundTile"/>
<tile id="734">
<tile id="729" type="ForegroundTile">
<objectgroup draworder="index" id="4">
<object id="3" x="12" y="0" width="12" height="10"/>
</objectgroup>
</tile>
<tile id="730" type="ForegroundTile">
<objectgroup draworder="index" id="2">
<object id="1" x="0" y="0" width="13" height="10"/>
</objectgroup>
</tile>
<tile id="731" type="ForegroundTile">
<objectgroup draworder="index" id="2">
<object id="1" x="10" y="0" width="14" height="12"/>
</objectgroup>
</tile>
<tile id="732" type="ForegroundTile">
<objectgroup draworder="index" id="2">
<object id="1" x="0" y="0" width="11" height="12"/>
</objectgroup>
</tile>
<tile id="733" type="ForegroundTile">
<objectgroup draworder="index" id="2">
<object id="1" x="0" y="1" width="24" height="8"/>
</objectgroup>
</tile>
<tile id="734" type="ForegroundTile">
<objectgroup draworder="index" id="2">
<object id="1" x="1" y="9.81818" width="23" height="14.1818"/>
</objectgroup>
</tile>
<tile id="735">
<tile id="735" type="ForegroundTile">
<objectgroup draworder="index" id="2">
<object id="1" x="0" y="0" width="24" height="24"/>
</objectgroup>
</tile>
<tile id="736">
<tile id="736" type="ForegroundTile">
<objectgroup draworder="index" id="2">
<object id="1" x="0" y="6" width="21" height="18"/>
</objectgroup>
@ -1078,6 +1111,21 @@
<tile id="776" type="ForegroundTile"/>
<tile id="777" type="ForegroundTile"/>
<tile id="778" type="ForegroundTile"/>
<tile id="779" type="ForegroundTile">
<objectgroup draworder="index" id="3">
<object id="2" x="8" y="0" width="16" height="6"/>
</objectgroup>
</tile>
<tile id="780" type="ForegroundTile">
<objectgroup draworder="index" id="3">
<object id="2" x="0" y="0" width="24" height="7"/>
</objectgroup>
</tile>
<tile id="781" type="ForegroundTile">
<objectgroup draworder="index" id="3">
<object id="2" x="0" y="0" width="12" height="4"/>
</objectgroup>
</tile>
<tile id="790">
<objectgroup draworder="index" id="2">
<object id="1" x="10" y="0" width="14" height="10"/>
@ -1144,19 +1192,19 @@
<object id="1" x="0" y="10" width="22" height="14"/>
</objectgroup>
</tile>
<tile id="824">
<tile id="824" type="ForegroundTile">
<objectgroup draworder="index" id="2">
<object id="1" x="6" y="0" width="18" height="24"/>
<object id="1" x="6" y="15" width="18" height="9"/>
</objectgroup>
</tile>
<tile id="825">
<tile id="825" type="ForegroundTile">
<objectgroup draworder="index" id="2">
<object id="1" x="0" y="0" width="24" height="24"/>
<object id="1" x="0" y="15" width="24" height="9"/>
</objectgroup>
</tile>
<tile id="826">
<tile id="826" type="ForegroundTile">
<objectgroup draworder="index" id="2">
<object id="1" x="0" y="3" width="19" height="21"/>
<object id="1" x="0" y="15" width="19" height="9"/>
</objectgroup>
</tile>
<tile id="857" type="ForegroundTile">
@ -1215,17 +1263,17 @@
<object id="1" x="0" y="0" width="18" height="15"/>
</objectgroup>
</tile>
<tile id="869">
<tile id="869" type="ForegroundTile">
<objectgroup draworder="index" id="2">
<object id="1" x="4" y="0" width="20" height="15"/>
</objectgroup>
</tile>
<tile id="870">
<tile id="870" type="ForegroundTile">
<objectgroup draworder="index" id="2">
<object id="1" x="0" y="0" width="24" height="16"/>
</objectgroup>
</tile>
<tile id="871">
<tile id="871" type="ForegroundTile">
<objectgroup draworder="index" id="2">
<object id="1" x="0" y="0" width="18" height="15"/>
</objectgroup>

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<map version="1.10" tiledversion="1.10.2" orientation="orthogonal" renderorder="right-down" width="30" height="20" tilewidth="24" tileheight="24" infinite="1" nextlayerid="3" nextobjectid="33">
<map version="1.10" tiledversion="1.10.2" orientation="orthogonal" renderorder="right-down" width="30" height="20" tilewidth="24" tileheight="24" infinite="1" nextlayerid="3" nextobjectid="43">
<tileset firstgid="1" source="Monsters.tsx"/>
<layer id="1" name="Tile Layer 1" width="30" height="20">
<data encoding="csv"/>
@ -29,5 +29,13 @@
<object id="29" template="Monsters/Stone Golem.tx" type="Monster" x="174" y="444"/>
<object id="30" name="Training Dummy" type="Monster" gid="22" x="180" y="-42" width="24" height="24"/>
<object id="32" name="Large Training Dummy" type="Monster" gid="22" x="138" y="-78" width="48" height="48"/>
<object id="34" template="Monsters/Crab.tx" type="Monster" x="-120" y="408" width="28.8" height="28.8"/>
<object id="36" template="Monsters/Pirate.tx" type="Monster" x="-24" y="420"/>
<object id="37" template="Monsters/Pirate Captain.tx" type="Monster" x="60" y="420"/>
<object id="38" name="Seagull" type="Monster" gid="26" x="18" y="498" width="38.4" height="38.4"/>
<object id="39" template="Monsters/Pirate Buccaneer.tx" type="Monster" x="90" y="486"/>
<object id="40" template="Monsters/Pirate Marauder.tx" type="Monster" x="-72" y="492"/>
<object id="41" template="Monsters/Sandworm.tx" type="Monster" x="168" y="534"/>
<object id="42" template="Monsters/Giant Crab.tx" type="Monster" x="-108" y="582"/>
</objectgroup>
</map>

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<template>
<tileset firstgid="1" source="../Monsters.tsx"/>
<object name="Crab" type="Monster" gid="23" width="48" height="48"/>
</template>

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<template>
<tileset firstgid="1" source="../Monsters.tsx"/>
<object name="Giant Crab" type="Monster" gid="30" width="86.4" height="86.4"/>
</template>

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<template>
<tileset firstgid="1" source="../Monsters.tsx"/>
<object name="Pirate Buccaneer" type="Monster" gid="27" width="48" height="48"/>
</template>

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<template>
<tileset firstgid="1" source="../Monsters.tsx"/>
<object name="Pirate Captain" type="Monster" gid="25" width="57.6" height="57.6"/>
</template>

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<template>
<tileset firstgid="1" source="../Monsters.tsx"/>
<object name="Pirate Marauder" type="Monster" gid="28" width="48" height="48"/>
</template>

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<template>
<tileset firstgid="1" source="../Monsters.tsx"/>
<object name="Pirate" type="Monster" gid="24" width="48" height="48"/>
</template>

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<template>
<tileset firstgid="1" source="../Monsters.tsx"/>
<object name="Sandworm" type="Monster" gid="29" width="43.2" height="43.2"/>
</template>

@ -22,8 +22,16 @@
<object id="1" x="0" y="0" width="24" height="24"/>
</objectgroup>
</tile>
<tile id="479" type="Reflective"/>
<tile id="480" type="Reflective"/>
<tile id="479" type="Reflective">
<objectgroup draworder="index" id="2">
<object id="1" x="0" y="0" width="24" height="24"/>
</objectgroup>
</tile>
<tile id="480" type="Reflective">
<objectgroup draworder="index" id="2">
<object id="1" x="0" y="0" width="24" height="24"/>
</objectgroup>
</tile>
<tile id="482" type="Reflective"/>
<tile id="483" type="Reflective"/>
<tile id="485" type="Reflective">
@ -41,36 +49,116 @@
<object id="1" x="0" y="0" width="24" height="24"/>
</objectgroup>
</tile>
<tile id="488" type="Reflective"/>
<tile id="489" type="Reflective"/>
<tile id="488" type="Reflective">
<objectgroup draworder="index" id="3">
<object id="2" x="0" y="0" width="24" height="24"/>
</objectgroup>
</tile>
<tile id="489" type="Reflective">
<objectgroup draworder="index" id="3">
<object id="2" x="0" y="0" width="24" height="24"/>
</objectgroup>
</tile>
<tile id="491" type="Reflective"/>
<tile id="492" type="Reflective"/>
<tile id="528" type="Reflective"/>
<tile id="528" type="Reflective">
<objectgroup draworder="index" id="3">
<object id="2" x="0" y="0" width="24" height="24"/>
</objectgroup>
</tile>
<tile id="529" type="Reflective"/>
<tile id="530" type="Reflective"/>
<tile id="531" type="Reflective"/>
<tile id="532" type="Reflective"/>
<tile id="530" type="Reflective">
<objectgroup draworder="index" id="2">
<object id="1" x="0" y="0" width="24" height="24"/>
</objectgroup>
</tile>
<tile id="531" type="Reflective">
<objectgroup draworder="index" id="5">
<object id="4" x="0" y="0" width="24" height="24"/>
</objectgroup>
</tile>
<tile id="532" type="Reflective">
<objectgroup draworder="index" id="2">
<object id="1" x="0" y="0" width="24" height="24"/>
</objectgroup>
</tile>
<tile id="534" type="Reflective"/>
<tile id="535" type="Reflective"/>
<tile id="537" type="Reflective"/>
<tile id="537" type="Reflective">
<objectgroup draworder="index" id="2">
<object id="1" x="0" y="0" width="24" height="24"/>
</objectgroup>
</tile>
<tile id="538" type="Reflective"/>
<tile id="539" type="Reflective"/>
<tile id="540" type="Reflective"/>
<tile id="541" type="Reflective"/>
<tile id="539" type="Reflective">
<objectgroup draworder="index" id="2">
<object id="1" x="0" y="0" width="24" height="24"/>
</objectgroup>
</tile>
<tile id="540" type="Reflective">
<objectgroup draworder="index" id="2">
<object id="1" x="0" y="0" width="24" height="24"/>
</objectgroup>
</tile>
<tile id="541" type="Reflective">
<objectgroup draworder="index" id="2">
<object id="1" x="0" y="0" width="24" height="24"/>
</objectgroup>
</tile>
<tile id="543" type="Reflective"/>
<tile id="544" type="Reflective"/>
<tile id="580" type="Reflective"/>
<tile id="581" type="Reflective"/>
<tile id="582" type="Reflective"/>
<tile id="583" type="Reflective"/>
<tile id="584" type="Reflective"/>
<tile id="580" type="Reflective">
<objectgroup draworder="index" id="2">
<object id="1" x="12" y="0" width="12" height="6"/>
</objectgroup>
</tile>
<tile id="581" type="Reflective">
<objectgroup draworder="index" id="2">
<object id="1" x="0" y="0" width="24" height="6"/>
</objectgroup>
</tile>
<tile id="582" type="Reflective">
<objectgroup draworder="index" id="2">
<object id="1" x="0" y="0" width="12" height="6"/>
</objectgroup>
</tile>
<tile id="583" type="Reflective">
<objectgroup draworder="index" id="2">
<object id="1" x="0" y="0" width="24" height="24"/>
</objectgroup>
</tile>
<tile id="584" type="Reflective">
<objectgroup draworder="index" id="3">
<object id="2" x="0" y="0" width="24" height="24"/>
</objectgroup>
</tile>
<tile id="586" type="Reflective"/>
<tile id="587" type="Reflective"/>
<tile id="589" type="Reflective"/>
<tile id="590" type="Reflective"/>
<tile id="591" type="Reflective"/>
<tile id="592" type="Reflective"/>
<tile id="593" type="Reflective"/>
<tile id="589" type="Reflective">
<objectgroup draworder="index" id="2">
<object id="1" x="10" y="0" width="14" height="6"/>
</objectgroup>
</tile>
<tile id="590" type="Reflective">
<objectgroup draworder="index" id="2">
<object id="1" x="0" y="0" width="24" height="6"/>
</objectgroup>
</tile>
<tile id="591" type="Reflective">
<objectgroup draworder="index" id="2">
<object id="1" x="0" y="0" width="14" height="6"/>
</objectgroup>
</tile>
<tile id="592" type="Reflective">
<objectgroup draworder="index" id="2">
<object id="1" x="0" y="0" width="24" height="24"/>
</objectgroup>
</tile>
<tile id="593" type="Reflective">
<objectgroup draworder="index" id="3">
<object id="2" x="0" y="0" width="24" height="24"/>
</objectgroup>
</tile>
<tile id="595" type="Reflective"/>
<tile id="596" type="Reflective"/>
<tile id="781">

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Loading…
Cancel
Save