├── Demo Project ├── stages │ ├── parallax │ │ ├── tiles_brushes.xml │ │ ├── tiles.png │ │ ├── mm1endingtiles.gif │ │ ├── corn.scn │ │ ├── sun.scn │ │ ├── map.xml │ │ └── mountains.scn │ ├── test │ │ ├── tiles_brushes.xml │ │ ├── floor.scn │ │ ├── tiles.png │ │ ├── overlay.scn │ │ ├── 2.scn │ │ ├── 4.scn │ │ └── 5.scn │ ├── Help │ │ └── map.xml │ ├── demo │ │ ├── tiles.png │ │ ├── tiles_brushes.xml │ │ ├── Start.scn │ │ ├── Continue.scn │ │ └── Third.scn │ ├── elec │ │ ├── tiles.png │ │ ├── tiles_brushes.xml │ │ ├── 1.scn │ │ ├── 2.scn │ │ ├── 3.scn │ │ ├── 6.scn │ │ ├── 4.scn │ │ ├── 5.scn │ │ ├── 7.scn │ │ ├── 10.scn │ │ ├── 11.scn │ │ ├── 13.scn │ │ ├── 17.scn │ │ ├── 22.scn │ │ ├── 12.scn │ │ ├── 14.scn │ │ ├── 15.scn │ │ ├── 18.scn │ │ ├── 9.scn │ │ └── 19.scn │ ├── metal │ │ ├── tiles.png │ │ ├── tiles_brushes.xml │ │ └── map.xml │ ├── crystal │ │ ├── tiles.png │ │ ├── tiles_brushes.xml │ │ ├── Tunnel.scn │ │ ├── Start.scn │ │ ├── ScreenTwo.scn │ │ ├── 4.scn │ │ ├── Boss.scn │ │ ├── Easy.scn │ │ └── 6.scn │ ├── TilesetTest │ │ ├── tiles.png │ │ └── 2.scn │ ├── NewStage │ │ └── tiles_brushes.xml │ └── Spark Man │ │ ├── map.xml │ │ └── 1.scn ├── tilesets │ ├── Help │ │ ├── tiles_brushes.xml │ │ ├── cossack3.png │ │ └── tiles.xml │ ├── spark.png │ ├── cossack3.png │ ├── TilesetTest │ │ └── tiles_brushes.xml │ └── Spark Man │ │ └── tiles_brushes.xml ├── music │ └── mm5.nsf ├── images │ ├── items.png │ ├── ready.png │ ├── megaman.png │ ├── blocks │ │ ├── door.png │ │ ├── break.png │ │ ├── hdoor.png │ │ ├── spike.png │ │ ├── wheel.png │ │ ├── elec_yoku.png │ │ ├── spikeflip.png │ │ ├── crystaldoor.png │ │ ├── disappearing.png │ │ └── lightswitch.png │ ├── fonts │ │ ├── pause.png │ │ ├── mm9_font.png │ │ └── fonts.xml │ ├── pause │ │ ├── e_off.png │ │ ├── e_on.png │ │ ├── pause.png │ │ ├── coil_off.png │ │ ├── coil_on.png │ │ ├── gyro_off.png │ │ ├── gyro_on.png │ │ ├── icon_off.png │ │ ├── icon_on.png │ │ ├── jet_off.png │ │ ├── jet_on.png │ │ ├── crystal_on.png │ │ ├── napalm_off.png │ │ ├── napalm_on.png │ │ └── crystal_off.png │ ├── teleporters.png │ ├── enemies │ │ ├── metool.png │ │ ├── collapser.png │ │ ├── crystalman.png │ │ ├── elec_bolt.png │ │ ├── shieldguy.png │ │ ├── wallspike.png │ │ ├── groundcannon.png │ │ ├── mm2enemysheet.gif │ │ ├── mm2enemysheet.png │ │ ├── propfollower.png │ │ ├── shieldshooter.png │ │ ├── annoyingseeker.png │ │ ├── Mega Man 4 │ │ │ ├── Garyoby.png │ │ │ └── Up'n'Down.png │ │ └── Mega Man 3 │ │ │ └── Peterchy.png │ ├── palettes │ │ ├── tiles.png │ │ └── megaman.png │ ├── weapons │ │ ├── basic.png │ │ ├── napalm.png │ │ ├── portal.png │ │ ├── rush.png │ │ ├── crystal.png │ │ └── weapons.png │ ├── cutscenes │ │ ├── cursor.png │ │ ├── bluebar.png │ │ ├── borders.png │ │ ├── boss │ │ │ ├── big.png │ │ │ ├── portal.png │ │ │ └── small.png │ │ ├── getweapon.png │ │ ├── main_menu.png │ │ ├── title │ │ │ ├── slide.png │ │ │ ├── title.png │ │ │ ├── capcom.png │ │ │ └── protoman.png │ │ ├── megaman_spin.png │ │ └── stageselect │ │ │ ├── elec.png │ │ │ ├── eye.png │ │ │ ├── blade.png │ │ │ ├── centaur.png │ │ │ ├── crystal.png │ │ │ ├── drill.png │ │ │ ├── magnet.png │ │ │ ├── megaman.png │ │ │ ├── metal.png │ │ │ ├── tornado.png │ │ │ ├── stageselect_back.png │ │ │ └── stageselect_frame.png │ ├── items │ │ ├── bolt_large.png │ │ ├── bolt_small.png │ │ ├── coloritems.png │ │ ├── energytank.png │ │ └── coloritems_gyro.png │ ├── meters │ │ ├── horizback.png │ │ ├── gyrohealth.png │ │ ├── healthtick.png │ │ ├── horizmeter.png │ │ ├── napalmhealth.png │ │ ├── rushhealth.png │ │ ├── crystalhealth.png │ │ ├── healthmeter_back.png │ │ ├── horizback_selected.png │ │ └── horizmeter_selected.png │ ├── particles │ │ ├── bubble.png │ │ ├── spark.png │ │ ├── splash.png │ │ ├── enemy_death.png │ │ ├── dust_-_spark.png │ │ ├── megaman_death.png │ │ └── enemy_death_large.png │ └── palettes.xml ├── mm5miscsheet.gif └── sounds │ └── health.wav ├── .nuget ├── NuGet.exe └── NuGet.Config ├── WPFEditor ├── wily.ico ├── lib │ ├── nsf.dll │ ├── fmodex.dll │ ├── MegaManR.BGM.dll │ └── MegaManR.Audio.dll ├── Resources │ ├── Redo.png │ ├── Undo.png │ ├── auto.png │ ├── dot.cur │ ├── dot.png │ ├── edit.png │ ├── grab.cur │ ├── hand.cur │ ├── hand.png │ ├── ice.gif │ ├── play.png │ ├── roll.png │ ├── sand.gif │ ├── save.png │ ├── wily.ico │ ├── wily.png │ ├── CopyHS.png │ ├── CutHS.png │ ├── PlayHS.png │ ├── Remove.png │ ├── ZoomHS.png │ ├── brush.png │ ├── check.png │ ├── cross.png │ ├── delete.png │ ├── export.png │ ├── gears.png │ ├── joins.png │ ├── metool.png │ ├── openHS.png │ ├── paper.png │ ├── pause.png │ ├── pencil.png │ ├── point.png │ ├── resist.gif │ ├── saveHS.png │ ├── screen.png │ ├── spawn.png │ ├── stage.png │ ├── tiles.png │ ├── vsplit.cur │ ├── vsplit.png │ ├── wrench.png │ ├── zoomin.png │ ├── NewEntity.png │ ├── PasteHS.png │ ├── PauseHS.png │ ├── Settings.png │ ├── add_brush.png │ ├── brush_off.png │ ├── brush_on.png │ ├── bucket_on.png │ ├── cleave_on.png │ ├── conveyor.gif │ ├── cursor_on.png │ ├── gears32.png │ ├── metool_x.png │ ├── newscreen.png │ ├── newstage.png │ ├── nosprite.png │ ├── off_base.png │ ├── project.png │ ├── protoman.png │ ├── stage_add.png │ ├── start_off.png │ ├── start_on.png │ ├── wilybrows.gif │ ├── wrench32.png │ ├── zoomout.png │ ├── EntityList.png │ ├── Mega Man 10.ttf │ ├── PasteBrush.png │ ├── blank_tile.png │ ├── bucket_off.png │ ├── cleave_off.png │ ├── continue_on.png │ ├── cursor_off.png │ ├── dropper_off.png │ ├── dropper_on.png │ ├── roomborder.png │ ├── stage_link.png │ ├── start_full.png │ ├── start_icon.png │ ├── Folder_16x16.png │ ├── NewDocumentHS.png │ ├── continue_full.png │ ├── continue_icon.png │ ├── continue_off.png │ ├── rectangle_off.png │ ├── rectangle_on.png │ ├── selection_off.png │ ├── selection_on.png │ ├── tile_unknown.png │ ├── FolderOpen_16x16_72.png │ ├── Includes │ │ ├── sound │ │ │ ├── mm5.nsf │ │ │ └── health.wav │ │ └── images │ │ │ ├── items.png │ │ │ ├── palettes │ │ │ ├── palettes.xml │ │ │ └── megaman.png │ │ │ ├── megaman.png │ │ │ ├── fonts │ │ │ ├── pause.png │ │ │ ├── mm9_font.png │ │ │ └── fonts.xml │ │ │ ├── weapons │ │ │ ├── basic.png │ │ │ └── rush.png │ │ │ ├── particles │ │ │ ├── spark.png │ │ │ ├── bubble.png │ │ │ ├── splash.png │ │ │ ├── dust_-_spark.png │ │ │ ├── enemy_death.png │ │ │ ├── megaman_death.png │ │ │ └── enemy_death_large.png │ │ │ └── meters │ │ │ ├── healthtick.png │ │ │ ├── horizback.png │ │ │ ├── horizmeter.png │ │ │ ├── rushhealth.png │ │ │ ├── healthmeter_back.png │ │ │ ├── horizback_selected.png │ │ │ └── horizmeter_selected.png │ └── OpenSansCondensed-Bold.ttf ├── BLL │ ├── Const.cs │ ├── Tools │ │ └── IEntityToolBehavior.cs │ ├── UnknownTile.cs │ ├── IProjectFileStructure.cs │ ├── IEntityImage.cs │ └── Algorithms │ │ └── IScreenData.cs ├── Services │ └── IDialogService.cs ├── App.config ├── Mediator │ ├── TestLocationClickedEventArgs.cs │ ├── NewEntityEventArgs.cs │ ├── ZoomChangedEventArgs.cs │ ├── TileSelectedEventArgs.cs │ ├── StageAddedEventArgs.cs │ ├── EntityAddedEventArgs.cs │ ├── ProjectChangedEventArgs.cs │ ├── TileBrushSelectedEventArgs.cs │ ├── LayoutScreenDroppedEventArgs.cs │ ├── LayerVisibilityChangedEventArgs.cs │ ├── TestLocationSelectedEventArgs.cs │ ├── SelectionChangedEventArgs.cs │ ├── EntitySelectedEventArgs.cs │ ├── StageChangedEventArgs.cs │ └── EntityRenamedEventArgs.cs ├── AppData │ └── RecentProject.cs ├── Properties │ └── Settings.settings ├── Tools │ ├── IToolCursor.cs │ └── IToolProvider.cs ├── WPFEditor.csproj.user ├── Controls │ ├── Canvases │ │ └── TileScreenCanvas.cs │ ├── EntityToolbar.xaml.cs │ ├── LayoutToolbar.xaml.cs │ ├── TilesToolbar.xaml.cs │ ├── Dialogs │ │ └── TilesetImporterDialog.xaml.cs │ ├── StageTileControl.cs │ ├── StageEntitiesControl.cs │ ├── Parts │ │ └── TileImage.cs │ ├── TilesetEditor.xaml.cs │ ├── StagePropertiesControl.xaml.cs │ ├── ViewModels │ │ └── ViewModelBase.cs │ └── EntityEditor.xaml.cs └── UserSettings.cs ├── Mega Man ├── lib │ ├── nsf.dll │ ├── FMOD.dll │ ├── fmodex.dll │ ├── ntsc.dll │ ├── MegaManR.BGM.dll │ └── MegaManR.Audio.dll ├── Entities │ ├── IEntitySource.cs │ ├── ITilePropertiesSource.cs │ ├── Effects │ │ ├── IEffectLoader.cs │ │ ├── CallEffectLoader.cs │ │ ├── DieEffectLoader.cs │ │ ├── PauseEffectLoader.cs │ │ ├── RemoveEffectLoader.cs │ │ ├── UnpauseEffectLoader .cs │ │ ├── LivesEffectLoader.cs │ │ ├── NextEffectLoader.cs │ │ ├── DefeatBossEffectLoader.cs │ │ ├── GravityFlipEffectLoader.cs │ │ ├── UnlockWeaponEffectLoader.cs │ │ ├── AddInventoryEffectLoader.cs │ │ ├── RemoveInventoryEffectLoader.cs │ │ ├── HealthEffectLoader.cs │ │ └── SetVarEffectLoader.cs │ ├── IEntityRespawnTracker.cs │ └── IEntityPool.cs ├── StateMachine │ ├── IStateMachineCommand.cs │ └── IStateMachine.cs ├── GameXmlException.cs ├── Stage │ ├── IMapSquare.cs │ ├── IScreenLayer.cs │ └── ScreenDrawingCoords.cs ├── Properties │ └── Settings.settings ├── Forms │ ├── MenuControllers │ │ ├── IMenuController.cs │ │ └── ExclusiveController.cs │ └── Settings │ │ └── UserSettingsEnums.cs ├── packages.config ├── Log.cs ├── design ├── Components │ └── HitBox.cs └── Injector.cs ├── .gitignore ├── IO.Tests ├── Resources │ ├── Sprite_Defaults.xml │ ├── Xml_RequireAttribute.xml │ └── Sprite_NormalInput.xml └── TestHelpers.cs ├── docs ├── assets │ ├── megaman_2.ttf │ └── images │ │ ├── grid.png │ │ ├── logo.png │ │ ├── screens │ │ ├── 1.png │ │ ├── 2.png │ │ ├── 3.png │ │ ├── 4.png │ │ ├── 5.png │ │ ├── 6.png │ │ └── editor.png │ │ └── icon_download.png └── docs │ └── scripting │ └── menu.js ├── CommonTests ├── Resources │ └── Xml_RequireAttribute.xml └── TestHelpers.cs ├── Mega Man Common ├── Entities │ ├── IComponentInfo.cs │ ├── InputComponentInfo.cs │ ├── Effects │ │ ├── IEffectPartInfo.cs │ │ ├── DieEffectPartInfo.cs │ │ ├── PauseEffectPartInfo.cs │ │ ├── RemoveEffectPartInfo.cs │ │ ├── UnpauseEffectPartInfo.cs │ │ ├── LivesEffectPartInfo.cs │ │ ├── StateEffectPartInfo.cs │ │ ├── InputEffectPartInfo.cs │ │ ├── HealthEffectPartInfo.cs │ │ ├── CallEffectPartInfo.cs │ │ ├── DefeatBossEffectPartInfo.cs │ │ ├── GravityFlipEffectPartInfo.cs │ │ ├── NextEffectPartInfo.cs │ │ ├── TriggerEffectPartInfo.cs │ │ ├── UnlockWeaponEffectPartInfo.cs │ │ ├── SetVarEffectPartInfo.cs │ │ ├── SoundEffectPartInfo.cs │ │ ├── FuncEffectPartInfo.cs │ │ ├── AddInventoryEffectPartInfo.cs │ │ ├── DelayedEffectPartInfo.cs │ │ ├── PaletteEffectPartInfo.cs │ │ ├── RemoveInventoryEffectPartInfo.cs │ │ ├── LadderEffectPartInfo.cs │ │ ├── SpawnEffectPartInfo.cs │ │ ├── VarsEffectPartInfo.cs │ │ ├── TimerEffectPartInfo.cs │ │ └── EffectInfo.cs │ ├── PositionComponentInfo.cs │ ├── LadderComponentInfo.cs │ ├── EntityEditorData.cs │ ├── HealthComponentInfo.cs │ ├── MovementComponentInfo.cs │ ├── CollisionComponentInfo.cs │ ├── SpriteComponentInfo.cs │ └── WeaponComponentInfo.cs ├── Enums │ ├── Axis.cs │ └── Direction.cs ├── IncludedObjects │ ├── IIncludedObject.cs │ ├── IncludedObject.cs │ ├── PaletteInfo.cs │ └── MenuInfo.cs └── Rendering │ └── IResourceImage.cs ├── IO ├── IGameLoader.cs ├── IStageWriter.cs ├── IProjectWriter.cs ├── ITilesetWriter.cs ├── IRawReader.cs ├── IGameFileReader.cs ├── IStageReader.cs ├── DataSources │ ├── XmlFileSource.cs │ └── IDataSource.cs ├── IEntityWriter.cs ├── IProjectReader.cs ├── ISoundReader.cs ├── ITilesetReader.cs ├── packages.config ├── IIncludedObjectGroupXmlWriter.cs ├── Xml │ ├── Effects │ │ ├── IEffectPartXmlReader.cs │ │ ├── IEffectPartXmlWriter.cs │ │ ├── DieEffectPartXmlReader.cs │ │ ├── PauseEffectPartXmlReader.cs │ │ ├── RemoveEffectPartXmlReader.cs │ │ ├── UnpauseEffectPartXmlReader.cs │ │ ├── DieEffectPartXmlWriter.cs │ │ ├── PauseEffectPartXmlWriter.cs │ │ ├── RemoveEffectPartXmlWriter.cs │ │ ├── CallEffectPartXmlReader.cs │ │ ├── StateEffectPartXmlReader.cs │ │ ├── UnpauseEffectPartXmlWriter.cs │ │ ├── LivesEffectPartXmlReader.cs │ │ ├── StateEffectPartXmlWriter.cs │ │ ├── HealthEffectPartXmlReader.cs │ │ ├── GravityFlipEffectPartXmlReader.cs │ │ ├── DefeatBossEffectPartXmlReader.cs │ │ ├── InputEffectPartXmlReader.cs │ │ ├── CallEffectPartXmlWriter.cs │ │ ├── UnlockWeaponEffectPartXmlReader.cs │ │ ├── GravityFlipEffectPartXmlWriter.cs │ │ ├── LadderEffectPartXmlReader.cs │ │ ├── LadderEffectPartXmlWriter.cs │ │ ├── FuncEffectPartXmlReader.cs │ │ ├── SetVarEffectPartXmlReader.cs │ │ ├── SoundEffectPartXmlReader.cs │ │ ├── PaletteEffectPartXmlReader.cs │ │ ├── FuncEffectPartXmlWriter.cs │ │ └── AddInventoryEffectPartXmlReader.cs │ ├── Handlers │ │ ├── Commands │ │ │ ├── ICommandXmlWriter.cs │ │ │ ├── ICommandXmlReader.cs │ │ │ ├── WaitCommandXmlWriter.cs │ │ │ ├── StopCommandXmlReader.cs │ │ │ ├── WaitCommandXmlReader.cs │ │ │ ├── StopCommandXmlWriter.cs │ │ │ ├── CallCommandXmlReader.cs │ │ │ ├── RemoveCommandXmlReader.cs │ │ │ └── CallCommandXmlWriter.cs │ │ └── IHandlerObjectXmlWriter.cs │ ├── Entities │ │ ├── IComponentXmlWriter.cs │ │ ├── IComponentXmlReader.cs │ │ ├── InputComponentXmlWriter.cs │ │ ├── InputComponentXmlReader.cs │ │ └── PositionComponentXmlReader.cs │ ├── IIncludeXmlReader.cs │ ├── SceneBindingXmlReader.cs │ └── SceneBindingXmlWriter.cs ├── IReaderProvider.cs ├── IWriterProvider.cs ├── RawReader.cs └── Injector.cs ├── EngineTests └── packages.config ├── WpfEditorTests └── ProjectFileStructureTests.cs ├── packages └── repositories.config └── create-release.ps1 /Demo Project/stages/parallax/tiles_brushes.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Demo Project/tilesets/Help/tiles_brushes.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Demo Project/stages/test/tiles_brushes.xml: -------------------------------------------------------------------------------- 1 | 2 2 1 1 1 1 2 | -------------------------------------------------------------------------------- /.nuget/NuGet.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/.nuget/NuGet.exe -------------------------------------------------------------------------------- /WPFEditor/wily.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/wily.ico -------------------------------------------------------------------------------- /Mega Man/lib/nsf.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Mega Man/lib/nsf.dll -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.suo 2 | *.user 3 | bin/ 4 | obj/ 5 | Thumbs.db 6 | .* 7 | packages/ 8 | Releases/ 9 | -------------------------------------------------------------------------------- /Demo Project/stages/test/floor.scn: -------------------------------------------------------------------------------- 1 | 8 3 2 | 8 8 8 8 8 8 8 8 3 | 8 8 8 8 8 8 8 8 4 | 8 8 8 8 8 8 8 8 5 | -------------------------------------------------------------------------------- /Mega Man/lib/FMOD.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Mega Man/lib/FMOD.dll -------------------------------------------------------------------------------- /Mega Man/lib/fmodex.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Mega Man/lib/fmodex.dll -------------------------------------------------------------------------------- /Mega Man/lib/ntsc.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Mega Man/lib/ntsc.dll -------------------------------------------------------------------------------- /WPFEditor/lib/nsf.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/lib/nsf.dll -------------------------------------------------------------------------------- /IO.Tests/Resources/Sprite_Defaults.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /WPFEditor/lib/fmodex.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/lib/fmodex.dll -------------------------------------------------------------------------------- /docs/assets/megaman_2.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/docs/assets/megaman_2.ttf -------------------------------------------------------------------------------- /Demo Project/music/mm5.nsf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/music/mm5.nsf -------------------------------------------------------------------------------- /WPFEditor/Resources/Redo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/Redo.png -------------------------------------------------------------------------------- /WPFEditor/Resources/Undo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/Undo.png -------------------------------------------------------------------------------- /WPFEditor/Resources/auto.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/auto.png -------------------------------------------------------------------------------- /WPFEditor/Resources/dot.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/dot.cur -------------------------------------------------------------------------------- /WPFEditor/Resources/dot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/dot.png -------------------------------------------------------------------------------- /WPFEditor/Resources/edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/edit.png -------------------------------------------------------------------------------- /WPFEditor/Resources/grab.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/grab.cur -------------------------------------------------------------------------------- /WPFEditor/Resources/hand.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/hand.cur -------------------------------------------------------------------------------- /WPFEditor/Resources/hand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/hand.png -------------------------------------------------------------------------------- /WPFEditor/Resources/ice.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/ice.gif -------------------------------------------------------------------------------- /WPFEditor/Resources/play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/play.png -------------------------------------------------------------------------------- /WPFEditor/Resources/roll.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/roll.png -------------------------------------------------------------------------------- /WPFEditor/Resources/sand.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/sand.gif -------------------------------------------------------------------------------- /WPFEditor/Resources/save.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/save.png -------------------------------------------------------------------------------- /WPFEditor/Resources/wily.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/wily.ico -------------------------------------------------------------------------------- /WPFEditor/Resources/wily.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/wily.png -------------------------------------------------------------------------------- /docs/assets/images/grid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/docs/assets/images/grid.png -------------------------------------------------------------------------------- /docs/assets/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/docs/assets/images/logo.png -------------------------------------------------------------------------------- /Demo Project/images/items.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/items.png -------------------------------------------------------------------------------- /Demo Project/images/ready.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/ready.png -------------------------------------------------------------------------------- /Demo Project/mm5miscsheet.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/mm5miscsheet.gif -------------------------------------------------------------------------------- /Demo Project/sounds/health.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/sounds/health.wav -------------------------------------------------------------------------------- /IO.Tests/Resources/Xml_RequireAttribute.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Mega Man/lib/MegaManR.BGM.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Mega Man/lib/MegaManR.BGM.dll -------------------------------------------------------------------------------- /WPFEditor/Resources/CopyHS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/CopyHS.png -------------------------------------------------------------------------------- /WPFEditor/Resources/CutHS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/CutHS.png -------------------------------------------------------------------------------- /WPFEditor/Resources/PlayHS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/PlayHS.png -------------------------------------------------------------------------------- /WPFEditor/Resources/Remove.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/Remove.png -------------------------------------------------------------------------------- /WPFEditor/Resources/ZoomHS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/ZoomHS.png -------------------------------------------------------------------------------- /WPFEditor/Resources/brush.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/brush.png -------------------------------------------------------------------------------- /WPFEditor/Resources/check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/check.png -------------------------------------------------------------------------------- /WPFEditor/Resources/cross.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/cross.png -------------------------------------------------------------------------------- /WPFEditor/Resources/delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/delete.png -------------------------------------------------------------------------------- /WPFEditor/Resources/export.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/export.png -------------------------------------------------------------------------------- /WPFEditor/Resources/gears.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/gears.png -------------------------------------------------------------------------------- /WPFEditor/Resources/joins.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/joins.png -------------------------------------------------------------------------------- /WPFEditor/Resources/metool.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/metool.png -------------------------------------------------------------------------------- /WPFEditor/Resources/openHS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/openHS.png -------------------------------------------------------------------------------- /WPFEditor/Resources/paper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/paper.png -------------------------------------------------------------------------------- /WPFEditor/Resources/pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/pause.png -------------------------------------------------------------------------------- /WPFEditor/Resources/pencil.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/pencil.png -------------------------------------------------------------------------------- /WPFEditor/Resources/point.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/point.png -------------------------------------------------------------------------------- /WPFEditor/Resources/resist.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/resist.gif -------------------------------------------------------------------------------- /WPFEditor/Resources/saveHS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/saveHS.png -------------------------------------------------------------------------------- /WPFEditor/Resources/screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/screen.png -------------------------------------------------------------------------------- /WPFEditor/Resources/spawn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/spawn.png -------------------------------------------------------------------------------- /WPFEditor/Resources/stage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/stage.png -------------------------------------------------------------------------------- /WPFEditor/Resources/tiles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/tiles.png -------------------------------------------------------------------------------- /WPFEditor/Resources/vsplit.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/vsplit.cur -------------------------------------------------------------------------------- /WPFEditor/Resources/vsplit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/vsplit.png -------------------------------------------------------------------------------- /WPFEditor/Resources/wrench.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/wrench.png -------------------------------------------------------------------------------- /WPFEditor/Resources/zoomin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/zoomin.png -------------------------------------------------------------------------------- /WPFEditor/lib/MegaManR.BGM.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/lib/MegaManR.BGM.dll -------------------------------------------------------------------------------- /CommonTests/Resources/Xml_RequireAttribute.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Demo Project/images/megaman.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/megaman.png -------------------------------------------------------------------------------- /Demo Project/tilesets/spark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/tilesets/spark.png -------------------------------------------------------------------------------- /Mega Man/lib/MegaManR.Audio.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Mega Man/lib/MegaManR.Audio.dll -------------------------------------------------------------------------------- /WPFEditor/Resources/NewEntity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/NewEntity.png -------------------------------------------------------------------------------- /WPFEditor/Resources/PasteHS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/PasteHS.png -------------------------------------------------------------------------------- /WPFEditor/Resources/PauseHS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/PauseHS.png -------------------------------------------------------------------------------- /WPFEditor/Resources/Settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/Settings.png -------------------------------------------------------------------------------- /WPFEditor/Resources/add_brush.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/add_brush.png -------------------------------------------------------------------------------- /WPFEditor/Resources/brush_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/brush_off.png -------------------------------------------------------------------------------- /WPFEditor/Resources/brush_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/brush_on.png -------------------------------------------------------------------------------- /WPFEditor/Resources/bucket_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/bucket_on.png -------------------------------------------------------------------------------- /WPFEditor/Resources/cleave_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/cleave_on.png -------------------------------------------------------------------------------- /WPFEditor/Resources/conveyor.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/conveyor.gif -------------------------------------------------------------------------------- /WPFEditor/Resources/cursor_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/cursor_on.png -------------------------------------------------------------------------------- /WPFEditor/Resources/gears32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/gears32.png -------------------------------------------------------------------------------- /WPFEditor/Resources/metool_x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/metool_x.png -------------------------------------------------------------------------------- /WPFEditor/Resources/newscreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/newscreen.png -------------------------------------------------------------------------------- /WPFEditor/Resources/newstage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/newstage.png -------------------------------------------------------------------------------- /WPFEditor/Resources/nosprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/nosprite.png -------------------------------------------------------------------------------- /WPFEditor/Resources/off_base.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/off_base.png -------------------------------------------------------------------------------- /WPFEditor/Resources/project.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/project.png -------------------------------------------------------------------------------- /WPFEditor/Resources/protoman.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/protoman.png -------------------------------------------------------------------------------- /WPFEditor/Resources/stage_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/stage_add.png -------------------------------------------------------------------------------- /WPFEditor/Resources/start_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/start_off.png -------------------------------------------------------------------------------- /WPFEditor/Resources/start_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/start_on.png -------------------------------------------------------------------------------- /WPFEditor/Resources/wilybrows.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/wilybrows.gif -------------------------------------------------------------------------------- /WPFEditor/Resources/wrench32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/wrench32.png -------------------------------------------------------------------------------- /WPFEditor/Resources/zoomout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/zoomout.png -------------------------------------------------------------------------------- /WPFEditor/lib/MegaManR.Audio.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/lib/MegaManR.Audio.dll -------------------------------------------------------------------------------- /docs/assets/images/screens/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/docs/assets/images/screens/1.png -------------------------------------------------------------------------------- /docs/assets/images/screens/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/docs/assets/images/screens/2.png -------------------------------------------------------------------------------- /docs/assets/images/screens/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/docs/assets/images/screens/3.png -------------------------------------------------------------------------------- /docs/assets/images/screens/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/docs/assets/images/screens/4.png -------------------------------------------------------------------------------- /docs/assets/images/screens/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/docs/assets/images/screens/5.png -------------------------------------------------------------------------------- /docs/assets/images/screens/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/docs/assets/images/screens/6.png -------------------------------------------------------------------------------- /Demo Project/images/blocks/door.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/blocks/door.png -------------------------------------------------------------------------------- /Demo Project/images/fonts/pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/fonts/pause.png -------------------------------------------------------------------------------- /Demo Project/images/pause/e_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/pause/e_off.png -------------------------------------------------------------------------------- /Demo Project/images/pause/e_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/pause/e_on.png -------------------------------------------------------------------------------- /Demo Project/images/pause/pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/pause/pause.png -------------------------------------------------------------------------------- /Demo Project/images/teleporters.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/teleporters.png -------------------------------------------------------------------------------- /Demo Project/stages/Help/map.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /Demo Project/stages/demo/tiles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/stages/demo/tiles.png -------------------------------------------------------------------------------- /Demo Project/stages/elec/tiles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/stages/elec/tiles.png -------------------------------------------------------------------------------- /Demo Project/stages/metal/tiles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/stages/metal/tiles.png -------------------------------------------------------------------------------- /Demo Project/stages/test/tiles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/stages/test/tiles.png -------------------------------------------------------------------------------- /Demo Project/tilesets/cossack3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/tilesets/cossack3.png -------------------------------------------------------------------------------- /WPFEditor/Resources/EntityList.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/EntityList.png -------------------------------------------------------------------------------- /WPFEditor/Resources/Mega Man 10.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/Mega Man 10.ttf -------------------------------------------------------------------------------- /WPFEditor/Resources/PasteBrush.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/PasteBrush.png -------------------------------------------------------------------------------- /WPFEditor/Resources/blank_tile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/blank_tile.png -------------------------------------------------------------------------------- /WPFEditor/Resources/bucket_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/bucket_off.png -------------------------------------------------------------------------------- /WPFEditor/Resources/cleave_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/cleave_off.png -------------------------------------------------------------------------------- /WPFEditor/Resources/continue_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/continue_on.png -------------------------------------------------------------------------------- /WPFEditor/Resources/cursor_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/cursor_off.png -------------------------------------------------------------------------------- /WPFEditor/Resources/dropper_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/dropper_off.png -------------------------------------------------------------------------------- /WPFEditor/Resources/dropper_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/dropper_on.png -------------------------------------------------------------------------------- /WPFEditor/Resources/roomborder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/roomborder.png -------------------------------------------------------------------------------- /WPFEditor/Resources/stage_link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/stage_link.png -------------------------------------------------------------------------------- /WPFEditor/Resources/start_full.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/start_full.png -------------------------------------------------------------------------------- /WPFEditor/Resources/start_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/start_icon.png -------------------------------------------------------------------------------- /Demo Project/images/blocks/break.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/blocks/break.png -------------------------------------------------------------------------------- /Demo Project/images/blocks/hdoor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/blocks/hdoor.png -------------------------------------------------------------------------------- /Demo Project/images/blocks/spike.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/blocks/spike.png -------------------------------------------------------------------------------- /Demo Project/images/blocks/wheel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/blocks/wheel.png -------------------------------------------------------------------------------- /Demo Project/images/enemies/metool.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/enemies/metool.png -------------------------------------------------------------------------------- /Demo Project/images/fonts/mm9_font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/fonts/mm9_font.png -------------------------------------------------------------------------------- /Demo Project/images/palettes/tiles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/palettes/tiles.png -------------------------------------------------------------------------------- /Demo Project/images/pause/coil_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/pause/coil_off.png -------------------------------------------------------------------------------- /Demo Project/images/pause/coil_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/pause/coil_on.png -------------------------------------------------------------------------------- /Demo Project/images/pause/gyro_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/pause/gyro_off.png -------------------------------------------------------------------------------- /Demo Project/images/pause/gyro_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/pause/gyro_on.png -------------------------------------------------------------------------------- /Demo Project/images/pause/icon_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/pause/icon_off.png -------------------------------------------------------------------------------- /Demo Project/images/pause/icon_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/pause/icon_on.png -------------------------------------------------------------------------------- /Demo Project/images/pause/jet_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/pause/jet_off.png -------------------------------------------------------------------------------- /Demo Project/images/pause/jet_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/pause/jet_on.png -------------------------------------------------------------------------------- /Demo Project/images/weapons/basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/weapons/basic.png -------------------------------------------------------------------------------- /Demo Project/images/weapons/napalm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/weapons/napalm.png -------------------------------------------------------------------------------- /Demo Project/images/weapons/portal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/weapons/portal.png -------------------------------------------------------------------------------- /Demo Project/images/weapons/rush.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/weapons/rush.png -------------------------------------------------------------------------------- /Demo Project/stages/crystal/tiles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/stages/crystal/tiles.png -------------------------------------------------------------------------------- /Demo Project/stages/parallax/tiles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/stages/parallax/tiles.png -------------------------------------------------------------------------------- /WPFEditor/Resources/Folder_16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/Folder_16x16.png -------------------------------------------------------------------------------- /WPFEditor/Resources/NewDocumentHS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/NewDocumentHS.png -------------------------------------------------------------------------------- /WPFEditor/Resources/continue_full.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/continue_full.png -------------------------------------------------------------------------------- /WPFEditor/Resources/continue_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/continue_icon.png -------------------------------------------------------------------------------- /WPFEditor/Resources/continue_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/continue_off.png -------------------------------------------------------------------------------- /WPFEditor/Resources/rectangle_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/rectangle_off.png -------------------------------------------------------------------------------- /WPFEditor/Resources/rectangle_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/rectangle_on.png -------------------------------------------------------------------------------- /WPFEditor/Resources/selection_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/selection_off.png -------------------------------------------------------------------------------- /WPFEditor/Resources/selection_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/selection_on.png -------------------------------------------------------------------------------- /WPFEditor/Resources/tile_unknown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/tile_unknown.png -------------------------------------------------------------------------------- /docs/assets/images/icon_download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/docs/assets/images/icon_download.png -------------------------------------------------------------------------------- /docs/assets/images/screens/editor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/docs/assets/images/screens/editor.png -------------------------------------------------------------------------------- /Demo Project/images/blocks/elec_yoku.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/blocks/elec_yoku.png -------------------------------------------------------------------------------- /Demo Project/images/blocks/spikeflip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/blocks/spikeflip.png -------------------------------------------------------------------------------- /Demo Project/images/cutscenes/cursor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/cutscenes/cursor.png -------------------------------------------------------------------------------- /Demo Project/images/items/bolt_large.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/items/bolt_large.png -------------------------------------------------------------------------------- /Demo Project/images/items/bolt_small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/items/bolt_small.png -------------------------------------------------------------------------------- /Demo Project/images/items/coloritems.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/items/coloritems.png -------------------------------------------------------------------------------- /Demo Project/images/items/energytank.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/items/energytank.png -------------------------------------------------------------------------------- /Demo Project/images/meters/horizback.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/meters/horizback.png -------------------------------------------------------------------------------- /Demo Project/images/palettes/megaman.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/palettes/megaman.png -------------------------------------------------------------------------------- /Demo Project/images/particles/bubble.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/particles/bubble.png -------------------------------------------------------------------------------- /Demo Project/images/particles/spark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/particles/spark.png -------------------------------------------------------------------------------- /Demo Project/images/particles/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/particles/splash.png -------------------------------------------------------------------------------- /Demo Project/images/pause/crystal_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/pause/crystal_on.png -------------------------------------------------------------------------------- /Demo Project/images/pause/napalm_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/pause/napalm_off.png -------------------------------------------------------------------------------- /Demo Project/images/pause/napalm_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/pause/napalm_on.png -------------------------------------------------------------------------------- /Demo Project/images/weapons/crystal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/weapons/crystal.png -------------------------------------------------------------------------------- /Demo Project/images/weapons/weapons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/weapons/weapons.png -------------------------------------------------------------------------------- /Demo Project/tilesets/Help/cossack3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/tilesets/Help/cossack3.png -------------------------------------------------------------------------------- /Demo Project/images/blocks/crystaldoor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/blocks/crystaldoor.png -------------------------------------------------------------------------------- /Demo Project/images/blocks/disappearing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/blocks/disappearing.png -------------------------------------------------------------------------------- /Demo Project/images/blocks/lightswitch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/blocks/lightswitch.png -------------------------------------------------------------------------------- /Demo Project/images/cutscenes/bluebar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/cutscenes/bluebar.png -------------------------------------------------------------------------------- /Demo Project/images/cutscenes/borders.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/cutscenes/borders.png -------------------------------------------------------------------------------- /Demo Project/images/cutscenes/boss/big.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/cutscenes/boss/big.png -------------------------------------------------------------------------------- /Demo Project/images/cutscenes/getweapon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/cutscenes/getweapon.png -------------------------------------------------------------------------------- /Demo Project/images/cutscenes/main_menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/cutscenes/main_menu.png -------------------------------------------------------------------------------- /Demo Project/images/enemies/collapser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/enemies/collapser.png -------------------------------------------------------------------------------- /Demo Project/images/enemies/crystalman.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/enemies/crystalman.png -------------------------------------------------------------------------------- /Demo Project/images/enemies/elec_bolt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/enemies/elec_bolt.png -------------------------------------------------------------------------------- /Demo Project/images/enemies/shieldguy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/enemies/shieldguy.png -------------------------------------------------------------------------------- /Demo Project/images/enemies/wallspike.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/enemies/wallspike.png -------------------------------------------------------------------------------- /Demo Project/images/meters/gyrohealth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/meters/gyrohealth.png -------------------------------------------------------------------------------- /Demo Project/images/meters/healthtick.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/meters/healthtick.png -------------------------------------------------------------------------------- /Demo Project/images/meters/horizmeter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/meters/horizmeter.png -------------------------------------------------------------------------------- /Demo Project/images/meters/napalmhealth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/meters/napalmhealth.png -------------------------------------------------------------------------------- /Demo Project/images/meters/rushhealth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/meters/rushhealth.png -------------------------------------------------------------------------------- /Demo Project/images/pause/crystal_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/pause/crystal_off.png -------------------------------------------------------------------------------- /Demo Project/stages/TilesetTest/tiles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/stages/TilesetTest/tiles.png -------------------------------------------------------------------------------- /WPFEditor/Resources/FolderOpen_16x16_72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/FolderOpen_16x16_72.png -------------------------------------------------------------------------------- /WPFEditor/Resources/Includes/sound/mm5.nsf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/Includes/sound/mm5.nsf -------------------------------------------------------------------------------- /Demo Project/images/cutscenes/boss/portal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/cutscenes/boss/portal.png -------------------------------------------------------------------------------- /Demo Project/images/cutscenes/boss/small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/cutscenes/boss/small.png -------------------------------------------------------------------------------- /Demo Project/images/cutscenes/title/slide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/cutscenes/title/slide.png -------------------------------------------------------------------------------- /Demo Project/images/cutscenes/title/title.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/cutscenes/title/title.png -------------------------------------------------------------------------------- /Demo Project/images/enemies/groundcannon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/enemies/groundcannon.png -------------------------------------------------------------------------------- /Demo Project/images/enemies/mm2enemysheet.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/enemies/mm2enemysheet.gif -------------------------------------------------------------------------------- /Demo Project/images/enemies/mm2enemysheet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/enemies/mm2enemysheet.png -------------------------------------------------------------------------------- /Demo Project/images/enemies/propfollower.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/enemies/propfollower.png -------------------------------------------------------------------------------- /Demo Project/images/enemies/shieldshooter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/enemies/shieldshooter.png -------------------------------------------------------------------------------- /Demo Project/images/items/coloritems_gyro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/items/coloritems_gyro.png -------------------------------------------------------------------------------- /Demo Project/images/meters/crystalhealth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/meters/crystalhealth.png -------------------------------------------------------------------------------- /Demo Project/images/particles/enemy_death.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/particles/enemy_death.png -------------------------------------------------------------------------------- /Demo Project/stages/metal/tiles_brushes.xml: -------------------------------------------------------------------------------- 1 | 2 1 11 12 2 | 4 1 1 2 4 5 3 | 2 2 42 44 43 45 4 | 1 3 33 34 35 5 | 2 2 20 22 21 23 6 | 2 1 22 23 7 | -------------------------------------------------------------------------------- /WPFEditor/Resources/Includes/images/items.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/Includes/images/items.png -------------------------------------------------------------------------------- /WPFEditor/Resources/Includes/images/palettes/palettes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /WPFEditor/Resources/Includes/sound/health.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/Includes/sound/health.wav -------------------------------------------------------------------------------- /Demo Project/images/cutscenes/megaman_spin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/cutscenes/megaman_spin.png -------------------------------------------------------------------------------- /Demo Project/images/cutscenes/title/capcom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/cutscenes/title/capcom.png -------------------------------------------------------------------------------- /Demo Project/images/cutscenes/title/protoman.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/cutscenes/title/protoman.png -------------------------------------------------------------------------------- /Demo Project/images/enemies/annoyingseeker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/enemies/annoyingseeker.png -------------------------------------------------------------------------------- /Demo Project/images/meters/healthmeter_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/meters/healthmeter_back.png -------------------------------------------------------------------------------- /Demo Project/images/particles/dust_-_spark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/particles/dust_-_spark.png -------------------------------------------------------------------------------- /Demo Project/images/particles/megaman_death.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/particles/megaman_death.png -------------------------------------------------------------------------------- /Demo Project/stages/parallax/mm1endingtiles.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/stages/parallax/mm1endingtiles.gif -------------------------------------------------------------------------------- /Mega Man Common/Entities/IComponentInfo.cs: -------------------------------------------------------------------------------- 1 | namespace MegaMan.Common.Entities 2 | { 3 | public interface IComponentInfo 4 | { 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /WPFEditor/Resources/Includes/images/megaman.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/Includes/images/megaman.png -------------------------------------------------------------------------------- /WPFEditor/Resources/OpenSansCondensed-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/OpenSansCondensed-Bold.ttf -------------------------------------------------------------------------------- /Demo Project/images/cutscenes/stageselect/elec.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/cutscenes/stageselect/elec.png -------------------------------------------------------------------------------- /Demo Project/images/cutscenes/stageselect/eye.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/cutscenes/stageselect/eye.png -------------------------------------------------------------------------------- /Demo Project/images/enemies/Mega Man 4/Garyoby.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/enemies/Mega Man 4/Garyoby.png -------------------------------------------------------------------------------- /Demo Project/images/meters/horizback_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/meters/horizback_selected.png -------------------------------------------------------------------------------- /Demo Project/images/meters/horizmeter_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/meters/horizmeter_selected.png -------------------------------------------------------------------------------- /Demo Project/stages/elec/tiles_brushes.xml: -------------------------------------------------------------------------------- 1 | 2 2 13 21 14 22 2 | 2 1 6 7 3 | 2 2 26 33 28 35 4 | 2 2 26 33 27 34 5 | 2 2 24 31 25 32 6 | 2 2 27 34 28 35 7 | -------------------------------------------------------------------------------- /Demo Project/images/cutscenes/stageselect/blade.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/cutscenes/stageselect/blade.png -------------------------------------------------------------------------------- /Demo Project/images/cutscenes/stageselect/centaur.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/cutscenes/stageselect/centaur.png -------------------------------------------------------------------------------- /Demo Project/images/cutscenes/stageselect/crystal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/cutscenes/stageselect/crystal.png -------------------------------------------------------------------------------- /Demo Project/images/cutscenes/stageselect/drill.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/cutscenes/stageselect/drill.png -------------------------------------------------------------------------------- /Demo Project/images/cutscenes/stageselect/magnet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/cutscenes/stageselect/magnet.png -------------------------------------------------------------------------------- /Demo Project/images/cutscenes/stageselect/megaman.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/cutscenes/stageselect/megaman.png -------------------------------------------------------------------------------- /Demo Project/images/cutscenes/stageselect/metal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/cutscenes/stageselect/metal.png -------------------------------------------------------------------------------- /Demo Project/images/cutscenes/stageselect/tornado.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/cutscenes/stageselect/tornado.png -------------------------------------------------------------------------------- /Demo Project/images/enemies/Mega Man 3/Peterchy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/enemies/Mega Man 3/Peterchy.png -------------------------------------------------------------------------------- /Demo Project/images/enemies/Mega Man 4/Up'n'Down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/enemies/Mega Man 4/Up'n'Down.png -------------------------------------------------------------------------------- /Demo Project/images/particles/enemy_death_large.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/particles/enemy_death_large.png -------------------------------------------------------------------------------- /WPFEditor/Resources/Includes/images/fonts/pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/Includes/images/fonts/pause.png -------------------------------------------------------------------------------- /WPFEditor/Resources/Includes/images/weapons/basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/Includes/images/weapons/basic.png -------------------------------------------------------------------------------- /WPFEditor/Resources/Includes/images/weapons/rush.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/Includes/images/weapons/rush.png -------------------------------------------------------------------------------- /Demo Project/stages/demo/tiles_brushes.xml: -------------------------------------------------------------------------------- 1 | 3 2 0 3 1 4 2 5 2 | 2 2 28 26 27 29 3 | 2 2 14 18 15 19 4 | 2 1 20 21 5 | 2 1 16 17 6 | 4 1 75 76 77 78 7 | 1 2 79 80 8 | -------------------------------------------------------------------------------- /IO/IGameLoader.cs: -------------------------------------------------------------------------------- 1 | namespace MegaMan.IO 2 | { 3 | public interface IGameLoader 4 | { 5 | IReaderProvider Load(string filepath); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /WPFEditor/Resources/Includes/images/fonts/mm9_font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/Includes/images/fonts/mm9_font.png -------------------------------------------------------------------------------- /WPFEditor/Resources/Includes/images/particles/spark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/Includes/images/particles/spark.png -------------------------------------------------------------------------------- /EngineTests/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /WPFEditor/BLL/Const.cs: -------------------------------------------------------------------------------- 1 | namespace MegaMan.Editor.Bll 2 | { 3 | public static class Const 4 | { 5 | public static readonly float FPS = 60.0f; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /WPFEditor/Resources/Includes/images/meters/healthtick.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/Includes/images/meters/healthtick.png -------------------------------------------------------------------------------- /WPFEditor/Resources/Includes/images/meters/horizback.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/Includes/images/meters/horizback.png -------------------------------------------------------------------------------- /WPFEditor/Resources/Includes/images/meters/horizmeter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/Includes/images/meters/horizmeter.png -------------------------------------------------------------------------------- /WPFEditor/Resources/Includes/images/meters/rushhealth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/Includes/images/meters/rushhealth.png -------------------------------------------------------------------------------- /WPFEditor/Resources/Includes/images/palettes/megaman.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/Includes/images/palettes/megaman.png -------------------------------------------------------------------------------- /WPFEditor/Resources/Includes/images/particles/bubble.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/Includes/images/particles/bubble.png -------------------------------------------------------------------------------- /WPFEditor/Resources/Includes/images/particles/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/Includes/images/particles/splash.png -------------------------------------------------------------------------------- /Demo Project/stages/parallax/corn.scn: -------------------------------------------------------------------------------- 1 | 64 1 2 | 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 3 | -------------------------------------------------------------------------------- /Demo Project/images/cutscenes/stageselect/stageselect_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/cutscenes/stageselect/stageselect_back.png -------------------------------------------------------------------------------- /Demo Project/images/cutscenes/stageselect/stageselect_frame.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/Demo Project/images/cutscenes/stageselect/stageselect_frame.png -------------------------------------------------------------------------------- /Mega Man Common/Entities/InputComponentInfo.cs: -------------------------------------------------------------------------------- 1 | 2 | namespace MegaMan.Common.Entities 3 | { 4 | public class InputComponentInfo : IComponentInfo 5 | { 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /WPFEditor/Resources/Includes/images/meters/healthmeter_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/Includes/images/meters/healthmeter_back.png -------------------------------------------------------------------------------- /WPFEditor/Resources/Includes/images/particles/dust_-_spark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/Includes/images/particles/dust_-_spark.png -------------------------------------------------------------------------------- /WPFEditor/Resources/Includes/images/particles/enemy_death.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/Includes/images/particles/enemy_death.png -------------------------------------------------------------------------------- /WPFEditor/Resources/Includes/images/particles/megaman_death.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/Includes/images/particles/megaman_death.png -------------------------------------------------------------------------------- /Demo Project/images/palettes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Mega Man Common/Enums/Axis.cs: -------------------------------------------------------------------------------- 1 | namespace MegaMan.Common 2 | { 3 | public enum Axis 4 | { 5 | X = 1, 6 | Y = 2, 7 | Both = 3 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /WPFEditor/Resources/Includes/images/meters/horizback_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/Includes/images/meters/horizback_selected.png -------------------------------------------------------------------------------- /WPFEditor/Services/IDialogService.cs: -------------------------------------------------------------------------------- 1 | namespace MegaMan.Editor.Services 2 | { 3 | public interface IDialogService 4 | { 5 | void ShowNewEntityDialog(); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /WPFEditor/Resources/Includes/images/meters/horizmeter_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/Includes/images/meters/horizmeter_selected.png -------------------------------------------------------------------------------- /WPFEditor/Resources/Includes/images/particles/enemy_death_large.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tesserex/C--MegaMan-Engine/HEAD/WPFEditor/Resources/Includes/images/particles/enemy_death_large.png -------------------------------------------------------------------------------- /Demo Project/tilesets/TilesetTest/tiles_brushes.xml: -------------------------------------------------------------------------------- 1 | 1 2 123 122 2 | 1 3 123 117 122 3 | 1 2 120 119 4 | 2 2 69 81 70 82 5 | 2 4 84 96 96 108 86 98 98 110 6 | 1 4 123 36 37 122 7 | 1 2 95 107 8 | -------------------------------------------------------------------------------- /IO/IStageWriter.cs: -------------------------------------------------------------------------------- 1 | using MegaMan.Common; 2 | 3 | namespace MegaMan.IO 4 | { 5 | public interface IStageWriter 6 | { 7 | void Save(StageInfo stage); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /.nuget/NuGet.Config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Demo Project/tilesets/Spark Man/tiles_brushes.xml: -------------------------------------------------------------------------------- 1 | 2 1 18 19 2 | 2 2 6 8 7 9 3 | 2 2 66 70 67 71 4 | 2 1 13 12 5 | 2 2 57 55 58 56 6 | 3 2 52 54 52 72 53 54 7 | 4 3 44 48 46 0 49 0 0 49 0 45 50 47 8 | -------------------------------------------------------------------------------- /IO/IProjectWriter.cs: -------------------------------------------------------------------------------- 1 | using MegaMan.Common; 2 | 3 | namespace MegaMan.IO 4 | { 5 | public interface IProjectWriter 6 | { 7 | void Save(Project project); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /IO/ITilesetWriter.cs: -------------------------------------------------------------------------------- 1 | using MegaMan.Common; 2 | 3 | namespace MegaMan.IO 4 | { 5 | public interface ITilesetWriter 6 | { 7 | void Save(Tileset tileset); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Mega Man/Entities/IEntitySource.cs: -------------------------------------------------------------------------------- 1 | namespace MegaMan.Engine.Entities 2 | { 3 | public interface IEntitySource 4 | { 5 | GameEntity GetOriginalEntity(string name); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /WPFEditor/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /WPFEditor/Mediator/TestLocationClickedEventArgs.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace MegaMan.Editor.Mediator 4 | { 5 | public class TestLocationClickedEventArgs : EventArgs 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /Mega Man Common/Entities/Effects/IEffectPartInfo.cs: -------------------------------------------------------------------------------- 1 | namespace MegaMan.Common.Entities.Effects 2 | { 3 | public interface IEffectPartInfo 4 | { 5 | IEffectPartInfo Clone(); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /Demo Project/stages/NewStage/tiles_brushes.xml: -------------------------------------------------------------------------------- 1 | 2 1 2 1 2 | 6 2 8 8 11 8 10 8 5 8 5 10 11 8 3 | 3 1 0 1 2 4 | 4 1 0 1 2 3 5 | 2 1 0 3 6 | 4 2 72 14 66 74 66 72 66 75 7 | 4 3 69 66 74 66 66 76 66 75 14 75 14 14 8 | -------------------------------------------------------------------------------- /IO/IRawReader.cs: -------------------------------------------------------------------------------- 1 | using MegaMan.Common; 2 | 3 | namespace MegaMan.IO 4 | { 5 | public interface IRawReader : IGameFileReader 6 | { 7 | byte[] GetRawData(FilePath path); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Mega Man Common/IncludedObjects/IIncludedObject.cs: -------------------------------------------------------------------------------- 1 | namespace MegaMan.Common.IncludedObjects 2 | { 3 | public interface IIncludedObject 4 | { 5 | FilePath StoragePath { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /IO/IGameFileReader.cs: -------------------------------------------------------------------------------- 1 | using MegaMan.IO.DataSources; 2 | 3 | namespace MegaMan.IO 4 | { 5 | public interface IGameFileReader 6 | { 7 | void Init(IDataSource dataSource); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /IO/IStageReader.cs: -------------------------------------------------------------------------------- 1 | using MegaMan.Common; 2 | 3 | namespace MegaMan.IO 4 | { 5 | public interface IStageReader : IGameFileReader 6 | { 7 | StageInfo Load(FilePath path); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Mega Man/StateMachine/IStateMachineCommand.cs: -------------------------------------------------------------------------------- 1 | namespace MegaMan.Engine.StateMachine 2 | { 3 | public interface IStateMachineCommand 4 | { 5 | void Apply(IStateMachine stateMachine); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /IO/DataSources/XmlFileSource.cs: -------------------------------------------------------------------------------- 1 | namespace MegaMan.IO.DataSources 2 | { 3 | internal class XmlFileSource : FileSource 4 | { 5 | public override string Extension { get { return ".xml"; } } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /IO/IEntityWriter.cs: -------------------------------------------------------------------------------- 1 | using MegaMan.Common.Entities; 2 | 3 | namespace MegaMan.IO 4 | { 5 | public interface IEntityWriter 6 | { 7 | void Write(EntityInfo entity, string filepath); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Mega Man Common/Enums/Direction.cs: -------------------------------------------------------------------------------- 1 | namespace MegaMan.Common 2 | { 3 | public enum Direction 4 | { 5 | Unknown, 6 | Down, 7 | Up, 8 | Left, 9 | Right 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Mega Man Common/Entities/PositionComponentInfo.cs: -------------------------------------------------------------------------------- 1 | 2 | namespace MegaMan.Common.Entities 3 | { 4 | public class PositionComponentInfo : IComponentInfo 5 | { 6 | public bool PersistOffscreen { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /WPFEditor/AppData/RecentProject.cs: -------------------------------------------------------------------------------- 1 | namespace MegaMan.Editor.AppData 2 | { 3 | public class RecentProject 4 | { 5 | public string Name { get; set; } 6 | public string AbsolutePath { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /IO/IProjectReader.cs: -------------------------------------------------------------------------------- 1 | using MegaMan.Common; 2 | 3 | namespace MegaMan.IO 4 | { 5 | public interface IProjectReader : IGameFileReader 6 | { 7 | string Extension { get; } 8 | Project Load(); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /IO/ISoundReader.cs: -------------------------------------------------------------------------------- 1 | using System.Xml.Linq; 2 | using MegaMan.Common.IncludedObjects; 3 | 4 | namespace MegaMan.IO 5 | { 6 | public interface ISoundReader 7 | { 8 | SoundInfo Load(XElement node); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /WPFEditor/Mediator/NewEntityEventArgs.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace MegaMan.Editor.Mediator 4 | { 5 | public class NewEntityEventArgs : EventArgs 6 | { 7 | public string Name { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /WPFEditor/Mediator/ZoomChangedEventArgs.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace MegaMan.Editor.Mediator 4 | { 5 | public class ZoomChangedEventArgs : EventArgs 6 | { 7 | public double Zoom { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Demo Project/stages/crystal/tiles_brushes.xml: -------------------------------------------------------------------------------- 1 | 2 2 28 29 29 28 2 | 4 2 0 4 1 5 2 6 3 7 3 | 2 2 36 38 37 39 4 | 4 2 6 10 7 11 4 8 5 9 5 | 2 2 48 50 49 51 6 | 3 2 63 66 64 70 65 68 7 | 3 1 69 70 71 8 | 2 2 52 54 53 55 9 | 2 2 44 46 45 47 10 | -------------------------------------------------------------------------------- /WPFEditor/BLL/Tools/IEntityToolBehavior.cs: -------------------------------------------------------------------------------- 1 | namespace MegaMan.Editor.Bll.Tools 2 | { 3 | public interface IEntityToolBehavior : IToolBehavior 4 | { 5 | int SnapX { get; set; } 6 | int SnapY { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /WPFEditor/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Mega Man/Entities/ITilePropertiesSource.cs: -------------------------------------------------------------------------------- 1 | using MegaMan.Common; 2 | 3 | namespace MegaMan.Engine.Entities 4 | { 5 | public interface ITilePropertiesSource 6 | { 7 | TileProperties GetProperties(string name); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /WpfEditorTests/ProjectFileStructureTests.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.VisualStudio.TestTools.UnitTesting; 2 | 3 | namespace WpfEditorTests 4 | { 5 | [TestClass] 6 | public class ProjectFileStructureTests 7 | { 8 | 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /WPFEditor/Tools/IToolCursor.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Windows; 3 | 4 | namespace MegaMan.Editor.Tools 5 | { 6 | public interface IToolCursor : IDisposable 7 | { 8 | void ApplyCursorTo(FrameworkElement element); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /WPFEditor/WPFEditor.csproj.user: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | ProjectFiles 5 | 6 | -------------------------------------------------------------------------------- /packages/repositories.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Demo Project/stages/parallax/sun.scn: -------------------------------------------------------------------------------- 1 | 16 6 2 | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 4 | 1 1 1 1 1 1 17 18 19 20 1 1 1 1 1 1 5 | 1 1 1 1 1 1 21 22 23 24 1 1 1 1 1 1 6 | 1 1 1 1 1 1 25 26 27 28 1 1 1 1 1 1 7 | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 8 | -------------------------------------------------------------------------------- /WPFEditor/Mediator/TileSelectedEventArgs.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using MegaMan.Common; 3 | 4 | namespace MegaMan.Editor.Mediator 5 | { 6 | public class TileSelectedEventArgs : EventArgs 7 | { 8 | public Tile Tile { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Mega Man/GameXmlException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace MegaMan.Engine 4 | { 5 | public class GameRunException : Exception 6 | { 7 | public GameRunException(string message) 8 | : base(message) 9 | { 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /WPFEditor/Mediator/StageAddedEventArgs.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using MegaMan.Common; 3 | 4 | namespace MegaMan.Editor.Mediator 5 | { 6 | public class StageAddedEventArgs : EventArgs 7 | { 8 | public StageLinkInfo Stage { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Mega Man Common/Entities/LadderComponentInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace MegaMan.Common.Entities 4 | { 5 | public class LadderComponentInfo : IComponentInfo 6 | { 7 | public List HitBoxes { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Mega Man Common/IncludedObjects/IncludedObject.cs: -------------------------------------------------------------------------------- 1 | namespace MegaMan.Common.IncludedObjects 2 | { 3 | public class IncludedObject : IIncludedObject 4 | { 5 | public FilePath StoragePath 6 | { 7 | get; set; 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /WPFEditor/Mediator/EntityAddedEventArgs.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using MegaMan.Common.Entities; 3 | 4 | namespace MegaMan.Editor.Mediator 5 | { 6 | public class EntityAddedEventArgs : EventArgs 7 | { 8 | public EntityInfo Entity { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Mega Man/Stage/IMapSquare.cs: -------------------------------------------------------------------------------- 1 | using MegaMan.Common; 2 | using MegaMan.Common.Geometry; 3 | 4 | namespace MegaMan.Engine 5 | { 6 | public interface IMapSquare 7 | { 8 | Rectangle BlockBox { get; } 9 | TileProperties Properties { get; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /WPFEditor/Mediator/ProjectChangedEventArgs.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using MegaMan.Editor.Bll; 3 | 4 | namespace MegaMan.Editor.Mediator 5 | { 6 | public class ProjectChangedEventArgs : EventArgs 7 | { 8 | public ProjectDocument Project { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Demo Project/stages/metal/map.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Mega Man/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /WPFEditor/Mediator/TileBrushSelectedEventArgs.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using MegaMan.Editor.Bll.Tools; 3 | 4 | namespace MegaMan.Editor.Mediator 5 | { 6 | class TileBrushSelectedEventArgs : EventArgs 7 | { 8 | public ITileBrush TileBrush { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Demo Project/stages/Spark Man/map.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /IO/ITilesetReader.cs: -------------------------------------------------------------------------------- 1 | using System.Xml.Linq; 2 | using MegaMan.Common; 3 | 4 | namespace MegaMan.IO 5 | { 6 | public interface ITilesetReader : IGameFileReader 7 | { 8 | Tileset Load(FilePath path); 9 | TileProperties LoadProperties(XElement node); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /IO/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Mega Man/Stage/IScreenLayer.cs: -------------------------------------------------------------------------------- 1 | namespace MegaMan.Engine 2 | { 3 | public interface IScreenLayer 4 | { 5 | int LocationX { get; } 6 | int LocationY { get; } 7 | IGameplayContainer Stage { get; } 8 | MapSquare SquareAt(float px, float py); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /WPFEditor/Controls/Canvases/TileScreenCanvas.cs: -------------------------------------------------------------------------------- 1 | using MegaMan.Editor.Tools; 2 | 3 | namespace MegaMan.Editor.Controls 4 | { 5 | public class TileScreenCanvas : ScreenCanvas 6 | { 7 | public TileScreenCanvas(IToolProvider toolProvider) : base(toolProvider) { } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /WPFEditor/Mediator/LayoutScreenDroppedEventArgs.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using MegaMan.Editor.Controls; 3 | 4 | namespace MegaMan.Editor.Mediator 5 | { 6 | public class LayoutScreenDroppedEventArgs : EventArgs 7 | { 8 | public ScreenCanvas Canvas { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Mega Man Common/Entities/Effects/DieEffectPartInfo.cs: -------------------------------------------------------------------------------- 1 | namespace MegaMan.Common.Entities.Effects 2 | { 3 | public class DieEffectPartInfo : IEffectPartInfo 4 | { 5 | public IEffectPartInfo Clone() 6 | { 7 | return new DieEffectPartInfo(); 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /IO/IIncludedObjectGroupXmlWriter.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using MegaMan.Common.IncludedObjects; 3 | 4 | namespace MegaMan.IO 5 | { 6 | public interface IIncludedObjectGroupWriter 7 | { 8 | void Write(IEnumerable includedObjects, string filepath); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Mega Man Common/Entities/Effects/PauseEffectPartInfo.cs: -------------------------------------------------------------------------------- 1 | namespace MegaMan.Common.Entities.Effects 2 | { 3 | public class PauseEffectPartInfo : IEffectPartInfo 4 | { 5 | public IEffectPartInfo Clone() 6 | { 7 | return new PauseEffectPartInfo(); 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Mega Man Common/Entities/Effects/RemoveEffectPartInfo.cs: -------------------------------------------------------------------------------- 1 | namespace MegaMan.Common.Entities.Effects 2 | { 3 | public class RemoveEffectPartInfo : IEffectPartInfo 4 | { 5 | public IEffectPartInfo Clone() 6 | { 7 | return new RemoveEffectPartInfo(); 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Mega Man/Entities/Effects/IEffectLoader.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using MegaMan.Common.Entities.Effects; 3 | 4 | namespace MegaMan.Engine.Entities.Effects 5 | { 6 | public interface IEffectLoader 7 | { 8 | Type PartInfoType { get; } 9 | Effect Load(IEffectPartInfo info); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /WPFEditor/BLL/UnknownTile.cs: -------------------------------------------------------------------------------- 1 | using MegaMan.Common; 2 | 3 | namespace MegaMan.Editor.Bll 4 | { 5 | internal class UnknownTile : Tile 6 | { 7 | public const int UnknownId = -1; 8 | 9 | public UnknownTile(Tileset tileset) : base(UnknownId, new TileSprite(tileset)) { } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /IO/Xml/Effects/IEffectPartXmlReader.cs: -------------------------------------------------------------------------------- 1 | using System.Xml.Linq; 2 | using MegaMan.Common.Entities.Effects; 3 | 4 | namespace MegaMan.IO.Xml.Effects 5 | { 6 | internal interface IEffectPartXmlReader 7 | { 8 | string NodeName { get; } 9 | IEffectPartInfo Load(XElement partNode); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Mega Man Common/Entities/Effects/UnpauseEffectPartInfo.cs: -------------------------------------------------------------------------------- 1 | namespace MegaMan.Common.Entities.Effects 2 | { 3 | public class UnpauseEffectPartInfo : IEffectPartInfo 4 | { 5 | public IEffectPartInfo Clone() 6 | { 7 | return new UnpauseEffectPartInfo(); 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Mega Man Common/Entities/EntityEditorData.cs: -------------------------------------------------------------------------------- 1 | 2 | namespace MegaMan.Common.Entities 3 | { 4 | public class EntityEditorData 5 | { 6 | public string DefaultSpriteName { get; set; } 7 | public bool HideFromPlacement { get; set; } 8 | public bool IsProjectile { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Mega Man Common/IncludedObjects/PaletteInfo.cs: -------------------------------------------------------------------------------- 1 | namespace MegaMan.Common.IncludedObjects 2 | { 3 | public class PaletteInfo : IncludedObject 4 | { 5 | public string Name { get; set; } 6 | public FilePath ImagePath { get; set; } 7 | public byte[] ImageData { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Mega Man Common/Rendering/IResourceImage.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace MegaMan.Common.Rendering 4 | { 5 | public interface IResourceImage 6 | { 7 | Int32 ResourceId { get; } 8 | String PaletteName { get; } 9 | Int32 Width { get; } 10 | Int32 Height { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /WPFEditor/Mediator/LayerVisibilityChangedEventArgs.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace MegaMan.Editor.Mediator 4 | { 5 | public class LayerVisibilityChangedEventArgs : EventArgs 6 | { 7 | public bool BordersVisible { get; set; } 8 | public bool TilePropertiesVisible { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /IO/Xml/Handlers/Commands/ICommandXmlWriter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Xml; 3 | using MegaMan.Common; 4 | 5 | namespace MegaMan.IO.Xml.Handlers.Commands { 6 | internal interface ICommandXmlWriter { 7 | Type CommandType { get; } 8 | void Write(SceneCommandInfo info, XmlWriter writer); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /WPFEditor/Mediator/TestLocationSelectedEventArgs.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace MegaMan.Editor.Mediator 4 | { 5 | public class TestLocationSelectedEventArgs : EventArgs 6 | { 7 | public string Screen { get; set; } 8 | public int X { get; set; } 9 | public int Y { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /IO/Xml/Entities/IComponentXmlWriter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Xml; 3 | using MegaMan.Common.Entities; 4 | 5 | namespace MegaMan.IO.Xml.Entities 6 | { 7 | internal interface IComponentXmlWriter 8 | { 9 | Type ComponentType { get; } 10 | void Write(IComponentInfo info, XmlWriter writer); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IO/Xml/Effects/IEffectPartXmlWriter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Xml; 3 | using MegaMan.Common.Entities.Effects; 4 | 5 | namespace MegaMan.IO.Xml.Effects 6 | { 7 | internal interface IEffectPartXmlWriter 8 | { 9 | Type EffectPartType { get; } 10 | void Write(IEffectPartInfo info, XmlWriter writer); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IO.Tests/Resources/Sprite_NormalInput.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | PlayOnce 4 | Backward 5 | 6 | 7 | -------------------------------------------------------------------------------- /IO/IReaderProvider.cs: -------------------------------------------------------------------------------- 1 | using MegaMan.Common; 2 | 3 | namespace MegaMan.IO 4 | { 5 | public interface IReaderProvider 6 | { 7 | IProjectReader GetProjectReader(); 8 | IStageReader GetStageReader(FilePath path); 9 | ITilesetReader GetTilesetReader(FilePath path); 10 | IRawReader GetRawReader(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Mega Man/Forms/MenuControllers/IMenuController.cs: -------------------------------------------------------------------------------- 1 | using MegaMan.Engine.Forms.Settings; 2 | 3 | namespace MegaMan.Engine.Forms.MenuControllers 4 | { 5 | public interface IMenuController 6 | { 7 | void Set(bool value); 8 | void LoadSettings(Setting settings); 9 | void SaveSettings(Setting settings); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /WPFEditor/BLL/IProjectFileStructure.cs: -------------------------------------------------------------------------------- 1 | using MegaMan.Common; 2 | 3 | namespace MegaMan.Editor.Bll 4 | { 5 | public interface IProjectFileStructure 6 | { 7 | FilePath CreateStagePath(string stageName); 8 | FilePath CreateTilesetPath(string tilesetName); 9 | FilePath CreateEntityPath(string entityName); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /IO/Xml/Handlers/IHandlerObjectXmlWriter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Xml; 3 | using MegaMan.Common.IncludedObjects; 4 | 5 | namespace MegaMan.IO.Xml.Handlers 6 | { 7 | internal interface IHandlerObjectXmlWriter 8 | { 9 | Type ObjectType { get; } 10 | void Write(IHandlerObjectInfo info, XmlWriter writer); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /WPFEditor/UserSettings.cs: -------------------------------------------------------------------------------- 1 | namespace MegaMan.Editor 2 | { 3 | #region Constant Values 4 | public class Constants 5 | { 6 | #region Paths 7 | public class Paths 8 | { 9 | public static readonly string SettingFile = "settings.xml"; 10 | } 11 | #endregion 12 | } 13 | #endregion 14 | } 15 | -------------------------------------------------------------------------------- /IO/IWriterProvider.cs: -------------------------------------------------------------------------------- 1 | 2 | namespace MegaMan.IO 3 | { 4 | public interface IWriterProvider 5 | { 6 | IProjectWriter GetProjectWriter(); 7 | IStageWriter GetStageWriter(); 8 | ITilesetWriter GetTilesetWriter(); 9 | IEntityWriter GetEntityWriter(); 10 | IIncludedObjectGroupWriter GetEntityGroupWriter(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /WPFEditor/Mediator/SelectionChangedEventArgs.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using MegaMan.Common.Geometry; 3 | using MegaMan.Editor.Bll; 4 | 5 | namespace MegaMan.Editor.Mediator 6 | { 7 | public class SelectionChangedEventArgs : EventArgs 8 | { 9 | public ScreenDocument Screen { get; set; } 10 | public Rectangle? Selection { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Mega Man Common/Entities/HealthComponentInfo.cs: -------------------------------------------------------------------------------- 1 | 2 | namespace MegaMan.Common.Entities 3 | { 4 | public class HealthComponentInfo : IComponentInfo 5 | { 6 | public float Max { get; set; } 7 | public float? StartValue { get; set; } 8 | public int FlashFrames { get; set; } 9 | 10 | public MeterInfo Meter { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Mega Man/Forms/MenuControllers/ExclusiveController.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace MegaMan.Engine.Forms.MenuControllers 4 | { 5 | public class ExclusiveController 6 | { 7 | public event Action Changed; 8 | 9 | public void Raise(TParam param) 10 | { 11 | Changed?.Invoke(param); 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /IO/Xml/Handlers/Commands/ICommandXmlReader.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Xml.Linq; 3 | using MegaMan.Common; 4 | 5 | namespace MegaMan.IO.Xml.Handlers.Commands 6 | { 7 | internal interface ICommandXmlReader 8 | { 9 | IEnumerable NodeName { get; } 10 | SceneCommandInfo Load(XElement node, string basePath); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Mega Man/Entities/IEntityRespawnTracker.cs: -------------------------------------------------------------------------------- 1 | using MegaMan.Common; 2 | 3 | namespace MegaMan.Engine.Entities 4 | { 5 | public interface IEntityRespawnTracker 6 | { 7 | void Track(EntityPlacement placement, GameEntity entity); 8 | void ResetDeath(); 9 | void ResetStage(); 10 | bool IsRespawnable(EntityPlacement placement); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Demo Project/tilesets/Help/tiles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /IO/Xml/IIncludeXmlReader.cs: -------------------------------------------------------------------------------- 1 | using System.Xml.Linq; 2 | using MegaMan.Common; 3 | using MegaMan.Common.IncludedObjects; 4 | using MegaMan.IO.DataSources; 5 | 6 | namespace MegaMan.IO.Xml 7 | { 8 | internal interface IIncludeXmlReader 9 | { 10 | string NodeName { get; } 11 | IIncludedObject Load(Project project, XElement xmlNode, IDataSource dataSource); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /IO/Xml/Entities/IComponentXmlReader.cs: -------------------------------------------------------------------------------- 1 | using System.Xml.Linq; 2 | using MegaMan.Common; 3 | using MegaMan.Common.Entities; 4 | using MegaMan.IO.DataSources; 5 | 6 | namespace MegaMan.IO.Xml.Entities 7 | { 8 | internal interface IComponentXmlReader 9 | { 10 | string NodeName { get; } 11 | IComponentInfo Load(XElement node, Project project, IDataSource dataSource); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Mega Man Common/Entities/Effects/LivesEffectPartInfo.cs: -------------------------------------------------------------------------------- 1 | namespace MegaMan.Common.Entities.Effects 2 | { 3 | public class LivesEffectPartInfo : IEffectPartInfo 4 | { 5 | public int Add { get; set; } 6 | 7 | public IEffectPartInfo Clone() 8 | { 9 | return new LivesEffectPartInfo { 10 | Add = Add 11 | }; 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /WPFEditor/Controls/EntityToolbar.xaml.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Controls; 2 | 3 | namespace MegaMan.Editor.Controls 4 | { 5 | /// 6 | /// Interaction logic for EntityToolbar.xaml 7 | /// 8 | public partial class EntityToolbar : UserControl 9 | { 10 | public EntityToolbar() 11 | { 12 | InitializeComponent(); 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /WPFEditor/Controls/LayoutToolbar.xaml.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Controls; 2 | 3 | namespace MegaMan.Editor.Controls 4 | { 5 | /// 6 | /// Interaction logic for LayoutToolbar.xaml 7 | /// 8 | public partial class LayoutToolbar : UserControl 9 | { 10 | public LayoutToolbar() 11 | { 12 | InitializeComponent(); 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /WPFEditor/Controls/TilesToolbar.xaml.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Controls; 2 | 3 | namespace MegaMan.Editor.Controls 4 | { 5 | /// 6 | /// Interaction logic for TilesToolbar.xaml 7 | /// 8 | public partial class TilesToolbar : UserControl 9 | { 10 | public TilesToolbar() 11 | { 12 | InitializeComponent(); 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Mega Man Common/Entities/Effects/StateEffectPartInfo.cs: -------------------------------------------------------------------------------- 1 | namespace MegaMan.Common.Entities.Effects 2 | { 3 | public class StateEffectPartInfo : IEffectPartInfo 4 | { 5 | public string Name { get; set; } 6 | 7 | public IEffectPartInfo Clone() 8 | { 9 | return new StateEffectPartInfo { 10 | Name = Name 11 | }; 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /WPFEditor/Mediator/EntitySelectedEventArgs.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using MegaMan.Common.Entities; 3 | 4 | namespace MegaMan.Editor.Mediator { 5 | public class EntitySelectedEventArgs : EventArgs 6 | { 7 | public EntityInfo Entity { get; private set; } 8 | 9 | public EntitySelectedEventArgs(EntityInfo entity) 10 | { 11 | Entity = entity; 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /WPFEditor/Mediator/StageChangedEventArgs.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using MegaMan.Editor.Bll; 3 | 4 | namespace MegaMan.Editor.Mediator 5 | { 6 | public class StageChangedEventArgs : EventArgs 7 | { 8 | public StageDocument Stage { get; private set; } 9 | 10 | public StageChangedEventArgs(StageDocument stage) 11 | { 12 | Stage = stage; 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Demo Project/stages/parallax/map.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Mega Man Common/Entities/Effects/InputEffectPartInfo.cs: -------------------------------------------------------------------------------- 1 | namespace MegaMan.Common.Entities.Effects 2 | { 3 | public class InputEffectPartInfo : IEffectPartInfo 4 | { 5 | public bool Paused { get; set; } 6 | 7 | public IEffectPartInfo Clone() 8 | { 9 | return new InputEffectPartInfo { 10 | Paused = Paused 11 | }; 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Mega Man Common/Entities/Effects/HealthEffectPartInfo.cs: -------------------------------------------------------------------------------- 1 | namespace MegaMan.Common.Entities.Effects 2 | { 3 | public class HealthEffectPartInfo : IEffectPartInfo 4 | { 5 | public float Change { get; set; } 6 | 7 | public IEffectPartInfo Clone() 8 | { 9 | return new HealthEffectPartInfo { 10 | Change = Change 11 | }; 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Demo Project/stages/test/overlay.scn: -------------------------------------------------------------------------------- 1 | 14 12 2 | 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 | 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 | 3 3 3 3 3 3 3 3 3 3 3 3 3 3 5 | 3 3 3 3 3 3 3 3 3 3 3 3 3 3 6 | 3 3 3 3 3 3 3 3 3 3 3 3 3 3 7 | 3 3 3 3 3 3 3 3 3 3 3 3 3 3 8 | 3 3 3 3 3 3 3 3 3 3 3 3 3 3 9 | 3 3 3 3 3 3 3 3 3 3 3 3 3 3 10 | 3 3 3 3 3 3 3 3 3 3 3 3 3 3 11 | 3 3 3 3 3 3 3 3 3 3 3 3 3 3 12 | 3 3 3 3 3 3 3 3 3 3 3 3 3 3 13 | 6 7 6 7 6 7 6 7 6 7 6 7 6 7 14 | -------------------------------------------------------------------------------- /Mega Man Common/Entities/Effects/CallEffectPartInfo.cs: -------------------------------------------------------------------------------- 1 | namespace MegaMan.Common.Entities.Effects 2 | { 3 | public class CallEffectPartInfo : IEffectPartInfo 4 | { 5 | public string EffectName { get; set; } 6 | 7 | public IEffectPartInfo Clone() 8 | { 9 | return new CallEffectPartInfo { 10 | EffectName = EffectName 11 | }; 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Mega Man Common/Entities/Effects/DefeatBossEffectPartInfo.cs: -------------------------------------------------------------------------------- 1 | namespace MegaMan.Common.Entities.Effects 2 | { 3 | public class DefeatBossEffectPartInfo : IEffectPartInfo 4 | { 5 | public string Name { get; set; } 6 | 7 | public IEffectPartInfo Clone() 8 | { 9 | return new DefeatBossEffectPartInfo { 10 | Name = Name 11 | }; 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Mega Man Common/Entities/MovementComponentInfo.cs: -------------------------------------------------------------------------------- 1 | using MegaMan.Common.Entities.Effects; 2 | 3 | namespace MegaMan.Common.Entities 4 | { 5 | public class MovementComponentInfo : IComponentInfo 6 | { 7 | public MovementEffectPartInfo EffectInfo { get; set; } 8 | 9 | public MovementComponentInfo() 10 | { 11 | EffectInfo = new MovementEffectPartInfo(); 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Mega Man Common/Entities/Effects/GravityFlipEffectPartInfo.cs: -------------------------------------------------------------------------------- 1 | namespace MegaMan.Common.Entities.Effects 2 | { 3 | public class GravityFlipEffectPartInfo : IEffectPartInfo 4 | { 5 | public bool Flipped { get; set; } 6 | 7 | public IEffectPartInfo Clone() 8 | { 9 | return new GravityFlipEffectPartInfo { 10 | Flipped = Flipped 11 | }; 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Mega Man Common/Entities/Effects/NextEffectPartInfo.cs: -------------------------------------------------------------------------------- 1 | namespace MegaMan.Common.Entities.Effects 2 | { 3 | public class NextEffectPartInfo : IEffectPartInfo 4 | { 5 | public HandlerTransfer Transfer { get; set; } 6 | 7 | public IEffectPartInfo Clone() 8 | { 9 | return new NextEffectPartInfo { 10 | Transfer = Transfer.Clone() 11 | }; 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /WPFEditor/BLL/IEntityImage.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Media.Imaging; 2 | using MegaMan.Common.Geometry; 3 | 4 | namespace MegaMan.Editor.Bll 5 | { 6 | public interface IEntityImage 7 | { 8 | int Height { get; } 9 | Point HotSpot { get; } 10 | string Name { get; } 11 | int Width { get; } 12 | bool Reversed { get; } 13 | WriteableBitmap GetImageSource(double zoom); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Mega Man Common/Entities/Effects/TriggerEffectPartInfo.cs: -------------------------------------------------------------------------------- 1 | namespace MegaMan.Common.Entities.Effects 2 | { 3 | public class TriggerEffectPartInfo : IEffectPartInfo 4 | { 5 | public TriggerInfo Trigger { get; set; } 6 | 7 | public IEffectPartInfo Clone() 8 | { 9 | return new TriggerEffectPartInfo { 10 | Trigger = Trigger.Clone() 11 | }; 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /WPFEditor/Controls/Dialogs/TilesetImporterDialog.xaml.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Controls; 2 | 3 | namespace MegaMan.Editor.Controls 4 | { 5 | /// 6 | /// Interaction logic for TilesetImporter.xaml 7 | /// 8 | public partial class TilesetImporterDialog : UserControl 9 | { 10 | public TilesetImporterDialog() 11 | { 12 | InitializeComponent(); 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /WPFEditor/Mediator/EntityRenamedEventArgs.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using MegaMan.Common.Entities; 7 | 8 | namespace MegaMan.Editor.Mediator 9 | { 10 | public class EntityRenamedEventArgs : EventArgs 11 | { 12 | public string OldName { get; set; } 13 | public EntityInfo Entity { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /IO/DataSources/IDataSource.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.IO; 3 | using MegaMan.Common; 4 | 5 | namespace MegaMan.IO.DataSources 6 | { 7 | public interface IDataSource 8 | { 9 | string Extension { get; } 10 | void Init(string path); 11 | Stream GetData(FilePath path); 12 | FilePath GetGameFile(); 13 | IEnumerable GetFilesInFolder(FilePath folderPath); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Mega Man Common/Entities/Effects/UnlockWeaponEffectPartInfo.cs: -------------------------------------------------------------------------------- 1 | namespace MegaMan.Common.Entities.Effects 2 | { 3 | public class UnlockWeaponEffectPartInfo : IEffectPartInfo 4 | { 5 | public string WeaponName { get; set; } 6 | 7 | public IEffectPartInfo Clone() 8 | { 9 | return new UnlockWeaponEffectPartInfo { 10 | WeaponName = WeaponName 11 | }; 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /WPFEditor/Controls/StageTileControl.cs: -------------------------------------------------------------------------------- 1 | using MegaMan.Editor.Bll; 2 | 3 | namespace MegaMan.Editor.Controls 4 | { 5 | public class StageTileControl : StageControl 6 | { 7 | protected override ScreenCanvas CreateScreenCanvas(ScreenDocument screen) 8 | { 9 | var canvas = new TileScreenCanvas(ToolProvider); 10 | canvas.Screen = screen; 11 | 12 | return canvas; 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Mega Man Common/Entities/CollisionComponentInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace MegaMan.Common.Entities 4 | { 5 | public class CollisionComponentInfo : IComponentInfo 6 | { 7 | public bool Enabled { get; set; } 8 | public List HitBoxes { get; private set; } 9 | 10 | public CollisionComponentInfo() 11 | { 12 | HitBoxes = new List(); 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /WPFEditor/Controls/StageEntitiesControl.cs: -------------------------------------------------------------------------------- 1 | using MegaMan.Editor.Bll; 2 | 3 | namespace MegaMan.Editor.Controls 4 | { 5 | public class StageEntitiesControl : StageControl 6 | { 7 | protected override ScreenCanvas CreateScreenCanvas(ScreenDocument screen) 8 | { 9 | var canvas = new EntitiesScreenCanvas(ToolProvider); 10 | canvas.Screen = screen; 11 | 12 | return canvas; 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Demo Project/stages/parallax/mountains.scn: -------------------------------------------------------------------------------- 1 | 32 6 2 | 1 1 1 1 1 1 1 1 1 1 7 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 | 1 1 1 1 1 7 8 1 1 15 10 11 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 8 1 1 1 4 | 7 8 1 1 15 10 13 8 15 16 13 6 6 8 7 8 1 1 1 1 1 1 1 1 1 1 15 10 13 8 1 1 5 | 10 11 8 15 16 11 6 14 16 6 6 6 6 9 10 13 8 1 1 1 1 1 1 7 8 15 16 11 6 6 8 1 6 | 11 6 9 16 6 6 14 16 11 6 6 6 11 6 6 6 11 8 7 8 1 1 15 10 9 16 6 6 6 6 6 8 7 | 6 12 6 6 12 14 16 13 6 12 6 6 6 12 6 6 6 14 10 6 8 15 16 6 6 6 6 6 6 12 6 6 8 | -------------------------------------------------------------------------------- /Mega Man Common/Entities/SpriteComponentInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace MegaMan.Common.Entities 4 | { 5 | public class SpriteComponentInfo : IComponentInfo 6 | { 7 | public FilePath SheetPath { get; set; } 8 | public Dictionary Sprites { get; private set; } 9 | 10 | public SpriteComponentInfo() 11 | { 12 | Sprites = new Dictionary(); 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /IO.Tests/TestHelpers.cs: -------------------------------------------------------------------------------- 1 | using System.IO; 2 | using System.Reflection; 3 | 4 | namespace MegaMan.IO.Tests 5 | { 6 | internal static class TestHelpers 7 | { 8 | public static string GetInputFile(string filename) 9 | { 10 | Assembly thisAssembly = Assembly.GetExecutingAssembly(); 11 | 12 | return new StreamReader(thisAssembly.GetManifestResourceStream(thisAssembly.GetName().Name + ".Resources." + filename)).ReadToEnd(); 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /IO/Xml/SceneBindingXmlReader.cs: -------------------------------------------------------------------------------- 1 | using System.Xml.Linq; 2 | using MegaMan.Common; 3 | 4 | namespace MegaMan.IO.Xml 5 | { 6 | internal class SceneBindingXmlReader 7 | { 8 | public SceneBindingInfo Load(XElement node) 9 | { 10 | var info = new SceneBindingInfo(); 11 | info.Source = node.RequireAttribute("source").Value; 12 | info.Target = node.RequireAttribute("target").Value; 13 | return info; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Mega Man Common/Entities/Effects/SetVarEffectPartInfo.cs: -------------------------------------------------------------------------------- 1 | namespace MegaMan.Common.Entities.Effects 2 | { 3 | public class SetVarEffectPartInfo : IEffectPartInfo 4 | { 5 | public string Name { get; set; } 6 | public string Value { get; set; } 7 | 8 | public IEffectPartInfo Clone() 9 | { 10 | return new SetVarEffectPartInfo { 11 | Name = Name, 12 | Value = Value 13 | }; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Mega Man Common/Entities/Effects/SoundEffectPartInfo.cs: -------------------------------------------------------------------------------- 1 | namespace MegaMan.Common.Entities.Effects 2 | { 3 | public class SoundEffectPartInfo : IEffectPartInfo 4 | { 5 | public string Name { get; set; } 6 | public bool Playing { get; set; } 7 | 8 | public IEffectPartInfo Clone() 9 | { 10 | return new SoundEffectPartInfo { 11 | Name = Name, 12 | Playing = Playing 13 | }; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /WPFEditor/Controls/Parts/TileImage.cs: -------------------------------------------------------------------------------- 1 | using System.Windows; 2 | using MegaMan.Common; 3 | using MegaMan.Editor.Bll; 4 | 5 | namespace MegaMan.Editor.Controls.Parts 6 | { 7 | public class TileImage : SpriteImage 8 | { 9 | protected override void SpriteImage_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e) 10 | { 11 | var tile = (Tile)e.NewValue; 12 | 13 | SetSprite(new SpriteModel(tile.Sprite)); 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Mega Man Common/Entities/Effects/FuncEffectPartInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace MegaMan.Common.Entities.Effects 4 | { 5 | public class FuncEffectPartInfo : IEffectPartInfo 6 | { 7 | public IEnumerable Statements { get; set; } 8 | 9 | public IEffectPartInfo Clone() 10 | { 11 | return new FuncEffectPartInfo { 12 | Statements = new List(Statements) 13 | }; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /docs/docs/scripting/menu.js: -------------------------------------------------------------------------------- 1 | class ScriptingMenu extends HTMLElement { 2 | connectedCallback() { 3 | this.innerHTML = ` 4 | 9 | `; 10 | } 11 | } 12 | 13 | customElements.define('scripting-menu', ScriptingMenu); -------------------------------------------------------------------------------- /IO/RawReader.cs: -------------------------------------------------------------------------------- 1 | using MegaMan.Common; 2 | using MegaMan.IO.DataSources; 3 | 4 | namespace MegaMan.IO 5 | { 6 | public class RawReader : IRawReader 7 | { 8 | private IDataSource dataSource; 9 | 10 | public byte[] GetRawData(FilePath path) 11 | { 12 | return dataSource.GetBytesFromFilePath(path); 13 | } 14 | 15 | public void Init(IDataSource dataSource) 16 | { 17 | this.dataSource = dataSource; 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /WPFEditor/Controls/TilesetEditor.xaml.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Controls; 2 | using MegaMan.Editor.Controls.ViewModels; 3 | 4 | namespace MegaMan.Editor.Controls 5 | { 6 | /// 7 | /// Interaction logic for TilesetEditor.xaml 8 | /// 9 | public partial class TilesetEditor : UserControl 10 | { 11 | public TilesetEditor() 12 | { 13 | InitializeComponent(); 14 | DataContext = new TilesetEditorViewModel(); 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /IO/Xml/SceneBindingXmlWriter.cs: -------------------------------------------------------------------------------- 1 | using System.Xml; 2 | using MegaMan.Common; 3 | 4 | namespace MegaMan.IO.Xml 5 | { 6 | internal class SceneBindingXmlWriter 7 | { 8 | public void Write(SceneBindingInfo info, XmlWriter writer) 9 | { 10 | writer.WriteStartElement("Binding"); 11 | writer.WriteAttributeString("source", info.Source); 12 | writer.WriteAttributeString("target", info.Target); 13 | writer.WriteEndElement(); 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Mega Man/Entities/IEntityPool.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | namespace MegaMan.Engine.Entities 5 | { 6 | public interface IEntityPool 7 | { 8 | GameEntity CreateEntity(string name); 9 | GameEntity CreateEntityWithId(string id, string name); 10 | GameEntity GetEntityById(string id); 11 | Int32 GetNumberAlive(string name); 12 | Int32 GetTotalAlive(); 13 | IEnumerable GetAll(); 14 | void RemoveAll(); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Mega Man Common/Entities/Effects/AddInventoryEffectPartInfo.cs: -------------------------------------------------------------------------------- 1 | namespace MegaMan.Common.Entities.Effects 2 | { 3 | public class AddInventoryEffectPartInfo : IEffectPartInfo 4 | { 5 | public string ItemName { get; set; } 6 | public int Quantity { get; set; } 7 | 8 | public IEffectPartInfo Clone() 9 | { 10 | return new AddInventoryEffectPartInfo { 11 | ItemName = ItemName, 12 | Quantity = Quantity 13 | }; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Mega Man Common/Entities/Effects/DelayedEffectPartInfo.cs: -------------------------------------------------------------------------------- 1 | namespace MegaMan.Common.Entities.Effects 2 | { 3 | public class DelayedEffectPartInfo : IEffectPartInfo 4 | { 5 | public int DelayFrames { get; set; } 6 | public EffectInfo Effect { get; set; } 7 | 8 | public IEffectPartInfo Clone() 9 | { 10 | return new DelayedEffectPartInfo { 11 | DelayFrames = DelayFrames, 12 | Effect = Effect.Clone() 13 | }; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /WPFEditor/BLL/Algorithms/IScreenData.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using MegaMan.Common; 7 | 8 | namespace MegaMan.Editor.Bll.Algorithms 9 | { 10 | public interface IScreenData 11 | { 12 | string Name { get; } 13 | int TileSize { get; } 14 | int Height { get; } 15 | int Width { get; } 16 | 17 | void AddJoin(Join join); 18 | void SeverAllJoins(); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Mega Man Common/Entities/Effects/PaletteEffectPartInfo.cs: -------------------------------------------------------------------------------- 1 | namespace MegaMan.Common.Entities.Effects 2 | { 3 | public class PaletteEffectPartInfo : IEffectPartInfo 4 | { 5 | public string PaletteName { get; set; } 6 | public int PaletteIndex { get; set; } 7 | 8 | public IEffectPartInfo Clone() 9 | { 10 | return new PaletteEffectPartInfo { 11 | PaletteIndex = PaletteIndex, 12 | PaletteName = PaletteName 13 | }; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Demo Project/stages/test/2.scn: -------------------------------------------------------------------------------- 1 | 16 14 2 | 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 3 | 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 4 | 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 5 | 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 6 | 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 7 | 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 8 | 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 9 | 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 10 | 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 11 | 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 12 | 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 13 | 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 14 | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 16 | -------------------------------------------------------------------------------- /Demo Project/stages/test/4.scn: -------------------------------------------------------------------------------- 1 | 16 14 2 | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 4 | 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 5 | 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 6 | 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 7 | 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 8 | 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 9 | 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 10 | 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 11 | 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 12 | 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 13 | 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 14 | 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 15 | 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 16 | -------------------------------------------------------------------------------- /Demo Project/stages/test/5.scn: -------------------------------------------------------------------------------- 1 | 16 14 2 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 13 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 14 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 | -------------------------------------------------------------------------------- /Mega Man Common/Entities/Effects/RemoveInventoryEffectPartInfo.cs: -------------------------------------------------------------------------------- 1 | namespace MegaMan.Common.Entities.Effects 2 | { 3 | public class RemoveInventoryEffectPartInfo : IEffectPartInfo 4 | { 5 | public string ItemName { get; set; } 6 | public int Quantity { get; set; } 7 | 8 | public IEffectPartInfo Clone() 9 | { 10 | return new RemoveInventoryEffectPartInfo { 11 | ItemName = ItemName, 12 | Quantity = Quantity 13 | }; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /CommonTests/TestHelpers.cs: -------------------------------------------------------------------------------- 1 | using System.IO; 2 | using System.Reflection; 3 | 4 | namespace MegaMan.Common.Tests 5 | { 6 | internal static class TestHelpers 7 | { 8 | public static string GetInputFile(string filename) 9 | { 10 | Assembly thisAssembly = Assembly.GetExecutingAssembly(); 11 | 12 | string path = "MegaMan.Common.Tests.Resources"; 13 | 14 | return new StreamReader(thisAssembly.GetManifestResourceStream(path + "." + filename)).ReadToEnd(); 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Demo Project/stages/TilesetTest/2.scn: -------------------------------------------------------------------------------- 1 | 16 14 2 | 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 3 | 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 4 | 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 5 | 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 6 | 1 0 0 0 1 1 1 1 1 1 1 1 1 0 0 1 7 | 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 8 | 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 9 | 1 1 1 1 1 1 1 1 1 0 0 0 1 0 0 1 10 | 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 11 | 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 12 | 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 1 13 | 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 14 | 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 15 | 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 16 | -------------------------------------------------------------------------------- /IO/Xml/Entities/InputComponentXmlWriter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Xml; 3 | using MegaMan.Common.Entities; 4 | 5 | namespace MegaMan.IO.Xml.Entities 6 | { 7 | internal class InputComponentXmlWriter : IComponentXmlWriter 8 | { 9 | public Type ComponentType 10 | { 11 | get { return typeof(InputComponentInfo); } 12 | } 13 | 14 | public void Write(IComponentInfo info, XmlWriter writer) 15 | { 16 | writer.WriteElementString("Input", ""); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Mega Man/Entities/Effects/CallEffectLoader.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using MegaMan.Common.Entities.Effects; 3 | 4 | namespace MegaMan.Engine.Entities.Effects 5 | { 6 | public class CallEffectLoader : IEffectLoader 7 | { 8 | public Type PartInfoType { get { return typeof(CallEffectPartInfo); } } 9 | 10 | public Effect Load(IEffectPartInfo info) 11 | { 12 | var callInfo = (CallEffectPartInfo)info; 13 | return EffectParser.GetLateBoundEffect(callInfo.EffectName); 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Mega Man/Entities/Effects/DieEffectLoader.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using MegaMan.Common.Entities.Effects; 3 | 4 | namespace MegaMan.Engine.Entities.Effects 5 | { 6 | public class DieEffectLoader : IEffectLoader 7 | { 8 | public Type PartInfoType 9 | { 10 | get 11 | { 12 | return typeof(DieEffectPartInfo); 13 | } 14 | } 15 | 16 | public Effect Load(IEffectPartInfo info) 17 | { 18 | return e => e.Die(); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Mega Man/Stage/ScreenDrawingCoords.cs: -------------------------------------------------------------------------------- 1 | namespace MegaMan.Engine.Stage 2 | { 3 | public struct ScreenDrawingCoords 4 | { 5 | public int AdjustX; 6 | public int AdjustY; 7 | public float OffsetX; 8 | public float OffsetY; 9 | 10 | public ScreenDrawingCoords(int adjX, int adjY, float offsetX, float offsetY) : this() 11 | { 12 | AdjustX = adjX; 13 | AdjustY = adjY; 14 | OffsetX = offsetX; 15 | OffsetY = offsetY; 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /WPFEditor/Controls/StagePropertiesControl.xaml.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Controls; 2 | using MegaMan.Editor.Controls.ViewModels; 3 | 4 | namespace MegaMan.Editor.Controls 5 | { 6 | /// 7 | /// Interaction logic for StagePropertiesControl.xaml 8 | /// 9 | public partial class StagePropertiesControl : UserControl 10 | { 11 | public StagePropertiesControl() 12 | { 13 | InitializeComponent(); 14 | DataContext = new StagePropertiesViewModel(); 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /IO/Xml/Effects/DieEffectPartXmlReader.cs: -------------------------------------------------------------------------------- 1 | using System.Xml.Linq; 2 | using MegaMan.Common.Entities.Effects; 3 | 4 | namespace MegaMan.IO.Xml.Effects 5 | { 6 | internal class DieEffectPartXmlReader : IEffectPartXmlReader 7 | { 8 | public string NodeName 9 | { 10 | get 11 | { 12 | return "Die"; 13 | } 14 | } 15 | 16 | public IEffectPartInfo Load(XElement partNode) 17 | { 18 | return new DieEffectPartInfo(); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /IO/Xml/Effects/PauseEffectPartXmlReader.cs: -------------------------------------------------------------------------------- 1 | using System.Xml.Linq; 2 | using MegaMan.Common.Entities.Effects; 3 | 4 | namespace MegaMan.IO.Xml.Effects 5 | { 6 | internal class PauseEffectPartXmlReader : IEffectPartXmlReader 7 | { 8 | public string NodeName 9 | { 10 | get 11 | { 12 | return "Pause"; 13 | } 14 | } 15 | 16 | public IEffectPartInfo Load(XElement partNode) 17 | { 18 | return new PauseEffectPartInfo(); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Mega Man/Entities/Effects/PauseEffectLoader.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using MegaMan.Common.Entities.Effects; 3 | 4 | namespace MegaMan.Engine.Entities.Effects 5 | { 6 | public class PauseEffectLoader : IEffectLoader 7 | { 8 | public Type PartInfoType 9 | { 10 | get 11 | { 12 | return typeof(PauseEffectPartInfo); 13 | } 14 | } 15 | 16 | public Effect Load(IEffectPartInfo info) 17 | { 18 | return e => e.Paused = true; 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Mega Man/Entities/Effects/RemoveEffectLoader.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using MegaMan.Common.Entities.Effects; 3 | 4 | namespace MegaMan.Engine.Entities.Effects 5 | { 6 | public class RemoveEffectLoader : IEffectLoader 7 | { 8 | public Type PartInfoType 9 | { 10 | get 11 | { 12 | return typeof(RemoveEffectPartInfo); 13 | } 14 | } 15 | 16 | public Effect Load(IEffectPartInfo info) 17 | { 18 | return e => e.Remove(); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Mega Man/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /IO/Xml/Effects/RemoveEffectPartXmlReader.cs: -------------------------------------------------------------------------------- 1 | using System.Xml.Linq; 2 | using MegaMan.Common.Entities.Effects; 3 | 4 | namespace MegaMan.IO.Xml.Effects 5 | { 6 | internal class RemoveEffectPartXmlReader : IEffectPartXmlReader 7 | { 8 | public string NodeName 9 | { 10 | get 11 | { 12 | return "Remove"; 13 | } 14 | } 15 | 16 | public IEffectPartInfo Load(XElement partNode) 17 | { 18 | return new RemoveEffectPartInfo(); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /IO/Xml/Effects/UnpauseEffectPartXmlReader.cs: -------------------------------------------------------------------------------- 1 | using System.Xml.Linq; 2 | using MegaMan.Common.Entities.Effects; 3 | 4 | namespace MegaMan.IO.Xml.Effects 5 | { 6 | internal class UnpauseEffectPartXmlReader : IEffectPartXmlReader 7 | { 8 | public string NodeName 9 | { 10 | get 11 | { 12 | return "Unpause"; 13 | } 14 | } 15 | 16 | public IEffectPartInfo Load(XElement partNode) 17 | { 18 | return new UnpauseEffectPartInfo(); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Mega Man/Entities/Effects/UnpauseEffectLoader .cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using MegaMan.Common.Entities.Effects; 3 | 4 | namespace MegaMan.Engine.Entities.Effects 5 | { 6 | public class UnpauseEffectLoader : IEffectLoader 7 | { 8 | public Type PartInfoType 9 | { 10 | get 11 | { 12 | return typeof(UnpauseEffectPartInfo); 13 | } 14 | } 15 | 16 | public Effect Load(IEffectPartInfo info) 17 | { 18 | return e => e.Paused = false; 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Mega Man Common/Entities/Effects/LadderEffectPartInfo.cs: -------------------------------------------------------------------------------- 1 | namespace MegaMan.Common.Entities.Effects 2 | { 3 | public class LadderEffectPartInfo : IEffectPartInfo 4 | { 5 | public LadderAction Action { get; set; } 6 | 7 | public IEffectPartInfo Clone() 8 | { 9 | return new LadderEffectPartInfo { 10 | Action = Action 11 | }; 12 | } 13 | } 14 | 15 | public enum LadderAction 16 | { 17 | Grab, 18 | LetGo, 19 | StandOn, 20 | ClimbDown 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Mega Man/Log.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.IO; 3 | 4 | namespace MegaMan.Engine 5 | { 6 | public class Log 7 | { 8 | private static readonly string FileNameToPutDebuggingMsg = "debug.txt"; 9 | 10 | public static bool SaveLog(string log) 11 | { 12 | try 13 | { 14 | File.AppendAllText(Directory.GetCurrentDirectory() + "\\" + FileNameToPutDebuggingMsg, log + Environment.NewLine); 15 | return true; 16 | } 17 | catch (Exception) { return false; } 18 | } 19 | } 20 | } -------------------------------------------------------------------------------- /WPFEditor/Controls/ViewModels/ViewModelBase.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.ComponentModel; 3 | using System.Runtime.CompilerServices; 4 | 5 | namespace MegaMan.Editor.Controls.ViewModels 6 | { 7 | public abstract class ViewModelBase : INotifyPropertyChanged 8 | { 9 | protected void OnPropertyChanged([CallerMemberName] string property = null) 10 | { 11 | PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(property)); 12 | } 13 | 14 | public event PropertyChangedEventHandler PropertyChanged; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /IO/Xml/Entities/InputComponentXmlReader.cs: -------------------------------------------------------------------------------- 1 | using System.Xml.Linq; 2 | using MegaMan.Common; 3 | using MegaMan.Common.Entities; 4 | using MegaMan.IO.DataSources; 5 | 6 | namespace MegaMan.IO.Xml.Entities 7 | { 8 | internal class InputComponentXmlReader : IComponentXmlReader 9 | { 10 | public string NodeName 11 | { 12 | get { return "Input"; } 13 | } 14 | 15 | public IComponentInfo Load(XElement node, Project project, IDataSource dataSource) 16 | { 17 | return new InputComponentInfo(); 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /IO/Xml/Effects/DieEffectPartXmlWriter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Xml; 3 | using MegaMan.Common.Entities.Effects; 4 | 5 | namespace MegaMan.IO.Xml.Effects 6 | { 7 | internal class DieEffectPartXmlWriter : IEffectPartXmlWriter 8 | { 9 | public Type EffectPartType 10 | { 11 | get 12 | { 13 | return typeof(DieEffectPartInfo); 14 | } 15 | } 16 | 17 | public void Write(IEffectPartInfo info, XmlWriter writer) 18 | { 19 | writer.WriteElementString("Die", ""); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /IO/Xml/Effects/PauseEffectPartXmlWriter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Xml; 3 | using MegaMan.Common.Entities.Effects; 4 | 5 | namespace MegaMan.IO.Xml.Effects 6 | { 7 | internal class PauseEffectPartXmlWriter : IEffectPartXmlWriter 8 | { 9 | public Type EffectPartType 10 | { 11 | get 12 | { 13 | return typeof(PauseEffectPartInfo); 14 | } 15 | } 16 | 17 | public void Write(IEffectPartInfo info, XmlWriter writer) 18 | { 19 | writer.WriteElementString("Pause", ""); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /IO/Xml/Handlers/Commands/WaitCommandXmlWriter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Xml; 3 | using MegaMan.Common; 4 | 5 | namespace MegaMan.IO.Xml.Handlers.Commands 6 | { 7 | internal class WaitCommandXmlWriter : ICommandXmlWriter 8 | { 9 | public Type CommandType 10 | { 11 | get 12 | { 13 | return typeof(SceneWaitCommandInfo); 14 | } 15 | } 16 | 17 | public void Write(SceneCommandInfo info, XmlWriter writer) 18 | { 19 | writer.WriteElementString("WaitForInput", ""); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Mega Man Common/Entities/WeaponComponentInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace MegaMan.Common.Entities 4 | { 5 | public class WeaponComponentInfo : IComponentInfo 6 | { 7 | public List Weapons { get; set; } 8 | } 9 | 10 | public class WeaponInfo 11 | { 12 | public string Name { get; set; } 13 | public string EntityName { get; set; } 14 | public int? Ammo { get; set; } 15 | public int? Usage { get; set; } 16 | public int? Palette { get; set; } 17 | public MeterInfo Meter { get; set; } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /IO/Xml/Effects/RemoveEffectPartXmlWriter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Xml; 3 | using MegaMan.Common.Entities.Effects; 4 | 5 | namespace MegaMan.IO.Xml.Effects 6 | { 7 | internal class RemoveEffectPartXmlWriter : IEffectPartXmlWriter 8 | { 9 | public Type EffectPartType 10 | { 11 | get 12 | { 13 | return typeof(RemoveEffectPartInfo); 14 | } 15 | } 16 | 17 | public void Write(IEffectPartInfo info, XmlWriter writer) 18 | { 19 | writer.WriteElementString("Remove", ""); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /IO/Xml/Effects/CallEffectPartXmlReader.cs: -------------------------------------------------------------------------------- 1 | using System.Xml.Linq; 2 | using MegaMan.Common.Entities.Effects; 3 | 4 | namespace MegaMan.IO.Xml.Effects 5 | { 6 | internal class CallEffectPartXmlReader : IEffectPartXmlReader 7 | { 8 | public string NodeName 9 | { 10 | get 11 | { 12 | return "Call"; 13 | } 14 | } 15 | 16 | public IEffectPartInfo Load(XElement partNode) 17 | { 18 | return new CallEffectPartInfo { 19 | EffectName = partNode.Value 20 | }; 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /IO/Xml/Effects/StateEffectPartXmlReader.cs: -------------------------------------------------------------------------------- 1 | using System.Xml.Linq; 2 | using MegaMan.Common.Entities.Effects; 3 | 4 | namespace MegaMan.IO.Xml.Effects 5 | { 6 | internal class StateEffectPartXmlReader : IEffectPartXmlReader 7 | { 8 | public string NodeName 9 | { 10 | get 11 | { 12 | return "State"; 13 | } 14 | } 15 | 16 | public IEffectPartInfo Load(XElement partNode) 17 | { 18 | return new StateEffectPartInfo { 19 | Name = partNode.Value 20 | }; 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /IO/Xml/Effects/UnpauseEffectPartXmlWriter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Xml; 3 | using MegaMan.Common.Entities.Effects; 4 | 5 | namespace MegaMan.IO.Xml.Effects 6 | { 7 | internal class UnpauseEffectPartXmlWriter : IEffectPartXmlWriter 8 | { 9 | public Type EffectPartType 10 | { 11 | get 12 | { 13 | return typeof(UnpauseEffectPartInfo); 14 | } 15 | } 16 | 17 | public void Write(IEffectPartInfo info, XmlWriter writer) 18 | { 19 | writer.WriteElementString("Unpause", ""); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /WPFEditor/Tools/IToolProvider.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using MegaMan.Editor.Bll.Tools; 3 | 4 | namespace MegaMan.Editor.Tools 5 | { 6 | public class ToolChangedEventArgs : EventArgs 7 | { 8 | public IToolBehavior Tool { get; private set; } 9 | 10 | public ToolChangedEventArgs(IToolBehavior tool) 11 | { 12 | Tool = tool; 13 | } 14 | } 15 | 16 | public interface IToolProvider 17 | { 18 | IToolBehavior Tool { get; } 19 | 20 | IToolCursor ToolCursor { get; } 21 | 22 | event EventHandler ToolChanged; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Demo Project/stages/Spark Man/1.scn: -------------------------------------------------------------------------------- 1 | 16 14 2 | 8 9 8 9 8 9 8 9 8 9 8 9 8 9 8 9 3 | 66 67 6 7 66 67 6 7 66 67 6 7 66 67 6 7 4 | 70 71 8 9 70 71 41 42 70 71 8 9 70 71 8 9 5 | 13 12 13 12 13 12 13 12 13 12 13 12 13 12 13 12 6 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 | 0 0 0 0 0 0 0 0 0 0 0 0 59 0 0 0 8 | 31 31 31 31 32 0 0 0 0 0 0 0 60 0 0 0 9 | 34 34 34 34 35 44 0 0 45 0 0 0 60 0 57 58 10 | 34 34 34 34 35 48 49 49 50 51 51 52 52 53 55 56 11 | 34 34 34 34 35 46 0 0 47 0 0 54 72 54 0 0 12 | 18 19 18 19 18 19 18 19 18 19 18 19 18 19 18 19 13 | 6 7 6 7 6 7 6 7 6 7 6 7 6 7 6 7 14 | 8 9 8 9 8 9 8 9 8 9 8 9 8 9 8 9 15 | 6 7 6 7 6 7 6 7 6 7 6 7 6 7 6 7 16 | -------------------------------------------------------------------------------- /IO/Xml/Handlers/Commands/StopCommandXmlReader.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Xml.Linq; 3 | using MegaMan.Common; 4 | 5 | namespace MegaMan.IO.Xml.Handlers.Commands 6 | { 7 | internal class StopCommandXmlReader : ICommandXmlReader 8 | { 9 | public IEnumerable NodeName 10 | { 11 | get 12 | { 13 | yield return "StopMusic"; 14 | } 15 | } 16 | 17 | public SceneCommandInfo Load(XElement node, string basePath) 18 | { 19 | return new SceneStopMusicCommandInfo(); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /IO/Xml/Handlers/Commands/WaitCommandXmlReader.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Xml.Linq; 3 | using MegaMan.Common; 4 | 5 | namespace MegaMan.IO.Xml.Handlers.Commands 6 | { 7 | internal class WaitCommandXmlReader : ICommandXmlReader 8 | { 9 | public IEnumerable NodeName 10 | { 11 | get 12 | { 13 | yield return "WaitForInput"; 14 | } 15 | } 16 | 17 | public SceneCommandInfo Load(XElement node, string basePath) 18 | { 19 | return new SceneWaitCommandInfo(); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Mega Man Common/Entities/Effects/SpawnEffectPartInfo.cs: -------------------------------------------------------------------------------- 1 | namespace MegaMan.Common.Entities.Effects 2 | { 3 | public class SpawnEffectPartInfo : IEffectPartInfo 4 | { 5 | public string Name { get; set; } 6 | public string State { get; set; } 7 | public PositionEffectPartInfo Position { get; set; } 8 | 9 | public IEffectPartInfo Clone() 10 | { 11 | return new SpawnEffectPartInfo { 12 | Name = Name, 13 | State = State, 14 | Position = (PositionEffectPartInfo)Position.Clone() 15 | }; 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Mega Man/design: -------------------------------------------------------------------------------- 1 | Sprite Move Collide Death Health Sound Shoot Input 2 | Player x x x x x x x 3 | Enemy x x x x x x ? 4 | Boss x x x x x x x 5 | Item x x x x x 6 | MapSquare x x 7 | Accessory x x x x x 8 | Boss Door x x x 9 | Particles x x x 10 | Projectiles x x x x x x ? 11 | Enemy Spawn 12 | Pause Screen 13 | 14 | Interfaces 15 | ISprite 16 | IHealth 17 | 18 | Attributes 19 | Sprite (Position) 20 | Health 21 | 22 | Behaviors 23 | Move (if blocking, hit collision stuff) 24 | Collision Target 25 | Play Sound 26 | Shoot 27 | Input -------------------------------------------------------------------------------- /IO/Xml/Effects/LivesEffectPartXmlReader.cs: -------------------------------------------------------------------------------- 1 | using System.Xml.Linq; 2 | using MegaMan.Common.Entities.Effects; 3 | 4 | namespace MegaMan.IO.Xml.Effects 5 | { 6 | internal class LivesEffectPartXmlReader : IEffectPartXmlReader 7 | { 8 | public string NodeName 9 | { 10 | get 11 | { 12 | return "Lives"; 13 | } 14 | } 15 | 16 | public IEffectPartInfo Load(XElement partNode) 17 | { 18 | return new LivesEffectPartInfo { 19 | Add = partNode.GetAttribute("add") 20 | }; 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /IO/Xml/Effects/StateEffectPartXmlWriter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Xml; 3 | using MegaMan.Common.Entities.Effects; 4 | 5 | namespace MegaMan.IO.Xml.Effects 6 | { 7 | internal class StateEffectPartXmlWriter : IEffectPartXmlWriter 8 | { 9 | public Type EffectPartType 10 | { 11 | get 12 | { 13 | return typeof(StateEffectPartInfo); 14 | } 15 | } 16 | 17 | public void Write(IEffectPartInfo info, XmlWriter writer) 18 | { 19 | writer.WriteElementString("State", ((StateEffectPartInfo)info).Name); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Mega Man/Entities/Effects/LivesEffectLoader.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using MegaMan.Common.Entities.Effects; 3 | 4 | namespace MegaMan.Engine.Entities.Effects 5 | { 6 | public class LivesEffectLoader : IEffectLoader 7 | { 8 | public Type PartInfoType 9 | { 10 | get 11 | { 12 | return typeof(LivesEffectPartInfo); 13 | } 14 | } 15 | 16 | public Effect Load(IEffectPartInfo info) 17 | { 18 | var lives = (LivesEffectPartInfo)info; 19 | return e => Game.CurrentGame.Player.Lives += lives.Add; 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /IO/Injector.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using Ninject; 3 | using Ninject.Extensions.Conventions; 4 | 5 | namespace MegaMan.IO 6 | { 7 | internal static class Injector 8 | { 9 | public static IKernel Container { get; private set; } 10 | 11 | static Injector() 12 | { 13 | Container = new StandardKernel(); 14 | Container.Load(Assembly.GetCallingAssembly()); 15 | Container.Bind(x => x.FromThisAssembly().SelectAllClasses().BindDefaultInterface()); 16 | Container.Bind(x => x.FromThisAssembly().SelectAllClasses().BindAllInterfaces()); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /IO/Xml/Effects/HealthEffectPartXmlReader.cs: -------------------------------------------------------------------------------- 1 | using System.Xml.Linq; 2 | using MegaMan.Common.Entities.Effects; 3 | 4 | namespace MegaMan.IO.Xml.Effects 5 | { 6 | internal class HealthEffectPartXmlReader : IEffectPartXmlReader 7 | { 8 | public string NodeName 9 | { 10 | get 11 | { 12 | return "Health"; 13 | } 14 | } 15 | 16 | public IEffectPartInfo Load(XElement partNode) 17 | { 18 | return new HealthEffectPartInfo { 19 | Change = partNode.GetAttribute("change") 20 | }; 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /IO/Xml/Handlers/Commands/StopCommandXmlWriter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Xml; 3 | using MegaMan.Common; 4 | 5 | namespace MegaMan.IO.Xml.Handlers.Commands 6 | { 7 | internal class StopCommandXmlWriter : ICommandXmlWriter 8 | { 9 | public Type CommandType 10 | { 11 | get 12 | { 13 | return typeof(SceneStopMusicCommandInfo); 14 | } 15 | } 16 | 17 | public void Write(SceneCommandInfo info, XmlWriter writer) 18 | { 19 | writer.WriteStartElement("StopMusic"); 20 | writer.WriteEndElement(); 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Mega Man/Entities/Effects/NextEffectLoader.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using MegaMan.Common.Entities.Effects; 3 | 4 | namespace MegaMan.Engine.Entities.Effects 5 | { 6 | public class NextEffectLoader : IEffectLoader 7 | { 8 | public Type PartInfoType 9 | { 10 | get 11 | { 12 | return typeof(NextEffectPartInfo); 13 | } 14 | } 15 | 16 | public Effect Load(IEffectPartInfo info) 17 | { 18 | var next = (NextEffectPartInfo)info; 19 | 20 | return e => Game.CurrentGame.ProcessHandler(next.Transfer); 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /IO/Xml/Effects/GravityFlipEffectPartXmlReader.cs: -------------------------------------------------------------------------------- 1 | using System.Xml.Linq; 2 | using MegaMan.Common.Entities.Effects; 3 | 4 | namespace MegaMan.IO.Xml.Effects 5 | { 6 | internal class GravityFlipEffectPartXmlReader : IEffectPartXmlReader 7 | { 8 | public string NodeName 9 | { 10 | get 11 | { 12 | return "GravityFlip"; 13 | } 14 | } 15 | 16 | public IEffectPartInfo Load(XElement partNode) 17 | { 18 | return new GravityFlipEffectPartInfo { 19 | Flipped = partNode.GetValue() 20 | }; 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Mega Man/Entities/Effects/DefeatBossEffectLoader.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using MegaMan.Common.Entities.Effects; 3 | 4 | namespace MegaMan.Engine.Entities.Effects 5 | { 6 | public class DefeatBossEffectLoader : IEffectLoader 7 | { 8 | public Type PartInfoType 9 | { 10 | get 11 | { 12 | return typeof(DefeatBossEffectPartInfo); 13 | } 14 | } 15 | 16 | public Effect Load(IEffectPartInfo info) 17 | { 18 | var boss = (DefeatBossEffectPartInfo)info; 19 | return e => Game.CurrentGame.Player.DefeatBoss(boss.Name); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /IO/Xml/Effects/DefeatBossEffectPartXmlReader.cs: -------------------------------------------------------------------------------- 1 | using System.Xml.Linq; 2 | using MegaMan.Common.Entities.Effects; 3 | 4 | namespace MegaMan.IO.Xml.Effects 5 | { 6 | internal class DefeatBossEffectPartXmlReader : IEffectPartXmlReader 7 | { 8 | public string NodeName 9 | { 10 | get 11 | { 12 | return "DefeatBoss"; 13 | } 14 | } 15 | 16 | public IEffectPartInfo Load(XElement partNode) 17 | { 18 | return new DefeatBossEffectPartInfo { 19 | Name = partNode.GetAttribute("name") 20 | }; 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /IO/Xml/Effects/InputEffectPartXmlReader.cs: -------------------------------------------------------------------------------- 1 | using System.Linq; 2 | using System.Xml.Linq; 3 | using MegaMan.Common.Entities.Effects; 4 | 5 | namespace MegaMan.IO.Xml.Effects 6 | { 7 | internal class InputEffectPartXmlReader : IEffectPartXmlReader 8 | { 9 | public string NodeName 10 | { 11 | get 12 | { 13 | return "Input"; 14 | } 15 | } 16 | 17 | public IEffectPartInfo Load(XElement partNode) 18 | { 19 | return new InputEffectPartInfo { 20 | Paused = partNode.Elements("Pause").Any() 21 | }; 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Mega Man Common/Entities/Effects/VarsEffectPartInfo.cs: -------------------------------------------------------------------------------- 1 | namespace MegaMan.Common.Entities.Effects 2 | { 3 | public class VarsEffectPartInfo : IEffectPartInfo 4 | { 5 | public string Name { get; set; } 6 | public string Value { get; set; } 7 | public string Call { get; set; } 8 | public string EntityName { get; set; } 9 | 10 | public IEffectPartInfo Clone() 11 | { 12 | return new VarsEffectPartInfo { 13 | Name = Name, 14 | Value = Value, 15 | Call = Call, 16 | EntityName = EntityName 17 | }; 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /WPFEditor/Controls/EntityEditor.xaml.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | using System.Windows.Controls; 3 | using MegaMan.Editor.Controls.ViewModels.Entities; 4 | 5 | namespace MegaMan.Editor.Controls 6 | { 7 | /// 8 | /// Interaction logic for EntityEditor.xaml 9 | /// 10 | public partial class EntityEditor : UserControl 11 | { 12 | public EntityEditor() 13 | { 14 | InitializeComponent(); 15 | 16 | if (!DesignerProperties.GetIsInDesignMode(this)) 17 | { 18 | DataContext = new EntityEditorViewModel(); 19 | } 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Mega Man/Components/HitBox.cs: -------------------------------------------------------------------------------- 1 | using MegaMan.Common.Geometry; 2 | 3 | namespace MegaMan.Engine 4 | { 5 | public class HitBox 6 | { 7 | protected Rectangle box; 8 | 9 | public HitBox(int x, int y, int width, int height) 10 | { 11 | box = new Rectangle(x, y, width, height); 12 | } 13 | 14 | public virtual Rectangle BoxAt(Point offset, bool vflip) 15 | { 16 | if (vflip) return new Rectangle(box.X + offset.X, offset.Y - box.Y - box.Height, box.Width, box.Height); 17 | return new Rectangle(box.X + offset.X, box.Y + offset.Y, box.Width, box.Height); 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Demo Project/images/fonts/fonts.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 0123456789 4 | ABCDEFGHIJKLMNOPQRSTUVWXYZ 5 | abcdefghijklmnopqrstuvwxyz 6 | !"#$%&'()*+,-./:;<=>? 7 | @[]^_`{|}~ 8 | あぁいぃうぅえぇおぉ 9 | 10 | 11 | ABCDEFGHIJKLMNOPQRSTUVWXYZ.0123456789 12 | 13 | -------------------------------------------------------------------------------- /IO/Xml/Effects/CallEffectPartXmlWriter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Xml; 3 | using MegaMan.Common.Entities.Effects; 4 | 5 | namespace MegaMan.IO.Xml.Effects 6 | { 7 | internal class CallEffectPartXmlWriter : IEffectPartXmlWriter 8 | { 9 | public Type EffectPartType 10 | { 11 | get 12 | { 13 | return typeof(CallEffectPartInfo); 14 | } 15 | } 16 | 17 | public void Write(IEffectPartInfo info, XmlWriter writer) 18 | { 19 | var call = (CallEffectPartInfo)info; 20 | writer.WriteElementString("Call", call.EffectName); 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /IO/Xml/Effects/UnlockWeaponEffectPartXmlReader.cs: -------------------------------------------------------------------------------- 1 | using System.Xml.Linq; 2 | using MegaMan.Common.Entities.Effects; 3 | 4 | namespace MegaMan.IO.Xml.Effects 5 | { 6 | internal class UnlockWeaponEffectPartXmlReader : IEffectPartXmlReader 7 | { 8 | public string NodeName 9 | { 10 | get 11 | { 12 | return "UnlockWeapon"; 13 | } 14 | } 15 | 16 | public IEffectPartInfo Load(XElement partNode) 17 | { 18 | return new UnlockWeaponEffectPartInfo { 19 | WeaponName = partNode.GetAttribute("name") 20 | }; 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Mega Man/Entities/Effects/GravityFlipEffectLoader.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using MegaMan.Common.Entities.Effects; 3 | 4 | namespace MegaMan.Engine.Entities.Effects 5 | { 6 | public class GravityFlipEffectLoader : IEffectLoader 7 | { 8 | public Type PartInfoType 9 | { 10 | get 11 | { 12 | return typeof(GravityFlipEffectPartInfo); 13 | } 14 | } 15 | 16 | public Effect Load(IEffectPartInfo info) 17 | { 18 | var grav = (GravityFlipEffectPartInfo)info; 19 | return entity => entity.Container.IsGravityFlipped = grav.Flipped; 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Mega Man/Entities/Effects/UnlockWeaponEffectLoader.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using MegaMan.Common.Entities.Effects; 3 | 4 | namespace MegaMan.Engine.Entities.Effects 5 | { 6 | public class UnlockWeaponEffectLoader : IEffectLoader 7 | { 8 | public Type PartInfoType 9 | { 10 | get 11 | { 12 | return typeof(UnlockWeaponEffectPartInfo); 13 | } 14 | } 15 | 16 | public Effect Load(IEffectPartInfo info) 17 | { 18 | var wpn = (UnlockWeaponEffectPartInfo)info; 19 | return e => Game.CurrentGame.Player.UnlockWeapon(wpn.WeaponName); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Mega Man/StateMachine/IStateMachine.cs: -------------------------------------------------------------------------------- 1 | using MegaMan.Common; 2 | 3 | namespace MegaMan.Engine.StateMachine 4 | { 5 | public interface IStateMachine 6 | { 7 | void RemoveAllEndHandlers(); 8 | void StopAllHandlers(); 9 | void StopAllInput(); 10 | void Push(IGameplayContainer handler); 11 | void StartHandler(HandlerTransfer _transfer); 12 | 13 | void PauseTopOfStack(); 14 | 15 | void ResumeTopOfStack(); 16 | 17 | void PauseDrawingTopOfStack(); 18 | 19 | void ResumeDrawingTopOfStack(); 20 | 21 | void FinalizeTopHandler(); 22 | 23 | void RemoveTopHandler(); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /create-release.ps1: -------------------------------------------------------------------------------- 1 | param([string]$v, [switch]$debug) 2 | $path = if ($debug) { "Debug" } else { "Release" } 3 | md -Force Releases/$v 4 | 5 | Copy-Item "Mega Man/bin/x86/$path/" "Releases/$v/Engine" -recurse 6 | 7 | Copy-Item "WPFEditor/bin/$path/" "Releases/$v/Editor" -recurse 8 | 9 | Get-ChildItem Releases/$v -r -include *.pdb -Force | Remove-Item -r -Force 10 | Get-ChildItem Releases/$v -r -include *.vshost.* -Force | Remove-Item -r -Force 11 | 12 | Copy-Item "Demo Project" "Releases/$v" -recurse 13 | 14 | Add-Type -assembly "system.io.compression.filesystem" 15 | $dir = Convert-Path . 16 | [io.compression.zipfile]::CreateFromDirectory("$dir\Releases\$v", "$dir\Releases\CME-$v.zip") -------------------------------------------------------------------------------- /IO/Xml/Effects/GravityFlipEffectPartXmlWriter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Xml; 3 | using MegaMan.Common.Entities.Effects; 4 | 5 | namespace MegaMan.IO.Xml.Effects 6 | { 7 | internal class GravityFlipEffectPartXmlWriter : IEffectPartXmlWriter 8 | { 9 | public Type EffectPartType 10 | { 11 | get 12 | { 13 | return typeof(GravityFlipEffectPartInfo); 14 | } 15 | } 16 | 17 | public void Write(IEffectPartInfo info, XmlWriter writer) 18 | { 19 | writer.WriteElementString("GravityFlip", ((GravityFlipEffectPartInfo)info).Flipped.ToString()); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Demo Project/stages/crystal/Tunnel.scn: -------------------------------------------------------------------------------- 1 | 16 14 2 | 14 15 29 28 20 21 18 19 22 23 18 19 29 28 12 13 3 | 4 5 28 29 25 24 25 24 25 24 25 24 30 31 6 7 4 | 4 5 29 28 31 30 29 28 29 28 31 30 14 15 6 7 5 | 4 5 30 31 14 15 28 29 28 29 12 13 4 5 6 7 6 | 4 5 12 13 4 5 31 30 31 30 6 7 4 5 6 7 7 | 4 5 6 7 4 5 12 13 14 15 6 7 4 5 6 7 8 | 4 5 6 7 4 5 6 7 4 5 6 7 4 5 6 7 9 | 8 9 10 11 8 9 10 11 8 9 10 11 8 9 10 11 10 | 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 11 | 32 26 48 49 32 26 48 49 48 49 26 32 26 26 26 32 12 | 33 29 50 51 33 29 50 51 50 51 28 33 28 29 28 33 13 | 62 63 64 65 60 63 64 65 0 1 2 3 0 1 2 3 14 | 62 66 70 68 61 66 70 68 4 5 18 19 4 5 6 7 15 | 62 69 70 71 62 69 70 71 20 21 24 25 20 21 6 7 16 | -------------------------------------------------------------------------------- /Demo Project/stages/elec/1.scn: -------------------------------------------------------------------------------- 1 | 16 14 2 | 2 0 20 20 20 20 20 20 20 20 20 20 20 23 0 2 3 | 2 0 10 10 10 10 10 10 10 11 12 18 20 23 0 2 4 | 2 0 20 20 20 20 20 20 20 16 20 19 20 23 0 2 5 | 2 0 13 14 20 20 20 20 20 16 26 27 27 27 0 2 6 | 2 0 21 22 20 20 20 20 20 16 5 5 5 5 0 2 7 | 2 0 27 27 27 27 28 20 19 9 10 10 10 10 0 2 8 | 2 0 5 5 5 5 5 20 18 19 20 20 20 20 0 2 9 | 2 0 10 10 10 10 10 18 17 20 26 27 27 27 0 2 10 | 2 0 20 20 20 20 20 20 17 20 5 5 5 5 0 2 11 | 2 0 27 27 27 27 28 20 17 20 20 20 20 20 0 2 12 | 2 0 5 5 5 5 5 20 17 20 20 20 20 20 0 2 13 | 2 0 20 20 20 20 20 20 17 20 20 20 20 20 0 2 14 | 34 34 34 34 33 34 34 34 34 34 34 35 34 34 34 34 15 | 27 27 4 27 26 27 27 27 27 27 27 28 27 4 27 27 16 | -------------------------------------------------------------------------------- /Demo Project/stages/elec/2.scn: -------------------------------------------------------------------------------- 1 | 16 14 2 | 2 0 20 23 20 20 20 20 20 20 20 20 20 20 0 2 3 | 2 0 20 23 20 20 20 20 20 20 20 20 20 20 0 2 4 | 2 0 10 23 10 10 18 19 18 10 10 10 10 10 0 2 5 | 2 0 20 23 20 20 20 18 19 20 20 20 20 20 0 2 6 | 2 0 20 33 35 20 20 16 20 20 20 20 20 20 0 2 7 | 2 0 20 26 28 20 20 16 20 20 20 20 3 3 0 2 8 | 2 0 20 33 35 20 20 19 18 20 20 20 5 5 0 2 9 | 2 0 20 26 28 3 15 20 19 10 10 10 10 10 0 2 10 | 2 0 20 5 5 5 5 20 20 20 20 20 20 20 0 2 11 | 2 0 20 20 20 20 20 20 3 15 20 20 13 14 0 2 12 | 2 0 20 20 20 20 20 20 5 5 20 20 21 22 0 2 13 | 2 0 20 20 20 20 20 20 20 20 20 20 20 20 0 2 14 | 34 34 35 23 35 20 20 33 0 35 34 34 35 23 0 2 15 | 27 27 28 23 28 20 20 26 27 28 27 0 28 23 0 2 16 | -------------------------------------------------------------------------------- /Demo Project/stages/elec/3.scn: -------------------------------------------------------------------------------- 1 | 16 14 2 | 2 0 20 23 20 20 20 20 20 20 20 20 20 20 0 2 3 | 2 0 10 23 10 10 18 19 18 20 20 20 20 20 0 2 4 | 2 0 20 23 20 20 20 18 19 10 10 10 10 10 0 2 5 | 2 0 20 23 20 20 20 16 20 20 20 20 20 20 0 2 6 | 2 0 20 33 35 20 20 16 20 20 20 20 20 20 0 2 7 | 2 0 20 26 28 20 20 16 20 20 20 20 3 3 0 2 8 | 2 0 20 33 35 20 20 19 18 20 20 20 5 5 0 2 9 | 2 0 20 26 28 3 15 20 19 10 10 10 10 10 0 2 10 | 2 0 20 5 5 5 5 20 20 20 20 20 20 20 0 2 11 | 2 0 20 20 20 20 20 20 3 15 20 20 13 14 0 2 12 | 2 0 20 20 20 20 20 20 5 5 20 20 21 22 0 2 13 | 2 0 20 20 20 20 20 20 20 20 20 20 20 20 0 2 14 | 2 0 35 23 35 20 20 33 34 35 34 34 35 23 0 2 15 | 2 0 28 23 28 20 20 26 27 28 27 4 28 23 0 2 16 | -------------------------------------------------------------------------------- /WPFEditor/Resources/Includes/images/fonts/fonts.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 0123456789 4 | ABCDEFGHIJKLMNOPQRSTUVWXYZ 5 | abcdefghijklmnopqrstuvwxyz 6 | !"#$%&'()*+,-./:;<=>? 7 | @[]^_`{|}~ 8 | あぁいぃうぅえぇおぉ 9 | 10 | 11 | ABCDEFGHIJKLMNOPQRSTUVWXYZ.0123456789 12 | 13 | -------------------------------------------------------------------------------- /Demo Project/stages/demo/Start.scn: -------------------------------------------------------------------------------- 1 | 16 14 2 | 0 1 2 7 8 13 8 9 10 0 1 2 6 7 12 7 3 | 3 4 5 6 7 12 7 8 6 3 4 11 13 8 7 8 4 | 13 8 6 23 23 23 23 23 23 23 24 23 23 23 23 7 5 | 12 13 8 27 27 27 27 27 27 27 28 27 27 27 27 9 6 | 7 8 23 29 29 29 29 29 29 29 26 29 29 7 12 6 7 | 14 15 29 29 29 29 29 0 1 2 26 29 29 23 6 7 8 | 18 19 29 29 29 29 29 3 4 5 26 30 31 31 13 8 9 | 18 19 27 27 27 27 28 23 23 23 28 33 48 49 14 15 10 | 18 19 91 89 91 89 26 29 29 29 26 33 51 50 18 19 11 | 20 21 89 91 89 91 28 27 27 27 28 33 50 51 18 19 12 | 14 15 90 92 90 92 26 29 29 29 26 36 37 37 20 21 13 | 16 17 6 7 8 6 0 1 2 29 26 29 29 29 14 15 14 | 0 1 2 6 7 12 3 4 5 29 26 29 29 29 18 19 15 | 3 4 11 9 10 6 7 12 6 27 28 27 27 27 18 19 16 | -------------------------------------------------------------------------------- /Demo Project/stages/elec/6.scn: -------------------------------------------------------------------------------- 1 | 16 14 2 | 2 0 20 23 20 20 20 20 20 20 20 20 20 23 0 2 3 | 2 0 20 23 20 20 18 19 10 11 10 10 10 23 0 2 4 | 2 0 20 3 20 20 20 18 20 16 20 20 20 23 0 2 5 | 2 0 20 20 20 20 20 20 18 19 20 20 20 23 0 2 6 | 2 0 20 20 20 20 20 20 20 18 20 20 20 3 0 2 7 | 2 0 20 20 20 20 20 20 20 20 20 20 20 20 0 2 8 | 2 0 20 20 20 20 20 20 20 20 20 20 20 20 0 2 9 | 2 0 20 20 18 19 20 20 20 20 20 20 20 20 0 2 10 | 2 0 20 20 20 18 20 20 20 20 20 20 20 20 0 2 11 | 2 0 20 20 20 16 20 20 20 3 20 20 20 20 0 2 12 | 2 0 20 20 20 16 20 20 20 5 20 20 20 20 0 2 13 | 2 0 13 14 20 16 20 20 20 20 20 20 20 20 0 2 14 | 2 0 21 22 20 16 20 23 26 28 20 20 20 20 0 2 15 | 2 0 20 20 19 9 10 23 26 28 20 20 20 20 0 2 16 | -------------------------------------------------------------------------------- /IO/Xml/Effects/LadderEffectPartXmlReader.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Xml.Linq; 3 | using MegaMan.Common.Entities.Effects; 4 | 5 | namespace MegaMan.IO.Xml.Effects 6 | { 7 | internal class LadderEffectPartXmlReader : IEffectPartXmlReader 8 | { 9 | public string NodeName 10 | { 11 | get 12 | { 13 | return "Ladder"; 14 | } 15 | } 16 | 17 | public IEffectPartInfo Load(XElement partNode) 18 | { 19 | return new LadderEffectPartInfo { 20 | Action = (LadderAction)Enum.Parse(typeof(LadderAction), partNode.Value) 21 | }; 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /IO/Xml/Effects/LadderEffectPartXmlWriter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Xml; 3 | using MegaMan.Common.Entities.Effects; 4 | 5 | namespace MegaMan.IO.Xml.Effects 6 | { 7 | internal class LadderEffectPartXmlWriter : IEffectPartXmlWriter 8 | { 9 | public Type EffectPartType 10 | { 11 | get 12 | { 13 | return typeof(LadderEffectPartInfo); 14 | } 15 | } 16 | 17 | public void Write(IEffectPartInfo info, XmlWriter writer) 18 | { 19 | var ladder = (LadderEffectPartInfo)info; 20 | writer.WriteElementString("Ladder", ladder.Action.ToString()); 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Mega Man Common/Entities/Effects/TimerEffectPartInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace MegaMan.Common.Entities.Effects 4 | { 5 | public class TimerEffectPartInfo : IEffectPartInfo 6 | { 7 | public List Start { get; set; } 8 | public List Reset { get; set; } 9 | public List Delete { get; set; } 10 | 11 | public IEffectPartInfo Clone() 12 | { 13 | return new TimerEffectPartInfo { 14 | Start = new List(Start), 15 | Reset = new List(Reset), 16 | Delete = new List(Delete) 17 | }; 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Mega Man/Entities/Effects/AddInventoryEffectLoader.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using MegaMan.Common.Entities.Effects; 3 | 4 | namespace MegaMan.Engine.Entities.Effects 5 | { 6 | public class AddInventoryEffectLoader : IEffectLoader 7 | { 8 | public Type PartInfoType 9 | { 10 | get 11 | { 12 | return typeof(AddInventoryEffectPartInfo); 13 | } 14 | } 15 | 16 | public Effect Load(IEffectPartInfo info) 17 | { 18 | var inv = (AddInventoryEffectPartInfo)info; 19 | 20 | return e => Game.CurrentGame.Player.CollectItem(inv.ItemName, inv.Quantity); 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Mega Man/Injector.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using MegaMan.IO; 3 | using Ninject; 4 | using Ninject.Extensions.Conventions; 5 | 6 | namespace MegaMan.Engine 7 | { 8 | internal static class Injector 9 | { 10 | public static IKernel Container { get; private set; } 11 | 12 | static Injector() 13 | { 14 | Container = new StandardKernel(); 15 | Container.Load(Assembly.GetCallingAssembly()); 16 | Container.Bind(x => x.FromThisAssembly().SelectAllClasses().BindDefaultInterface()); 17 | Container.Bind(x => x.FromAssemblyContaining().SelectAllClasses().BindAllInterfaces()); 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Demo Project/stages/crystal/Start.scn: -------------------------------------------------------------------------------- 1 | 16 14 2 | 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 3 | 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 4 | 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 5 | 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 6 | 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 7 | 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 8 | 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 9 | 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 10 | 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 11 | 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 12 | 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 13 | 4 5 6 7 4 5 6 7 4 5 6 7 4 5 6 7 14 | 4 5 6 7 4 5 6 7 4 5 6 7 4 5 6 7 15 | 4 5 6 7 4 5 6 7 4 5 6 7 4 5 6 7 16 | -------------------------------------------------------------------------------- /Demo Project/stages/elec/4.scn: -------------------------------------------------------------------------------- 1 | 16 14 2 | 2 0 20 20 19 9 20 23 20 20 20 20 20 20 0 2 3 | 2 0 20 20 18 19 20 23 20 20 20 20 20 20 0 2 4 | 2 0 13 14 17 20 20 23 20 20 20 20 20 20 0 2 5 | 2 0 21 22 17 20 20 23 20 20 20 20 20 20 0 2 6 | 2 0 20 20 17 20 20 23 20 20 20 20 20 20 0 2 7 | 2 0 20 20 18 19 20 23 20 20 20 20 20 20 0 2 8 | 2 0 20 20 20 18 20 23 20 20 20 20 20 20 0 2 9 | 2 0 10 10 10 10 10 23 10 11 12 18 20 20 0 2 10 | 2 0 20 20 20 20 20 23 20 16 20 19 20 20 0 2 11 | 2 0 20 20 13 14 20 23 20 16 20 20 20 20 0 2 12 | 2 0 20 20 21 22 20 23 20 16 20 20 20 20 0 2 13 | 2 0 20 20 20 20 20 23 20 16 20 20 18 20 0 2 14 | 2 0 20 23 33 34 35 23 20 16 20 20 19 18 0 2 15 | 2 0 20 23 26 27 28 23 19 9 10 10 18 19 0 2 16 | -------------------------------------------------------------------------------- /Demo Project/stages/elec/5.scn: -------------------------------------------------------------------------------- 1 | 16 14 2 | 2 0 10 10 19 9 20 23 20 20 20 20 20 20 0 2 3 | 2 0 20 20 18 19 20 23 20 20 20 20 20 20 0 2 4 | 2 0 13 14 17 20 20 23 20 20 20 20 20 20 0 2 5 | 2 0 21 22 17 20 20 23 20 20 20 20 20 20 0 2 6 | 2 0 20 20 17 20 20 23 20 20 20 20 20 20 0 2 7 | 2 0 20 20 18 19 20 23 20 20 20 20 20 20 0 2 8 | 2 0 20 20 20 18 20 23 20 20 20 20 20 20 0 2 9 | 2 0 10 10 10 10 10 23 10 11 12 18 20 20 0 2 10 | 2 0 20 20 20 20 20 23 20 16 20 19 20 20 0 2 11 | 2 0 20 20 13 14 20 23 20 16 20 20 20 20 0 2 12 | 2 0 20 20 21 22 20 23 20 16 20 20 20 20 0 2 13 | 2 0 20 20 20 20 20 23 20 16 20 20 18 20 0 2 14 | 2 0 20 23 33 34 35 23 20 16 20 20 19 18 0 2 15 | 2 0 10 23 26 27 28 23 19 9 10 10 18 19 0 2 16 | -------------------------------------------------------------------------------- /Mega Man/Entities/Effects/RemoveInventoryEffectLoader.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using MegaMan.Common.Entities.Effects; 3 | 4 | namespace MegaMan.Engine.Entities.Effects 5 | { 6 | public class RemoveInventoryEffectLoader : IEffectLoader 7 | { 8 | public Type PartInfoType 9 | { 10 | get 11 | { 12 | return typeof(RemoveInventoryEffectPartInfo); 13 | } 14 | } 15 | 16 | public Effect Load(IEffectPartInfo info) 17 | { 18 | var inv = (RemoveInventoryEffectPartInfo)info; 19 | 20 | return e => Game.CurrentGame.Player.UseItem(inv.ItemName, inv.Quantity); 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Demo Project/stages/demo/Continue.scn: -------------------------------------------------------------------------------- 1 | 16 14 2 | 40 41 7 8 0 1 2 7 12 7 8 47 6 7 8 6 3 | 43 44 6 6 3 4 5 6 7 8 6 47 7 12 13 8 4 | 74 74 74 46 7 12 6 7 8 7 8 47 6 7 12 6 5 | 82 82 82 82 82 82 83 81 82 82 82 47 82 82 0 1 6 | 82 82 82 82 82 82 83 81 82 82 82 47 82 82 3 4 7 | 82 82 82 82 82 82 83 81 82 82 82 82 82 82 7 8 8 | 82 82 82 82 82 82 83 81 82 82 82 82 82 82 6 13 9 | 82 82 82 82 82 82 83 81 82 82 82 82 82 82 7 8 10 | 82 82 82 82 82 82 83 81 82 82 82 82 82 82 0 1 11 | 82 82 82 82 82 82 83 81 82 82 82 82 82 82 3 4 12 | 74 74 46 82 82 82 83 81 82 82 82 82 82 82 13 8 13 | 0 1 2 82 82 82 83 81 82 82 82 82 82 82 0 1 14 | 3 4 5 82 82 82 83 81 82 82 82 82 82 82 3 4 15 | 13 8 6 82 82 82 83 81 82 82 82 82 82 82 6 13 16 | -------------------------------------------------------------------------------- /IO/Xml/Effects/FuncEffectPartXmlReader.cs: -------------------------------------------------------------------------------- 1 | using System.Linq; 2 | using System.Xml.Linq; 3 | using MegaMan.Common.Entities.Effects; 4 | 5 | namespace MegaMan.IO.Xml.Effects 6 | { 7 | internal class FuncEffectPartXmlReader : IEffectPartXmlReader 8 | { 9 | public string NodeName 10 | { 11 | get 12 | { 13 | return "Func"; 14 | } 15 | } 16 | 17 | public IEffectPartInfo Load(XElement partNode) 18 | { 19 | return new FuncEffectPartInfo { 20 | Statements = partNode.Value.Split(';').Where(st => !string.IsNullOrEmpty(st.Trim())) 21 | }; 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Demo Project/stages/crystal/ScreenTwo.scn: -------------------------------------------------------------------------------- 1 | 16 14 2 | 29 28 29 28 29 28 29 28 29 28 29 28 29 28 7 38 3 | 28 29 28 29 28 29 28 29 28 29 28 29 28 29 7 36 4 | 29 28 29 28 29 28 29 28 29 28 29 28 29 28 7 38 5 | 34 34 34 34 34 34 34 34 34 34 34 34 34 34 7 36 6 | 29 28 29 28 29 28 29 28 29 28 29 28 29 28 7 38 7 | 28 29 28 29 28 29 28 29 28 29 28 29 28 29 7 36 8 | 29 28 29 28 29 28 29 28 29 28 2 3 29 28 7 38 9 | 28 29 28 29 28 29 28 29 28 29 6 7 28 29 7 36 10 | 34 34 34 34 34 34 34 3 0 1 6 7 34 34 7 38 11 | 28 29 28 29 28 29 28 7 4 5 6 7 28 29 7 36 12 | 0 1 2 3 0 1 2 7 20 21 6 7 29 28 7 38 13 | 4 5 6 7 4 5 18 19 28 29 6 7 28 29 7 36 14 | 4 5 6 19 20 5 29 28 14 15 6 7 29 28 7 38 15 | 4 5 22 29 28 21 12 13 4 5 6 7 28 29 7 36 16 | -------------------------------------------------------------------------------- /Demo Project/stages/elec/7.scn: -------------------------------------------------------------------------------- 1 | 16 14 2 | 38 38 38 23 38 38 38 38 33 27 34 34 34 35 34 34 3 | 38 38 38 23 38 38 38 38 38 38 38 27 27 28 27 27 4 | 38 38 38 23 38 38 38 38 38 38 38 34 6 7 34 34 5 | 38 38 38 23 38 38 38 38 38 38 38 4 27 28 27 4 6 | 38 38 38 23 38 38 38 38 38 38 38 34 34 35 34 34 7 | 27 27 26 27 27 27 28 23 26 27 27 27 27 28 27 27 8 | 34 34 6 7 27 27 35 23 33 34 34 34 6 7 34 34 9 | 4 27 26 27 4 27 28 23 5 5 26 4 27 28 27 4 10 | 27 27 6 7 27 27 35 23 20 20 33 34 34 35 34 34 11 | 27 27 26 27 27 27 27 28 20 20 5 5 5 5 0 2 12 | 2 0 5 5 5 5 5 5 20 20 20 20 20 20 0 2 13 | 2 0 20 20 20 20 20 20 20 20 20 20 20 23 0 2 14 | 2 0 20 23 33 34 34 35 20 20 20 20 20 23 0 2 15 | 2 0 20 23 5 5 5 5 20 20 20 20 20 23 0 2 16 | -------------------------------------------------------------------------------- /IO/Xml/Handlers/Commands/CallCommandXmlReader.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Xml.Linq; 3 | using MegaMan.Common; 4 | 5 | namespace MegaMan.IO.Xml.Handlers.Commands 6 | { 7 | internal class CallCommandXmlReader : ICommandXmlReader 8 | { 9 | public IEnumerable NodeName 10 | { 11 | get 12 | { 13 | yield return "Call"; 14 | } 15 | } 16 | 17 | public SceneCommandInfo Load(XElement node, string basePath) 18 | { 19 | var info = new SceneCallCommandInfo(); 20 | 21 | info.Name = node.Value; 22 | 23 | return info; 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /IO/Xml/Effects/SetVarEffectPartXmlReader.cs: -------------------------------------------------------------------------------- 1 | using System.Xml.Linq; 2 | using MegaMan.Common.Entities.Effects; 3 | 4 | namespace MegaMan.IO.Xml.Effects 5 | { 6 | internal class SetVarEffectPartXmlReader : IEffectPartXmlReader 7 | { 8 | public string NodeName 9 | { 10 | get 11 | { 12 | return "SetVar"; 13 | } 14 | } 15 | 16 | public IEffectPartInfo Load(XElement partNode) 17 | { 18 | return new SetVarEffectPartInfo { 19 | Name = partNode.GetAttribute("name"), 20 | Value = partNode.GetAttribute("value") 21 | }; 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /IO/Xml/Effects/SoundEffectPartXmlReader.cs: -------------------------------------------------------------------------------- 1 | using System.Xml.Linq; 2 | using MegaMan.Common.Entities.Effects; 3 | 4 | namespace MegaMan.IO.Xml.Effects 5 | { 6 | internal class SoundEffectPartXmlReader : IEffectPartXmlReader 7 | { 8 | public string NodeName 9 | { 10 | get 11 | { 12 | return "Sound"; 13 | } 14 | } 15 | 16 | public IEffectPartInfo Load(XElement partNode) 17 | { 18 | return new SoundEffectPartInfo { 19 | Name = partNode.GetAttribute("name"), 20 | Playing = partNode.TryAttribute("playing", true) 21 | }; 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Demo Project/stages/crystal/4.scn: -------------------------------------------------------------------------------- 1 | 16 14 2 | 4 5 29 28 29 28 6 7 4 5 6 7 29 28 7 38 3 | 20 21 28 29 28 29 6 7 4 5 10 11 28 29 7 36 4 | 29 28 29 28 29 28 6 7 4 5 29 28 29 28 7 38 5 | 36 37 28 29 28 29 10 11 8 9 28 29 28 29 7 36 6 | 38 39 29 28 29 28 29 28 29 28 29 28 29 28 7 38 7 | 36 37 28 29 28 29 28 29 28 29 28 29 28 29 7 36 8 | 38 39 29 28 29 28 29 36 37 36 37 36 37 36 37 38 9 | 36 37 36 37 28 29 28 38 39 38 39 38 39 38 39 11 10 | 38 39 38 39 29 28 29 28 29 28 29 28 29 28 29 38 11 | 36 37 28 29 28 29 28 29 28 29 28 29 28 29 28 29 12 | 38 39 29 28 29 28 29 28 29 28 29 28 29 28 29 28 13 | 36 37 28 28 29 0 1 2 3 0 1 2 3 63 64 65 14 | 38 39 28 29 28 4 5 18 19 4 5 6 7 66 70 68 15 | 36 37 29 29 28 20 21 24 25 20 21 6 7 69 70 71 16 | -------------------------------------------------------------------------------- /Mega Man Common/IncludedObjects/MenuInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace MegaMan.Common.IncludedObjects 4 | { 5 | public class MenuInfo : HandlerInfo 6 | { 7 | public List States { get; private set; } 8 | 9 | public MenuInfo() 10 | { 11 | States = new List(); 12 | } 13 | } 14 | 15 | public class MenuStateInfo 16 | { 17 | public string Name { get; set; } 18 | public bool Fade { get; set; } 19 | public List Commands { get; set; } 20 | public string StartOptionName { get; set; } 21 | public string StartOptionVar { get; set; } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Demo Project/stages/crystal/Boss.scn: -------------------------------------------------------------------------------- 1 | 16 14 2 | 61 76 77 78 8 9 10 11 8 9 10 11 76 77 78 61 3 | 4 44 45 44 45 44 45 44 45 44 45 44 45 44 45 7 4 | 4 46 47 46 47 46 47 46 47 46 47 46 47 46 47 7 5 | 4 27 48 49 32 26 26 26 26 26 26 32 48 49 27 7 6 | 4 29 50 51 33 29 28 29 28 29 28 33 50 51 28 7 7 | 4 35 52 53 32 35 56 57 56 57 34 32 52 53 34 7 8 | 4 29 54 55 33 29 50 51 50 51 28 33 54 55 28 7 9 | 8 35 52 53 32 35 52 53 52 53 34 32 52 53 34 7 10 | 75 29 54 55 33 29 54 55 54 55 28 33 54 55 28 7 11 | 26 35 52 53 32 35 58 59 58 59 34 32 52 53 34 7 12 | 28 29 54 55 33 29 28 29 28 29 28 33 54 55 28 7 13 | 62 63 64 65 0 1 2 3 0 1 2 3 63 64 65 62 14 | 62 66 70 68 4 5 18 19 4 5 6 7 66 70 68 62 15 | 62 69 70 71 4 5 75 75 20 21 18 19 69 70 71 62 16 | -------------------------------------------------------------------------------- /Demo Project/stages/crystal/Easy.scn: -------------------------------------------------------------------------------- 1 | 16 14 2 | 36 37 38 39 38 39 38 39 38 39 38 39 38 39 38 39 3 | 38 39 24 25 24 25 24 25 24 25 24 25 24 25 36 37 4 | 28 28 28 28 28 28 28 28 28 28 28 28 28 28 38 39 5 | 35 35 35 35 35 35 35 35 35 35 35 35 35 35 36 37 6 | 28 28 28 28 28 28 28 28 28 28 28 28 28 28 38 39 7 | 28 28 28 28 28 28 28 28 28 28 28 28 28 28 36 37 8 | 2 28 28 28 28 28 28 28 28 28 28 28 28 28 38 39 9 | 6 28 28 28 28 28 28 28 28 28 28 28 28 28 36 37 10 | 6 35 35 35 35 35 35 35 35 35 35 35 35 35 38 39 11 | 6 28 28 28 28 28 28 28 28 28 28 28 28 28 36 37 12 | 6 28 28 28 28 28 28 28 28 28 28 28 28 28 38 39 13 | 6 28 28 28 28 28 28 28 28 28 28 28 28 28 36 37 14 | 6 1 2 3 0 1 2 3 0 1 2 3 0 1 38 39 15 | 6 5 6 7 4 5 6 7 4 5 6 7 4 5 36 37 16 | -------------------------------------------------------------------------------- /IO/Xml/Effects/PaletteEffectPartXmlReader.cs: -------------------------------------------------------------------------------- 1 | using System.Xml.Linq; 2 | using MegaMan.Common.Entities.Effects; 3 | 4 | namespace MegaMan.IO.Xml.Effects 5 | { 6 | internal class PaletteEffectPartXmlReader : IEffectPartXmlReader 7 | { 8 | public string NodeName 9 | { 10 | get 11 | { 12 | return "Palette"; 13 | } 14 | } 15 | 16 | public IEffectPartInfo Load(XElement partNode) 17 | { 18 | return new PaletteEffectPartInfo { 19 | PaletteName = partNode.GetAttribute("name"), 20 | PaletteIndex = partNode.GetAttribute("index") 21 | }; 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /IO/Xml/Entities/PositionComponentXmlReader.cs: -------------------------------------------------------------------------------- 1 | using System.Xml.Linq; 2 | using MegaMan.Common; 3 | using MegaMan.Common.Entities; 4 | using MegaMan.IO.DataSources; 5 | 6 | namespace MegaMan.IO.Xml.Entities 7 | { 8 | internal class PositionComponentXmlReader : IComponentXmlReader 9 | { 10 | public string NodeName 11 | { 12 | get { return "Position"; } 13 | } 14 | 15 | public IComponentInfo Load(XElement node, Project project, IDataSource dataSource) 16 | { 17 | var posInfo = new PositionComponentInfo(); 18 | posInfo.PersistOffscreen = node.TryAttribute("persistoffscreen"); 19 | return posInfo; 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /IO/Xml/Handlers/Commands/RemoveCommandXmlReader.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Xml.Linq; 3 | using MegaMan.Common; 4 | 5 | namespace MegaMan.IO.Xml.Handlers.Commands 6 | { 7 | internal class RemoveCommandXmlReader : ICommandXmlReader 8 | { 9 | public IEnumerable NodeName 10 | { 11 | get 12 | { 13 | yield return "Remove"; 14 | } 15 | } 16 | 17 | public SceneCommandInfo Load(XElement node, string basePath) 18 | { 19 | var info = new SceneRemoveCommandInfo(); 20 | info.Name = node.RequireAttribute("name").Value; 21 | return info; 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Mega Man Common/Entities/Effects/EffectInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Linq; 3 | using MegaMan.Common.IncludedObjects; 4 | 5 | namespace MegaMan.Common.Entities.Effects 6 | { 7 | public class EffectInfo : IncludedObject 8 | { 9 | public string Name { get; set; } 10 | public EntityFilterInfo Filter { get; set; } 11 | public IEnumerable Parts { get; set; } 12 | 13 | public EffectInfo Clone() 14 | { 15 | return new EffectInfo { 16 | Name = Name, 17 | Filter = Filter.Clone(), 18 | Parts = Parts.Select(x => x.Clone()).ToList() 19 | }; 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Mega Man/Entities/Effects/HealthEffectLoader.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using MegaMan.Common.Entities.Effects; 3 | 4 | namespace MegaMan.Engine.Entities.Effects 5 | { 6 | public class HealthEffectLoader : IEffectLoader 7 | { 8 | public Type PartInfoType 9 | { 10 | get 11 | { 12 | return typeof(HealthEffectPartInfo); 13 | } 14 | } 15 | 16 | public Effect Load(IEffectPartInfo info) 17 | { 18 | var health = (HealthEffectPartInfo)info; 19 | return entity => 20 | { 21 | entity.GetComponent().Health += health.Change; 22 | }; 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Demo Project/stages/demo/Third.scn: -------------------------------------------------------------------------------- 1 | 16 14 2 | 18 19 29 29 29 18 19 47 29 29 29 29 29 47 18 19 3 | 18 19 29 29 29 18 19 47 62 29 62 29 62 47 18 19 4 | 18 19 29 29 29 18 19 47 29 62 29 62 29 47 20 21 5 | 18 19 29 29 29 18 19 47 29 30 30 29 29 47 14 15 6 | 18 19 29 29 29 20 21 47 29 14 15 29 29 47 18 19 7 | 18 19 29 29 29 29 29 29 29 18 19 29 29 47 18 19 8 | 18 19 29 29 29 29 29 29 29 16 17 29 29 47 18 19 9 | 18 19 39 40 40 40 40 40 40 40 40 40 41 47 20 21 10 | 18 19 42 43 43 43 43 43 43 43 43 43 44 47 27 27 11 | 18 19 27 27 27 27 27 27 27 27 27 27 27 47 27 27 12 | 16 17 27 27 27 27 27 27 27 27 27 27 27 27 27 27 13 | 7 8 27 27 27 27 27 27 27 27 27 27 27 27 27 27 14 | 12 6 27 27 6 6 0 1 2 7 12 7 8 0 1 2 15 | 7 8 31 31 13 8 3 4 5 6 7 8 6 3 4 11 16 | -------------------------------------------------------------------------------- /Mega Man/Forms/Settings/UserSettingsEnums.cs: -------------------------------------------------------------------------------- 1 | namespace MegaMan.Engine.Forms.Settings 2 | { 3 | public enum ScreenScale 4 | { 5 | X1, 6 | X2, 7 | X3, 8 | X4, 9 | NTSC, 10 | Fullscreen 11 | } 12 | 13 | public enum NTSC_Options 14 | { 15 | None, 16 | Composite, 17 | S_Video, 18 | RGB, 19 | Custom 20 | } 21 | 22 | public enum PixellatedOrSmoothed 23 | { 24 | Pixellated, 25 | Smoothed 26 | } 27 | 28 | public enum Layers 29 | { 30 | Background, 31 | Sprite1, 32 | Sprite2, 33 | Sprite3, 34 | Sprite4, 35 | Foreground 36 | } 37 | } -------------------------------------------------------------------------------- /Demo Project/stages/elec/10.scn: -------------------------------------------------------------------------------- 1 | 16 14 2 | 38 38 38 23 38 38 38 38 26 28 20 20 23 20 26 27 3 | 38 38 38 23 38 38 38 38 6 7 20 20 23 20 33 34 4 | 38 38 38 23 38 38 38 38 26 28 10 10 23 11 26 27 5 | 38 38 38 23 38 38 38 38 33 35 20 20 23 16 15 34 6 | 38 38 3 3 38 38 38 38 26 28 23 26 27 27 27 27 7 | 38 38 38 38 38 38 38 38 6 7 23 33 34 34 34 34 8 | 38 38 38 38 38 38 3 3 26 28 23 5 5 5 26 27 9 | 38 38 38 38 38 38 38 38 33 35 23 20 20 20 15 34 10 | 38 38 3 3 38 38 38 38 26 27 27 28 23 20 26 27 11 | 38 38 38 38 38 38 38 38 6 7 34 35 23 10 33 34 12 | 38 38 38 38 38 38 26 28 5 5 5 5 23 20 26 27 13 | 38 38 38 38 38 38 33 35 20 20 20 20 23 20 33 34 14 | 38 38 26 28 23 26 27 28 23 26 27 27 4 28 27 27 15 | 38 38 33 35 23 33 34 35 23 33 34 34 34 35 34 34 16 | -------------------------------------------------------------------------------- /Demo Project/stages/elec/11.scn: -------------------------------------------------------------------------------- 1 | 16 14 2 | 38 38 38 38 23 38 38 38 26 28 20 20 23 20 26 27 3 | 38 38 38 38 23 38 38 38 33 35 20 20 23 20 33 34 4 | 38 38 38 38 23 38 38 38 26 28 13 14 23 20 26 4 5 | 38 38 38 38 38 38 38 38 6 7 21 22 23 20 33 34 6 | 38 38 38 38 38 38 38 38 26 28 18 19 23 20 26 27 7 | 38 38 38 38 38 38 38 38 33 35 20 18 23 10 33 34 8 | 38 38 38 38 38 38 3 3 26 28 20 20 20 20 26 4 9 | 38 38 38 38 38 38 38 38 6 7 20 20 20 20 33 34 10 | 38 38 3 3 38 38 38 38 24 25 20 20 20 20 26 27 11 | 38 38 38 38 38 38 38 38 31 32 20 20 20 20 33 34 12 | 38 38 38 38 38 38 26 27 26 28 3 3 23 3 26 4 13 | 38 38 38 38 38 38 33 34 6 7 5 5 23 5 33 34 14 | 38 38 26 23 27 27 4 27 26 28 13 14 23 20 26 27 15 | 38 38 33 23 34 34 34 34 33 35 21 22 23 20 33 34 16 | -------------------------------------------------------------------------------- /IO/Xml/Effects/FuncEffectPartXmlWriter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Xml; 3 | using MegaMan.Common.Entities.Effects; 4 | 5 | namespace MegaMan.IO.Xml.Effects 6 | { 7 | internal class FuncEffectPartXmlWriter : IEffectPartXmlWriter 8 | { 9 | public Type EffectPartType 10 | { 11 | get 12 | { 13 | return typeof(FuncEffectPartInfo); 14 | } 15 | } 16 | 17 | public void Write(IEffectPartInfo info, XmlWriter writer) 18 | { 19 | var func = (FuncEffectPartInfo)info; 20 | var statements = string.Join(";", func.Statements); 21 | writer.WriteElementString("Func", statements); 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Mega Man/Entities/Effects/SetVarEffectLoader.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using MegaMan.Common.Entities.Effects; 3 | 4 | namespace MegaMan.Engine.Entities.Effects 5 | { 6 | public class SetVarEffectLoader : IEffectLoader 7 | { 8 | public Type PartInfoType 9 | { 10 | get 11 | { 12 | return typeof(SetVarEffectPartInfo); 13 | } 14 | } 15 | 16 | public Effect Load(IEffectPartInfo info) 17 | { 18 | var setInfo = (SetVarEffectPartInfo)info; 19 | var name = setInfo.Name; 20 | var value = setInfo.Value; 21 | 22 | return e => Game.CurrentGame.Player.SetVar(name, value); 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Demo Project/stages/elec/13.scn: -------------------------------------------------------------------------------- 1 | 16 14 2 | 38 38 38 38 23 38 38 38 26 28 20 20 23 20 26 27 3 | 38 38 38 38 23 38 38 38 33 35 20 20 23 20 33 34 4 | 38 38 38 38 23 38 38 38 26 28 20 20 23 20 26 4 5 | 38 38 38 38 23 38 38 38 6 7 20 20 23 20 33 34 6 | 38 38 3 3 23 38 38 38 26 28 20 20 23 20 26 27 7 | 38 38 38 38 38 38 38 38 33 35 20 20 23 20 15 34 8 | 38 38 38 38 38 38 3 3 26 28 20 20 23 20 26 4 9 | 38 38 38 38 38 38 38 38 6 7 20 20 23 20 33 34 10 | 38 38 23 3 3 3 38 38 24 25 20 20 23 20 26 27 11 | 38 38 23 38 38 38 38 38 31 32 20 20 23 20 15 34 12 | 38 38 23 38 38 38 38 38 38 38 26 28 23 20 26 4 13 | 38 38 23 38 38 38 38 38 38 38 33 35 23 20 33 34 14 | 27 27 28 23 38 38 26 27 26 28 26 28 23 26 27 27 15 | 34 34 35 23 34 34 33 34 33 35 33 35 23 33 34 34 16 | -------------------------------------------------------------------------------- /Demo Project/stages/elec/17.scn: -------------------------------------------------------------------------------- 1 | 16 14 2 | 38 38 23 33 34 34 33 34 33 34 34 34 6 7 34 34 3 | 38 38 23 38 38 38 38 38 38 38 26 27 26 27 27 27 4 | 38 38 23 38 38 38 38 38 38 38 33 34 6 7 34 34 5 | 38 38 23 38 38 38 38 38 38 38 26 27 26 27 27 4 6 | 38 38 23 38 38 38 38 38 38 38 33 34 6 7 34 34 7 | 38 38 38 38 38 38 38 38 38 38 38 38 26 27 27 27 8 | 38 38 38 38 38 38 38 38 38 38 38 38 6 7 34 34 9 | 38 38 38 15 38 38 38 38 38 38 38 38 38 38 26 4 10 | 38 38 38 38 38 38 38 38 38 38 38 38 38 38 33 34 11 | 38 38 38 38 38 15 38 38 38 38 38 38 38 38 26 27 12 | 38 38 38 38 38 38 38 38 38 38 38 38 38 38 33 34 13 | 38 38 38 38 38 38 38 38 38 38 38 38 38 38 26 4 14 | 33 34 34 34 33 34 34 34 4 35 4 35 23 38 33 34 15 | 26 27 27 27 26 27 27 27 27 28 27 28 23 38 26 27 16 | -------------------------------------------------------------------------------- /Demo Project/stages/elec/22.scn: -------------------------------------------------------------------------------- 1 | 16 14 2 | 27 27 27 27 26 27 27 27 27 27 27 28 27 27 27 27 3 | 34 34 34 34 33 34 34 34 34 34 34 35 34 34 34 34 4 | 37 5 5 5 5 5 5 5 5 5 5 5 5 5 5 37 5 | 37 20 20 20 20 20 20 20 20 20 20 20 20 20 20 37 6 | 37 20 20 20 20 20 20 20 20 20 20 20 20 20 20 37 7 | 37 20 20 20 20 20 20 20 20 20 20 20 20 20 20 37 8 | 37 20 20 20 20 20 20 20 20 20 20 20 20 20 20 37 9 | 37 20 20 20 20 20 20 20 20 20 20 20 20 20 20 37 10 | 37 20 20 20 20 20 20 20 20 20 20 20 20 20 20 37 11 | 37 20 20 20 20 20 20 20 20 20 20 20 20 20 20 37 12 | 27 28 24 25 24 25 20 20 20 20 20 20 20 20 20 37 13 | 34 35 31 32 31 32 20 20 20 20 20 20 20 20 20 37 14 | 27 28 27 27 27 28 20 20 23 20 26 27 27 28 27 27 15 | 34 35 34 34 34 35 20 20 23 20 33 34 34 35 34 34 16 | -------------------------------------------------------------------------------- /IO/Xml/Handlers/Commands/CallCommandXmlWriter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Xml; 3 | using MegaMan.Common; 4 | 5 | namespace MegaMan.IO.Xml.Handlers.Commands 6 | { 7 | internal class CallCommandXmlWriter : ICommandXmlWriter 8 | { 9 | public Type CommandType 10 | { 11 | get 12 | { 13 | return typeof(SceneCallCommandInfo); 14 | } 15 | } 16 | 17 | public void Write(SceneCommandInfo info, XmlWriter writer) 18 | { 19 | var call = (SceneCallCommandInfo)info; 20 | writer.WriteStartElement("Call"); 21 | writer.WriteValue(call.Name); 22 | writer.WriteEndElement(); 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Demo Project/stages/elec/12.scn: -------------------------------------------------------------------------------- 1 | 16 14 2 | 38 38 38 23 38 38 38 38 38 38 38 38 23 38 26 27 3 | 38 38 38 23 38 38 38 38 38 38 38 38 23 38 33 34 4 | 38 38 38 23 38 38 38 38 38 38 38 38 23 38 26 4 5 | 38 38 38 23 38 38 38 38 38 38 38 38 23 38 33 34 6 | 38 38 38 38 38 38 26 27 26 28 27 27 27 27 27 27 7 | 38 38 3 3 38 38 33 34 33 35 34 34 34 34 34 34 8 | 38 38 38 38 38 38 24 25 24 25 24 25 38 38 26 4 9 | 38 38 38 38 38 38 31 32 31 32 31 32 38 38 33 34 10 | 38 38 23 26 27 4 27 27 26 28 27 27 4 27 27 27 11 | 38 38 23 33 34 34 34 34 33 35 34 34 34 34 34 34 12 | 38 38 23 38 38 38 38 38 38 38 38 38 38 38 26 4 13 | 38 38 23 38 38 38 38 38 38 38 38 38 38 38 33 34 14 | 38 38 26 28 23 26 27 27 26 28 27 28 23 26 27 27 15 | 38 38 33 35 23 33 34 34 33 35 33 35 23 33 34 34 16 | -------------------------------------------------------------------------------- /Demo Project/stages/elec/14.scn: -------------------------------------------------------------------------------- 1 | 16 14 2 | 38 38 23 38 38 26 27 27 26 28 20 20 23 20 26 27 3 | 38 38 23 38 38 33 34 34 33 35 20 20 23 20 33 34 4 | 38 38 23 38 38 26 27 27 26 28 10 10 23 11 26 27 5 | 38 38 23 38 38 33 34 34 6 7 20 20 23 16 15 34 6 | 38 38 23 38 38 26 27 27 26 28 20 20 23 16 26 27 7 | 38 38 23 38 38 15 34 34 33 35 20 20 23 16 33 34 8 | 38 38 23 38 38 26 28 5 5 5 13 14 23 18 26 27 9 | 38 38 23 38 38 33 35 20 20 20 21 22 23 19 33 34 10 | 38 38 23 38 38 26 28 23 26 28 27 27 27 27 27 27 11 | 38 38 23 38 38 15 35 23 33 35 34 34 34 34 34 34 12 | 38 38 23 38 38 26 28 23 5 5 5 5 5 5 26 27 13 | 38 38 23 38 38 33 35 23 20 20 20 20 20 20 33 34 14 | 38 38 26 28 23 26 27 27 26 28 27 28 23 26 27 27 15 | 38 38 33 35 23 33 34 34 33 35 34 35 23 33 34 34 16 | -------------------------------------------------------------------------------- /Demo Project/stages/elec/15.scn: -------------------------------------------------------------------------------- 1 | 16 14 2 | 38 38 38 23 38 38 38 38 38 38 26 27 27 27 27 27 3 | 38 38 38 23 38 38 38 38 38 38 33 34 34 34 34 34 4 | 38 38 38 23 38 38 38 38 38 38 38 38 38 38 26 4 5 | 38 38 38 23 38 38 38 38 38 38 38 38 38 38 33 34 6 | 38 38 38 23 38 38 26 27 26 28 27 28 38 38 26 27 7 | 38 38 38 23 38 38 33 34 33 35 34 35 38 38 33 34 8 | 38 38 38 38 38 38 26 28 5 5 5 5 24 25 26 4 9 | 38 38 38 38 38 38 15 35 20 20 20 20 31 32 33 34 10 | 38 38 23 26 27 27 27 28 23 26 27 27 27 27 27 27 11 | 38 38 23 33 34 34 34 35 23 33 34 34 34 34 34 34 12 | 38 38 23 38 38 38 26 28 23 5 5 5 5 5 26 27 13 | 38 38 23 38 38 38 15 35 23 20 20 20 20 20 33 34 14 | 38 38 23 38 38 38 26 27 26 28 27 28 23 26 27 27 15 | 38 38 23 38 38 38 33 34 33 35 34 35 23 33 34 34 16 | -------------------------------------------------------------------------------- /Demo Project/stages/elec/18.scn: -------------------------------------------------------------------------------- 1 | 16 14 2 | 38 38 38 38 38 38 38 38 38 38 38 38 38 29 30 30 3 | 38 38 38 38 38 38 38 38 38 38 38 38 38 29 30 30 4 | 38 38 38 38 38 38 38 38 38 38 38 38 38 29 30 30 5 | 38 38 38 38 38 38 38 38 38 38 38 38 38 29 36 36 6 | 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 7 | 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 8 | 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 9 | 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 10 | 38 38 38 38 38 38 38 38 38 38 26 27 34 34 27 27 11 | 38 38 38 38 38 38 38 38 38 38 33 34 6 7 34 34 12 | 38 38 23 26 27 27 26 4 26 27 27 27 26 27 27 27 13 | 38 38 23 33 34 34 33 34 6 7 34 34 6 7 34 34 14 | 38 38 23 26 27 27 26 27 26 27 27 27 26 27 27 27 15 | 38 38 23 26 27 27 26 4 26 27 27 4 26 27 27 4 16 | -------------------------------------------------------------------------------- /Demo Project/stages/elec/9.scn: -------------------------------------------------------------------------------- 1 | 16 14 2 | 38 38 38 38 23 38 26 28 23 20 20 20 20 20 26 27 3 | 38 38 38 38 23 38 33 35 23 20 20 20 20 20 33 34 4 | 38 38 38 38 23 38 26 28 23 11 10 10 10 10 26 4 5 | 38 38 38 38 23 38 33 35 23 16 20 20 20 20 33 34 6 | 38 38 38 38 23 38 26 28 23 18 10 11 12 18 26 27 7 | 38 38 38 38 23 38 33 35 23 19 20 16 20 19 33 34 8 | 38 38 38 38 23 38 26 28 23 20 20 16 20 20 26 4 9 | 38 38 38 38 23 38 33 35 23 20 20 16 20 20 33 34 10 | 38 38 38 38 23 38 26 28 23 20 20 16 20 20 26 27 11 | 38 38 38 38 23 38 33 35 23 20 20 16 20 20 33 34 12 | 38 38 38 38 38 38 5 5 20 20 20 16 18 19 26 4 13 | 38 38 38 38 38 38 20 20 20 20 20 16 20 18 33 34 14 | 26 27 4 27 27 27 4 28 27 27 27 28 23 26 27 27 15 | 33 34 34 34 34 34 34 35 34 34 34 35 23 33 34 34 16 | -------------------------------------------------------------------------------- /IO/Xml/Effects/AddInventoryEffectPartXmlReader.cs: -------------------------------------------------------------------------------- 1 | using System.Xml.Linq; 2 | using MegaMan.Common.Entities.Effects; 3 | 4 | namespace MegaMan.IO.Xml.Effects 5 | { 6 | internal class AddInventoryEffectPartXmlReader : IEffectPartXmlReader 7 | { 8 | public string NodeName 9 | { 10 | get 11 | { 12 | return "AddInventory"; 13 | } 14 | } 15 | 16 | public IEffectPartInfo Load(XElement partNode) 17 | { 18 | return new AddInventoryEffectPartInfo { 19 | ItemName = partNode.RequireAttribute("item").Value, 20 | Quantity = partNode.TryAttribute("quantity", 1) 21 | }; 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Demo Project/stages/crystal/6.scn: -------------------------------------------------------------------------------- 1 | 16 14 2 | 36 37 28 29 28 29 28 29 28 29 28 29 28 29 28 29 3 | 38 39 29 28 29 28 29 28 29 28 29 28 29 29 29 29 4 | 28 29 28 29 28 29 28 29 28 29 28 29 29 29 29 29 5 | 29 28 29 28 29 28 29 28 0 1 2 3 29 28 29 28 6 | 36 37 36 37 36 37 36 37 4 5 6 7 28 29 28 29 7 | 38 39 38 39 38 39 38 39 29 28 29 28 29 28 29 28 8 | 28 29 28 29 28 29 28 29 28 29 28 29 28 29 28 29 9 | 29 28 29 28 29 28 28 29 29 28 29 28 29 28 29 28 10 | 28 29 28 29 28 29 29 28 28 29 28 29 28 29 28 29 11 | 29 28 29 28 29 28 28 29 29 28 29 28 29 28 29 28 12 | 28 29 28 29 28 29 29 28 28 29 28 29 28 29 28 29 13 | 29 28 29 28 29 28 28 29 29 28 29 28 29 28 29 28 14 | 28 29 28 29 28 29 29 28 28 29 28 29 28 29 28 29 15 | 29 28 29 28 29 28 29 28 29 28 29 28 29 28 29 28 16 | -------------------------------------------------------------------------------- /Demo Project/stages/elec/19.scn: -------------------------------------------------------------------------------- 1 | 16 14 2 | 38 38 38 38 27 28 20 20 23 20 26 27 38 38 38 38 3 | 38 38 38 38 34 35 20 20 23 20 33 34 38 38 38 38 4 | 27 27 27 27 27 28 20 20 23 20 26 27 38 38 38 38 5 | 34 34 34 34 34 35 20 20 23 20 33 34 38 38 38 38 6 | 5 5 5 5 5 5 20 20 20 20 26 27 38 38 38 38 7 | 20 20 20 20 20 20 20 20 20 20 33 34 38 38 38 38 8 | 20 20 20 20 20 20 20 20 20 20 26 27 38 38 38 38 9 | 20 20 20 20 20 20 20 20 20 20 33 34 38 38 38 38 10 | 27 27 27 27 27 27 27 27 27 27 27 27 38 38 38 38 11 | 34 34 34 34 34 34 34 34 34 34 34 34 38 38 38 38 12 | 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 13 | 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 14 | 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 15 | 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 16 | --------------------------------------------------------------------------------